@nocobase/app-plugin-projects 0.1.0-beta.7 → 0.1.0-beta.9

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 (491) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +60 -104
  3. package/dist/client/api/changed-issues.d.ts +12 -0
  4. package/dist/client/api/changed-issues.d.ts.map +1 -0
  5. package/dist/client/api/changed-issues.js +30 -0
  6. package/dist/client/api/changed-issues.js.map +1 -0
  7. package/dist/client/api/client.d.ts +4 -23
  8. package/dist/client/api/client.d.ts.map +1 -1
  9. package/dist/client/api/client.js +4 -48
  10. package/dist/client/api/client.js.map +1 -1
  11. package/dist/client/api/keys.d.ts +2 -8
  12. package/dist/client/api/keys.d.ts.map +1 -1
  13. package/dist/client/api/keys.js +2 -17
  14. package/dist/client/api/keys.js.map +1 -1
  15. package/dist/client/components/pm-badges.d.ts +1 -1
  16. package/dist/client/components/pm-badges.d.ts.map +1 -1
  17. package/dist/client/components/pm-executor-select.d.ts +2 -0
  18. package/dist/client/components/pm-executor-select.d.ts.map +1 -1
  19. package/dist/client/components/pm-executor-select.js.map +1 -1
  20. package/dist/client/components/ui/radio-group.d.ts +7 -0
  21. package/dist/client/components/ui/radio-group.d.ts.map +1 -0
  22. package/dist/client/components/ui/radio-group.js +12 -0
  23. package/dist/client/components/ui/radio-group.js.map +1 -0
  24. package/dist/client/config.d.ts +0 -2
  25. package/dist/client/config.d.ts.map +1 -1
  26. package/dist/client/config.js +1 -5
  27. package/dist/client/config.js.map +1 -1
  28. package/dist/client/issues.d.ts +2 -4
  29. package/dist/client/issues.d.ts.map +1 -1
  30. package/dist/client/issues.js +2 -3
  31. package/dist/client/issues.js.map +1 -1
  32. package/dist/client/kit/plans/lookup.d.ts +2 -2
  33. package/dist/client/kit/plans/lookup.js +3 -3
  34. package/dist/client/kit/plans/lookup.js.map +1 -1
  35. package/dist/client/kit/plans/plan-row.js +2 -2
  36. package/dist/client/kit/plans/plan-row.js.map +1 -1
  37. package/dist/client/kit.d.ts +3 -9
  38. package/dist/client/kit.d.ts.map +1 -1
  39. package/dist/client/kit.js +3 -9
  40. package/dist/client/kit.js.map +1 -1
  41. package/dist/client/lib/kinds.d.ts +3 -29
  42. package/dist/client/lib/kinds.d.ts.map +1 -1
  43. package/dist/client/lib/kinds.js +7 -46
  44. package/dist/client/lib/kinds.js.map +1 -1
  45. package/dist/client/lib/status-events.d.ts +21 -0
  46. package/dist/client/lib/status-events.d.ts.map +1 -0
  47. package/dist/client/lib/status-events.js +31 -0
  48. package/dist/client/lib/status-events.js.map +1 -0
  49. package/dist/client/lib/status.d.ts +5 -7
  50. package/dist/client/lib/status.d.ts.map +1 -1
  51. package/dist/client/lib/status.js +5 -7
  52. package/dist/client/lib/status.js.map +1 -1
  53. package/dist/client/locales/en-US.d.ts +6 -256
  54. package/dist/client/locales/en-US.d.ts.map +1 -1
  55. package/dist/client/locales/en-US.js +9 -255
  56. package/dist/client/locales/en-US.js.map +1 -1
  57. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  58. package/dist/client/locales/zh-CN.js +10 -248
  59. package/dist/client/locales/zh-CN.js.map +1 -1
  60. package/dist/client/pages/issues/board/board-model.d.ts +1 -1
  61. package/dist/client/pages/issues/board/board-model.js +1 -1
  62. package/dist/client/pages/issues/board/use-board-move.d.ts +2 -8
  63. package/dist/client/pages/issues/board/use-board-move.d.ts.map +1 -1
  64. package/dist/client/pages/issues/board/use-board-move.js +5 -42
  65. package/dist/client/pages/issues/board/use-board-move.js.map +1 -1
  66. package/dist/client/pages/issues/detail/new-subtask.d.ts.map +1 -1
  67. package/dist/client/pages/issues/detail/new-subtask.js +6 -28
  68. package/dist/client/pages/issues/detail/new-subtask.js.map +1 -1
  69. package/dist/client/pages/issues/detail/subtask-model.d.ts +1 -1
  70. package/dist/client/pages/issues/detail/subtask-model.js +1 -1
  71. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts +6 -8
  72. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
  73. package/dist/client/pages/issues/detail/use-confirmed-update.js +9 -42
  74. package/dist/client/pages/issues/detail/use-confirmed-update.js.map +1 -1
  75. package/dist/client/pages/issues/detail/use-issue-page.d.ts +0 -4
  76. package/dist/client/pages/issues/detail/use-issue-page.d.ts.map +1 -1
  77. package/dist/client/pages/issues/detail/use-issue-page.js +0 -14
  78. package/dist/client/pages/issues/detail/use-issue-page.js.map +1 -1
  79. package/dist/client/pages/issues/detail/use-issue-update.d.ts +2 -2
  80. package/dist/client/pages/issues/detail/use-issue-update.d.ts.map +1 -1
  81. package/dist/client/pages/issues/detail/use-issue-update.js +4 -6
  82. package/dist/client/pages/issues/detail/use-issue-update.js.map +1 -1
  83. package/dist/client/pages/issues/new-issue-form.d.ts +11 -8
  84. package/dist/client/pages/issues/new-issue-form.d.ts.map +1 -1
  85. package/dist/client/pages/issues/new-issue-form.js +47 -79
  86. package/dist/client/pages/issues/new-issue-form.js.map +1 -1
  87. package/dist/client/pages/issues/new.d.ts.map +1 -1
  88. package/dist/client/pages/issues/new.js +2 -1
  89. package/dist/client/pages/issues/new.js.map +1 -1
  90. package/dist/client/pages/issues/use-executor-options.d.ts +3 -2
  91. package/dist/client/pages/issues/use-executor-options.d.ts.map +1 -1
  92. package/dist/client/pages/issues/use-executor-options.js +5 -23
  93. package/dist/client/pages/issues/use-executor-options.js.map +1 -1
  94. package/dist/client/pages/projects/detail/use-project-page.d.ts +4 -26
  95. package/dist/client/pages/projects/detail/use-project-page.d.ts.map +1 -1
  96. package/dist/client/pages/projects/detail/use-project-page.js +7 -53
  97. package/dist/client/pages/projects/detail/use-project-page.js.map +1 -1
  98. package/dist/client/pages/projects/new.d.ts +1 -1
  99. package/dist/client/pages/projects/new.d.ts.map +1 -1
  100. package/dist/client/pages/projects/new.js +3 -7
  101. package/dist/client/pages/projects/new.js.map +1 -1
  102. package/dist/client/plugin.d.ts +3 -0
  103. package/dist/client/plugin.d.ts.map +1 -1
  104. package/dist/client/plugin.js +8 -1
  105. package/dist/client/plugin.js.map +1 -1
  106. package/dist/client/projects.d.ts +2 -2
  107. package/dist/client/projects.d.ts.map +1 -1
  108. package/dist/client/projects.js +2 -2
  109. package/dist/client/projects.js.map +1 -1
  110. package/dist/client/providers/query-provider.d.ts.map +1 -1
  111. package/dist/client/providers/query-provider.js +13 -10
  112. package/dist/client/providers/query-provider.js.map +1 -1
  113. package/dist/database/migrations/.manifest.json +8 -0
  114. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts +4 -0
  115. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts.map +1 -0
  116. package/dist/database/migrations/202610240010_pm_fixed_statuses.js +189 -0
  117. package/dist/database/migrations/202610240010_pm_fixed_statuses.js.map +1 -0
  118. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts +4 -0
  119. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts.map +1 -0
  120. package/dist/database/migrations/202610240011_pm_issue_progress.js +19 -0
  121. package/dist/database/migrations/202610240011_pm_issue_progress.js.map +1 -0
  122. package/dist/server/composition.d.ts +11 -17
  123. package/dist/server/composition.d.ts.map +1 -1
  124. package/dist/server/composition.js +11 -56
  125. package/dist/server/composition.js.map +1 -1
  126. package/dist/server/domains/comments/comment.queries.d.ts +31 -0
  127. package/dist/server/domains/comments/comment.queries.d.ts.map +1 -1
  128. package/dist/server/domains/comments/comment.queries.js +27 -1
  129. package/dist/server/domains/comments/comment.queries.js.map +1 -1
  130. package/dist/server/domains/comments/comment.store.d.ts +19 -0
  131. package/dist/server/domains/comments/comment.store.d.ts.map +1 -1
  132. package/dist/server/domains/comments/comment.store.js +55 -0
  133. package/dist/server/domains/comments/comment.store.js.map +1 -1
  134. package/dist/server/domains/comments/index.d.ts +1 -1
  135. package/dist/server/domains/comments/index.d.ts.map +1 -1
  136. package/dist/server/domains/comments/index.js.map +1 -1
  137. package/dist/server/domains/issues/index.d.ts +1 -1
  138. package/dist/server/domains/issues/index.d.ts.map +1 -1
  139. package/dist/server/domains/issues/index.js +1 -1
  140. package/dist/server/domains/issues/index.js.map +1 -1
  141. package/dist/server/domains/issues/issue.context.d.ts +6 -22
  142. package/dist/server/domains/issues/issue.context.d.ts.map +1 -1
  143. package/dist/server/domains/issues/issue.context.js +1 -22
  144. package/dist/server/domains/issues/issue.context.js.map +1 -1
  145. package/dist/server/domains/issues/issue.fields.d.ts +5 -3
  146. package/dist/server/domains/issues/issue.fields.d.ts.map +1 -1
  147. package/dist/server/domains/issues/issue.fields.js +37 -16
  148. package/dist/server/domains/issues/issue.fields.js.map +1 -1
  149. package/dist/server/domains/issues/issue.projects.d.ts +2 -2
  150. package/dist/server/domains/issues/issue.projects.d.ts.map +1 -1
  151. package/dist/server/domains/issues/issue.projects.js +1 -2
  152. package/dist/server/domains/issues/issue.projects.js.map +1 -1
  153. package/dist/server/domains/issues/issue.queries.d.ts +10 -7
  154. package/dist/server/domains/issues/issue.queries.d.ts.map +1 -1
  155. package/dist/server/domains/issues/issue.queries.js +15 -41
  156. package/dist/server/domains/issues/issue.queries.js.map +1 -1
  157. package/dist/server/domains/issues/issue.routes.d.ts +1 -1
  158. package/dist/server/domains/issues/issue.routes.d.ts.map +1 -1
  159. package/dist/server/domains/issues/issue.routes.js +20 -38
  160. package/dist/server/domains/issues/issue.routes.js.map +1 -1
  161. package/dist/server/domains/issues/issue.service.d.ts +20 -44
  162. package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
  163. package/dist/server/domains/issues/issue.service.js +26 -81
  164. package/dist/server/domains/issues/issue.service.js.map +1 -1
  165. package/dist/server/domains/issues/issue.status.d.ts +6 -10
  166. package/dist/server/domains/issues/issue.status.d.ts.map +1 -1
  167. package/dist/server/domains/issues/issue.status.js +3 -20
  168. package/dist/server/domains/issues/issue.status.js.map +1 -1
  169. package/dist/server/domains/issues/issue.store.d.ts +2 -0
  170. package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
  171. package/dist/server/domains/issues/issue.store.js +2 -0
  172. package/dist/server/domains/issues/issue.store.js.map +1 -1
  173. package/dist/server/domains/issues/ports.d.ts +19 -36
  174. package/dist/server/domains/issues/ports.d.ts.map +1 -1
  175. package/dist/server/domains/issues/ports.js +0 -5
  176. package/dist/server/domains/issues/ports.js.map +1 -1
  177. package/dist/server/domains/notices/notice.planner.d.ts +2 -1
  178. package/dist/server/domains/notices/notice.planner.d.ts.map +1 -1
  179. package/dist/server/domains/notices/notice.planner.js +2 -1
  180. package/dist/server/domains/notices/notice.planner.js.map +1 -1
  181. package/dist/server/domains/notices/notice.rules.d.ts +1 -4
  182. package/dist/server/domains/notices/notice.rules.d.ts.map +1 -1
  183. package/dist/server/domains/notices/notice.rules.js +4 -5
  184. package/dist/server/domains/notices/notice.rules.js.map +1 -1
  185. package/dist/server/domains/plans/plan.ops.d.ts +3 -3
  186. package/dist/server/domains/plans/plan.ops.d.ts.map +1 -1
  187. package/dist/server/domains/plans/plan.ops.js +23 -13
  188. package/dist/server/domains/plans/plan.ops.js.map +1 -1
  189. package/dist/server/domains/projects/index.d.ts +1 -1
  190. package/dist/server/domains/projects/index.d.ts.map +1 -1
  191. package/dist/server/domains/projects/index.js.map +1 -1
  192. package/dist/server/domains/projects/project.events.d.ts +10 -0
  193. package/dist/server/domains/projects/project.events.d.ts.map +1 -0
  194. package/dist/server/domains/projects/project.events.js +2 -0
  195. package/dist/server/domains/projects/project.events.js.map +1 -0
  196. package/dist/server/domains/projects/project.routes.d.ts.map +1 -1
  197. package/dist/server/domains/projects/project.routes.js +1 -3
  198. package/dist/server/domains/projects/project.routes.js.map +1 -1
  199. package/dist/server/domains/projects/project.service.d.ts +1 -7
  200. package/dist/server/domains/projects/project.service.d.ts.map +1 -1
  201. package/dist/server/domains/projects/project.service.js +2 -17
  202. package/dist/server/domains/projects/project.service.js.map +1 -1
  203. package/dist/server/domains/projects/project.store.d.ts +0 -1
  204. package/dist/server/domains/projects/project.store.d.ts.map +1 -1
  205. package/dist/server/domains/projects/project.store.js +0 -1
  206. package/dist/server/domains/projects/project.store.js.map +1 -1
  207. package/dist/server/domains/reports/report.service.d.ts +1 -12
  208. package/dist/server/domains/reports/report.service.d.ts.map +1 -1
  209. package/dist/server/domains/reports/report.service.js +23 -79
  210. package/dist/server/domains/reports/report.service.js.map +1 -1
  211. package/dist/server/domains/statuses/event-types.d.ts +16 -0
  212. package/dist/server/domains/statuses/event-types.d.ts.map +1 -0
  213. package/dist/server/domains/statuses/event-types.js +31 -0
  214. package/dist/server/domains/statuses/event-types.js.map +1 -0
  215. package/dist/server/domains/statuses/index.d.ts +4 -0
  216. package/dist/server/domains/statuses/index.d.ts.map +1 -0
  217. package/dist/server/domains/statuses/index.js +4 -0
  218. package/dist/server/domains/statuses/index.js.map +1 -0
  219. package/dist/server/domains/statuses/status.catalog.d.ts +15 -0
  220. package/dist/server/domains/statuses/status.catalog.d.ts.map +1 -0
  221. package/dist/server/domains/statuses/status.catalog.js +119 -0
  222. package/dist/server/domains/statuses/status.catalog.js.map +1 -0
  223. package/dist/server/domains/statuses/status.events.d.ts +15 -0
  224. package/dist/server/domains/statuses/status.events.d.ts.map +1 -0
  225. package/dist/server/domains/statuses/status.events.js +2 -0
  226. package/dist/server/domains/statuses/status.events.js.map +1 -0
  227. package/dist/server/domains/statuses/status.fire.d.ts +48 -0
  228. package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
  229. package/dist/server/domains/statuses/status.fire.js +38 -0
  230. package/dist/server/domains/statuses/status.fire.js.map +1 -0
  231. package/dist/server/domains/subscriptions/subscription.routes.d.ts.map +1 -1
  232. package/dist/server/domains/subscriptions/subscription.routes.js +4 -2
  233. package/dist/server/domains/subscriptions/subscription.routes.js.map +1 -1
  234. package/dist/server/domains/subtasks/subtask.blocking.d.ts +4 -4
  235. package/dist/server/domains/subtasks/subtask.blocking.d.ts.map +1 -1
  236. package/dist/server/domains/subtasks/subtask.blocking.js +2 -10
  237. package/dist/server/domains/subtasks/subtask.blocking.js.map +1 -1
  238. package/dist/server/domains/subtasks/subtask.release.d.ts +5 -9
  239. package/dist/server/domains/subtasks/subtask.release.d.ts.map +1 -1
  240. package/dist/server/domains/subtasks/subtask.release.js +0 -4
  241. package/dist/server/domains/subtasks/subtask.release.js.map +1 -1
  242. package/dist/server/domains/subtasks/subtask.service.d.ts +1 -3
  243. package/dist/server/domains/subtasks/subtask.service.d.ts.map +1 -1
  244. package/dist/server/domains/subtasks/subtask.service.js +0 -12
  245. package/dist/server/domains/subtasks/subtask.service.js.map +1 -1
  246. package/dist/server/kernel/http.d.ts.map +1 -1
  247. package/dist/server/kernel/http.js +0 -3
  248. package/dist/server/kernel/http.js.map +1 -1
  249. package/dist/server/kernel/kinds.d.ts +24 -6
  250. package/dist/server/kernel/kinds.d.ts.map +1 -1
  251. package/dist/server/kernel/kinds.js +21 -1
  252. package/dist/server/kernel/kinds.js.map +1 -1
  253. package/dist/server/kernel/work.d.ts +8 -4
  254. package/dist/server/kernel/work.d.ts.map +1 -1
  255. package/dist/server/kernel/work.js +21 -10
  256. package/dist/server/kernel/work.js.map +1 -1
  257. package/dist/server/locales/en-US.d.ts +0 -9
  258. package/dist/server/locales/en-US.d.ts.map +1 -1
  259. package/dist/server/locales/en-US.js +0 -9
  260. package/dist/server/locales/en-US.js.map +1 -1
  261. package/dist/server/locales/zh-CN.d.ts.map +1 -1
  262. package/dist/server/locales/zh-CN.js +2 -11
  263. package/dist/server/locales/zh-CN.js.map +1 -1
  264. package/dist/server/providers/change-announcer.d.ts +27 -0
  265. package/dist/server/providers/change-announcer.d.ts.map +1 -0
  266. package/dist/server/providers/change-announcer.js +74 -0
  267. package/dist/server/providers/change-announcer.js.map +1 -0
  268. package/dist/server/providers/notifications.d.ts +1 -0
  269. package/dist/server/providers/notifications.d.ts.map +1 -1
  270. package/dist/server/providers/notifications.js +6 -120
  271. package/dist/server/providers/notifications.js.map +1 -1
  272. package/dist/server/providers/projects.d.ts +3 -8
  273. package/dist/server/providers/projects.d.ts.map +1 -1
  274. package/dist/server/providers/projects.js +14 -37
  275. package/dist/server/providers/projects.js.map +1 -1
  276. package/dist/server/routes/api.d.ts.map +1 -1
  277. package/dist/server/routes/api.js +0 -6
  278. package/dist/server/routes/api.js.map +1 -1
  279. package/dist/server/routes/schemas.d.ts +1 -27
  280. package/dist/server/routes/schemas.d.ts.map +1 -1
  281. package/dist/server/routes/schemas.js +23 -167
  282. package/dist/server/routes/schemas.js.map +1 -1
  283. package/dist/server/tokens.d.ts +12 -34
  284. package/dist/server/tokens.d.ts.map +1 -1
  285. package/dist/server/tokens.js +4 -16
  286. package/dist/server/tokens.js.map +1 -1
  287. package/dist/shared/access.d.ts +0 -1
  288. package/dist/shared/access.d.ts.map +1 -1
  289. package/dist/shared/access.js +2 -11
  290. package/dist/shared/access.js.map +1 -1
  291. package/dist/shared/issues.d.ts +14 -36
  292. package/dist/shared/issues.d.ts.map +1 -1
  293. package/dist/shared/issues.js +1 -0
  294. package/dist/shared/issues.js.map +1 -1
  295. package/dist/shared/kinds.d.ts +3 -1
  296. package/dist/shared/kinds.d.ts.map +1 -1
  297. package/dist/shared/kinds.js +1 -1
  298. package/dist/shared/locales/access.en-US.d.ts +0 -1
  299. package/dist/shared/locales/access.en-US.d.ts.map +1 -1
  300. package/dist/shared/locales/access.en-US.js +1 -2
  301. package/dist/shared/locales/access.en-US.js.map +1 -1
  302. package/dist/shared/locales/access.zh-CN.d.ts.map +1 -1
  303. package/dist/shared/locales/access.zh-CN.js +1 -2
  304. package/dist/shared/locales/access.zh-CN.js.map +1 -1
  305. package/dist/shared/plans.d.ts +6 -6
  306. package/dist/shared/plans.d.ts.map +1 -1
  307. package/dist/shared/plans.js +2 -1
  308. package/dist/shared/plans.js.map +1 -1
  309. package/dist/shared/projects.d.ts +0 -4
  310. package/dist/shared/projects.d.ts.map +1 -1
  311. package/dist/shared/projects.js.map +1 -1
  312. package/dist/shared/realtime.d.ts +9 -3
  313. package/dist/shared/realtime.d.ts.map +1 -1
  314. package/dist/shared/realtime.js +3 -2
  315. package/dist/shared/realtime.js.map +1 -1
  316. package/dist/shared/statuses.d.ts +42 -0
  317. package/dist/shared/statuses.d.ts.map +1 -0
  318. package/dist/shared/statuses.js +73 -0
  319. package/dist/shared/statuses.js.map +1 -0
  320. package/dist/shared/subtasks.d.ts +3 -3
  321. package/dist/shared/subtasks.d.ts.map +1 -1
  322. package/package.json +9 -17
  323. package/skills/nocobase-app-plugin-projects/SKILL.md +27 -51
  324. package/dist/client/hooks/use-workflow-leave-guard.d.ts +0 -3
  325. package/dist/client/hooks/use-workflow-leave-guard.d.ts.map +0 -1
  326. package/dist/client/hooks/use-workflow-leave-guard.js +0 -31
  327. package/dist/client/hooks/use-workflow-leave-guard.js.map +0 -1
  328. package/dist/client/lib/built-in-rule-editors.d.ts +0 -13
  329. package/dist/client/lib/built-in-rule-editors.d.ts.map +0 -1
  330. package/dist/client/lib/built-in-rule-editors.js +0 -86
  331. package/dist/client/lib/built-in-rule-editors.js.map +0 -1
  332. package/dist/client/lib/built-in-rule-types.d.ts +0 -3
  333. package/dist/client/lib/built-in-rule-types.d.ts.map +0 -1
  334. package/dist/client/lib/built-in-rule-types.js +0 -63
  335. package/dist/client/lib/built-in-rule-types.js.map +0 -1
  336. package/dist/client/lib/status-rule-types.d.ts +0 -60
  337. package/dist/client/lib/status-rule-types.d.ts.map +0 -1
  338. package/dist/client/lib/status-rule-types.js +0 -38
  339. package/dist/client/lib/status-rule-types.js.map +0 -1
  340. package/dist/client/lib/workflow-events.d.ts +0 -25
  341. package/dist/client/lib/workflow-events.d.ts.map +0 -1
  342. package/dist/client/lib/workflow-events.js +0 -30
  343. package/dist/client/lib/workflow-events.js.map +0 -1
  344. package/dist/client/pages/config/workflow-detail.d.ts +0 -10
  345. package/dist/client/pages/config/workflow-detail.d.ts.map +0 -1
  346. package/dist/client/pages/config/workflow-detail.js +0 -207
  347. package/dist/client/pages/config/workflow-detail.js.map +0 -1
  348. package/dist/client/pages/config/workflows/flow-editor.d.ts +0 -15
  349. package/dist/client/pages/config/workflows/flow-editor.d.ts.map +0 -1
  350. package/dist/client/pages/config/workflows/flow-editor.js +0 -76
  351. package/dist/client/pages/config/workflows/flow-editor.js.map +0 -1
  352. package/dist/client/pages/config/workflows/status-rules.d.ts +0 -21
  353. package/dist/client/pages/config/workflows/status-rules.d.ts.map +0 -1
  354. package/dist/client/pages/config/workflows/status-rules.js +0 -203
  355. package/dist/client/pages/config/workflows/status-rules.js.map +0 -1
  356. package/dist/client/pages/config/workflows/transitions-matrix.d.ts +0 -20
  357. package/dist/client/pages/config/workflows/transitions-matrix.d.ts.map +0 -1
  358. package/dist/client/pages/config/workflows/transitions-matrix.js +0 -114
  359. package/dist/client/pages/config/workflows/transitions-matrix.js.map +0 -1
  360. package/dist/client/pages/config/workflows/use-status-name.d.ts +0 -4
  361. package/dist/client/pages/config/workflows/use-status-name.d.ts.map +0 -1
  362. package/dist/client/pages/config/workflows/use-status-name.js +0 -17
  363. package/dist/client/pages/config/workflows/use-status-name.js.map +0 -1
  364. package/dist/client/pages/config/workflows/workflow-diagram.d.ts +0 -17
  365. package/dist/client/pages/config/workflows/workflow-diagram.d.ts.map +0 -1
  366. package/dist/client/pages/config/workflows/workflow-diagram.js +0 -298
  367. package/dist/client/pages/config/workflows/workflow-diagram.js.map +0 -1
  368. package/dist/client/pages/config/workflows/workflow-model.d.ts +0 -157
  369. package/dist/client/pages/config/workflows/workflow-model.d.ts.map +0 -1
  370. package/dist/client/pages/config/workflows/workflow-model.js +0 -403
  371. package/dist/client/pages/config/workflows/workflow-model.js.map +0 -1
  372. package/dist/client/pages/config/workflows/workflow-views.d.ts +0 -31
  373. package/dist/client/pages/config/workflows/workflow-views.d.ts.map +0 -1
  374. package/dist/client/pages/config/workflows/workflow-views.js +0 -76
  375. package/dist/client/pages/config/workflows/workflow-views.js.map +0 -1
  376. package/dist/client/pages/config/workflows.d.ts +0 -8
  377. package/dist/client/pages/config/workflows.d.ts.map +0 -1
  378. package/dist/client/pages/config/workflows.js +0 -139
  379. package/dist/client/pages/config/workflows.js.map +0 -1
  380. package/dist/client/pages/issues/detail/start-dialog.d.ts +0 -20
  381. package/dist/client/pages/issues/detail/start-dialog.d.ts.map +0 -1
  382. package/dist/client/pages/issues/detail/start-dialog.js +0 -31
  383. package/dist/client/pages/issues/detail/start-dialog.js.map +0 -1
  384. package/dist/client/pages/projects/workflow-select.d.ts +0 -14
  385. package/dist/client/pages/projects/workflow-select.d.ts.map +0 -1
  386. package/dist/client/pages/projects/workflow-select.js +0 -34
  387. package/dist/client/pages/projects/workflow-select.js.map +0 -1
  388. package/dist/server/domains/approvals/approval.events.d.ts +0 -47
  389. package/dist/server/domains/approvals/approval.events.d.ts.map +0 -1
  390. package/dist/server/domains/approvals/approval.events.js +0 -2
  391. package/dist/server/domains/approvals/approval.events.js.map +0 -1
  392. package/dist/server/domains/approvals/approval.lifecycle.d.ts +0 -8
  393. package/dist/server/domains/approvals/approval.lifecycle.d.ts.map +0 -1
  394. package/dist/server/domains/approvals/approval.lifecycle.js +0 -54
  395. package/dist/server/domains/approvals/approval.lifecycle.js.map +0 -1
  396. package/dist/server/domains/approvals/approval.routes.d.ts +0 -10
  397. package/dist/server/domains/approvals/approval.routes.d.ts.map +0 -1
  398. package/dist/server/domains/approvals/approval.routes.js +0 -87
  399. package/dist/server/domains/approvals/approval.routes.js.map +0 -1
  400. package/dist/server/domains/approvals/approval.service.d.ts +0 -72
  401. package/dist/server/domains/approvals/approval.service.d.ts.map +0 -1
  402. package/dist/server/domains/approvals/approval.service.js +0 -261
  403. package/dist/server/domains/approvals/approval.service.js.map +0 -1
  404. package/dist/server/domains/approvals/approval.store.d.ts +0 -42
  405. package/dist/server/domains/approvals/approval.store.d.ts.map +0 -1
  406. package/dist/server/domains/approvals/approval.store.js +0 -66
  407. package/dist/server/domains/approvals/approval.store.js.map +0 -1
  408. package/dist/server/domains/approvals/index.d.ts +0 -4
  409. package/dist/server/domains/approvals/index.d.ts.map +0 -1
  410. package/dist/server/domains/approvals/index.js +0 -3
  411. package/dist/server/domains/approvals/index.js.map +0 -1
  412. package/dist/server/domains/checklists/checklist.routes.d.ts +0 -9
  413. package/dist/server/domains/checklists/checklist.routes.d.ts.map +0 -1
  414. package/dist/server/domains/checklists/checklist.routes.js +0 -62
  415. package/dist/server/domains/checklists/checklist.routes.js.map +0 -1
  416. package/dist/server/domains/checklists/checklist.service.d.ts +0 -26
  417. package/dist/server/domains/checklists/checklist.service.d.ts.map +0 -1
  418. package/dist/server/domains/checklists/checklist.service.js +0 -80
  419. package/dist/server/domains/checklists/checklist.service.js.map +0 -1
  420. package/dist/server/domains/checklists/checklist.store.d.ts +0 -32
  421. package/dist/server/domains/checklists/checklist.store.d.ts.map +0 -1
  422. package/dist/server/domains/checklists/checklist.store.js +0 -66
  423. package/dist/server/domains/checklists/checklist.store.js.map +0 -1
  424. package/dist/server/domains/checklists/index.d.ts +0 -4
  425. package/dist/server/domains/checklists/index.d.ts.map +0 -1
  426. package/dist/server/domains/checklists/index.js +0 -4
  427. package/dist/server/domains/checklists/index.js.map +0 -1
  428. package/dist/server/domains/workflows/built-in-rule-types.d.ts +0 -40
  429. package/dist/server/domains/workflows/built-in-rule-types.d.ts.map +0 -1
  430. package/dist/server/domains/workflows/built-in-rule-types.js +0 -260
  431. package/dist/server/domains/workflows/built-in-rule-types.js.map +0 -1
  432. package/dist/server/domains/workflows/event-types.d.ts +0 -21
  433. package/dist/server/domains/workflows/event-types.d.ts.map +0 -1
  434. package/dist/server/domains/workflows/event-types.js +0 -31
  435. package/dist/server/domains/workflows/event-types.js.map +0 -1
  436. package/dist/server/domains/workflows/index.d.ts +0 -10
  437. package/dist/server/domains/workflows/index.d.ts.map +0 -1
  438. package/dist/server/domains/workflows/index.js +0 -10
  439. package/dist/server/domains/workflows/index.js.map +0 -1
  440. package/dist/server/domains/workflows/rule-types.d.ts +0 -129
  441. package/dist/server/domains/workflows/rule-types.d.ts.map +0 -1
  442. package/dist/server/domains/workflows/rule-types.js +0 -33
  443. package/dist/server/domains/workflows/rule-types.js.map +0 -1
  444. package/dist/server/domains/workflows/templates.d.ts +0 -62
  445. package/dist/server/domains/workflows/templates.d.ts.map +0 -1
  446. package/dist/server/domains/workflows/templates.js +0 -63
  447. package/dist/server/domains/workflows/templates.js.map +0 -1
  448. package/dist/server/domains/workflows/workflow.diff.d.ts +0 -14
  449. package/dist/server/domains/workflows/workflow.diff.d.ts.map +0 -1
  450. package/dist/server/domains/workflows/workflow.diff.js +0 -80
  451. package/dist/server/domains/workflows/workflow.diff.js.map +0 -1
  452. package/dist/server/domains/workflows/workflow.events.d.ts +0 -26
  453. package/dist/server/domains/workflows/workflow.events.d.ts.map +0 -1
  454. package/dist/server/domains/workflows/workflow.events.js +0 -2
  455. package/dist/server/domains/workflows/workflow.events.js.map +0 -1
  456. package/dist/server/domains/workflows/workflow.fire.d.ts +0 -38
  457. package/dist/server/domains/workflows/workflow.fire.d.ts.map +0 -1
  458. package/dist/server/domains/workflows/workflow.fire.js +0 -57
  459. package/dist/server/domains/workflows/workflow.fire.js.map +0 -1
  460. package/dist/server/domains/workflows/workflow.registry.d.ts +0 -27
  461. package/dist/server/domains/workflows/workflow.registry.d.ts.map +0 -1
  462. package/dist/server/domains/workflows/workflow.registry.js +0 -132
  463. package/dist/server/domains/workflows/workflow.registry.js.map +0 -1
  464. package/dist/server/domains/workflows/workflow.routes.d.ts +0 -6
  465. package/dist/server/domains/workflows/workflow.routes.d.ts.map +0 -1
  466. package/dist/server/domains/workflows/workflow.routes.js +0 -148
  467. package/dist/server/domains/workflows/workflow.routes.js.map +0 -1
  468. package/dist/server/domains/workflows/workflow.rules.d.ts +0 -14
  469. package/dist/server/domains/workflows/workflow.rules.d.ts.map +0 -1
  470. package/dist/server/domains/workflows/workflow.rules.js +0 -212
  471. package/dist/server/domains/workflows/workflow.rules.js.map +0 -1
  472. package/dist/server/domains/workflows/workflow.service.d.ts +0 -71
  473. package/dist/server/domains/workflows/workflow.service.d.ts.map +0 -1
  474. package/dist/server/domains/workflows/workflow.service.js +0 -366
  475. package/dist/server/domains/workflows/workflow.service.js.map +0 -1
  476. package/dist/server/domains/workflows/workflow.store.d.ts +0 -33
  477. package/dist/server/domains/workflows/workflow.store.d.ts.map +0 -1
  478. package/dist/server/domains/workflows/workflow.store.js +0 -148
  479. package/dist/server/domains/workflows/workflow.store.js.map +0 -1
  480. package/dist/shared/approvals.d.ts +0 -37
  481. package/dist/shared/approvals.d.ts.map +0 -1
  482. package/dist/shared/approvals.js +0 -4
  483. package/dist/shared/approvals.js.map +0 -1
  484. package/dist/shared/checklists.d.ts +0 -27
  485. package/dist/shared/checklists.d.ts.map +0 -1
  486. package/dist/shared/checklists.js +0 -7
  487. package/dist/shared/checklists.js.map +0 -1
  488. package/dist/shared/workflows.d.ts +0 -276
  489. package/dist/shared/workflows.d.ts.map +0 -1
  490. package/dist/shared/workflows.js +0 -151
  491. package/dist/shared/workflows.js.map +0 -1
