@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,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const G=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const A=require("../../../util/pubsub.cjs.js"),_=u=>{try{return JSON.parse(u)}catch{return{}}},w=u=>{if(!u.project)return[];const s=[];for(const{node:e}of u.project.tasks.edges)s.push({...e,folderId:e.folderId||"root",attrib:_(e.allAttrib),entityId:e.id,entityType:"task",links:[]});return s},b=(u=[],s,e)=>{const t=u?.map(o=>({type:"overviewTask",id:o.id}))||[],a=e?(Array.isArray(e)?e:[e]).map(o=>({type:"overviewTask",id:o})):[];return[...t,...a,{type:"overviewTask",id:s},{type:"overviewTask",id:"LIST"}]},P=G.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:w,providesTags:(u,s,{parentIds:e,projectName:t})=>b(u,t,e)},GetTasksList:{transformResponse:u=>({tasks:w(u),pageInfo:u.project.tasks.pageInfo}),providesTags:(u,s,{projectName:e})=>b(u?.tasks||[],e)}}}),L=F.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),E=100,N=P.injectEndpoints({endpoints:u=>({getOverviewTasksByFolders:u.query({async queryFn({projectName:s,parentIds:e,filter:t,folderFilter:a,search:o},{dispatch:k,forced:y}){try{const c=[];for(let d=0;d<e.length;d+=20){const h=e.slice(d,d+20),i=(await Promise.all(h.map(async n=>k(P.endpoints.GetTasksByParent.initiate({projectName:s,parentIds:[n],filter:t,folderFilter:a,search:o},{forceRefetch:y}))))).filter(n=>!!n.data).flatMap(n=>n.data);c.push(...i)}return{data:c}}catch(T){return console.error(T),{error:{status:"FETCH_ERROR",error:T.message}}}},serializeQueryArgs:({queryArgs:{parentIds:s,...e}})=>({...e}),forceRefetch({currentArg:s,previousArg:e}){return JSON.stringify(s)!==JSON.stringify(e)},providesTags:(s,e,{parentIds:t,projectName:a})=>b(s,a,t),async onCacheEntryAdded({projectName:s,parentIds:e,filter:t,search:a},{cacheDataLoaded:o,cacheEntryRemoved:k,updateCachedData:y,dispatch:T}){let c;const d=new Set,h=100,r=500;let i=!1;const n=()=>{i||(i=!0,setTimeout(I,r))},I=async()=>{if(i=!1,!d.size)return;const g=Array.from(d).slice(0,h);g.forEach(f=>d.delete(f));try{const p=(await T(P.endpoints.GetTasksList.initiate({projectName:s,taskIds:g},{forceRefetch:!0})).unwrap()).tasks||[],m=new Map(p.map(l=>[l.id,l]));y(l=>{for(const q of p){const v=l.findIndex(R=>R.id===q.id);v>-1?l[v]=q:l.push(q)}for(const q of g)if(!m.has(q)){const v=l.findIndex(R=>R.id===q);v>-1&&l.splice(v,1)}})}catch(f){console.error("Realtime overview batch update failed",f)}finally{d.size&&n()}};try{await o;const g=async(f,p)=>{const m=p?.summary?.entityId,l=p?.summary?.parentId;!m||!l||e.includes(l)&&(d.add(m),n())};c=A.subscribe("entity.task",g)}catch{}await k,c&&A.unsubscribe(c)}}),getSearchFolders:u.query({async queryFn({projectName:s,folderSearchRequest:e},{dispatch:t}){try{return{data:(await t(L.endpoints.searchFolders.initiate({projectName:s,folderSearchRequest:e}))).data?.folderIds||[]}}catch(a){return console.error(a),{error:{status:"FETCH_ERROR",error:a.message}}}}}),getTasksListInfinite:u.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(s,e,t,a)=>{const o=s.pageInfo;if(!(!(t.desc?o.hasPreviousPage:o.hasNextPage)||!o.endCursor))return{cursor:o.endCursor,desc:t.desc}}},queryFn:async({queryArg:s,pageParam:e},t)=>{try{const{projectName:a,filter:o,folderFilter:k,search:y,folderIds:T,sortBy:c,desc:d}=s,{cursor:h}=e,r={projectName:a,filter:o,folderFilter:k,search:y,folderIds:T};c?(r.sortBy=c,d?(r.before=h||void 0,r.last=E):(r.after=h||void 0,r.first=E)):(r.after=h||void 0,r.first=E);const i=await t.dispatch(P.endpoints.GetTasksList.initiate(r,{forceRefetch:!0}));if(i.error)throw i.error;const n={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:i.data||n}}catch(a){return console.error("Error in getTasksListInfinite queryFn:",a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(s,e,{projectName:t})=>b(s?.pages.flatMap(a=>a.tasks)||[],t),async onCacheEntryAdded(s,{cacheDataLoaded:e,cacheEntryRemoved:t,updateCachedData:a,dispatch:o}){let k;const y=new Set,T=100,c=500;let d=!1;const h=()=>{d||(d=!0,setTimeout(r,c))},r=async()=>{if(d=!1,!y.size)return;const i=Array.from(y).slice(0,T);i.forEach(n=>y.delete(n));try{const I=(await o(P.endpoints.GetTasksList.initiate({projectName:s.projectName,taskIds:i,folderIds:s.folderIds},{forceRefetch:!0})).unwrap()).tasks||[],g=new Map(I.map(f=>[f.id,f]));a(f=>{for(const p of I){let m=!1;for(const l of f.pages){const q=l.tasks.findIndex(v=>v.id===p.id);if(q!==-1){l.tasks[q]=p,m=!0;break}}m||(f.pages.length?f.pages[0].tasks.unshift(p):f.pages.push({tasks:[p],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const p of i)if(!g.has(p))for(const m of f.pages){const l=m.tasks.findIndex(q=>q.id===p);if(l!==-1){m.tasks.splice(l,1);break}}})}catch(n){console.error("Realtime infinite tasks batch update failed",n)}finally{y.size&&h()}};try{await e;const i=async(n,I)=>{const g=I?.summary?.entityId;g&&(y.add(g),h())};k=A.subscribe("entity.task",i)}catch{}await t,k&&A.unsubscribe(k)}}),getGroupedTasksList:u.query({queryFn:async({projectName:s,groups:e,search:t,folderFilter:a,folderIds:o,desc:k,sortBy:y},T)=>{try{let c=[];for(const r of e){const i=r.count||500,n={projectName:s,filter:r.filter,folderFilter:a,search:t,folderIds:o,sortBy:y,group:r.value};k?n.last=i:n.first=i;const I=T.dispatch(P.endpoints.GetTasksList.initiate(n,{forceRefetch:!0}));c.push(I)}const d=await Promise.all(c),h=[];for(const r of d){if(r.error)throw r.error;const i=r.originalArgs?.group,n=r.data?.pageInfo?.hasNextPage||r.data?.pageInfo?.hasPreviousPage||!1,I=r.data?.tasks.map((g,f,p)=>({...g,groups:[{value:i,hasNextPage:f===p.length-1&&n?i:void 0}]}))||[];h.push(...I)}return{data:{tasks:h}}}catch(c){return console.error("Error in getGroupedTasksList queryFn:",c),{error:{status:"FETCH_ERROR",error:c.message}}}},providesTags:(s,e,{projectName:t})=>b(s?.tasks,t)})})}),{useGetOverviewTasksByFoldersQuery:S,useGetSearchFoldersQuery:C,useGetTasksListQuery:x,useGetTasksListInfiniteInfiniteQuery:Q,useLazyGetTasksByParentQuery:B,useGetGroupedTasksListQuery:O}=N;exports.TASKS_INFINITE_QUERY_COUNT=E;exports.default=N;exports.parseAllAttribs=_;exports.useGetGroupedTasksListQuery=O;exports.useGetOverviewTasksByFoldersQuery=S;exports.useGetSearchFoldersQuery=C;exports.useGetTasksListInfiniteInfiniteQuery=Q;exports.useGetTasksListQuery=x;exports.useLazyGetTasksByParentQuery=B;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const G=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const A=require("../../../util/pubsub.cjs.js"),_=u=>{try{return JSON.parse(u)}catch{return{}}},w=u=>{if(!u.project)return[];const s=[];for(const{node:e}of u.project.tasks.edges)s.push({...e,folderId:e.folderId||"root",attrib:_(e.allAttrib),entityId:e.id,entityType:"task",links:[]});return s},b=(u=[],s,e)=>{const t=u?.map(o=>({type:"overviewTask",id:o.id}))||[],a=e?(Array.isArray(e)?e:[e]).map(o=>({type:"overviewTask",id:o})):[];return[...t,...a,{type:"overviewTask",id:s},{type:"overviewTask",id:"LIST"}]},P=G.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:w,providesTags:(u,s,{parentIds:e,projectName:t})=>b(u,t,e)},GetTasksList:{transformResponse:u=>({tasks:w(u),pageInfo:u.project.tasks.pageInfo}),providesTags:(u,s,{projectName:e})=>b(u?.tasks||[],e)}}}),L=F.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),E=100,N=P.injectEndpoints({endpoints:u=>({getOverviewTasksByFolders:u.query({async queryFn({projectName:s,parentIds:e,filter:t,folderFilter:a,search:o},{dispatch:g,forced:y}){try{const h=[];for(let i=0;i<e.length;i+=20){const k=e.slice(i,i+20),r=(await Promise.all(k.map(async n=>g(P.endpoints.GetTasksByParent.initiate({projectName:s,parentIds:[n],filter:t,folderFilter:a,search:o},{forceRefetch:y}))))).filter(n=>!!n.data).flatMap(n=>n.data);h.push(...r)}return{data:h}}catch(I){return console.error(I),{error:{status:"FETCH_ERROR",error:I.message}}}},serializeQueryArgs:({queryArgs:{parentIds:s,...e}})=>({...e}),forceRefetch({currentArg:s,previousArg:e}){return JSON.stringify(s)!==JSON.stringify(e)},providesTags:(s,e,{parentIds:t,projectName:a})=>b(s,a,t),async onCacheEntryAdded({projectName:s,parentIds:e,filter:t,search:a},{cacheDataLoaded:o,cacheEntryRemoved:g,updateCachedData:y,dispatch:I}){let h;const i=new Set,k=100,d=500;let r=!1;const n=()=>{r||(r=!0,setTimeout(T,d))},T=async()=>{if(r=!1,!i.size)return;const f=Array.from(i).slice(0,k);f.forEach(l=>i.delete(l));try{const p=(await I(P.endpoints.GetTasksList.initiate({projectName:s,taskIds:f},{forceRefetch:!0})).unwrap()).tasks||[],q=new Map(p.map(c=>[c.id,c]));y(c=>{for(const m of p){const v=c.findIndex(R=>R.id===m.id);v>-1?c[v]=m:c.push(m)}for(const m of f)if(!q.has(m)){const v=c.findIndex(R=>R.id===m);v>-1&&c.splice(v,1)}})}catch(l){console.error("Realtime overview batch update failed",l)}finally{i.size&&n()}};try{await o;const f=async(l,p)=>{const q=p?.summary?.entityId,c=p?.summary?.parentId;!q||!c||e.includes(c)&&(i.add(q),n())};h=A.subscribe("entity.task",f)}catch{}await g,h&&A.unsubscribe(h)}}),getSearchFolders:u.query({async queryFn({projectName:s,folderSearchRequest:e},{dispatch:t}){try{return{data:(await t(L.endpoints.searchFolders.initiate({projectName:s,folderSearchRequest:e}))).data?.folderIds||[]}}catch(a){return console.error(a),{error:{status:"FETCH_ERROR",error:a.message}}}}}),getTasksListInfinite:u.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(s,e,t,a)=>{const o=s.pageInfo;if(!(!(t.desc?o.hasPreviousPage:o.hasNextPage)||!o.endCursor))return{cursor:o.endCursor,desc:t.desc}}},queryFn:async({queryArg:s,pageParam:e},t)=>{try{const{projectName:a,filter:o,folderFilter:g,search:y,folderIds:I,sortBy:h,desc:i}=s,{cursor:k}=e,d={projectName:a,filter:o,folderFilter:g,search:y,folderIds:I};h?(d.sortBy=h,i?(d.before=k||void 0,d.last=E):(d.after=k||void 0,d.first=E)):(d.after=k||void 0,d.first=E);const r=await t.dispatch(P.endpoints.GetTasksList.initiate(d,{forceRefetch:!0}));if(r.error)throw r.error;const n={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:r.data||n}}catch(a){return console.error("Error in getTasksListInfinite queryFn:",a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(s,e,{projectName:t})=>b(s?.pages.flatMap(a=>a.tasks)||[],t),async onCacheEntryAdded(s,{cacheDataLoaded:e,cacheEntryRemoved:t,updateCachedData:a,dispatch:o}){let g;const y=new Set,I=100,h=500;let i=!1;const k=()=>{i||(i=!0,setTimeout(d,h))},d=async()=>{if(i=!1,!y.size)return;const r=Array.from(y).slice(0,I);r.forEach(n=>y.delete(n));try{const T=(await o(P.endpoints.GetTasksList.initiate({projectName:s.projectName,taskIds:r,folderIds:s.folderIds},{forceRefetch:!0})).unwrap()).tasks||[],f=new Map(T.map(l=>[l.id,l]));a(l=>{for(const p of T){let q=!1;for(const c of l.pages){const m=c.tasks.findIndex(v=>v.id===p.id);if(m!==-1){c.tasks[m]=p,q=!0;break}}q||(l.pages.length?l.pages[0].tasks.unshift(p):l.pages.push({tasks:[p],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const p of r)if(!f.has(p))for(const q of l.pages){const c=q.tasks.findIndex(m=>m.id===p);if(c!==-1){q.tasks.splice(c,1);break}}})}catch(n){console.error("Realtime infinite tasks batch update failed",n)}finally{y.size&&k()}};try{await e;const r=async(n,T)=>{const f=T?.summary?.entityId;f&&(y.add(f),k())};g=A.subscribe("entity.task",r)}catch{}await t,g&&A.unsubscribe(g)}}),getGroupedTasksList:u.query({queryFn:async({projectName:s,groups:e,search:t,folderFilter:a,folderIds:o,desc:g,sortBy:y,groupCount:I},h)=>{try{let i=[];for(const r of e){const n=I||r.count||500,T={projectName:s,filter:r.filter,folderFilter:a,search:t,folderIds:o,sortBy:y,group:r.value};g?T.last=n:T.first=n;const f=h.dispatch(P.endpoints.GetTasksList.initiate(T,{forceRefetch:!0}));i.push(f)}const k=await Promise.all(i),d=[];for(const r of k){if(r.error)throw r.error;const n=r.originalArgs?.group,T=r.data?.pageInfo?.hasNextPage||r.data?.pageInfo?.hasPreviousPage||!1,f=r.data?.tasks.map((l,p,q)=>({...l,groups:[{value:n,hasNextPage:p===q.length-1&&T?n:void 0}]}))||[];d.push(...f)}return{data:{tasks:d}}}catch(i){return console.error("Error in getGroupedTasksList queryFn:",i),{error:{status:"FETCH_ERROR",error:i.message}}}},providesTags:(s,e,{projectName:t})=>b(s?.tasks,t)})})}),{useGetOverviewTasksByFoldersQuery:S,useGetSearchFoldersQuery:C,useGetTasksListQuery:x,useGetTasksListInfiniteInfiniteQuery:Q,useLazyGetTasksByParentQuery:B,useGetGroupedTasksListQuery:O}=N;exports.TASKS_INFINITE_QUERY_COUNT=E;exports.default=N;exports.parseAllAttribs=_;exports.useGetGroupedTasksListQuery=O;exports.useGetOverviewTasksByFoldersQuery=S;exports.useGetSearchFoldersQuery=C;exports.useGetTasksListInfiniteInfiniteQuery=Q;exports.useGetTasksListQuery=x;exports.useLazyGetTasksByParentQuery=B;
2
2
  //# sourceMappingURL=getOverview.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, folderFilter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n { projectName, groups, search, folderFilter, folderIds, desc, sortBy },\n api,\n ) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n folderFilter, // Passed but not yet supported by backend\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","dispatch","forced","allTasks","i","batchParentIds","batchTasks","parentId","r","e","rest","currentArg","previousArg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","handlePubSub","_topic","message","taskId","PubSub","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","promises","group","count","promise","res","groupValue","hasNextPage","groupTasks","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n groupCount?: number // optional override for all groups\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, folderFilter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n { projectName, groups, search, folderFilter, folderIds, desc, sortBy, groupCount },\n api,\n ) => {\n try {\n let promises = []\n for (const group of groups) {\n // Determine count for this group - use argument override, else group count, else default\n const count = groupCount || group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n folderFilter, // Passed but not yet supported by backend\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","dispatch","forced","allTasks","batchParentIds","batchTasks","parentId","r","e","rest","currentArg","previousArg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","handlePubSub","_topic","message","taskId","PubSub","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","group","count","promise","res","groupValue","hasNextPage","groupTasks","i","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery"],"mappings":"q0DAkBaA,EAAmBC,GAAsB,CACpD,GAAI,CACF,OAAO,KAAK,MAAMA,CAAS,CAC7B,MAAY,CACV,MAAO,CAAA,CACT,CACF,EAEMC,EAAqCC,GAAsD,CAC/F,GAAI,CAACA,EAAS,QACZ,MAAO,CAAA,EAGT,MAAMC,EAA0B,CAAA,EAChC,SAAW,CAAE,KAAMC,CAAA,IAAcF,EAAS,QAAQ,MAAM,MACtDC,EAAM,KAAK,CACT,GAAGC,EACH,SAAUA,EAAS,UAAY,OAC/B,OAAQL,EAAgBK,EAAS,SAAS,EAC1C,SAAUA,EAAS,GACnB,WAAY,OACZ,MAAO,CAAA,CAAC,CACT,EAGH,OAAOD,CACT,EAEME,EAAsB,CAC1BC,EAAuC,GACvCC,EACAC,IACG,CACH,MAAMC,EAAWH,GAAQ,IAAKI,IAAU,CAAE,KAAM,eAAgB,GAAIA,EAAK,EAAA,EAAK,GAAK,CAAA,EAE7EC,EAAaH,GACd,MAAM,QAAQA,CAAS,EAAIA,EAAY,CAACA,CAAS,GAAG,IAAKI,IAAQ,CAChE,KAAM,eACN,GAAAA,CAAA,EACA,EACF,CAAA,EAEJ,MAAO,CACL,GAAGH,EACH,GAAGE,EACH,CAAE,KAAM,eAAgB,GAAIJ,CAAA,EAC5B,CAAE,KAAM,eAAgB,GAAI,MAAA,CAAO,CAEvC,EA8CMM,EAAcC,EAAAA,IAAO,iBAA+C,CACxE,UAAW,CAIT,iBAAkB,CAChB,kBAAmBb,EACnB,aAAc,CAACK,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,CAAA,EAEtD,aAAc,CACZ,kBAAoBF,IAA+B,CACjD,MAAOL,EAAkCK,CAAM,EAC/C,SAAUA,EAAO,QAAQ,MAAM,QAAA,GAEjC,aAAc,CAACA,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,OAAS,CAAA,EAAIC,CAAW,CAAA,CACxD,CAEJ,CAAC,EAGKS,EAAqBC,EAAAA,IAAW,iBAAiB,CACrD,UAAW,CACT,cAAe,CAAA,CAAC,CAEpB,CAAC,EAEYC,EAA6B,IAEpCC,EAAcN,EAAY,gBAAgB,CAC9C,UAAYO,IAAW,CAMrB,0BAA2BA,EAAM,MAS/B,CACA,MAAM,QACJ,CAAE,YAAAb,EAAa,UAAAC,EAAW,OAAAa,EAAQ,aAAAC,EAAc,OAAAC,GAChD,CAAE,SAAAC,EAAU,OAAAC,GACZ,CACA,GAAI,CAGF,MAAMC,EAA6B,CAAA,EAGnC,QAAS,EAAI,EAAG,EAAIlB,EAAU,OAAQ,GAAK,GAAY,CACrD,MAAMmB,EAAiBnB,EAAU,MAAM,EAAG,EAAI,EAAU,EAqBlDoB,GAlBe,MAAM,QAAQ,IACjCD,EAAe,IAAI,MAAOE,GACxBL,EACEX,EAAY,UAAU,iBAAiB,SACrC,CACE,YAAAN,EACA,UAAW,CAACsB,CAAQ,EACpB,OAAAR,EACA,aAAAC,EACA,OAAAC,CAAA,EAEF,CAAE,aAAcE,CAAA,CAAO,CACzB,CACF,CACF,GAKC,OAAQK,GAAM,CAAC,CAACA,EAAE,IAAI,EACtB,QAASxB,GAAWA,EAAO,IAAwB,EAEtDoB,EAAS,KAAK,GAAGE,CAAU,CAC7B,CAEA,MAAO,CAAE,KAAMF,CAAA,CACjB,OAASK,EAAQ,CAEf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,EAEA,mBAAoB,CAAC,CAAE,UAAW,CAAE,UAAAvB,EAAW,GAAGwB,CAAA,MAAc,CAC9D,GAAGA,CAAA,GAGL,aAAa,CAAE,WAAAC,EAAY,YAAAC,GAAe,CACxC,OAAO,KAAK,UAAUD,CAAU,IAAM,KAAK,UAAUC,CAAW,CAClE,EACA,aAAc,CAAC5B,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,EACpD,MAAM,kBACJ,CAAE,YAAAD,EAAa,UAAAC,EAAW,OAAAa,EAAQ,OAAAE,GAClC,CAAE,gBAAAY,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAb,GACxD,CACA,IAAIc,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAASjC,GAAO2B,EAAe,OAAO3B,CAAE,CAAC,EAClD,GAAI,CAUF,MAAMkC,GATM,MAAMtB,EAChBX,EAAY,UAAU,aAAa,SACjC,CACE,YAAAN,EACA,QAASsC,CAAA,EAEX,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GACmB,OAAS,CAAA,EACxBE,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA4B,CAE5C,UAAWvC,KAAQoC,EAAU,CAC3B,MAAMI,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAOtC,EAAK,EAAE,EAC/CwC,EAAM,GAAID,EAAMC,CAAG,EAAIxC,EACtBuC,EAAM,KAAKvC,CAAI,CACtB,CAEA,UAAWE,KAAMiC,EACf,GAAI,CAACE,EAAY,IAAInC,CAAE,EAAG,CACxB,MAAMsC,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAOpC,CAAE,EAC1CsC,EAAM,IAAID,EAAM,OAAOC,EAAK,CAAC,CACnC,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,wCAAyCA,CAAG,CAC5D,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,GAAI,CACF,MAAMR,EAEN,MAAMiB,EAAe,MAAOC,EAAgBC,IAAiB,CAC3D,MAAMC,EAASD,GAAS,SAAS,SAC3BzB,EAAWyB,GAAS,SAAS,SAC/B,CAACC,GAAU,CAAC1B,GAEXrB,EAAU,SAASqB,CAAQ,IAChCU,EAAe,IAAIgB,CAAM,EACzBZ,EAAA,EACF,EAKAL,EAAQkB,EAAO,UAAU,cAAeJ,CAAY,CACtD,MAAY,CAEZ,CAEA,MAAMhB,EACFE,GAAOkB,EAAO,YAAYlB,CAAK,CACrC,CAAA,CACD,EAGD,iBAAkBlB,EAAM,MAAqC,CAC3D,MAAM,QAAQ,CAAE,YAAAb,EAAa,oBAAAkD,GAAuB,CAAE,SAAAjC,GAAY,CAChE,GAAI,CAUF,MAAO,CAAE,MATM,MAAMA,EACnBR,EAAmB,UAAU,cAAc,SAAS,CAClD,YAAAT,EACA,oBAAAkD,CAAA,CACD,CAAA,GAGiB,MAAM,WAAa,CAAA,CAE9B,CACX,OAAS1B,EAAQ,CACf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,CAAA,CACD,EAED,qBAAsBX,EAAM,cAI1B,CACA,qBAAsB,CACpB,iBAAkB,CAAE,OAAQ,GAAI,KAAM,EAAA,EAEtC,iBAAkB,CAACsC,EAAUC,EAAWC,EAAeC,IAAmB,CAExE,MAAMC,EAAWJ,EAAS,SAI1B,GAAI,IAHSE,EAAc,KACAE,EAAS,gBAAkBA,EAAS,cAE3C,CAACA,EAAS,WAE9B,MAAO,CACL,OAAQA,EAAS,UACjB,KAAMF,EAAc,IAAA,CAExB,CAAA,EAEF,QAAS,MAAO,CAAE,SAAAG,EAAU,UAAAC,CAAA,EAAaC,IAAQ,CAC/C,GAAI,CACF,KAAM,CAAE,YAAA1D,EAAa,OAAAc,EAAQ,aAAAC,EAAc,OAAAC,EAAQ,UAAA2C,EAAW,OAAAC,EAAQ,KAAAC,GAASL,EACzE,CAAE,OAAAM,GAAWL,EAGbM,EAAmB,CACvB,YAAA/D,EACA,OAAAc,EACA,aAAAC,EACA,OAAAC,EACA,UAAA2C,CAAA,EAIEC,GACFG,EAAY,OAASH,EACjBC,GACFE,EAAY,OAASD,GAAU,OAC/BC,EAAY,KAAOpD,IAEnBoD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQpD,KAGtBoD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQpD,GAItB,MAAMZ,EAAS,MAAM2D,EAAI,SACvBpD,EAAY,UAAU,aAAa,SAASyD,EAAa,CAAE,aAAc,GAAM,CAAA,EAGjF,GAAIhE,EAAO,MAAO,MAAMA,EAAO,MAC/B,MAAMiE,EAAW,CACf,MAAO,CAAA,EACP,SAAU,CACR,YAAa,GACb,UAAW,KACX,YAAa,KACb,gBAAiB,EAAA,CACnB,EAIF,MAAO,CACL,KAAMjE,EAAO,MAAQiE,CAAA,CAEzB,OAASxC,EAAQ,CACf,eAAQ,MAAM,yCAA0CA,CAAC,EAClD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAE,QAAQ,CAC5D,CACF,EACA,aAAc,CAACzB,EAAQS,EAAI,CAAE,YAAAR,CAAA,IAC3BF,EAAoBC,GAAQ,MAAM,QAASkE,GAAMA,EAAE,KAAK,GAAK,CAAA,EAAIjE,CAAW,EAC9E,MAAM,kBACJkE,EACA,CAAE,gBAAAtC,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAb,GACxD,CACA,IAAIc,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAASjC,GAAO2B,EAAe,OAAO3B,CAAE,CAAC,EAClD,GAAI,CAYF,MAAMkC,GAXM,MAAMtB,EAChBX,EAAY,UAAU,aAAa,SACjC,CACE,YAAa4D,EAAI,YACjB,QAAS5B,EACT,UAAW4B,EAAI,SAAA,EAEjB,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GAEmB,OAAS,CAAA,EACxB1B,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA8D,CAE9E,UAAWvC,KAAQoC,EAAU,CAC3B,IAAI4B,EAAU,GACd,UAAWC,KAAQ1B,EAAM,MAAO,CAC9B,MAAMC,EAAMyB,EAAK,MAAM,UAAW3B,GAAMA,EAAE,KAAOtC,EAAK,EAAE,EACxD,GAAIwC,IAAQ,GAAI,CACdyB,EAAK,MAAMzB,CAAG,EAAIxC,EAClBgE,EAAU,GACV,KACF,CACF,CACKA,IACCzB,EAAM,MAAM,OAAQA,EAAM,MAAM,CAAC,EAAE,MAAM,QAAQvC,CAAI,EAEvDuC,EAAM,MAAM,KAAK,CACf,MAAO,CAACvC,CAAI,EACZ,SAAU,CACR,YAAa,KACb,UAAW,KACX,YAAa,GACb,gBAAiB,EAAA,CACnB,CACD,EAEP,CAEA,UAAWE,KAAMiC,EACf,GAAI,CAAAE,EAAY,IAAInC,CAAE,EACtB,UAAW+D,KAAQ1B,EAAM,MAAO,CAC9B,MAAMC,EAAMyB,EAAK,MAAM,UAAW3B,GAAMA,EAAE,KAAOpC,CAAE,EACnD,GAAIsC,IAAQ,GAAI,CACdyB,EAAK,MAAM,OAAOzB,EAAK,CAAC,EACxB,KACF,CACF,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,8CAA+CA,CAAG,CAClE,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,GAAI,CACF,MAAMR,EAEN,MAAMiB,EAAe,MAAOC,EAAgBC,IAAiB,CAC3D,MAAMC,EAASD,GAAS,SAAS,SAC5BC,IACLhB,EAAe,IAAIgB,CAAM,EACzBZ,EAAA,EACF,EAEAL,EAAQkB,EAAO,UAAU,cAAeJ,CAAY,CACtD,MAAY,CAEZ,CACA,MAAMhB,EACFE,GAAOkB,EAAO,YAAYlB,CAAK,CACrC,CAAA,CACD,EACD,oBAAqBlB,EAAM,MAA0D,CACnF,QAAS,MACP,CAAE,YAAAb,EAAa,OAAAqE,EAAQ,OAAArD,EAAQ,aAAAD,EAAc,UAAA4C,EAAW,KAAAE,EAAM,OAAAD,EAAQ,WAAAU,CAAA,EACtEZ,IACG,CACH,GAAI,CACF,IAAIa,EAAW,CAAA,EACf,UAAWC,KAASH,EAAQ,CAE1B,MAAMI,EAAQH,GAAcE,EAAM,OAAS,IAErCT,EAA0C,CAC9C,YAAA/D,EACA,OAAQwE,EAAM,OACd,aAAAzD,EACA,OAAAC,EACA,UAAA2C,EACA,OAAAC,EAEA,MAAOY,EAAM,KAAA,EAEXX,EACFE,EAAY,KAAOU,EAEnBV,EAAY,MAAQU,EAGtB,MAAMC,EAAUhB,EAAI,SAClBpD,EAAY,UAAU,aAAa,SAASyD,EAAa,CAAE,aAAc,GAAM,CAAA,EAEjFQ,EAAS,KAAKG,CAAO,CACvB,CAEA,MAAM3E,EAAS,MAAM,QAAQ,IAAIwE,CAAQ,EACnC3E,EAA0B,CAAA,EAChC,UAAW+E,KAAO5E,EAAQ,CACxB,GAAI4E,EAAI,MAAO,MAAMA,EAAI,MAGzB,MAAMC,EAAaD,EAAI,cAAc,MAE/BE,EACJF,EAAI,MAAM,UAAU,aAAeA,EAAI,MAAM,UAAU,iBAAmB,GACtEG,EACJH,EAAI,MAAM,MAAM,IAAI,CAACxE,EAAM4E,EAAGC,KAAO,CACnC,GAAG7E,EACH,OAAQ,CACN,CACE,MAAOyE,EACP,YAAaG,IAAMC,EAAE,OAAS,GAAKH,EAAcD,EAAa,MAAA,CAChE,CACF,EACA,GAAK,CAAA,EAEThF,EAAM,KAAK,GAAGkF,CAAU,CAC1B,CAGA,MAAO,CACL,KAAM,CACJ,MAAAlF,CAAA,CACF,CAEJ,OAASqF,EAAY,CACnB,eAAQ,MAAM,wCAAyCA,CAAK,EACrD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAM,QAAQ,CAChE,CACF,EACA,aAAc,CAAClF,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,MAAOC,CAAW,CAAA,CACjD,CAAA,EAEL,CAAC,EAEY,CACX,kCAAAkF,EACA,yBAAAC,EACA,qBAAAC,EACA,qCAAAC,EACA,6BAAAC,EACA,4BAAAC,CACF,EAAI3E"}
@@ -100,13 +100,13 @@ const x = (c) => {
100
100
  // When new folders are expanded, the new tasks are fetched and we use the cache for the rest
101
101
  // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits
102
102
  getOverviewTasksByFolders: c.query({
103
- async queryFn({ projectName: t, parentIds: e, filter: r, folderFilter: a, search: n }, { dispatch: g, forced: m }) {
103
+ async queryFn({ projectName: t, parentIds: e, filter: r, folderFilter: a, search: n }, { dispatch: h, forced: m }) {
104
104
  try {
105
- const d = [];
106
- for (let p = 0; p < e.length; p += 20) {
107
- const y = e.slice(p, p + 20), o = (await Promise.all(
108
- y.map(
109
- async (i) => g(
105
+ const y = [];
106
+ for (let o = 0; o < e.length; o += 20) {
107
+ const g = e.slice(o, o + 20), s = (await Promise.all(
108
+ g.map(
109
+ async (i) => h(
110
110
  R.endpoints.GetTasksByParent.initiate(
111
111
  {
112
112
  projectName: t,
@@ -120,11 +120,11 @@ const x = (c) => {
120
120
  )
121
121
  )
122
122
  )).filter((i) => !!i.data).flatMap((i) => i.data);
123
- d.push(...o);
123
+ y.push(...s);
124
124
  }
125
- return { data: d };
126
- } catch (k) {
127
- return console.error(k), { error: { status: "FETCH_ERROR", error: k.message } };
125
+ return { data: y };
126
+ } catch (I) {
127
+ return console.error(I), { error: { status: "FETCH_ERROR", error: I.message } };
128
128
  }
129
129
  },
130
130
  // keep one cache per project
@@ -136,53 +136,53 @@ const x = (c) => {
136
136
  return JSON.stringify(t) !== JSON.stringify(e);
137
137
  },
138
138
  providesTags: (t, e, { parentIds: r, projectName: a }) => A(t, a, r),
139
- async onCacheEntryAdded({ projectName: t, parentIds: e, filter: r, search: a }, { cacheDataLoaded: n, cacheEntryRemoved: g, updateCachedData: m, dispatch: k }) {
140
- let d;
141
- const p = /* @__PURE__ */ new Set(), y = 100, s = 500;
142
- let o = !1;
139
+ async onCacheEntryAdded({ projectName: t, parentIds: e, filter: r, search: a }, { cacheDataLoaded: n, cacheEntryRemoved: h, updateCachedData: m, dispatch: I }) {
140
+ let y;
141
+ const o = /* @__PURE__ */ new Set(), g = 100, p = 500;
142
+ let s = !1;
143
143
  const i = () => {
144
- o || (o = !0, setTimeout(I, s));
145
- }, I = async () => {
146
- if (o = !1, !p.size) return;
147
- const h = Array.from(p).slice(0, y);
148
- h.forEach((f) => p.delete(f));
144
+ s || (s = !0, setTimeout(k, p));
145
+ }, k = async () => {
146
+ if (s = !1, !o.size) return;
147
+ const f = Array.from(o).slice(0, g);
148
+ f.forEach((u) => o.delete(u));
149
149
  try {
150
- const l = (await k(
150
+ const l = (await I(
151
151
  R.endpoints.GetTasksList.initiate(
152
152
  {
153
153
  projectName: t,
154
- taskIds: h
154
+ taskIds: f
155
155
  },
156
156
  { forceRefetch: !0 }
157
157
  )
158
- ).unwrap()).tasks || [], P = new Map(l.map((u) => [u.id, u]));
159
- m((u) => {
160
- for (const T of l) {
161
- const v = u.findIndex((w) => w.id === T.id);
162
- v > -1 ? u[v] = T : u.push(T);
158
+ ).unwrap()).tasks || [], T = new Map(l.map((d) => [d.id, d]));
159
+ m((d) => {
160
+ for (const P of l) {
161
+ const v = d.findIndex((w) => w.id === P.id);
162
+ v > -1 ? d[v] = P : d.push(P);
163
163
  }
164
- for (const T of h)
165
- if (!P.has(T)) {
166
- const v = u.findIndex((w) => w.id === T);
167
- v > -1 && u.splice(v, 1);
164
+ for (const P of f)
165
+ if (!T.has(P)) {
166
+ const v = d.findIndex((w) => w.id === P);
167
+ v > -1 && d.splice(v, 1);
168
168
  }
169
169
  });
170
- } catch (f) {
171
- console.error("Realtime overview batch update failed", f);
170
+ } catch (u) {
171
+ console.error("Realtime overview batch update failed", u);
172
172
  } finally {
173
- p.size && i();
173
+ o.size && i();
174
174
  }
175
175
  };
176
176
  try {
177
177
  await n;
178
- const h = async (f, l) => {
179
- const P = l?.summary?.entityId, u = l?.summary?.parentId;
180
- !P || !u || e.includes(u) && (p.add(P), i());
178
+ const f = async (u, l) => {
179
+ const T = l?.summary?.entityId, d = l?.summary?.parentId;
180
+ !T || !d || e.includes(d) && (o.add(T), i());
181
181
  };
182
- d = b.subscribe("entity.task", h);
182
+ y = b.subscribe("entity.task", f);
183
183
  } catch {
184
184
  }
185
- await g, d && b.unsubscribe(d);
185
+ await h, y && b.unsubscribe(y);
186
186
  }
187
187
  }),
188
188
  // searchFolders is a post so it's a bit annoying to consume
@@ -217,18 +217,18 @@ const x = (c) => {
217
217
  },
218
218
  queryFn: async ({ queryArg: t, pageParam: e }, r) => {
219
219
  try {
220
- const { projectName: a, filter: n, folderFilter: g, search: m, folderIds: k, sortBy: d, desc: p } = t, { cursor: y } = e, s = {
220
+ const { projectName: a, filter: n, folderFilter: h, search: m, folderIds: I, sortBy: y, desc: o } = t, { cursor: g } = e, p = {
221
221
  projectName: a,
222
222
  filter: n,
223
- folderFilter: g,
223
+ folderFilter: h,
224
224
  search: m,
225
- folderIds: k
225
+ folderIds: I
226
226
  };
227
- d ? (s.sortBy = d, p ? (s.before = y || void 0, s.last = E) : (s.after = y || void 0, s.first = E)) : (s.after = y || void 0, s.first = E);
228
- const o = await r.dispatch(
229
- R.endpoints.GetTasksList.initiate(s, { forceRefetch: !0 })
227
+ y ? (p.sortBy = y, o ? (p.before = g || void 0, p.last = E) : (p.after = g || void 0, p.first = E)) : (p.after = g || void 0, p.first = E);
228
+ const s = await r.dispatch(
229
+ R.endpoints.GetTasksList.initiate(p, { forceRefetch: !0 })
230
230
  );
231
- if (o.error) throw o.error;
231
+ if (s.error) throw s.error;
232
232
  const i = {
233
233
  tasks: [],
234
234
  pageInfo: {
@@ -239,7 +239,7 @@ const x = (c) => {
239
239
  }
240
240
  };
241
241
  return {
242
- data: o.data || i
242
+ data: s.data || i
243
243
  };
244
244
  } catch (a) {
245
245
  return console.error("Error in getTasksListInfinite queryFn:", a), { error: { status: "FETCH_ERROR", error: a.message } };
@@ -247,37 +247,37 @@ const x = (c) => {
247
247
  },
248
248
  providesTags: (t, e, { projectName: r }) => A(t?.pages.flatMap((a) => a.tasks) || [], r),
249
249
  async onCacheEntryAdded(t, { cacheDataLoaded: e, cacheEntryRemoved: r, updateCachedData: a, dispatch: n }) {
250
- let g;
251
- const m = /* @__PURE__ */ new Set(), k = 100, d = 500;
252
- let p = !1;
253
- const y = () => {
254
- p || (p = !0, setTimeout(s, d));
255
- }, s = async () => {
256
- if (p = !1, !m.size) return;
257
- const o = Array.from(m).slice(0, k);
258
- o.forEach((i) => m.delete(i));
250
+ let h;
251
+ const m = /* @__PURE__ */ new Set(), I = 100, y = 500;
252
+ let o = !1;
253
+ const g = () => {
254
+ o || (o = !0, setTimeout(p, y));
255
+ }, p = async () => {
256
+ if (o = !1, !m.size) return;
257
+ const s = Array.from(m).slice(0, I);
258
+ s.forEach((i) => m.delete(i));
259
259
  try {
260
- const I = (await n(
260
+ const k = (await n(
261
261
  R.endpoints.GetTasksList.initiate(
262
262
  {
263
263
  projectName: t.projectName,
264
- taskIds: o,
264
+ taskIds: s,
265
265
  folderIds: t.folderIds
266
266
  },
267
267
  { forceRefetch: !0 }
268
268
  )
269
- ).unwrap()).tasks || [], h = new Map(I.map((f) => [f.id, f]));
270
- a((f) => {
271
- for (const l of I) {
272
- let P = !1;
273
- for (const u of f.pages) {
274
- const T = u.tasks.findIndex((v) => v.id === l.id);
275
- if (T !== -1) {
276
- u.tasks[T] = l, P = !0;
269
+ ).unwrap()).tasks || [], f = new Map(k.map((u) => [u.id, u]));
270
+ a((u) => {
271
+ for (const l of k) {
272
+ let T = !1;
273
+ for (const d of u.pages) {
274
+ const P = d.tasks.findIndex((v) => v.id === l.id);
275
+ if (P !== -1) {
276
+ d.tasks[P] = l, T = !0;
277
277
  break;
278
278
  }
279
279
  }
280
- P || (f.pages.length ? f.pages[0].tasks.unshift(l) : f.pages.push({
280
+ T || (u.pages.length ? u.pages[0].tasks.unshift(l) : u.pages.push({
281
281
  tasks: [l],
282
282
  pageInfo: {
283
283
  startCursor: null,
@@ -287,12 +287,12 @@ const x = (c) => {
287
287
  }
288
288
  }));
289
289
  }
290
- for (const l of o)
291
- if (!h.has(l))
292
- for (const P of f.pages) {
293
- const u = P.tasks.findIndex((T) => T.id === l);
294
- if (u !== -1) {
295
- P.tasks.splice(u, 1);
290
+ for (const l of s)
291
+ if (!f.has(l))
292
+ for (const T of u.pages) {
293
+ const d = T.tasks.findIndex((P) => P.id === l);
294
+ if (d !== -1) {
295
+ T.tasks.splice(d, 1);
296
296
  break;
297
297
  }
298
298
  }
@@ -300,27 +300,27 @@ const x = (c) => {
300
300
  } catch (i) {
301
301
  console.error("Realtime infinite tasks batch update failed", i);
302
302
  } finally {
303
- m.size && y();
303
+ m.size && g();
304
304
  }
305
305
  };
306
306
  try {
307
307
  await e;
308
- const o = async (i, I) => {
309
- const h = I?.summary?.entityId;
310
- h && (m.add(h), y());
308
+ const s = async (i, k) => {
309
+ const f = k?.summary?.entityId;
310
+ f && (m.add(f), g());
311
311
  };
312
- g = b.subscribe("entity.task", o);
312
+ h = b.subscribe("entity.task", s);
313
313
  } catch {
314
314
  }
315
- await r, g && b.unsubscribe(g);
315
+ await r, h && b.unsubscribe(h);
316
316
  }
317
317
  }),
318
318
  getGroupedTasksList: c.query({
319
- queryFn: async ({ projectName: t, groups: e, search: r, folderFilter: a, folderIds: n, desc: g, sortBy: m }, k) => {
319
+ queryFn: async ({ projectName: t, groups: e, search: r, folderFilter: a, folderIds: n, desc: h, sortBy: m, groupCount: I }, y) => {
320
320
  try {
321
- let d = [];
321
+ let o = [];
322
322
  for (const s of e) {
323
- const o = s.count || 500, i = {
323
+ const i = I || s.count || 500, k = {
324
324
  projectName: t,
325
325
  filter: s.filter,
326
326
  folderFilter: a,
@@ -331,34 +331,34 @@ const x = (c) => {
331
331
  // @ts-expect-error - we know group does not exist on query variables but we need it for later
332
332
  group: s.value
333
333
  };
334
- g ? i.last = o : i.first = o;
335
- const I = k.dispatch(
336
- R.endpoints.GetTasksList.initiate(i, { forceRefetch: !0 })
334
+ h ? k.last = i : k.first = i;
335
+ const f = y.dispatch(
336
+ R.endpoints.GetTasksList.initiate(k, { forceRefetch: !0 })
337
337
  );
338
- d.push(I);
338
+ o.push(f);
339
339
  }
340
- const p = await Promise.all(d), y = [];
341
- for (const s of p) {
340
+ const g = await Promise.all(o), p = [];
341
+ for (const s of g) {
342
342
  if (s.error) throw s.error;
343
- const o = s.originalArgs?.group, i = s.data?.pageInfo?.hasNextPage || s.data?.pageInfo?.hasPreviousPage || !1, I = s.data?.tasks.map((h, f, l) => ({
344
- ...h,
343
+ const i = s.originalArgs?.group, k = s.data?.pageInfo?.hasNextPage || s.data?.pageInfo?.hasPreviousPage || !1, f = s.data?.tasks.map((u, l, T) => ({
344
+ ...u,
345
345
  groups: [
346
346
  {
347
- value: o,
348
- hasNextPage: f === l.length - 1 && i ? o : void 0
347
+ value: i,
348
+ hasNextPage: l === T.length - 1 && k ? i : void 0
349
349
  // Only add hasNextPage to the last task in the group
350
350
  }
351
351
  ]
352
352
  })) || [];
353
- y.push(...I);
353
+ p.push(...f);
354
354
  }
355
355
  return {
356
356
  data: {
357
- tasks: y
357
+ tasks: p
358
358
  }
359
359
  };
360
- } catch (d) {
361
- return console.error("Error in getGroupedTasksList queryFn:", d), { error: { status: "FETCH_ERROR", error: d.message } };
360
+ } catch (o) {
361
+ return console.error("Error in getGroupedTasksList queryFn:", o), { error: { status: "FETCH_ERROR", error: o.message } };
362
362
  }
363
363
  },
364
364
  providesTags: (t, e, { projectName: r }) => A(t?.tasks, r)