@ynput/ayon-frontend-shared 0.2.3 → 0.2.5

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 (530) hide show
  1. package/dist/ContextMenu.cjs.js +1 -0
  2. package/dist/ContextMenu.cjs.js.map +1 -1
  3. package/dist/ContextMenu.es.js +1 -0
  4. package/dist/ContextMenu.es.js.map +1 -1
  5. package/dist/DetailsPanel.cjs.js +23 -1
  6. package/dist/DetailsPanel.cjs.js.map +1 -1
  7. package/dist/DetailsPanel.es.js +23 -1
  8. package/dist/DetailsPanel.es.js.map +1 -1
  9. package/dist/ProjectTreeTable.cjs.js +12 -1
  10. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  11. package/dist/ProjectTreeTable.es.js +14 -3
  12. package/dist/ProjectTreeTable.es.js.map +1 -1
  13. package/dist/_virtual/_commonjsHelpers.cjs.js +0 -2
  14. package/dist/_virtual/_commonjsHelpers.cjs.js.map +1 -1
  15. package/dist/_virtual/_commonjsHelpers.es.js +0 -2
  16. package/dist/_virtual/_commonjsHelpers.es.js.map +1 -1
  17. package/dist/_virtual/index.cjs5.js +3 -5
  18. package/dist/_virtual/index.cjs5.js.map +1 -1
  19. package/dist/_virtual/index.cjs6.js +5 -3
  20. package/dist/_virtual/index.cjs6.js.map +1 -1
  21. package/dist/_virtual/index.es5.js +2 -5
  22. package/dist/_virtual/index.es5.js.map +1 -1
  23. package/dist/_virtual/index.es6.js +5 -2
  24. package/dist/_virtual/index.es6.js.map +1 -1
  25. package/dist/api.cjs.js +24 -1
  26. package/dist/api.cjs.js.map +1 -1
  27. package/dist/api.es.js +26 -3
  28. package/dist/api.es.js.map +1 -1
  29. package/dist/components.cjs.js +12 -0
  30. package/dist/components.cjs.js.map +1 -1
  31. package/dist/components.es.js +12 -0
  32. package/dist/components.es.js.map +1 -1
  33. package/dist/context.cjs.js +3 -0
  34. package/dist/context.cjs.js.map +1 -1
  35. package/dist/context.es.js +3 -0
  36. package/dist/context.es.js.map +1 -1
  37. package/dist/index.cjs.js +24 -2
  38. package/dist/index.cjs.js.map +1 -1
  39. package/dist/index.es.js +24 -2
  40. package/dist/index.es.js.map +1 -1
  41. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  42. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  43. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  44. package/dist/node_modules/remove-accents/index.es.js +1 -1
  45. package/dist/shared/src/api/base/client.cjs.js +3 -0
  46. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  47. package/dist/shared/src/api/base/client.es.js +3 -0
  48. package/dist/shared/src/api/base/client.es.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.cjs.js +130 -0
  50. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/graphql.es.js +130 -0
  52. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
  55. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +8 -4
  56. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +9 -5
  58. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +4 -0
  60. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -0
  62. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +267 -0
  64. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -0
  65. package/dist/shared/src/api/queries/entityLists/getLists.es.js +267 -0
  66. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -0
  67. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +51 -0
  68. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -0
  69. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +51 -0
  70. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -0
  71. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +169 -0
  72. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -0
  73. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +169 -0
  74. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -0
  75. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.cjs.js +29 -0
  76. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.cjs.js.map +1 -0
  77. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.es.js +29 -0
  78. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.es.js.map +1 -0
  79. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +3 -4
  80. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/overview/getOverview.es.js +3 -4
  82. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +40 -5
  84. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/overview/updateOverview.es.js +40 -5
  86. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  88. package/dist/shared/src/api/queries/review/getReview.es.js +1 -1
  89. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -1
  91. package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -2
  92. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/users/getUsers.es.js +7 -3
  94. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  95. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +355 -0
  96. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -0
  97. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +355 -0
  98. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -0
  99. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.cjs.js +93 -0
  100. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.cjs.js.map +1 -0
  101. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.es.js +93 -0
  102. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.es.js.map +1 -0
  103. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
  104. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  105. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
  106. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  107. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -2
  108. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  109. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -2
  110. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  111. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
  112. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -1
  113. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.cjs.js +4 -2
  114. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.cjs.js.map +1 -1
  115. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.es.js +4 -2
  116. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.es.js.map +1 -1
  117. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +3 -1
  118. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  119. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -1
  120. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  121. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +23 -1
  122. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  123. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +23 -1
  124. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  125. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +194 -0
  126. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -0
  127. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +195 -0
  128. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -0
  129. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js +128 -0
  130. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js.map +1 -0
  131. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js +128 -0
  132. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js.map +1 -0
  133. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js +185 -0
  134. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js.map +1 -0
  135. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js +185 -0
  136. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js.map +1 -0
  137. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js +67 -0
  138. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js.map +1 -0
  139. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js +68 -0
  140. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js.map +1 -0
  141. package/dist/shared/src/components/EnumEditor/util/index.cjs.js +19 -0
  142. package/dist/shared/src/components/EnumEditor/util/index.cjs.js.map +1 -0
  143. package/dist/shared/src/components/EnumEditor/util/index.es.js +19 -0
  144. package/dist/shared/src/components/EnumEditor/util/index.es.js.map +1 -0
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js +78 -0
  146. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js.map +1 -0
  147. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js +79 -0
  148. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js.map +1 -0
  149. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +352 -0
  150. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -0
  151. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +353 -0
  152. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -0
  153. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +113 -0
  154. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -0
  155. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -0
  156. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -0
  157. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js +52 -0
  158. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js.map +1 -0
  159. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js +53 -0
  160. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js.map +1 -0
  161. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
  162. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  163. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
  164. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +23 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +23 -1
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +23 -1
  170. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +23 -1
  172. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +23 -1
  174. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +23 -1
  176. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  177. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +103 -0
  178. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -0
  179. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +103 -0
  180. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -0
  181. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +83 -0
  182. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -0
  183. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +83 -0
  184. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -0
  185. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
  186. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  187. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
  188. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  189. package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
  190. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  191. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
  192. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  193. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +23 -1
  194. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +23 -1
  196. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  197. package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -1
  198. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/Actions/Actions.es.js +6 -1
  200. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  201. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  202. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +2 -2
  204. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  205. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +23 -1
  206. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +23 -1
  208. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  209. package/dist/shared/src/containers/ContextMenu/ContextMenu.css +54 -19
  210. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js +11 -1
  211. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  212. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js +11 -1
  213. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  214. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +23 -1
  215. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  216. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +25 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +25 -1
  221. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  222. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +24 -2
  223. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +24 -2
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +26 -4
  227. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  228. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +26 -4
  229. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +5 -0
  231. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  232. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +5 -0
  233. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
  235. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
  237. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  239. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +1 -1
  240. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -2
  241. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -2
  243. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  244. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
  245. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
  247. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  248. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +2 -2
  249. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +2 -2
  251. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  252. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  253. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +1 -1
  254. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
  255. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  256. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
  257. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  258. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -0
  259. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  260. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +1 -0
  261. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  262. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
  263. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
  265. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  266. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +2 -1
  267. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +2 -1
  269. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  270. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +5 -0
  271. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +5 -0
  273. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  274. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +7 -3
  275. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +7 -3
  277. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  278. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  279. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +1 -1
  280. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  281. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +198 -222
  283. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +201 -225
  285. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +1 -3
  287. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +1 -3
  289. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +361 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +361 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +41 -20
  295. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +41 -20
  297. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +29 -35
  299. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +31 -37
  301. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +33 -4
  303. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +34 -5
  305. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +17 -11
  307. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +17 -11
  309. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.cjs.js +3 -3
  315. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.es.js +3 -3
  317. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.es.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +190 -146
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +190 -146
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +10 -3
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +10 -3
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +15 -12
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +15 -12
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +44 -0
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -0
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +45 -0
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -0
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +15 -7
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +15 -7
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js +27 -31
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js +27 -31
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +1 -1
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useUpdateOverview.cjs.js → useUpdateTableData.cjs.js} +48 -20
  343. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -0
  344. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useUpdateOverview.es.js → useUpdateTableData.es.js} +48 -20
  345. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -0
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +2 -0
  347. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +2 -0
  349. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  350. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +25 -20
  351. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +25 -20
  353. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  354. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js +36 -0
  355. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -0
  356. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js +36 -0
  357. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -0
  358. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +39 -0
  359. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -0
  360. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +39 -0
  361. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -0
  362. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js +1 -0
  363. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js +1 -0
  365. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js +57 -0
  367. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -0
  368. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js +58 -0
  369. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -0
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +10 -0
  371. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -0
  373. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +17 -2
  381. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +17 -2
  383. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +53 -0
  385. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -0
  386. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +53 -0
  387. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -0
  388. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +24 -2
  389. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -2
  391. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  392. package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -1
  393. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  394. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -1
  395. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  396. package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
  397. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  398. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
  399. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  400. package/dist/shared/src/context/SettingsPanelContext.cjs.js +63 -0
  401. package/dist/shared/src/context/SettingsPanelContext.cjs.js.map +1 -0
  402. package/dist/shared/src/context/SettingsPanelContext.es.js +63 -0
  403. package/dist/shared/src/context/SettingsPanelContext.es.js.map +1 -0
  404. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -0
  405. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  406. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +1 -0
  407. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  408. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +5 -0
  409. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  410. package/dist/shared/src/hooks/useEntityUpdate.es.js +5 -0
  411. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  412. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -2
  413. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  414. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -2
  415. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  416. package/dist/shared/src/util/confirmDelete.cjs.js +3 -3
  417. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  418. package/dist/shared/src/util/confirmDelete.es.js +3 -3
  419. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  420. package/dist/shared/src/util/getAttributeIcon.cjs.js +48 -0
  421. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -0
  422. package/dist/shared/src/util/getAttributeIcon.es.js +48 -0
  423. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -0
  424. package/dist/shared/src/util/platform.cjs.js +7 -6
  425. package/dist/shared/src/util/platform.cjs.js.map +1 -1
  426. package/dist/shared/src/util/platform.es.js +7 -6
  427. package/dist/shared/src/util/platform.es.js.map +1 -1
  428. package/dist/types/SimpleTable/SimpleTable.d.ts +43 -0
  429. package/dist/types/SimpleTable/SimpleTable.styled.d.ts +10 -0
  430. package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +13 -0
  431. package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +23 -0
  432. package/dist/types/SimpleTable/index.d.ts +5 -0
  433. package/dist/types/api/generated/graphql.d.ts +255 -39
  434. package/dist/types/api/queries/activities/getActivities.d.ts +16 -0
  435. package/dist/types/api/queries/activities/updateActivities.d.ts +32 -0
  436. package/dist/types/api/queries/entities/getEntity.d.ts +16 -0
  437. package/dist/types/api/queries/entities/getEntityPanel.d.ts +16 -0
  438. package/dist/types/api/queries/entities/updateEntity.d.ts +16 -0
  439. package/dist/types/api/queries/entityLists/getLists.d.ts +3009 -0
  440. package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +148 -0
  441. package/dist/types/api/queries/entityLists/index.d.ts +5 -0
  442. package/dist/types/api/queries/entityLists/types.d.ts +71 -0
  443. package/dist/types/api/queries/entityLists/updateLists.d.ts +1137 -0
  444. package/dist/types/api/queries/entityLists/updateListsAttributes.d.ts +176 -0
  445. package/dist/types/api/queries/index.d.ts +1 -0
  446. package/dist/types/api/queries/overview/getOverview.d.ts +17 -1
  447. package/dist/types/api/queries/overview/updateOverview.d.ts +2 -2
  448. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +16 -0
  449. package/dist/types/api/queries/users/getUsers.d.ts +16 -0
  450. package/dist/types/components/AttributeEditor/AttributeEditor.d.ts +18 -0
  451. package/dist/types/components/AttributeEditor/components/MinMaxField.d.ts +14 -0
  452. package/dist/types/components/AttributeEditor/components/index.d.ts +1 -0
  453. package/dist/types/components/AttributeEditor/index.d.ts +1 -0
  454. package/dist/types/components/EnumEditor/DraggableEnumEditorItem.d.ts +10 -0
  455. package/dist/types/components/EnumEditor/EnumEditor.d.ts +22 -0
  456. package/dist/types/components/EnumEditor/EnumEditor.styled.d.ts +23 -0
  457. package/dist/types/components/EnumEditor/hooks/useDraggable.d.ts +17 -0
  458. package/dist/types/components/EnumEditor/index.d.ts +1 -0
  459. package/dist/types/components/EnumEditor/util/index.d.ts +1 -0
  460. package/dist/types/components/ProjectTableSettings/ColumnItem.d.ts +14 -0
  461. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +9 -0
  462. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +18 -0
  463. package/dist/types/components/ProjectTableSettings/SortableColumnItem.d.ts +13 -0
  464. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  465. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +16 -0
  466. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +20 -0
  467. package/dist/types/components/SettingsPanel/index.d.ts +2 -0
  468. package/dist/types/components/index.d.ts +4 -0
  469. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +3 -1
  470. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +20 -7
  471. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +23 -0
  472. package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +3 -3
  473. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +6 -2
  474. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +41 -34
  475. package/dist/types/containers/ProjectTreeTable/context/ProjectTableQueriesContext.d.ts +3 -2
  476. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +4 -1
  477. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardUtils.d.ts +2 -2
  478. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +21 -2
  479. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +7 -7
  480. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +6 -0
  481. package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +5 -3
  482. package/dist/types/containers/ProjectTreeTable/hooks/useOverviewTable.d.ts +5 -20
  483. package/dist/types/containers/ProjectTreeTable/hooks/{useUpdateOverview.d.ts → useUpdateTableData.d.ts} +12 -3
  484. package/dist/types/containers/ProjectTreeTable/index.d.ts +5 -1
  485. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +4 -6
  486. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +51 -12
  487. package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +2 -3
  488. package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +14 -2
  489. package/dist/types/containers/ProjectTreeTable/utils/getReadOnlyLists.d.ts +5 -0
  490. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +14 -0
  491. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
  492. package/dist/types/containers/ProjectTreeTable/utils/validateUpdateEntities.d.ts +4 -0
  493. package/dist/types/containers/ProjectTreeTable/widgets/EntityNameWidget.d.ts +1 -1
  494. package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -1
  495. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -0
  496. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +9 -0
  497. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  498. package/dist/types/context/SettingsPanelContext.d.ts +20 -0
  499. package/dist/types/context/index.d.ts +1 -0
  500. package/dist/types/util/getAttributeIcon.d.ts +4 -0
  501. package/dist/types/util/index.d.ts +1 -0
  502. package/dist/util.cjs.js +2 -0
  503. package/dist/util.cjs.js.map +1 -1
  504. package/dist/util.es.js +2 -0
  505. package/dist/util.es.js.map +1 -1
  506. package/package.json +2 -1
  507. package/dist/_virtual/lodash.cjs.js +0 -6
  508. package/dist/_virtual/lodash.cjs.js.map +0 -1
  509. package/dist/_virtual/lodash.cjs2.js +0 -5
  510. package/dist/_virtual/lodash.cjs2.js.map +0 -1
  511. package/dist/_virtual/lodash.es.js +0 -6
  512. package/dist/_virtual/lodash.es.js.map +0 -1
  513. package/dist/_virtual/lodash.es2.js +0 -5
  514. package/dist/_virtual/lodash.es2.js.map +0 -1
  515. package/dist/shared/node_modules/lodash/lodash.cjs.js +0 -5492
  516. package/dist/shared/node_modules/lodash/lodash.cjs.js.map +0 -1
  517. package/dist/shared/node_modules/lodash/lodash.es.js +0 -5492
  518. package/dist/shared/node_modules/lodash/lodash.es.js.map +0 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.cjs.js +0 -269
  520. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.cjs.js.map +0 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.es.js +0 -270
  522. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.es.js.map +0 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateOverview.cjs.js.map +0 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateOverview.es.js.map +0 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.cjs.js +0 -69
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.cjs.js.map +0 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.es.js +0 -70
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.es.js.map +0 -1
  529. package/dist/types/containers/ProjectTreeTable/ProjectTreeTableColumns.d.ts +0 -16
  530. package/dist/types/containers/ProjectTreeTable/hooks/useValidateUpdates.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"EntityNameWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EntityNameWidget.tsx"],"sourcesContent":["import { Button, Icon, theme } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nconst Expander = styled(Button)`\n background-color: unset;\n padding: 2px !important;\n cursor: pointer;\n`\n\nconst StyledEntityNameWidget = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n height: 100%;\n width: 100%;\n padding-right: 8px;\n`\n\nconst StyledContentWrapper = styled.div`\n width: 100%;\n height: 24px;\n overflow: hidden;\n position: relative;\n`\n\nconst StyledContentAbsolute = styled.div`\n position: absolute;\n inset: 0;\n`\n\nconst StyledContent = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-large);\n padding: 2px 4px;\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n width: fit-content;\n max-width: 100%;\n height: 100%;\n\n /* &:hover {\n &,\n .icon,\n .path {\n color: var(--md-sys-color-primary);\n }\n } */\n`\n\nconst StyledTextContent = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .path {\n ${theme.labelSmall}\n margin-bottom: -4px;\n color: var(--md-sys-color-outline);\n }\n\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`\n\ntype EntityNameWidgetProps = {\n id: string\n label: string\n name: string\n path?: string | null\n showHierarchy?: boolean\n icon: string | null\n type: string\n isExpanded: boolean\n toggleExpandAll: (id: string) => void\n toggleExpanded: () => void\n}\n\nexport const EntityNameWidget = ({\n id,\n label,\n name,\n path,\n showHierarchy,\n icon,\n type,\n isExpanded,\n toggleExpandAll,\n toggleExpanded,\n}: EntityNameWidgetProps) => {\n return (\n <StyledEntityNameWidget>\n {showHierarchy ? (\n type === 'folder' ? (\n <Expander\n onClick={(e) => {\n e.stopPropagation()\n if (e.altKey) {\n // expand/collapse all children\n toggleExpandAll(id)\n } else {\n // use built-in toggleExpanded function\n toggleExpanded()\n }\n }}\n className=\"expander\"\n icon={isExpanded ? 'expand_more' : 'chevron_right'}\n />\n ) : (\n <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n ) : null}\n <StyledContentWrapper style={{ height: path ? 32 : 24 }}>\n <StyledContentAbsolute>\n <StyledContent>\n {icon && <Icon icon={icon} />}\n <StyledTextContent>\n {path && <span className=\"path\">{path}</span>}\n <span className=\"label\">{label || name}</span>\n </StyledTextContent>\n </StyledContent>\n </StyledContentAbsolute>\n </StyledContentWrapper>\n </StyledEntityNameWidget>\n )\n}\n"],"names":["Button","theme","jsx","jsxs","Icon"],"mappings":";;;;;AAGA,MAAM,WAAW,OAAOA,0BAAM;AAAA;AAAA;AAAA;AAAA;AAM9B,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUtC,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOpC,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAKrC,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqB7B,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM3BC,0BAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBf,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,2DACG,wBACE,EAAA,UAAA;AAAA,IAAA,gBACC,SAAS,WACPC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAClB,cAAI,EAAE,QAAQ;AAEZ,4BAAgB,EAAE;AAAA,UAAA,OACb;AAEU,2BAAA;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,WAAU;AAAA,QACV,MAAM,aAAa,gBAAgB;AAAA,MAAA;AAAA,IACrC,IAECA,iDAAA,OAAA,EAAI,OAAO,EAAE,SAAS,gBAAgB,UAAU,KAAM,CAAA,IAEvD;AAAA,IACHA,2BAAA,kBAAA,IAAA,sBAAA,EAAqB,OAAO,EAAE,QAAQ,OAAO,KAAK,GAAA,GACjD,UAAAA,2BAAAA,kBAAAA,IAAC,uBACC,EAAA,UAAAC,2BAAAA,kBAAAA,KAAC,eACE,EAAA,UAAA;AAAA,MAAQ,QAAAD,2BAAA,kBAAA,IAACE,4BAAK,KAAY,CAAA;AAAA,wDAC1B,mBACE,EAAA,UAAA;AAAA,QAAA,QAASF,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,QAAQ,UAAK,MAAA;AAAA,QACrCA,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,SAAS,mBAAS,KAAK,CAAA;AAAA,MAAA,EACzC,CAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;;"}
