@ynput/ayon-frontend-shared 0.2.36 → 0.2.37

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 (486) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Views.cjs.js +1 -1
  5. package/dist/Views.cjs.js.map +1 -1
  6. package/dist/Views.es.js +25 -24
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/_virtual/index.cjs2.js +1 -1
  9. package/dist/_virtual/index.cjs3.js +1 -1
  10. package/dist/_virtual/index.cjs5.js +1 -1
  11. package/dist/_virtual/index.es2.js +2 -5
  12. package/dist/_virtual/index.es2.js.map +1 -1
  13. package/dist/_virtual/index.es3.js +5 -2
  14. package/dist/_virtual/index.es3.js.map +1 -1
  15. package/dist/_virtual/index.es4.js +2 -2
  16. package/dist/_virtual/index.es5.js +2 -2
  17. package/dist/context.cjs.js +1 -1
  18. package/dist/context.es.js +19 -16
  19. package/dist/context.es.js.map +1 -1
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.es.js +10 -9
  22. package/dist/index.es.js.map +1 -1
  23. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  24. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  25. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  26. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  27. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  28. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  29. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  30. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  31. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  32. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  33. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  34. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  35. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  36. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  37. package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
  38. package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
  39. package/dist/shared/src/api/generated/authentication.cjs.js.map +1 -1
  40. package/dist/shared/src/api/generated/authentication.es.js.map +1 -1
  41. package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
  42. package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
  43. package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
  44. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  45. package/dist/shared/src/api/generated/entityLists.es.js +88 -84
  46. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphql.cjs.js +22 -20
  48. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.es.js +34 -32
  50. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  51. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/onboarding.cjs.js.map +1 -1
  54. package/dist/shared/src/api/generated/onboarding.es.js.map +1 -1
  55. package/dist/shared/src/api/generated/products.cjs.js.map +1 -1
  56. package/dist/shared/src/api/generated/products.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  59. package/dist/shared/src/api/generated/system.cjs.js +1 -1
  60. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/system.es.js +3 -0
  62. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  63. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  64. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  65. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  66. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  67. package/dist/shared/src/api/generated/ynputCloud.cjs.js +1 -1
  68. package/dist/shared/src/api/generated/ynputCloud.cjs.js.map +1 -1
  69. package/dist/shared/src/api/generated/ynputCloud.es.js +6 -1
  70. package/dist/shared/src/api/generated/ynputCloud.es.js.map +1 -1
  71. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  74. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  75. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  76. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  77. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +129 -122
  78. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  79. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  80. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  81. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  82. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  83. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  84. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  85. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  86. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  87. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
  88. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
  89. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +23 -9
  90. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -1
  91. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  92. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  93. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -4
  94. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  95. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  96. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  97. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  98. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  99. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  100. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  101. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +6 -5
  102. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  103. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  104. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  105. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +118 -112
  106. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  107. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  108. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  109. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
  110. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  111. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  112. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  113. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  114. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  115. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  116. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  117. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +8 -7
  118. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  119. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  120. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  121. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +3 -2
  122. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  123. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  124. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +18 -17
  126. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  127. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  128. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -2
  130. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  131. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  132. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  133. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  134. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  136. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  138. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  139. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  140. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  141. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  142. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  143. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  144. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  145. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  146. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  147. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  148. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  149. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +263 -210
  150. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  151. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  152. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  153. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +24 -23
  154. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  155. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  156. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  157. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  158. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  159. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  160. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  161. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +3 -2
  162. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  163. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  164. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  165. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  166. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  167. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  168. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  170. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  171. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  172. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  174. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  175. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  176. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  178. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +61 -57
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +58 -55
  190. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +3 -2
  194. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  196. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  198. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  200. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +3 -2
  202. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  203. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  204. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +33 -30
  206. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  207. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  208. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +16 -15
  210. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  214. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  218. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  219. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  220. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  222. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  223. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  224. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  226. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  227. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  228. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
  230. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  232. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/Feed.es.js +4 -3
  234. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  236. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  238. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  239. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  240. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +8 -7
  242. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  243. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  244. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  246. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  247. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  248. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
  250. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  251. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  252. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +9 -8
  254. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  255. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  256. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
  258. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  259. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  260. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  262. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  263. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  264. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +45 -42
  266. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +289 -283
  270. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -3
  274. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  278. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  286. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  290. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +25 -90
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +22 -21
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +19 -16
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  348. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +38 -37
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  359. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  360. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  362. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  363. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  364. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  366. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  367. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  368. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  370. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  371. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  372. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +7 -6
  374. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  375. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  376. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +26 -25
  378. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  379. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  380. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +3 -2
  382. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  383. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  384. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
  386. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  387. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  388. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +9 -9
  390. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  391. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  392. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +40 -35
  394. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  395. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  396. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  397. package/dist/shared/src/context/AddonProjectContext.es.js +8 -7
  398. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  399. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  400. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  401. package/dist/shared/src/context/DetailsPanelContext.es.js +77 -78
  402. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  403. package/dist/shared/src/context/GlobalContext.cjs.js +2 -0
  404. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -0
  405. package/dist/shared/src/context/GlobalContext.es.js +123 -0
  406. package/dist/shared/src/context/GlobalContext.es.js.map +1 -0
  407. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  408. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  409. package/dist/shared/src/context/PowerpackContext.es.js +7 -6
  410. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  411. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  412. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  413. package/dist/shared/src/context/RemoteModulesContext.es.js +35 -34
  414. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  415. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  416. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  417. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  418. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  419. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  420. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  421. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  422. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  423. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  424. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  425. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
  426. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  427. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  428. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  429. package/dist/shared/src/hooks/useUserProjectConfig.es.js +26 -12
  430. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  431. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
  432. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
  433. package/dist/src/components/Menu/MenuComponents/Menu.es.js +3 -2
  434. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
  435. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
  436. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
  437. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +1 -0
  438. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
  439. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
  440. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
  441. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +17 -16
  442. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
  443. package/dist/types/api/generated/actions.d.ts +2 -0
  444. package/dist/types/api/generated/attributes.d.ts +20 -5
  445. package/dist/types/api/generated/authentication.d.ts +2 -0
  446. package/dist/types/api/generated/configuration.d.ts +3 -1
  447. package/dist/types/api/generated/entityLists.d.ts +22 -5
  448. package/dist/types/api/generated/enums.d.ts +36 -0
  449. package/dist/types/api/generated/graphql.d.ts +9 -2
  450. package/dist/types/api/generated/graphqlLinks.d.ts +3 -0
  451. package/dist/types/api/generated/onboarding.d.ts +1 -0
  452. package/dist/types/api/generated/products.d.ts +9 -3
  453. package/dist/types/api/generated/projects.d.ts +4 -4
  454. package/dist/types/api/generated/system.d.ts +27 -5
  455. package/dist/types/api/generated/users.d.ts +2 -0
  456. package/dist/types/api/generated/views.d.ts +48 -5
  457. package/dist/types/api/generated/ynputCloud.d.ts +7 -20
  458. package/dist/types/api/queries/activities/getActivities.d.ts +2 -0
  459. package/dist/types/api/queries/activities/updateActivities.d.ts +4 -0
  460. package/dist/types/api/queries/cloud/cloud.d.ts +17 -17
  461. package/dist/types/api/queries/entities/getEntity.d.ts +2 -0
  462. package/dist/types/api/queries/entities/getEntityPanel.d.ts +2 -0
  463. package/dist/types/api/queries/entities/updateEntity.d.ts +2 -0
  464. package/dist/types/api/queries/entityLists/getLists.d.ts +2 -0
  465. package/dist/types/api/queries/overview/getOverview.d.ts +2 -0
  466. package/dist/types/api/queries/system/getSystem.d.ts +85 -75
  467. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +2 -0
  468. package/dist/types/api/queries/users/getUsers.d.ts +43 -37
  469. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +20 -0
  470. package/dist/types/components/DetailsPanelDetails/hooks/useEntityData.d.ts +1 -1
  471. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  472. package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +3 -0
  473. package/dist/types/containers/Feed/context/FeedContext.d.ts +4 -3
  474. package/dist/types/containers/ProjectTreeTable/hooks/useGroupBySettings.d.ts +1 -1
  475. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -0
  476. package/dist/types/containers/Views/index.d.ts +1 -1
  477. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +6 -10
  478. package/dist/types/context/DetailsPanelContext.d.ts +1 -2
  479. package/dist/types/context/GlobalContext.d.ts +25 -0
  480. package/dist/types/context/index.d.ts +1 -0
  481. package/package.json +1 -1
  482. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js +0 -2
  483. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js.map +0 -1
  484. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js +0 -64
  485. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js.map +0 -1
  486. package/dist/types/containers/Views/hooks/pages/useReportsViewSettings.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../_virtual/jsx-runtime.cjs.js"),k=require("react"),a=require("@ynput/ayon-react-components"),T=require("lodash"),P=require("./components/MinMaxField.cjs.js"),A=require("../EnumEditor/EnumEditor.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");const B=[{value:"project",label:"Project"},{value:"folder",label:"Folder"},{value:"task",label:"Task"},{value:"product",label:"Product"},{value:"version",label:"Version"},{value:"representation",label:"Representation"},{value:"user",label:"User"},{value:"list",label:"List"}],K=[{value:"description",scope:null},{value:"example",scope:null},{value:"default",scope:["project"]},{value:"inherit",scope:["project","folder","task","product","version","representation","user"]}],S={string:{value:"string",label:"String",fields:["minLength","maxLength","enum","regex"]},integer:{value:"integer",label:"Integer",fields:["ge","gt","le","lt"]},float:{value:"float",label:"Decimal number",fields:["ge","gt","le","lt"]},list_of_strings:{value:"list_of_strings",label:"List Of Strings",fields:["minItems","maxItems","enum"]},boolean:{value:"boolean",label:"Boolean",fields:[],exclude:["example"]},datetime:{value:"datetime",label:"Datetime",fields:[]}},V={name:"",scope:["folder","task"],builtin:!1,position:0,data:{type:"string",title:"",description:"",example:"",default:void 0,enum:void 0,minLength:void 0,maxLength:void 0,regex:"",minItems:void 0,maxItems:void 0,ge:void 0,gt:void 0,le:void 0,lt:void 0}},z=(u,c)=>{const l=JSON.parse(JSON.stringify(V)),g=["name"];Object.keys(l).forEach(r=>{!g.includes(r)&&u.includes(r)&&r!=="data"&&delete l[r]});const d=["title"];return l.data&&Object.keys(l.data).forEach(r=>{!d.includes(r)&&u.includes(r)&&delete l.data[r]}),c&&Object.keys(c).forEach(r=>{const p=r;p!=="data"&&u.includes(p)||(p==="data"&&c.data&&l.data?l.data={...l.data,...c.data}:c[p]!==void 0&&(l[p]=c[p]))}),l},J=({attribute:u,existingNames:c,error:l="",isUpdating:g,excludes:d=[],onHide:r,onEdit:p,onDelete:I})=>{var O,L;const q=z(d,{position:c.length}),[t,b]=k.useState(u||q);k.useEffect(()=>{u&&b(u)},[u]);const E=!u,y=(e,s)=>{b(n=>n&&{...n,[e]:s})},h=(e,s)=>{b(n=>{if(!n||!n.data)return n;const m={...n.data,[e]:s};return{...n,data:m}})};let j="";t&&E&&(c.includes(t.name)?j="This attribute already exists":t.name.match("^[a-zA-Z_]{2,64}$")||(l="Invalid attribute name"));const w=()=>{t&&p(t)},F=i.jsxRuntimeExports.jsxs("div",{style:{display:"flex",width:"100%",flexDirection:"row"},children:[I&&u&&i.jsxRuntimeExports.jsx(a.Button,{variant:"danger",label:"Delete attribute",icon:"delete",disabled:g,onClick:I}),i.jsxRuntimeExports.jsx(a.Spacer,{}),i.jsxRuntimeExports.jsx(a.SaveButton,{label:E?"Create Attribute":"Save Attribute",icon:"check",disabled:!!j||!t,active:!j&&!!t,saving:g,onClick:w})]});let R=[];if(K.forEach(e=>{var s;(!(e!=null&&e.scope)||(s=e==null?void 0:e.scope)!=null&&s.some(n=>{var m;return(m=t==null?void 0:t.scope)==null?void 0:m.includes(n)}))&&R.push(e.value)}),t!=null&&t.data.type&&S[t.data.type]){const e=S[t.data.type];R=[...R,...e.fields].filter(s=>{var n;return!((n=e.exclude)!=null&&n.includes(s))})}const C={enum:(e=[],s)=>i.jsxRuntimeExports.jsx(A.EnumEditor,{values:e,onChange:n=>{s(n!=null&&n.length?n:void 0)}}),inherit:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)}),booleanDefault:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)})},M=e=>{const s=e.target.value;h("title",s),E&&y("name",T.camelCase(s))};return i.jsxRuntimeExports.jsx(a.Dialog,{header:((O=t==null?void 0:t.data)==null?void 0:O.title)||(t==null?void 0:t.name)||"New attribute",footer:F,onClose:r,isOpen:!0,style:{width:700,zIndex:999},size:"full",onKeyDown:e=>{e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())},children:t&&i.jsxRuntimeExports.jsxs(a.FormLayout,{children:[!d.includes("title")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Title",children:i.jsxRuntimeExports.jsx(a.InputText,{value:t==null?void 0:t.data.title,onChange:M,autoFocus:!0})},"title"),!d.includes("name")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Name",children:i.jsxRuntimeExports.jsx(a.LockedInput,{value:t.name,disabled:!E,onSubmit:e=>y("name",e),label:"name"})},"name"),!d.includes("scope")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Scope",children:i.jsxRuntimeExports.jsx(a.Dropdown,{options:B,disabled:t.builtin,value:t.scope||[],onChange:e=>y("scope",e),multiSelect:!0,widthExpand:!0})}),!d.includes("type")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Type",children:i.jsxRuntimeExports.jsx(a.Dropdown,{value:[(L=t==null?void 0:t.data)==null?void 0:L.type],disabled:t.builtin,options:Object.values(S),onChange:e=>h("type",e[0]),minSelected:1,widthExpand:!0})}),R.map(e=>{var m,N;if(d.includes(e))return null;let s=null,n=T.upperFirst(e);if(e==="enum"||e==="inherit"){const o=C[e];s=o(t==null?void 0:t.data[e],v=>h(e,v))}else if(e==="default"&&((m=t==null?void 0:t.data)==null?void 0:m.type)==="boolean")s=C.booleanDefault(t==null?void 0:t.data[e],o=>h(e,o));else if(["ge","gt","le","lt"].includes(e)){if(["gt","lt"].includes(e))return null;s=i.jsxRuntimeExports.jsx(P.MinMaxField,{value:t==null?void 0:t.data,isMin:e==="ge",isFloat:((N=t==null?void 0:t.data)==null?void 0:N.type)==="float",onChange:o=>{const v=o.ge!==void 0?Number(o.ge):void 0,f=o.le!==void 0?Number(o.le):void 0;o.ge!==void 0&&isNaN(v)||o.le!==void 0&&isNaN(f)||b(x=>{if(!x||!x.data)return x;const _={...x.data,...o};return{...x,data:_}})}}),n=e==="ge"?"Min":"Max"}else{const o=v=>{const f=v.target.value;switch(e){case"minLength":case"maxLength":case"minItems":case"maxItems":{const x=parseInt(f,10);h(e,isNaN(x)?void 0:x);break}default:h(e,f);break}};s=i.jsxRuntimeExports.jsx(a.InputText,{value:String((t==null?void 0:t.data[e])??""),onChange:o})}return i.jsxRuntimeExports.jsx(a.FormRow,{label:n,style:{alignItems:"flex-start"},children:s},e)}),i.jsxRuntimeExports.jsx("span",{children:(j||l)&&i.jsxRuntimeExports.jsx("span",{className:"form-error-text",children:j||l})})]})})};exports.AttributeEditor=J;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../_virtual/jsx-runtime.cjs.js"),k=require("react"),a=require("@ynput/ayon-react-components"),T=require("lodash"),P=require("./components/MinMaxField.cjs.js"),A=require("../EnumEditor/EnumEditor.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");const B=[{value:"project",label:"Project"},{value:"folder",label:"Folder"},{value:"task",label:"Task"},{value:"product",label:"Product"},{value:"version",label:"Version"},{value:"representation",label:"Representation"},{value:"user",label:"User"},{value:"list",label:"List"}],K=[{value:"description",scope:null},{value:"example",scope:null},{value:"default",scope:["project"]},{value:"inherit",scope:["project","folder","task","product","version","representation","user"]}],S={string:{value:"string",label:"String",fields:["minLength","maxLength","enum","regex"]},integer:{value:"integer",label:"Integer",fields:["ge","gt","le","lt"]},float:{value:"float",label:"Decimal number",fields:["ge","gt","le","lt"]},list_of_strings:{value:"list_of_strings",label:"List Of Strings",fields:["minItems","maxItems","enum"]},boolean:{value:"boolean",label:"Boolean",fields:[],exclude:["example"]},datetime:{value:"datetime",label:"Datetime",fields:[]}},V={name:"",scope:["folder","task"],builtin:!1,position:0,data:{type:"string",title:"",description:"",example:"",default:void 0,enum:void 0,minLength:void 0,maxLength:void 0,regex:"",minItems:void 0,maxItems:void 0,ge:void 0,gt:void 0,le:void 0,lt:void 0}},z=(u,c)=>{const o=JSON.parse(JSON.stringify(V)),E=["name"];Object.keys(o).forEach(r=>{!E.includes(r)&&u.includes(r)&&r!=="data"&&delete o[r]});const p=["title"];return o.data&&Object.keys(o.data).forEach(r=>{!p.includes(r)&&u.includes(r)&&delete o.data[r]}),c&&Object.keys(c).forEach(r=>{const x=r;x!=="data"&&u.includes(x)||(x==="data"&&c.data&&o.data?o.data={...o.data,...c.data}:c[x]!==void 0&&(o[x]=c[x]))}),o},J=({attribute:u,existingNames:c,error:o="",isUpdating:E,excludes:p=[],onHide:r,onEdit:x,onDelete:w})=>{var N,O;const q=z(p,{position:c.length}),[e,R]=k.useState(u||q);k.useEffect(()=>{u&&R(u)},[u]);const j=!u,I=(t,s)=>{R(n=>n&&{...n,[t]:s})},h=(t,s)=>{R(n=>{if(!n||!n.data)return n;const d={...n.data,[t]:s};return{...n,data:d}})};let v="";e&&j&&(c.includes(e.name)?v="This attribute already exists":e.name.match("^[a-zA-Z_]{2,64}$")||(o="Invalid attribute name"));const C=()=>{e&&x(e)},F=i.jsxRuntimeExports.jsxs("div",{style:{display:"flex",width:"100%",flexDirection:"row"},children:[w&&u&&i.jsxRuntimeExports.jsx(a.Button,{variant:"danger",label:"Delete attribute",icon:"delete",disabled:E,onClick:w}),i.jsxRuntimeExports.jsx(a.Spacer,{}),i.jsxRuntimeExports.jsx(a.SaveButton,{label:j?"Create Attribute":"Save Attribute",icon:"check",disabled:!!v||!e,active:!v&&!!e,saving:E,onClick:C})]});let f=[];if(K.forEach(t=>{var s;(!(t!=null&&t.scope)||(s=t==null?void 0:t.scope)!=null&&s.some(n=>{var d;return(d=e==null?void 0:e.scope)==null?void 0:d.includes(n)}))&&f.push(t.value)}),e!=null&&e.data.type&&S[e.data.type]){const t=S[e.data.type];f=[...f,...t.fields].filter(s=>{var n;return!((n=t.exclude)!=null&&n.includes(s))})}const L={enum:(t=[],s)=>i.jsxRuntimeExports.jsx(A.EnumEditor,{values:t,onChange:n=>{s(n!=null&&n.length?n:void 0)}}),inherit:(t,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:t,onChange:n=>s(n.target.checked)}),booleanDefault:(t,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:t,onChange:n=>s(n.target.checked)})},M=t=>{const s=t.target.value;h("title",s),j&&I("name",T.camelCase(s))};return i.jsxRuntimeExports.jsx(a.Dialog,{header:((N=e==null?void 0:e.data)==null?void 0:N.title)||(e==null?void 0:e.name)||"New attribute",footer:F,onClose:r,isOpen:!0,style:{width:700,zIndex:999},size:"full",onKeyDown:t=>{t.key==="Enter"&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),C())},children:e&&i.jsxRuntimeExports.jsxs(a.FormLayout,{children:[!p.includes("title")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Title",children:i.jsxRuntimeExports.jsx(a.InputText,{value:e==null?void 0:e.data.title,onChange:M,autoFocus:!0})},"title"),!p.includes("name")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Name",children:i.jsxRuntimeExports.jsx(a.LockedInput,{value:e.name,disabled:!j,onSubmit:t=>I("name",t),label:"name"})},"name"),!p.includes("scope")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Scope",children:i.jsxRuntimeExports.jsx(a.Dropdown,{options:B,disabled:e.builtin,value:e.scope||[],onChange:t=>I("scope",t),multiSelect:!0,widthExpand:!0})}),!p.includes("type")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Type",children:i.jsxRuntimeExports.jsx(a.Dropdown,{value:[(O=e==null?void 0:e.data)==null?void 0:O.type],disabled:e.builtin||!j,options:Object.values(S),onChange:t=>{var g,l;const s=t[0],n=S[s],d=(g=n==null?void 0:n.fields)==null?void 0:g.includes("regex");h("type",s),!d&&((l=e==null?void 0:e.data)!=null&&l.regex)&&h("regex","")},minSelected:1,widthExpand:!0})}),f.map(t=>{var d,g;if(p.includes(t))return null;let s=null,n=T.upperFirst(t);if(t==="enum"||t==="inherit"){const l=L[t];s=l(e==null?void 0:e.data[t],b=>h(t,b))}else if(t==="default"&&((d=e==null?void 0:e.data)==null?void 0:d.type)==="boolean")s=L.booleanDefault(e==null?void 0:e.data[t],l=>h(t,l));else if(["ge","gt","le","lt"].includes(t)){if(["gt","lt"].includes(t))return null;s=i.jsxRuntimeExports.jsx(P.MinMaxField,{value:e==null?void 0:e.data,isMin:t==="ge",isFloat:((g=e==null?void 0:e.data)==null?void 0:g.type)==="float",onChange:l=>{const b=l.ge!==void 0?Number(l.ge):void 0,y=l.le!==void 0?Number(l.le):void 0;l.ge!==void 0&&isNaN(b)||l.le!==void 0&&isNaN(y)||R(m=>{if(!m||!m.data)return m;const _={...m.data,...l};return{...m,data:_}})}}),n=t==="ge"?"Min":"Max"}else{const l=b=>{const y=b.target.value;switch(t){case"minLength":case"maxLength":case"minItems":case"maxItems":{const m=parseInt(y,10);h(t,isNaN(m)?void 0:m);break}default:h(t,y);break}};s=i.jsxRuntimeExports.jsx(a.InputText,{value:String((e==null?void 0:e.data[t])??""),onChange:l})}return i.jsxRuntimeExports.jsx(a.FormRow,{label:n,style:{alignItems:"flex-start"},children:s},t)}),i.jsxRuntimeExports.jsx("span",{children:(v||o)&&i.jsxRuntimeExports.jsx("span",{className:"form-error-text",children:v||o})})]})})};exports.AttributeEditor=J;
