@ynput/ayon-frontend-shared 0.2.7 → 0.2.10

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 (987) hide show
  1. package/dist/DetailsPanel.cjs.js +4 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +4 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +11 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +12 -1
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs5.js +3 -5
  10. package/dist/_virtual/index.cjs5.js.map +1 -1
  11. package/dist/_virtual/index.cjs6.js +5 -3
  12. package/dist/_virtual/index.cjs6.js.map +1 -1
  13. package/dist/_virtual/index.es5.js +2 -5
  14. package/dist/_virtual/index.es5.js.map +1 -1
  15. package/dist/_virtual/index.es6.js +5 -2
  16. package/dist/_virtual/index.es6.js.map +1 -1
  17. package/dist/api.cjs.js +5 -0
  18. package/dist/api.cjs.js.map +1 -1
  19. package/dist/api.es.js +6 -1
  20. package/dist/api.es.js.map +1 -1
  21. package/dist/context.cjs.js +6 -0
  22. package/dist/context.cjs.js.map +1 -1
  23. package/dist/context.es.js +6 -0
  24. package/dist/context.es.js.map +1 -1
  25. package/dist/hooks.cjs.js +2 -0
  26. package/dist/hooks.cjs.js.map +1 -1
  27. package/dist/hooks.es.js +3 -1
  28. package/dist/hooks.es.js.map +1 -1
  29. package/dist/index.cjs.js +4 -0
  30. package/dist/index.cjs.js.map +1 -1
  31. package/dist/index.es.js +4 -0
  32. package/dist/index.es.js.map +1 -1
  33. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.cjs.js +1 -1
  34. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.cjs.js.map +1 -1
  35. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.es.js +1 -1
  36. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.es.js.map +1 -1
  37. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js +12 -12
  38. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js.map +1 -1
  39. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js +12 -12
  40. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js.map +1 -1
  41. package/dist/node_modules/decode-named-character-reference/index.dom.cjs.js +7 -3
  42. package/dist/node_modules/decode-named-character-reference/index.dom.cjs.js.map +1 -1
  43. package/dist/node_modules/decode-named-character-reference/index.dom.es.js +7 -3
  44. package/dist/node_modules/decode-named-character-reference/index.dom.es.js.map +1 -1
  45. package/dist/node_modules/graphql/language/visitor.cjs.js +1 -4
  46. package/dist/node_modules/graphql/language/visitor.cjs.js.map +1 -1
  47. package/dist/node_modules/graphql/language/visitor.es.js +1 -4
  48. package/dist/node_modules/graphql/language/visitor.es.js.map +1 -1
  49. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +17 -11
  50. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js.map +1 -1
  51. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +17 -11
  52. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js.map +1 -1
  53. package/dist/node_modules/parse-entities/lib/index.cjs.js +26 -24
  54. package/dist/node_modules/parse-entities/lib/index.cjs.js.map +1 -1
  55. package/dist/node_modules/parse-entities/lib/index.es.js +26 -24
  56. package/dist/node_modules/parse-entities/lib/index.es.js.map +1 -1
  57. package/dist/node_modules/react-intersection-observer/{index.cjs.js → dist/index.cjs.js} +4 -10
  58. package/dist/node_modules/react-intersection-observer/dist/index.cjs.js.map +1 -0
  59. package/dist/node_modules/react-intersection-observer/{index.es.js → dist/index.es.js} +4 -10
  60. package/dist/node_modules/react-intersection-observer/dist/index.es.js.map +1 -0
  61. package/dist/node_modules/refractor/lang/abap.cjs.js.map +1 -1
  62. package/dist/node_modules/refractor/lang/abap.es.js.map +1 -1
  63. package/dist/node_modules/refractor/lang/abnf.cjs.js.map +1 -1
  64. package/dist/node_modules/refractor/lang/abnf.es.js.map +1 -1
  65. package/dist/node_modules/refractor/lang/actionscript.cjs.js.map +1 -1
  66. package/dist/node_modules/refractor/lang/actionscript.es.js.map +1 -1
  67. package/dist/node_modules/refractor/lang/ada.cjs.js.map +1 -1
  68. package/dist/node_modules/refractor/lang/ada.es.js.map +1 -1
  69. package/dist/node_modules/refractor/lang/agda.cjs.js.map +1 -1
  70. package/dist/node_modules/refractor/lang/agda.es.js.map +1 -1
  71. package/dist/node_modules/refractor/lang/al.cjs.js.map +1 -1
  72. package/dist/node_modules/refractor/lang/al.es.js.map +1 -1
  73. package/dist/node_modules/refractor/lang/antlr4.cjs.js.map +1 -1
  74. package/dist/node_modules/refractor/lang/antlr4.es.js.map +1 -1
  75. package/dist/node_modules/refractor/lang/apacheconf.cjs.js.map +1 -1
  76. package/dist/node_modules/refractor/lang/apacheconf.es.js.map +1 -1
  77. package/dist/node_modules/refractor/lang/apex.cjs.js.map +1 -1
  78. package/dist/node_modules/refractor/lang/apex.es.js.map +1 -1
  79. package/dist/node_modules/refractor/lang/apl.cjs.js.map +1 -1
  80. package/dist/node_modules/refractor/lang/apl.es.js.map +1 -1
  81. package/dist/node_modules/refractor/lang/applescript.cjs.js.map +1 -1
  82. package/dist/node_modules/refractor/lang/applescript.es.js.map +1 -1
  83. package/dist/node_modules/refractor/lang/aql.cjs.js.map +1 -1
  84. package/dist/node_modules/refractor/lang/aql.es.js.map +1 -1
  85. package/dist/node_modules/refractor/lang/arduino.cjs.js.map +1 -1
  86. package/dist/node_modules/refractor/lang/arduino.es.js.map +1 -1
  87. package/dist/node_modules/refractor/lang/arff.cjs.js.map +1 -1
  88. package/dist/node_modules/refractor/lang/arff.es.js.map +1 -1
  89. package/dist/node_modules/refractor/lang/armasm.cjs.js.map +1 -1
  90. package/dist/node_modules/refractor/lang/armasm.es.js.map +1 -1
  91. package/dist/node_modules/refractor/lang/arturo.cjs.js.map +1 -1
  92. package/dist/node_modules/refractor/lang/arturo.es.js.map +1 -1
  93. package/dist/node_modules/refractor/lang/asciidoc.cjs.js.map +1 -1
  94. package/dist/node_modules/refractor/lang/asciidoc.es.js.map +1 -1
  95. package/dist/node_modules/refractor/lang/asm6502.cjs.js.map +1 -1
  96. package/dist/node_modules/refractor/lang/asm6502.es.js.map +1 -1
  97. package/dist/node_modules/refractor/lang/asmatmel.cjs.js.map +1 -1
  98. package/dist/node_modules/refractor/lang/asmatmel.es.js.map +1 -1
  99. package/dist/node_modules/refractor/lang/aspnet.cjs.js.map +1 -1
  100. package/dist/node_modules/refractor/lang/aspnet.es.js.map +1 -1
  101. package/dist/node_modules/refractor/lang/autohotkey.cjs.js.map +1 -1
  102. package/dist/node_modules/refractor/lang/autohotkey.es.js.map +1 -1
  103. package/dist/node_modules/refractor/lang/autoit.cjs.js.map +1 -1
  104. package/dist/node_modules/refractor/lang/autoit.es.js.map +1 -1
  105. package/dist/node_modules/refractor/lang/avisynth.cjs.js.map +1 -1
  106. package/dist/node_modules/refractor/lang/avisynth.es.js.map +1 -1
  107. package/dist/node_modules/refractor/lang/avro-idl.cjs.js.map +1 -1
  108. package/dist/node_modules/refractor/lang/avro-idl.es.js.map +1 -1
  109. package/dist/node_modules/refractor/lang/awk.cjs.js.map +1 -1
  110. package/dist/node_modules/refractor/lang/awk.es.js.map +1 -1
  111. package/dist/node_modules/refractor/lang/bash.cjs.js.map +1 -1
  112. package/dist/node_modules/refractor/lang/bash.es.js.map +1 -1
  113. package/dist/node_modules/refractor/lang/basic.cjs.js.map +1 -1
  114. package/dist/node_modules/refractor/lang/basic.es.js.map +1 -1
  115. package/dist/node_modules/refractor/lang/batch.cjs.js.map +1 -1
  116. package/dist/node_modules/refractor/lang/batch.es.js.map +1 -1
  117. package/dist/node_modules/refractor/lang/bbcode.cjs.js.map +1 -1
  118. package/dist/node_modules/refractor/lang/bbcode.es.js.map +1 -1
  119. package/dist/node_modules/refractor/lang/bbj.cjs.js.map +1 -1
  120. package/dist/node_modules/refractor/lang/bbj.es.js.map +1 -1
  121. package/dist/node_modules/refractor/lang/bicep.cjs.js.map +1 -1
  122. package/dist/node_modules/refractor/lang/bicep.es.js.map +1 -1
  123. package/dist/node_modules/refractor/lang/birb.cjs.js.map +1 -1
  124. package/dist/node_modules/refractor/lang/birb.es.js.map +1 -1
  125. package/dist/node_modules/refractor/lang/bison.cjs.js.map +1 -1
  126. package/dist/node_modules/refractor/lang/bison.es.js.map +1 -1
  127. package/dist/node_modules/refractor/lang/bnf.cjs.js.map +1 -1
  128. package/dist/node_modules/refractor/lang/bnf.es.js.map +1 -1
  129. package/dist/node_modules/refractor/lang/bqn.cjs.js.map +1 -1
  130. package/dist/node_modules/refractor/lang/bqn.es.js.map +1 -1
  131. package/dist/node_modules/refractor/lang/brainfuck.cjs.js.map +1 -1
  132. package/dist/node_modules/refractor/lang/brainfuck.es.js.map +1 -1
  133. package/dist/node_modules/refractor/lang/brightscript.cjs.js.map +1 -1
  134. package/dist/node_modules/refractor/lang/brightscript.es.js.map +1 -1
  135. package/dist/node_modules/refractor/lang/bro.cjs.js.map +1 -1
  136. package/dist/node_modules/refractor/lang/bro.es.js.map +1 -1
  137. package/dist/node_modules/refractor/lang/bsl.cjs.js.map +1 -1
  138. package/dist/node_modules/refractor/lang/bsl.es.js.map +1 -1
  139. package/dist/node_modules/refractor/lang/c.cjs.js.map +1 -1
  140. package/dist/node_modules/refractor/lang/c.es.js.map +1 -1
  141. package/dist/node_modules/refractor/lang/cfscript.cjs.js.map +1 -1
  142. package/dist/node_modules/refractor/lang/cfscript.es.js.map +1 -1
  143. package/dist/node_modules/refractor/lang/chaiscript.cjs.js.map +1 -1
  144. package/dist/node_modules/refractor/lang/chaiscript.es.js.map +1 -1
  145. package/dist/node_modules/refractor/lang/cil.cjs.js.map +1 -1
  146. package/dist/node_modules/refractor/lang/cil.es.js.map +1 -1
  147. package/dist/node_modules/refractor/lang/cilkc.cjs.js.map +1 -1
  148. package/dist/node_modules/refractor/lang/cilkc.es.js.map +1 -1
  149. package/dist/node_modules/refractor/lang/cilkcpp.cjs.js.map +1 -1
  150. package/dist/node_modules/refractor/lang/cilkcpp.es.js.map +1 -1
  151. package/dist/node_modules/refractor/lang/clike.cjs.js.map +1 -1
  152. package/dist/node_modules/refractor/lang/clike.es.js.map +1 -1
  153. package/dist/node_modules/refractor/lang/clojure.cjs.js.map +1 -1
  154. package/dist/node_modules/refractor/lang/clojure.es.js.map +1 -1
  155. package/dist/node_modules/refractor/lang/cmake.cjs.js.map +1 -1
  156. package/dist/node_modules/refractor/lang/cmake.es.js.map +1 -1
  157. package/dist/node_modules/refractor/lang/cobol.cjs.js.map +1 -1
  158. package/dist/node_modules/refractor/lang/cobol.es.js.map +1 -1
  159. package/dist/node_modules/refractor/lang/coffeescript.cjs.js.map +1 -1
  160. package/dist/node_modules/refractor/lang/coffeescript.es.js.map +1 -1
  161. package/dist/node_modules/refractor/lang/concurnas.cjs.js.map +1 -1
  162. package/dist/node_modules/refractor/lang/concurnas.es.js.map +1 -1
  163. package/dist/node_modules/refractor/lang/cooklang.cjs.js.map +1 -1
  164. package/dist/node_modules/refractor/lang/cooklang.es.js.map +1 -1
  165. package/dist/node_modules/refractor/lang/coq.cjs.js.map +1 -1
  166. package/dist/node_modules/refractor/lang/coq.es.js.map +1 -1
  167. package/dist/node_modules/refractor/lang/cpp.cjs.js.map +1 -1
  168. package/dist/node_modules/refractor/lang/cpp.es.js.map +1 -1
  169. package/dist/node_modules/refractor/lang/crystal.cjs.js.map +1 -1
  170. package/dist/node_modules/refractor/lang/crystal.es.js.map +1 -1
  171. package/dist/node_modules/refractor/lang/csharp.cjs.js.map +1 -1
  172. package/dist/node_modules/refractor/lang/csharp.es.js.map +1 -1
  173. package/dist/node_modules/refractor/lang/cshtml.cjs.js.map +1 -1
  174. package/dist/node_modules/refractor/lang/cshtml.es.js.map +1 -1
  175. package/dist/node_modules/refractor/lang/csp.cjs.js.map +1 -1
  176. package/dist/node_modules/refractor/lang/csp.es.js.map +1 -1
  177. package/dist/node_modules/refractor/lang/css-extras.cjs.js.map +1 -1
  178. package/dist/node_modules/refractor/lang/css-extras.es.js.map +1 -1
  179. package/dist/node_modules/refractor/lang/css.cjs.js.map +1 -1
  180. package/dist/node_modules/refractor/lang/css.es.js.map +1 -1
  181. package/dist/node_modules/refractor/lang/csv.cjs.js.map +1 -1
  182. package/dist/node_modules/refractor/lang/csv.es.js.map +1 -1
  183. package/dist/node_modules/refractor/lang/cue.cjs.js.map +1 -1
  184. package/dist/node_modules/refractor/lang/cue.es.js.map +1 -1
  185. package/dist/node_modules/refractor/lang/cypher.cjs.js.map +1 -1
  186. package/dist/node_modules/refractor/lang/cypher.es.js.map +1 -1
  187. package/dist/node_modules/refractor/lang/d.cjs.js.map +1 -1
  188. package/dist/node_modules/refractor/lang/d.es.js.map +1 -1
  189. package/dist/node_modules/refractor/lang/dart.cjs.js.map +1 -1
  190. package/dist/node_modules/refractor/lang/dart.es.js.map +1 -1
  191. package/dist/node_modules/refractor/lang/dataweave.cjs.js.map +1 -1
  192. package/dist/node_modules/refractor/lang/dataweave.es.js.map +1 -1
  193. package/dist/node_modules/refractor/lang/dax.cjs.js.map +1 -1
  194. package/dist/node_modules/refractor/lang/dax.es.js.map +1 -1
  195. package/dist/node_modules/refractor/lang/dhall.cjs.js.map +1 -1
  196. package/dist/node_modules/refractor/lang/dhall.es.js.map +1 -1
  197. package/dist/node_modules/refractor/lang/diff.cjs.js.map +1 -1
  198. package/dist/node_modules/refractor/lang/diff.es.js.map +1 -1
  199. package/dist/node_modules/refractor/lang/django.cjs.js.map +1 -1
  200. package/dist/node_modules/refractor/lang/django.es.js.map +1 -1
  201. package/dist/node_modules/refractor/lang/dns-zone-file.cjs.js.map +1 -1
  202. package/dist/node_modules/refractor/lang/dns-zone-file.es.js.map +1 -1
  203. package/dist/node_modules/refractor/lang/docker.cjs.js.map +1 -1
  204. package/dist/node_modules/refractor/lang/docker.es.js.map +1 -1
  205. package/dist/node_modules/refractor/lang/dot.cjs.js.map +1 -1
  206. package/dist/node_modules/refractor/lang/dot.es.js.map +1 -1
  207. package/dist/node_modules/refractor/lang/ebnf.cjs.js.map +1 -1
  208. package/dist/node_modules/refractor/lang/ebnf.es.js.map +1 -1
  209. package/dist/node_modules/refractor/lang/editorconfig.cjs.js.map +1 -1
  210. package/dist/node_modules/refractor/lang/editorconfig.es.js.map +1 -1
  211. package/dist/node_modules/refractor/lang/eiffel.cjs.js.map +1 -1
  212. package/dist/node_modules/refractor/lang/eiffel.es.js.map +1 -1
  213. package/dist/node_modules/refractor/lang/ejs.cjs.js.map +1 -1
  214. package/dist/node_modules/refractor/lang/ejs.es.js.map +1 -1
  215. package/dist/node_modules/refractor/lang/elixir.cjs.js.map +1 -1
  216. package/dist/node_modules/refractor/lang/elixir.es.js.map +1 -1
  217. package/dist/node_modules/refractor/lang/elm.cjs.js.map +1 -1
  218. package/dist/node_modules/refractor/lang/elm.es.js.map +1 -1
  219. package/dist/node_modules/refractor/lang/erb.cjs.js.map +1 -1
  220. package/dist/node_modules/refractor/lang/erb.es.js.map +1 -1
  221. package/dist/node_modules/refractor/lang/erlang.cjs.js.map +1 -1
  222. package/dist/node_modules/refractor/lang/erlang.es.js.map +1 -1
  223. package/dist/node_modules/refractor/lang/etlua.cjs.js.map +1 -1
  224. package/dist/node_modules/refractor/lang/etlua.es.js.map +1 -1
  225. package/dist/node_modules/refractor/lang/excel-formula.cjs.js.map +1 -1
  226. package/dist/node_modules/refractor/lang/excel-formula.es.js.map +1 -1
  227. package/dist/node_modules/refractor/lang/factor.cjs.js.map +1 -1
  228. package/dist/node_modules/refractor/lang/factor.es.js.map +1 -1
  229. package/dist/node_modules/refractor/lang/false.cjs.js.map +1 -1
  230. package/dist/node_modules/refractor/lang/false.es.js.map +1 -1
  231. package/dist/node_modules/refractor/lang/firestore-security-rules.cjs.js.map +1 -1
  232. package/dist/node_modules/refractor/lang/firestore-security-rules.es.js.map +1 -1
  233. package/dist/node_modules/refractor/lang/flow.cjs.js.map +1 -1
  234. package/dist/node_modules/refractor/lang/flow.es.js.map +1 -1
  235. package/dist/node_modules/refractor/lang/fortran.cjs.js.map +1 -1
  236. package/dist/node_modules/refractor/lang/fortran.es.js.map +1 -1
  237. package/dist/node_modules/refractor/lang/fsharp.cjs.js.map +1 -1
  238. package/dist/node_modules/refractor/lang/fsharp.es.js.map +1 -1
  239. package/dist/node_modules/refractor/lang/ftl.cjs.js.map +1 -1
  240. package/dist/node_modules/refractor/lang/ftl.es.js.map +1 -1
  241. package/dist/node_modules/refractor/lang/gap.cjs.js.map +1 -1
  242. package/dist/node_modules/refractor/lang/gap.es.js.map +1 -1
  243. package/dist/node_modules/refractor/lang/gcode.cjs.js.map +1 -1
  244. package/dist/node_modules/refractor/lang/gcode.es.js.map +1 -1
  245. package/dist/node_modules/refractor/lang/gdscript.cjs.js.map +1 -1
  246. package/dist/node_modules/refractor/lang/gdscript.es.js.map +1 -1
  247. package/dist/node_modules/refractor/lang/gedcom.cjs.js.map +1 -1
  248. package/dist/node_modules/refractor/lang/gedcom.es.js.map +1 -1
  249. package/dist/node_modules/refractor/lang/gettext.cjs.js.map +1 -1
  250. package/dist/node_modules/refractor/lang/gettext.es.js.map +1 -1
  251. package/dist/node_modules/refractor/lang/gherkin.cjs.js.map +1 -1
  252. package/dist/node_modules/refractor/lang/gherkin.es.js.map +1 -1
  253. package/dist/node_modules/refractor/lang/git.cjs.js.map +1 -1
  254. package/dist/node_modules/refractor/lang/git.es.js.map +1 -1
  255. package/dist/node_modules/refractor/lang/glsl.cjs.js.map +1 -1
  256. package/dist/node_modules/refractor/lang/glsl.es.js.map +1 -1
  257. package/dist/node_modules/refractor/lang/gml.cjs.js.map +1 -1
  258. package/dist/node_modules/refractor/lang/gml.es.js.map +1 -1
  259. package/dist/node_modules/refractor/lang/gn.cjs.js.map +1 -1
  260. package/dist/node_modules/refractor/lang/gn.es.js.map +1 -1
  261. package/dist/node_modules/refractor/lang/go-module.cjs.js.map +1 -1
  262. package/dist/node_modules/refractor/lang/go-module.es.js.map +1 -1
  263. package/dist/node_modules/refractor/lang/go.cjs.js.map +1 -1
  264. package/dist/node_modules/refractor/lang/go.es.js.map +1 -1
  265. package/dist/node_modules/refractor/lang/gradle.cjs.js.map +1 -1
  266. package/dist/node_modules/refractor/lang/gradle.es.js.map +1 -1
  267. package/dist/node_modules/refractor/lang/graphql.cjs.js.map +1 -1
  268. package/dist/node_modules/refractor/lang/graphql.es.js.map +1 -1
  269. package/dist/node_modules/refractor/lang/groovy.cjs.js.map +1 -1
  270. package/dist/node_modules/refractor/lang/groovy.es.js.map +1 -1
  271. package/dist/node_modules/refractor/lang/haml.cjs.js.map +1 -1
  272. package/dist/node_modules/refractor/lang/haml.es.js.map +1 -1
  273. package/dist/node_modules/refractor/lang/handlebars.cjs.js.map +1 -1
  274. package/dist/node_modules/refractor/lang/handlebars.es.js.map +1 -1
  275. package/dist/node_modules/refractor/lang/haskell.cjs.js.map +1 -1
  276. package/dist/node_modules/refractor/lang/haskell.es.js.map +1 -1
  277. package/dist/node_modules/refractor/lang/haxe.cjs.js.map +1 -1
  278. package/dist/node_modules/refractor/lang/haxe.es.js.map +1 -1
  279. package/dist/node_modules/refractor/lang/hcl.cjs.js.map +1 -1
  280. package/dist/node_modules/refractor/lang/hcl.es.js.map +1 -1
  281. package/dist/node_modules/refractor/lang/hlsl.cjs.js.map +1 -1
  282. package/dist/node_modules/refractor/lang/hlsl.es.js.map +1 -1
  283. package/dist/node_modules/refractor/lang/hoon.cjs.js.map +1 -1
  284. package/dist/node_modules/refractor/lang/hoon.es.js.map +1 -1
  285. package/dist/node_modules/refractor/lang/hpkp.cjs.js.map +1 -1
  286. package/dist/node_modules/refractor/lang/hpkp.es.js.map +1 -1
  287. package/dist/node_modules/refractor/lang/hsts.cjs.js.map +1 -1
  288. package/dist/node_modules/refractor/lang/hsts.es.js.map +1 -1
  289. package/dist/node_modules/refractor/lang/http.cjs.js.map +1 -1
  290. package/dist/node_modules/refractor/lang/http.es.js.map +1 -1
  291. package/dist/node_modules/refractor/lang/ichigojam.cjs.js.map +1 -1
  292. package/dist/node_modules/refractor/lang/ichigojam.es.js.map +1 -1
  293. package/dist/node_modules/refractor/lang/icon.cjs.js.map +1 -1
  294. package/dist/node_modules/refractor/lang/icon.es.js.map +1 -1
  295. package/dist/node_modules/refractor/lang/icu-message-format.cjs.js.map +1 -1
  296. package/dist/node_modules/refractor/lang/icu-message-format.es.js.map +1 -1
  297. package/dist/node_modules/refractor/lang/idris.cjs.js.map +1 -1
  298. package/dist/node_modules/refractor/lang/idris.es.js.map +1 -1
  299. package/dist/node_modules/refractor/lang/iecst.cjs.js.map +1 -1
  300. package/dist/node_modules/refractor/lang/iecst.es.js.map +1 -1
  301. package/dist/node_modules/refractor/lang/ignore.cjs.js.map +1 -1
  302. package/dist/node_modules/refractor/lang/ignore.es.js.map +1 -1
  303. package/dist/node_modules/refractor/lang/inform7.cjs.js.map +1 -1
  304. package/dist/node_modules/refractor/lang/inform7.es.js.map +1 -1
  305. package/dist/node_modules/refractor/lang/ini.cjs.js.map +1 -1
  306. package/dist/node_modules/refractor/lang/ini.es.js.map +1 -1
  307. package/dist/node_modules/refractor/lang/io.cjs.js.map +1 -1
  308. package/dist/node_modules/refractor/lang/io.es.js.map +1 -1
  309. package/dist/node_modules/refractor/lang/j.cjs.js.map +1 -1
  310. package/dist/node_modules/refractor/lang/j.es.js.map +1 -1
  311. package/dist/node_modules/refractor/lang/java.cjs.js.map +1 -1
  312. package/dist/node_modules/refractor/lang/java.es.js.map +1 -1
  313. package/dist/node_modules/refractor/lang/javadoc.cjs.js.map +1 -1
  314. package/dist/node_modules/refractor/lang/javadoc.es.js.map +1 -1
  315. package/dist/node_modules/refractor/lang/javadoclike.cjs.js.map +1 -1
  316. package/dist/node_modules/refractor/lang/javadoclike.es.js.map +1 -1
  317. package/dist/node_modules/refractor/lang/javascript.cjs.js.map +1 -1
  318. package/dist/node_modules/refractor/lang/javascript.es.js.map +1 -1
  319. package/dist/node_modules/refractor/lang/javastacktrace.cjs.js.map +1 -1
  320. package/dist/node_modules/refractor/lang/javastacktrace.es.js.map +1 -1
  321. package/dist/node_modules/refractor/lang/jexl.cjs.js.map +1 -1
  322. package/dist/node_modules/refractor/lang/jexl.es.js.map +1 -1
  323. package/dist/node_modules/refractor/lang/jolie.cjs.js.map +1 -1
  324. package/dist/node_modules/refractor/lang/jolie.es.js.map +1 -1
  325. package/dist/node_modules/refractor/lang/jq.cjs.js.map +1 -1
  326. package/dist/node_modules/refractor/lang/jq.es.js.map +1 -1
  327. package/dist/node_modules/refractor/lang/js-extras.cjs.js.map +1 -1
  328. package/dist/node_modules/refractor/lang/js-extras.es.js.map +1 -1
  329. package/dist/node_modules/refractor/lang/js-templates.cjs.js.map +1 -1
  330. package/dist/node_modules/refractor/lang/js-templates.es.js.map +1 -1
  331. package/dist/node_modules/refractor/lang/jsdoc.cjs.js.map +1 -1
  332. package/dist/node_modules/refractor/lang/jsdoc.es.js.map +1 -1
  333. package/dist/node_modules/refractor/lang/json.cjs.js.map +1 -1
  334. package/dist/node_modules/refractor/lang/json.es.js.map +1 -1
  335. package/dist/node_modules/refractor/lang/json5.cjs.js.map +1 -1
  336. package/dist/node_modules/refractor/lang/json5.es.js.map +1 -1
  337. package/dist/node_modules/refractor/lang/jsonp.cjs.js.map +1 -1
  338. package/dist/node_modules/refractor/lang/jsonp.es.js.map +1 -1
  339. package/dist/node_modules/refractor/lang/jsstacktrace.cjs.js.map +1 -1
  340. package/dist/node_modules/refractor/lang/jsstacktrace.es.js.map +1 -1
  341. package/dist/node_modules/refractor/lang/jsx.cjs.js.map +1 -1
  342. package/dist/node_modules/refractor/lang/jsx.es.js.map +1 -1
  343. package/dist/node_modules/refractor/lang/julia.cjs.js.map +1 -1
  344. package/dist/node_modules/refractor/lang/julia.es.js.map +1 -1
  345. package/dist/node_modules/refractor/lang/keepalived.cjs.js.map +1 -1
  346. package/dist/node_modules/refractor/lang/keepalived.es.js.map +1 -1
  347. package/dist/node_modules/refractor/lang/keyman.cjs.js.map +1 -1
  348. package/dist/node_modules/refractor/lang/keyman.es.js.map +1 -1
  349. package/dist/node_modules/refractor/lang/kotlin.cjs.js.map +1 -1
  350. package/dist/node_modules/refractor/lang/kotlin.es.js.map +1 -1
  351. package/dist/node_modules/refractor/lang/kumir.cjs.js.map +1 -1
  352. package/dist/node_modules/refractor/lang/kumir.es.js.map +1 -1
  353. package/dist/node_modules/refractor/lang/kusto.cjs.js.map +1 -1
  354. package/dist/node_modules/refractor/lang/kusto.es.js.map +1 -1
  355. package/dist/node_modules/refractor/lang/latex.cjs.js.map +1 -1
  356. package/dist/node_modules/refractor/lang/latex.es.js.map +1 -1
  357. package/dist/node_modules/refractor/lang/latte.cjs.js.map +1 -1
  358. package/dist/node_modules/refractor/lang/latte.es.js.map +1 -1
  359. package/dist/node_modules/refractor/lang/less.cjs.js.map +1 -1
  360. package/dist/node_modules/refractor/lang/less.es.js.map +1 -1
  361. package/dist/node_modules/refractor/lang/lilypond.cjs.js.map +1 -1
  362. package/dist/node_modules/refractor/lang/lilypond.es.js.map +1 -1
  363. package/dist/node_modules/refractor/lang/linker-script.cjs.js.map +1 -1
  364. package/dist/node_modules/refractor/lang/linker-script.es.js.map +1 -1
  365. package/dist/node_modules/refractor/lang/liquid.cjs.js.map +1 -1
  366. package/dist/node_modules/refractor/lang/liquid.es.js.map +1 -1
  367. package/dist/node_modules/refractor/lang/lisp.cjs.js.map +1 -1
  368. package/dist/node_modules/refractor/lang/lisp.es.js.map +1 -1
  369. package/dist/node_modules/refractor/lang/livescript.cjs.js.map +1 -1
  370. package/dist/node_modules/refractor/lang/livescript.es.js.map +1 -1
  371. package/dist/node_modules/refractor/lang/llvm.cjs.js.map +1 -1
  372. package/dist/node_modules/refractor/lang/llvm.es.js.map +1 -1
  373. package/dist/node_modules/refractor/lang/log.cjs.js.map +1 -1
  374. package/dist/node_modules/refractor/lang/log.es.js.map +1 -1
  375. package/dist/node_modules/refractor/lang/lolcode.cjs.js.map +1 -1
  376. package/dist/node_modules/refractor/lang/lolcode.es.js.map +1 -1
  377. package/dist/node_modules/refractor/lang/lua.cjs.js.map +1 -1
  378. package/dist/node_modules/refractor/lang/lua.es.js.map +1 -1
  379. package/dist/node_modules/refractor/lang/magma.cjs.js.map +1 -1
  380. package/dist/node_modules/refractor/lang/magma.es.js.map +1 -1
  381. package/dist/node_modules/refractor/lang/makefile.cjs.js.map +1 -1
  382. package/dist/node_modules/refractor/lang/makefile.es.js.map +1 -1
  383. package/dist/node_modules/refractor/lang/markdown.cjs.js +6 -4
  384. package/dist/node_modules/refractor/lang/markdown.cjs.js.map +1 -1
  385. package/dist/node_modules/refractor/lang/markdown.es.js +6 -4
  386. package/dist/node_modules/refractor/lang/markdown.es.js.map +1 -1
  387. package/dist/node_modules/refractor/lang/markup-templating.cjs.js.map +1 -1
  388. package/dist/node_modules/refractor/lang/markup-templating.es.js.map +1 -1
  389. package/dist/node_modules/refractor/lang/markup.cjs.js.map +1 -1
  390. package/dist/node_modules/refractor/lang/markup.es.js.map +1 -1
  391. package/dist/node_modules/refractor/lang/mata.cjs.js.map +1 -1
  392. package/dist/node_modules/refractor/lang/mata.es.js.map +1 -1
  393. package/dist/node_modules/refractor/lang/matlab.cjs.js.map +1 -1
  394. package/dist/node_modules/refractor/lang/matlab.es.js.map +1 -1
  395. package/dist/node_modules/refractor/lang/maxscript.cjs.js.map +1 -1
  396. package/dist/node_modules/refractor/lang/maxscript.es.js.map +1 -1
  397. package/dist/node_modules/refractor/lang/mel.cjs.js.map +1 -1
  398. package/dist/node_modules/refractor/lang/mel.es.js.map +1 -1
  399. package/dist/node_modules/refractor/lang/mermaid.cjs.js.map +1 -1
  400. package/dist/node_modules/refractor/lang/mermaid.es.js.map +1 -1
  401. package/dist/node_modules/refractor/lang/metafont.cjs.js.map +1 -1
  402. package/dist/node_modules/refractor/lang/metafont.es.js.map +1 -1
  403. package/dist/node_modules/refractor/lang/mizar.cjs.js.map +1 -1
  404. package/dist/node_modules/refractor/lang/mizar.es.js.map +1 -1
  405. package/dist/node_modules/refractor/lang/mongodb.cjs.js.map +1 -1
  406. package/dist/node_modules/refractor/lang/mongodb.es.js.map +1 -1
  407. package/dist/node_modules/refractor/lang/monkey.cjs.js.map +1 -1
  408. package/dist/node_modules/refractor/lang/monkey.es.js.map +1 -1
  409. package/dist/node_modules/refractor/lang/moonscript.cjs.js.map +1 -1
  410. package/dist/node_modules/refractor/lang/moonscript.es.js.map +1 -1
  411. package/dist/node_modules/refractor/lang/n1ql.cjs.js.map +1 -1
  412. package/dist/node_modules/refractor/lang/n1ql.es.js.map +1 -1
  413. package/dist/node_modules/refractor/lang/n4js.cjs.js.map +1 -1
  414. package/dist/node_modules/refractor/lang/n4js.es.js.map +1 -1
  415. package/dist/node_modules/refractor/lang/nand2tetris-hdl.cjs.js.map +1 -1
  416. package/dist/node_modules/refractor/lang/nand2tetris-hdl.es.js.map +1 -1
  417. package/dist/node_modules/refractor/lang/naniscript.cjs.js.map +1 -1
  418. package/dist/node_modules/refractor/lang/naniscript.es.js.map +1 -1
  419. package/dist/node_modules/refractor/lang/nasm.cjs.js.map +1 -1
  420. package/dist/node_modules/refractor/lang/nasm.es.js.map +1 -1
  421. package/dist/node_modules/refractor/lang/neon.cjs.js.map +1 -1
  422. package/dist/node_modules/refractor/lang/neon.es.js.map +1 -1
  423. package/dist/node_modules/refractor/lang/nevod.cjs.js.map +1 -1
  424. package/dist/node_modules/refractor/lang/nevod.es.js.map +1 -1
  425. package/dist/node_modules/refractor/lang/nginx.cjs.js.map +1 -1
  426. package/dist/node_modules/refractor/lang/nginx.es.js.map +1 -1
  427. package/dist/node_modules/refractor/lang/nim.cjs.js.map +1 -1
  428. package/dist/node_modules/refractor/lang/nim.es.js.map +1 -1
  429. package/dist/node_modules/refractor/lang/nix.cjs.js.map +1 -1
  430. package/dist/node_modules/refractor/lang/nix.es.js.map +1 -1
  431. package/dist/node_modules/refractor/lang/nsis.cjs.js.map +1 -1
  432. package/dist/node_modules/refractor/lang/nsis.es.js.map +1 -1
  433. package/dist/node_modules/refractor/lang/objectivec.cjs.js.map +1 -1
  434. package/dist/node_modules/refractor/lang/objectivec.es.js.map +1 -1
  435. package/dist/node_modules/refractor/lang/ocaml.cjs.js.map +1 -1
  436. package/dist/node_modules/refractor/lang/ocaml.es.js.map +1 -1
  437. package/dist/node_modules/refractor/lang/odin.cjs.js.map +1 -1
  438. package/dist/node_modules/refractor/lang/odin.es.js.map +1 -1
  439. package/dist/node_modules/refractor/lang/opencl.cjs.js.map +1 -1
  440. package/dist/node_modules/refractor/lang/opencl.es.js.map +1 -1
  441. package/dist/node_modules/refractor/lang/openqasm.cjs.js.map +1 -1
  442. package/dist/node_modules/refractor/lang/openqasm.es.js.map +1 -1
  443. package/dist/node_modules/refractor/lang/oz.cjs.js.map +1 -1
  444. package/dist/node_modules/refractor/lang/oz.es.js.map +1 -1
  445. package/dist/node_modules/refractor/lang/parigp.cjs.js.map +1 -1
  446. package/dist/node_modules/refractor/lang/parigp.es.js.map +1 -1
  447. package/dist/node_modules/refractor/lang/parser.cjs.js.map +1 -1
  448. package/dist/node_modules/refractor/lang/parser.es.js.map +1 -1
  449. package/dist/node_modules/refractor/lang/pascal.cjs.js.map +1 -1
  450. package/dist/node_modules/refractor/lang/pascal.es.js.map +1 -1
  451. package/dist/node_modules/refractor/lang/pascaligo.cjs.js.map +1 -1
  452. package/dist/node_modules/refractor/lang/pascaligo.es.js.map +1 -1
  453. package/dist/node_modules/refractor/lang/pcaxis.cjs.js.map +1 -1
  454. package/dist/node_modules/refractor/lang/pcaxis.es.js.map +1 -1
  455. package/dist/node_modules/refractor/lang/peoplecode.cjs.js.map +1 -1
  456. package/dist/node_modules/refractor/lang/peoplecode.es.js.map +1 -1
  457. package/dist/node_modules/refractor/lang/perl.cjs.js.map +1 -1
  458. package/dist/node_modules/refractor/lang/perl.es.js.map +1 -1
  459. package/dist/node_modules/refractor/lang/php-extras.cjs.js.map +1 -1
  460. package/dist/node_modules/refractor/lang/php-extras.es.js.map +1 -1
  461. package/dist/node_modules/refractor/lang/php.cjs.js.map +1 -1
  462. package/dist/node_modules/refractor/lang/php.es.js.map +1 -1
  463. package/dist/node_modules/refractor/lang/phpdoc.cjs.js.map +1 -1
  464. package/dist/node_modules/refractor/lang/phpdoc.es.js.map +1 -1
  465. package/dist/node_modules/refractor/lang/plant-uml.cjs.js.map +1 -1
  466. package/dist/node_modules/refractor/lang/plant-uml.es.js.map +1 -1
  467. package/dist/node_modules/refractor/lang/plsql.cjs.js.map +1 -1
  468. package/dist/node_modules/refractor/lang/plsql.es.js.map +1 -1
  469. package/dist/node_modules/refractor/lang/powerquery.cjs.js.map +1 -1
  470. package/dist/node_modules/refractor/lang/powerquery.es.js.map +1 -1
  471. package/dist/node_modules/refractor/lang/powershell.cjs.js.map +1 -1
  472. package/dist/node_modules/refractor/lang/powershell.es.js.map +1 -1
  473. package/dist/node_modules/refractor/lang/processing.cjs.js.map +1 -1
  474. package/dist/node_modules/refractor/lang/processing.es.js.map +1 -1
  475. package/dist/node_modules/refractor/lang/prolog.cjs.js.map +1 -1
  476. package/dist/node_modules/refractor/lang/prolog.es.js.map +1 -1
  477. package/dist/node_modules/refractor/lang/promql.cjs.js.map +1 -1
  478. package/dist/node_modules/refractor/lang/promql.es.js.map +1 -1
  479. package/dist/node_modules/refractor/lang/properties.cjs.js.map +1 -1
  480. package/dist/node_modules/refractor/lang/properties.es.js.map +1 -1
  481. package/dist/node_modules/refractor/lang/protobuf.cjs.js.map +1 -1
  482. package/dist/node_modules/refractor/lang/protobuf.es.js.map +1 -1
  483. package/dist/node_modules/refractor/lang/psl.cjs.js.map +1 -1
  484. package/dist/node_modules/refractor/lang/psl.es.js.map +1 -1
  485. package/dist/node_modules/refractor/lang/pug.cjs.js.map +1 -1
  486. package/dist/node_modules/refractor/lang/pug.es.js.map +1 -1
  487. package/dist/node_modules/refractor/lang/puppet.cjs.js.map +1 -1
  488. package/dist/node_modules/refractor/lang/puppet.es.js.map +1 -1
  489. package/dist/node_modules/refractor/lang/pure.cjs.js.map +1 -1
  490. package/dist/node_modules/refractor/lang/pure.es.js.map +1 -1
  491. package/dist/node_modules/refractor/lang/purebasic.cjs.js.map +1 -1
  492. package/dist/node_modules/refractor/lang/purebasic.es.js.map +1 -1
  493. package/dist/node_modules/refractor/lang/purescript.cjs.js.map +1 -1
  494. package/dist/node_modules/refractor/lang/purescript.es.js.map +1 -1
  495. package/dist/node_modules/refractor/lang/python.cjs.js.map +1 -1
  496. package/dist/node_modules/refractor/lang/python.es.js.map +1 -1
  497. package/dist/node_modules/refractor/lang/q.cjs.js.map +1 -1
  498. package/dist/node_modules/refractor/lang/q.es.js.map +1 -1
  499. package/dist/node_modules/refractor/lang/qml.cjs.js.map +1 -1
  500. package/dist/node_modules/refractor/lang/qml.es.js.map +1 -1
  501. package/dist/node_modules/refractor/lang/qore.cjs.js.map +1 -1
  502. package/dist/node_modules/refractor/lang/qore.es.js.map +1 -1
  503. package/dist/node_modules/refractor/lang/qsharp.cjs.js.map +1 -1
  504. package/dist/node_modules/refractor/lang/qsharp.es.js.map +1 -1
  505. package/dist/node_modules/refractor/lang/r.cjs.js.map +1 -1
  506. package/dist/node_modules/refractor/lang/r.es.js.map +1 -1
  507. package/dist/node_modules/refractor/lang/racket.cjs.js.map +1 -1
  508. package/dist/node_modules/refractor/lang/racket.es.js.map +1 -1
  509. package/dist/node_modules/refractor/lang/reason.cjs.js.map +1 -1
  510. package/dist/node_modules/refractor/lang/reason.es.js.map +1 -1
  511. package/dist/node_modules/refractor/lang/regex.cjs.js.map +1 -1
  512. package/dist/node_modules/refractor/lang/regex.es.js.map +1 -1
  513. package/dist/node_modules/refractor/lang/rego.cjs.js.map +1 -1
  514. package/dist/node_modules/refractor/lang/rego.es.js.map +1 -1
  515. package/dist/node_modules/refractor/lang/renpy.cjs.js.map +1 -1
  516. package/dist/node_modules/refractor/lang/renpy.es.js.map +1 -1
  517. package/dist/node_modules/refractor/lang/rescript.cjs.js.map +1 -1
  518. package/dist/node_modules/refractor/lang/rescript.es.js.map +1 -1
  519. package/dist/node_modules/refractor/lang/rest.cjs.js.map +1 -1
  520. package/dist/node_modules/refractor/lang/rest.es.js.map +1 -1
  521. package/dist/node_modules/refractor/lang/rip.cjs.js.map +1 -1
  522. package/dist/node_modules/refractor/lang/rip.es.js.map +1 -1
  523. package/dist/node_modules/refractor/lang/roboconf.cjs.js.map +1 -1
  524. package/dist/node_modules/refractor/lang/roboconf.es.js.map +1 -1
  525. package/dist/node_modules/refractor/lang/robotframework.cjs.js.map +1 -1
  526. package/dist/node_modules/refractor/lang/robotframework.es.js.map +1 -1
  527. package/dist/node_modules/refractor/lang/ruby.cjs.js.map +1 -1
  528. package/dist/node_modules/refractor/lang/ruby.es.js.map +1 -1
  529. package/dist/node_modules/refractor/lang/rust.cjs.js.map +1 -1
  530. package/dist/node_modules/refractor/lang/rust.es.js.map +1 -1
  531. package/dist/node_modules/refractor/lang/sas.cjs.js.map +1 -1
  532. package/dist/node_modules/refractor/lang/sas.es.js.map +1 -1
  533. package/dist/node_modules/refractor/lang/sass.cjs.js.map +1 -1
  534. package/dist/node_modules/refractor/lang/sass.es.js.map +1 -1
  535. package/dist/node_modules/refractor/lang/scala.cjs.js.map +1 -1
  536. package/dist/node_modules/refractor/lang/scala.es.js.map +1 -1
  537. package/dist/node_modules/refractor/lang/scheme.cjs.js.map +1 -1
  538. package/dist/node_modules/refractor/lang/scheme.es.js.map +1 -1
  539. package/dist/node_modules/refractor/lang/scss.cjs.js.map +1 -1
  540. package/dist/node_modules/refractor/lang/scss.es.js.map +1 -1
  541. package/dist/node_modules/refractor/lang/shell-session.cjs.js.map +1 -1
  542. package/dist/node_modules/refractor/lang/shell-session.es.js.map +1 -1
  543. package/dist/node_modules/refractor/lang/smali.cjs.js.map +1 -1
  544. package/dist/node_modules/refractor/lang/smali.es.js.map +1 -1
  545. package/dist/node_modules/refractor/lang/smalltalk.cjs.js.map +1 -1
  546. package/dist/node_modules/refractor/lang/smalltalk.es.js.map +1 -1
  547. package/dist/node_modules/refractor/lang/smarty.cjs.js.map +1 -1
  548. package/dist/node_modules/refractor/lang/smarty.es.js.map +1 -1
  549. package/dist/node_modules/refractor/lang/sml.cjs.js.map +1 -1
  550. package/dist/node_modules/refractor/lang/sml.es.js.map +1 -1
  551. package/dist/node_modules/refractor/lang/solidity.cjs.js.map +1 -1
  552. package/dist/node_modules/refractor/lang/solidity.es.js.map +1 -1
  553. package/dist/node_modules/refractor/lang/solution-file.cjs.js.map +1 -1
  554. package/dist/node_modules/refractor/lang/solution-file.es.js.map +1 -1
  555. package/dist/node_modules/refractor/lang/soy.cjs.js.map +1 -1
  556. package/dist/node_modules/refractor/lang/soy.es.js.map +1 -1
  557. package/dist/node_modules/refractor/lang/sparql.cjs.js.map +1 -1
  558. package/dist/node_modules/refractor/lang/sparql.es.js.map +1 -1
  559. package/dist/node_modules/refractor/lang/splunk-spl.cjs.js.map +1 -1
  560. package/dist/node_modules/refractor/lang/splunk-spl.es.js.map +1 -1
  561. package/dist/node_modules/refractor/lang/sqf.cjs.js.map +1 -1
  562. package/dist/node_modules/refractor/lang/sqf.es.js.map +1 -1
  563. package/dist/node_modules/refractor/lang/sql.cjs.js.map +1 -1
  564. package/dist/node_modules/refractor/lang/sql.es.js.map +1 -1
  565. package/dist/node_modules/refractor/lang/squirrel.cjs.js.map +1 -1
  566. package/dist/node_modules/refractor/lang/squirrel.es.js.map +1 -1
  567. package/dist/node_modules/refractor/lang/stan.cjs.js.map +1 -1
  568. package/dist/node_modules/refractor/lang/stan.es.js.map +1 -1
  569. package/dist/node_modules/refractor/lang/stata.cjs.js.map +1 -1
  570. package/dist/node_modules/refractor/lang/stata.es.js.map +1 -1
  571. package/dist/node_modules/refractor/lang/stylus.cjs.js.map +1 -1
  572. package/dist/node_modules/refractor/lang/stylus.es.js.map +1 -1
  573. package/dist/node_modules/refractor/lang/supercollider.cjs.js.map +1 -1
  574. package/dist/node_modules/refractor/lang/supercollider.es.js.map +1 -1
  575. package/dist/node_modules/refractor/lang/swift.cjs.js.map +1 -1
  576. package/dist/node_modules/refractor/lang/swift.es.js.map +1 -1
  577. package/dist/node_modules/refractor/lang/systemd.cjs.js.map +1 -1
  578. package/dist/node_modules/refractor/lang/systemd.es.js.map +1 -1
  579. package/dist/node_modules/refractor/lang/t4-cs.cjs.js.map +1 -1
  580. package/dist/node_modules/refractor/lang/t4-cs.es.js.map +1 -1
  581. package/dist/node_modules/refractor/lang/t4-templating.cjs.js.map +1 -1
  582. package/dist/node_modules/refractor/lang/t4-templating.es.js.map +1 -1
  583. package/dist/node_modules/refractor/lang/t4-vb.cjs.js.map +1 -1
  584. package/dist/node_modules/refractor/lang/t4-vb.es.js.map +1 -1
  585. package/dist/node_modules/refractor/lang/tap.cjs.js.map +1 -1
  586. package/dist/node_modules/refractor/lang/tap.es.js.map +1 -1
  587. package/dist/node_modules/refractor/lang/tcl.cjs.js.map +1 -1
  588. package/dist/node_modules/refractor/lang/tcl.es.js.map +1 -1
  589. package/dist/node_modules/refractor/lang/textile.cjs.js.map +1 -1
  590. package/dist/node_modules/refractor/lang/textile.es.js.map +1 -1
  591. package/dist/node_modules/refractor/lang/toml.cjs.js.map +1 -1
  592. package/dist/node_modules/refractor/lang/toml.es.js.map +1 -1
  593. package/dist/node_modules/refractor/lang/tremor.cjs.js.map +1 -1
  594. package/dist/node_modules/refractor/lang/tremor.es.js.map +1 -1
  595. package/dist/node_modules/refractor/lang/tsx.cjs.js.map +1 -1
  596. package/dist/node_modules/refractor/lang/tsx.es.js.map +1 -1
  597. package/dist/node_modules/refractor/lang/tt2.cjs.js.map +1 -1
  598. package/dist/node_modules/refractor/lang/tt2.es.js.map +1 -1
  599. package/dist/node_modules/refractor/lang/turtle.cjs.js.map +1 -1
  600. package/dist/node_modules/refractor/lang/turtle.es.js.map +1 -1
  601. package/dist/node_modules/refractor/lang/twig.cjs.js.map +1 -1
  602. package/dist/node_modules/refractor/lang/twig.es.js.map +1 -1
  603. package/dist/node_modules/refractor/lang/typescript.cjs.js.map +1 -1
  604. package/dist/node_modules/refractor/lang/typescript.es.js.map +1 -1
  605. package/dist/node_modules/refractor/lang/typoscript.cjs.js.map +1 -1
  606. package/dist/node_modules/refractor/lang/typoscript.es.js.map +1 -1
  607. package/dist/node_modules/refractor/lang/unrealscript.cjs.js.map +1 -1
  608. package/dist/node_modules/refractor/lang/unrealscript.es.js.map +1 -1
  609. package/dist/node_modules/refractor/lang/uorazor.cjs.js.map +1 -1
  610. package/dist/node_modules/refractor/lang/uorazor.es.js.map +1 -1
  611. package/dist/node_modules/refractor/lang/uri.cjs.js.map +1 -1
  612. package/dist/node_modules/refractor/lang/uri.es.js.map +1 -1
  613. package/dist/node_modules/refractor/lang/v.cjs.js.map +1 -1
  614. package/dist/node_modules/refractor/lang/v.es.js.map +1 -1
  615. package/dist/node_modules/refractor/lang/vala.cjs.js.map +1 -1
  616. package/dist/node_modules/refractor/lang/vala.es.js.map +1 -1
  617. package/dist/node_modules/refractor/lang/vbnet.cjs.js.map +1 -1
  618. package/dist/node_modules/refractor/lang/vbnet.es.js.map +1 -1
  619. package/dist/node_modules/refractor/lang/velocity.cjs.js.map +1 -1
  620. package/dist/node_modules/refractor/lang/velocity.es.js.map +1 -1
  621. package/dist/node_modules/refractor/lang/verilog.cjs.js.map +1 -1
  622. package/dist/node_modules/refractor/lang/verilog.es.js.map +1 -1
  623. package/dist/node_modules/refractor/lang/vhdl.cjs.js.map +1 -1
  624. package/dist/node_modules/refractor/lang/vhdl.es.js.map +1 -1
  625. package/dist/node_modules/refractor/lang/vim.cjs.js.map +1 -1
  626. package/dist/node_modules/refractor/lang/vim.es.js.map +1 -1
  627. package/dist/node_modules/refractor/lang/visual-basic.cjs.js.map +1 -1
  628. package/dist/node_modules/refractor/lang/visual-basic.es.js.map +1 -1
  629. package/dist/node_modules/refractor/lang/warpscript.cjs.js.map +1 -1
  630. package/dist/node_modules/refractor/lang/warpscript.es.js.map +1 -1
  631. package/dist/node_modules/refractor/lang/wasm.cjs.js.map +1 -1
  632. package/dist/node_modules/refractor/lang/wasm.es.js.map +1 -1
  633. package/dist/node_modules/refractor/lang/web-idl.cjs.js.map +1 -1
  634. package/dist/node_modules/refractor/lang/web-idl.es.js.map +1 -1
  635. package/dist/node_modules/refractor/lang/wgsl.cjs.js.map +1 -1
  636. package/dist/node_modules/refractor/lang/wgsl.es.js.map +1 -1
  637. package/dist/node_modules/refractor/lang/wiki.cjs.js.map +1 -1
  638. package/dist/node_modules/refractor/lang/wiki.es.js.map +1 -1
  639. package/dist/node_modules/refractor/lang/wolfram.cjs.js.map +1 -1
  640. package/dist/node_modules/refractor/lang/wolfram.es.js.map +1 -1
  641. package/dist/node_modules/refractor/lang/wren.cjs.js.map +1 -1
  642. package/dist/node_modules/refractor/lang/wren.es.js.map +1 -1
  643. package/dist/node_modules/refractor/lang/xeora.cjs.js.map +1 -1
  644. package/dist/node_modules/refractor/lang/xeora.es.js.map +1 -1
  645. package/dist/node_modules/refractor/lang/xml-doc.cjs.js.map +1 -1
  646. package/dist/node_modules/refractor/lang/xml-doc.es.js.map +1 -1
  647. package/dist/node_modules/refractor/lang/xojo.cjs.js.map +1 -1
  648. package/dist/node_modules/refractor/lang/xojo.es.js.map +1 -1
  649. package/dist/node_modules/refractor/lang/xquery.cjs.js.map +1 -1
  650. package/dist/node_modules/refractor/lang/xquery.es.js.map +1 -1
  651. package/dist/node_modules/refractor/lang/yaml.cjs.js.map +1 -1
  652. package/dist/node_modules/refractor/lang/yaml.es.js.map +1 -1
  653. package/dist/node_modules/refractor/lang/yang.cjs.js.map +1 -1
  654. package/dist/node_modules/refractor/lang/yang.es.js.map +1 -1
  655. package/dist/node_modules/refractor/lang/zig.cjs.js.map +1 -1
  656. package/dist/node_modules/refractor/lang/zig.es.js.map +1 -1
  657. package/dist/node_modules/refractor/lib/all.cjs.js.map +1 -1
  658. package/dist/node_modules/refractor/lib/all.es.js.map +1 -1
  659. package/dist/node_modules/refractor/lib/common.cjs.js.map +1 -1
  660. package/dist/node_modules/refractor/lib/common.es.js.map +1 -1
  661. package/dist/node_modules/refractor/lib/core.cjs.js +10 -10
  662. package/dist/node_modules/refractor/lib/core.cjs.js.map +1 -1
  663. package/dist/node_modules/refractor/lib/core.es.js +10 -10
  664. package/dist/node_modules/refractor/lib/core.es.js.map +1 -1
  665. package/dist/node_modules/refractor/lib/prism-core.cjs.js +6 -3
  666. package/dist/node_modules/refractor/lib/prism-core.cjs.js.map +1 -1
  667. package/dist/node_modules/refractor/lib/prism-core.es.js +6 -3
  668. package/dist/node_modules/refractor/lib/prism-core.es.js.map +1 -1
  669. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  670. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  671. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  672. package/dist/node_modules/remove-accents/index.es.js +1 -1
  673. package/dist/shared/src/api/generated/graphql.cjs.js +4 -2
  674. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  675. package/dist/shared/src/api/generated/graphql.es.js +4 -2
  676. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  677. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -0
  678. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  679. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +1 -0
  680. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  681. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -0
  682. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  683. package/dist/shared/src/api/queries/entities/updateEntity.es.js +1 -0
  684. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  685. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +6 -4
  686. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  687. package/dist/shared/src/api/queries/entityLists/getLists.es.js +6 -4
  688. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  689. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +65 -1
  690. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  691. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +65 -1
  692. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  693. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -0
  694. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  695. package/dist/shared/src/api/queries/overview/updateOverview.es.js +1 -0
  696. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  697. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +52 -0
  698. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -0
  699. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +52 -0
  700. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -0
  701. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -5
  702. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  703. package/dist/shared/src/api/queries/users/getUsers.es.js +1 -5
  704. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  705. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +22 -14
  706. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  707. package/dist/shared/src/api/queries/users/updateUsers.es.js +22 -14
  708. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  709. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -0
  710. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  711. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +1 -0
  712. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  713. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +1 -0
  714. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  715. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +1 -0
  716. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  717. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +2 -0
  718. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  719. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +2 -0
  720. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  721. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +4 -0
  722. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  723. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +4 -0
  724. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  725. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +5 -0
  726. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  727. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -0
  728. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  729. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -0
  730. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  731. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +1 -0
  732. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  733. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +4 -0
  734. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  735. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -0
  736. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  737. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +4 -0
  738. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  739. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -0
  740. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  741. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +4 -0
  742. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  743. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -0
  744. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  745. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -0
  746. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  747. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +2 -0
  748. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  749. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +6 -0
  750. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  751. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +6 -0
  752. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  753. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.cjs.js +2 -7
  754. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.cjs.js.map +1 -1
  755. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.es.js +2 -7
  756. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.es.js.map +1 -1
  757. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -0
  758. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  759. package/dist/shared/src/components/Watchers/Watchers.es.js +1 -0
  760. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  761. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +4 -0
  762. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -0
  764. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  765. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js +1 -1
  766. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  767. package/dist/shared/src/containers/Actions/ActionIcon.es.js +1 -1
  768. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  769. package/dist/shared/src/containers/Actions/Actions.cjs.js +13 -8
  770. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  771. package/dist/shared/src/containers/Actions/Actions.es.js +13 -8
  772. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  773. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  774. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  775. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +2 -2
  776. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  777. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +4 -0
  778. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  779. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +4 -0
  780. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  781. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +4 -0
  782. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  783. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -0
  784. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  785. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +4 -0
  786. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  787. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -0
  788. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  789. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +4 -0
  790. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  791. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -0
  792. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  793. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +4 -0
  794. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  795. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -0
  796. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  797. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +4 -0
  798. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  799. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -0
  800. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  801. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +3 -0
  802. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  803. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -0
  804. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  805. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +2 -0
  806. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  807. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +2 -0
  808. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  809. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -0
  810. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  811. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +1 -0
  812. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  813. package/dist/shared/src/containers/Feed/Feed.cjs.js +24 -3
  814. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  815. package/dist/shared/src/containers/Feed/Feed.es.js +25 -4
  816. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  817. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +18 -0
  818. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  819. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +19 -1
  820. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  821. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +2 -0
  822. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  823. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +2 -0
  824. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  825. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +7 -4
  826. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  827. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +7 -4
  828. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  829. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  830. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  831. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +3 -1
  832. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -1
  834. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  835. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js +27 -15
  836. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js +27 -15
  838. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js.map +1 -1
  839. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +2 -0
  840. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  841. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +2 -0
  842. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  843. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +40 -12
  844. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +41 -13
  846. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  847. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js +33 -19
  848. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js.map +1 -1
  849. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js +33 -19
  850. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js.map +1 -1
  851. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +14 -12
  852. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  853. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +14 -12
  854. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  855. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +8 -6
  856. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  857. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -6
  858. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  859. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +3 -0
  860. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  861. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +3 -0
  862. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  863. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js +18 -0
  864. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js.map +1 -0
  865. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js +19 -0
  866. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js.map +1 -0
  867. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +12 -3
  868. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  869. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +12 -3
  870. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  871. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -0
  872. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  873. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +1 -0
  874. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  875. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
  876. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
  877. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +275 -53
  878. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  879. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +277 -55
  880. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  881. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +38 -4
  882. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  883. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +38 -4
  884. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  885. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +49 -21
  886. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  887. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +49 -21
  888. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  889. package/dist/shared/src/containers/ProjectTreeTable/components/RowDragHandleCellContent.cjs.js +33 -0
  890. package/dist/shared/src/containers/ProjectTreeTable/components/RowDragHandleCellContent.cjs.js.map +1 -0
  891. package/dist/shared/src/containers/ProjectTreeTable/components/RowDragHandleCellContent.es.js +34 -0
  892. package/dist/shared/src/containers/ProjectTreeTable/components/RowDragHandleCellContent.es.js.map +1 -0
  893. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  894. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  895. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +116 -0
  896. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -0
  897. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +116 -0
  898. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -0
  899. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +2 -1
  900. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  901. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +2 -1
  902. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  903. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +84 -0
  904. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -0
  905. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +85 -0
  906. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -0
  907. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js +0 -36
  908. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +1 -1
  909. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js +0 -36
  910. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +1 -1
  911. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +3 -2
  912. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  913. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +3 -2
  914. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  915. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +4 -0
  916. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  917. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -0
  918. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  919. package/dist/shared/src/context/AddonContext.cjs.js +18 -0
  920. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -0
  921. package/dist/shared/src/context/AddonContext.es.js +18 -0
  922. package/dist/shared/src/context/AddonContext.es.js.map +1 -0
  923. package/dist/shared/src/context/AddonProjectContext.cjs.js +91 -0
  924. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -0
  925. package/dist/shared/src/context/AddonProjectContext.es.js +91 -0
  926. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -0
  927. package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -0
  928. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  929. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -0
  930. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  931. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -0
  932. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  933. package/dist/shared/src/context/RemoteModulesContext.es.js +1 -0
  934. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  935. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +3 -0
  936. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  937. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -0
  938. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  939. package/dist/shared/src/hooks/useLoadModule.cjs.js +19 -4
  940. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  941. package/dist/shared/src/hooks/useLoadModule.es.js +19 -4
  942. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  943. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -0
  944. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  945. package/dist/shared/src/hooks/useScopedStatuses.es.js +1 -0
  946. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  947. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +108 -0
  948. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -0
  949. package/dist/shared/src/hooks/useUserProjectConfig.es.js +108 -0
  950. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -0
  951. package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +7 -5
  952. package/dist/types/api/generated/graphql.d.ts +9 -4
  953. package/dist/types/api/queries/entityLists/getLists.d.ts +2 -1
  954. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  955. package/dist/types/api/queries/index.d.ts +1 -0
  956. package/dist/types/api/queries/permissions/getPermissions.d.ts +294 -0
  957. package/dist/types/api/queries/permissions/index.d.ts +1 -0
  958. package/dist/types/api/queries/users/getUsers.d.ts +0 -1
  959. package/dist/types/containers/Actions/Actions.d.ts +2 -1
  960. package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +1 -1
  961. package/dist/types/containers/Feed/components/CommentInput/helpers.d.ts +6 -1
  962. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +1 -1
  963. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +5 -1
  964. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +5 -2
  965. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.styled.d.ts +4 -0
  966. package/dist/types/containers/Feed/components/FilesGrid/FilesGrid.d.ts +1 -1
  967. package/dist/types/containers/Feed/helpers/mergeAnnotationAttachments.d.ts +2 -0
  968. package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +1 -1
  969. package/dist/types/containers/Feed/index.d.ts +6 -0
  970. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -1
  971. package/dist/types/containers/ProjectTreeTable/components/RowDragHandleCellContent.d.ts +5 -0
  972. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +1 -1
  973. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +22 -0
  974. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +1 -0
  975. package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +12 -0
  976. package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
  977. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
  978. package/dist/types/context/AddonContext.d.ts +18 -0
  979. package/dist/types/context/AddonProjectContext.d.ts +28 -0
  980. package/dist/types/context/DetailsPanelContext.d.ts +5 -2
  981. package/dist/types/context/index.d.ts +2 -0
  982. package/dist/types/hooks/index.d.ts +1 -0
  983. package/dist/types/hooks/useLoadModule.d.ts +1 -0
  984. package/dist/types/hooks/useUserProjectConfig.d.ts +13 -0
  985. package/package.json +1 -1
  986. package/dist/node_modules/react-intersection-observer/index.cjs.js.map +0 -1
  987. package/dist/node_modules/react-intersection-observer/index.es.js.map +0 -1