@@ -1,60 +0,0 @@
1
- import { type ComponentType, type Context } from 'react';
2
- import type { StatusCategory } from '../../shared/issues.js';
3
- import type { KindTitle } from '../../shared/kinds.js';
4
- export type StatusRuleConfig = Readonly<Record<string, unknown>>;
5
- /** The status a rule is on, as its editor and summary see it. */
6
- export interface StatusRuleStatus {
7
- readonly key: string;
8
- /** As the reader sees it: translated while it keeps its default name. */
9
- readonly name: string;
10
- readonly category: StatusCategory;
11
- }
12
- export interface StatusRuleEditorProps {
13
- readonly config: StatusRuleConfig;
14
- readonly onChange: (config: StatusRuleConfig) => void;
15
- readonly status: StatusRuleStatus;
16
- /** A prefix for the ids of the editor's fields, unique on the page. */
17
- readonly idPrefix: string;
18
- }
19
- export interface StatusRuleSummaryProps {
20
- readonly config: StatusRuleConfig;
21
- readonly status: StatusRuleStatus;
22
- }
23
- /**
24
- * Where the editor's "Add rule" menu lists a type: `action` under "When entering" (it does something once an issue
25
- * entered the status), `condition` under "Entry conditions" (it only lets an issue in or keeps it out).
26
- */
27
- export type StatusRuleGroup = 'action' | 'condition';
28
- export interface StatusRuleTypeUI {
29
- readonly type: string;
30
- readonly title: KindTitle;
31
- /** One sentence under the title in the "Add rule" menu. */
32
- readonly hint?: KindTitle;
33
- /** Where it may be put; every category when left out. The server refuses the others. */
34
- readonly categories?: readonly StatusCategory[];
35
- /** `action` when left out. */
36
- readonly group?: StatusRuleGroup;
37
- /** Drawn before its summary; a puzzle piece when left out. */
38
- readonly Icon?: ComponentType<{
39
- readonly className?: string;
40
- }>;
41
- /** The settings a rule starts with when it is added; a rule of a type without them is stored without `config`. */
42
- readonly initialConfig?: StatusRuleConfig;
43
- /** Edits the settings; a type without settings has nothing to expand. */
44
- readonly Editor?: ComponentType<StatusRuleEditorProps>;
45
- /**
46
- * The rule in one short line, from its settings: on its collapsed card in the editor and under its status, such as
47
- * "Runs Reviewer: Analyse and propose…" or "Checklist: 3 items, 2 required". A component, so it may read what it
48
- * names (an agent's name) through hooks.
49
- */
50
- readonly Summary: ComponentType<StatusRuleSummaryProps>;
51
- }
52
- export declare const StatusRuleTypesContext: Context<readonly StatusRuleTypeUI[]>;
53
- /** This plugin's own types, then those the application gives (a given type cannot replace a built-in one). */
54
- export declare function useStatusRuleTypes(): readonly StatusRuleTypeUI[];
55
- export declare function groupOf(type: Pick<StatusRuleTypeUI, 'group'>): StatusRuleGroup;
56
- /** Whether a type may sit on a status of `category`. */
57
- export declare function allowedOn(type: Pick<StatusRuleTypeUI, 'categories'>, category: StatusCategory): boolean;
58
- /** A title given as text or as an i18n key in another plugin's namespace. */
59
- export declare function useTitleText(): (title: KindTitle) => string;
60
- //# sourceMappingURL=status-rule-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-rule-types.d.ts","sourceRoot":"","sources":["../../../client/lib/status-rule-types.ts"],"names":[],"mappings":"AAYA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,OAAO,EACb,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjE,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,wFAAwF;IACxF,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,kHAAkH;IAClH,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAC1C,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACvD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CACzD;AAED,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,SAAS,gBAAgB,EAAE,CACxB,CAAC;AAEjD,8GAA8G;AAC9G,wBAAgB,kBAAkB,IAAI,SAAS,gBAAgB,EAAE,CAYhE;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACpC,eAAe,CAEjB;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CACvB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAC1C,QAAQ,EAAE,cAAc,GACvB,OAAO,CAET;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAM3D"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Status rule types as the workflow editor shows them. This plugin's own types (`built-in-rule-types.tsx`: checklist,
3
- * notify the owner, wait for sub-issues, wait for blockers) and the ones the application gives through
4
- * `StatusRuleTypesContext` (the assembling application joins the agents plugin's `runAgent` and `suggestExecutor` here; this plugin imports
5
- * none of them) are described the same way, and `useStatusRuleTypes` lists them together, the built-in ones first. The
6
- * server registers the same types (`projectsStatusRulesToken`).
7
- *
8
- * Each type has a title and a hint (i18n keys in its plugin's namespace), the categories of status it may sit on, the
9
- * group the editor's "Add rule" menu lists it under, the settings a new rule starts with, an editor for its settings
10
- * and a one-line summary. A rule whose type nobody gives here is shown as unavailable and can only be removed.
11
- */
12
- import { useTranslation } from '@nocobase/i18n/client';
13
- import { createContext, useContext, useMemo, } from 'react';
14
- import { BUILT_IN_STATUS_RULE_TYPES } from './built-in-rule-types.js';
15
- export const StatusRuleTypesContext = createContext([]);
16
- /** This plugin's own types, then those the application gives (a given type cannot replace a built-in one). */
17
- export function useStatusRuleTypes() {
18
- const given = useContext(StatusRuleTypesContext);
19
- return useMemo(() => [
20
- ...BUILT_IN_STATUS_RULE_TYPES,
21
- ...given.filter((type) => !BUILT_IN_STATUS_RULE_TYPES.some((own) => own.type === type.type)),
22
- ], [given]);
23
- }
24
- export function groupOf(type) {
25
- return type.group ?? 'action';
26
- }
27
- /** Whether a type may sit on a status of `category`. */
28
- export function allowedOn(type, category) {
29
- return !type.categories || type.categories.includes(category);
30
- }
31
- /** A title given as text or as an i18n key in another plugin's namespace. */
32
- export function useTitleText() {
33
- const { t } = useTranslation();
34
- return (title) => typeof title === 'string'
35
- ? title
36
- : t(title.key, { ns: title.ns, defaultValue: title.key });
37
- }
38
- //# sourceMappingURL=status-rule-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-rule-types.js","sourceRoot":"","sources":["../../../client/lib/status-rule-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,aAAa,EACb,UAAU,EACV,OAAO,GAGR,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAsDtE,MAAM,CAAC,MAAM,sBAAsB,GACjC,aAAa,CAA8B,EAAE,CAAC,CAAC;AAEjD,8GAA8G;AAC9G,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjD,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC;QACJ,GAAG,0BAA0B;QAC7B,GAAG,KAAK,CAAC,MAAM,CACb,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CACpE;KACF,EACD,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,IAAqC;IAErC,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,SAAS,CACvB,IAA0C,EAC1C,QAAwB;IAExB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Workflow events other plugins contribute, as the workflow editor and the timeline show them, given by the
3
- * application (the assembling application joins its own here; this plugin imports none of them). The server registers the same keys
4
- * (`projectsWorkflowEventsToken`) with the same placement (`from`, `to`).
5
- *
6
- * Each event has a title (what happened, such as "Pull request merged") and an optional hint, as text or i18n keys in
7
- * its plugin's namespace. The editor offers it on every status of a category it may leave, to choose where the system
8
- * then moves the issue. A transition on an event nobody gives here is shown as unavailable and can only be removed.
9
- */
10
- import { type Context } from 'react';
11
- import type { StatusCategory } from '../../shared/issues.js';
12
- import type { KindTitle } from '../../shared/kinds.js';
13
- import type { WorkflowEventPlacement } from '../../shared/workflows.js';
14
- export interface WorkflowEventUI extends WorkflowEventPlacement {
15
- readonly title: KindTitle;
16
- /** One sentence under the title in the editor. */
17
- readonly hint?: KindTitle;
18
- }
19
- export declare const WorkflowEventsContext: Context<readonly WorkflowEventUI[]>;
20
- export declare function useWorkflowEvents(): readonly WorkflowEventUI[];
21
- /** Whether a transition on the event may leave (`from`) or enter (`to`) a status of `category`. */
22
- export declare function eventAllows(event: WorkflowEventPlacement, end: 'from' | 'to', category: StatusCategory): boolean;
23
- /** A contributed event's title as the reader sees it, or null when nobody gives the event. */
24
- export declare function useEventTitle(): (key: string) => string | null;
25
- //# sourceMappingURL=workflow-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-events.d.ts","sourceRoot":"","sources":["../../../client/lib/workflow-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,SAAS,eAAe,EAAE,CACvB,CAAC;AAEhD,wBAAgB,iBAAiB,IAAI,SAAS,eAAe,EAAE,CAE9D;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CACzB,KAAK,EAAE,sBAAsB,EAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAGT;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAO9D"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Workflow events other plugins contribute, as the workflow editor and the timeline show them, given by the
3
- * application (the assembling application joins its own here; this plugin imports none of them). The server registers the same keys
4
- * (`projectsWorkflowEventsToken`) with the same placement (`from`, `to`).
5
- *
6
- * Each event has a title (what happened, such as "Pull request merged") and an optional hint, as text or i18n keys in
7
- * its plugin's namespace. The editor offers it on every status of a category it may leave, to choose where the system
8
- * then moves the issue. A transition on an event nobody gives here is shown as unavailable and can only be removed.
9
- */
10
- import { createContext, useContext } from 'react';
11
- import { useTitleText } from './status-rule-types.js';
12
- export const WorkflowEventsContext = createContext([]);
13
- export function useWorkflowEvents() {
14
- return useContext(WorkflowEventsContext);
15
- }
16
- /** Whether a transition on the event may leave (`from`) or enter (`to`) a status of `category`. */
17
- export function eventAllows(event, end, category) {
18
- const allowed = event[end];
19
- return !allowed || allowed.includes(category);
20
- }
21
- /** A contributed event's title as the reader sees it, or null when nobody gives the event. */
22
- export function useEventTitle() {
23
- const events = useWorkflowEvents();
24
- const text = useTitleText();
25
- return (key) => {
26
- const event = events.find((item) => item.key === key);
27
- return event ? text(event.title) : null;
28
- };
29
- }
30
- //# sourceMappingURL=workflow-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-events.js","sourceRoot":"","sources":["../../../client/lib/workflow-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAgB,MAAM,OAAO,CAAC;AAKhE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQtD,MAAM,CAAC,MAAM,qBAAqB,GAChC,aAAa,CAA6B,EAAE,CAAC,CAAC;AAEhD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,WAAW,CACzB,KAA6B,EAC7B,GAAkB,EAClB,QAAwB;IAExB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- import { type ReactElement } from 'react';
2
- /**
3
- * `/config/workflows/:workflowId`: one workflow as a covering page, laid out as the old workflow page — the status
4
- * flow, the transition matrix, the rules and the limits, and how many projects use it. Whoever holds
5
- * `pm.workflows/update` gets an Edit button; edit mode keeps the same layout and makes it operable in place (the name
6
- * in the header, the status statuses on the flow strip, the matrix's cells, each status's rules, the limits). The
7
- * whole change is saved at once; the server validates it and refuses to drop a status issues are in.
8
- */
9
- export default function WorkflowDetailPage(): ReactElement;
10
- //# sourceMappingURL=workflow-detail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-detail.d.ts","sourceRoot":"","sources":["../../../../client/pages/config/workflow-detail.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,OAAO,CAAC;AAmepE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,IAAI,YAAY,CA2DzD"}
@@ -1,207 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { ApiClientError, usePageBreadcrumb } from '@nocobase/app-client';
3
- import { useTranslation } from '@nocobase/i18n/client';
4
- import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
5
- import { PencilIcon } from 'lucide-react';
6
- import { useState } from 'react';
7
- import { Link, useParams } from 'react-router';
8
- import { COMMENT_RUN_WINDOW_HOURS, DEFAULT_COMMENT_RUN_LIMIT, WORKFLOW_NAME_MAX, } from '../../../shared/workflows.js';
9
- import { pmKeys } from '../../api/keys.js';
10
- import { PageContainer } from '../../components/page-container.js';
11
- import { PageHeader } from '../../components/page-header.js';
12
- import { PmDetailSkeleton, PmLoadError } from '../../components/pm-states.js';
13
- import { PmTag } from '../../components/pm-tag.js';
14
- import { RouteChildPage } from '../../components/route-child-page.js';
15
- import { Alert, AlertAction, AlertDescription, AlertTitle, } from '../../components/ui/alert.js';
16
- import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../../components/ui/alert-dialog.js';
17
- import { Button } from '../../components/ui/button.js';
18
- import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '../../components/ui/card.js';
19
- import { Input } from '../../components/ui/input.js';
20
- import { errorMetadata, useNotify } from '../../hooks/use-notify.js';
21
- import { usePmApi } from '../../hooks/use-pm-api.js';
22
- import { useViewer } from '../../hooks/use-viewer.js';
23
- import { useWorkflowLeaveGuard } from '../../hooks/use-workflow-leave-guard.js';
24
- import { canUseSetting } from '../../lib/permissions.js';
25
- import { WorkflowFlowEditor } from './workflows/flow-editor.js';
26
- import { TransitionsMatrix } from './workflows/transitions-matrix.js';
27
- import { WORKFLOWS_PATH, placeIssues, sameDraft, validationIssuesOf, workflowName, } from './workflows/workflow-model.js';
28
- import { WorkflowDiagram } from './workflows/workflow-diagram.js';
29
- import { useStatusName } from './workflows/use-status-name.js';
30
- import { RulePhrase, WorkflowRules } from './workflows/workflow-views.js';
31
- /**
32
- * Before a save that makes entering a status wake someone without anybody confirming it (an agent run, say), the
33
- * rules that would, each under its status; the save goes ahead only once confirmed.
34
- */
35
- function WakeConfirm({ attention, definition, pending, onConfirm, onCancel, }) {
36
- const { t } = useTranslation();
37
- const name = useStatusName(definition);
38
- return (_jsx(AlertDialog, { open: attention !== null, onOpenChange: (open) => {
39
- if (!open)
40
- onCancel();
41
- }, children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: t('workflows.wakeConfirm.title') }), _jsx(AlertDialogDescription, { children: t('workflows.wakeConfirm.description') })] }), _jsx("ul", { className: 'min-w-0 divide-y rounded-lg border text-sm', children: (attention ?? []).map((entry) => {
42
- const status = definition.states.find((state) => state.key === entry.statusKey);
43
- return (_jsxs("li", { className: 'flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2', "data-wake": entry.statusKey, children: [_jsx("span", { className: 'min-w-0 wrap-anywhere font-medium', children: t('workflows.wakeConfirm.entering', {
44
- status: name(entry.statusKey),
45
- }) }), status ? (_jsx(RulePhrase, { rule: entry.rule, status: status, statusName: name(entry.statusKey) })) : (_jsx("span", { className: 'min-w-0 wrap-anywhere', children: entry.summary }))] }, `${entry.statusKey}:${entry.rule.type}`));
46
- }) }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: t('actions.cancel') }), _jsx(AlertDialogAction, { disabled: pending, onClick: onConfirm, children: t('workflows.wakeConfirm.confirm') })] })] }) }));
47
- }
48
- /** `details.conflicts` of a 409 `WORKFLOW_STATUS_CONFLICT`. */
49
- function conflictsOf(metadata) {
50
- const conflicts = metadata?.conflicts;
51
- return Array.isArray(conflicts)
52
- ? conflicts
53
- : [];
54
- }
55
- /**
56
- * The workflow's limit on runs agents' comments start (`commentRunLimit`): a number to type in edit mode, left empty for
57
- * the default; what it is otherwise.
58
- */
59
- function CommentRunLimit({ definition, onChange, }) {
60
- const { t } = useTranslation();
61
- const windowHours = COMMENT_RUN_WINDOW_HOURS;
62
- if (!onChange)
63
- return (_jsx("p", { className: 'text-sm', children: t('workflows.commentRunLimitValue', {
64
- limit: definition.commentRunLimit ?? DEFAULT_COMMENT_RUN_LIMIT,
65
- windowHours,
66
- }) }));
67
- return (_jsxs("label", { className: 'flex flex-col gap-2 text-sm sm:max-w-xs', children: [_jsx("span", { children: t('workflows.commentRunLimit', { windowHours }) }), _jsx(Input, { type: 'number', min: 1, step: 1, inputMode: 'numeric', placeholder: String(DEFAULT_COMMENT_RUN_LIMIT), value: definition.commentRunLimit ?? '', onChange: (event) => {
68
- const { commentRunLimit: _previous, ...rest } = definition;
69
- const value = event.target.value.trim();
70
- // The server checks the number; an empty field keeps the default.
71
- onChange(value === '' ? rest : { ...rest, commentRunLimit: Number(value) });
72
- } })] }));
73
- }
74
- /** One of the page's cards; `id` names its title for the card's label. */
75
- function WorkflowCard({ id, title, description, children, }) {
76
- return (_jsxs(Card, { role: 'region', "aria-labelledby": id, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { id: id, children: title }), _jsx(CardDescription, { children: description })] }), _jsx(CardContent, { children: children })] }));
77
- }
78
- function WorkflowBody({ workflow, canEdit, }) {
79
- const { t } = useTranslation();
80
- const api = usePmApi();
81
- const notify = useNotify();
82
- const queryClient = useQueryClient();
83
- const saved = {
84
- name: workflowName(t, workflow),
85
- definition: workflow.definition,
86
- };
87
- const [editing, setEditing] = useState(false);
88
- const [draft, setDraft] = useState(saved);
89
- const [issues, setIssues] = useState([]);
90
- const [conflicts, setConflicts] = useState([]);
91
- const [confirming, setConfirming] = useState(null);
92
- const dirty = !sameDraft(draft, saved);
93
- const placed = placeIssues(draft.definition, issues);
94
- const usedBy = t('workflows.usedBy', { count: workflow.projectCount });
95
- const failed = (error) => {
96
- if (error instanceof ApiClientError) {
97
- if (error.reason === 'INVALID_WORKFLOW') {
98
- setIssues(validationIssuesOf(errorMetadata(error)));
99
- return;
100
- }
101
- if (error.reason === 'WORKFLOW_STATUS_CONFLICT')
102
- setConflicts(conflictsOf(errorMetadata(error)));
103
- if (error.reason === 'REVISION_CONFLICT')
104
- void queryClient.invalidateQueries({ queryKey: pmKeys.workflows });
105
- }
106
- notify.error(error);
107
- };
108
- const save = useMutation({
109
- mutationFn: () => api.updateWorkflow(workflow.id, {
110
- revision: workflow.revision,
111
- ...(draft.name === saved.name ? {} : { name: draft.name }),
112
- definition: draft.definition,
113
- }),
114
- // The page remounts on the new revision, back in view mode.
115
- onSuccess: (next) => {
116
- releaseLeaveGuard();
117
- queryClient.setQueryData(pmKeys.workflows, (items) => items?.map((item) => (item.id === next.id ? next : item)));
118
- setEditing(false);
119
- notify.success(t('workflows.saved', { name: workflowName(t, next) }));
120
- void queryClient.invalidateQueries({ queryKey: pmKeys.workflows });
121
- void queryClient.invalidateQueries({ queryKey: ['pm', 'statuses'] });
122
- },
123
- onError: (error) => failed(error),
124
- });
125
- /** Saves at once, unless the change makes a status wake someone it did not before: that is confirmed first. */
126
- const check = useMutation({
127
- mutationFn: () => api.previewWorkflow(workflow.id, draft.definition),
128
- onSuccess: (preview) => {
129
- const added = preview.attention.filter((entry) => entry.isNew);
130
- if (added.length > 0)
131
- setConfirming(added);
132
- else
133
- save.mutate();
134
- },
135
- onError: (error) => failed(error),
136
- });
137
- const pending = save.isPending || check.isPending;
138
- const releaseLeaveGuard = useWorkflowLeaveGuard(editing && dirty, pending, t('unsavedChanges.description'));
139
- const change = (update) => setDraft((current) => ({
140
- ...current,
141
- definition: update(current.definition),
142
- }));
143
- let actions;
144
- if (editing)
145
- actions = (_jsxs(_Fragment, { children: [_jsx(Button, { variant: 'outline', disabled: pending, onClick: () => {
146
- setDraft(saved);
147
- setIssues([]);
148
- setConflicts([]);
149
- setEditing(false);
150
- }, children: t('workflows.discard') }), _jsx(Button, { disabled: !dirty || !draft.name.trim() || save.isPending || check.isPending, onClick: () => {
151
- setIssues([]);
152
- setConflicts([]);
153
- check.mutate();
154
- }, children: t('workflows.save') })] }));
155
- else if (canEdit)
156
- actions = (_jsxs(Button, { variant: 'outline', onClick: () => setEditing(true), children: [_jsx(PencilIcon, { "data-icon": 'inline-start' }), t('workflows.edit')] }));
157
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: editing ? 'sticky top-0 z-20 bg-background py-4' : undefined, children: _jsx(PageHeader, { title: _jsxs("span", { className: 'inline-flex flex-wrap items-center gap-3', children: [editing ? (_jsx(Input, { "aria-label": t('workflows.name'), value: draft.name, maxLength: WORKFLOW_NAME_MAX, className: 'h-9 w-72 font-heading text-xl font-semibold md:text-xl', onChange: (event) => setDraft((current) => ({
158
- ...current,
159
- name: event.target.value,
160
- })) })) : (workflowName(t, workflow)), workflow.isDefault ? (_jsx(PmTag, { tone: 'blue', children: t('workflows.default') })) : null] }), description: canEdit ? usedBy : `${usedBy} · ${t('workflows.readOnly')}`, actions: actions }) }), placed.general.length > 0 ? (_jsxs(Alert, { variant: 'destructive', children: [_jsx(AlertTitle, { children: t('workflows.invalid') }), _jsx(AlertDescription, { children: _jsx("ul", { className: 'list-disc pl-4', children: placed.general.map((message) => (_jsx("li", { children: message }, message))) }) })] })) : null, conflicts.length > 0 ? (_jsxs(Alert, { variant: 'destructive', children: [_jsx(AlertTitle, { children: t('workflows.conflictTitle') }), _jsx(AlertDescription, { children: _jsx("ul", { className: 'list-disc pl-4', children: conflicts.map((entry) => (_jsx("li", { children: t('workflows.conflictLine', {
161
- count: entry.count,
162
- status: entry.statusKey,
163
- project: entry.projectName ?? t('workflows.noProject'),
164
- }) }, `${entry.projectId}:${entry.statusKey}`))) }) })] })) : null, _jsx(WorkflowCard, { id: 'pm-workflow-flow', title: t('workflows.flowTitle'), description: editing ? t('workflows.statusesHint') : t('workflows.flowDescription'), children: editing ? (_jsx(WorkflowFlowEditor, { definition: draft.definition, problems: placed.byStatus, onChange: change })) : (_jsx(WorkflowDiagram, { definition: workflow.definition })) }), _jsx(WorkflowCard, { id: 'pm-workflow-matrix', title: t('workflows.matrix'), description: editing
165
- ? t('workflows.transitionsHint')
166
- : t('workflows.matrixDescription'), children: editing ? (_jsx(TransitionsMatrix, { definition: draft.definition, readOnly: false, problems: placed.transitions, onChange: change })) : (_jsx(TransitionsMatrix, { definition: workflow.definition, readOnly: true })) }), _jsx(WorkflowCard, { id: 'pm-workflow-rules', title: t('workflows.rulesTitle'), description: t('workflows.rulesDescription'), children: editing ? (_jsx(WorkflowRules, { definition: draft.definition, onChange: change })) : (_jsx(WorkflowRules, { definition: workflow.definition })) }), _jsx(WorkflowCard, { id: 'pm-workflow-limits', title: t('workflows.limitsTitle'), description: t('workflows.limitsDescription'), children: editing ? (_jsx(CommentRunLimit, { definition: draft.definition, onChange: (definition) => change(() => definition) })) : (_jsx(CommentRunLimit, { definition: workflow.definition })) }), _jsx(WakeConfirm, { attention: confirming, definition: draft.definition, pending: save.isPending, onCancel: () => setConfirming(null), onConfirm: () => {
167
- setConfirming(null);
168
- save.mutate();
169
- } })] }));
170
- }
171
- /**
172
- * `/config/workflows/:workflowId`: one workflow as a covering page, laid out as the old workflow page — the status
173
- * flow, the transition matrix, the rules and the limits, and how many projects use it. Whoever holds
174
- * `pm.workflows/update` gets an Edit button; edit mode keeps the same layout and makes it operable in place (the name
175
- * in the header, the status statuses on the flow strip, the matrix's cells, each status's rules, the limits). The
176
- * whole change is saved at once; the server validates it and refuses to drop a status issues are in.
177
- */
178
- export default function WorkflowDetailPage() {
179
- const { workflowId = '' } = useParams();
180
- const { t } = useTranslation();
181
- const api = usePmApi();
182
- const viewer = useViewer();
183
- const workflows = useQuery({
184
- queryKey: pmKeys.workflows,
185
- queryFn: () => api.workflows(),
186
- });
187
- const workflow = workflows.data?.find((item) => item.id === workflowId);
188
- const back = (_jsx(Button, { variant: 'outline', size: 'sm', nativeButton: false, render: _jsx(Link, { to: WORKFLOWS_PATH }), children: t('workflows.backToList') }));
189
- // The header's trail (the shell renders it): the templates, then this one.
190
- usePageBreadcrumb([
191
- { label: t('workflows.title'), to: WORKFLOWS_PATH },
192
- {
193
- label: workflow ? workflowName(t, workflow) : t('workflows.breadcrumb'),
194
- },
195
- ]);
196
- let body;
197
- if (workflows.isError && !workflows.data)
198
- body = (_jsx(PmLoadError, { title: t('workflows.loadFailed'), error: workflows.error, action: back }));
199
- else if (!workflows.data || !viewer)
200
- body = _jsx(PmDetailSkeleton, {});
201
- else if (!workflow)
202
- body = (_jsxs(Alert, { children: [_jsx(AlertTitle, { children: t('workflows.notFound') }), _jsx(AlertAction, { children: back })] }));
203
- else
204
- body = (_jsx(WorkflowBody, { workflow: workflow, canEdit: canUseSetting(viewer, 'pm.workflows', 'update') }, `${workflow.id}:${workflow.revision}`));
205
- return (_jsx(RouteChildPage, { children: _jsx(PageContainer, { children: body }) }));
206
- }
207
- //# sourceMappingURL=workflow-detail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-detail.js","sourceRoot":"","sources":["../../../../client/pages/config/workflow-detail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAqC,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,GAMlB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EACL,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,YAAY,GAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI1E;;;GAGG;AACH,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,GAOT;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAE,SAAS,KAAK,IAAI,EACxB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI;gBAAE,QAAQ,EAAE,CAAC;QACxB,CAAC,YAED,MAAC,kBAAkB,eACjB,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cACd,CAAC,CAAC,6BAA6B,CAAC,GAChB,EACnB,KAAC,sBAAsB,cACpB,CAAC,CAAC,mCAAmC,CAAC,GAChB,IACP,EACpB,aAAI,SAAS,EAAC,4CAA4C,YACvD,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,SAAS,CACzC,CAAC;wBACF,OAAO,CACL,cAEE,SAAS,EAAC,+DAA+D,eAC9D,KAAK,CAAC,SAAS,aAE1B,eAAM,SAAS,EAAC,mCAAmC,YAChD,CAAC,CAAC,gCAAgC,EAAE;wCACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;qCAC9B,CAAC,GACG,EACN,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GACjC,CACH,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,OAAO,GAAQ,CAC/D,KAjBI,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAkBzC,CACN,CAAC;oBACJ,CAAC,CAAC,GACC,EACL,MAAC,iBAAiB,eAChB,KAAC,iBAAiB,cAAE,CAAC,CAAC,gBAAgB,CAAC,GAAqB,EAC5D,KAAC,iBAAiB,IAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,YACrD,CAAC,CAAC,+BAA+B,CAAC,GACjB,IACF,IACD,GACT,CACf,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,SAAS,WAAW,CAClB,QAAuD;IAEvD,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,CAAC;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAE,SAAiD;QACpD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,EACvB,UAAU,EACV,QAAQ,GAIT;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,wBAAwB,CAAC;IAC7C,IAAI,CAAC,QAAQ;QACX,OAAO,CACL,YAAG,SAAS,EAAC,SAAS,YACnB,CAAC,CAAC,gCAAgC,EAAE;gBACnC,KAAK,EAAE,UAAU,CAAC,eAAe,IAAI,yBAAyB;gBAC9D,WAAW;aACZ,CAAC,GACA,CACL,CAAC;IACJ,OAAO,CACL,iBAAO,SAAS,EAAC,yCAAyC,aACxD,yBAAO,CAAC,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,CAAC,GAAQ,EAC9D,KAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,SAAS,EACnB,WAAW,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAC9C,KAAK,EAAE,UAAU,CAAC,eAAe,IAAI,EAAE,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;oBAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACxC,kEAAkE;oBAClE,QAAQ,CACN,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAClE,CAAC;gBACJ,CAAC,GACD,IACI,CACT,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,EACpB,EAAE,EACF,KAAK,EACL,WAAW,EACX,QAAQ,GAMT;IACC,OAAO,CACL,MAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,qBAAkB,EAAE,aACrC,MAAC,UAAU,eACT,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,YAAG,KAAK,GAAa,EACtC,KAAC,eAAe,cAAE,WAAW,GAAmB,IACrC,EACb,KAAC,WAAW,cAAE,QAAQ,GAAe,IAChC,CACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,OAAO,GAIR;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,KAAK,GAAkB;QAC3B,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,KAAK,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqC,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAExC,EAAE,CAAC,CAAC;IACN,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;QAC9B,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACxC,SAAS,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,0BAA0B;gBAC7C,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB;gBACtC,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC;QACvB,UAAU,EAAE,GAAG,EAAE,CACf,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;YAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1D,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;QACJ,4DAA4D;QAC5D,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,iBAAiB,EAAE,CAAC;YACpB,WAAW,CAAC,YAAY,CAAqB,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACvE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;YACF,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;KAClC,CAAC,CAAC;IACH,+GAA+G;IAC/G,MAAM,KAAK,GAAG,WAAW,CAAC;QACxB,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC;QACpE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;;gBACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;IAClD,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,OAAO,IAAI,KAAK,EAChB,OAAO,EACP,CAAC,CAAC,4BAA4B,CAAC,CAChC,CAAC;IACF,MAAM,MAAM,GAAG,CACb,MAEgC,EAChC,EAAE,CACF,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,GAAG,OAAO;QACV,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KACvC,CAAC,CAAC,CAAC;IAEN,IAAI,OAAiC,CAAC;IACtC,IAAI,OAAO;QACT,OAAO,GAAG,CACR,8BACE,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,GAAG,EAAE;wBACZ,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAChB,SAAS,CAAC,EAAE,CAAC,CAAC;wBACd,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC,YAEA,CAAC,CAAC,mBAAmB,CAAC,GAChB,EACT,KAAC,MAAM,IACL,QAAQ,EACN,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAEnE,OAAO,EAAE,GAAG,EAAE;wBACZ,SAAS,CAAC,EAAE,CAAC,CAAC;wBACd,YAAY,CAAC,EAAE,CAAC,CAAC;wBACjB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,CAAC,YAEA,CAAC,CAAC,gBAAgB,CAAC,GACb,IACR,CACJ,CAAC;SACC,IAAI,OAAO;QACd,OAAO,GAAG,CACR,MAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aACvD,KAAC,UAAU,iBAAW,cAAc,GAAG,EACtC,CAAC,CAAC,gBAAgB,CAAC,IACb,CACV,CAAC;IAEJ,OAAO,CACL,8BACE,cACE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,SAAS,YAEvE,KAAC,UAAU,IACT,KAAK,EACH,gBAAM,SAAS,EAAC,0CAA0C,aACvD,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,KAAK,kBACQ,CAAC,CAAC,gBAAgB,CAAC,EAC/B,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAC,wDAAwD,EAClE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oCACrB,GAAG,OAAO;oCACV,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;iCACzB,CAAC,CAAC,GAEL,CACH,CAAC,CAAC,CAAC,CACF,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC1B,EACA,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,KAAC,KAAK,IAAC,IAAI,EAAC,MAAM,YAAE,CAAC,CAAC,mBAAmB,CAAC,GAAS,CACpD,CAAC,CAAC,CAAC,IAAI,IACH,EAET,WAAW,EACT,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAE7D,OAAO,EAAE,OAAO,GAChB,GACE,EACL,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3B,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,cAAE,CAAC,CAAC,mBAAmB,CAAC,GAAc,EACjD,KAAC,gBAAgB,cACf,aAAI,SAAS,EAAC,gBAAgB,YAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC/B,uBAAmB,OAAO,IAAjB,OAAO,CAAgB,CACjC,CAAC,GACC,GACY,IACb,CACT,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACtB,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,cAAE,CAAC,CAAC,yBAAyB,CAAC,GAAc,EACvD,KAAC,gBAAgB,cACf,aAAI,SAAS,EAAC,gBAAgB,YAC3B,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxB,uBACG,CAAC,CAAC,wBAAwB,EAAE;oCAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;oCAClB,MAAM,EAAE,KAAK,CAAC,SAAS;oCACvB,OAAO,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,qBAAqB,CAAC;iCACvD,CAAC,IALK,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAM3C,CACN,CAAC,GACC,GACY,IACb,CACT,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,YAAY,IACX,EAAE,EAAC,kBAAkB,EACrB,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAC/B,WAAW,EACT,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,YAGvE,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,kBAAkB,IACjB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,GAChB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAI,CACrD,GACY,EACf,KAAC,YAAY,IACX,EAAE,EAAC,oBAAoB,EACvB,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAC5B,WAAW,EACT,OAAO;oBACL,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;oBAChC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,YAGrC,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,iBAAiB,IAChB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,MAAM,CAAC,WAAW,EAC5B,QAAQ,EAAE,MAAM,GAChB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,SAAG,CAChE,GACY,EACf,KAAC,YAAY,IACX,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAChC,WAAW,EAAE,CAAC,CAAC,4BAA4B,CAAC,YAE3C,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,aAAa,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAI,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAI,CACnD,GACY,EACf,KAAC,YAAY,IACX,EAAE,EAAC,oBAAoB,EACvB,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,WAAW,EAAE,CAAC,CAAC,6BAA6B,CAAC,YAE5C,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,eAAe,IACd,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAClD,CACH,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAI,CACrD,GACY,EACf,KAAC,WAAW,IACV,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,GAAG,EAAE;oBACd,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC,GACD,IACD,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB;IACxC,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;IACxC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;KAC/B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,CACX,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,YAAY,EAAE,KAAK,EACnB,MAAM,EAAE,KAAC,IAAI,IAAC,EAAE,EAAE,cAAc,GAAI,YAEnC,CAAC,CAAC,sBAAsB,CAAC,GACnB,CACV,CAAC;IAEF,2EAA2E;IAC3E,iBAAiB,CAAC;QAChB,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE;QACnD;YACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;SACxE;KACF,CAAC,CAAC;IACH,IAAI,IAAkB,CAAC;IACvB,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI;QACtC,IAAI,GAAG,CACL,KAAC,WAAW,IACV,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAChC,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,MAAM,EAAE,IAAI,GACZ,CACH,CAAC;SACC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,KAAC,gBAAgB,KAAG,CAAC;SAC5D,IAAI,CAAC,QAAQ;QAChB,IAAI,GAAG,CACL,MAAC,KAAK,eACJ,KAAC,UAAU,cAAE,CAAC,CAAC,oBAAoB,CAAC,GAAc,EAClD,KAAC,WAAW,cAAE,IAAI,GAAe,IAC3B,CACT,CAAC;;QAEF,IAAI,GAAG,CACL,KAAC,YAAY,IAEX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,IAFnD,GAAG,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAG1C,CACH,CAAC;IAEJ,OAAO,CACL,KAAC,cAAc,cACb,KAAC,aAAa,cAAE,IAAI,GAAiB,GACtB,CAClB,CAAC;AACJ,CAAC"}
@@ -1,15 +0,0 @@
1
- import { type ReactElement } from 'react';
2
- import { type WorkflowDefinition } from '../../../../shared/workflows.js';
3
- type Change = (change: (definition: WorkflowDefinition) => WorkflowDefinition) => void;
4
- /**
5
- * Edit mode of the status card: the same diagram as view mode, with each status a button whose popover edits it and a
6
- * "+" closing each category's column (even one with no status yet). Problems the server reported for a status mark its
7
- * button and are listed under the diagram, so they show without opening it.
8
- */
9
- export declare function WorkflowFlowEditor({ definition, problems, onChange, }: {
10
- readonly definition: WorkflowDefinition;
11
- readonly problems: ReadonlyMap<string, readonly string[]>;
12
- readonly onChange: Change;
13
- }): ReactElement;
14
- export {};
15
- //# sourceMappingURL=flow-editor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-editor.d.ts","sourceRoot":"","sources":["../../../../../client/pages/config/workflows/flow-editor.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAkB,KAAK,YAAY,EAAoB,MAAM,OAAO,CAAC;AAG5E,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAsBzC,KAAK,MAAM,GAAG,CACZ,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,kBAAkB,KAC3D,IAAI,CAAC;AAqNV;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,YAAY,CAwCf"}
@@ -1,76 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useTranslation } from '@nocobase/i18n/client';
3
- import { ArrowLeftIcon, ArrowRightIcon, LockIcon, PlusIcon, Trash2Icon, } from 'lucide-react';
4
- import { useRef, useState } from 'react';
5
- import { STATUS_NAME_MAX, hasDefaultName, } from '../../../../shared/workflows.js';
6
- import { PmColorSwatches } from '../../../components/pm-labels.js';
7
- import { PmTag } from '../../../components/pm-tag.js';
8
- import { Button } from '../../../components/ui/button.js';
9
- import { Input } from '../../../components/ui/input.js';
10
- import { Popover, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger, } from '../../../components/ui/popover.js';
11
- import { cn } from 'cn';
12
- import { CATEGORY_NODE_CLASS, addStatus, moveStatus, removeStatus, updateStatus, } from './workflow-model.js';
13
- import { WorkflowDiagram } from './workflow-diagram.js';
14
- /** A status's name as the editor shows it: a built-in status still named by default shows its translation. */
15
- function useStatusLabel() {
16
- const { t } = useTranslation();
17
- return (status) => hasDefaultName(status)
18
- ? t(`status.${status.key}`, { defaultValue: status.name })
19
- : status.name;
20
- }
21
- /** Whether the status has a neighbour of its own category in that direction, which is what moving swaps it with. */
22
- function canMove(definition, key, direction) {
23
- const index = definition.states.findIndex((state) => state.key === key);
24
- const category = definition.states[index]?.category;
25
- for (let other = index + direction; other >= 0 && other < definition.states.length; other += direction)
26
- if (definition.states[other].category === category)
27
- return true;
28
- return false;
29
- }
30
- /** One status on the flow strip as a button; its popover renames, recolours, moves or removes it. */
31
- function StatusChip({ definition, status, problems, onChange, }) {
32
- const { t } = useTranslation();
33
- const label = useStatusLabel()(status);
34
- const nameRef = useRef(null);
35
- const [open, setOpen] = useState(false);
36
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsxs(PopoverTrigger, { "aria-label": t('workflows.editStatus', { name: label }), "aria-invalid": problems.length > 0 || undefined, "data-category": status.category, className: cn('flex h-8 w-full items-center justify-center gap-1.5 rounded-lg border px-2 text-sm font-medium hover:brightness-95 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none', CATEGORY_NODE_CLASS[status.category], problems.length > 0 && 'ring-2 ring-destructive'), children: [_jsx("span", { className: 'truncate', children: label }), status.builtIn ? (_jsx(LockIcon, { className: 'size-3 shrink-0 text-muted-foreground', "aria-hidden": 'true' })) : null] }), _jsxs(PopoverContent, { className: 'w-72', initialFocus: nameRef, children: [_jsx(PopoverTitle, { className: 'text-sm font-medium', children: label }), _jsxs("div", { className: 'flex flex-wrap items-center gap-2 text-xs text-muted-foreground', children: [_jsx("code", { children: status.key }), _jsx("span", { children: t(`workflows.categories.${status.category}.title`) }), status.builtIn ? (_jsxs(PmTag, { tone: 'grey', title: t('workflows.builtInHint'), children: [_jsx(LockIcon, { className: 'size-3', "aria-hidden": 'true' }), t('workflows.builtInStatus')] })) : null] }), _jsx(Input, { ref: nameRef, value: label, maxLength: STATUS_NAME_MAX, "aria-label": t('workflows.statusName', { name: label }), "aria-invalid": problems.length > 0 || undefined, className: 'h-8', onChange: (event) => onChange((current) => updateStatus(current, status.key, { name: event.target.value })) }), _jsx(PmColorSwatches, { value: status.color, label: t('workflows.statusColor', { name: label }), onChange: (color) => onChange((current) => updateStatus(current, status.key, { color })) }), _jsxs("div", { className: 'flex items-center gap-1', children: [_jsx(Button, { variant: 'ghost', size: 'icon-sm', disabled: !canMove(definition, status.key, -1), "aria-label": t('workflows.moveEarlier', { name: label }), title: t('workflows.moveEarlier', { name: label }), onClick: () => onChange((current) => moveStatus(current, status.key, -1)), children: _jsx(ArrowLeftIcon, {}) }), _jsx(Button, { variant: 'ghost', size: 'icon-sm', disabled: !canMove(definition, status.key, 1), "aria-label": t('workflows.moveLater', { name: label }), title: t('workflows.moveLater', { name: label }), onClick: () => onChange((current) => moveStatus(current, status.key, 1)), children: _jsx(ArrowRightIcon, {}) }), status.builtIn ? (_jsx("span", { className: 'ml-auto text-xs text-muted-foreground', children: t('workflows.builtInHint') })) : (_jsxs(Button, { variant: 'ghost', size: 'sm', className: 'ml-auto text-destructive', onClick: () => {
37
- setOpen(false);
38
- onChange((current) => removeStatus(current, status.key));
39
- }, children: [_jsx(Trash2Icon, { "data-icon": 'inline-start' }), t('workflows.removeStatus', { name: label })] }))] }), problems.map((problem) => (_jsx("p", { role: 'alert', className: 'text-xs text-destructive', children: problem }, problem)))] })] }));
40
- }
41
- /** "+ Add" under a category's column: a popover that names a new status and adds it at the end of that category. */
42
- function AddStatusChip({ category, onChange, }) {
43
- const { t } = useTranslation();
44
- const title = t(`workflows.categories.${category}.title`);
45
- const nameRef = useRef(null);
46
- const [open, setOpen] = useState(false);
47
- const [name, setName] = useState('');
48
- const submit = (event) => {
49
- event.preventDefault();
50
- if (!name.trim())
51
- return;
52
- onChange((current) => addStatus(current, {
53
- name,
54
- category,
55
- color: category === 'done' ? 'green' : 'gray',
56
- }));
57
- setName('');
58
- setOpen(false);
59
- };
60
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsxs(PopoverTrigger, { "aria-label": t('workflows.newStatusIn', { category: title }), className: cn('flex h-8 w-full max-w-40 items-center justify-center gap-1 rounded-lg border border-dashed text-xs text-muted-foreground hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none'), children: [_jsx(PlusIcon, { className: 'size-3.5', "aria-hidden": 'true' }), t('workflows.addStatus')] }), _jsxs(PopoverContent, { className: 'w-72', initialFocus: nameRef, children: [_jsx(PopoverTitle, { className: 'text-sm font-medium', children: t('workflows.newStatusIn', { category: title }) }), _jsx(PopoverDescription, { className: 'text-xs', children: t(`workflows.categories.${category}.hint`) }), _jsxs("form", { onSubmit: submit, className: 'flex items-center gap-2', children: [_jsx(Input, { ref: nameRef, value: name, maxLength: STATUS_NAME_MAX, placeholder: t('workflows.newStatusPlaceholder'), "aria-label": t('workflows.newStatusName', { category: title }), className: 'h-8', onChange: (event) => setName(event.target.value) }), _jsx(Button, { type: 'submit', size: 'sm', disabled: !name.trim(), children: t('workflows.addStatus') })] })] })] }));
61
- }
62
- /**
63
- * Edit mode of the status card: the same diagram as view mode, with each status a button whose popover edits it and a
64
- * "+" closing each category's column (even one with no status yet). Problems the server reported for a status mark its
65
- * button and are listed under the diagram, so they show without opening it.
66
- */
67
- export function WorkflowFlowEditor({ definition, problems, onChange, }) {
68
- const { t } = useTranslation();
69
- const label = useStatusLabel();
70
- const listed = definition.states.flatMap((status) => (problems.get(status.key) ?? []).map((message) => ({
71
- key: `${status.key}:${message}`,
72
- text: t('workflows.statusProblem', { name: label(status), message }),
73
- })));
74
- return (_jsxs("div", { className: 'space-y-3', children: [_jsx(WorkflowDiagram, { definition: definition, renderStatus: (status) => (_jsx(StatusChip, { definition: definition, status: status, problems: problems.get(status.key) ?? [], onChange: onChange })), renderAdd: (category) => (_jsx(AddStatusChip, { category: category, onChange: onChange })) }), listed.length > 0 ? (_jsx("ul", { className: 'space-y-1', children: listed.map((entry) => (_jsx("li", { role: 'alert', className: 'text-xs text-destructive', children: entry.text }, entry.key))) })) : null] }));
75
- }
76
- //# sourceMappingURL=flow-editor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-editor.js","sourceRoot":"","sources":["../../../../../client/pages/config/workflows/flow-editor.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { type ReactElement } from 'react';
2
- import { type WorkflowDefinition, type WorkflowStatus } from '../../../../shared/workflows.js';
3
- type Change = (change: (definition: WorkflowDefinition) => WorkflowDefinition) => void;
4
- /**
5
- * What entering a status does, in a dialog opened from its row: the rules it has, each a card collapsed to its title
6
- * and a one-line summary, and an "Add rule" menu listing what it may still have, by group: actions on entering, entry
7
- * conditions, and automatic moves (where the system moves the issue once its sub-issues are finished, or on an event
8
- * another plugin contributes through `WorkflowEventsContext`). A rule whose plugin is gone, or a move on an event
9
- * whose plugin is gone, is listed to be removed. The dialog keeps its height and scrolls inside, so its footer stays
10
- * in view. Changes go into the draft; the page's Save sends them with the rest. `add` (a status without rules) shows
11
- * the button as "Add rule" instead of the settings icon.
12
- */
13
- export declare function StatusRulesButton({ status, definition, label, add, onChange, }: {
14
- readonly status: WorkflowStatus;
15
- readonly definition: WorkflowDefinition;
16
- readonly label: string;
17
- readonly add?: boolean;
18
- readonly onChange: Change;
19
- }): ReactElement;
20
- export {};
21
- //# sourceMappingURL=status-rules.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-rules.d.ts","sourceRoot":"","sources":["../../../../../client/pages/config/workflows/status-rules.tsx"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAsDzC,KAAK,MAAM,GAAG,CACZ,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,kBAAkB,KAC3D,IAAI,CAAC;AAwjBV;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,KAAK,EACL,GAAW,EACX,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,YAAY,CAkDf"}