2
2
  //# sourceMappingURL=AttributeEditor.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeEditor.cjs.js","sources":["../../../../../src/components/AttributeEditor/AttributeEditor.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react'\nimport {\n SaveButton,\n Spacer,\n FormLayout,\n FormRow,\n InputText,\n InputSwitch,\n LockedInput,\n Dropdown,\n Dialog,\n Button,\n} from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { MinMaxField } from './components'\nimport { EnumEditor } from '@shared/components/EnumEditor'\nimport { AttributeData, AttributeModel, AttributeEnumItem } from '@shared/api'\n\nconst SCOPE_OPTIONS = [\n { value: 'project', label: 'Project' },\n { value: 'folder', label: 'Folder' },\n { value: 'task', label: 'Task' },\n { value: 'product', label: 'Product' },\n { value: 'version', label: 'Version' },\n { value: 'representation', label: 'Representation' },\n { value: 'user', label: 'User' },\n { value: 'list', label: 'List' },\n]\n\n// Define types for constants\ninterface GlobalFieldEntry {\n value: keyof AttributeData\n scope: (AttributeModel['scope'] | '')[] | null\n}\n\nconst GLOBAL_FIELDS: GlobalFieldEntry[] = [\n { value: 'description', scope: null },\n { value: 'example', scope: null },\n // @ts-expect-error - project is not a scope?\n { value: 'default', scope: ['project'] },\n { value: 'inherit', scope: ['project', 'folder', 'task', 'product', 'version', 'representation', 'user'] },\n]\n\ninterface TypeOptionDef {\n value: AttributeData['type']\n label: string\n fields: (keyof AttributeData)[]\n exclude?: (keyof AttributeData)[]\n}\n\ninterface TypeOptionsMap {\n [key: string]: TypeOptionDef\n}\n\nconst TYPE_OPTIONS: TypeOptionsMap = {\n string: {\n value: 'string',\n label: 'String',\n fields: ['minLength', 'maxLength', 'enum', 'regex'],\n },\n integer: {\n value: 'integer',\n label: 'Integer',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n float: {\n value: 'float',\n label: 'Decimal number',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n list_of_strings: {\n value: 'list_of_strings',\n label: 'List Of Strings',\n fields: ['minItems', 'maxItems', 'enum'],\n },\n boolean: {\n value: 'boolean',\n label: 'Boolean',\n fields: [],\n exclude: ['example'],\n },\n datetime:{\n value: 'datetime',\n label: 'Datetime',\n fields: [],\n }\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type AttributeForm = PartialBy<AttributeModel, 'scope' | 'position'>\ntype Excludes = (keyof Omit<AttributeModel, 'data'> | keyof AttributeData)[]\n\nconst initFormData: AttributeForm = {\n name: '',\n scope: ['folder', 'task'],\n builtin: false,\n position: 0,\n data: {\n type: 'string',\n title: '',\n description: '',\n example: '',\n default: undefined,\n enum: undefined,\n minLength: undefined,\n maxLength: undefined,\n regex: '',\n minItems: undefined,\n maxItems: undefined,\n ge: undefined,\n gt: undefined,\n le: undefined,\n lt: undefined,\n },\n}\n\n// build the form data based on excludes and to update any data\nconst buildInitFormData = (excludes: Excludes, data?: Partial<AttributeForm>) => {\n // Create a deep clone of init form data\n const formData = JSON.parse(JSON.stringify(initFormData)) as AttributeForm\n\n // Filter out top-level excludes if not in required\n const required = ['name']\n Object.keys(formData).forEach((key) => {\n if (\n !required.includes(key) &&\n excludes.includes(key as keyof Omit<AttributeModel, 'data'>) &&\n key !== 'data'\n ) {\n delete formData[key as keyof AttributeForm]\n }\n })\n\n // Filter out data field excludes if not in in required\n const requiredData = ['title']\n if (formData.data) {\n Object.keys(formData.data).forEach((key) => {\n if (!requiredData.includes(key) && excludes.includes(key as keyof AttributeData)) {\n delete formData.data[key as keyof AttributeData]\n }\n })\n }\n\n // Merge with provided data if any\n if (data) {\n // Merge top-level fields\n Object.keys(data).forEach((key) => {\n const typedKey = key as keyof AttributeForm\n if (typedKey !== 'data' && excludes.includes(typedKey)) return\n\n if (typedKey === 'data' && data.data && formData.data) {\n // Deep merge of data fields\n formData.data = { ...formData.data, ...data.data }\n } else if (data[typedKey] !== undefined) {\n // @ts-ignore - We know these properties exist\n formData[typedKey] = data[typedKey]\n }\n })\n }\n\n return formData\n}\n\nexport interface AttributeEditorProps {\n attribute: AttributeForm | null\n existingNames: string[]\n error?: string\n isUpdating?: boolean\n excludes?: Excludes\n onHide: () => void\n onEdit: (attribute: AttributeForm) => void\n onDelete?: () => void\n}\n\nexport const AttributeEditor: FC<AttributeEditorProps> = ({\n attribute,\n existingNames,\n error = '',\n isUpdating,\n excludes = [],\n onHide,\n onEdit,\n onDelete,\n}) => {\n const initForm = buildInitFormData(excludes, { position: existingNames.length })\n const [formData, setFormData] = useState<AttributeForm | null>(attribute || initForm)\n\n useEffect(() => {\n if (!!attribute) setFormData(attribute)\n }, [attribute])\n\n const isNew = !attribute\n\n // const setTopLevelData = (key: string, value: string) => {\n const setTopLevelData = <K extends keyof Omit<AttributeModel, 'data'>>(\n key: K,\n value: AttributeModel[K],\n ) => {\n setFormData((d) => {\n if (!d) {\n return d\n }\n return { ...d, [key]: value }\n })\n }\n\n // const setData = (key, value) => {\n const setData = <K extends keyof AttributeData>(key: K, value: AttributeData[K]) => {\n setFormData((d) => {\n // Add a check for d and d.data\n if (!d || !d.data) {\n return d\n }\n const dt = { ...d.data, [key]: value }\n return { ...d, data: dt }\n })\n }\n\n let internalError = ''\n if (formData) {\n if (isNew) {\n if (existingNames.includes(formData.name)) internalError = 'This attribute already exists'\n else if (!formData.name.match('^[a-zA-Z_]{2,64}$')) error = 'Invalid attribute name'\n } // name validation\n }\n\n const handleSubmit = () => {\n if (formData) {\n onEdit(formData)\n }\n }\n\n const footer = (\n <div style={{ display: 'flex', width: '100%', flexDirection: 'row' }}>\n {onDelete && attribute && (\n <Button\n variant=\"danger\"\n label={'Delete attribute'}\n icon={'delete'}\n disabled={isUpdating}\n onClick={onDelete}\n />\n )}\n <Spacer />\n <SaveButton\n label={isNew ? 'Create Attribute' : 'Save Attribute'}\n icon={'check'}\n disabled={!!internalError || !formData}\n active={!internalError && !!formData}\n saving={isUpdating}\n onClick={handleSubmit}\n />\n </div>\n )\n\n let dataFields: (keyof AttributeData)[] = []\n\n // add global fields, only if scope are null (all) or the scope is included\n GLOBAL_FIELDS.forEach((globalField) => {\n // @ts-expect-error - project scope will never be found here?\n if (!globalField?.scope || globalField?.scope?.some((s) => formData?.scope?.includes(s))) {\n dataFields.push(globalField.value)\n }\n })\n\n if (formData?.data.type && TYPE_OPTIONS[formData.data.type]) {\n const typeOpt = TYPE_OPTIONS[formData.data.type]\n dataFields = [...dataFields, ...typeOpt.fields].filter((f) => !typeOpt.exclude?.includes(f))\n }\n\n type CustomFieldRenderer = (value: any, onChange: (newValue: any) => void) => JSX.Element | null\n const customFields: {\n enum: CustomFieldRenderer\n inherit: CustomFieldRenderer\n booleanDefault: CustomFieldRenderer\n } = {\n enum: (value = [], onChange) => (\n <EnumEditor\n values={value as AttributeEnumItem[]}\n onChange={(val) => {\n onChange(val?.length ? val : undefined)\n }}\n />\n ),\n inherit: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n booleanDefault: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n }\n\n const handleTitleChange = (e: React.ChangeEvent) => {\n const v = (e.target as HTMLInputElement).value\n setData('title', v)\n\n if (isNew) {\n setTopLevelData('name', camelCase(v))\n }\n }\n\n return (\n <Dialog\n header={formData?.data?.title || formData?.name || 'New attribute'}\n footer={footer}\n onClose={onHide}\n isOpen={true}\n style={{ width: 700, zIndex: 999 }}\n size=\"full\"\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n handleSubmit()\n }\n }}\n >\n {formData && (\n <FormLayout>\n {!excludes.includes('title') && (\n <FormRow label={'Title'} key={'title'}>\n <InputText value={formData?.data['title']} onChange={handleTitleChange} autoFocus />\n </FormRow>\n )}\n {!excludes.includes('name') && (\n <FormRow label={'Name'} key={'name'}>\n <LockedInput\n value={formData.name}\n disabled={!isNew}\n onSubmit={(v) => setTopLevelData('name', v)}\n label=\"name\"\n />\n </FormRow>\n )}\n {!excludes.includes('scope') && (\n <FormRow label=\"Scope\">\n <Dropdown\n options={SCOPE_OPTIONS}\n disabled={formData.builtin}\n value={formData.scope || []}\n onChange={(v) => setTopLevelData('scope', v as AttributeModel['scope'])}\n multiSelect\n widthExpand\n />\n </FormRow>\n )}\n {!excludes.includes('type') && (\n <FormRow label=\"Type\">\n <Dropdown\n value={[formData?.data?.type]}\n disabled={formData.builtin}\n options={Object.values(TYPE_OPTIONS)}\n onChange={(v) => setData('type', v[0] as AttributeData['type'])}\n minSelected={1}\n widthExpand\n />\n </FormRow>\n )}\n {dataFields.map((field) => {\n // skip if field is excluded\n if (excludes.includes(field)) return null\n\n let fieldComp = null\n let fieldLabel = upperFirst(field)\n\n if (field === 'enum' || field === 'inherit') {\n const renderer = customFields[field as 'enum' | 'inherit']\n fieldComp = renderer(formData?.data[field], (value) => setData(field, value))\n } else if (field === 'default' && formData?.data?.type === 'boolean') {\n fieldComp = customFields['booleanDefault'](\n formData?.data[field] as boolean,\n (value) => setData(field, value as AttributeData['default']),\n )\n } else if (['ge', 'gt', 'le', 'lt'].includes(field)) {\n // ignore gt and lt\n if (['gt', 'lt'].includes(field)) return null\n fieldComp = (\n <MinMaxField\n value={formData?.data}\n isMin={field === 'ge'}\n isFloat={formData?.data?.type === 'float'}\n onChange={(v) => {\n const geValue = v.ge !== undefined ? Number(v.ge) : undefined\n const leValue = v.le !== undefined ? Number(v.le) : undefined\n\n if (\n // @ts-expect-error\n (v.ge !== undefined && isNaN(geValue)) ||\n // @ts-expect-error\n (v.le !== undefined && isNaN(leValue))\n ) {\n // Do not update the form if the value is not a valid number\n return\n }\n\n setFormData((d) => {\n if (!d || !d.data) return d\n const dt = { ...d.data, ...v }\n return { ...d, data: dt }\n })\n }}\n />\n )\n\n // rewrite field to min or max for display label\n fieldLabel = field === 'ge' ? 'Min' : 'Max'\n } else {\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const strValue = e.target.value\n switch (field) {\n case 'minLength':\n case 'maxLength':\n case 'minItems':\n case 'maxItems': {\n const num = parseInt(strValue, 10)\n setData(field, isNaN(num) ? undefined : num)\n break\n }\n default:\n // For string fields ('description', 'regex') or 'any' type fields ('example', 'default')\n setData(field, strValue as AttributeData[typeof field])\n break\n }\n }\n\n fieldComp = (\n <InputText\n value={String(formData?.data[field] ?? '')}\n onChange={handleInputChange}\n />\n )\n }\n\n return (\n <FormRow\n label={fieldLabel}\n key={field}\n style={{\n alignItems: 'flex-start',\n }}\n >\n {fieldComp}\n </FormRow>\n )\n })}\n <span>\n {(internalError || error) && (\n <span className=\"form-error-text\">{internalError || error}</span>\n )}\n </span>\n </FormLayout>\n )}\n </Dialog>\n )\n}\n"],"names":["SCOPE_OPTIONS","GLOBAL_FIELDS","TYPE_OPTIONS","initFormData","buildInitFormData","excludes","data","formData","required","key","requiredData","typedKey","AttributeEditor","attribute","existingNames","error","isUpdating","onHide","onEdit","onDelete","initForm","setFormData","useState","useEffect","isNew","setTopLevelData","value","d","setData","dt","internalError","handleSubmit","footer","jsxs","jsx","Button","Spacer","SaveButton","dataFields","globalField","_a","s","typeOpt","f","customFields","onChange","EnumEditor","val","InputSwitch","e","handleTitleChange","v","camelCase","Dialog","FormLayout","FormRow","InputText","LockedInput","Dropdown","_b","field","fieldComp","fieldLabel","upperFirst","renderer","MinMaxField","geValue","leValue","handleInputChange","strValue","num"],"mappings":"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"}