@@ -65,6 +65,7 @@ require("../../api/queries/userDashboard/getUserDashboard.cjs.js");
65
65
  require("../../api/queries/users/getUsers.cjs.js");
66
66
  require("../../api/queries/users/updateUsers.cjs.js");
67
67
  const getWatchers = require("../../api/queries/watchers/getWatchers.cjs.js");
68
+ require("../../api/queries/permissions/getPermissions.cjs.js");
68
69
  const ayonReactComponents = require("@ynput/ayon-react-components");
69
70
  const React = require("react");
70
71
  const reactToastify = require("react-toastify");
@@ -1 +1 @@
1
- {"version":3,"file":"Watchers.cjs.js","sources":["../../../../../src/components/Watchers/Watchers.tsx"],"sourcesContent":["import { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } from '@shared/api'\nimport { DropdownRef, WatcherSelect, WatcherSelectProps } from '@ynput/ayon-react-components'\nimport { forwardRef } from 'react'\nimport { toast } from 'react-toastify'\n\ninterface WatchersProps extends Omit<WatcherSelectProps, 'currentUser' | 'value'> {\n entities: { id: string; projectName: string }[]\n entityType: string\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n userName: string\n}\n\nexport const Watchers = forwardRef<DropdownRef, WatchersProps>(\n ({ entities, entityType, onWatchersUpdate, userName, ...props }, ref) => {\n const entitiesQuery = entities.map((entity) => ({\n entityId: entity.id,\n entityType,\n projectName: entity.projectName,\n }))\n\n const { data: watchers = [] } = useGetEntitiesWatchersQuery(\n {\n entities: entitiesQuery,\n },\n { skip: !entities.length },\n )\n\n // merge all watchers into a single unique array\n const uniqueWatchers = Array.from(new Set(watchers.flatMap((watcher) => watcher.watchers)))\n\n const [setEntitiesWatchers] = useSetEntitiesWatchersMutation()\n\n const handleChange = async (value: string[]) => {\n // find the difference between the current watchers and the new watchers\n // which users were added and which were removed\n const added = value.filter((watcher) => !uniqueWatchers.includes(watcher))\n const removed = uniqueWatchers.filter((watcher) => !value.includes(watcher))\n\n // for each entity, add or remove the watchers\n // we do this to preserve the unique watchers for each entity (rather than setting the same watchers for all entities)\n const updatedEntities = watchers.map((entity) => {\n // first remove\n const newWatchers = entity.watchers.filter((watcher) => !removed.includes(watcher))\n // then add\n newWatchers.push(...added)\n\n return {\n ...entity,\n watchers: newWatchers,\n }\n })\n\n // update\n try {\n await setEntitiesWatchers({ entities: updatedEntities }).unwrap()\n onWatchersUpdate && onWatchersUpdate(added, removed)\n } catch (error) {\n toast.error('Failed to update watchers')\n }\n }\n\n return (\n <WatcherSelect\n align=\"right\"\n {...props}\n value={uniqueWatchers}\n currentUser={userName}\n onChange={handleChange}\n ref={ref}\n // @ts-expect-error\n buttonProps={{ 'data-tooltip': 'Watchers' }}\n />\n )\n },\n)\n"],"names":["forwardRef","useGetEntitiesWatchersQuery","useSetEntitiesWatchersMutation","toast","jsx","WatcherSelect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAWA,MAAA;AAAA,EACtB,CAAC,EAAE,UAAU,YAAY,kBAAkB,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,gBAAgB,SAAS,IAAI,CAAC,YAAY;AAAA,MAC9C,UAAU,OAAO;AAAA,MACjB;AAAA,MACA,aAAa,OAAO;AAAA,IAAA,EACpB;AAEF,UAAM,EAAE,MAAM,WAAW,CAAA,EAAO,IAAAC,YAAA;AAAA,MAC9B;AAAA,QACE,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,MAAM,CAAC,SAAS,OAAO;AAAA,IAC3B;AAGA,UAAM,iBAAiB,MAAM,KAAK,IAAI,IAAI,SAAS,QAAQ,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC;AAEpF,UAAA,CAAC,mBAAmB,IAAIC,2CAA+B;AAEvD,UAAA,eAAe,OAAO,UAAoB;AAGxC,YAAA,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,SAAS,OAAO,CAAC;AACnE,YAAA,UAAU,eAAe,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS,OAAO,CAAC;AAI3E,YAAM,kBAAkB,SAAS,IAAI,CAAC,WAAW;AAEzC,cAAA,cAAc,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,QAAQ,SAAS,OAAO,CAAC;AAEtE,oBAAA,KAAK,GAAG,KAAK;AAElB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAGG,UAAA;AACF,cAAM,oBAAoB,EAAE,UAAU,gBAAiB,CAAA,EAAE,OAAO;AAC5C,4BAAA,iBAAiB,OAAO,OAAO;AAAA,eAC5C,OAAO;AACdC,sBAAA,MAAM,MAAM,2BAA2B;AAAA,MAAA;AAAA,IAE3C;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAACC,oBAAA;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACL,GAAG;AAAA,QACJ,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,QACV;AAAA,QAEA,aAAa,EAAE,gBAAgB,WAAW;AAAA,MAAA;AAAA,IAC5C;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"Watchers.cjs.js","sources":["../../../../../src/components/Watchers/Watchers.tsx"],"sourcesContent":["import { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } from '@shared/api'\nimport { DropdownRef, WatcherSelect, WatcherSelectProps } from '@ynput/ayon-react-components'\nimport { forwardRef } from 'react'\nimport { toast } from 'react-toastify'\n\ninterface WatchersProps extends Omit<WatcherSelectProps, 'currentUser' | 'value'> {\n entities: { id: string; projectName: string }[]\n entityType: string\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n userName: string\n}\n\nexport const Watchers = forwardRef<DropdownRef, WatchersProps>(\n ({ entities, entityType, onWatchersUpdate, userName, ...props }, ref) => {\n const entitiesQuery = entities.map((entity) => ({\n entityId: entity.id,\n entityType,\n projectName: entity.projectName,\n }))\n\n const { data: watchers = [] } = useGetEntitiesWatchersQuery(\n {\n entities: entitiesQuery,\n },\n { skip: !entities.length },\n )\n\n // merge all watchers into a single unique array\n const uniqueWatchers = Array.from(new Set(watchers.flatMap((watcher) => watcher.watchers)))\n\n const [setEntitiesWatchers] = useSetEntitiesWatchersMutation()\n\n const handleChange = async (value: string[]) => {\n // find the difference between the current watchers and the new watchers\n // which users were added and which were removed\n const added = value.filter((watcher) => !uniqueWatchers.includes(watcher))\n const removed = uniqueWatchers.filter((watcher) => !value.includes(watcher))\n\n // for each entity, add or remove the watchers\n // we do this to preserve the unique watchers for each entity (rather than setting the same watchers for all entities)\n const updatedEntities = watchers.map((entity) => {\n // first remove\n const newWatchers = entity.watchers.filter((watcher) => !removed.includes(watcher))\n // then add\n newWatchers.push(...added)\n\n return {\n ...entity,\n watchers: newWatchers,\n }\n })\n\n // update\n try {\n await setEntitiesWatchers({ entities: updatedEntities }).unwrap()\n onWatchersUpdate && onWatchersUpdate(added, removed)\n } catch (error) {\n toast.error('Failed to update watchers')\n }\n }\n\n return (\n <WatcherSelect\n align=\"right\"\n {...props}\n value={uniqueWatchers}\n currentUser={userName}\n onChange={handleChange}\n ref={ref}\n // @ts-expect-error\n buttonProps={{ 'data-tooltip': 'Watchers' }}\n />\n )\n },\n)\n"],"names":["forwardRef","useGetEntitiesWatchersQuery","useSetEntitiesWatchersMutation","toast","jsx","WatcherSelect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAWA,MAAA;AAAA,EACtB,CAAC,EAAE,UAAU,YAAY,kBAAkB,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,gBAAgB,SAAS,IAAI,CAAC,YAAY;AAAA,MAC9C,UAAU,OAAO;AAAA,MACjB;AAAA,MACA,aAAa,OAAO;AAAA,IAAA,EACpB;AAEF,UAAM,EAAE,MAAM,WAAW,CAAA,EAAO,IAAAC,YAAA;AAAA,MAC9B;AAAA,QACE,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,MAAM,CAAC,SAAS,OAAO;AAAA,IAC3B;AAGA,UAAM,iBAAiB,MAAM,KAAK,IAAI,IAAI,SAAS,QAAQ,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC;AAEpF,UAAA,CAAC,mBAAmB,IAAIC,2CAA+B;AAEvD,UAAA,eAAe,OAAO,UAAoB;AAGxC,YAAA,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,SAAS,OAAO,CAAC;AACnE,YAAA,UAAU,eAAe,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS,OAAO,CAAC;AAI3E,YAAM,kBAAkB,SAAS,IAAI,CAAC,WAAW;AAEzC,cAAA,cAAc,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,QAAQ,SAAS,OAAO,CAAC;AAEtE,oBAAA,KAAK,GAAG,KAAK;AAElB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAGG,UAAA;AACF,cAAM,oBAAoB,EAAE,UAAU,gBAAiB,CAAA,EAAE,OAAO;AAC5C,4BAAA,iBAAiB,OAAO,OAAO;AAAA,eAC5C,OAAO;AACdC,sBAAA,MAAM,MAAM,2BAA2B;AAAA,MAAA;AAAA,IAE3C;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAACC,oBAAA;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACL,GAAG;AAAA,QACJ,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,QACV;AAAA,QAEA,aAAa,EAAE,gBAAgB,WAAW;AAAA,MAAA;AAAA,IAC5C;AAAA,EAAA;AAGN;;"}
@@ -63,6 +63,7 @@ import "../../api/queries/userDashboard/getUserDashboard.es.js";
63
63
  import "../../api/queries/users/getUsers.es.js";
64
64
  import "../../api/queries/users/updateUsers.es.js";
65
65
  import { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } from "../../api/queries/watchers/getWatchers.es.js";
66
+ import "../../api/queries/permissions/getPermissions.es.js";
66
67
  import { WatcherSelect } from "@ynput/ayon-react-components";
67
68
  import { forwardRef } from "react";
68
69
  import { toast } from "react-toastify";
@@ -1 +1 @@
1
- {"version":3,"file":"Watchers.es.js","sources":["../../../../../src/components/Watchers/Watchers.tsx"],"sourcesContent":["import { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } from '@shared/api'\nimport { DropdownRef, WatcherSelect, WatcherSelectProps } from '@ynput/ayon-react-components'\nimport { forwardRef } from 'react'\nimport { toast } from 'react-toastify'\n\ninterface WatchersProps extends Omit<WatcherSelectProps, 'currentUser' | 'value'> {\n entities: { id: string; projectName: string }[]\n entityType: string\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n userName: string\n}\n\nexport const Watchers = forwardRef<DropdownRef, WatchersProps>(\n ({ entities, entityType, onWatchersUpdate, userName, ...props }, ref) => {\n const entitiesQuery = entities.map((entity) => ({\n entityId: entity.id,\n entityType,\n projectName: entity.projectName,\n }))\n\n const { data: watchers = [] } = useGetEntitiesWatchersQuery(\n {\n entities: entitiesQuery,\n },\n { skip: !entities.length },\n )\n\n // merge all watchers into a single unique array\n const uniqueWatchers = Array.from(new Set(watchers.flatMap((watcher) => watcher.watchers)))\n\n const [setEntitiesWatchers] = useSetEntitiesWatchersMutation()\n\n const handleChange = async (value: string[]) => {\n // find the difference between the current watchers and the new watchers\n // which users were added and which were removed\n const added = value.filter((watcher) => !uniqueWatchers.includes(watcher))\n const removed = uniqueWatchers.filter((watcher) => !value.includes(watcher))\n\n // for each entity, add or remove the watchers\n // we do this to preserve the unique watchers for each entity (rather than setting the same watchers for all entities)\n const updatedEntities = watchers.map((entity) => {\n // first remove\n const newWatchers = entity.watchers.filter((watcher) => !removed.includes(watcher))\n // then add\n newWatchers.push(...added)\n\n return {\n ...entity,\n watchers: newWatchers,\n }\n })\n\n // update\n try {\n await setEntitiesWatchers({ entities: updatedEntities }).unwrap()\n onWatchersUpdate && onWatchersUpdate(added, removed)\n } catch (error) {\n toast.error('Failed to update watchers')\n }\n }\n\n return (\n <WatcherSelect\n align=\"right\"\n {...props}\n value={uniqueWatchers}\n currentUser={userName}\n onChange={handleChange}\n ref={ref}\n // @ts-expect-error\n buttonProps={{ 'data-tooltip': 'Watchers' }}\n />\n )\n },\n)\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAW;AAAA,EACtB,CAAC,EAAE,UAAU,YAAY,kBAAkB,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,gBAAgB,SAAS,IAAI,CAAC,YAAY;AAAA,MAC9C,UAAU,OAAO;AAAA,MACjB;AAAA,MACA,aAAa,OAAO;AAAA,IAAA,EACpB;AAEF,UAAM,EAAE,MAAM,WAAW,CAAA,EAAO,IAAA;AAAA,MAC9B;AAAA,QACE,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,MAAM,CAAC,SAAS,OAAO;AAAA,IAC3B;AAGA,UAAM,iBAAiB,MAAM,KAAK,IAAI,IAAI,SAAS,QAAQ,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC;AAEpF,UAAA,CAAC,mBAAmB,IAAI,+BAA+B;AAEvD,UAAA,eAAe,OAAO,UAAoB;AAGxC,YAAA,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,SAAS,OAAO,CAAC;AACnE,YAAA,UAAU,eAAe,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS,OAAO,CAAC;AAI3E,YAAM,kBAAkB,SAAS,IAAI,CAAC,WAAW;AAEzC,cAAA,cAAc,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,QAAQ,SAAS,OAAO,CAAC;AAEtE,oBAAA,KAAK,GAAG,KAAK;AAElB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAGG,UAAA;AACF,cAAM,oBAAoB,EAAE,UAAU,gBAAiB,CAAA,EAAE,OAAO;AAC5C,4BAAA,iBAAiB,OAAO,OAAO;AAAA,eAC5C,OAAO;AACd,cAAM,MAAM,2BAA2B;AAAA,MAAA;AAAA,IAE3C;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACL,GAAG;AAAA,QACJ,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,QACV;AAAA,QAEA,aAAa,EAAE,gBAAgB,WAAW;AAAA,MAAA;AAAA,IAC5C;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Watchers.es.js","sources":["../../../../../src/components/Watchers/Watchers.tsx"],"sourcesContent":["import { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } from '@shared/api'\nimport { DropdownRef, WatcherSelect, WatcherSelectProps } from '@ynput/ayon-react-components'\nimport { forwardRef } from 'react'\nimport { toast } from 'react-toastify'\n\ninterface WatchersProps extends Omit<WatcherSelectProps, 'currentUser' | 'value'> {\n entities: { id: string; projectName: string }[]\n entityType: string\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n userName: string\n}\n\nexport const Watchers = forwardRef<DropdownRef, WatchersProps>(\n ({ entities, entityType, onWatchersUpdate, userName, ...props }, ref) => {\n const entitiesQuery = entities.map((entity) => ({\n entityId: entity.id,\n entityType,\n projectName: entity.projectName,\n }))\n\n const { data: watchers = [] } = useGetEntitiesWatchersQuery(\n {\n entities: entitiesQuery,\n },\n { skip: !entities.length },\n )\n\n // merge all watchers into a single unique array\n const uniqueWatchers = Array.from(new Set(watchers.flatMap((watcher) => watcher.watchers)))\n\n const [setEntitiesWatchers] = useSetEntitiesWatchersMutation()\n\n const handleChange = async (value: string[]) => {\n // find the difference between the current watchers and the new watchers\n // which users were added and which were removed\n const added = value.filter((watcher) => !uniqueWatchers.includes(watcher))\n const removed = uniqueWatchers.filter((watcher) => !value.includes(watcher))\n\n // for each entity, add or remove the watchers\n // we do this to preserve the unique watchers for each entity (rather than setting the same watchers for all entities)\n const updatedEntities = watchers.map((entity) => {\n // first remove\n const newWatchers = entity.watchers.filter((watcher) => !removed.includes(watcher))\n // then add\n newWatchers.push(...added)\n\n return {\n ...entity,\n watchers: newWatchers,\n }\n })\n\n // update\n try {\n await setEntitiesWatchers({ entities: updatedEntities }).unwrap()\n onWatchersUpdate && onWatchersUpdate(added, removed)\n } catch (error) {\n toast.error('Failed to update watchers')\n }\n }\n\n return (\n <WatcherSelect\n align=\"right\"\n {...props}\n value={uniqueWatchers}\n currentUser={userName}\n onChange={handleChange}\n ref={ref}\n // @ts-expect-error\n buttonProps={{ 'data-tooltip': 'Watchers' }}\n />\n )\n },\n)\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAW;AAAA,EACtB,CAAC,EAAE,UAAU,YAAY,kBAAkB,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,gBAAgB,SAAS,IAAI,CAAC,YAAY;AAAA,MAC9C,UAAU,OAAO;AAAA,MACjB;AAAA,MACA,aAAa,OAAO;AAAA,IAAA,EACpB;AAEF,UAAM,EAAE,MAAM,WAAW,CAAA,EAAO,IAAA;AAAA,MAC9B;AAAA,QACE,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,MAAM,CAAC,SAAS,OAAO;AAAA,IAC3B;AAGA,UAAM,iBAAiB,MAAM,KAAK,IAAI,IAAI,SAAS,QAAQ,CAAC,YAAY,QAAQ,QAAQ,CAAC,CAAC;AAEpF,UAAA,CAAC,mBAAmB,IAAI,+BAA+B;AAEvD,UAAA,eAAe,OAAO,UAAoB;AAGxC,YAAA,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,SAAS,OAAO,CAAC;AACnE,YAAA,UAAU,eAAe,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS,OAAO,CAAC;AAI3E,YAAM,kBAAkB,SAAS,IAAI,CAAC,WAAW;AAEzC,cAAA,cAAc,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,QAAQ,SAAS,OAAO,CAAC;AAEtE,oBAAA,KAAK,GAAG,KAAK;AAElB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAGG,UAAA;AACF,cAAM,oBAAoB,EAAE,UAAU,gBAAiB,CAAA,EAAE,OAAO;AAC5C,4BAAA,iBAAiB,OAAO,OAAO;AAAA,eAC5C,OAAO;AACd,cAAM,MAAM,2BAA2B;AAAA,MAAA;AAAA,IAE3C;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACL,GAAG;AAAA,QACJ,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,QACV;AAAA,QAEA,aAAa,EAAE,gBAAgB,WAAW;AAAA,MAAA;AAAA,IAC5C;AAAA,EAAA;AAGN;"}
@@ -72,6 +72,7 @@ require("../../api/queries/userDashboard/getUserDashboard.cjs.js");
72
72
  require("../../api/queries/users/getUsers.cjs.js");
73
73
  require("../../api/queries/users/updateUsers.cjs.js");
74
74
  require("../../api/queries/watchers/getWatchers.cjs.js");
75
+ require("../../api/queries/permissions/getPermissions.cjs.js");
75
76
  require("@dnd-kit/core");
76
77
  require("@dnd-kit/sortable");
77
78
  require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");
@@ -88,6 +89,8 @@ require("../../context/SettingsPanelContext.cjs.js");
88
89
  require("../../context/pip/PiPProvider.cjs.js");
89
90
  require("react-dom");
90
91
  require("../../context/pip/PiPWrapper.cjs.js");
92
+ require("../../context/AddonProjectContext.cjs.js");
93
+ require("../../context/AddonContext.cjs.js");
91
94
  require("../../components/ReviewableCard/ReviewableCard.cjs.js");
92
95
  require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");
93
96
  require("../../components/FileThumbnail/FileThumbnail.cjs.js");
@@ -130,6 +133,7 @@ require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");
130
133
  require("../ProjectTreeTable/context/CellEditingContext.cjs.js");
131
134
  require("../ProjectTreeTable/context/ClipboardContext.cjs.js");
132
135
  require("../ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
136
+ require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");
133
137
  require("@tanstack/react-table");
134
138
  require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
135
139
  require("../ProjectTreeTable/widgets/DateWidget.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"ActionConfigDialog.cjs.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["useMemo","useSetActionConfigMutation","useGetActionConfigQuery","toast","jsx","SimpleFormDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,MAAM,qBAAqB,CAAC,EAAE,QAAQ,SAAS,cAAuC;AACrF,QAAA,gBACJA,MAAAA,QAA+C,MAAM;AAC/C,QAAA,CAAC,OAAe,QAAA;AACpB,QAAI,EAAE,OAAO,aAAa,OAAO,cAAsB,QAAA;AAChD,WAAA;AAAA,MACL,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,MACrB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAAA,EAAA,GACC,CAAC,MAAM,CAAC;AAEP,QAAA,CAAC,eAAe,IAAIC,sCAA2B;AAIrD,QAAM,KAAU,EAAE,cAAc,SAAS,GAAI,iBAAiB,CAAA,EAAI;AAC5D,QAAA,EAAE,MAAM,eAAeC,WAAAA,wBAAwB,IAAI,EAAE,MAAM,CAAC,eAAe;AAIjF,MAAI,EAAE,eAAc,iCAAQ,iBAAgB,UAAU,gBAAgB;AAC7D,WAAA;AAAA,EAAA;AAGH,QAAA,eAAe,OAAO,SAAqB;AAC3C,QAAA;AACF,YAAM,gBAAgB;AAAA,QACpB,cAAc,EAAE,GAAG,SAAS,OAAO,KAAK;AAAA,QACxC,GAAG;AAAA,MACJ,CAAA,EAAE,OAAO;AACF,cAAA;AAAA,aACD,OAAO;AACN,cAAA,KAAK,4BAA4B,KAAK;AAC9CC,oBAAA,MAAM,MAAM,wCAAwC;AAAA,IAAA;AAAA,EAExD;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,iBAAA;AAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,OAAO,oBAAoB,OAAO,KAAK;AAAA,MACvC,QAAQ,OAAO;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAW;AAAA,MACX,YAAW;AAAA,IAAA;AAAA,EACb;AAEJ;;"}
1
+ {"version":3,"file":"ActionConfigDialog.cjs.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["useMemo","useSetActionConfigMutation","useGetActionConfigQuery","toast","jsx","SimpleFormDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,MAAM,qBAAqB,CAAC,EAAE,QAAQ,SAAS,cAAuC;AACrF,QAAA,gBACJA,MAAAA,QAA+C,MAAM;AAC/C,QAAA,CAAC,OAAe,QAAA;AACpB,QAAI,EAAE,OAAO,aAAa,OAAO,cAAsB,QAAA;AAChD,WAAA;AAAA,MACL,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,MACrB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAAA,EAAA,GACC,CAAC,MAAM,CAAC;AAEP,QAAA,CAAC,eAAe,IAAIC,sCAA2B;AAIrD,QAAM,KAAU,EAAE,cAAc,SAAS,GAAI,iBAAiB,CAAA,EAAI;AAC5D,QAAA,EAAE,MAAM,eAAeC,WAAAA,wBAAwB,IAAI,EAAE,MAAM,CAAC,eAAe;AAIjF,MAAI,EAAE,eAAc,iCAAQ,iBAAgB,UAAU,gBAAgB;AAC7D,WAAA;AAAA,EAAA;AAGH,QAAA,eAAe,OAAO,SAAqB;AAC3C,QAAA;AACF,YAAM,gBAAgB;AAAA,QACpB,cAAc,EAAE,GAAG,SAAS,OAAO,KAAK;AAAA,QACxC,GAAG;AAAA,MACJ,CAAA,EAAE,OAAO;AACF,cAAA;AAAA,aACD,OAAO;AACN,cAAA,KAAK,4BAA4B,KAAK;AAC9CC,oBAAA,MAAM,MAAM,wCAAwC;AAAA,IAAA;AAAA,EAExD;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,iBAAA;AAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,OAAO,oBAAoB,OAAO,KAAK;AAAA,MACvC,QAAQ,OAAO;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAW;AAAA,MACX,YAAW;AAAA,IAAA;AAAA,EACb;AAEJ;;"}
@@ -70,6 +70,7 @@ import "../../api/queries/userDashboard/getUserDashboard.es.js";
70
70
  import "../../api/queries/users/getUsers.es.js";
71
71
  import "../../api/queries/users/updateUsers.es.js";
72
72
  import "../../api/queries/watchers/getWatchers.es.js";
73
+ import "../../api/queries/permissions/getPermissions.es.js";
73
74
  import "@dnd-kit/core";
74
75
  import "@dnd-kit/sortable";
75
76
  import "../../components/ReviewablesList/ReviewablesList.styled.es.js";
@@ -86,6 +87,8 @@ import "../../context/SettingsPanelContext.es.js";
86
87
  import "../../context/pip/PiPProvider.es.js";
87
88
  import "react-dom";
88
89
  import "../../context/pip/PiPWrapper.es.js";
90
+ import "../../context/AddonProjectContext.es.js";
91
+ import "../../context/AddonContext.es.js";
89
92
  import "../../components/ReviewableCard/ReviewableCard.es.js";
90
93
  import "../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
91
94
  import "../../components/FileThumbnail/FileThumbnail.es.js";
@@ -128,6 +131,7 @@ import "../ProjectTreeTable/context/ColumnSettingsContext.es.js";
128
131
  import "../ProjectTreeTable/context/CellEditingContext.es.js";
129
132
  import "../ProjectTreeTable/context/ClipboardContext.es.js";
130
133
  import "../ProjectTreeTable/context/ProjectTableSelectionContext.es.js";
134
+ import "../ProjectTreeTable/context/ProjectDataContext.es.js";
131
135
  import "@tanstack/react-table";
132
136
  import "../ProjectTreeTable/widgets/CollapsedWidget.es.js";
133
137
  import "../ProjectTreeTable/widgets/DateWidget.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ActionConfigDialog.es.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,MAAM,qBAAqB,CAAC,EAAE,QAAQ,SAAS,cAAuC;AACrF,QAAA,gBACJ,QAA+C,MAAM;AAC/C,QAAA,CAAC,OAAe,QAAA;AACpB,QAAI,EAAE,OAAO,aAAa,OAAO,cAAsB,QAAA;AAChD,WAAA;AAAA,MACL,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,MACrB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAAA,EAAA,GACC,CAAC,MAAM,CAAC;AAEP,QAAA,CAAC,eAAe,IAAI,2BAA2B;AAIrD,QAAM,KAAU,EAAE,cAAc,SAAS,GAAI,iBAAiB,CAAA,EAAI;AAC5D,QAAA,EAAE,MAAM,eAAe,wBAAwB,IAAI,EAAE,MAAM,CAAC,eAAe;AAIjF,MAAI,EAAE,eAAc,iCAAQ,iBAAgB,UAAU,gBAAgB;AAC7D,WAAA;AAAA,EAAA;AAGH,QAAA,eAAe,OAAO,SAAqB;AAC3C,QAAA;AACF,YAAM,gBAAgB;AAAA,QACpB,cAAc,EAAE,GAAG,SAAS,OAAO,KAAK;AAAA,QACxC,GAAG;AAAA,MACJ,CAAA,EAAE,OAAO;AACF,cAAA;AAAA,aACD,OAAO;AACN,cAAA,KAAK,4BAA4B,KAAK;AAC9C,YAAM,MAAM,wCAAwC;AAAA,IAAA;AAAA,EAExD;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,OAAO,oBAAoB,OAAO,KAAK;AAAA,MACvC,QAAQ,OAAO;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAW;AAAA,MACX,YAAW;AAAA,IAAA;AAAA,EACb;AAEJ;"}
1
+ {"version":3,"file":"ActionConfigDialog.es.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,MAAM,qBAAqB,CAAC,EAAE,QAAQ,SAAS,cAAuC;AACrF,QAAA,gBACJ,QAA+C,MAAM;AAC/C,QAAA,CAAC,OAAe,QAAA;AACpB,QAAI,EAAE,OAAO,aAAa,OAAO,cAAsB,QAAA;AAChD,WAAA;AAAA,MACL,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,MACrB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAAA,EAAA,GACC,CAAC,MAAM,CAAC;AAEP,QAAA,CAAC,eAAe,IAAI,2BAA2B;AAIrD,QAAM,KAAU,EAAE,cAAc,SAAS,GAAI,iBAAiB,CAAA,EAAI;AAC5D,QAAA,EAAE,MAAM,eAAe,wBAAwB,IAAI,EAAE,MAAM,CAAC,eAAe;AAIjF,MAAI,EAAE,eAAc,iCAAQ,iBAAgB,UAAU,gBAAgB;AAC7D,WAAA;AAAA,EAAA;AAGH,QAAA,eAAe,OAAO,SAAqB;AAC3C,QAAA;AACF,YAAM,gBAAgB;AAAA,QACpB,cAAc,EAAE,GAAG,SAAS,OAAO,KAAK;AAAA,QACxC,GAAG;AAAA,MACJ,CAAA,EAAE,OAAO;AACF,cAAA;AAAA,aACD,OAAO;AACN,cAAA,KAAK,4BAA4B,KAAK;AAC9C,YAAM,MAAM,wCAAwC;AAAA,IAAA;AAAA,EAExD;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,OAAO,oBAAoB,OAAO,KAAK;AAAA,MACvC,QAAQ,OAAO;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAW;AAAA,MACX,YAAW;AAAA,IAAA;AAAA,EACb;AAEJ;"}
@@ -23,7 +23,7 @@ const ActionIcon = ({ icon, isExecuting }) => {
23
23
  } else if ((icon == null ? void 0 : icon.type) === "url") {
24
24
  component = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("img", { src: icon.url, title: "Action" });
25
25
  } else {
26
- component = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "manufacturing" });
26
+ component = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "category" });
27
27
  }
28
28
  return component;
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionIcon.cjs.js","sources":["../../../../../src/containers/Actions/ActionIcon.tsx"],"sourcesContent":["import { IconModel } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled, { keyframes } from 'styled-components'\n\nconst spinning = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst SpinningIcon = styled(Icon)`\n .icon {\n animation: ${spinning} 1s linear infinite;\n }\n`\n\ninterface ActionIconProps {\n icon: IconModel | undefined\n isExecuting?: boolean\n}\n\nconst ActionIcon: FC<ActionIconProps> = ({ icon, isExecuting }) => {\n let component\n\n if (isExecuting) component = <SpinningIcon icon=\"sync\" />\n else if (icon?.type === 'material-symbols' && icon?.name) {\n component = <Icon icon={icon.name} style={{ color: icon.color }} />\n } else if (icon?.type === 'url') {\n component = <img src={icon.url} title=\"Action\" />\n } else {\n component = <Icon icon=\"manufacturing\" />\n }\n\n return component\n}\n\nexport default ActionIcon\n"],"names":["keyframes","Icon","jsx"],"mappings":";;;;AAKA,MAAM,WAAWA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,eAAe,OAAOC,wBAAI;AAAA;AAAA,iBAEf,QAAQ;AAAA;AAAA;AASzB,MAAM,aAAkC,CAAC,EAAE,MAAM,kBAAkB;AAC7D,MAAA;AAEJ,MAAI,YAAa,aAAaC,2BAAA,kBAAA,IAAA,cAAA,EAAa,MAAK,QAAO;AAAA,YAC9C,6BAAM,UAAS,uBAAsB,6BAAM,OAAM;AAC5C,gBAAAA,2BAAA,kBAAA,IAACD,0BAAK,EAAA,MAAM,KAAK,MAAM,OAAO,EAAE,OAAO,KAAK,MAAS,EAAA,CAAA;AAAA,EAAA,YACxD,6BAAM,UAAS,OAAO;AAC/B,iEAAa,OAAI,EAAA,KAAK,KAAK,KAAK,OAAM,UAAS;AAAA,EAAA,OAC1C;AACO,gBAAAC,2BAAAA,kBAAAA,IAACD,oBAAAA,MAAK,EAAA,MAAK,gBAAgB,CAAA;AAAA,EAAA;AAGlC,SAAA;AACT;;"}
1
+ {"version":3,"file":"ActionIcon.cjs.js","sources":["../../../../../src/containers/Actions/ActionIcon.tsx"],"sourcesContent":["import { IconModel } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled, { keyframes } from 'styled-components'\n\nconst spinning = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst SpinningIcon = styled(Icon)`\n .icon {\n animation: ${spinning} 1s linear infinite;\n }\n`\n\ninterface ActionIconProps {\n icon: IconModel | undefined\n isExecuting?: boolean\n}\n\nconst ActionIcon: FC<ActionIconProps> = ({ icon, isExecuting }) => {\n let component\n\n if (isExecuting) component = <SpinningIcon icon=\"sync\" />\n else if (icon?.type === 'material-symbols' && icon?.name) {\n component = <Icon icon={icon.name} style={{ color: icon.color }} />\n } else if (icon?.type === 'url') {\n component = <img src={icon.url} title=\"Action\" />\n } else {\n component = <Icon icon=\"category\" />\n }\n\n return component\n}\n\nexport default ActionIcon\n"],"names":["keyframes","Icon","jsx"],"mappings":";;;;AAKA,MAAM,WAAWA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,eAAe,OAAOC,wBAAI;AAAA;AAAA,iBAEf,QAAQ;AAAA;AAAA;AASzB,MAAM,aAAkC,CAAC,EAAE,MAAM,kBAAkB;AAC7D,MAAA;AAEJ,MAAI,YAAa,aAAaC,2BAAA,kBAAA,IAAA,cAAA,EAAa,MAAK,QAAO;AAAA,YAC9C,6BAAM,UAAS,uBAAsB,6BAAM,OAAM;AAC5C,gBAAAA,2BAAA,kBAAA,IAACD,0BAAK,EAAA,MAAM,KAAK,MAAM,OAAO,EAAE,OAAO,KAAK,MAAS,EAAA,CAAA;AAAA,EAAA,YACxD,6BAAM,UAAS,OAAO;AAC/B,iEAAa,OAAI,EAAA,KAAK,KAAK,KAAK,OAAM,UAAS;AAAA,EAAA,OAC1C;AACO,gBAAAC,2BAAAA,kBAAAA,IAACD,oBAAAA,MAAK,EAAA,MAAK,WAAW,CAAA;AAAA,EAAA;AAG7B,SAAA;AACT;;"}
@@ -22,7 +22,7 @@ const ActionIcon = ({ icon, isExecuting }) => {
22
22
  } else if ((icon == null ? void 0 : icon.type) === "url") {
23
23
  component = /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: icon.url, title: "Action" });
24
24
  } else {
25
- component = /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { icon: "manufacturing" });
25
+ component = /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { icon: "category" });
26
26
  }
