@ynput/ayon-frontend-shared 0.3.0 → 0.3.2

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 (377) hide show
  1. package/dist/_virtual/index.cjs4.js +1 -1
  2. package/dist/_virtual/index.cjs5.js +1 -1
  3. package/dist/_virtual/index.es4.js +2 -5
  4. package/dist/_virtual/index.es4.js.map +1 -1
  5. package/dist/_virtual/index.es5.js +5 -2
  6. package/dist/_virtual/index.es5.js.map +1 -1
  7. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  8. package/dist/node_modules/remove-accents/index.es.js +1 -1
  9. package/dist/node_modules/web-namespaces/index.cjs.js +1 -1
  10. package/dist/node_modules/web-namespaces/index.cjs.js.map +1 -1
  11. package/dist/node_modules/web-namespaces/index.es.js +3 -8
  12. package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
  13. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  14. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  15. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  16. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  17. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  18. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  19. package/dist/shared/src/api/generated/graphql.cjs.js +12 -8
  20. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphql.es.js +11 -7
  22. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  23. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  24. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  25. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  26. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  27. package/dist/shared/src/api/queries/overview/getOverview.es.js +95 -95
  28. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  29. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  30. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  31. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +66 -61
  32. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  33. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  34. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  35. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +14 -11
  36. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  37. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  38. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  39. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +42 -41
  40. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  41. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  42. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  43. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -23
  44. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  45. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js +1 -1
  46. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
  47. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js +6 -6
  48. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
  49. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  50. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  51. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +65 -64
  52. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  53. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  54. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  55. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +16 -16
  56. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  57. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  58. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  59. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +142 -146
  60. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  61. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  62. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  63. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +24 -24
  64. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  65. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  66. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  67. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +141 -132
  68. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  69. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  70. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  71. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +35 -28
  72. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  73. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +2 -2
  74. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  75. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +10 -10
  76. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  77. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  78. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  79. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  80. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  81. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  82. package/dist/shared/src/context/ProjectFoldersContext.es.js +62 -49
  83. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  84. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  85. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  86. package/dist/shared/src/hooks/useLoadModules.es.js +86 -80
  87. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  88. package/dist/types/api/generated/graphql.d.ts +2 -1
  89. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  90. package/dist/types/api/queries/overview/getOverview.d.ts +1 -0
  91. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +1 -0
  92. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
  93. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  94. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +4 -1
  95. package/dist/types/context/AddonContext.d.ts +1 -0
  96. package/dist/types/context/ProjectFoldersContext.d.ts +1 -0
  97. package/package.json +2 -1
  98. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +0 -2
  99. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +0 -1
  100. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +0 -63
  101. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +0 -1
  102. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +0 -2
  103. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +0 -1
  104. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +0 -12
  105. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +0 -1
  106. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +0 -2
  107. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +0 -1
  108. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +0 -107
  109. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +0 -1
  110. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +0 -2
  111. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +0 -1
  112. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +0 -14
  113. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +0 -1
  114. package/dist/node_modules/devlop/lib/default.cjs.js +0 -2
  115. package/dist/node_modules/devlop/lib/default.cjs.js.map +0 -1
  116. package/dist/node_modules/devlop/lib/default.es.js +0 -6
  117. package/dist/node_modules/devlop/lib/default.es.js.map +0 -1
  118. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +0 -2
  119. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +0 -1
  120. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +0 -39
  121. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +0 -1
  122. package/dist/node_modules/entities/dist/esm/decode.cjs.js +0 -2
  123. package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +0 -1
  124. package/dist/node_modules/entities/dist/esm/decode.es.js +0 -246
  125. package/dist/node_modules/entities/dist/esm/decode.es.js.map +0 -1
  126. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +0 -2
  127. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +0 -1
  128. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +0 -8
  129. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +0 -1
  130. package/dist/node_modules/hast-util-raw/lib/index.cjs.js +0 -2
  131. package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +0 -1
  132. package/dist/node_modules/hast-util-raw/lib/index.es.js +0 -218
  133. package/dist/node_modules/hast-util-raw/lib/index.es.js.map +0 -1
  134. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +0 -2
  135. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +0 -1
  136. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +0 -146
  137. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +0 -1
  138. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +0 -2
  139. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +0 -1
  140. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +0 -21
  141. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +0 -1
  142. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +0 -2
  143. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +0 -1
  144. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +0 -113
  145. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +0 -1
  146. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +0 -2
  147. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +0 -1
  148. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +0 -9
  149. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +0 -1
  150. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +0 -2
  151. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +0 -1
  152. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +0 -45
  153. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +0 -1
  154. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +0 -2
  155. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +0 -1
  156. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +0 -26
  157. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +0 -1
  158. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +0 -2
  159. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +0 -1
  160. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +0 -99
  161. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +0 -1
  162. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +0 -2
  163. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +0 -1
  164. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +0 -8
  165. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +0 -1
  166. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +0 -2
  167. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +0 -1
  168. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +0 -211
  169. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +0 -1
  170. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +0 -2
  171. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +0 -1
  172. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +0 -251
  173. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +0 -1
  174. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +0 -2
  175. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +0 -1
  176. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +0 -15
  177. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +0 -1
  178. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +0 -2
  179. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +0 -1
  180. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +0 -74
  181. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +0 -1
  182. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +0 -2
  183. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +0 -1
  184. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +0 -85
  185. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +0 -1
  186. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +0 -2
  187. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +0 -1
  188. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +0 -2272
  189. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +0 -1
  190. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +0 -2
  191. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +0 -1
  192. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +0 -241
  193. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +0 -1
  194. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +0 -2
  195. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +0 -1
  196. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +0 -3
  197. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +0 -1
  198. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +0 -2
  199. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +0 -1
  200. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +0 -1941
  201. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +0 -1
  202. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +0 -2
  203. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +0 -1
  204. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +0 -89
  205. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +0 -1
  206. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +0 -2
  207. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +0 -1
  208. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +0 -163
  209. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +0 -1
  210. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +0 -2
  211. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +0 -1
  212. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +0 -13
  213. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +0 -1
  214. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +0 -2
  215. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  216. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +0 -62
  217. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +0 -1
  218. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +0 -2
  219. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +0 -1
  220. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +0 -34
  221. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +0 -1
  222. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +0 -2
  223. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +0 -1
  224. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +0 -369
  225. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +0 -1
  226. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +0 -2
  227. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  228. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +0 -7
  229. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +0 -1
  230. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +0 -2
  231. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  232. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +0 -567
  233. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +0 -1
  234. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  235. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  236. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  237. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  238. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  239. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  240. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  241. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  242. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +0 -2
  243. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  244. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +0 -20
  245. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +0 -1
  246. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  247. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  248. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  249. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  250. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +0 -2
  251. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  252. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +0 -29
  253. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +0 -1
  254. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  255. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  256. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +0 -11
  257. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  258. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  259. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  260. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +0 -22
  261. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  262. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +0 -2
  263. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  264. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +0 -15
  265. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +0 -1
  266. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +0 -2
  267. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  268. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +0 -20
  269. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +0 -1
  270. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +0 -2
  271. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  272. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +0 -12
  273. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +0 -1
  274. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  275. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  276. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +0 -12
  277. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  278. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +0 -3
  279. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +0 -1
  280. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +0 -43
  281. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +0 -1
  282. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +0 -2
  283. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +0 -1
  284. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +0 -119
  285. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +0 -1
  286. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js +0 -2
  287. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js.map +0 -1
  288. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js +0 -13
  289. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js.map +0 -1
  290. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js +0 -2
  291. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  292. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js +0 -62
  293. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js.map +0 -1
  294. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js +0 -2
  295. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js.map +0 -1
  296. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js +0 -34
  297. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js.map +0 -1
  298. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js +0 -2
  299. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js.map +0 -1
  300. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js +0 -369
  301. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js.map +0 -1
  302. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js +0 -2
  303. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  304. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js +0 -7
  305. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js.map +0 -1
  306. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js +0 -2
  307. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  308. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js +0 -567
  309. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js.map +0 -1
  310. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  311. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  312. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  313. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  314. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  315. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  316. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  317. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  318. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js +0 -2
  319. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  320. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js +0 -20
  321. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js.map +0 -1
  322. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  323. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  324. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  325. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  326. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js +0 -2
  327. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  328. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js +0 -29
  329. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js.map +0 -1
  330. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  331. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  332. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js +0 -11
  333. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  334. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  335. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  336. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js +0 -22
  337. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  338. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js +0 -2
  339. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  340. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js +0 -15
  341. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js.map +0 -1
  342. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js +0 -2
  343. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  344. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js +0 -20
  345. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js.map +0 -1
  346. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js +0 -2
  347. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  348. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js +0 -12
  349. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js.map +0 -1
  350. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  351. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  352. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js +0 -12
  353. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  354. package/dist/node_modules/rehype-raw/lib/index.cjs.js +0 -2
  355. package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +0 -1
  356. package/dist/node_modules/rehype-raw/lib/index.es.js +0 -13
  357. package/dist/node_modules/rehype-raw/lib/index.es.js.map +0 -1
  358. package/dist/node_modules/unist-util-is/lib/index.cjs.js +0 -2
  359. package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +0 -1
  360. package/dist/node_modules/unist-util-is/lib/index.es.js +0 -92
  361. package/dist/node_modules/unist-util-is/lib/index.es.js.map +0 -1
  362. package/dist/node_modules/unist-util-position/lib/index.cjs.js +0 -2
  363. package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +0 -1
  364. package/dist/node_modules/unist-util-position/lib/index.es.js +0 -18
  365. package/dist/node_modules/unist-util-position/lib/index.es.js.map +0 -1
  366. package/dist/node_modules/unist-util-visit/lib/index.cjs.js +0 -2
  367. package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +0 -1
  368. package/dist/node_modules/unist-util-visit/lib/index.es.js +0 -17
  369. package/dist/node_modules/unist-util-visit/lib/index.es.js.map +0 -1
  370. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +0 -2
  371. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +0 -1
  372. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +0 -7
  373. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +0 -1
  374. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +0 -2
  375. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +0 -1
  376. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +0 -57
  377. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectFoldersContext.cjs.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":"srKAkBA,MAAMA,EAAwBC,EAAAA,cAAsD,MAAS,EAWhFC,EAAuE,CAAC,CACnF,YAAAC,EACA,SAAAC,CACF,IAAmC,CAEjC,KAAM,CACJ,KAAM,CAAE,QAAAC,EAAU,CAAA,CAAC,EAAM,CAAA,EACzB,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,EACEC,EAAAA,sBAAsB,CAAE,YAAAT,EAAa,OAAQ,GAAM,EAGjDU,EAAmBC,EAAAA,8BAA8B,CAAE,YAAAX,CAAA,EAAeI,GAAcD,CAAS,EAGzFS,EAAYC,EAAAA,QAAQ,IAAM,CAC9B,MAAMC,MAAU,IAChB,UAAWC,KAAUb,EACnBY,EAAI,IAAIC,EAAO,GAAIA,CAAM,EAE3B,OAAOD,CACT,EAAG,CAACZ,CAAO,CAAC,EAGNc,EAAgBH,UAAQ,IAAOI,GAAeL,EAAU,IAAIK,CAAE,EAAG,CAACL,CAAS,CAAC,EAG5EM,EAAqBL,EAAAA,QACzB,IACGM,GAA+B,CAC9B,MAAMC,EAAsB,CAAA,EACtBC,MAAc,IACpB,IAAIC,EAAgCH,EAEpC,KAAOG,GAAa,CAACD,EAAQ,IAAIC,CAAS,GAAG,CAC3CD,EAAQ,IAAIC,CAAS,EACrB,MAAMC,EAAgBX,EAAU,IAAIU,CAAS,EAC7C,GAAI,CAACC,GAAe,SAAU,MAC9BH,EAAU,KAAKG,EAAc,QAAQ,EACrCD,EAAYC,EAAc,QAC5B,CAEA,OAAOH,CACT,EACF,CAACR,CAAS,CAAA,EAGNY,EAAQX,EAAAA,QACZ,KAAO,CACL,QAAAX,EACA,cAAAc,EACA,mBAAAE,EACA,UAAWR,EACX,WAAAN,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,GAEF,CACEN,EACAc,EACAE,EACAR,EACAN,EACAC,EACAC,EACAC,EACAC,CAAA,CACF,EAGF,OAAOiB,EAAAA,kBAAAA,IAAC5B,EAAsB,SAAtB,CAA+B,MAAA2B,EAAe,SAAAvB,CAAA,CAAS,CACjE,EAEayB,EAA2B,IAAM,CAC5C,MAAMC,EAAUC,EAAAA,WAAW/B,CAAqB,EAChD,GAAI8B,IAAY,OACd,MAAM,IAAI,MAAM,8EAA8E,EAEhG,OAAOA,CACT"}