1
+ {"version":3,"file":"AttributeEditor.cjs.js","sources":["../../../../../src/components/AttributeEditor/AttributeEditor.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react'\nimport {\n SaveButton,\n Spacer,\n FormLayout,\n FormRow,\n InputText,\n InputSwitch,\n LockedInput,\n Dropdown,\n Dialog,\n Button,\n} from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { MinMaxField } from './components'\nimport { EnumEditor } from '@shared/components/EnumEditor'\nimport { AttributeData, AttributeModel, AttributeEnumItem } from '@shared/api'\n\nconst SCOPE_OPTIONS = [\n { value: 'project', label: 'Project' },\n { value: 'folder', label: 'Folder' },\n { value: 'task', label: 'Task' },\n { value: 'product', label: 'Product' },\n { value: 'version', label: 'Version' },\n { value: 'representation', label: 'Representation' },\n { value: 'user', label: 'User' },\n { value: 'list', label: 'List' },\n]\n\n// Define types for constants\ninterface GlobalFieldEntry {\n value: keyof AttributeData\n scope: (AttributeModel['scope'] | '')[] | null\n}\n\nconst GLOBAL_FIELDS: GlobalFieldEntry[] = [\n { value: 'description', scope: null },\n { value: 'example', scope: null },\n // @ts-expect-error - project is not a scope?\n { value: 'default', scope: ['project'] },\n {\n value: 'inherit',\n scope: ['project', 'folder', 'task', 'product', 'version', 'representation', 'user'],\n },\n]\n\ninterface TypeOptionDef {\n value: AttributeData['type']\n label: string\n fields: (keyof AttributeData)[]\n exclude?: (keyof AttributeData)[]\n}\n\ninterface TypeOptionsMap {\n [key: string]: TypeOptionDef\n}\n\nconst TYPE_OPTIONS: TypeOptionsMap = {\n string: {\n value: 'string',\n label: 'String',\n fields: ['minLength', 'maxLength', 'enum', 'regex'],\n },\n integer: {\n value: 'integer',\n label: 'Integer',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n float: {\n value: 'float',\n label: 'Decimal number',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n list_of_strings: {\n value: 'list_of_strings',\n label: 'List Of Strings',\n fields: ['minItems', 'maxItems', 'enum'],\n },\n boolean: {\n value: 'boolean',\n label: 'Boolean',\n fields: [],\n exclude: ['example'],\n },\n datetime: {\n value: 'datetime',\n label: 'Datetime',\n fields: [],\n },\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type AttributeForm = PartialBy<AttributeModel, 'scope' | 'position'>\ntype Excludes = (keyof Omit<AttributeModel, 'data'> | keyof AttributeData)[]\n\nconst initFormData: AttributeForm = {\n name: '',\n scope: ['folder', 'task'],\n builtin: false,\n position: 0,\n data: {\n type: 'string',\n title: '',\n description: '',\n example: '',\n default: undefined,\n enum: undefined,\n minLength: undefined,\n maxLength: undefined,\n regex: '',\n minItems: undefined,\n maxItems: undefined,\n ge: undefined,\n gt: undefined,\n le: undefined,\n lt: undefined,\n },\n}\n\n// build the form data based on excludes and to update any data\nconst buildInitFormData = (excludes: Excludes, data?: Partial<AttributeForm>) => {\n // Create a deep clone of init form data\n const formData = JSON.parse(JSON.stringify(initFormData)) as AttributeForm\n\n // Filter out top-level excludes if not in required\n const required = ['name']\n Object.keys(formData).forEach((key) => {\n if (\n !required.includes(key) &&\n excludes.includes(key as keyof Omit<AttributeModel, 'data'>) &&\n key !== 'data'\n ) {\n delete formData[key as keyof AttributeForm]\n }\n })\n\n // Filter out data field excludes if not in in required\n const requiredData = ['title']\n if (formData.data) {\n Object.keys(formData.data).forEach((key) => {\n if (!requiredData.includes(key) && excludes.includes(key as keyof AttributeData)) {\n delete formData.data[key as keyof AttributeData]\n }\n })\n }\n\n // Merge with provided data if any\n if (data) {\n // Merge top-level fields\n Object.keys(data).forEach((key) => {\n const typedKey = key as keyof AttributeForm\n if (typedKey !== 'data' && excludes.includes(typedKey)) return\n\n if (typedKey === 'data' && data.data && formData.data) {\n // Deep merge of data fields\n formData.data = { ...formData.data, ...data.data }\n } else if (data[typedKey] !== undefined) {\n // @ts-ignore - We know these properties exist\n formData[typedKey] = data[typedKey]\n }\n })\n }\n\n return formData\n}\n\nexport interface AttributeEditorProps {\n attribute: AttributeForm | null\n existingNames: string[]\n error?: string\n isUpdating?: boolean\n excludes?: Excludes\n onHide: () => void\n onEdit: (attribute: AttributeForm) => void\n onDelete?: () => void\n}\n\nexport const AttributeEditor: FC<AttributeEditorProps> = ({\n attribute,\n existingNames,\n error = '',\n isUpdating,\n excludes = [],\n onHide,\n onEdit,\n onDelete,\n}) => {\n const initForm = buildInitFormData(excludes, { position: existingNames.length })\n const [formData, setFormData] = useState<AttributeForm | null>(attribute || initForm)\n\n useEffect(() => {\n if (!!attribute) setFormData(attribute)\n }, [attribute])\n\n const isNew = !attribute\n\n // const setTopLevelData = (key: string, value: string) => {\n const setTopLevelData = <K extends keyof Omit<AttributeModel, 'data'>>(\n key: K,\n value: AttributeModel[K],\n ) => {\n setFormData((d) => {\n if (!d) {\n return d\n }\n return { ...d, [key]: value }\n })\n }\n\n // const setData = (key, value) => {\n const setData = <K extends keyof AttributeData>(key: K, value: AttributeData[K]) => {\n setFormData((d) => {\n // Add a check for d and d.data\n if (!d || !d.data) {\n return d\n }\n const dt = { ...d.data, [key]: value }\n return { ...d, data: dt }\n })\n }\n\n let internalError = ''\n if (formData) {\n if (isNew) {\n if (existingNames.includes(formData.name)) internalError = 'This attribute already exists'\n else if (!formData.name.match('^[a-zA-Z_]{2,64}$')) error = 'Invalid attribute name'\n } // name validation\n }\n\n const handleSubmit = () => {\n if (formData) {\n onEdit(formData)\n }\n }\n\n const footer = (\n <div style={{ display: 'flex', width: '100%', flexDirection: 'row' }}>\n {onDelete && attribute && (\n <Button\n variant=\"danger\"\n label={'Delete attribute'}\n icon={'delete'}\n disabled={isUpdating}\n onClick={onDelete}\n />\n )}\n <Spacer />\n <SaveButton\n label={isNew ? 'Create Attribute' : 'Save Attribute'}\n icon={'check'}\n disabled={!!internalError || !formData}\n active={!internalError && !!formData}\n saving={isUpdating}\n onClick={handleSubmit}\n />\n </div>\n )\n\n let dataFields: (keyof AttributeData)[] = []\n\n // add global fields, only if scope are null (all) or the scope is included\n GLOBAL_FIELDS.forEach((globalField) => {\n // @ts-expect-error - project scope will never be found here?\n if (!globalField?.scope || globalField?.scope?.some((s) => formData?.scope?.includes(s))) {\n dataFields.push(globalField.value)\n }\n })\n\n if (formData?.data.type && TYPE_OPTIONS[formData.data.type]) {\n const typeOpt = TYPE_OPTIONS[formData.data.type]\n dataFields = [...dataFields, ...typeOpt.fields].filter((f) => !typeOpt.exclude?.includes(f))\n }\n\n type CustomFieldRenderer = (value: any, onChange: (newValue: any) => void) => JSX.Element | null\n const customFields: {\n enum: CustomFieldRenderer\n inherit: CustomFieldRenderer\n booleanDefault: CustomFieldRenderer\n } = {\n enum: (value = [], onChange) => (\n <EnumEditor\n values={value as AttributeEnumItem[]}\n onChange={(val) => {\n onChange(val?.length ? val : undefined)\n }}\n />\n ),\n inherit: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n booleanDefault: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n }\n\n const handleTitleChange = (e: React.ChangeEvent) => {\n const v = (e.target as HTMLInputElement).value\n setData('title', v)\n\n if (isNew) {\n setTopLevelData('name', camelCase(v))\n }\n }\n\n return (\n <Dialog\n header={formData?.data?.title || formData?.name || 'New attribute'}\n footer={footer}\n onClose={onHide}\n isOpen={true}\n style={{ width: 700, zIndex: 999 }}\n size=\"full\"\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n handleSubmit()\n }\n }}\n >\n {formData && (\n <FormLayout>\n {!excludes.includes('title') && (\n <FormRow label={'Title'} key={'title'}>\n <InputText value={formData?.data['title']} onChange={handleTitleChange} autoFocus />\n </FormRow>\n )}\n {!excludes.includes('name') && (\n <FormRow label={'Name'} key={'name'}>\n <LockedInput\n value={formData.name}\n disabled={!isNew}\n onSubmit={(v) => setTopLevelData('name', v)}\n label=\"name\"\n />\n </FormRow>\n )}\n {!excludes.includes('scope') && (\n <FormRow label=\"Scope\">\n <Dropdown\n options={SCOPE_OPTIONS}\n disabled={formData.builtin}\n value={formData.scope || []}\n onChange={(v) => setTopLevelData('scope', v as AttributeModel['scope'])}\n multiSelect\n widthExpand\n />\n </FormRow>\n )}\n {!excludes.includes('type') && (\n <FormRow label=\"Type\">\n <Dropdown\n value={[formData?.data?.type]}\n disabled={formData.builtin || !isNew}\n options={Object.values(TYPE_OPTIONS)}\n onChange={(v) => {\n const newType = v[0] as AttributeData['type']\n // Check if regex is supported for the new type\n const typeOpt = TYPE_OPTIONS[newType]\n const supportsRegex = typeOpt?.fields?.includes('regex')\n\n setData('type', newType)\n // Clear regex if not supported by the new type\n if (!supportsRegex && formData?.data?.regex) {\n setData('regex', '')\n }\n }}\n minSelected={1}\n widthExpand\n />\n </FormRow>\n )}\n {dataFields.map((field) => {\n // skip if field is excluded\n if (excludes.includes(field)) return null\n\n let fieldComp = null\n let fieldLabel = upperFirst(field)\n\n if (field === 'enum' || field === 'inherit') {\n const renderer = customFields[field as 'enum' | 'inherit']\n fieldComp = renderer(formData?.data[field], (value) => setData(field, value))\n } else if (field === 'default' && formData?.data?.type === 'boolean') {\n fieldComp = customFields['booleanDefault'](\n formData?.data[field] as boolean,\n (value) => setData(field, value as AttributeData['default']),\n )\n } else if (['ge', 'gt', 'le', 'lt'].includes(field)) {\n // ignore gt and lt\n if (['gt', 'lt'].includes(field)) return null\n fieldComp = (\n <MinMaxField\n value={formData?.data}\n isMin={field === 'ge'}\n isFloat={formData?.data?.type === 'float'}\n onChange={(v) => {\n const geValue = v.ge !== undefined ? Number(v.ge) : undefined\n const leValue = v.le !== undefined ? Number(v.le) : undefined\n\n if (\n // @ts-expect-error\n (v.ge !== undefined && isNaN(geValue)) ||\n // @ts-expect-error\n (v.le !== undefined && isNaN(leValue))\n ) {\n // Do not update the form if the value is not a valid number\n return\n }\n\n setFormData((d) => {\n if (!d || !d.data) return d\n const dt = { ...d.data, ...v }\n return { ...d, data: dt }\n })\n }}\n />\n )\n\n // rewrite field to min or max for display label\n fieldLabel = field === 'ge' ? 'Min' : 'Max'\n } else {\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const strValue = e.target.value\n switch (field) {\n case 'minLength':\n case 'maxLength':\n case 'minItems':\n case 'maxItems': {\n const num = parseInt(strValue, 10)\n setData(field, isNaN(num) ? undefined : num)\n break\n }\n default:\n // For string fields ('description', 'regex') or 'any' type fields ('example', 'default')\n setData(field, strValue as AttributeData[typeof field])\n break\n }\n }\n\n fieldComp = (\n <InputText\n value={String(formData?.data[field] ?? '')}\n onChange={handleInputChange}\n />\n )\n }\n\n return (\n <FormRow\n label={fieldLabel}\n key={field}\n style={{\n alignItems: 'flex-start',\n }}\n >\n {fieldComp}\n </FormRow>\n )\n })}\n <span>\n {(internalError || error) && (\n <span className=\"form-error-text\">{internalError || error}</span>\n )}\n </span>\n </FormLayout>\n )}\n </Dialog>\n )\n}\n"],"names":["SCOPE_OPTIONS","GLOBAL_FIELDS","TYPE_OPTIONS","initFormData","buildInitFormData","excludes","data","formData","required","key","requiredData","typedKey","AttributeEditor","attribute","existingNames","error","isUpdating","onHide","onEdit","onDelete","initForm","setFormData","useState","useEffect","isNew","setTopLevelData","value","d","setData","dt","internalError","handleSubmit","footer","jsxs","jsx","Button","Spacer","SaveButton","dataFields","globalField","_a","s","typeOpt","f","customFields","onChange","EnumEditor","val","InputSwitch","e","handleTitleChange","v","camelCase","Dialog","FormLayout","FormRow","InputText","LockedInput","Dropdown","_b","newType","supportsRegex","field","fieldComp","fieldLabel","upperFirst","renderer","MinMaxField","geValue","leValue","handleInputChange","strValue","num"],"mappings":"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"}