27
27
  return component;
28
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionIcon.es.js","sources":["../../../../../src/containers/Actions/ActionIcon.tsx"],"sourcesContent":["import { IconModel } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled, { keyframes } from 'styled-components'\n\nconst spinning = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst SpinningIcon = styled(Icon)`\n .icon {\n animation: ${spinning} 1s linear infinite;\n }\n`\n\ninterface ActionIconProps {\n icon: IconModel | undefined\n isExecuting?: boolean\n}\n\nconst ActionIcon: FC<ActionIconProps> = ({ icon, isExecuting }) => {\n let component\n\n if (isExecuting) component = <SpinningIcon icon=\"sync\" />\n else if (icon?.type === 'material-symbols' && icon?.name) {\n component = <Icon icon={icon.name} style={{ color: icon.color }} />\n } else if (icon?.type === 'url') {\n component = <img src={icon.url} title=\"Action\" />\n } else {\n component = <Icon icon=\"manufacturing\" />\n }\n\n return component\n}\n\nexport default ActionIcon\n"],"names":["jsx"],"mappings":";;;AAKA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,eAAe,OAAO,IAAI;AAAA;AAAA,iBAEf,QAAQ;AAAA;AAAA;AASzB,MAAM,aAAkC,CAAC,EAAE,MAAM,kBAAkB;AAC7D,MAAA;AAEJ,MAAI,YAAa,aAAaA,kCAAA,IAAA,cAAA,EAAa,MAAK,QAAO;AAAA,YAC9C,6BAAM,UAAS,uBAAsB,6BAAM,OAAM;AAC5C,gBAAAA,kCAAA,IAAC,MAAK,EAAA,MAAM,KAAK,MAAM,OAAO,EAAE,OAAO,KAAK,MAAS,EAAA,CAAA;AAAA,EAAA,YACxD,6BAAM,UAAS,OAAO;AAC/B,sDAAa,OAAI,EAAA,KAAK,KAAK,KAAK,OAAM,UAAS;AAAA,EAAA,OAC1C;AACO,gBAAAA,kCAAAA,IAAC,MAAK,EAAA,MAAK,gBAAgB,CAAA;AAAA,EAAA;AAGlC,SAAA;AACT;"}
1
+ {"version":3,"file":"ActionIcon.es.js","sources":["../../../../../src/containers/Actions/ActionIcon.tsx"],"sourcesContent":["import { IconModel } from '@shared/api'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled, { keyframes } from 'styled-components'\n\nconst spinning = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst SpinningIcon = styled(Icon)`\n .icon {\n animation: ${spinning} 1s linear infinite;\n }\n`\n\ninterface ActionIconProps {\n icon: IconModel | undefined\n isExecuting?: boolean\n}\n\nconst ActionIcon: FC<ActionIconProps> = ({ icon, isExecuting }) => {\n let component\n\n if (isExecuting) component = <SpinningIcon icon=\"sync\" />\n else if (icon?.type === 'material-symbols' && icon?.name) {\n component = <Icon icon={icon.name} style={{ color: icon.color }} />\n } else if (icon?.type === 'url') {\n component = <img src={icon.url} title=\"Action\" />\n } else {\n component = <Icon icon=\"category\" />\n }\n\n return component\n}\n\nexport default ActionIcon\n"],"names":["jsx"],"mappings":";;;AAKA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,eAAe,OAAO,IAAI;AAAA;AAAA,iBAEf,QAAQ;AAAA;AAAA;AASzB,MAAM,aAAkC,CAAC,EAAE,MAAM,kBAAkB;AAC7D,MAAA;AAEJ,MAAI,YAAa,aAAaA,kCAAA,IAAA,cAAA,EAAa,MAAK,QAAO;AAAA,YAC9C,6BAAM,UAAS,uBAAsB,6BAAM,OAAM;AAC5C,gBAAAA,kCAAA,IAAC,MAAK,EAAA,MAAM,KAAK,MAAM,OAAO,EAAE,OAAO,KAAK,MAAS,EAAA,CAAA;AAAA,EAAA,YACxD,6BAAM,UAAS,OAAO;AAC/B,sDAAa,OAAI,EAAA,KAAK,KAAK,KAAK,OAAM,UAAS;AAAA,EAAA,OAC1C;AACO,gBAAAA,kCAAAA,IAAC,MAAK,EAAA,MAAK,WAAW,CAAA;AAAA,EAAA;AAG7B,SAAA;AACT;"}
@@ -69,6 +69,7 @@ require("../../api/queries/userDashboard/getUserDashboard.cjs.js");
69
69
  require("../../api/queries/users/getUsers.cjs.js");