1
+ {"version":3,"file":"ProjectFoldersContext.cjs.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n getChildFolderIds: (folderIds: string[], includeSelf?: boolean) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n // function to get all child folder IDs recursively for a given folder IDs\n const getChildFolderIds = useMemo(\n () =>\n (folderIds: string[], includeSelf = false): string[] => {\n const childIds: string[] = includeSelf ? [...folderIds] : []\n const queue: string[] = [...folderIds]\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n for (const folder of folders) {\n if (folder.parentId === currentId) {\n childIds.push(folder.id)\n queue.push(folder.id)\n }\n }\n }\n\n return childIds\n },\n [folders],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","getChildFolderIds","folderIds","includeSelf","childIds","queue","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":"srKAmBA,MAAMA,EAAwBC,EAAAA,cAAsD,MAAS,EAWhFC,EAAuE,CAAC,CACnF,YAAAC,EACA,SAAAC,CACF,IAAmC,CAEjC,KAAM,CACJ,KAAM,CAAE,QAAAC,EAAU,CAAA,CAAC,EAAM,CAAA,EACzB,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,EACEC,EAAAA,sBAAsB,CAAE,YAAAT,EAAa,OAAQ,GAAM,EAGjDU,EAAmBC,EAAAA,8BAA8B,CAAE,YAAAX,CAAA,EAAeI,GAAcD,CAAS,EAGzFS,EAAYC,EAAAA,QAAQ,IAAM,CAC9B,MAAMC,MAAU,IAChB,UAAWC,KAAUb,EACnBY,EAAI,IAAIC,EAAO,GAAIA,CAAM,EAE3B,OAAOD,CACT,EAAG,CAACZ,CAAO,CAAC,EAGNc,EAAgBH,UAAQ,IAAOI,GAAeL,EAAU,IAAIK,CAAE,EAAG,CAACL,CAAS,CAAC,EAG5EM,EAAqBL,EAAAA,QACzB,IACGM,GAA+B,CAC9B,MAAMC,EAAsB,CAAA,EACtBC,MAAc,IACpB,IAAIC,EAAgCH,EAEpC,KAAOG,GAAa,CAACD,EAAQ,IAAIC,CAAS,GAAG,CAC3CD,EAAQ,IAAIC,CAAS,EACrB,MAAMC,EAAgBX,EAAU,IAAIU,CAAS,EAC7C,GAAI,CAACC,GAAe,SAAU,MAC9BH,EAAU,KAAKG,EAAc,QAAQ,EACrCD,EAAYC,EAAc,QAC5B,CAEA,OAAOH,CACT,EACF,CAACR,CAAS,CAAA,EAINY,EAAoBX,EAAAA,QACxB,IACE,CAACY,EAAqBC,EAAc,KAAoB,CACtD,MAAMC,EAAqBD,EAAc,CAAC,GAAGD,CAAS,EAAI,CAAA,EACpDG,EAAkB,CAAC,GAAGH,CAAS,EAErC,KAAOG,EAAM,OAAS,GAAG,CACvB,MAAMN,EAAYM,EAAM,MAAA,EACxB,UAAWb,KAAUb,EACfa,EAAO,WAAaO,IACtBK,EAAS,KAAKZ,EAAO,EAAE,EACvBa,EAAM,KAAKb,EAAO,EAAE,EAG1B,CAEA,OAAOY,CACT,EACF,CAACzB,CAAO,CAAA,EAGJ2B,EAAQhB,EAAAA,QACZ,KAAO,CACL,QAAAX,EACA,cAAAc,EACA,mBAAAE,EACA,kBAAAM,EACA,UAAWd,EACX,WAAAN,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,GAEF,CACEN,EACAc,EACAE,EACAM,EACAd,EACAN,EACAC,EACAC,EACAC,EACAC,CAAA,CACF,EAGF,OAAOsB,EAAAA,kBAAAA,IAACjC,EAAsB,SAAtB,CAA+B,MAAAgC,EAAe,SAAA5B,CAAA,CAAS,CACjE,EAEa8B,EAA2B,IAAM,CAC5C,MAAMC,EAAUC,EAAAA,WAAWpC,CAAqB,EAChD,GAAImC,IAAY,OACd,MAAM,IAAI,MAAM,8EAA8E,EAEhG,OAAOA,CACT"}
@@ -1,5 +1,5 @@
1
- import { j } from "../../../_virtual/jsx-runtime.es.js";
2
- import { createContext as v, useMemo as e, useContext as I } from "react";
1
+ import { j as v } from "../../../_virtual/jsx-runtime.es.js";
2
+ import { createContext as w, useMemo as s, useContext as L } from "react";
3
3
  import "../api/base/client.es.js";