1
+ {"version":3,"file":"EntityNameWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EntityNameWidget.tsx"],"sourcesContent":["import { Button, Icon, theme } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nconst Expander = styled(Button)`\n background-color: unset;\n padding: 2px !important;\n cursor: pointer;\n`\n\nconst StyledEntityNameWidget = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n height: 100%;\n width: 100%;\n padding-right: 8px;\n`\n\nconst StyledContentWrapper = styled.div`\n width: 100%;\n height: 24px;\n overflow: hidden;\n position: relative;\n`\n\nconst StyledContentAbsolute = styled.div`\n position: absolute;\n inset: 0;\n`\n\nconst StyledContent = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-large);\n padding: 2px 4px;\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n width: fit-content;\n max-width: 100%;\n height: 100%;\n\n /* &:hover {\n &,\n .icon,\n .path {\n color: var(--md-sys-color-primary);\n }\n } */\n`\n\nconst StyledTextContent = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .path {\n ${theme.labelSmall}\n margin-bottom: -4px;\n color: var(--md-sys-color-outline);\n }\n\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`\n\ntype EntityNameWidgetProps = {\n id: string\n label: string\n name: string\n path?: string | null\n showHierarchy?: boolean\n icon?: string | null\n type: string\n isExpanded: boolean\n toggleExpandAll: (id: string) => void\n toggleExpanded: () => void\n}\n\nexport const EntityNameWidget = ({\n id,\n label,\n name,\n path,\n showHierarchy,\n icon,\n type,\n isExpanded,\n toggleExpandAll,\n toggleExpanded,\n}: EntityNameWidgetProps) => {\n return (\n <StyledEntityNameWidget>\n {showHierarchy ? (\n type === 'folder' ? (\n <Expander\n onClick={(e) => {\n e.stopPropagation()\n if (e.altKey) {\n // expand/collapse all children\n toggleExpandAll(id)\n } else {\n // use built-in toggleExpanded function\n toggleExpanded()\n }\n }}\n className=\"expander\"\n icon={isExpanded ? 'expand_more' : 'chevron_right'}\n />\n ) : (\n <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n ) : null}\n <StyledContentWrapper style={{ height: path ? 32 : 24 }}>\n <StyledContentAbsolute>\n <StyledContent>\n {icon && <Icon icon={icon} />}\n <StyledTextContent>\n {path && <span className=\"path\">{path}</span>}\n <span className=\"label\">{label || name}</span>\n </StyledTextContent>\n </StyledContent>\n </StyledContentAbsolute>\n </StyledContentWrapper>\n </StyledEntityNameWidget>\n )\n}\n"],"names":["Button","theme","jsx","jsxs","Icon"],"mappings":";;;;;AAGA,MAAM,WAAW,OAAOA,0BAAM;AAAA;AAAA;AAAA;AAAA;AAM9B,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUtC,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOpC,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAKrC,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqB7B,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM3BC,0BAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBf,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,2DACG,wBACE,EAAA,UAAA;AAAA,IAAA,gBACC,SAAS,WACPC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAClB,cAAI,EAAE,QAAQ;AAEZ,4BAAgB,EAAE;AAAA,UAAA,OACb;AAEU,2BAAA;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,WAAU;AAAA,QACV,MAAM,aAAa,gBAAgB;AAAA,MAAA;AAAA,IACrC,IAECA,iDAAA,OAAA,EAAI,OAAO,EAAE,SAAS,gBAAgB,UAAU,KAAM,CAAA,IAEvD;AAAA,IACHA,2BAAA,kBAAA,IAAA,sBAAA,EAAqB,OAAO,EAAE,QAAQ,OAAO,KAAK,GAAA,GACjD,UAAAA,2BAAAA,kBAAAA,IAAC,uBACC,EAAA,UAAAC,2BAAAA,kBAAAA,KAAC,eACE,EAAA,UAAA;AAAA,MAAQ,QAAAD,2BAAA,kBAAA,IAACE,4BAAK,KAAY,CAAA;AAAA,wDAC1B,mBACE,EAAA,UAAA;AAAA,QAAA,QAASF,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,QAAQ,UAAK,MAAA;AAAA,QACrCA,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,SAAS,mBAAS,KAAK,CAAA;AAAA,MAAA,EACzC,CAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityNameWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EntityNameWidget.tsx"],"sourcesContent":["import { Button, Icon, theme } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nconst Expander = styled(Button)`\n background-color: unset;\n padding: 2px !important;\n cursor: pointer;\n`\n\nconst StyledEntityNameWidget = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n height: 100%;\n width: 100%;\n padding-right: 8px;\n`\n\nconst StyledContentWrapper = styled.div`\n width: 100%;\n height: 24px;\n overflow: hidden;\n position: relative;\n`\n\nconst StyledContentAbsolute = styled.div`\n position: absolute;\n inset: 0;\n`\n\nconst StyledContent = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-large);\n padding: 2px 4px;\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n width: fit-content;\n max-width: 100%;\n height: 100%;\n\n /* &:hover {\n &,\n .icon,\n .path {\n color: var(--md-sys-color-primary);\n }\n } */\n`\n\nconst StyledTextContent = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .path {\n ${theme.labelSmall}\n margin-bottom: -4px;\n color: var(--md-sys-color-outline);\n }\n\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`\n\ntype EntityNameWidgetProps = {\n id: string\n label: string\n name: string\n path?: string | null\n showHierarchy?: boolean\n icon: string | null\n type: string\n isExpanded: boolean\n toggleExpandAll: (id: string) => void\n toggleExpanded: () => void\n}\n\nexport const EntityNameWidget = ({\n id,\n label,\n name,\n path,\n showHierarchy,\n icon,\n type,\n isExpanded,\n toggleExpandAll,\n toggleExpanded,\n}: EntityNameWidgetProps) => {\n return (\n <StyledEntityNameWidget>\n {showHierarchy ? (\n type === 'folder' ? (\n <Expander\n onClick={(e) => {\n e.stopPropagation()\n if (e.altKey) {\n // expand/collapse all children\n toggleExpandAll(id)\n } else {\n // use built-in toggleExpanded function\n toggleExpanded()\n }\n }}\n className=\"expander\"\n icon={isExpanded ? 'expand_more' : 'chevron_right'}\n />\n ) : (\n <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n ) : null}\n <StyledContentWrapper style={{ height: path ? 32 : 24 }}>\n <StyledContentAbsolute>\n <StyledContent>\n {icon && <Icon icon={icon} />}\n <StyledTextContent>\n {path && <span className=\"path\">{path}</span>}\n <span className=\"label\">{label || name}</span>\n </StyledTextContent>\n </StyledContent>\n </StyledContentAbsolute>\n </StyledContentWrapper>\n </StyledEntityNameWidget>\n )\n}\n"],"names":["jsx","jsxs"],"mappings":";;;AAGA,MAAM,WAAW,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAM9B,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUtC,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOpC,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAKrC,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqB7B,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM3B,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBf,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,gDACG,wBACE,EAAA,UAAA;AAAA,IAAA,gBACC,SAAS,WACPA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAClB,cAAI,EAAE,QAAQ;AAEZ,4BAAgB,EAAE;AAAA,UAAA,OACb;AAEU,2BAAA;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,WAAU;AAAA,QACV,MAAM,aAAa,gBAAgB;AAAA,MAAA;AAAA,IACrC,IAECA,sCAAA,OAAA,EAAI,OAAO,EAAE,SAAS,gBAAgB,UAAU,KAAM,CAAA,IAEvD;AAAA,IACHA,kCAAA,IAAA,sBAAA,EAAqB,OAAO,EAAE,QAAQ,OAAO,KAAK,GAAA,GACjD,UAAAA,kCAAAA,IAAC,uBACC,EAAA,UAAAC,kCAAAA,KAAC,eACE,EAAA,UAAA;AAAA,MAAQ,QAAAD,kCAAA,IAAC,QAAK,KAAY,CAAA;AAAA,6CAC1B,mBACE,EAAA,UAAA;AAAA,QAAA,QAASA,kCAAA,IAAA,QAAA,EAAK,WAAU,QAAQ,UAAK,MAAA;AAAA,QACrCA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAS,mBAAS,KAAK,CAAA;AAAA,MAAA,EACzC,CAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"EntityNameWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EntityNameWidget.tsx"],"sourcesContent":["import { Button, Icon, theme } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nconst Expander = styled(Button)`\n background-color: unset;\n padding: 2px !important;\n cursor: pointer;\n`\n\nconst StyledEntityNameWidget = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n height: 100%;\n width: 100%;\n padding-right: 8px;\n`\n\nconst StyledContentWrapper = styled.div`\n width: 100%;\n height: 24px;\n overflow: hidden;\n position: relative;\n`\n\nconst StyledContentAbsolute = styled.div`\n position: absolute;\n inset: 0;\n`\n\nconst StyledContent = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-large);\n padding: 2px 4px;\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n width: fit-content;\n max-width: 100%;\n height: 100%;\n\n /* &:hover {\n &,\n .icon,\n .path {\n color: var(--md-sys-color-primary);\n }\n } */\n`\n\nconst StyledTextContent = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .path {\n ${theme.labelSmall}\n margin-bottom: -4px;\n color: var(--md-sys-color-outline);\n }\n\n span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`\n\ntype EntityNameWidgetProps = {\n id: string\n label: string\n name: string\n path?: string | null\n showHierarchy?: boolean\n icon?: string | null\n type: string\n isExpanded: boolean\n toggleExpandAll: (id: string) => void\n toggleExpanded: () => void\n}\n\nexport const EntityNameWidget = ({\n id,\n label,\n name,\n path,\n showHierarchy,\n icon,\n type,\n isExpanded,\n toggleExpandAll,\n toggleExpanded,\n}: EntityNameWidgetProps) => {\n return (\n <StyledEntityNameWidget>\n {showHierarchy ? (\n type === 'folder' ? (\n <Expander\n onClick={(e) => {\n e.stopPropagation()\n if (e.altKey) {\n // expand/collapse all children\n toggleExpandAll(id)\n } else {\n // use built-in toggleExpanded function\n toggleExpanded()\n }\n }}\n className=\"expander\"\n icon={isExpanded ? 'expand_more' : 'chevron_right'}\n />\n ) : (\n <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n ) : null}\n <StyledContentWrapper style={{ height: path ? 32 : 24 }}>\n <StyledContentAbsolute>\n <StyledContent>\n {icon && <Icon icon={icon} />}\n <StyledTextContent>\n {path && <span className=\"path\">{path}</span>}\n <span className=\"label\">{label || name}</span>\n </StyledTextContent>\n </StyledContent>\n </StyledContentAbsolute>\n </StyledContentWrapper>\n </StyledEntityNameWidget>\n )\n}\n"],"names":["jsx","jsxs"],"mappings":";;;AAGA,MAAM,WAAW,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAM9B,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUtC,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOpC,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAKrC,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqB7B,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM3B,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBf,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,gDACG,wBACE,EAAA,UAAA;AAAA,IAAA,gBACC,SAAS,WACPA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAClB,cAAI,EAAE,QAAQ;AAEZ,4BAAgB,EAAE;AAAA,UAAA,OACb;AAEU,2BAAA;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,WAAU;AAAA,QACV,MAAM,aAAa,gBAAgB;AAAA,MAAA;AAAA,IACrC,IAECA,sCAAA,OAAA,EAAI,OAAO,EAAE,SAAS,gBAAgB,UAAU,KAAM,CAAA,IAEvD;AAAA,IACHA,kCAAA,IAAA,sBAAA,EAAqB,OAAO,EAAE,QAAQ,OAAO,KAAK,GAAA,GACjD,UAAAA,kCAAAA,IAAC,uBACC,EAAA,UAAAC,kCAAAA,KAAC,eACE,EAAA,UAAA;AAAA,MAAQ,QAAAD,kCAAA,IAAC,QAAK,KAAY,CAAA;AAAA,6CAC1B,mBACE,EAAA,UAAA;AAAA,QAAA,QAASA,kCAAA,IAAA,QAAA,EAAK,WAAU,QAAQ,UAAK,MAAA;AAAA,QACrCA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAS,mBAAS,KAAK,CAAA;AAAA,MAAA,EACzC,CAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -194,6 +194,7 @@ const EnumWidget = React.forwardRef(
194
194
  hasMultipleValues: false,
195
195
  isOpen: false,
196
196
  isItem: true,
197
+ isMultiSelect,
197
198
  isSelected,
198
199
  ...pt == null ? void 0 : pt.template,
199
200
  className: clsx("enum-dropdown-item", (_a2 = pt == null ? void 0 : pt.template) == null ? void 0 : _a2.className)
@@ -279,7 +280,7 @@ const EnumCellValue = ({
279
280
  style: { rotate: isOpen ? "180deg" : "0" }
280
281
  }
281
282
  ),
282
- isItem && isSelected && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
283
+ isItem && isSelected && isMultiSelect && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
283
284
  ayonReactComponents.Icon,
284
285
  {
285
286
  icon: "close",
@@ -1 +1 @@
1
- {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0 2px;\n cursor: pointer;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n`\n\nconst StyledValuesContainer = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n\n overflow: hidden;\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledValue = styled.span`\n /* push expand icon to the end */\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n text-overflow: ellipsis;\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n text-align: center;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n margin-left: auto;\n transition: rotate 0.2s;\n`\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n selectedOptions = [\n ...selectedOptions,\n {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n },\n ]\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleClosedClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n // if we click on the chevron icon, then we open the dropdown spright away (put it into editing mode)\n if (e.target instanceof HTMLElement && e.target.closest('.expand') && onOpen && !isReadOnly) {\n onOpen()\n // stop the event from propagating to the parent element because a single click on the cell would close the dropdown\n e.stopPropagation()\n }\n }\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n const filteredValue = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // take first value as the type is not list]\n onChange(filteredValue[0], 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={options}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n onClick={handleClosedClick}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n\ninterface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: AttributeEnumItem[]\n placeholder?: string\n hasMultipleValues: boolean\n isMultiSelect?: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n}\n\nconst EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n className,\n ...props\n}: EnumTemplateProps) => {\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget className={clsx(className, { selected: isSelected, item: isItem })} {...props}>\n <StyledValuesContainer>\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper key={option.value.toString() + i}>\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) })}\n />\n ) : option.icon ? (\n <Icon icon={option.icon} style={{ color: option.color }} />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color: backgroundColor ? 'inherit' : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n }}\n className={clsx({ placeholder: isPlaceholder })}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandIcon\n className=\"expand\"\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0' }}\n />\n )}\n {isItem && isSelected && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4 }}\n aria-label=\"Deselect item\"\n />\n )}\n </StyledWidget>\n )\n}\n"],"names":["Icon","Dropdown","forwardRef","useRef","useState","useEffect","_a","value","jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0 2px;\n cursor: pointer;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n`\n\nconst StyledValuesContainer = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n\n overflow: hidden;\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledValue = styled.span`\n /* push expand icon to the end */\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n text-overflow: ellipsis;\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n text-align: center;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n margin-left: auto;\n transition: rotate 0.2s;\n`\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n selectedOptions = [\n ...selectedOptions,\n {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n },\n ]\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleClosedClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n // if we click on the chevron icon, then we open the dropdown spright away (put it into editing mode)\n if (e.target instanceof HTMLElement && e.target.closest('.expand') && onOpen && !isReadOnly) {\n onOpen()\n // stop the event from propagating to the parent element because a single click on the cell would close the dropdown\n e.stopPropagation()\n }\n }\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n const filteredValue = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // take first value as the type is not list]\n onChange(filteredValue[0], 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={options}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n onClick={handleClosedClick}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n\ninterface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: AttributeEnumItem[]\n placeholder?: string\n hasMultipleValues: boolean\n isMultiSelect: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n}\n\nconst EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n className,\n ...props\n}: EnumTemplateProps) => {\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget className={clsx(className, { selected: isSelected, item: isItem })} {...props}>\n <StyledValuesContainer>\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper key={option.value.toString() + i}>\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) })}\n />\n ) : option.icon ? (\n <Icon icon={option.icon} style={{ color: option.color }} />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color: backgroundColor ? 'inherit' : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n }}\n className={clsx({ placeholder: isPlaceholder })}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandIcon\n className=\"expand\"\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0' }}\n />\n )}\n {isItem && isSelected && isMultiSelect && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4 }}\n aria-label=\"Deselect item\"\n />\n )}\n </StyledWidget>\n )\n}\n"],"names":["Icon","Dropdown","forwardRef","useRef","useState","useEffect","_a","value","jsx","jsxs"],"mappings":"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"}
@@ -192,6 +192,7 @@ const EnumWidget = forwardRef(
192
192
  hasMultipleValues: false,
193
193
  isOpen: false,
194
194
  isItem: true,
195
+ isMultiSelect,
195
196
  isSelected,
196
197
  ...pt == null ? void 0 : pt.template,
197
198
  className: clsx("enum-dropdown-item", (_a2 = pt == null ? void 0 : pt.template) == null ? void 0 : _a2.className)
@@ -277,7 +278,7 @@ const EnumCellValue = ({
277
278
  style: { rotate: isOpen ? "180deg" : "0" }
278
279
  }
279
280
  ),
280
- isItem && isSelected && /* @__PURE__ */ jsxRuntimeExports.jsx(
281
+ isItem && isSelected && isMultiSelect && /* @__PURE__ */ jsxRuntimeExports.jsx(
281
282
  Icon,
282
283
  {
283
284
  icon: "close",
@@ -1 +1 @@
1
- {"version":3,"file":"EnumWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0 2px;\n cursor: pointer;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n`\n\nconst StyledValuesContainer = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n\n overflow: hidden;\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledValue = styled.span`\n /* push expand icon to the end */\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n text-overflow: ellipsis;\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n text-align: center;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n margin-left: auto;\n transition: rotate 0.2s;\n`\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n selectedOptions = [\n ...selectedOptions,\n {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n },\n ]\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleClosedClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n // if we click on the chevron icon, then we open the dropdown spright away (put it into editing mode)\n if (e.target instanceof HTMLElement && e.target.closest('.expand') && onOpen && !isReadOnly) {\n onOpen()\n // stop the event from propagating to the parent element because a single click on the cell would close the dropdown\n e.stopPropagation()\n }\n }\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n const filteredValue = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // take first value as the type is not list]\n onChange(filteredValue[0], 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={options}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n onClick={handleClosedClick}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n\ninterface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: AttributeEnumItem[]\n placeholder?: string\n hasMultipleValues: boolean\n isMultiSelect?: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n}\n\nconst EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n className,\n ...props\n}: EnumTemplateProps) => {\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget className={clsx(className, { selected: isSelected, item: isItem })} {...props}>\n <StyledValuesContainer>\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper key={option.value.toString() + i}>\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) })}\n />\n ) : option.icon ? (\n <Icon icon={option.icon} style={{ color: option.color }} />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color: backgroundColor ? 'inherit' : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n }}\n className={clsx({ placeholder: isPlaceholder })}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandIcon\n className=\"expand\"\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0' }}\n />\n )}\n {isItem && isSelected && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4 }}\n aria-label=\"Deselect item\"\n />\n )}\n </StyledWidget>\n )\n}\n"],"names":["_a","value","jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"EnumWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0 2px;\n cursor: pointer;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n`\n\nconst StyledValuesContainer = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n\n overflow: hidden;\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledValue = styled.span`\n /* push expand icon to the end */\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n text-overflow: ellipsis;\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n text-align: center;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n margin-left: auto;\n transition: rotate 0.2s;\n`\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n selectedOptions = [\n ...selectedOptions,\n {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n },\n ]\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleClosedClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n // if we click on the chevron icon, then we open the dropdown spright away (put it into editing mode)\n if (e.target instanceof HTMLElement && e.target.closest('.expand') && onOpen && !isReadOnly) {\n onOpen()\n // stop the event from propagating to the parent element because a single click on the cell would close the dropdown\n e.stopPropagation()\n }\n }\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n const filteredValue = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // take first value as the type is not list]\n onChange(filteredValue[0], 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={options}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n onClick={handleClosedClick}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n\ninterface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: AttributeEnumItem[]\n placeholder?: string\n hasMultipleValues: boolean\n isMultiSelect: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n}\n\nconst EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n className,\n ...props\n}: EnumTemplateProps) => {\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget className={clsx(className, { selected: isSelected, item: isItem })} {...props}>\n <StyledValuesContainer>\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper key={option.value.toString() + i}>\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) })}\n />\n ) : option.icon ? (\n <Icon icon={option.icon} style={{ color: option.color }} />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color: backgroundColor ? 'inherit' : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n }}\n className={clsx({ placeholder: isPlaceholder })}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandIcon\n className=\"expand\"\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0' }}\n />\n )}\n {isItem && isSelected && isMultiSelect && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4 }}\n aria-label=\"Deselect item\"\n />\n )}\n </StyledWidget>\n )\n}\n"],"names":["_a","value","jsx","jsxs"],"mappings":";;;;;AAOA,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiC5B,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrC,MAAM,qBAAqB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUlC,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiB3B,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUzB,MAAM,mBAAmB,OAAO,IAAI;AAAA;AAAA;AAAA;AAKpC,MAAM,iBAAiB,OAAO,QAAQ;AAAA;AAAA;AAAA;AAqBtC,MAAM,iBAAiB,CAAC,OAA2B,OAAgB;AACjE,SACE,KAAK,WAAW,GAAG,KACnB,KAAK,WAAW,IAAI,KACpB,KAAK,WAAW,KAAK,KACrB,KAAK,WAAW,SAAS,KACzB,KAAK,WAAW,UAAU;AAE9B;AAEA,MAAM,iBAAiB,CAAC,QAAyB,IAAI,SAAS,QAAQ;AAE/D,MAAM,aAAa;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,KAEL,SACG;;AAEH,UAAM,iBAAiB,MAAM,IAAI,CAAC,MAAM,uBAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,QAAI,kBAAkB,QAAQ;AAAA,MAAO,CAAC,WACpC,eAAe,SAAS,OAAO,MAAM,SAAU,CAAA;AAAA,IACjD;AAGe,mBAAA,QAAQ,CAAC,QAAQ;AAC1B,UAAA,CAAC,QAAQ,KAAK,CAAC,WAAW,OAAO,UAAU,GAAG,GAAG;AACjC,0BAAA;AAAA,UAChB,GAAG;AAAA,UACH;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,YACP,OAAO,qBACH,0CACA;AAAA,YACJ,MAAM,qBAAqB,SAAY;AAAA,UAAA;AAAA,QAE3C;AAAA,MAAA;AAAA,IACF,CACD;AACK,UAAA,oBAAoB,gBAAgB,SAAS;AAE7C,UAAA,cAAc,OAAoB,IAAI;AAEtC,UAAA,oBAAoB,CAAC,MAAyC;AAE9D,UAAA,EAAE,kBAAkB,eAAe,EAAE,OAAO,QAAQ,SAAS,KAAK,UAAU,CAAC,YAAY;AACpF,eAAA;AAEP,UAAE,gBAAgB;AAAA,MAAA;AAAA,IAEtB;AAEA,UAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,cAAU,MAAM;;AACV,UAAA,aAAa,YAAY,WAAW,UAAU;AAChD,SAAC,YAAY,QAAQ,YAAUA,MAAA,YAAY,YAAZ,gBAAAA,IAAqB;AACpD,wBAAgB,IAAI;AAAA,MAAA,OACf;AACL,wBAAgB,KAAK;AAAA,MAAA;AAAA,OAEtB,CAAC,WAAW,YAAY,SAAS,QAAQ,CAAC;AAG7C,cAAU,MAAM;;AACd,UAAI,cAAc;AACV,cAAA,eAAcA,MAAA,YAAY,YAAZ,gBAAAA,IAAqB;AACnC,cAAA,YAAY,2CAAa,cAAc;AAC7C,YAAI,WAAW;AACb,oBAAU,MAAM;AAEhB,oBAAU,MAAM,UAAU;AAAA,QAAA;AAAA,MAC5B;AAAA,IACF,GACC,CAAC,YAAY,CAAC;AAEjB,UAAM,gBAAgB,CAAC,EAAC,6BAAM,SAAS;AAEjC,UAAA,eAAe,CAACC,WAAoB;AACxC,YAAM,gBAAgB,qBAClBA,SACAA,OAAM,OAAO,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEtD,UAAA,6BAAM,SAAS,SAAS;AAC1B,iBAAS,eAAe,OAAO;AAAA,MAAA,OAC1B;AAEI,iBAAA,cAAc,CAAC,GAAG,OAAO;AAAA,MAAA;AAAA,IAEtC;AAEA,QAAI,WAAW;AAEX,aAAAC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,OAAO;AAAA,UACP,KAAK;AAAA,UACL,eAAe,CAAC,QAAQ,UAAU,WAChC;;AAAAA,qDAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA,mBAAmB,SAAS,SAAS;AAAA,gBACrC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACC,GAAG,yBAAI;AAAA,gBACR,aAAa,cAAc;AAAA,gBAC3B,WAAW,KAAK,wBAAuBF,MAAA,yBAAI,aAAJ,gBAAAA,IAAc,SAAS;AAAA,cAAA;AAAA,YAChE;AAAA;AAAA,UAEF,cAAc,CAAC,QAAQ,WAAW,eAChC;;AAAAE,qDAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,iBAAiB,CAAC,MAAM;AAAA,gBACxB,mBAAmB;AAAA,gBACnB,QAAQ;AAAA,gBACR,QAAM;AAAA,gBACN;AAAA,gBACA;AAAA,gBACC,GAAG,yBAAI;AAAA,gBACR,WAAW,KAAK,uBAAsBF,MAAA,yBAAI,aAAJ,gBAAAA,IAAc,SAAS;AAAA,cAAA;AAAA,YAC/D;AAAA;AAAA,UAEF,aAAW;AAAA,UACX,aAAa;AAAA,UACb,aAAa;AAAA,UACb,UAAU;AAAA,UACV,gBAAc;AAAA,UACb,GAAG;AAAA,UACJ,UAAU;AAAA,UACV,SAAS;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAKF,WAAAE,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACC,GAAG,yBAAI;AAAA,QACR,aAAa,cAAc;AAAA,QAC3B,WAAW,KAAK,eAAc,8BAAI,aAAJ,mBAAc,WAAW,cAAc,SAAS;AAAA,MAAA;AAAA,IAChF;AAAA,EAAA;AAGN;AAaA,MAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAyB;AAEvB,QAAM,qBAAqB,gBAAgB,MAAM,CAAC,WAAW,OAAO,IAAI;AAGlE,QAAA,aAAa,CAAC,qBAAqB,CAAC;AAE1C,QAAM,kBAAkB,CAAC,sBAAsB,iBAAiB,CAAC;AAE3D,QAAA,gBAAgB,CAAC,gBAAgB,UAAU;AACjD,MAAI,eAAe;AACC,sBAAA;AAAA,MAChB;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,EAAA;AAGF,SACGC,kCAAA,KAAA,cAAA,EAAa,WAAW,KAAK,WAAW,EAAE,UAAU,YAAY,MAAM,OAAA,CAAQ,GAAI,GAAG,OACpF,UAAA;AAAA,IAAAD,kCAAAA,IAAC,yBACE,UAAgB,gBAAA,IAAI,CAAC,QAAQ,6CAC3B,oBACE,EAAA,UAAA;AAAA,MAAA,OAAO,QAAQ,eAAe,OAAO,IAAI,IACxCA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK,OAAO;AAAA,UACZ,WAAW,KAAK,EAAE,QAAQ,eAAe,OAAO,IAAI,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA,IAEvD,OAAO,OACTA,kCAAAA,IAAC,QAAK,MAAM,OAAO,MAAM,OAAO,EAAE,OAAO,OAAO,SAAS,IACvD;AAAA,OAEF,cAAc,CAAC,OAAO,SACtBA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,OAAO,kBAAkB,YAAY,OAAO;AAAA,YAC5C,iBAAiB,kBACb,OAAO,SAAS,0CAChB;AAAA,UACN;AAAA,UACA,WAAW,KAAK,EAAE,aAAa,eAAe;AAAA,UAE7C,UAAO,OAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACV,EAAA,GArBqB,OAAO,MAAM,SAAA,IAAa,CAuBnD,CACD,GACH;AAAA,IACC,CAAC,UAAU,CAAC,cACXA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAO,EAAE,QAAQ,SAAS,WAAW,IAAI;AAAA,MAAA;AAAA,IAC3C;AAAA,IAED,UAAU,cAAc,iBACvBA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO,EAAE,YAAY,QAAQ,aAAa,EAAE;AAAA,QAC5C,cAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EACb,GAEJ;AAEJ;"}
@@ -4,17 +4,32 @@ const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
4
4
  const React = require("react");
5
5
  const TextWidgetInput = require("./TextWidgetInput.cjs.js");
6
6
  const styled = require("styled-components");
7
+ const ayonReactComponents = require("@ynput/ayon-react-components");
7
8
  const StyledBaseTextWidget = styled.span`
8
9
  overflow: hidden;
9
10
  text-overflow: ellipsis;
10
11
  white-space: nowrap;
12
+
13
+ display: flex;
14
+ gap: 4px;
11
15
  `;
12
16
  const TextWidget = React.forwardRef(
13
- ({ value, isEditing, isInherited, onChange, onCancelEdit, ...props }, ref) => {
17
+ ({ value, option, isEditing, isInherited, onChange, onCancelEdit, style, ...props }, ref) => {
14
18
  if (isEditing) {
15
19
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(TextWidgetInput.TextWidgetInput, { value, onChange, onCancel: onCancelEdit, type: "text" });
16
20
  }
17
- return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(StyledBaseTextWidget, { ...props, ref, children: value });
21
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(StyledBaseTextWidget, { style: { color: option == null ? void 0 : option.color, ...style }, ...props, ref, children: [
22
+ (option == null ? void 0 : option.icon) && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
23
+ ayonReactComponents.Icon,
24
+ {
25
+ icon: option.icon,
26
+ style: {
27
+ color: option.color
28
+ }
29
+ }
30
+ ),
31
+ (option == null ? void 0 : option.label) || value
32
+ ] });
18
33
  }
19
34
  );
20
35
  exports.TextWidget = TextWidget;
@@ -1 +1 @@
1
- {"version":3,"file":"TextWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/TextWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { TextWidgetInput } from './TextWidgetInput'\nimport { WidgetBaseProps } from './CellWidget'\nimport styled from 'styled-components'\nimport { AttributeData } from '../types'\n\nconst StyledBaseTextWidget = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\ntype AttributeType = AttributeData['type']\nexport type TextWidgetType = Extract<AttributeType, 'string' | 'integer' | 'float'>\n\nexport interface TextWidgetProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n isInherited?: boolean\n}\n\nexport const TextWidget = forwardRef<HTMLSpanElement, TextWidgetProps>(\n ({ value, isEditing, isInherited, onChange, onCancelEdit, ...props }, ref) => {\n if (isEditing) {\n return (\n <TextWidgetInput value={value} onChange={onChange} onCancel={onCancelEdit} type={'text'} />\n )\n }\n\n return (\n <StyledBaseTextWidget {...props} ref={ref}>\n {value}\n </StyledBaseTextWidget>\n )\n },\n)\n"],"names":["forwardRef","TextWidgetInput","jsx"],"mappings":";;;;;;AAMA,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAgB7B,MAAM,aAAaA,MAAA;AAAA,EACxB,CAAC,EAAE,OAAO,WAAW,aAAa,UAAU,cAAc,GAAG,MAAM,GAAG,QAAQ;AAC5E,QAAI,WAAW;AACb,8DACGC,iCAAgB,EAAA,OAAc,UAAoB,UAAU,cAAc,MAAM,QAAQ;AAAA,IAAA;AAI7F,WACGC,2BAAAA,kBAAAA,IAAA,sBAAA,EAAsB,GAAG,OAAO,KAC9B,UACH,OAAA;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"TextWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/TextWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { TextWidgetInput } from './TextWidgetInput'\nimport { WidgetBaseProps } from './CellWidget'\nimport styled from 'styled-components'\nimport { AttributeData } from '../types'\nimport { AttributeEnumItem } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\n\nconst StyledBaseTextWidget = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n display: flex;\n gap: 4px;\n`\n\ntype AttributeType = AttributeData['type']\nexport type TextWidgetType = Extract<AttributeType, 'string' | 'integer' | 'float'>\n\nexport interface TextWidgetProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n option?: AttributeEnumItem\n isInherited?: boolean\n}\n\nexport const TextWidget = forwardRef<HTMLSpanElement, TextWidgetProps>(\n ({ value, option, isEditing, isInherited, onChange, onCancelEdit, style, ...props }, ref) => {\n if (isEditing) {\n return (\n <TextWidgetInput value={value} onChange={onChange} onCancel={onCancelEdit} type={'text'} />\n )\n }\n\n return (\n <StyledBaseTextWidget style={{ color: option?.color, ...style }} {...props} ref={ref}>\n {option?.icon && (\n <Icon\n icon={option.icon}\n style={{\n color: option.color,\n }}\n />\n )}\n {option?.label || value}\n </StyledBaseTextWidget>\n )\n },\n)\n"],"names":["forwardRef","TextWidgetInput","jsxs","jsx","Icon"],"mappings":";;;;;;;AAQA,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoB7B,MAAM,aAAaA,MAAA;AAAA,EACxB,CAAC,EAAE,OAAO,QAAQ,WAAW,aAAa,UAAU,cAAc,OAAO,GAAG,MAAM,GAAG,QAAQ;AAC3F,QAAI,WAAW;AACb,8DACGC,iCAAgB,EAAA,OAAc,UAAoB,UAAU,cAAc,MAAM,QAAQ;AAAA,IAAA;AAI7F,WACGC,2BAAA,kBAAA,KAAA,sBAAA,EAAqB,OAAO,EAAE,OAAO,iCAAQ,OAAO,GAAG,MAAM,GAAI,GAAG,OAAO,KACzE,UAAA;AAAA,OAAA,iCAAQ,SACPC,2BAAA,kBAAA;AAAA,QAACC,oBAAA;AAAA,QAAA;AAAA,UACC,MAAM,OAAO;AAAA,UACb,OAAO;AAAA,YACL,OAAO,OAAO;AAAA,UAAA;AAAA,QAChB;AAAA,MACF;AAAA,OAED,iCAAQ,UAAS;AAAA,IAAA,GACpB;AAAA,EAAA;AAGN;;"}
@@ -2,17 +2,32 @@ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.j
2
2
  import { forwardRef } from "react";
3
3
  import { TextWidgetInput } from "./TextWidgetInput.es.js";
4
4
  import styled from "styled-components";
5
+ import { Icon } from "@ynput/ayon-react-components";
5
6
  const StyledBaseTextWidget = styled.span`
6
7
  overflow: hidden;
7
8
  text-overflow: ellipsis;
8
9
  white-space: nowrap;
10
+
11
+ display: flex;
12
+ gap: 4px;
9
13
  `;
10
14
  const TextWidget = forwardRef(
11
- ({ value, isEditing, isInherited, onChange, onCancelEdit, ...props }, ref) => {
15
+ ({ value, option, isEditing, isInherited, onChange, onCancelEdit, style, ...props }, ref) => {
12
16
  if (isEditing) {
13
17
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TextWidgetInput, { value, onChange, onCancel: onCancelEdit, type: "text" });
14
18
  }
15
- return /* @__PURE__ */ jsxRuntimeExports.jsx(StyledBaseTextWidget, { ...props, ref, children: value });
19
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(StyledBaseTextWidget, { style: { color: option == null ? void 0 : option.color, ...style }, ...props, ref, children: [
20
+ (option == null ? void 0 : option.icon) && /* @__PURE__ */ jsxRuntimeExports.jsx(
21
+ Icon,
22
+ {
23
+ icon: option.icon,
24
+ style: {
25
+ color: option.color
26
+ }
27
+ }
28
+ ),
29
+ (option == null ? void 0 : option.label) || value
30
+ ] });
16
31
  }
17
32
  );
18
33
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"TextWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/TextWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { TextWidgetInput } from './TextWidgetInput'\nimport { WidgetBaseProps } from './CellWidget'\nimport styled from 'styled-components'\nimport { AttributeData } from '../types'\n\nconst StyledBaseTextWidget = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\ntype AttributeType = AttributeData['type']\nexport type TextWidgetType = Extract<AttributeType, 'string' | 'integer' | 'float'>\n\nexport interface TextWidgetProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n isInherited?: boolean\n}\n\nexport const TextWidget = forwardRef<HTMLSpanElement, TextWidgetProps>(\n ({ value, isEditing, isInherited, onChange, onCancelEdit, ...props }, ref) => {\n if (isEditing) {\n return (\n <TextWidgetInput value={value} onChange={onChange} onCancel={onCancelEdit} type={'text'} />\n )\n }\n\n return (\n <StyledBaseTextWidget {...props} ref={ref}>\n {value}\n </StyledBaseTextWidget>\n )\n },\n)\n"],"names":["jsx"],"mappings":";;;;AAMA,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAgB7B,MAAM,aAAa;AAAA,EACxB,CAAC,EAAE,OAAO,WAAW,aAAa,UAAU,cAAc,GAAG,MAAM,GAAG,QAAQ;AAC5E,QAAI,WAAW;AACb,mDACG,iBAAgB,EAAA,OAAc,UAAoB,UAAU,cAAc,MAAM,QAAQ;AAAA,IAAA;AAI7F,WACGA,kCAAAA,IAAA,sBAAA,EAAsB,GAAG,OAAO,KAC9B,UACH,OAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"TextWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/TextWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { TextWidgetInput } from './TextWidgetInput'\nimport { WidgetBaseProps } from './CellWidget'\nimport styled from 'styled-components'\nimport { AttributeData } from '../types'\nimport { AttributeEnumItem } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\n\nconst StyledBaseTextWidget = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n display: flex;\n gap: 4px;\n`\n\ntype AttributeType = AttributeData['type']\nexport type TextWidgetType = Extract<AttributeType, 'string' | 'integer' | 'float'>\n\nexport interface TextWidgetProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n option?: AttributeEnumItem\n isInherited?: boolean\n}\n\nexport const TextWidget = forwardRef<HTMLSpanElement, TextWidgetProps>(\n ({ value, option, isEditing, isInherited, onChange, onCancelEdit, style, ...props }, ref) => {\n if (isEditing) {\n return (\n <TextWidgetInput value={value} onChange={onChange} onCancel={onCancelEdit} type={'text'} />\n )\n }\n\n return (\n <StyledBaseTextWidget style={{ color: option?.color, ...style }} {...props} ref={ref}>\n {option?.icon && (\n <Icon\n icon={option.icon}\n style={{\n color: option.color,\n }}\n />\n )}\n {option?.label || value}\n </StyledBaseTextWidget>\n )\n },\n)\n"],"names":["jsxs","jsx"],"mappings":";;;;;AAQA,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoB7B,MAAM,aAAa;AAAA,EACxB,CAAC,EAAE,OAAO,QAAQ,WAAW,aAAa,UAAU,cAAc,OAAO,GAAG,MAAM,GAAG,QAAQ;AAC3F,QAAI,WAAW;AACb,mDACG,iBAAgB,EAAA,OAAc,UAAoB,UAAU,cAAc,MAAM,QAAQ;AAAA,IAAA;AAI7F,WACGA,kCAAA,KAAA,sBAAA,EAAqB,OAAO,EAAE,OAAO,iCAAQ,OAAO,GAAG,MAAM,GAAI,GAAG,OAAO,KACzE,UAAA;AAAA,OAAA,iCAAQ,SACPC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,OAAO;AAAA,UACb,OAAO;AAAA,YACL,OAAO,OAAO;AAAA,UAAA;AAAA,QAChB;AAAA,MACF;AAAA,OAED,iCAAQ,UAAS;AAAA,IAAA,GACpB;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
4
+ const ayonReactComponents = require("@ynput/ayon-react-components");
5
+ const React = require("react");
6
+ const styled = require("styled-components");
7
+ const Wrapper = styled.div`
8
+ position: absolute;
9
+ inset: 0;
10
+ padding: 4px;
11
+ `;
12
+ const Inner = styled.div`
13
+ position: relative;
14
+ max-height: 100%;
15
+ height: auto;
16
+ width: 100%;
17
+ aspect-ratio: 1.77;
18
+
19
+ background-color: var(--md-sys-color-surface-container-lowest);
20
+ border-radius: 2px;
21
+ overflow: hidden;
22
+ `;
23
+ const Image = styled.img`
24
+ position: relative;
25
+ width: 100%;
26
+ height: 100%;
27
+ object-fit: cover;
28
+ z-index: 20;
29
+ `;
30
+ const StyledIcon = styled(ayonReactComponents.Icon)`
31
+ position: absolute;
32
+ top: 50%;
33
+ left: 50%;
34
+ transform: translate(-50%, -50%);
35
+ z-index: 10;
36
+ `;
37
+ const ThumbnailWidgetWrapper = ({
38
+ projectName,
39
+ entityType,
40
+ entityId,
41
+ updatedAt,
42
+ icon
43
+ }) => {
44
+ const valid = projectName && entityType && entityId && updatedAt;
45
+ const url = projectName && `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail?updatedAt=${updatedAt}`;
46
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Wrapper, { className: "thumbnail-widget", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(Inner, { children: [
47
+ icon && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(StyledIcon, { icon }),
48
+ valid && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Image, { src: url })
49
+ ] }) }, url);
50
+ };
51
+ const ThumbnailWidget = React.memo(ThumbnailWidgetWrapper);
52
+ exports.ThumbnailWidget = ThumbnailWidget;
53
+ //# sourceMappingURL=ThumbnailWidget.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/ThumbnailWidget.tsx"],"sourcesContent":["import { Icon } from '@ynput/ayon-react-components'\nimport { FC, memo } from 'react'\nimport styled from 'styled-components'\n\nconst Wrapper = styled.div`\n position: absolute;\n inset: 0;\n padding: 4px;\n`\n\nconst Inner = styled.div`\n position: relative;\n max-height: 100%;\n height: auto;\n width: 100%;\n aspect-ratio: 1.77;\n\n background-color: var(--md-sys-color-surface-container-lowest);\n border-radius: 2px;\n overflow: hidden;\n`\n\nconst Image = styled.img`\n position: relative;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 20;\n`\n\nconst StyledIcon = styled(Icon)`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n`\n\ninterface ThumbnailWidgetProps {\n projectName: string\n entityType: string\n entityId: string\n updatedAt?: string\n icon?: string | null\n}\n\nconst ThumbnailWidgetWrapper: FC<ThumbnailWidgetProps> = ({\n projectName,\n entityType,\n entityId,\n updatedAt,\n icon,\n}) => {\n const valid = projectName && entityType && entityId && updatedAt\n const url =\n projectName &&\n `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail?updatedAt=${updatedAt}`\n\n return (\n <Wrapper className=\"thumbnail-widget\" key={url}>\n <Inner>\n {icon && <StyledIcon icon={icon} />}\n {valid && <Image src={url} />}\n </Inner>\n </Wrapper>\n )\n}\n\nexport const ThumbnailWidget = memo(ThumbnailWidgetWrapper)\n"],"names":["Icon","jsx","memo"],"mappings":";;;;;;AAIA,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAMvB,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYrB,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrB,MAAM,aAAa,OAAOA,wBAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgB9B,MAAM,yBAAmD,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,QAAQ,eAAe,cAAc,YAAY;AACjD,QAAA,MACJ,eACA,iBAAiB,WAAW,IAAI,UAAU,KAAK,QAAQ,wBAAwB,SAAS;AAE1F,SACGC,2BAAA,kBAAA,IAAA,SAAA,EAAQ,WAAU,oBACjB,4DAAC,OACE,EAAA,UAAA;AAAA,IAAQ,QAAAA,2BAAA,kBAAA,IAAC,cAAW,KAAY,CAAA;AAAA,IAChC,SAASA,2BAAAA,kBAAAA,IAAC,OAAM,EAAA,KAAK,IAAK,CAAA;AAAA,EAAA,EAC7B,CAAA,KAJyC,GAK3C;AAEJ;AAEa,MAAA,kBAAkBC,WAAK,sBAAsB;;"}
@@ -0,0 +1,53 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { Icon } from "@ynput/ayon-react-components";
3
+ import { memo } from "react";
4
+ import styled from "styled-components";
5
+ const Wrapper = styled.div`
6
+ position: absolute;
7
+ inset: 0;
8
+ padding: 4px;
9
+ `;
10
+ const Inner = styled.div`
11
+ position: relative;
12
+ max-height: 100%;
13
+ height: auto;
14
+ width: 100%;
15
+ aspect-ratio: 1.77;
16
+
17
+ background-color: var(--md-sys-color-surface-container-lowest);
18
+ border-radius: 2px;
19
+ overflow: hidden;
20
+ `;
21
+ const Image = styled.img`
22
+ position: relative;
23
+ width: 100%;
24
+ height: 100%;
25
+ object-fit: cover;
26
+ z-index: 20;
27
+ `;
28
+ const StyledIcon = styled(Icon)`
29
+ position: absolute;
30
+ top: 50%;
31
+ left: 50%;
32
+ transform: translate(-50%, -50%);
33
+ z-index: 10;
34
+ `;
35
+ const ThumbnailWidgetWrapper = ({
36
+ projectName,
37
+ entityType,
38
+ entityId,
39
+ updatedAt,
40
+ icon
41
+ }) => {
42
+ const valid = projectName && entityType && entityId && updatedAt;
43
+ const url = projectName && `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail?updatedAt=${updatedAt}`;
44
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Wrapper, { className: "thumbnail-widget", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Inner, { children: [
45
+ icon && /* @__PURE__ */ jsxRuntimeExports.jsx(StyledIcon, { icon }),
46
+ valid && /* @__PURE__ */ jsxRuntimeExports.jsx(Image, { src: url })
47
+ ] }) }, url);
48
+ };
49
+ const ThumbnailWidget = memo(ThumbnailWidgetWrapper);
50
+ export {
51
+ ThumbnailWidget
52
+ };
53
+ //# sourceMappingURL=ThumbnailWidget.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/ThumbnailWidget.tsx"],"sourcesContent":["import { Icon } from '@ynput/ayon-react-components'\nimport { FC, memo } from 'react'\nimport styled from 'styled-components'\n\nconst Wrapper = styled.div`\n position: absolute;\n inset: 0;\n padding: 4px;\n`\n\nconst Inner = styled.div`\n position: relative;\n max-height: 100%;\n height: auto;\n width: 100%;\n aspect-ratio: 1.77;\n\n background-color: var(--md-sys-color-surface-container-lowest);\n border-radius: 2px;\n overflow: hidden;\n`\n\nconst Image = styled.img`\n position: relative;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 20;\n`\n\nconst StyledIcon = styled(Icon)`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n`\n\ninterface ThumbnailWidgetProps {\n projectName: string\n entityType: string\n entityId: string\n updatedAt?: string\n icon?: string | null\n}\n\nconst ThumbnailWidgetWrapper: FC<ThumbnailWidgetProps> = ({\n projectName,\n entityType,\n entityId,\n updatedAt,\n icon,\n}) => {\n const valid = projectName && entityType && entityId && updatedAt\n const url =\n projectName &&\n `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail?updatedAt=${updatedAt}`\n\n return (\n <Wrapper className=\"thumbnail-widget\" key={url}>\n <Inner>\n {icon && <StyledIcon icon={icon} />}\n {valid && <Image src={url} />}\n </Inner>\n </Wrapper>\n )\n}\n\nexport const ThumbnailWidget = memo(ThumbnailWidgetWrapper)\n"],"names":["jsx"],"mappings":";;;;AAIA,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAMvB,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYrB,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrB,MAAM,aAAa,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgB9B,MAAM,yBAAmD,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,QAAQ,eAAe,cAAc,YAAY;AACjD,QAAA,MACJ,eACA,iBAAiB,WAAW,IAAI,UAAU,KAAK,QAAQ,wBAAwB,SAAS;AAE1F,SACGA,kCAAA,IAAA,SAAA,EAAQ,WAAU,oBACjB,iDAAC,OACE,EAAA,UAAA;AAAA,IAAQ,QAAAA,kCAAA,IAAC,cAAW,KAAY,CAAA;AAAA,IAChC,SAASA,kCAAAA,IAAC,OAAM,EAAA,KAAK,IAAK,CAAA;AAAA,EAAA,EAC7B,CAAA,KAJyC,GAK3C;AAEJ;AAEa,MAAA,kBAAkB,KAAK,sBAAsB;"}
@@ -5,14 +5,14 @@ const React = require("react");
5
5
  const ayonReactComponents = require("@ynput/ayon-react-components");
6
6
  const treetable_esm = require("../../../node_modules/primereact/treetable/treetable.esm.cjs.js");
7
7
  const column_esm = require("../../../node_modules/primereact/column/column.esm.cjs.js");
8
- require("../../../../_virtual/lodash.cjs.js");
8
+ require("lodash");
9
9
  require("react-toastify");
10
10
  const groupResult = require("../../util/groupResult.cjs.js");
11
11
  require("../../util/pubsub.cjs.js");
12
12
  require("../ContextMenu/ContextMenuContext.cjs.js");
13
13
  ;/* empty css */
14
- const useCreateContextMenu = require("../ContextMenu/useCreateContextMenu.cjs.js");
15
14
  require("clsx");
15
+ const useCreateContextMenu = require("../ContextMenu/useCreateContextMenu.cjs.js");
16
16
  require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");
17
17
  require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");
18
18
  require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");
@@ -65,6 +65,10 @@ require("../../api/queries/authentication/getAuthentication.cjs.js");
65
65
  require("../../api/queries/entities/getEntity.cjs.js");
66
66
  require("../../api/queries/entities/getEntityPanel.cjs.js");
67
67
  require("../../api/queries/entities/updateEntity.cjs.js");
68
+ require("../../api/queries/entityLists/getLists.cjs.js");
69
+ require("../../api/queries/entityLists/updateLists.cjs.js");
70
+ require("../../api/queries/entityLists/getListsAttributes.cjs.js");
71
+ require("../../api/queries/entityLists/updateListsAttributes.cjs.js");
68
72
  require("../../api/queries/folders/getFolders.cjs.js");
69
73
  require("../../api/queries/overview/getOverview.cjs.js");
70
74
  require("../../api/queries/overview/updateOverview.cjs.js");
@@ -85,6 +89,7 @@ require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");
85
89
  require("../../context/RemoteModulesContext.cjs.js");
86
90
  require("../../context/DetailsPanelContext.cjs.js");
87
91
  require("../../context/ThumbnailUploaderContext.cjs.js");
92
+ require("../../context/SettingsPanelContext.cjs.js");
88
93
  require("../../context/pip/PiPProvider.cjs.js");
89
94
  require("react-dom");
90
95
  require("../../context/pip/PiPWrapper.cjs.js");
@@ -130,6 +135,18 @@ require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");
130
135
  require("../ProjectTreeTable/context/CellEditingContext.cjs.js");
131
136
  require("../ProjectTreeTable/context/ClipboardContext.cjs.js");
132
137
  require("../ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
138
+ require("@tanstack/react-table");
139
+ require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
140
+ require("../ProjectTreeTable/widgets/DateWidget.cjs.js");
141
+ require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");
142
+ require("../ProjectTreeTable/widgets/TextWidget.cjs.js");
143
+ require("../ProjectTreeTable/widgets/BooleanWidget.cjs.js");
144
+ require("../ProjectTreeTable/widgets/CellWidget.cjs.js");
145
+ require("../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
146
+ require("../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
147
+ require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
148
+ require("../ProjectTreeTable/components/SelectionCell.cjs.js");
149
+ require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");
133
150
  const versionsToRepresentations = require("./versionsToRepresentations.cjs.js");
134
151
  require("../DetailsPanel/DetailsPanel.styled.cjs.js");
135
152
  require("../../../../_virtual/runtime.cjs.js");
@@ -150,6 +167,11 @@ require("../../components/EntityPath/EntityPath.styled.cjs.js");
150
167
  require("../../components/EntityPath/SegmentProvider.cjs.js");
151
168
  require("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");
152
169
  require("../../components/Watchers/Watchers.cjs.js");
170
+ require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");
171
+ require("../../components/SettingsPanel/SettingsPanel.cjs.js");
172
+ require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");
173
+ require("../../components/AttributeEditor/components/MinMaxField.cjs.js");
174
+ require("../../components/EnumEditor/EnumEditor.styled.cjs.js");
153
175
  const columns = [
154
176
  {
155
177
  field: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkBA,MAAQ,QAAA,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAOD,MAAAA,QAAQ,MAAM;AAElB,WAAAE,YAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAIC,qBAAA,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAC,iDAACC,oBAAAA,YACC,EAAA,UAAAD,2BAAA,kBAAA;AAAA,MAACE,cAAA;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAF,2BAAA,kBAAA;AAAA,YAACG,WAAA;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCH,2BAAA,kBAAA;AAAA,MAACI,cAAA;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;;"}
1
+ {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":"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"}