70
70
  require("../../api/queries/users/updateUsers.cjs.js");
71
71
  require("../../api/queries/watchers/getWatchers.cjs.js");
72
+ require("../../api/queries/permissions/getPermissions.cjs.js");
72
73
  const ActionsDropdown = require("./ActionsDropdown/ActionsDropdown.cjs.js");
73
74
  const ActionIcon = require("./ActionIcon.cjs.js");
74
75
  require("../../context/RemoteModulesContext.cjs.js");
@@ -81,6 +82,8 @@ require("../../context/SettingsPanelContext.cjs.js");
81
82
  require("../../context/pip/PiPProvider.cjs.js");
82
83
  require("react-dom");
83
84
  require("../../context/pip/PiPWrapper.cjs.js");
85
+ require("../../context/AddonProjectContext.cjs.js");
86
+ require("../../context/AddonContext.cjs.js");
84
87
  const useActionTriggers = require("../../hooks/useActionTriggers.cjs.js");
85
88
  const ActionConfigDialog = require("./ActionConfigDialog.cjs.js");
86
89
  const InteractiveActionDialog = require("./InteractiveActionDialog.cjs.js");
@@ -97,6 +100,7 @@ const Actions = ({
97
100
  entitySubTypes,
98
101
  isLoadingEntity,
99
102
  searchParams,
103
+ featuredCount = 2,
100
104
  onNavigate,
101
105
  onSetSearchParams
102
106
  }) => {
@@ -176,15 +180,14 @@ const Actions = ({
176
180
  }
177
181
  return options;
178
182
  }, [groupedActions, unorderedCategories, categoryOrder]);