4
4
  import "../api/generated/graphql.es.js";
5
5
  import "../api/generated/graphqlLinks.es.js";
@@ -60,7 +60,7 @@ import "../api/queries/entityLists/updateLists.es.js";
60
60
  import "../api/queries/entityLists/getListsAttributes.es.js";
61
61
  import "../api/queries/entityLists/updateListsAttributes.es.js";
62
62
  import "../api/queries/entityLists/listFolders.es.js";
63
- import { useGetFolderListQuery as w } from "../api/queries/folders/getFolders.es.js";
63
+ import { useGetFolderListQuery as b } from "../api/queries/folders/getFolders.es.js";
64
64
  import "../api/queries/grouping/getGrouping.es.js";
65
65
  import "../api/queries/links/updateLinks.es.js";
66
66
  import "../api/queries/links/getLinks.es.js";
@@ -107,73 +107,86 @@ import "./ProjectContext.es.js";
107
107
  import "./UriContext.es.js";
108
108
  import "react-redux";
109
109
  import "custom-protocol-check";
110
- import { useQueryArgumentChangeLoading as L } from "../hooks/useQueryArgumentChangeLoading.es.js";
110
+ import { useQueryArgumentChangeLoading as y } from "../hooks/useQueryArgumentChangeLoading.es.js";
111
111
  import "../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