179
- const featuredNumber = 2;
180
183
  const featuredActions = React.useMemo(() => {
181
- let tempFeaturedActions = actions.filter((action) => action.featured).sort((a, b) => (a.order || 0) - (b.order || 0)).slice(0, featuredNumber);
182
- if (tempFeaturedActions.length < featuredNumber) {
184
+ let tempFeaturedActions = actions.filter((action) => action.featured).sort((a, b) => (a.order || 0) - (b.order || 0)).slice(0, featuredCount);
185
+ if (tempFeaturedActions.length < featuredCount) {
183
186
  categories.forEach((category) => {
184
- if (tempFeaturedActions.length >= featuredNumber) return;
187
+ if (tempFeaturedActions.length >= featuredCount) return;
185
188
  const actions2 = groupedActions[category];
186
189
  if (!actions2 || !actions2.length) return;
187
- for (let i = tempFeaturedActions.length; i < featuredNumber; i++) {
190
+ for (let i = tempFeaturedActions.length; i < featuredCount; i++) {
188
191
  const action = actions2[i];
189
192
  if (!action) break;
190
193
  if (!action.icon) continue;
@@ -266,7 +269,10 @@ const Actions = ({
266
269
  const handleSubmitInteractiveForm = async (identifier, formData) => {
267
270
  handleExecuteAction(identifier, null, formData);
268
271
  };
269
- const loadingActions = [placeholder, placeholder, placeholder];
272
+ const loadingActions = React.useMemo(
273
+ () => Array(featuredCount).fill(placeholder),
274
+ [featuredCount, placeholder]
275
+ );
270
276
  const isLoading = isFetchingActions || isLoadingEntity;
271
277
  const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions;
272
278
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(Actions_styled.Actions, { className: "actions", children: [
@@ -275,7 +281,6 @@ const Actions = ({
275
281
  {
276
282
  className: clsx("action", {
277
283
  loading: isLoading,
278
- // @ts-expect-error
279
284
  isPlaceholder: action.isPlaceholder
280
285
  }),
281
286
  "data-tooltip": action.groupLabel ? action.groupLabel + " " + action.label : action.label,
@@ -289,7 +294,7 @@ const Actions = ({
289
294
  ActionsDropdown.ActionsDropdown,
290
295
  {
291
296
  options: dropdownOptions,
292
- isLoading,
297
+ isLoading: isLoading && featuredCount > 0,
293
298
  onAction: handleExecuteAction,
294
299
  onConfig: handleConfigureAction
295
300
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.cjs.js","sources":["../../../../../src/containers/Actions/Actions.tsx"],"sourcesContent":["import * as Styled from './Actions.styled'\nimport { MouseEvent, useState } from 'react'\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport { useMemo, useEffect } from 'react'\nimport { ActionContext, useExecuteActionMutation, useGetActionsFromContextQuery } from '@shared/api'\nimport { ActionsDropdown } from './ActionsDropdown'\nimport ActionIcon from './ActionIcon'\nimport { ActionTriggersProps, useActionTriggers } from '@shared/hooks'\nimport { ActionConfigDialog } from './ActionConfigDialog'\nimport { InteractiveActionDialog, InteractiveForm } from './InteractiveActionDialog'\n\nconst placeholder = {\n identifier: 'placeholder',\n label: 'Featured action slot',\n isPlaceholder: true,\n icon: { type: 'material-symbols', name: 'sync' },\n groupLabel: '',\n}\n\ninterface ActionsProps extends ActionTriggersProps {\n entities: { id: string; projectName: string; entitySubType?: string }[]\n entityType: ActionContext['entityType']\n entitySubTypes?: string[]\n isLoadingEntity: boolean\n}\n\nexport const Actions = ({\n entities,\n entityType,\n entitySubTypes,\n isLoadingEntity,\n searchParams,\n onNavigate,\n onSetSearchParams,\n}: ActionsProps) => {\n // special triggers the actions can make to perform stuff on the client\n const { handleActionPayload } = useActionTriggers({ onNavigate, onSetSearchParams, searchParams })\n const [actionBeingConfigured, setActionBeingConfigured] = useState<any>(null)\n const [interactiveForm, setInteractiveForm] = useState<any>(null)\n\n const context: ActionContext | null = useMemo(() => {\n if (!entities.length) return null\n if (!entities[0].projectName) return null\n\n // get a list of unique entity subtypes from loaded data\n const entitySubtypesLoaded = entities\n .filter((entity) => entity.entitySubType)\n .map((entity) => entity.entitySubType as string)\n .filter((value, index, self) => self.indexOf(value) === index && value)\n\n // try and use the passed in entitySubTypes, if not use the loaded ones\n const entitySubTypesToUse = entitySubTypes?.length ? entitySubTypes : entitySubtypesLoaded\n\n // all types except version/representation should have subtypes\n if (\n !entitySubTypesToUse?.length &&\n entityType !== 'version' &&\n entityType !== 'representation'\n ) {\n console.warn('No entity subtypes found')\n return null\n }\n\n return {\n projectName: entities[0].projectName,\n entityType: entityType,\n entityIds: entities.map((entity) => entity.id),\n entitySubtypes: entitySubTypesToUse,\n }\n }, [entities, entityType])\n\n useEffect(() => {\n setInteractiveForm(null)\n }, [context])\n\n const { data, isFetching: isFetchingActions } = useGetActionsFromContextQuery(\n { mode: 'simple', actionContext: context as ActionContext },\n { skip: !context },\n )\n\n const actions = data?.actions || []\n\n const categoryOrder = ['application', 'admin', 'workflow']\n // group actions by category\n // sort by hardcoded category, this will changing the future\n const groupedActions = useMemo(() => {\n // Step 1: Group actions by category\n const grouped = actions.reduce((acc: { [key: string]: any[] }, action) => {\n const category = action.category || 'uncategorized'\n if (!acc[category]) {\n acc[category] = []\n }\n acc[category].push(action)\n return acc\n }, {})\n\n // Step 5: Return the ordered groups\n return grouped\n }, [actions])\n\n // get categories that don't have a specific order (not in categoryOrder)\n // then sort them alphabetically\n const unorderedCategories = useMemo(\n () => [\n ...new Set(\n Object.keys(groupedActions)\n .filter((category) => !categoryOrder.includes(category))\n .sort((a, b) => a.localeCompare(b)),\n ),\n ],\n [groupedActions],\n )\n\n const categories = [...categoryOrder, ...unorderedCategories]\n\n // create the options for the dropdown, each category is separated by a divider and a title\n // for the divider we will use a custom dropdown item template\n const dropdownOptions = useMemo(() => {\n const options = []\n\n categories.forEach((category) => {\n if (!groupedActions[category] || !groupedActions[category].length) return\n\n options.push({\n label: category,\n header: true,\n value: category,\n disabled: true,\n })\n\n const groupOptions = groupedActions[category].map((action) => ({\n value: action.identifier,\n label: action.groupLabel ? action.groupLabel + ' ' + action.label : action.label,\n icon: action.icon,\n hasConfig: !!action.configFields,\n }))\n\n options.push(...groupOptions)\n })\n\n // if no actions, add placeholder\n if (!options.length) {\n options.push({\n label: 'No actions available',\n value: 'no-actions',\n disabled: true,\n header: true,\n })\n }\n\n return options\n }, [groupedActions, unorderedCategories, categoryOrder])\n\n const featuredNumber = 2\n\n const featuredActions = useMemo(() => {\n // Filter and sort to get initial featured actions\n let tempFeaturedActions = actions\n .filter((action) => action.featured)\n .sort((a, b) => (a.order || 0) - (b.order || 0))\n .slice(0, featuredNumber)\n\n // Check if we need to add more actions to reach featuredNumber\n if (tempFeaturedActions.length < featuredNumber) {\n categories.forEach((category) => {\n if (tempFeaturedActions.length >= featuredNumber) return\n const actions = groupedActions[category]\n if (!actions || !actions.length) return\n\n for (let i = tempFeaturedActions.length; i < featuredNumber; i++) {\n const action = actions[i]\n if (!action) break\n if (!action.icon) continue\n tempFeaturedActions.push(action)\n }\n })\n }\n\n return tempFeaturedActions\n }, [actions, groupedActions, placeholder])\n\n const [executeAction, { isLoading: isLoadingExecution, originalArgs }] =\n useExecuteActionMutation()\n const executingAction = isLoadingExecution && originalArgs?.identifier\n\n const handleExecuteAction = async (\n identifier: string,\n e?: MouseEvent<HTMLElement> | null,\n formData?: InteractiveForm,\n ) => {\n e?.preventDefault()\n const action = actions.find((option) => option.identifier === identifier)\n\n if (!action) {\n toast.error('Action not found')\n console.warn('Action not found', identifier)\n return\n }\n\n const params = {\n addonName: action.addonName as string,\n addonVersion: action.addonVersion as string,\n variant: action.variant,\n identifier: action.identifier,\n }\n\n const actionContext = { ...context }\n if (formData) {\n actionContext.formData = formData\n }\n\n let response = null\n\n try {\n response = await executeAction({ actionContext, ...params }).unwrap()\n } catch (error: any) {\n console.error('Error executing action', error)\n toast.error(error?.data?.detail || 'Error executing action')\n return\n }\n\n try {\n // Toast the message if it is available\n if (response?.message) {\n if (response?.success) {\n toast.success(response.message, { autoClose: 2000 })\n } else {\n toast.error(response.message, { autoClose: 2000 })\n }\n }\n\n // Even if response?.success is false, we still want to handle the payload\n // as it may contain useful information - complex error messages in form,\n // redirect to another page etc. If the action just needs to abort,\n // it raises exception instead of returning a response with success: false\n\n // Use the new hook to handle payload\n if (response?.payload) {\n if (response.type === 'form') {\n // action requests additional information from the user.\n // we show a dialog with the form and when the user submits it we call the action again\n\n // It probably does not make sense to move to the useActionTriggers hook\n // as it need contexts and the dialog\n const intf = {\n identifier,\n // @ts-expect-error\n title: response.payload['title'],\n // @ts-expect-error\n fields: response.payload['fields'],\n // @ts-expect-error\n submitLabel: response.payload['submit_label'],\n // @ts-expect-error\n cancelLabel: response.payload['cancel_label'],\n // @ts-expect-error\n submitIcon: response.payload['submit_icon'],\n // @ts-expect-error\n cancelIcon: response.payload['cancel_icon'],\n }\n setInteractiveForm(intf)\n } else {\n handleActionPayload(response.type as string, response.payload)\n }\n }\n } catch (error) {\n // got response, but failed to process it\n console.warn('Error during action response processing', error)\n toast.error('Error occured during action processing')\n }\n }\n\n const handleConfigureAction = (identifier: string) => {\n const action = actions.find((data) => data.identifier === identifier)\n if (!action) return\n setActionBeingConfigured(action)\n }\n\n const handleSubmitInteractiveForm = async (identifier: string, formData: InteractiveForm) => {\n handleExecuteAction(identifier, null, formData)\n }\n\n const loadingActions = [placeholder, placeholder, placeholder]\n\n const isLoading = isFetchingActions || isLoadingEntity\n const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions\n\n return (\n <Styled.Actions className=\"actions\">\n {featuredActionsToDisplay.map((action, i) => (\n <Styled.FeaturedAction\n key={action.identifier + '-' + i}\n className={clsx('action', {\n loading: isLoading,\n // @ts-expect-error\n isPlaceholder: action.isPlaceholder,\n })}\n data-tooltip={action.groupLabel ? action.groupLabel + ' ' + action.label : action.label}\n // @ts-expect-error\n disabled={action.isPlaceholder}\n onClick={(e) => handleExecuteAction(action.identifier, e)}\n >\n {/* @ts-ignore */}\n <ActionIcon icon={action.icon} isExecuting={executingAction === action.identifier} />\n </Styled.FeaturedAction>\n ))}\n <ActionsDropdown\n options={dropdownOptions}\n isLoading={isLoading}\n onAction={handleExecuteAction}\n onConfig={handleConfigureAction}\n />\n <ActionConfigDialog\n action={actionBeingConfigured}\n // @ts-expect-error\n context={context}\n onClose={() => setActionBeingConfigured(null)}\n />\n <InteractiveActionDialog\n interactiveForm={interactiveForm}\n onClose={() => setInteractiveForm(null)}\n // @ts-expect-error\n onSubmit={handleSubmitInteractiveForm}\n />\n </Styled.Actions>\n )\n}\n"],"names":["useActionTriggers","useState","useMemo","useEffect","useGetActionsFromContextQuery","actions","useExecuteActionMutation","toast","data","jsxs","Styled.Actions","jsx","Styled.FeaturedAction","ActionsDropdown","ActionConfigDialog","InteractiveActionDialog"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.cjs.js","sources":["../../../../../src/containers/Actions/Actions.tsx"],"sourcesContent":["import * as Styled from './Actions.styled'\nimport { MouseEvent, useState } from 'react'\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport { useMemo, useEffect } from 'react'\nimport { ActionContext, useExecuteActionMutation, useGetActionsFromContextQuery } from '@shared/api'\nimport { ActionsDropdown } from './ActionsDropdown'\nimport ActionIcon from './ActionIcon'\nimport { ActionTriggersProps, useActionTriggers } from '@shared/hooks'\nimport { ActionConfigDialog } from './ActionConfigDialog'\nimport { InteractiveActionDialog, InteractiveForm } from './InteractiveActionDialog'\n\nconst placeholder = {\n identifier: 'placeholder',\n label: 'Featured action slot',\n isPlaceholder: true,\n icon: { type: 'material-symbols', name: 'sync' },\n groupLabel: '',\n}\n\ninterface ActionsProps extends ActionTriggersProps {\n entities: { id: string; projectName: string; entitySubType?: string }[]\n entityType: ActionContext['entityType']\n entitySubTypes?: string[]\n isLoadingEntity: boolean\n featuredCount?: number\n}\n\nexport const Actions = ({\n entities,\n entityType,\n entitySubTypes,\n isLoadingEntity,\n searchParams,\n featuredCount = 2,\n onNavigate,\n onSetSearchParams,\n}: ActionsProps) => {\n // special triggers the actions can make to perform stuff on the client\n const { handleActionPayload } = useActionTriggers({ onNavigate, onSetSearchParams, searchParams })\n const [actionBeingConfigured, setActionBeingConfigured] = useState<any>(null)\n const [interactiveForm, setInteractiveForm] = useState<any>(null)\n\n const context: ActionContext | null = useMemo(() => {\n if (!entities.length) return null\n if (!entities[0].projectName) return null\n\n // get a list of unique entity subtypes from loaded data\n const entitySubtypesLoaded = entities\n .filter((entity) => entity.entitySubType)\n .map((entity) => entity.entitySubType as string)\n .filter((value, index, self) => self.indexOf(value) === index && value)\n\n // try and use the passed in entitySubTypes, if not use the loaded ones\n const entitySubTypesToUse = entitySubTypes?.length ? entitySubTypes : entitySubtypesLoaded\n\n // all types except version/representation should have subtypes\n if (\n !entitySubTypesToUse?.length &&\n entityType !== 'version' &&\n entityType !== 'representation'\n ) {\n console.warn('No entity subtypes found')\n return null\n }\n\n return {\n projectName: entities[0].projectName,\n entityType: entityType,\n entityIds: entities.map((entity) => entity.id),\n entitySubtypes: entitySubTypesToUse,\n }\n }, [entities, entityType])\n\n useEffect(() => {\n setInteractiveForm(null)\n }, [context])\n\n const { data, isFetching: isFetchingActions } = useGetActionsFromContextQuery(\n { mode: 'simple', actionContext: context as ActionContext },\n { skip: !context },\n )\n\n const actions = data?.actions || []\n\n const categoryOrder = ['application', 'admin', 'workflow']\n // group actions by category\n // sort by hardcoded category, this will changing the future\n const groupedActions = useMemo(() => {\n // Step 1: Group actions by category\n const grouped = actions.reduce((acc: { [key: string]: any[] }, action) => {\n const category = action.category || 'uncategorized'\n if (!acc[category]) {\n acc[category] = []\n }\n acc[category].push(action)\n return acc\n }, {})\n\n // Step 5: Return the ordered groups\n return grouped\n }, [actions])\n\n // get categories that don't have a specific order (not in categoryOrder)\n // then sort them alphabetically\n const unorderedCategories = useMemo(\n () => [\n ...new Set(\n Object.keys(groupedActions)\n .filter((category) => !categoryOrder.includes(category))\n .sort((a, b) => a.localeCompare(b)),\n ),\n ],\n [groupedActions],\n )\n\n const categories = [...categoryOrder, ...unorderedCategories]\n\n // create the options for the dropdown, each category is separated by a divider and a title\n // for the divider we will use a custom dropdown item template\n const dropdownOptions = useMemo(() => {\n const options = []\n\n categories.forEach((category) => {\n if (!groupedActions[category] || !groupedActions[category].length) return\n\n options.push({\n label: category,\n header: true,\n value: category,\n disabled: true,\n })\n\n const groupOptions = groupedActions[category].map((action) => ({\n value: action.identifier,\n label: action.groupLabel ? action.groupLabel + ' ' + action.label : action.label,\n icon: action.icon,\n hasConfig: !!action.configFields,\n }))\n\n options.push(...groupOptions)\n })\n\n // if no actions, add placeholder\n if (!options.length) {\n options.push({\n label: 'No actions available',\n value: 'no-actions',\n disabled: true,\n header: true,\n })\n }\n\n return options\n }, [groupedActions, unorderedCategories, categoryOrder])\n\n const featuredActions = useMemo(() => {\n // Filter and sort to get initial featured actions\n let tempFeaturedActions = actions\n .filter((action) => action.featured)\n .sort((a, b) => (a.order || 0) - (b.order || 0))\n .slice(0, featuredCount)\n\n // Check if we need to add more actions to reach featuredCount\n if (tempFeaturedActions.length < featuredCount) {\n categories.forEach((category) => {\n if (tempFeaturedActions.length >= featuredCount) return\n const actions = groupedActions[category]\n if (!actions || !actions.length) return\n\n for (let i = tempFeaturedActions.length; i < featuredCount; i++) {\n const action = actions[i]\n if (!action) break\n if (!action.icon) continue\n tempFeaturedActions.push(action)\n }\n })\n }\n\n return tempFeaturedActions\n }, [actions, groupedActions, placeholder])\n\n const [executeAction, { isLoading: isLoadingExecution, originalArgs }] =\n useExecuteActionMutation()\n const executingAction = isLoadingExecution && originalArgs?.identifier\n\n const handleExecuteAction = async (\n identifier: string,\n e?: MouseEvent<HTMLElement> | null,\n formData?: InteractiveForm,\n ) => {\n e?.preventDefault()\n const action = actions.find((option) => option.identifier === identifier)\n\n if (!action) {\n toast.error('Action not found')\n console.warn('Action not found', identifier)\n return\n }\n\n const params = {\n addonName: action.addonName as string,\n addonVersion: action.addonVersion as string,\n variant: action.variant,\n identifier: action.identifier,\n }\n\n const actionContext = { ...context }\n if (formData) {\n actionContext.formData = formData\n }\n\n let response = null\n\n try {\n response = await executeAction({ actionContext, ...params }).unwrap()\n } catch (error: any) {\n console.error('Error executing action', error)\n toast.error(error?.data?.detail || 'Error executing action')\n return\n }\n\n try {\n // Toast the message if it is available\n if (response?.message) {\n if (response?.success) {\n toast.success(response.message, { autoClose: 2000 })\n } else {\n toast.error(response.message, { autoClose: 2000 })\n }\n }\n\n // Even if response?.success is false, we still want to handle the payload\n // as it may contain useful information - complex error messages in form,\n // redirect to another page etc. If the action just needs to abort,\n // it raises exception instead of returning a response with success: false\n\n // Use the new hook to handle payload\n if (response?.payload) {\n if (response.type === 'form') {\n // action requests additional information from the user.\n // we show a dialog with the form and when the user submits it we call the action again\n\n // It probably does not make sense to move to the useActionTriggers hook\n // as it need contexts and the dialog\n const intf = {\n identifier,\n // @ts-expect-error\n title: response.payload['title'],\n // @ts-expect-error\n fields: response.payload['fields'],\n // @ts-expect-error\n submitLabel: response.payload['submit_label'],\n // @ts-expect-error\n cancelLabel: response.payload['cancel_label'],\n // @ts-expect-error\n submitIcon: response.payload['submit_icon'],\n // @ts-expect-error\n cancelIcon: response.payload['cancel_icon'],\n }\n setInteractiveForm(intf)\n } else {\n handleActionPayload(response.type as string, response.payload)\n }\n }\n } catch (error) {\n // got response, but failed to process it\n console.warn('Error during action response processing', error)\n toast.error('Error occured during action processing')\n }\n }\n\n const handleConfigureAction = (identifier: string) => {\n const action = actions.find((data) => data.identifier === identifier)\n if (!action) return\n setActionBeingConfigured(action)\n }\n\n const handleSubmitInteractiveForm = async (identifier: string, formData: InteractiveForm) => {\n handleExecuteAction(identifier, null, formData)\n }\n\n const loadingActions = useMemo(\n () => Array(featuredCount).fill(placeholder),\n [featuredCount, placeholder],\n )\n\n const isLoading = isFetchingActions || isLoadingEntity\n const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions\n\n return (\n <Styled.Actions className=\"actions\">\n {featuredActionsToDisplay.map((action, i) => (\n <Styled.FeaturedAction\n key={action.identifier + '-' + i}\n className={clsx('action', {\n loading: isLoading,\n isPlaceholder: action.isPlaceholder,\n })}\n data-tooltip={action.groupLabel ? action.groupLabel + ' ' + action.label : action.label}\n disabled={action.isPlaceholder}\n onClick={(e) => handleExecuteAction(action.identifier, e)}\n >\n {/* @ts-ignore */}\n <ActionIcon icon={action.icon} isExecuting={executingAction === action.identifier} />\n </Styled.FeaturedAction>\n ))}\n <ActionsDropdown\n options={dropdownOptions}\n isLoading={isLoading && featuredCount > 0}\n onAction={handleExecuteAction}\n onConfig={handleConfigureAction}\n />\n <ActionConfigDialog\n action={actionBeingConfigured}\n // @ts-expect-error\n context={context}\n onClose={() => setActionBeingConfigured(null)}\n />\n <InteractiveActionDialog\n interactiveForm={interactiveForm}\n onClose={() => setInteractiveForm(null)}\n // @ts-expect-error\n onSubmit={handleSubmitInteractiveForm}\n />\n </Styled.Actions>\n )\n}\n"],"names":["useActionTriggers","useState","useMemo","useEffect","useGetActionsFromContextQuery","actions","useExecuteActionMutation","toast","data","jsxs","Styled.Actions","jsx","Styled.FeaturedAction","ActionsDropdown","ActionConfigDialog","InteractiveActionDialog"],"mappings":"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"}
@@ -67,6 +67,7 @@ import "../../api/queries/userDashboard/getUserDashboard.es.js";
67
67
  import "../../api/queries/users/getUsers.es.js";
68
68
  import "../../api/queries/users/updateUsers.es.js";
69
69
  import "../../api/queries/watchers/getWatchers.es.js";
70
+ import "../../api/queries/permissions/getPermissions.es.js";
70
71
  import { ActionsDropdown } from "./ActionsDropdown/ActionsDropdown.es.js";
71
72
  import ActionIcon from "./ActionIcon.es.js";
72
73
  import "../../context/RemoteModulesContext.es.js";
@@ -79,6 +80,8 @@ import "../../context/SettingsPanelContext.es.js";
79
80
  import "../../context/pip/PiPProvider.es.js";
80
81
  import "react-dom";
81
82
  import "../../context/pip/PiPWrapper.es.js";
83
+ import "../../context/AddonProjectContext.es.js";
84
+ import "../../context/AddonContext.es.js";
82
85
  import { useActionTriggers } from "../../hooks/useActionTriggers.es.js";
83
86
  import { ActionConfigDialog } from "./ActionConfigDialog.es.js";
84
87
  import { InteractiveActionDialog } from "./InteractiveActionDialog.es.js";
@@ -95,6 +98,7 @@ const Actions = ({
95
98
  entitySubTypes,
96
99
  isLoadingEntity,
97
100
  searchParams,
101
+ featuredCount = 2,
98
102
  onNavigate,
99
103
  onSetSearchParams
100
104
  }) => {
@@ -174,15 +178,14 @@ const Actions = ({
174
178
  }
175
179
  return options;
176
180
  }, [groupedActions, unorderedCategories, categoryOrder]);
177
- const featuredNumber = 2;
178
181
  const featuredActions = useMemo(() => {
179
- let tempFeaturedActions = actions.filter((action) => action.featured).sort((a, b) => (a.order || 0) - (b.order || 0)).slice(0, featuredNumber);
180
- if (tempFeaturedActions.length < featuredNumber) {
182
+ let tempFeaturedActions = actions.filter((action) => action.featured).sort((a, b) => (a.order || 0) - (b.order || 0)).slice(0, featuredCount);
183
+ if (tempFeaturedActions.length < featuredCount) {
181
184
  categories.forEach((category) => {
182
- if (tempFeaturedActions.length >= featuredNumber) return;
185
+ if (tempFeaturedActions.length >= featuredCount) return;
183
186
  const actions2 = groupedActions[category];
184
187
  if (!actions2 || !actions2.length) return;
185
- for (let i = tempFeaturedActions.length; i < featuredNumber; i++) {
188
+ for (let i = tempFeaturedActions.length; i < featuredCount; i++) {
186
189
  const action = actions2[i];
187
190
  if (!action) break;
188
191
  if (!action.icon) continue;
@@ -264,7 +267,10 @@ const Actions = ({
264
267
  const handleSubmitInteractiveForm = async (identifier, formData) => {
265
268
  handleExecuteAction(identifier, null, formData);
266
269
  };
267
- const loadingActions = [placeholder, placeholder, placeholder];
270
+ const loadingActions = useMemo(
271
+ () => Array(featuredCount).fill(placeholder),
272
+ [featuredCount, placeholder]
273
+ );
268
274
  const isLoading = isFetchingActions || isLoadingEntity;
269
275
  const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions;
270
276
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Actions$1, { className: "actions", children: [
@@ -273,7 +279,6 @@ const Actions = ({
273
279
  {
274
280
  className: clsx("action", {
275
281
  loading: isLoading,
276
- // @ts-expect-error
277
282
  isPlaceholder: action.isPlaceholder
278
283
  }),
279
284
  "data-tooltip": action.groupLabel ? action.groupLabel + " " + action.label : action.label,
@@ -287,7 +292,7 @@ const Actions = ({
287
292
  ActionsDropdown,
288
293
  {
289
294
  options: dropdownOptions,
290
- isLoading,
295
+ isLoading: isLoading && featuredCount > 0,
291
296
  onAction: handleExecuteAction,
292
297
  onConfig: handleConfigureAction
293
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.es.js","sources":["../../../../../src/containers/Actions/Actions.tsx"],"sourcesContent":["import * as Styled from './Actions.styled'\nimport { MouseEvent, useState } from 'react'\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport { useMemo, useEffect } from 'react'\nimport { ActionContext, useExecuteActionMutation, useGetActionsFromContextQuery } from '@shared/api'\nimport { ActionsDropdown } from './ActionsDropdown'\nimport ActionIcon from './ActionIcon'\nimport { ActionTriggersProps, useActionTriggers } from '@shared/hooks'\nimport { ActionConfigDialog } from './ActionConfigDialog'\nimport { InteractiveActionDialog, InteractiveForm } from './InteractiveActionDialog'\n\nconst placeholder = {\n identifier: 'placeholder',\n label: 'Featured action slot',\n isPlaceholder: true,\n icon: { type: 'material-symbols', name: 'sync' },\n groupLabel: '',\n}\n\ninterface ActionsProps extends ActionTriggersProps {\n entities: { id: string; projectName: string; entitySubType?: string }[]\n entityType: ActionContext['entityType']\n entitySubTypes?: string[]\n isLoadingEntity: boolean\n}\n\nexport const Actions = ({\n entities,\n entityType,\n entitySubTypes,\n isLoadingEntity,\n searchParams,\n onNavigate,\n onSetSearchParams,\n}: ActionsProps) => {\n // special triggers the actions can make to perform stuff on the client\n const { handleActionPayload } = useActionTriggers({ onNavigate, onSetSearchParams, searchParams })\n const [actionBeingConfigured, setActionBeingConfigured] = useState<any>(null)\n const [interactiveForm, setInteractiveForm] = useState<any>(null)\n\n const context: ActionContext | null = useMemo(() => {\n if (!entities.length) return null\n if (!entities[0].projectName) return null\n\n // get a list of unique entity subtypes from loaded data\n const entitySubtypesLoaded = entities\n .filter((entity) => entity.entitySubType)\n .map((entity) => entity.entitySubType as string)\n .filter((value, index, self) => self.indexOf(value) === index && value)\n\n // try and use the passed in entitySubTypes, if not use the loaded ones\n const entitySubTypesToUse = entitySubTypes?.length ? entitySubTypes : entitySubtypesLoaded\n\n // all types except version/representation should have subtypes\n if (\n !entitySubTypesToUse?.length &&\n entityType !== 'version' &&\n entityType !== 'representation'\n ) {\n console.warn('No entity subtypes found')\n return null\n }\n\n return {\n projectName: entities[0].projectName,\n entityType: entityType,\n entityIds: entities.map((entity) => entity.id),\n entitySubtypes: entitySubTypesToUse,\n }\n }, [entities, entityType])\n\n useEffect(() => {\n setInteractiveForm(null)\n }, [context])\n\n const { data, isFetching: isFetchingActions } = useGetActionsFromContextQuery(\n { mode: 'simple', actionContext: context as ActionContext },\n { skip: !context },\n )\n\n const actions = data?.actions || []\n\n const categoryOrder = ['application', 'admin', 'workflow']\n // group actions by category\n // sort by hardcoded category, this will changing the future\n const groupedActions = useMemo(() => {\n // Step 1: Group actions by category\n const grouped = actions.reduce((acc: { [key: string]: any[] }, action) => {\n const category = action.category || 'uncategorized'\n if (!acc[category]) {\n acc[category] = []\n }\n acc[category].push(action)\n return acc\n }, {})\n\n // Step 5: Return the ordered groups\n return grouped\n }, [actions])\n\n // get categories that don't have a specific order (not in categoryOrder)\n // then sort them alphabetically\n const unorderedCategories = useMemo(\n () => [\n ...new Set(\n Object.keys(groupedActions)\n .filter((category) => !categoryOrder.includes(category))\n .sort((a, b) => a.localeCompare(b)),\n ),\n ],\n [groupedActions],\n )\n\n const categories = [...categoryOrder, ...unorderedCategories]\n\n // create the options for the dropdown, each category is separated by a divider and a title\n // for the divider we will use a custom dropdown item template\n const dropdownOptions = useMemo(() => {\n const options = []\n\n categories.forEach((category) => {\n if (!groupedActions[category] || !groupedActions[category].length) return\n\n options.push({\n label: category,\n header: true,\n value: category,\n disabled: true,\n })\n\n const groupOptions = groupedActions[category].map((action) => ({\n value: action.identifier,\n label: action.groupLabel ? action.groupLabel + ' ' + action.label : action.label,\n icon: action.icon,\n hasConfig: !!action.configFields,\n }))\n\n options.push(...groupOptions)\n })\n\n // if no actions, add placeholder\n if (!options.length) {\n options.push({\n label: 'No actions available',\n value: 'no-actions',\n disabled: true,\n header: true,\n })\n }\n\n return options\n }, [groupedActions, unorderedCategories, categoryOrder])\n\n const featuredNumber = 2\n\n const featuredActions = useMemo(() => {\n // Filter and sort to get initial featured actions\n let tempFeaturedActions = actions\n .filter((action) => action.featured)\n .sort((a, b) => (a.order || 0) - (b.order || 0))\n .slice(0, featuredNumber)\n\n // Check if we need to add more actions to reach featuredNumber\n if (tempFeaturedActions.length < featuredNumber) {\n categories.forEach((category) => {\n if (tempFeaturedActions.length >= featuredNumber) return\n const actions = groupedActions[category]\n if (!actions || !actions.length) return\n\n for (let i = tempFeaturedActions.length; i < featuredNumber; i++) {\n const action = actions[i]\n if (!action) break\n if (!action.icon) continue\n tempFeaturedActions.push(action)\n }\n })\n }\n\n return tempFeaturedActions\n }, [actions, groupedActions, placeholder])\n\n const [executeAction, { isLoading: isLoadingExecution, originalArgs }] =\n useExecuteActionMutation()\n const executingAction = isLoadingExecution && originalArgs?.identifier\n\n const handleExecuteAction = async (\n identifier: string,\n e?: MouseEvent<HTMLElement> | null,\n formData?: InteractiveForm,\n ) => {\n e?.preventDefault()\n const action = actions.find((option) => option.identifier === identifier)\n\n if (!action) {\n toast.error('Action not found')\n console.warn('Action not found', identifier)\n return\n }\n\n const params = {\n addonName: action.addonName as string,\n addonVersion: action.addonVersion as string,\n variant: action.variant,\n identifier: action.identifier,\n }\n\n const actionContext = { ...context }\n if (formData) {\n actionContext.formData = formData\n }\n\n let response = null\n\n try {\n response = await executeAction({ actionContext, ...params }).unwrap()\n } catch (error: any) {\n console.error('Error executing action', error)\n toast.error(error?.data?.detail || 'Error executing action')\n return\n }\n\n try {\n // Toast the message if it is available\n if (response?.message) {\n if (response?.success) {\n toast.success(response.message, { autoClose: 2000 })\n } else {\n toast.error(response.message, { autoClose: 2000 })\n }\n }\n\n // Even if response?.success is false, we still want to handle the payload\n // as it may contain useful information - complex error messages in form,\n // redirect to another page etc. If the action just needs to abort,\n // it raises exception instead of returning a response with success: false\n\n // Use the new hook to handle payload\n if (response?.payload) {\n if (response.type === 'form') {\n // action requests additional information from the user.\n // we show a dialog with the form and when the user submits it we call the action again\n\n // It probably does not make sense to move to the useActionTriggers hook\n // as it need contexts and the dialog\n const intf = {\n identifier,\n // @ts-expect-error\n title: response.payload['title'],\n // @ts-expect-error\n fields: response.payload['fields'],\n // @ts-expect-error\n submitLabel: response.payload['submit_label'],\n // @ts-expect-error\n cancelLabel: response.payload['cancel_label'],\n // @ts-expect-error\n submitIcon: response.payload['submit_icon'],\n // @ts-expect-error\n cancelIcon: response.payload['cancel_icon'],\n }\n setInteractiveForm(intf)\n } else {\n handleActionPayload(response.type as string, response.payload)\n }\n }\n } catch (error) {\n // got response, but failed to process it\n console.warn('Error during action response processing', error)\n toast.error('Error occured during action processing')\n }\n }\n\n const handleConfigureAction = (identifier: string) => {\n const action = actions.find((data) => data.identifier === identifier)\n if (!action) return\n setActionBeingConfigured(action)\n }\n\n const handleSubmitInteractiveForm = async (identifier: string, formData: InteractiveForm) => {\n handleExecuteAction(identifier, null, formData)\n }\n\n const loadingActions = [placeholder, placeholder, placeholder]\n\n const isLoading = isFetchingActions || isLoadingEntity\n const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions\n\n return (\n <Styled.Actions className=\"actions\">\n {featuredActionsToDisplay.map((action, i) => (\n <Styled.FeaturedAction\n key={action.identifier + '-' + i}\n className={clsx('action', {\n loading: isLoading,\n // @ts-expect-error\n isPlaceholder: action.isPlaceholder,\n })}\n data-tooltip={action.groupLabel ? action.groupLabel + ' ' + action.label : action.label}\n // @ts-expect-error\n disabled={action.isPlaceholder}\n onClick={(e) => handleExecuteAction(action.identifier, e)}\n >\n {/* @ts-ignore */}\n <ActionIcon icon={action.icon} isExecuting={executingAction === action.identifier} />\n </Styled.FeaturedAction>\n ))}\n <ActionsDropdown\n options={dropdownOptions}\n isLoading={isLoading}\n onAction={handleExecuteAction}\n onConfig={handleConfigureAction}\n />\n <ActionConfigDialog\n action={actionBeingConfigured}\n // @ts-expect-error\n context={context}\n onClose={() => setActionBeingConfigured(null)}\n />\n <InteractiveActionDialog\n interactiveForm={interactiveForm}\n onClose={() => setInteractiveForm(null)}\n // @ts-expect-error\n onSubmit={handleSubmitInteractiveForm}\n />\n </Styled.Actions>\n )\n}\n"],"names":["actions","data","jsxs","Styled.Actions","jsx","Styled.FeaturedAction"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.es.js","sources":["../../../../../src/containers/Actions/Actions.tsx"],"sourcesContent":["import * as Styled from './Actions.styled'\nimport { MouseEvent, useState } from 'react'\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport { useMemo, useEffect } from 'react'\nimport { ActionContext, useExecuteActionMutation, useGetActionsFromContextQuery } from '@shared/api'\nimport { ActionsDropdown } from './ActionsDropdown'\nimport ActionIcon from './ActionIcon'\nimport { ActionTriggersProps, useActionTriggers } from '@shared/hooks'\nimport { ActionConfigDialog } from './ActionConfigDialog'\nimport { InteractiveActionDialog, InteractiveForm } from './InteractiveActionDialog'\n\nconst placeholder = {\n identifier: 'placeholder',\n label: 'Featured action slot',\n isPlaceholder: true,\n icon: { type: 'material-symbols', name: 'sync' },\n groupLabel: '',\n}\n\ninterface ActionsProps extends ActionTriggersProps {\n entities: { id: string; projectName: string; entitySubType?: string }[]\n entityType: ActionContext['entityType']\n entitySubTypes?: string[]\n isLoadingEntity: boolean\n featuredCount?: number\n}\n\nexport const Actions = ({\n entities,\n entityType,\n entitySubTypes,\n isLoadingEntity,\n searchParams,\n featuredCount = 2,\n onNavigate,\n onSetSearchParams,\n}: ActionsProps) => {\n // special triggers the actions can make to perform stuff on the client\n const { handleActionPayload } = useActionTriggers({ onNavigate, onSetSearchParams, searchParams })\n const [actionBeingConfigured, setActionBeingConfigured] = useState<any>(null)\n const [interactiveForm, setInteractiveForm] = useState<any>(null)\n\n const context: ActionContext | null = useMemo(() => {\n if (!entities.length) return null\n if (!entities[0].projectName) return null\n\n // get a list of unique entity subtypes from loaded data\n const entitySubtypesLoaded = entities\n .filter((entity) => entity.entitySubType)\n .map((entity) => entity.entitySubType as string)\n .filter((value, index, self) => self.indexOf(value) === index && value)\n\n // try and use the passed in entitySubTypes, if not use the loaded ones\n const entitySubTypesToUse = entitySubTypes?.length ? entitySubTypes : entitySubtypesLoaded\n\n // all types except version/representation should have subtypes\n if (\n !entitySubTypesToUse?.length &&\n entityType !== 'version' &&\n entityType !== 'representation'\n ) {\n console.warn('No entity subtypes found')\n return null\n }\n\n return {\n projectName: entities[0].projectName,\n entityType: entityType,\n entityIds: entities.map((entity) => entity.id),\n entitySubtypes: entitySubTypesToUse,\n }\n }, [entities, entityType])\n\n useEffect(() => {\n setInteractiveForm(null)\n }, [context])\n\n const { data, isFetching: isFetchingActions } = useGetActionsFromContextQuery(\n { mode: 'simple', actionContext: context as ActionContext },\n { skip: !context },\n )\n\n const actions = data?.actions || []\n\n const categoryOrder = ['application', 'admin', 'workflow']\n // group actions by category\n // sort by hardcoded category, this will changing the future\n const groupedActions = useMemo(() => {\n // Step 1: Group actions by category\n const grouped = actions.reduce((acc: { [key: string]: any[] }, action) => {\n const category = action.category || 'uncategorized'\n if (!acc[category]) {\n acc[category] = []\n }\n acc[category].push(action)\n return acc\n }, {})\n\n // Step 5: Return the ordered groups\n return grouped\n }, [actions])\n\n // get categories that don't have a specific order (not in categoryOrder)\n // then sort them alphabetically\n const unorderedCategories = useMemo(\n () => [\n ...new Set(\n Object.keys(groupedActions)\n .filter((category) => !categoryOrder.includes(category))\n .sort((a, b) => a.localeCompare(b)),\n ),\n ],\n [groupedActions],\n )\n\n const categories = [...categoryOrder, ...unorderedCategories]\n\n // create the options for the dropdown, each category is separated by a divider and a title\n // for the divider we will use a custom dropdown item template\n const dropdownOptions = useMemo(() => {\n const options = []\n\n categories.forEach((category) => {\n if (!groupedActions[category] || !groupedActions[category].length) return\n\n options.push({\n label: category,\n header: true,\n value: category,\n disabled: true,\n })\n\n const groupOptions = groupedActions[category].map((action) => ({\n value: action.identifier,\n label: action.groupLabel ? action.groupLabel + ' ' + action.label : action.label,\n icon: action.icon,\n hasConfig: !!action.configFields,\n }))\n\n options.push(...groupOptions)\n })\n\n // if no actions, add placeholder\n if (!options.length) {\n options.push({\n label: 'No actions available',\n value: 'no-actions',\n disabled: true,\n header: true,\n })\n }\n\n return options\n }, [groupedActions, unorderedCategories, categoryOrder])\n\n const featuredActions = useMemo(() => {\n // Filter and sort to get initial featured actions\n let tempFeaturedActions = actions\n .filter((action) => action.featured)\n .sort((a, b) => (a.order || 0) - (b.order || 0))\n .slice(0, featuredCount)\n\n // Check if we need to add more actions to reach featuredCount\n if (tempFeaturedActions.length < featuredCount) {\n categories.forEach((category) => {\n if (tempFeaturedActions.length >= featuredCount) return\n const actions = groupedActions[category]\n if (!actions || !actions.length) return\n\n for (let i = tempFeaturedActions.length; i < featuredCount; i++) {\n const action = actions[i]\n if (!action) break\n if (!action.icon) continue\n tempFeaturedActions.push(action)\n }\n })\n }\n\n return tempFeaturedActions\n }, [actions, groupedActions, placeholder])\n\n const [executeAction, { isLoading: isLoadingExecution, originalArgs }] =\n useExecuteActionMutation()\n const executingAction = isLoadingExecution && originalArgs?.identifier\n\n const handleExecuteAction = async (\n identifier: string,\n e?: MouseEvent<HTMLElement> | null,\n formData?: InteractiveForm,\n ) => {\n e?.preventDefault()\n const action = actions.find((option) => option.identifier === identifier)\n\n if (!action) {\n toast.error('Action not found')\n console.warn('Action not found', identifier)\n return\n }\n\n const params = {\n addonName: action.addonName as string,\n addonVersion: action.addonVersion as string,\n variant: action.variant,\n identifier: action.identifier,\n }\n\n const actionContext = { ...context }\n if (formData) {\n actionContext.formData = formData\n }\n\n let response = null\n\n try {\n response = await executeAction({ actionContext, ...params }).unwrap()\n } catch (error: any) {\n console.error('Error executing action', error)\n toast.error(error?.data?.detail || 'Error executing action')\n return\n }\n\n try {\n // Toast the message if it is available\n if (response?.message) {\n if (response?.success) {\n toast.success(response.message, { autoClose: 2000 })\n } else {\n toast.error(response.message, { autoClose: 2000 })\n }\n }\n\n // Even if response?.success is false, we still want to handle the payload\n // as it may contain useful information - complex error messages in form,\n // redirect to another page etc. If the action just needs to abort,\n // it raises exception instead of returning a response with success: false\n\n // Use the new hook to handle payload\n if (response?.payload) {\n if (response.type === 'form') {\n // action requests additional information from the user.\n // we show a dialog with the form and when the user submits it we call the action again\n\n // It probably does not make sense to move to the useActionTriggers hook\n // as it need contexts and the dialog\n const intf = {\n identifier,\n // @ts-expect-error\n title: response.payload['title'],\n // @ts-expect-error\n fields: response.payload['fields'],\n // @ts-expect-error\n submitLabel: response.payload['submit_label'],\n // @ts-expect-error\n cancelLabel: response.payload['cancel_label'],\n // @ts-expect-error\n submitIcon: response.payload['submit_icon'],\n // @ts-expect-error\n cancelIcon: response.payload['cancel_icon'],\n }\n setInteractiveForm(intf)\n } else {\n handleActionPayload(response.type as string, response.payload)\n }\n }\n } catch (error) {\n // got response, but failed to process it\n console.warn('Error during action response processing', error)\n toast.error('Error occured during action processing')\n }\n }\n\n const handleConfigureAction = (identifier: string) => {\n const action = actions.find((data) => data.identifier === identifier)\n if (!action) return\n setActionBeingConfigured(action)\n }\n\n const handleSubmitInteractiveForm = async (identifier: string, formData: InteractiveForm) => {\n handleExecuteAction(identifier, null, formData)\n }\n\n const loadingActions = useMemo(\n () => Array(featuredCount).fill(placeholder),\n [featuredCount, placeholder],\n )\n\n const isLoading = isFetchingActions || isLoadingEntity\n const featuredActionsToDisplay = isLoading ? loadingActions : featuredActions\n\n return (\n <Styled.Actions className=\"actions\">\n {featuredActionsToDisplay.map((action, i) => (\n <Styled.FeaturedAction\n key={action.identifier + '-' + i}\n className={clsx('action', {\n loading: isLoading,\n isPlaceholder: action.isPlaceholder,\n })}\n data-tooltip={action.groupLabel ? action.groupLabel + ' ' + action.label : action.label}\n disabled={action.isPlaceholder}\n onClick={(e) => handleExecuteAction(action.identifier, e)}\n >\n {/* @ts-ignore */}\n <ActionIcon icon={action.icon} isExecuting={executingAction === action.identifier} />\n </Styled.FeaturedAction>\n ))}\n <ActionsDropdown\n options={dropdownOptions}\n isLoading={isLoading && featuredCount > 0}\n onAction={handleExecuteAction}\n onConfig={handleConfigureAction}\n />\n <ActionConfigDialog\n action={actionBeingConfigured}\n // @ts-expect-error\n context={context}\n onClose={() => setActionBeingConfigured(null)}\n />\n <InteractiveActionDialog\n interactiveForm={interactiveForm}\n onClose={() => setInteractiveForm(null)}\n // @ts-expect-error\n onSubmit={handleSubmitInteractiveForm}\n />\n </Styled.Actions>\n )\n}\n"],"names":["actions","data","jsxs","Styled.Actions","jsx","Styled.FeaturedAction"],"mappings":"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"}
@@ -79,9 +79,9 @@ const ActionsDropdown = ({
79
79
  value: [],
80
80
  placeholder: "",
81
81
  itemTemplate: (option) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ActionsDropdownItem, { ...option, onConfig: handleConfigClick }),
82
- valueTemplate: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.DefaultValueTemplate, { placeholder: "", value: [] }),
82
+ valueTemplate: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.DefaultValueTemplate, { placeholder: "", value: [], dropIcon: "category" }),
83
83
  onChange: (v) => onAction(v[0]),
84
- buttonProps: { ["data-tooltip"]: "All actions" }
84
+ buttonProps: { ["data-tooltip"]: "Actions", ["data-tooltip-delay"]: 0 }
85
85
  }
86
86
  );
87
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsDropdown.cjs.js","sources":["../../../../../../src/containers/Actions/ActionsDropdown/ActionsDropdown.tsx"],"sourcesContent":["import { DefaultValueTemplate, Button, Spacer, DropdownRef } from '@ynput/ayon-react-components'\nimport { DropdownHeader, DropdownItem, StyledDropdown } from './ActionsDropdown.styled'\nimport clsx from 'clsx'\nimport { useRef } from 'react'\nimport { upperFirst } from 'lodash'\nimport ActionIcon from '../ActionIcon'\nimport styled from 'styled-components'\nimport { IconModel } from '@shared/api'\n\nconst ActionItemContainer = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: 4px;\n\n // use visibility instead of display, so dropdown adjusts its width\n button {\n display: flex;\n visibility: hidden;\n }\n\n &:hover,\n &:focus-within {\n button {\n visibility: visible;\n }\n }\n`\n\ntype ActionsDropdownItemProps = {\n value: string\n label: string\n icon?: IconModel\n header?: boolean\n hasConfig?: boolean\n onConfig?: (value: string) => void\n}\n\nexport const ActionsDropdownItem = ({\n value,\n label,\n icon,\n header,\n hasConfig,\n onConfig,\n}: ActionsDropdownItemProps) => {\n if (header) return <DropdownHeader>{upperFirst(label)}</DropdownHeader>\n\n const handleConfig = (e: any) => {\n onConfig?.(value)\n e.stopPropagation()\n e.preventDefault()\n }\n\n return (\n <DropdownItem>\n <ActionItemContainer>\n <ActionIcon icon={icon} />\n <span>{label}</span>\n <Spacer />\n {hasConfig && (\n <Button\n onClick={handleConfig}\n icon=\"settings_applications\"\n tabIndex={-1}\n style={{ background: 'none', padding: 0 }}\n />\n )}\n </ActionItemContainer>\n </DropdownItem>\n )\n}\n\nexport type ActionsDropdownProps = {\n options: ActionsDropdownItemProps[]\n isLoading?: boolean\n onAction: (value: string) => void\n onConfig: (e: any) => void\n}\n\nexport const ActionsDropdown = ({\n options,\n isLoading,\n onAction,\n onConfig,\n}: ActionsDropdownProps) => {\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleConfigClick = (e: any) => {\n dropdownRef.current?.close()\n onConfig(e)\n }\n\n return (\n <StyledDropdown\n ref={dropdownRef}\n disabled={isLoading}\n className={clsx('more', { loading: isLoading })}\n options={options}\n maxOptionsShown={100}\n value={[]}\n placeholder=\"\"\n itemTemplate={(option) => <ActionsDropdownItem {...option} onConfig={handleConfigClick} />}\n valueTemplate={() => <DefaultValueTemplate placeholder=\"\" value={[]} />}\n onChange={(v) => onAction(v[0])}\n // @ts-expect-error\n buttonProps={{ ['data-tooltip']: 'All actions' }}\n />\n )\n}\n"],"names":["jsx","DropdownHeader","upperFirst","DropdownItem","jsxs","Spacer","Button","useRef","StyledDropdown","DefaultValueTemplate"],"mappings":";;;;;;;;;;AASA,MAAM,sBAAsB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6B5B,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAgC;AAC9B,MAAI,OAAe,QAAAA,2BAAAA,kBAAAA,IAACC,uBAAgB,gBAAA,EAAA,UAAAC,OAAA,WAAW,KAAK,GAAE;AAEhD,QAAA,eAAe,CAAC,MAAW;AAC/B,yCAAW;AACX,MAAE,gBAAgB;AAClB,MAAE,eAAe;AAAA,EACnB;AAGE,SAAAF,2BAAAA,kBAAAA,IAACG,uBAAAA,cACC,EAAA,UAAAC,2BAAAA,kBAAAA,KAAC,qBACC,EAAA,UAAA;AAAA,IAAAJ,iDAAC,cAAW,MAAY;AAAA,IACxBA,2BAAAA,kBAAAA,IAAC,UAAM,UAAM,MAAA,CAAA;AAAA,qDACZK,oBAAO,QAAA,EAAA;AAAA,IACP,aACCL,2BAAA,kBAAA;AAAA,MAACM,oBAAA;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,MAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO,EAAE,YAAY,QAAQ,SAAS,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAC1C,EAAA,CAEJ,EACF,CAAA;AAEJ;AASO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AACpB,QAAA,cAAcC,aAAoB,IAAI;AAEtC,QAAA,oBAAoB,CAAC,MAAW;;AACpC,sBAAY,YAAZ,mBAAqB;AACrB,aAAS,CAAC;AAAA,EACZ;AAGE,SAAAP,2BAAA,kBAAA;AAAA,IAACQ,uBAAA;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW,KAAK,QAAQ,EAAE,SAAS,WAAW;AAAA,MAC9C;AAAA,MACA,iBAAiB;AAAA,MACjB,OAAO,CAAC;AAAA,MACR,aAAY;AAAA,MACZ,cAAc,CAAC,WAAWR,iDAAC,uBAAqB,GAAG,QAAQ,UAAU,mBAAmB;AAAA,MACxF,eAAe,MAAOA,2BAAA,kBAAA,IAAAS,0CAAA,EAAqB,aAAY,IAAG,OAAO,CAAA,GAAI;AAAA,MACrE,UAAU,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;AAAA,MAE9B,aAAa,EAAE,CAAC,cAAc,GAAG,cAAc;AAAA,IAAA;AAAA,EACjD;AAEJ;;;"}
1
+ {"version":3,"file":"ActionsDropdown.cjs.js","sources":["../../../../../../src/containers/Actions/ActionsDropdown/ActionsDropdown.tsx"],"sourcesContent":["import { DefaultValueTemplate, Button, Spacer, DropdownRef } from '@ynput/ayon-react-components'\nimport { DropdownHeader, DropdownItem, StyledDropdown } from './ActionsDropdown.styled'\nimport clsx from 'clsx'\nimport { useRef } from 'react'\nimport { upperFirst } from 'lodash'\nimport ActionIcon from '../ActionIcon'\nimport styled from 'styled-components'\nimport { IconModel } from '@shared/api'\n\nconst ActionItemContainer = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: 4px;\n\n // use visibility instead of display, so dropdown adjusts its width\n button {\n display: flex;\n visibility: hidden;\n }\n\n &:hover,\n &:focus-within {\n button {\n visibility: visible;\n }\n }\n`\n\ntype ActionsDropdownItemProps = {\n value: string\n label: string\n icon?: IconModel\n header?: boolean\n hasConfig?: boolean\n onConfig?: (value: string) => void\n}\n\nexport const ActionsDropdownItem = ({\n value,\n label,\n icon,\n header,\n hasConfig,\n onConfig,\n}: ActionsDropdownItemProps) => {\n if (header) return <DropdownHeader>{upperFirst(label)}</DropdownHeader>\n\n const handleConfig = (e: any) => {\n onConfig?.(value)\n e.stopPropagation()\n e.preventDefault()\n }\n\n return (\n <DropdownItem>\n <ActionItemContainer>\n <ActionIcon icon={icon} />\n <span>{label}</span>\n <Spacer />\n {hasConfig && (\n <Button\n onClick={handleConfig}\n icon=\"settings_applications\"\n tabIndex={-1}\n style={{ background: 'none', padding: 0 }}\n />\n )}\n </ActionItemContainer>\n </DropdownItem>\n )\n}\n\nexport type ActionsDropdownProps = {\n options: ActionsDropdownItemProps[]\n isLoading?: boolean\n onAction: (value: string) => void\n onConfig: (e: any) => void\n}\n\nexport const ActionsDropdown = ({\n options,\n isLoading,\n onAction,\n onConfig,\n}: ActionsDropdownProps) => {\n const dropdownRef = useRef<DropdownRef>(null)\n\n const handleConfigClick = (e: any) => {\n dropdownRef.current?.close()\n onConfig(e)\n }\n\n return (\n <StyledDropdown\n ref={dropdownRef}\n disabled={isLoading}\n className={clsx('more', { loading: isLoading })}\n options={options}\n maxOptionsShown={100}\n value={[]}\n placeholder=\"\"\n itemTemplate={(option) => <ActionsDropdownItem {...option} onConfig={handleConfigClick} />}\n valueTemplate={() => <DefaultValueTemplate placeholder=\"\" value={[]} dropIcon={'category'} />}\n onChange={(v) => onAction(v[0])}\n // @ts-expect-error\n buttonProps={{ ['data-tooltip']: 'Actions', ['data-tooltip-delay']: 0 }}\n />\n )\n}\n"],"names":["jsx","DropdownHeader","upperFirst","DropdownItem","jsxs","Spacer","Button","useRef","StyledDropdown","DefaultValueTemplate"],"mappings":";;;;;;;;;;AASA,MAAM,sBAAsB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6B5B,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAgC;AAC9B,MAAI,OAAe,QAAAA,2BAAAA,kBAAAA,IAACC,uBAAgB,gBAAA,EAAA,UAAAC,OAAA,WAAW,KAAK,GAAE;AAEhD,QAAA,eAAe,CAAC,MAAW;AAC/B,yCAAW;AACX,MAAE,gBAAgB;AAClB,MAAE,eAAe;AAAA,EACnB;AAGE,SAAAF,2BAAAA,kBAAAA,IAACG,uBAAAA,cACC,EAAA,UAAAC,2BAAAA,kBAAAA,KAAC,qBACC,EAAA,UAAA;AAAA,IAAAJ,iDAAC,cAAW,MAAY;AAAA,IACxBA,2BAAAA,kBAAAA,IAAC,UAAM,UAAM,MAAA,CAAA;AAAA,qDACZK,oBAAO,QAAA,EAAA;AAAA,IACP,aACCL,2BAAA,kBAAA;AAAA,MAACM,oBAAA;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,MAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO,EAAE,YAAY,QAAQ,SAAS,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAC1C,EAAA,CAEJ,EACF,CAAA;AAEJ;AASO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AACpB,QAAA,cAAcC,aAAoB,IAAI;AAEtC,QAAA,oBAAoB,CAAC,MAAW;;AACpC,sBAAY,YAAZ,mBAAqB;AACrB,aAAS,CAAC;AAAA,EACZ;AAGE,SAAAP,2BAAA,kBAAA;AAAA,IAACQ,uBAAA;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW,KAAK,QAAQ,EAAE,SAAS,WAAW;AAAA,MAC9C;AAAA,MACA,iBAAiB;AAAA,MACjB,OAAO,CAAC;AAAA,MACR,aAAY;AAAA,MACZ,cAAc,CAAC,WAAWR,iDAAC,uBAAqB,GAAG,QAAQ,UAAU,mBAAmB;AAAA,MACxF,eAAe,MAAMA,2BAAAA,kBAAAA,IAACS,oBAAqB,sBAAA,EAAA,aAAY,IAAG,OAAO,CAAI,GAAA,UAAU,YAAY;AAAA,MAC3F,UAAU,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;AAAA,MAE9B,aAAa,EAAE,CAAC,cAAc,GAAG,WAAW,CAAC,oBAAoB,GAAG,EAAE;AAAA,IAAA;AAAA,EACxE;AAEJ;;;"}
@@ -77,9 +77,9 @@ const ActionsDropdown = ({
77
77
  value: [],
78
78
  placeholder: "",
79
79
  itemTemplate: (option) => /* @__PURE__ */ jsxRuntimeExports.jsx(ActionsDropdownItem, { ...option, onConfig: handleConfigClick }),
80
- valueTemplate: () => /* @__PURE__ */ jsxRuntimeExports.jsx(DefaultValueTemplate, { placeholder: "", value: [] }),
80
+ valueTemplate: () => /* @__PURE__ */ jsxRuntimeExports.jsx(DefaultValueTemplate, { placeholder: "", value: [], dropIcon: "category" }),
81
81
  onChange: (v) => onAction(v[0]),
82
- buttonProps: { ["data-tooltip"]: "All actions" }
82
+ buttonProps: { ["data-tooltip"]: "Actions", ["data-tooltip-delay"]: 0 }
83
83
  }
84
84
  );
85
85
  };