112
- const F = v(void 0), Er = ({
113
- projectName: r,
114
- children: P
112
+ const I = w(void 0), ko = ({
113
+ projectName: p,
114
+ children: C
115
115
  }) => {
116
116
  const {
117
- data: { folders: p = [] } = {},
118
- isLoading: h,
119
- isFetching: s,
120
- isSuccess: d,
121
- isUninitialized: c,
122
- error: a,
123
- refetch: u
124
- } = w({ projectName: r, attrib: !0 }), l = L({ projectName: r }, s || h), m = e(() => {
117
+ data: { folders: i = [] } = {},
118
+ isLoading: P,
119
+ isFetching: d,
120
+ isSuccess: u,
121
+ isUninitialized: a,
122
+ error: l,
123
+ refetch: f
124
+ } = b({ projectName: p, attrib: !0 }), h = y({ projectName: p }, d || P), n = s(() => {
125
125
  const t = /* @__PURE__ */ new Map();
126
- for (const o of p)
127
- t.set(o.id, o);
126
+ for (const r of i)
127
+ t.set(r.id, r);
128
128
  return t;
129
- }, [p]), f = e(() => (t) => m.get(t), [m]), x = e(
129
+ }, [i]), g = s(() => (t) => n.get(t), [n]), x = s(
130
130
  () => (t) => {
131
- const o = [], g = /* @__PURE__ */ new Set();
132
- let i = t;
133
- for (; i && !g.has(i); ) {
134
- g.add(i);
135
- const n = m.get(i);
136
- if (!n?.parentId) break;
137
- o.push(n.parentId), i = n.parentId;
131
+ const r = [], m = /* @__PURE__ */ new Set();
132
+ let o = t;
133
+ for (; o && !m.has(o); ) {
134
+ m.add(o);
135
+ const e = n.get(o);
136
+ if (!e?.parentId) break;
137
+ r.push(e.parentId), o = e.parentId;
138
138
  }
139
- return o;
139
+ return r;
140
140
  },
141
- [m]
142
- ), C = e(
141
+ [n]
142
+ ), F = s(
143
+ () => (t, r = !1) => {
144
+ const m = r ? [...t] : [], o = [...t];
145
+ for (; o.length > 0; ) {
146
+ const e = o.shift();
147
+ for (const c of i)
148
+ c.parentId === e && (m.push(c.id), o.push(c.id));
149
+ }
150
+ return m;
151
+ },
152
+ [i]
153
+ ), j = s(
143
154
  () => ({
144
- folders: p,
145
- getFolderById: f,
155
+ folders: i,
156
+ getFolderById: g,
146
157
  getParentFolderIds: x,
147
- isLoading: l,
158
+ getChildFolderIds: F,
159
+ isLoading: h,
148
160
  // first time and when args change
149
- isFetching: s,
161
+ isFetching: d,
150
162
  // any background fetching
151
- isSuccess: d,
152
- isUninitialized: c,
153
- error: a,
154
- refetch: u
163
+ isSuccess: u,
164
+ isUninitialized: a,
165
+ error: l,
166
+ refetch: f
155
167
  }),
156
168
  [
157
- p,
158
- f,
169
+ i,
170
+ g,
159
171
  x,
160
- l,
161
- s,
172
+ F,
173
+ h,
162
174
  d,
163
- c,
175
+ u,
164
176
  a,
165
- u
177
+ l,
178
+ f
166
179
  ]
167
180
  );
168
- return /* @__PURE__ */ j.jsx(F.Provider, { value: C, children: P });
169
- }, Qr = () => {
170
- const r = I(F);
171
- if (r === void 0)
181
+ return /* @__PURE__ */ v.jsx(I.Provider, { value: j, children: C });
182
+ }, qo = () => {
183
+ const p = L(I);
184
+ if (p === void 0)
172
185
  throw new Error("useProjectFoldersContext must be used within a ProjectFoldersContextProvider");
173
- return r;
186
+ return p;
174
187
  };
175
188
  export {
176
- Er as ProjectFoldersContextProvider,
177
- Qr as useProjectFoldersContext
189
+ ko as ProjectFoldersContextProvider,
190
+ qo as useProjectFoldersContext
178
191
  };
179
192
  //# sourceMappingURL=ProjectFoldersContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectFoldersContext.es.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAMA,IAAwBC,EAAsD,MAAS,GAWhFC,KAAuE,CAAC;AAAA,EACnF,aAAAC;AAAA,EACA,UAAAC;AACF,MAAmC;AAEjC,QAAM;AAAA,IACJ,MAAM,EAAE,SAAAC,IAAU,CAAA,EAAC,IAAM,CAAA;AAAA,IACzB,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEC,EAAsB,EAAE,aAAAT,GAAa,QAAQ,IAAM,GAGjDU,IAAmBC,EAA8B,EAAE,aAAAX,EAAA,GAAeI,KAAcD,CAAS,GAGzFS,IAAYC,EAAQ,MAAM;AAC9B,UAAMC,wBAAU,IAAA;AAChB,eAAWC,KAAUb;AACnB,MAAAY,EAAI,IAAIC,EAAO,IAAIA,CAAM;AAE3B,WAAOD;AAAA,EACT,GAAG,CAACZ,CAAO,CAAC,GAGNc,IAAgBH,EAAQ,MAAM,CAACI,MAAeL,EAAU,IAAIK,CAAE,GAAG,CAACL,CAAS,CAAC,GAG5EM,IAAqBL;AAAA,IACzB,MACE,CAACM,MAA+B;AAC9B,YAAMC,IAAsB,CAAA,GACtBC,wBAAc,IAAA;AACpB,UAAIC,IAAgCH;AAEpC,aAAOG,KAAa,CAACD,EAAQ,IAAIC,CAAS,KAAG;AAC3C,QAAAD,EAAQ,IAAIC,CAAS;AACrB,cAAMC,IAAgBX,EAAU,IAAIU,CAAS;AAC7C,YAAI,CAACC,GAAe,SAAU;AAC9B,QAAAH,EAAU,KAAKG,EAAc,QAAQ,GACrCD,IAAYC,EAAc;AAAA,MAC5B;AAEA,aAAOH;AAAA,IACT;AAAA,IACF,CAACR,CAAS;AAAA,EAAA,GAGNY,IAAQX;AAAA,IACZ,OAAO;AAAA,MACL,SAAAX;AAAA,MACA,eAAAc;AAAA,MACA,oBAAAE;AAAA,MACA,WAAWR;AAAA;AAAA,MACX,YAAAN;AAAA;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,IAEF;AAAA,MACEN;AAAA,MACAc;AAAA,MACAE;AAAA,MACAR;AAAA,MACAN;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EACF;AAGF,SAAOiB,gBAAAA,EAAAA,IAAC5B,EAAsB,UAAtB,EAA+B,OAAA2B,GAAe,UAAAvB,EAAA,CAAS;AACjE,GAEayB,KAA2B,MAAM;AAC5C,QAAMC,IAAUC,EAAW/B,CAAqB;AAChD,MAAI8B,MAAY;AACd,UAAM,IAAI,MAAM,8EAA8E;AAEhG,SAAOA;AACT;"}
1
+ {"version":3,"file":"ProjectFoldersContext.es.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n getChildFolderIds: (folderIds: string[], includeSelf?: boolean) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n // function to get all child folder IDs recursively for a given folder IDs\n const getChildFolderIds = useMemo(\n () =>\n (folderIds: string[], includeSelf = false): string[] => {\n const childIds: string[] = includeSelf ? [...folderIds] : []\n const queue: string[] = [...folderIds]\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n for (const folder of folders) {\n if (folder.parentId === currentId) {\n childIds.push(folder.id)\n queue.push(folder.id)\n }\n }\n }\n\n return childIds\n },\n [folders],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","getChildFolderIds","folderIds","includeSelf","childIds","queue","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,IAAwBC,EAAsD,MAAS,GAWhFC,KAAuE,CAAC;AAAA,EACnF,aAAAC;AAAA,EACA,UAAAC;AACF,MAAmC;AAEjC,QAAM;AAAA,IACJ,MAAM,EAAE,SAAAC,IAAU,CAAA,EAAC,IAAM,CAAA;AAAA,IACzB,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEC,EAAsB,EAAE,aAAAT,GAAa,QAAQ,IAAM,GAGjDU,IAAmBC,EAA8B,EAAE,aAAAX,EAAA,GAAeI,KAAcD,CAAS,GAGzFS,IAAYC,EAAQ,MAAM;AAC9B,UAAMC,wBAAU,IAAA;AAChB,eAAWC,KAAUb;AACnB,MAAAY,EAAI,IAAIC,EAAO,IAAIA,CAAM;AAE3B,WAAOD;AAAA,EACT,GAAG,CAACZ,CAAO,CAAC,GAGNc,IAAgBH,EAAQ,MAAM,CAACI,MAAeL,EAAU,IAAIK,CAAE,GAAG,CAACL,CAAS,CAAC,GAG5EM,IAAqBL;AAAA,IACzB,MACE,CAACM,MAA+B;AAC9B,YAAMC,IAAsB,CAAA,GACtBC,wBAAc,IAAA;AACpB,UAAIC,IAAgCH;AAEpC,aAAOG,KAAa,CAACD,EAAQ,IAAIC,CAAS,KAAG;AAC3C,QAAAD,EAAQ,IAAIC,CAAS;AACrB,cAAMC,IAAgBX,EAAU,IAAIU,CAAS;AAC7C,YAAI,CAACC,GAAe,SAAU;AAC9B,QAAAH,EAAU,KAAKG,EAAc,QAAQ,GACrCD,IAAYC,EAAc;AAAA,MAC5B;AAEA,aAAOH;AAAA,IACT;AAAA,IACF,CAACR,CAAS;AAAA,EAAA,GAINY,IAAoBX;AAAA,IACxB,MACE,CAACY,GAAqBC,IAAc,OAAoB;AACtD,YAAMC,IAAqBD,IAAc,CAAC,GAAGD,CAAS,IAAI,CAAA,GACpDG,IAAkB,CAAC,GAAGH,CAAS;AAErC,aAAOG,EAAM,SAAS,KAAG;AACvB,cAAMN,IAAYM,EAAM,MAAA;AACxB,mBAAWb,KAAUb;AACnB,UAAIa,EAAO,aAAaO,MACtBK,EAAS,KAAKZ,EAAO,EAAE,GACvBa,EAAM,KAAKb,EAAO,EAAE;AAAA,MAG1B;AAEA,aAAOY;AAAA,IACT;AAAA,IACF,CAACzB,CAAO;AAAA,EAAA,GAGJ2B,IAAQhB;AAAA,IACZ,OAAO;AAAA,MACL,SAAAX;AAAA,MACA,eAAAc;AAAA,MACA,oBAAAE;AAAA,MACA,mBAAAM;AAAA,MACA,WAAWd;AAAA;AAAA,MACX,YAAAN;AAAA;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,IAEF;AAAA,MACEN;AAAA,MACAc;AAAA,MACAE;AAAA,MACAM;AAAA,MACAd;AAAA,MACAN;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EACF;AAGF,SAAOsB,gBAAAA,EAAAA,IAACjC,EAAsB,UAAtB,EAA+B,OAAAgC,GAAe,UAAA5B,EAAA,CAAS;AACjE,GAEa8B,KAA2B,MAAM;AAC5C,QAAMC,IAAUC,EAAWpC,CAAqB;AAChD,MAAImC,MAAY;AACd,UAAM,IAAI,MAAM,8EAA8E;AAEhG,SAAOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("../../../_virtual/runtime.cjs.js"),c=require("react"),b=require("../../../_virtual/semver.cjs.js"),q=(i,m,l)=>{const g=c.useRef(new Set),[L,y]=c.useState(()=>R(i)),[E,f]=c.useState(m.length>0&&!l);c.useEffect(()=>{l||(g.current=new Set,y(R(i)))},[JSON.stringify(i),l]);const M=async(t,r,s,o,n)=>{try{const e=await O.runtimeExports.loadRemote(`${t}/${r}`,{from:"runtime"});v(s,t,r,e?.default||o,n)}catch(e){throw console.error("Error loading remote module",t,r,e),e}};c.useEffect(()=>{if(l){f(!1);return}console.log("loading modules");const t=[];if(i.forEach((r,s)=>{const{addon:o,remote:n,module:e,fallback:a,minVersion:u}=r;if(!o||!n||!e)return;const d=`${o}/${n}/${e}`;if(g.current.has(d))return;if(L[s]?.[1]?.isLoaded){g.current.add(d);return}g.current.add(d);const h=m.find(w=>w.addonName===o);if(!h){console.log("Addon not found",{addon:o,remote:n,module:e});return}if(u&&!b.gte(h.addonVersion,u)){$(s,o,n,e,a,u,h.addonVersion);return}if(!h.modules[n]){console.log("Module not found",{addon:o,remote:n,module:e});return}t.push(M(n,e,o,a,u))}),!t.length){f(!1);return}f(!0),Promise.all(t).then(()=>{f(!1)}).catch(r=>{console.error("Error loading modules",r),f(!1)})},[l,m,JSON.stringify(i),L]);function R(t){return t.map(({addon:r="",remote:s="",module:o="",fallback:n,minVersion:e})=>[n,{isLoaded:!1,addon:r,remote:s,module:o,minVersion:e,outdated:void 0}])}function $(t,r,s,o,n,e,a){y(u=>{const d=[...u];return t>=0&&t<d.length&&(d[t]=[n,{isLoaded:!1,addon:r,remote:s,module:o,minVersion:e,outdated:{current:a,required:e}}]),d})}function v(t,r,s,o,n){y(e=>{const a=[...e],u=i.findIndex(d=>d.addon===t&&d.remote===r&&d.module===s);return u>=0&&u<a.length&&(a[u]=[o,{isLoaded:!0,addon:t,remote:r,module:s,minVersion:n,outdated:void 0}]),a})}return{modules:L,isLoading:E}};exports.useLoadModules=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("../../../_virtual/runtime.cjs.js"),g=require("react"),O=require("../../../_virtual/semver.cjs.js"),S=(l,y,c)=>{const i=g.useRef(new Set),[h,M]=g.useState(()=>R(l)),[v,f]=g.useState(y.length>0&&!c);g.useEffect(()=>{c||(console.log("resetting processedModules"),i.current=new Set,M(R(l)))},[JSON.stringify(l),c]);const w=async(r,n,o,u,t)=>{try{const e=await I.runtimeExports.loadRemote(`${r}/${n}`,{from:"runtime"});$(o,r,n,e?.default||u,t)}catch(e){throw console.error("Error loading remote module",r,n,e),e}};g.useEffect(()=>{if(c){f(!1);return}h.every(o=>!o[1].isLoaded)&&i.current.size>0&&(console.log("resetting processedModules - results were reset"),i.current=new Set),console.log("loading modules");const n=[];if(l.forEach((o,u)=>{const{addon:t,remote:e,module:s,fallback:a,minVersion:d}=o;if(!t||!e||!s){console.log("Invalid module spec",o);return}const m=`${t}/${e}/${s}`;if(i.current.has(m)){console.log("skipping already processed module",m);return}if(h[u]?.[1]?.isLoaded){i.current.add(m);return}i.current.add(m);const L=y.find(p=>p.addonName===t);if(!L){console.log("Addon not found",{addon:t,remote:e,module:s});return}if(d&&!O.gte(L.addonVersion,d)){E(u,t,e,s,a,d,L.addonVersion);return}if(!L.modules[e]){console.log("Module not found",{addon:t,remote:e,module:s});return}n.push(w(e,s,t,a,d))}),!n.length){f(!1);return}f(!0),Promise.all(n).then(()=>{f(!1)}).catch(o=>{console.error("Error loading modules",o),f(!1)})},[c,y,JSON.stringify(l),h]);function R(r){return r.map(({addon:n="",remote:o="",module:u="",fallback:t,minVersion:e})=>[t,{isLoaded:!1,addon:n,remote:o,module:u,minVersion:e,outdated:void 0}])}function E(r,n,o,u,t,e,s){M(a=>{const d=[...a];return r>=0&&r<d.length&&(d[r]=[t,{isLoaded:!1,addon:n,remote:o,module:u,minVersion:e,outdated:{current:s,required:e}}]),d})}function $(r,n,o,u,t){M(e=>{const s=[...e],a=l.findIndex(d=>d.addon===r&&d.remote===n&&d.module===o);return a>=0&&a<s.length&&(s[a]=[u,{isLoaded:!0,addon:r,remote:n,module:o,minVersion:t,outdated:void 0}]),s})}return{modules:h,isLoading:v}};exports.useLoadModules=S;
2
2
  //# sourceMappingURL=useLoadModules.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
1
+ {"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n console.log('resetting processedModules')\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n // If all results are unloaded, reset processedModules to ensure we attempt loading\n // This handles the case where the component remounts with the same moduleSpecs\n const allUnloaded = results.every((result) => !result[1].isLoaded)\n if (allUnloaded && processedModules.current.size > 0) {\n console.log('resetting processedModules - results were reset')\n processedModules.current = new Set()\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) {\n console.log('Invalid module spec', spec)\n return\n }\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) {\n console.log('skipping already processed module', moduleKey)\n return\n }\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
@@ -1,127 +1,133 @@
1
1
  import { r as N } from "../../../_virtual/runtime.es.js";
2
- import { useRef as O, useState as y, useEffect as E } from "react";
2
+ import { useRef as O, useState as w, useEffect as M } from "react";
3
3
  import V from "../../../_virtual/semver.es.js";
4
- const b = (i, m, f) => {
5
- const c = O(/* @__PURE__ */ new Set()), [h, L] = y(
6
- () => R(i)
7
- ), [$, l] = y(m.length > 0 && !f);
8
- E(() => {
9
- f || (c.current = /* @__PURE__ */ new Set(), L(R(i)));
10
- }, [JSON.stringify(i), f]);
11
- const w = async (e, n, d, o, r) => {
4
+ const W = (u, L, c) => {
5
+ const i = O(/* @__PURE__ */ new Set()), [g, p] = w(
6
+ () => y(u)
7
+ ), [R, f] = w(L.length > 0 && !c);
8
+ M(() => {
9
+ c || (console.log("resetting processedModules"), i.current = /* @__PURE__ */ new Set(), p(y(u)));
10
+ }, [JSON.stringify(u), c]);
11
+ const v = async (n, r, o, a, t) => {
12
12
  try {
13
- const t = await N.loadRemote(`${e}/${n}`, {
13
+ const e = await N.loadRemote(`${n}/${r}`, {
14
14
  from: "runtime"
15
15
  });
16
- v(d, e, n, t?.default || o, r);
17
- } catch (t) {
18
- throw console.error("Error loading remote module", e, n, t), t;
16
+ $(o, n, r, e?.default || a, t);
17
+ } catch (e) {
18
+ throw console.error("Error loading remote module", n, r, e), e;
19
19
  }
20
20
  };
21
- E(() => {
22
- if (f) {
23
- l(!1);
21
+ M(() => {
22
+ if (c) {
23
+ f(!1);
24
24
  return;
25
25
  }
26
- console.log("loading modules");
27
- const e = [];
28
- if (i.forEach((n, d) => {
29
- const { addon: o, remote: r, module: t, fallback: u, minVersion: a } = n;
30
- if (!o || !r || !t) return;
31
- const s = `${o}/${r}/${t}`;
32
- if (c.current.has(s)) return;
33
- if (h[d]?.[1]?.isLoaded) {
34
- c.current.add(s);
26
+ g.every((o) => !o[1].isLoaded) && i.current.size > 0 && (console.log("resetting processedModules - results were reset"), i.current = /* @__PURE__ */ new Set()), console.log("loading modules");
27
+ const r = [];
28
+ if (u.forEach((o, a) => {
29
+ const { addon: t, remote: e, module: s, fallback: l, minVersion: d } = o;
30
+ if (!t || !e || !s) {
31
+ console.log("Invalid module spec", o);
35
32
  return;
36
33
  }
37
- c.current.add(s);
38
- const g = m.find((I) => I.addonName === o);
39
- if (!g) {
40
- console.log("Addon not found", { addon: o, remote: r, module: t });
34
+ const m = `${t}/${e}/${s}`;
35
+ if (i.current.has(m)) {
36
+ console.log("skipping already processed module", m);
41
37
  return;
42
38
  }
43
- if (a && !V.gte(g.addonVersion, a)) {
44
- M(
45
- d,
46
- o,
47
- r,
48
- t,
49
- u,
39
+ if (g[a]?.[1]?.isLoaded) {
40
+ i.current.add(m);
41
+ return;
42
+ }
43
+ i.current.add(m);
44
+ const h = L.find((I) => I.addonName === t);
45
+ if (!h) {
46
+ console.log("Addon not found", { addon: t, remote: e, module: s });
47
+ return;
48
+ }
49
+ if (d && !V.gte(h.addonVersion, d)) {
50
+ E(
50
51
  a,
51
- g.addonVersion
52
+ t,
53
+ e,
54
+ s,
55
+ l,
56
+ d,
57
+ h.addonVersion
52
58
  );
53
59
  return;
54
60
  }
55
- if (!g.modules[r]) {
56
- console.log("Module not found", { addon: o, remote: r, module: t });
61
+ if (!h.modules[e]) {
62
+ console.log("Module not found", { addon: t, remote: e, module: s });
57
63
  return;
58
64
  }
59
- e.push(w(r, t, o, u, a));
60
- }), !e.length) {
61
- l(!1);
65
+ r.push(v(e, s, t, l, d));
66
+ }), !r.length) {
67
+ f(!1);
62
68
  return;
63
69
  }
64
- l(!0), Promise.all(e).then(() => {
65
- l(!1);
66
- }).catch((n) => {
67
- console.error("Error loading modules", n), l(!1);
70
+ f(!0), Promise.all(r).then(() => {
71
+ f(!1);
72
+ }).catch((o) => {
73
+ console.error("Error loading modules", o), f(!1);
68
74
  });
69
- }, [f, m, JSON.stringify(i), h]);
70
- function R(e) {
71
- return e.map(
72
- ({ addon: n = "", remote: d = "", module: o = "", fallback: r, minVersion: t }) => [
73
- r,
75
+ }, [c, L, JSON.stringify(u), g]);
76
+ function y(n) {
77
+ return n.map(
78
+ ({ addon: r = "", remote: o = "", module: a = "", fallback: t, minVersion: e }) => [
79
+ t,
74
80
  {
75
81
  isLoaded: !1,
76
- addon: n,
77
- remote: d,
78
- module: o,
79
- minVersion: t,
82
+ addon: r,
83
+ remote: o,
84
+ module: a,
85
+ minVersion: e,
80
86
  outdated: void 0
81
87
  }
82
88
  ]
83
89
  );
84
90
  }
85
- function M(e, n, d, o, r, t, u) {
86
- L((a) => {
87
- const s = [...a];
88
- return e >= 0 && e < s.length && (s[e] = [
89
- r,
91
+ function E(n, r, o, a, t, e, s) {
92
+ p((l) => {
93
+ const d = [...l];
94
+ return n >= 0 && n < d.length && (d[n] = [
95
+ t,
90
96
  {
91
97
  isLoaded: !1,
92
- addon: n,
93
- remote: d,
94
- module: o,
95
- minVersion: t,
98
+ addon: r,
99
+ remote: o,
100
+ module: a,
101
+ minVersion: e,
96
102
  outdated: {
97
- current: u,
98
- required: t
103
+ current: s,
104
+ required: e
99
105
  }
100
106
  }
101
- ]), s;
107
+ ]), d;
102
108
  });
103
109
  }
104
- function v(e, n, d, o, r) {
105
- L((t) => {
106
- const u = [...t], a = i.findIndex(
107
- (s) => s.addon === e && s.remote === n && s.module === d
110
+ function $(n, r, o, a, t) {
111
+ p((e) => {
112
+ const s = [...e], l = u.findIndex(
113
+ (d) => d.addon === n && d.remote === r && d.module === o
108
114
  );
109
- return a >= 0 && a < u.length && (u[a] = [
110
- o,
115
+ return l >= 0 && l < s.length && (s[l] = [
116
+ a,
111
117
  {
112
118
  isLoaded: !0,
113
- addon: e,
114
- remote: n,
115
- module: d,
116
- minVersion: r,
119
+ addon: n,
120
+ remote: r,
121
+ module: o,
122
+ minVersion: t,
117
123
  outdated: void 0
118
124
  }
119
- ]), u;
125
+ ]), s;
120
126
  });
121
127
  }
122
- return { modules: h, isLoading: $ };
128
+ return { modules: g, isLoading: R };
123
129
  };
124
130
  export {
125
- b as useLoadModules
131
+ W as useLoadModules
126
132
  };
127
133
  //# sourceMappingURL=useLoadModules.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
1
+ {"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n console.log('resetting processedModules')\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n // If all results are unloaded, reset processedModules to ensure we attempt loading\n // This handles the case where the component remounts with the same moduleSpecs\n const allUnloaded = results.every((result) => !result[1].isLoaded)\n if (allUnloaded && processedModules.current.size > 0) {\n console.log('resetting processedModules - results were reset')\n processedModules.current = new Set()\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) {\n console.log('Invalid module spec', spec)\n return\n }\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) {\n console.log('skipping already processed module', moduleKey)\n return\n }\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
@@ -673,6 +673,7 @@ export type ProjectNode = {
673
673
  productTypes: Array<ProductType>;
674
674
  /** Return a list of products. */
675
675
  products: ProductsConnection;
676
+ projectFolder?: Maybe<Scalars['String']['output']>;
676
677
  projectName: Scalars['String']['output'];
677
678
  /** Return a representation node based on its ID */
678
679
  representation?: Maybe<RepresentationNode>;
@@ -3203,7 +3204,7 @@ export declare const VpFolderFragmentDoc = "\n fragment VPFolder on FolderNod
3203
3204
  export declare const VersionExtendedFragmentDoc = "\n fragment VersionExtended on VersionNode {\n ...VersionBase\n task {\n id\n taskType\n }\n product {\n id\n name\n productType\n allAttrib\n folder {\n id\n ...VPFolder\n }\n }\n}\n \n fragment VersionBase on VersionNode {\n name\n id\n hasReviewables\n parents\n path\n active\n allAttrib\n author\n createdAt\n status\n tags\n updatedAt\n version\n featuredVersionType\n heroVersionId\n}\n \n\n fragment VPFolder on FolderNode {\n id\n name\n label\n allAttrib\n}\n ";
3204
3205
  export declare const MessageFragmentFragmentDoc = "\n fragment MessageFragment on ActivityNode {\n projectName\n activityId\n activityType\n activityData\n referenceType\n referenceId\n body\n createdAt\n updatedAt\n active\n read\n author {\n name\n attrib {\n fullName\n }\n }\n origin {\n id\n name\n label\n type\n subtype\n }\n parents {\n type\n name\n label\n }\n}\n ";
3205
3206
  export declare const ProgressTaskFragmentFragmentDoc = "\n fragment ProgressTaskFragment on TaskNode {\n projectName\n id\n name\n label\n taskType\n status\n assignees\n updatedAt\n active\n hasReviewables\n tags\n attrib {\n priority\n endDate\n resolutionHeight\n resolutionWidth\n fps\n }\n folder {\n id\n name\n label\n folderType\n parents\n status\n updatedAt\n parent {\n id\n name\n label\n parents\n }\n }\n}\n ";
3206
- export declare const GetActivitiesByIdDocument = "\n query GetActivitiesById($projectName: String!, $entityIds: [String!]!, $activityIds: [String!]) {\n project(name: $projectName) {\n name\n activities(entityIds: $entityIds, activityIds: $activityIds) {\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n ...ActivityFragment\n }\n }\n }\n }\n}\n \n fragment ActivityFragment on ActivityNode {\n activityId\n activityType\n activityData\n referenceType\n referenceId\n entityId\n body\n createdAt\n updatedAt\n author {\n name\n deleted\n active\n attrib {\n fullName\n }\n }\n files {\n id\n name\n size\n mime\n }\n origin {\n id\n name\n label\n type\n }\n reactions {\n fullName\n userName\n reaction\n timestamp\n }\n version {\n attrib {\n comment\n }\n }\n}\n ";
3207
+ export declare const GetActivitiesByIdDocument = "\n query GetActivitiesById($projectName: String!, $entityIds: [String!]!, $activityIds: [String!]) {\n project(name: $projectName) {\n name\n activities(\n entityIds: $entityIds\n activityIds: $activityIds\n referenceTypes: [\"origin\"]\n ) {\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n ...ActivityFragment\n }\n }\n }\n }\n}\n \n fragment ActivityFragment on ActivityNode {\n activityId\n activityType\n activityData\n referenceType\n referenceId\n entityId\n body\n createdAt\n updatedAt\n author {\n name\n deleted\n active\n attrib {\n fullName\n }\n }\n files {\n id\n name\n size\n mime\n }\n origin {\n id\n name\n label\n type\n }\n reactions {\n fullName\n userName\n reaction\n timestamp\n }\n version {\n attrib {\n comment\n }\n }\n}\n ";
3207
3208
  export declare const GetActivityUsersDocument = "\n query GetActivityUsers($projects: [String!]) {\n users(last: 2000, projects: $projects) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n }\n}\n ";
3208
3209
  export declare const GetActivitiesDocument = "\n query GetActivities($projectName: String!, $entityIds: [String!]!, $after: String, $first: Int, $before: String, $last: Int, $referenceTypes: [String!], $activityTypes: [String!]) {\n project(name: $projectName) {\n name\n activities(\n entityIds: $entityIds\n after: $after\n first: $first\n before: $before\n last: $last\n referenceTypes: $referenceTypes\n activityTypes: $activityTypes\n ) {\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n ...ActivityFragment\n }\n }\n }\n }\n}\n \n fragment ActivityFragment on ActivityNode {\n activityId\n activityType\n activityData\n referenceType\n referenceId\n entityId\n body\n createdAt\n updatedAt\n author {\n name\n deleted\n active\n attrib {\n fullName\n }\n }\n files {\n id\n name\n size\n mime\n }\n origin {\n id\n name\n label\n type\n }\n reactions {\n fullName\n userName\n reaction\n timestamp\n }\n version {\n attrib {\n comment\n }\n }\n}\n ";
3209
3210
  export declare const GetEntitiesChecklistsDocument = "\n query GetEntitiesChecklists($projectName: String!, $entityIds: [String!]!) {\n project(name: $projectName) {\n name\n activities(\n entityIds: $entityIds\n last: 1000\n activityTypes: [\"checklist\"]\n referenceTypes: [\"origin\"]\n ) {\n edges {\n cursor\n node {\n activityId\n body\n }\n }\n }\n }\n}\n ";
@@ -673,6 +673,7 @@ export type ProjectNode = {
673
673
  productTypes: Array<ProductType>;
674
674
  /** Return a list of products. */
675
675
  products: ProductsConnection;
676
+ projectFolder?: Maybe<Scalars['String']['output']>;
676
677
  projectName: Scalars['String']['output'];
677
678
  /** Return a representation node based on its ID */
678
679
  representation?: Maybe<RepresentationNode>;
@@ -30,6 +30,7 @@ export type GetGroupedTasksListArgs = {
30
30
  folderIds?: string[];
31
31
  desc?: boolean;
32
32
  sortBy?: string;
33
+ groupCount?: number;
33
34
  };
34
35
  type TasksListPageParam = {
35
36
  cursor: string;
@@ -10,6 +10,7 @@ export type RouterTypes = {
10
10
  };
11
11
  interface ViewsWithReportsSettings extends ViewsContextValue {
12
12
  viewSettings: GenericViewModel['settings'] | undefined;
13
+ settings: GenericViewModel['settings'] | undefined;
13
14
  updateViewSettings: UpdateViewSettingsFn;
14
15
  }
15
16
  export interface RemotePageProps {
@@ -19,6 +19,7 @@ type FilterConfig = {
19
19
  enableRelativeValues?: boolean;
20
20
  prefixes?: Partial<Record<FilterFieldType, string>>;
21
21
  keys?: Partial<Record<FilterFieldType, string>>;
22
+ fallbackScope?: ScopeType;
22
23
  };
23
24
  export type BuildFilterOptions = {
24
25
  filterTypes?: FilterFieldType[];