@rytass/bpm-core-react 0.18.0 → 0.19.0

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 (283) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/chunks/{FormBuilderView-BVKY1j_0.js → FormBuilderView-Djlm3y4S.js} +485 -481
  3. package/dist/chunks/FormBuilderView-Djlm3y4S.js.map +1 -0
  4. package/dist/chunks/FormBuilderView-G6uRSywl.cjs +3 -0
  5. package/dist/chunks/FormBuilderView-G6uRSywl.cjs.map +1 -0
  6. package/dist/chunks/{FormRendererView-BsTwZkqU.js → FormRendererView-DHfVgbo6.js} +511 -274
  7. package/dist/chunks/FormRendererView-DHfVgbo6.js.map +1 -0
  8. package/dist/chunks/FormRendererView-DwfFbaip.cjs +6 -0
  9. package/dist/chunks/FormRendererView-DwfFbaip.cjs.map +1 -0
  10. package/dist/chunks/admin-pickers-BjbkBpSJ.cjs +2 -0
  11. package/dist/chunks/admin-pickers-BjbkBpSJ.cjs.map +1 -0
  12. package/dist/chunks/{admin-pickers-Djq3h-UR.js → admin-pickers-DfGxsjpp.js} +42 -42
  13. package/dist/chunks/admin-pickers-DfGxsjpp.js.map +1 -0
  14. package/dist/chunks/{approval-instance-list-page-CPXMP3PL.js → approval-instance-list-page-BnI4t5mD.js} +7 -8
  15. package/dist/chunks/{approval-instance-list-page-CPXMP3PL.js.map → approval-instance-list-page-BnI4t5mD.js.map} +1 -1
  16. package/dist/chunks/{approval-instance-list-page-ax0pm8bt.cjs → approval-instance-list-page-fqvmkBlg.cjs} +2 -2
  17. package/dist/chunks/{approval-instance-list-page-ax0pm8bt.cjs.map → approval-instance-list-page-fqvmkBlg.cjs.map} +1 -1
  18. package/dist/chunks/auth-provider-4BeCw7cI.cjs.map +1 -1
  19. package/dist/chunks/{auth-provider-B5oPmvk2.js → auth-provider-C2b-5mGt.js} +2 -3
  20. package/dist/chunks/{auth-provider-B5oPmvk2.js.map → auth-provider-C2b-5mGt.js.map} +1 -1
  21. package/dist/chunks/{bpm-form-field-Cao0rMol.js → bpm-form-field-9B-Det0u.js} +2 -3
  22. package/dist/chunks/{bpm-form-field-Cao0rMol.js.map → bpm-form-field-9B-Det0u.js.map} +1 -1
  23. package/dist/chunks/bpm-form-field-Bc6k4ZEO.cjs.map +1 -1
  24. package/dist/chunks/{categories-riC33J_j.js → categories-BAdxjNSA.js} +14 -15
  25. package/dist/chunks/{categories-riC33J_j.js.map → categories-BAdxjNSA.js.map} +1 -1
  26. package/dist/chunks/{categories-AxxhqjLZ.cjs → categories-DQUtVEiV.cjs} +2 -2
  27. package/dist/chunks/{categories-AxxhqjLZ.cjs.map → categories-DQUtVEiV.cjs.map} +1 -1
  28. package/dist/chunks/{compose-B1GlrZW9.js → compose-D6zBIc2Z.js} +131 -148
  29. package/dist/chunks/compose-D6zBIc2Z.js.map +1 -0
  30. package/dist/chunks/compose-NH6dsFXD.cjs +2 -0
  31. package/dist/chunks/compose-NH6dsFXD.cjs.map +1 -0
  32. package/dist/chunks/{dashboard-page-DdBvV6YI.js → dashboard-page-BoqNhjT_.js} +5 -6
  33. package/dist/chunks/{dashboard-page-DdBvV6YI.js.map → dashboard-page-BoqNhjT_.js.map} +1 -1
  34. package/dist/chunks/{dashboard-page-BWQBSGDq.cjs → dashboard-page-D7YJ3udk.cjs} +2 -2
  35. package/dist/chunks/{dashboard-page-BWQBSGDq.cjs.map → dashboard-page-D7YJ3udk.cjs.map} +1 -1
  36. package/dist/chunks/{delegations-MxF3uJGW.js → delegations-BfhCDz5e.js} +15 -16
  37. package/dist/chunks/{delegations-MxF3uJGW.js.map → delegations-BfhCDz5e.js.map} +1 -1
  38. package/dist/chunks/{delegations-Ckf03icM.cjs → delegations-BmFGcuhA.cjs} +2 -2
  39. package/dist/chunks/{delegations-Ckf03icM.cjs.map → delegations-BmFGcuhA.cjs.map} +1 -1
  40. package/dist/chunks/{delegations-V9HIe3_P.cjs → delegations-CcS0SHbf.cjs} +2 -2
  41. package/dist/chunks/{delegations-V9HIe3_P.cjs.map → delegations-CcS0SHbf.cjs.map} +1 -1
  42. package/dist/chunks/{delegations-xUt1tj8d.js → delegations-DBh5TT6G.js} +16 -17
  43. package/dist/chunks/{delegations-xUt1tj8d.js.map → delegations-DBh5TT6G.js.map} +1 -1
  44. package/dist/chunks/designer-Be9UI9Tg.cjs +65 -0
  45. package/dist/chunks/designer-Be9UI9Tg.cjs.map +1 -0
  46. package/dist/chunks/{designer-BCLrjb4H.js → designer-uhC_7m2i.js} +1791 -1407
  47. package/dist/chunks/designer-uhC_7m2i.js.map +1 -0
  48. package/dist/chunks/detail-6uw5dmTi.cjs +5 -0
  49. package/dist/chunks/detail-6uw5dmTi.cjs.map +1 -0
  50. package/dist/chunks/{detail-4F39ggBn.js → detail-_GeKqNC-.js} +1012 -972
  51. package/dist/chunks/detail-_GeKqNC-.js.map +1 -0
  52. package/dist/chunks/{format-date-time-CB-LxzqT.js → format-date-time-B0LdmWg4.js} +2 -3
  53. package/dist/chunks/{format-date-time-CB-LxzqT.js.map → format-date-time-B0LdmWg4.js.map} +1 -1
  54. package/dist/chunks/format-date-time-D-cx5M8z.cjs.map +1 -1
  55. package/dist/chunks/{format-member-label-DudVI55w.js → format-member-label-C73FuP-d.js} +2 -3
  56. package/dist/chunks/{format-member-label-DudVI55w.js.map → format-member-label-C73FuP-d.js.map} +1 -1
  57. package/dist/chunks/format-member-label-t7ANTF62.cjs.map +1 -1
  58. package/dist/chunks/{approver-filled-form-Dm3Iw7iw.cjs → instance-error-message-DTARGbGo.cjs} +2 -2
  59. package/dist/chunks/instance-error-message-DTARGbGo.cjs.map +1 -0
  60. package/dist/chunks/{approver-filled-form-ZEwpmsHJ.js → instance-error-message-q6gy5evy.js} +50 -38
  61. package/dist/chunks/instance-error-message-q6gy5evy.js.map +1 -0
  62. package/dist/chunks/language-provider-Bdnx3Gxl.cjs.map +1 -1
  63. package/dist/chunks/{language-provider-B3cEbLe4.js → language-provider-phkWOapf.js} +2 -3
  64. package/dist/chunks/{language-provider-B3cEbLe4.js.map → language-provider-phkWOapf.js.map} +1 -1
  65. package/dist/chunks/{login-C6qlTC6F.js → login-D6cc3bo7.js} +4 -5
  66. package/dist/chunks/{login-C6qlTC6F.js.map → login-D6cc3bo7.js.map} +1 -1
  67. package/dist/chunks/{login-AtVxZBsC.cjs → login-uvVcltrS.cjs} +2 -2
  68. package/dist/chunks/{login-AtVxZBsC.cjs.map → login-uvVcltrS.cjs.map} +1 -1
  69. package/dist/chunks/notifications-Bc4mgSds.cjs.map +1 -1
  70. package/dist/chunks/{notifications-DJ5wzCye.js → notifications-Cvme5Qbl.js} +2 -3
  71. package/dist/chunks/{notifications-DJ5wzCye.js.map → notifications-Cvme5Qbl.js.map} +1 -1
  72. package/dist/chunks/orgs-B_2J2tLX.cjs +2 -0
  73. package/dist/chunks/{orgs-BeeDDWL1.cjs.map → orgs-B_2J2tLX.cjs.map} +1 -1
  74. package/dist/chunks/{orgs-8hje_l2n.js → orgs-DqxMds26.js} +48 -49
  75. package/dist/chunks/{orgs-8hje_l2n.js.map → orgs-DqxMds26.js.map} +1 -1
  76. package/dist/chunks/{providers-B_d5tbCL.js → providers-BbCs23sk.js} +21 -25
  77. package/dist/chunks/{providers-B_d5tbCL.js.map → providers-BbCs23sk.js.map} +1 -1
  78. package/dist/chunks/{providers-chuJvMgv.cjs → providers-D_KAgOOu.cjs} +2 -2
  79. package/dist/chunks/{providers-chuJvMgv.cjs.map → providers-D_KAgOOu.cjs.map} +1 -1
  80. package/dist/chunks/router-adapter--gYs13E8.cjs.map +1 -1
  81. package/dist/chunks/{router-adapter-DftlFTOd.js → router-adapter-CkxCyzf5.js} +2 -3
  82. package/dist/chunks/{router-adapter-DftlFTOd.js.map → router-adapter-CkxCyzf5.js.map} +1 -1
  83. package/dist/chunks/{routes-config-yZbESPlw.js → routes-config-BcNaWJWJ.js} +2 -3
  84. package/dist/chunks/{routes-config-yZbESPlw.js.map → routes-config-BcNaWJWJ.js.map} +1 -1
  85. package/dist/chunks/routes-config-C1j_vFKo.cjs.map +1 -1
  86. package/dist/chunks/task-decision-3d17ZvZE.js +29 -0
  87. package/dist/chunks/task-decision-3d17ZvZE.js.map +1 -0
  88. package/dist/chunks/task-decision-CqZ4WQOC.cjs +2 -0
  89. package/dist/chunks/task-decision-CqZ4WQOC.cjs.map +1 -0
  90. package/dist/chunks/{use-bpm-member-D57LKe_u.js → use-bpm-member-BPzcNU1g.js} +3 -4
  91. package/dist/chunks/{use-bpm-member-D57LKe_u.js.map → use-bpm-member-BPzcNU1g.js.map} +1 -1
  92. package/dist/chunks/use-bpm-member-DpNAQtNC.cjs.map +1 -1
  93. package/dist/chunks/{users-Pl6hY5Y5.js → users-BBtiZ9QQ.js} +22 -25
  94. package/dist/chunks/{users-Pl6hY5Y5.js.map → users-BBtiZ9QQ.js.map} +1 -1
  95. package/dist/chunks/{users-O2L_M3BK.cjs → users-EqSzDhuj.cjs} +2 -2
  96. package/dist/chunks/{users-O2L_M3BK.cjs.map → users-EqSzDhuj.cjs.map} +1 -1
  97. package/dist/components/admin-picker-options.d.cts +11 -0
  98. package/dist/components/admin-picker-options.d.ts +11 -0
  99. package/dist/components/admin-pickers.d.cts +2 -11
  100. package/dist/components/admin-pickers.d.ts +2 -11
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.js +17 -19
  104. package/dist/index.js.map +1 -1
  105. package/dist/lib/task-decision.d.cts +16 -0
  106. package/dist/lib/task-decision.d.ts +16 -0
  107. package/dist/lib/use-org-unit-names.d.cts +10 -0
  108. package/dist/lib/use-org-unit-names.d.ts +10 -0
  109. package/dist/next/index.cjs +1 -1
  110. package/dist/next/index.cjs.map +1 -1
  111. package/dist/next/index.js +7 -8
  112. package/dist/next/index.js.map +1 -1
  113. package/dist/next/workflow-chat-route.cjs +19 -1
  114. package/dist/next/workflow-chat-route.cjs.map +1 -1
  115. package/dist/next/workflow-chat-route.js +2 -3
  116. package/dist/next/workflow-chat-route.js.map +1 -1
  117. package/dist/pages/admin/delegations/index.cjs +1 -1
  118. package/dist/pages/admin/delegations/index.cjs.map +1 -1
  119. package/dist/pages/admin/delegations/index.js +2 -3
  120. package/dist/pages/admin/orgs/index.cjs +1 -1
  121. package/dist/pages/admin/orgs/index.cjs.map +1 -1
  122. package/dist/pages/admin/orgs/index.js +2 -3
  123. package/dist/pages/admin/users/index.cjs +1 -1
  124. package/dist/pages/admin/users/index.cjs.map +1 -1
  125. package/dist/pages/admin/users/index.js +2 -3
  126. package/dist/pages/admin/webhook-endpoints/index.cjs.map +1 -1
  127. package/dist/pages/admin/webhook-endpoints/index.js +1 -2
  128. package/dist/pages/cc/index.cjs.map +1 -1
  129. package/dist/pages/cc/index.js +1 -2
  130. package/dist/pages/dashboard/index.cjs.map +1 -1
  131. package/dist/pages/dashboard/index.js +1 -2
  132. package/dist/pages/delegations/index.cjs +1 -1
  133. package/dist/pages/delegations/index.cjs.map +1 -1
  134. package/dist/pages/delegations/index.js +2 -3
  135. package/dist/pages/inbox/index.cjs.map +1 -1
  136. package/dist/pages/inbox/index.js +1 -2
  137. package/dist/pages/instances/detail/index.cjs +1 -1
  138. package/dist/pages/instances/detail/index.cjs.map +1 -1
  139. package/dist/pages/instances/detail/index.js +2 -3
  140. package/dist/pages/instances/new/index.cjs.map +1 -1
  141. package/dist/pages/instances/new/index.js +1 -2
  142. package/dist/pages/login/index.cjs +1 -1
  143. package/dist/pages/login/index.cjs.map +1 -1
  144. package/dist/pages/login/index.js +2 -3
  145. package/dist/pages/root/index.cjs.map +1 -1
  146. package/dist/pages/root/index.js +1 -2
  147. package/dist/pages/search/index.cjs.map +1 -1
  148. package/dist/pages/search/index.js +1 -2
  149. package/dist/pages/sent/index.cjs.map +1 -1
  150. package/dist/pages/sent/index.js +1 -2
  151. package/dist/pages/settings/notifications/index.cjs.map +1 -1
  152. package/dist/pages/settings/notifications/index.js +2 -3
  153. package/dist/pages/templates/categories/index.cjs +1 -1
  154. package/dist/pages/templates/categories/index.cjs.map +1 -1
  155. package/dist/pages/templates/categories/index.js +2 -3
  156. package/dist/pages/templates/compose/index.cjs +1 -1
  157. package/dist/pages/templates/compose/index.cjs.map +1 -1
  158. package/dist/pages/templates/compose/index.js +2 -3
  159. package/dist/pages/templates/designer/index.cjs +1 -1
  160. package/dist/pages/templates/designer/index.cjs.map +1 -1
  161. package/dist/pages/templates/designer/index.js +2 -3
  162. package/dist/pages/templates/index.cjs.map +1 -1
  163. package/dist/pages/templates/index.js +1 -2
  164. package/dist/pages/templates/versions/index.cjs.map +1 -1
  165. package/dist/pages/templates/versions/index.js +1 -2
  166. package/dist/views/admin/delegations/index.cjs +1 -1
  167. package/dist/views/admin/delegations/index.js +1 -1
  168. package/dist/views/admin/index.cjs +1 -1
  169. package/dist/views/admin/index.js +3 -3
  170. package/dist/views/admin/orgs/index.cjs +1 -1
  171. package/dist/views/admin/orgs/index.js +1 -1
  172. package/dist/views/admin/users/index.cjs +1 -1
  173. package/dist/views/admin/users/index.js +1 -1
  174. package/dist/views/admin/webhook-endpoints/index.cjs +1 -1
  175. package/dist/views/admin/webhook-endpoints/index.cjs.map +1 -1
  176. package/dist/views/admin/webhook-endpoints/index.js +52 -53
  177. package/dist/views/admin/webhook-endpoints/index.js.map +1 -1
  178. package/dist/views/cc/index.cjs +1 -1
  179. package/dist/views/cc/index.cjs.map +1 -1
  180. package/dist/views/cc/index.js +2 -3
  181. package/dist/views/dashboard/index.cjs +1 -1
  182. package/dist/views/dashboard/index.cjs.map +1 -1
  183. package/dist/views/dashboard/index.js +2 -3
  184. package/dist/views/delegations/index.cjs +1 -1
  185. package/dist/views/delegations/index.js +1 -1
  186. package/dist/views/forms/builder/index.cjs +1 -1
  187. package/dist/views/forms/builder/index.js +1 -1
  188. package/dist/views/forms/renderer/FormRendererView.d.cts +24 -1
  189. package/dist/views/forms/renderer/FormRendererView.d.ts +24 -1
  190. package/dist/views/forms/renderer/file-upload-field.d.cts +84 -0
  191. package/dist/views/forms/renderer/file-upload-field.d.ts +84 -0
  192. package/dist/views/forms/renderer/form-value-readers.d.cts +7 -0
  193. package/dist/views/forms/renderer/form-value-readers.d.ts +7 -0
  194. package/dist/views/forms/renderer/index.cjs +1 -1
  195. package/dist/views/forms/renderer/index.d.cts +1 -0
  196. package/dist/views/forms/renderer/index.d.ts +1 -0
  197. package/dist/views/forms/renderer/index.js +1 -1
  198. package/dist/views/forms/renderer/org-unit-field-options.d.cts +44 -0
  199. package/dist/views/forms/renderer/org-unit-field-options.d.ts +44 -0
  200. package/dist/views/forms/renderer/org-unit-field.d.cts +23 -0
  201. package/dist/views/forms/renderer/org-unit-field.d.ts +23 -0
  202. package/dist/views/inbox/index.cjs +1 -1
  203. package/dist/views/inbox/index.cjs.map +1 -1
  204. package/dist/views/inbox/index.js +133 -137
  205. package/dist/views/inbox/index.js.map +1 -1
  206. package/dist/views/instances/approver-filled-form.d.cts +9 -2
  207. package/dist/views/instances/approver-filled-form.d.ts +9 -2
  208. package/dist/views/instances/detail/index.cjs +1 -1
  209. package/dist/views/instances/detail/index.js +1 -1
  210. package/dist/views/instances/detail/sections/InstanceFormSection.d.cts +19 -2
  211. package/dist/views/instances/detail/sections/InstanceFormSection.d.ts +19 -2
  212. package/dist/views/instances/detail/sections/InstanceHistorySection.d.cts +8 -1
  213. package/dist/views/instances/detail/sections/InstanceHistorySection.d.ts +8 -1
  214. package/dist/views/instances/detail/sections/container-helpers.d.cts +0 -1
  215. package/dist/views/instances/detail/sections/container-helpers.d.ts +0 -1
  216. package/dist/views/instances/detail/sections/shared.d.cts +3 -4
  217. package/dist/views/instances/detail/sections/shared.d.ts +3 -4
  218. package/dist/views/instances/instance-error-message.d.cts +5 -0
  219. package/dist/views/instances/instance-error-message.d.ts +5 -0
  220. package/dist/views/instances/new/index.cjs +1 -1
  221. package/dist/views/instances/new/index.cjs.map +1 -1
  222. package/dist/views/instances/new/index.js +78 -77
  223. package/dist/views/instances/new/index.js.map +1 -1
  224. package/dist/views/login/index.cjs +1 -1
  225. package/dist/views/login/index.js +1 -1
  226. package/dist/views/search/index.cjs +1 -1
  227. package/dist/views/search/index.cjs.map +1 -1
  228. package/dist/views/search/index.js +2 -3
  229. package/dist/views/sent/index.cjs +1 -1
  230. package/dist/views/sent/index.cjs.map +1 -1
  231. package/dist/views/sent/index.js +2 -3
  232. package/dist/views/settings/index.js +1 -1
  233. package/dist/views/settings/notifications/index.js +1 -1
  234. package/dist/views/templates/categories/index.cjs +1 -1
  235. package/dist/views/templates/categories/index.js +1 -1
  236. package/dist/views/templates/compose/index.cjs +1 -1
  237. package/dist/views/templates/compose/index.js +1 -1
  238. package/dist/views/templates/designer/approver-resolver-model.d.cts +211 -0
  239. package/dist/views/templates/designer/approver-resolver-model.d.ts +211 -0
  240. package/dist/views/templates/designer/dry-run-assignee-label.d.cts +2 -0
  241. package/dist/views/templates/designer/dry-run-assignee-label.d.ts +2 -0
  242. package/dist/views/templates/designer/dry-run-sample-data.d.cts +6 -0
  243. package/dist/views/templates/designer/dry-run-sample-data.d.ts +6 -0
  244. package/dist/views/templates/designer/dynamic-form-resolver-options.d.cts +25 -0
  245. package/dist/views/templates/designer/dynamic-form-resolver-options.d.ts +25 -0
  246. package/dist/views/templates/designer/index.cjs +1 -1
  247. package/dist/views/templates/designer/index.js +1 -1
  248. package/dist/views/templates/designer/node-actor-resolver-options.d.cts +38 -0
  249. package/dist/views/templates/designer/node-actor-resolver-options.d.ts +38 -0
  250. package/dist/views/templates/index.cjs +1 -1
  251. package/dist/views/templates/index.cjs.map +1 -1
  252. package/dist/views/templates/index.js +50 -51
  253. package/dist/views/templates/index.js.map +1 -1
  254. package/dist/views/templates/versions/index.cjs +1 -1
  255. package/dist/views/templates/versions/index.cjs.map +1 -1
  256. package/dist/views/templates/versions/index.js +7 -8
  257. package/dist/views/templates/versions/index.js.map +1 -1
  258. package/package.json +3 -3
  259. package/dist/chunks/FormBuilderView-BVKY1j_0.js.map +0 -1
  260. package/dist/chunks/FormBuilderView-SrGltzFT.cjs +0 -3
  261. package/dist/chunks/FormBuilderView-SrGltzFT.cjs.map +0 -1
  262. package/dist/chunks/FormRendererView-BsTwZkqU.js.map +0 -1
  263. package/dist/chunks/FormRendererView-GpsE03np.cjs +0 -4
  264. package/dist/chunks/FormRendererView-GpsE03np.cjs.map +0 -1
  265. package/dist/chunks/admin-pickers-BRHk3qKq.cjs +0 -2
  266. package/dist/chunks/admin-pickers-BRHk3qKq.cjs.map +0 -1
  267. package/dist/chunks/admin-pickers-Djq3h-UR.js.map +0 -1
  268. package/dist/chunks/approver-filled-form-Dm3Iw7iw.cjs.map +0 -1
  269. package/dist/chunks/approver-filled-form-ZEwpmsHJ.js.map +0 -1
  270. package/dist/chunks/compose-B1GlrZW9.js.map +0 -1
  271. package/dist/chunks/compose-DZk-SfHT.cjs +0 -2
  272. package/dist/chunks/compose-DZk-SfHT.cjs.map +0 -1
  273. package/dist/chunks/designer-BCLrjb4H.js.map +0 -1
  274. package/dist/chunks/designer-BYYxEN9L.cjs +0 -65
  275. package/dist/chunks/designer-BYYxEN9L.cjs.map +0 -1
  276. package/dist/chunks/detail-4F39ggBn.js.map +0 -1
  277. package/dist/chunks/detail-BkMtA_0K.cjs +0 -2
  278. package/dist/chunks/detail-BkMtA_0K.cjs.map +0 -1
  279. package/dist/chunks/orgs-BeeDDWL1.cjs +0 -2
  280. package/dist/chunks/task-node-label-BF6UllxP.cjs +0 -2
  281. package/dist/chunks/task-node-label-BF6UllxP.cjs.map +0 -1
  282. package/dist/chunks/task-node-label-CWZgOBj0.js +0 -9
  283. package/dist/chunks/task-node-label-CWZgOBj0.js.map +0 -1
@@ -1,30 +1,30 @@
1
1
  "use client";
2
- import { r as e } from "./router-adapter-DftlFTOd.js";
3
- import { i as t } from "./language-provider-B3cEbLe4.js";
4
- import { r as n } from "./routes-config-yZbESPlw.js";
5
- import { t as r } from "./FormRendererView-BsTwZkqU.js";
6
- import { t as i } from "./FormBuilderView-BVKY1j_0.js";
7
- import { n as a, t as o } from "./designer-BCLrjb4H.js";
8
- import { useCallback as s, useEffect as c, useState as l } from "react";
9
- import { Button as u, Empty as d, FormField as f, Input as p, PageHeader as m, Section as h, SectionGroup as g, Select as _, Step as v, Stepper as y, Table as b, Tag as x, Typography as S } from "@mezzanine-ui/react";
10
- import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
11
- import { FormFieldLayout as E } from "@mezzanine-ui/core/form";
12
- import D from "@mezzanine-ui/react/ContentHeader";
13
- import { composeApprovalTemplateWithForm as O, listApprovalTemplateCategoriesPage as k } from "@rytass/bpm-core-client/template";
14
- //#region src/views/templates/compose/steps/ComposeFormStep.tsx
15
- var A = {
2
+ import { r as e } from "./router-adapter-CkxCyzf5.js";
3
+ import { r as t } from "./routes-config-BcNaWJWJ.js";
4
+ import { t as n } from "./FormBuilderView-Djlm3y4S.js";
5
+ import { t as r } from "./FormRendererView-DHfVgbo6.js";
6
+ import { n as i, r as a, t as o } from "./designer-uhC_7m2i.js";
7
+ import { i as s } from "./language-provider-phkWOapf.js";
8
+ import { useCallback as c, useEffect as l, useState as u } from "react";
9
+ import { Button as d, Empty as f, FormField as p, Input as m, PageHeader as h, Section as g, SectionGroup as _, Select as v, Step as y, Stepper as b, Table as x, Tag as S, Typography as C } from "@mezzanine-ui/react";
10
+ import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
11
+ import { FormFieldLayout as D } from "@mezzanine-ui/core/form";
12
+ import O from "@mezzanine-ui/react/ContentHeader";
13
+ import { composeApprovalTemplateWithForm as k, listApprovalTemplateCategoriesPage as A } from "@rytass/bpm-core-client/template";
14
+ // src/views/templates/compose/steps/ComposeFormStep.tsx
15
+ var j = {
16
16
  id: "UNCATEGORIZED",
17
17
  name: "未分類"
18
- }, j = 100;
19
- function M({ categoryId: e, formSchema: t, formUiSchema: n, name: r, onCategoryIdChange: a, onFormChange: o, onNameChange: s }) {
20
- let [u, d] = l([]);
21
- c(() => {
18
+ }, M = 100;
19
+ function N({ categoryId: e, formSchema: t, formUiSchema: r, name: i, onCategoryIdChange: a, onFormChange: o, onNameChange: s }) {
20
+ let [c, d] = u([]);
21
+ l(() => {
22
22
  let e = !0;
23
23
  return (async () => {
24
24
  try {
25
- let t = await k({
25
+ let t = await A({
26
26
  page: 1,
27
- pageSize: j,
27
+ pageSize: M,
28
28
  searchText: "",
29
29
  status: "ACTIVE"
30
30
  });
@@ -36,120 +36,119 @@ function M({ categoryId: e, formSchema: t, formUiSchema: n, name: r, onCategoryI
36
36
  e = !1;
37
37
  };
38
38
  }, []);
39
- let m = [A, ...u.map((e) => ({
39
+ let f = [j, ...c.map((e) => ({
40
40
  id: e.id,
41
41
  name: e.name
42
- }))], h = m.find((t) => t.id === e) ?? A;
43
- return /* @__PURE__ */ T(C, { children: [
44
- /* @__PURE__ */ T("div", {
45
- style: N,
46
- children: [/* @__PURE__ */ w(f, {
42
+ }))], h = f.find((t) => t.id === e) ?? j;
43
+ return /* @__PURE__ */ E(w, { children: [
44
+ /* @__PURE__ */ E("div", {
45
+ style: P,
46
+ children: [/* @__PURE__ */ T(p, {
47
47
  label: "名稱",
48
- layout: E.VERTICAL,
48
+ layout: D.VERTICAL,
49
49
  name: "composeName",
50
- children: /* @__PURE__ */ w(p, {
50
+ children: /* @__PURE__ */ T(m, {
51
51
  fullWidth: !0,
52
52
  onChange: (e) => s(e.target.value),
53
53
  placeholder: "例如:請款簽核",
54
- value: r
54
+ value: i
55
55
  })
56
- }), /* @__PURE__ */ w(f, {
56
+ }), /* @__PURE__ */ T(p, {
57
57
  label: "分類(選填)",
58
- layout: E.VERTICAL,
58
+ layout: D.VERTICAL,
59
59
  name: "composeCategory",
60
- children: /* @__PURE__ */ w(_, {
60
+ children: /* @__PURE__ */ T(v, {
61
61
  clearable: !1,
62
62
  fullWidth: !0,
63
- onChange: (e) => a(e && e.id !== A.id ? e.id : null),
64
- options: m,
63
+ onChange: (e) => a(e && e.id !== j.id ? e.id : null),
64
+ options: f,
65
65
  placeholder: "未分類",
66
66
  value: h
67
67
  })
68
68
  })]
69
69
  }),
70
- /* @__PURE__ */ w(S, {
70
+ /* @__PURE__ */ T(C, {
71
71
  color: "text-neutral",
72
72
  variant: "caption",
73
73
  children: "先設計表單欄位,下一步的流程條件分流即可直接引用這些欄位。"
74
74
  }),
75
- /* @__PURE__ */ w(i, {
75
+ /* @__PURE__ */ T(n, {
76
76
  onChange: o,
77
77
  value: {
78
78
  schema: t,
79
- uiSchema: n
79
+ uiSchema: r
80
80
  }
81
81
  })
82
82
  ] });
83
83
  }
84
- var N = {
84
+ var P = {
85
85
  display: "grid",
86
86
  gap: 16,
87
87
  gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))"
88
88
  };
89
- //#endregion
90
- //#region src/views/templates/compose/steps/ComposeReviewStep.tsx
91
- function P({ formSchema: e, formUiSchema: t, initiatorPolicyCel: n, name: i, publishError: a, workflowDefinition: o }) {
92
- let s = o?.nodes ?? [], c = o?.edges ?? [], l = e.fields.length, u = new Map(s.map((e) => [e.id, e.data.label])), f = s.map((e) => ({
93
- detail: R(e) ?? "—",
89
+ // src/views/templates/compose/steps/ComposeReviewStep.tsx
90
+ function F({ formSchema: e, formUiSchema: t, initiatorPolicyCel: n, name: i, publishError: a, workflowDefinition: o }) {
91
+ let s = o?.nodes ?? [], c = o?.edges ?? [], l = e.fields.length, u = new Map(s.map((e) => [e.id, e.data.label])), d = s.map((e) => ({
92
+ detail: z(e) ?? "—",
94
93
  key: e.id,
95
94
  label: e.data.label,
96
- typeLabel: L(e)
95
+ typeLabel: R(e)
97
96
  })), p = c.filter((e) => !!e.data.condition).map((e) => ({
98
97
  condition: e.data.condition ?? "",
99
98
  key: e.id,
100
99
  source: u.get(e.source) ?? e.source,
101
100
  target: u.get(e.target) ?? e.target
102
101
  }));
103
- return /* @__PURE__ */ T("div", {
104
- style: z,
102
+ return /* @__PURE__ */ E("div", {
103
+ style: B,
105
104
  children: [
106
- /* @__PURE__ */ w(S, {
105
+ /* @__PURE__ */ T(C, {
107
106
  component: "h2",
108
- style: B,
107
+ style: V,
109
108
  variant: "h2",
110
109
  children: i || "(未命名)"
111
110
  }),
112
- /* @__PURE__ */ T("div", {
113
- style: z,
114
- children: [/* @__PURE__ */ w(S, {
111
+ /* @__PURE__ */ E("div", {
112
+ style: B,
113
+ children: [/* @__PURE__ */ T(C, {
115
114
  variant: "h3",
116
115
  children: "表單預覽"
117
- }), l > 0 ? /* @__PURE__ */ w(r, {
116
+ }), l > 0 ? /* @__PURE__ */ T(r, {
118
117
  dataSourceContext: { kind: "preview" },
119
118
  readonly: !0,
120
119
  schema: e,
121
120
  uiSchema: t
122
- }) : /* @__PURE__ */ w(d, { title: "尚未設計表單欄位" })]
121
+ }) : /* @__PURE__ */ T(f, { title: "尚未設計表單欄位" })]
123
122
  }),
124
- /* @__PURE__ */ T("div", {
125
- style: z,
123
+ /* @__PURE__ */ E("div", {
124
+ style: B,
126
125
  children: [
127
- /* @__PURE__ */ w(S, {
126
+ /* @__PURE__ */ T(C, {
128
127
  variant: "h3",
129
128
  children: "流程概覽"
130
129
  }),
131
- s.length > 0 ? /* @__PURE__ */ w(b, {
132
- columns: F,
133
- dataSource: f,
130
+ s.length > 0 ? /* @__PURE__ */ T(x, {
131
+ columns: I,
132
+ dataSource: d,
134
133
  fullWidth: !0
135
- }) : /* @__PURE__ */ w(d, { title: "尚未設計流程節點" }),
136
- p.length > 0 ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(S, {
134
+ }) : /* @__PURE__ */ T(f, { title: "尚未設計流程節點" }),
135
+ p.length > 0 ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(C, {
137
136
  color: "text-neutral",
138
137
  variant: "caption",
139
138
  children: "條件分流"
140
- }), /* @__PURE__ */ w(b, {
141
- columns: I,
139
+ }), /* @__PURE__ */ T(x, {
140
+ columns: L,
142
141
  dataSource: p,
143
142
  fullWidth: !0
144
143
  })] }) : null,
145
- n ? /* @__PURE__ */ T(S, {
144
+ n ? /* @__PURE__ */ E(C, {
146
145
  color: "text-neutral",
147
146
  variant: "caption",
148
147
  children: ["發起權限:", n]
149
148
  }) : null
150
149
  ]
151
150
  }),
152
- a ? /* @__PURE__ */ w(S, {
151
+ a ? /* @__PURE__ */ T(C, {
153
152
  color: "text-error",
154
153
  variant: "body",
155
154
  children: a
@@ -157,10 +156,10 @@ function P({ formSchema: e, formUiSchema: t, initiatorPolicyCel: n, name: i, pub
157
156
  ]
158
157
  });
159
158
  }
160
- var F = [
159
+ var I = [
161
160
  {
162
161
  key: "type",
163
- render: (e) => /* @__PURE__ */ w(x, {
162
+ render: (e) => /* @__PURE__ */ T(S, {
164
163
  label: e.typeLabel,
165
164
  size: "sub",
166
165
  type: "static"
@@ -179,7 +178,7 @@ var F = [
179
178
  title: "簽核方式",
180
179
  width: 160
181
180
  }
182
- ], I = [
181
+ ], L = [
183
182
  {
184
183
  dataIndex: "source",
185
184
  key: "source",
@@ -198,7 +197,7 @@ var F = [
198
197
  title: "條件"
199
198
  }
200
199
  ];
201
- function L(e) {
200
+ function R(e) {
202
201
  switch (e.type) {
203
202
  case "startEvent": return "開始";
204
203
  case "endEvent": return e.data.endState === "REJECTED" ? "結束(駁回)" : "結束(核准)";
@@ -209,33 +208,20 @@ function L(e) {
209
208
  default: return "節點";
210
209
  }
211
210
  }
212
- function R(e) {
213
- if (e.type !== "userTask") return null;
214
- switch (e.data.approverResolver.type) {
215
- case "DIRECT": return "指定成員";
216
- case "POSITION": return "指定職位";
217
- case "ORG_UNIT_MEMBER": return "單位成員";
218
- case "ORG_UNIT_POSITION": return "單位職位";
219
- case "ORG_MANAGER": return "主管";
220
- case "ORG_MANAGER_CHAIN": return "主管鏈";
221
- case "ORG_UNIT_MANAGER": return "單位主管";
222
- case "DYNAMIC_FORM": return "依表單欄位指定";
223
- case "EXPRESSION": return "運算式";
224
- default: return "簽核人";
225
- }
211
+ function z(e) {
212
+ return e.type === "userTask" ? a(e.data.approverResolver) : null;
226
213
  }
227
- var z = {
214
+ var B = {
228
215
  display: "grid",
229
216
  gap: 12
230
- }, B = { marginTop: "var(--mzn-spacing-padding-vertical-spacious)" };
231
- //#endregion
232
- //#region src/views/templates/compose/steps/ComposeWorkflowStep.tsx
233
- function V({ aiAssistantAvailable: e = !1, formSchema: t, initiatorPolicyCel: n, onInitiatorPolicyChange: r, onWorkflowChange: i, showAiAssistant: a = !1, workflowDefinition: s }) {
234
- return /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(S, {
217
+ }, V = { marginTop: "var(--mzn-spacing-padding-vertical-spacious)" };
218
+ // src/views/templates/compose/steps/ComposeWorkflowStep.tsx
219
+ function H({ aiAssistantAvailable: e = !1, formSchema: t, initiatorPolicyCel: n, onInitiatorPolicyChange: r, onWorkflowChange: i, showAiAssistant: a = !1, workflowDefinition: s }) {
220
+ return /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(C, {
235
221
  color: "text-neutral",
236
222
  variant: "caption",
237
223
  children: "設計簽核節點與條件分流;條件可直接引用上一步設計的表單欄位。"
238
- }), /* @__PURE__ */ w(o, {
224
+ }), /* @__PURE__ */ T(o, {
239
225
  aiAssistantAvailable: e,
240
226
  embedded: !0,
241
227
  formSchemaOverride: t,
@@ -246,50 +232,49 @@ function V({ aiAssistantAvailable: e = !1, formSchema: t, initiatorPolicyCel: n,
246
232
  showAiAssistant: a
247
233
  })] });
248
234
  }
249
- //#endregion
250
- //#region src/views/templates/compose/use-template-compose-wizard.ts
251
- var H = {
235
+ // src/views/templates/compose/use-template-compose-wizard.ts
236
+ var U = {
252
237
  fields: [],
253
238
  schemaVersion: 1
254
- }, U = {
239
+ }, W = {
255
240
  layout: [],
256
241
  schemaVersion: 1
257
242
  };
258
- function W() {
259
- let e = t(), [n, r] = l(0), [i, o] = l(""), [c, u] = l(null), [d, f] = l(H), [p, m] = l(U), [h, g] = l(null), [_, v] = l(null), [y, b] = l("idle"), [x, S] = l(null), C = i.trim().length > 0 && d.fields.length > 0, w = s((e) => {
260
- r(e);
261
- }, []), T = s(() => {
262
- r((e) => e < 2 ? e + 1 : e);
263
- }, []), E = s(() => {
264
- r((e) => e > 0 ? e - 1 : e);
265
- }, []), D = s((e) => {
243
+ function G() {
244
+ let e = s(), [t, n] = u(0), [r, a] = u(""), [o, l] = u(null), [d, f] = u(U), [p, m] = u(W), [h, g] = u(null), [_, v] = u(null), [y, b] = u("idle"), [x, S] = u(null), C = r.trim().length > 0 && d.fields.length > 0, w = c((e) => {
245
+ n(e);
246
+ }, []), T = c(() => {
247
+ n((e) => e < 2 ? e + 1 : e);
248
+ }, []), E = c(() => {
249
+ n((e) => e > 0 ? e - 1 : e);
250
+ }, []), D = c((e) => {
266
251
  f(e.schema), m(e.uiSchema);
267
- }, []), k = s((e) => {
252
+ }, []), O = c((e) => {
268
253
  g(e);
269
- }, []), A = s((e) => {
254
+ }, []), A = c((e) => {
270
255
  v(e);
271
256
  }, []);
272
257
  return {
273
258
  canLeaveBasics: C,
274
- categoryId: c,
275
- currentStep: n,
259
+ categoryId: o,
260
+ currentStep: t,
276
261
  formSchema: d,
277
262
  formUiSchema: p,
278
263
  goBack: E,
279
264
  goNext: T,
280
265
  goToStep: w,
281
266
  initiatorPolicyCel: _,
282
- name: i,
283
- publish: s(async () => {
267
+ name: r,
268
+ publish: c(async () => {
284
269
  b("submitting"), S(null);
285
- let t = h ?? G;
270
+ let t = h ?? K;
286
271
  try {
287
- let e = await O({
272
+ let e = await k({
288
273
  category: null,
289
- categoryId: c,
274
+ categoryId: o,
290
275
  formDefinitionId: null,
291
276
  formDescription: null,
292
- formName: i,
277
+ formName: r,
293
278
  initiatorPolicyCel: _,
294
279
  notificationConfig: null,
295
280
  publish: !0,
@@ -297,34 +282,34 @@ function W() {
297
282
  slaDefaults: null,
298
283
  templateDescription: null,
299
284
  templateId: null,
300
- templateName: i,
285
+ templateName: r,
301
286
  uiSchema: p,
302
287
  workflowDefinition: t
303
288
  });
304
289
  return b("success"), e;
305
290
  } catch (n) {
306
- return S(a(n, e, t)), b("error"), null;
291
+ return S(i(n, e, t)), b("error"), null;
307
292
  }
308
293
  }, [
309
- c,
294
+ o,
310
295
  d,
311
296
  p,
312
297
  _,
313
298
  e,
314
- i,
299
+ r,
315
300
  h
316
301
  ]),
317
302
  publishError: x,
318
303
  publishPhase: y,
319
- setCategoryId: u,
304
+ setCategoryId: l,
320
305
  setFormValue: D,
321
306
  setInitiatorPolicyCel: A,
322
- setName: o,
323
- setWorkflowDefinition: k,
307
+ setName: a,
308
+ setWorkflowDefinition: O,
324
309
  workflowDefinition: h
325
310
  };
326
311
  }
327
- var G = {
312
+ var K = {
328
313
  edges: [],
329
314
  meta: { schemaVersion: 1 },
330
315
  nodes: [{
@@ -349,42 +334,41 @@ var G = {
349
334
  type: "endEvent"
350
335
  }]
351
336
  };
352
- //#endregion
353
- //#region src/views/templates/compose/TemplateComposeWizardView.tsx
354
- function K({ aiAssistantAvailable: t = !1, showAiAssistant: r = !1 } = {}) {
355
- let i = e(), a = n(), o = W(), s = o.publishPhase === "submitting";
337
+ // src/views/templates/compose/TemplateComposeWizardView.tsx
338
+ function q({ aiAssistantAvailable: n = !1, showAiAssistant: r = !1 } = {}) {
339
+ let i = e(), a = t(), o = G(), s = o.publishPhase === "submitting";
356
340
  async function c() {
357
341
  let e = await o.publish();
358
342
  e && i.push(a.templateDesigner(e.templateId));
359
343
  }
360
- return /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(m, { children: /* @__PURE__ */ w(D, {
344
+ return /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(h, { children: /* @__PURE__ */ T(O, {
361
345
  description: "一次完成表單與流程設計,發佈後即可直接發起。",
362
346
  title: "建立模板(表單 + 流程)",
363
- children: /* @__PURE__ */ w(u, {
347
+ children: /* @__PURE__ */ T(d, {
364
348
  disabled: s,
365
349
  onClick: () => i.push(a.templates()),
366
350
  variant: "base-secondary",
367
351
  children: "返回模板列表"
368
352
  })
369
- }) }), /* @__PURE__ */ w(g, { children: /* @__PURE__ */ T(h, { children: [
370
- /* @__PURE__ */ T(y, {
353
+ }) }), /* @__PURE__ */ T(_, { children: /* @__PURE__ */ E(g, { children: [
354
+ /* @__PURE__ */ E(b, {
371
355
  currentStep: o.currentStep,
372
356
  children: [
373
- /* @__PURE__ */ w(v, {
357
+ /* @__PURE__ */ T(y, {
374
358
  description: "設計欄位與版面",
375
359
  title: "表單設計"
376
360
  }),
377
- /* @__PURE__ */ w(v, {
361
+ /* @__PURE__ */ T(y, {
378
362
  description: "設計簽核節點與條件",
379
363
  title: "流程設計"
380
364
  }),
381
- /* @__PURE__ */ w(v, {
365
+ /* @__PURE__ */ T(y, {
382
366
  description: "確認後發佈",
383
367
  title: "檢視並發佈"
384
368
  })
385
369
  ]
386
370
  }),
387
- o.currentStep === 0 ? /* @__PURE__ */ w(M, {
371
+ o.currentStep === 0 ? /* @__PURE__ */ T(N, {
388
372
  categoryId: o.categoryId,
389
373
  formSchema: o.formSchema,
390
374
  formUiSchema: o.formUiSchema,
@@ -393,8 +377,8 @@ function K({ aiAssistantAvailable: t = !1, showAiAssistant: r = !1 } = {}) {
393
377
  onFormChange: o.setFormValue,
394
378
  onNameChange: o.setName
395
379
  }) : null,
396
- o.currentStep === 1 ? /* @__PURE__ */ w(V, {
397
- aiAssistantAvailable: t,
380
+ o.currentStep === 1 ? /* @__PURE__ */ T(H, {
381
+ aiAssistantAvailable: n,
398
382
  formSchema: o.formSchema,
399
383
  initiatorPolicyCel: o.initiatorPolicyCel,
400
384
  onInitiatorPolicyChange: o.setInitiatorPolicyCel,
@@ -402,7 +386,7 @@ function K({ aiAssistantAvailable: t = !1, showAiAssistant: r = !1 } = {}) {
402
386
  showAiAssistant: r,
403
387
  workflowDefinition: o.workflowDefinition
404
388
  }) : null,
405
- o.currentStep === 2 ? /* @__PURE__ */ w(P, {
389
+ o.currentStep === 2 ? /* @__PURE__ */ T(F, {
406
390
  formSchema: o.formSchema,
407
391
  formUiSchema: o.formUiSchema,
408
392
  initiatorPolicyCel: o.initiatorPolicyCel,
@@ -410,25 +394,25 @@ function K({ aiAssistantAvailable: t = !1, showAiAssistant: r = !1 } = {}) {
410
394
  publishError: o.publishError,
411
395
  workflowDefinition: o.workflowDefinition
412
396
  }) : null,
413
- /* @__PURE__ */ T("div", {
414
- style: q,
415
- children: [o.currentStep === 0 && !o.canLeaveBasics ? /* @__PURE__ */ w(S, {
397
+ /* @__PURE__ */ E("div", {
398
+ style: J,
399
+ children: [o.currentStep === 0 && !o.canLeaveBasics ? /* @__PURE__ */ T(C, {
416
400
  color: "text-neutral",
417
401
  variant: "caption",
418
402
  children: "請填寫模板名稱、表單名稱,並至少新增一個表單欄位。"
419
- }) : /* @__PURE__ */ w("span", {}), /* @__PURE__ */ T("div", {
420
- style: J,
421
- children: [/* @__PURE__ */ w(u, {
403
+ }) : /* @__PURE__ */ T("span", {}), /* @__PURE__ */ E("div", {
404
+ style: Y,
405
+ children: [/* @__PURE__ */ T(d, {
422
406
  disabled: o.currentStep === 0 || s,
423
407
  onClick: o.goBack,
424
408
  variant: "base-secondary",
425
409
  children: "上一步"
426
- }), o.currentStep < 2 ? /* @__PURE__ */ w(u, {
410
+ }), o.currentStep < 2 ? /* @__PURE__ */ T(d, {
427
411
  disabled: o.currentStep === 0 && !o.canLeaveBasics,
428
412
  onClick: o.goNext,
429
413
  variant: "base-primary",
430
414
  children: "下一步"
431
- }) : /* @__PURE__ */ w(u, {
415
+ }) : /* @__PURE__ */ T(d, {
432
416
  disabled: s,
433
417
  loading: s,
434
418
  onClick: () => {
@@ -441,17 +425,16 @@ function K({ aiAssistantAvailable: t = !1, showAiAssistant: r = !1 } = {}) {
441
425
  })
442
426
  ] }) })] });
443
427
  }
444
- var q = {
428
+ var J = {
445
429
  alignItems: "center",
446
430
  display: "flex",
447
431
  marginTop: "var(--mzn-spacing-padding-vertical-spacious)",
448
432
  justifyContent: "space-between",
449
433
  gap: 16
450
- }, J = {
434
+ }, Y = {
451
435
  display: "flex",
452
436
  gap: 8
453
437
  };
454
- //#endregion
455
- export { W as i, H as n, U as r, K as t };
438
+ export { G as i, U as n, W as r, q as t };
456
439
 
457
- //# sourceMappingURL=compose-B1GlrZW9.js.map
440
+ //# sourceMappingURL=compose-D6zBIc2Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-D6zBIc2Z.js","names":["_Fragment","_Fragment","_Fragment","_Fragment","useRouterAdapter","useBPMRoutes","FormBuilderView","FormRenderer","readTemplateErrorMessage","readApproverResolverDetail","TemplateDesignerView","useBPMLanguage","Fragment$1","ContentHeader","UNCATEGORIZED_OPTION","CATEGORY_PAGE_SIZE","ComposeFormStep","categoryOptions","setCategoryOptions","useState","active","result","listApprovalTemplateCategoriesPage","selectOptions","category","selectedOption","option","categoryId","BASICS_GRID_STYLE","FormField","FormFieldLayout","Input","onNameChange","event","name","Select","onCategoryIdChange","Typography","onFormChange","formSchema","formUiSchema","ComposeReviewStep","nodes","workflowDefinition","edges","fieldCount","nodeLabelById","node","nodeRows","readNodeDetail","readNodeTypeLabel","branchRows","edge","STACK_STYLE","TITLE_STYLE","Empty","Table","NODE_COLUMNS","BRANCH_COLUMNS","initiatorPolicyCel","publishError","Tag","record","ComposeWorkflowStep","EMPTY_COMPOSE_FORM_SCHEMA","EMPTY_COMPOSE_FORM_UI_SCHEMA","useTemplateComposeWizard","language","currentStep","setCurrentStep","setName","setCategoryId","setFormSchema","setFormUiSchema","setWorkflowDefinitionState","setInitiatorPolicyCelState","publishPhase","setPublishPhase","setPublishError","canLeaveBasics","goToStep","useCallback","step","goNext","goBack","setFormValue","next","setWorkflowDefinition","definition","setInitiatorPolicyCel","cel","submittedDefinition","EMPTY_WORKFLOW_DEFINITION","composeApprovalTemplateWithForm","requestError","TemplateComposeWizardView","router","routes","wizard","submitting","handlePublish","PageHeader","Button","SectionGroup","Section","Stepper","Step","FOOTER_STYLE","FOOTER_ACTIONS_STYLE"],"sources":["../../src/views/templates/compose/steps/ComposeFormStep.tsx","../../src/views/templates/compose/steps/ComposeReviewStep.tsx","../../src/views/templates/compose/steps/ComposeWorkflowStep.tsx","../../src/views/templates/compose/use-template-compose-wizard.ts","../../src/views/templates/compose/TemplateComposeWizardView.tsx"],"sourcesContent":["'use client';\n\nimport type { ChangeEvent, ReactElement } from 'react';\nimport { useEffect, useState } from 'react';\nimport { FormField, Input, Select, Typography } from '@mezzanine-ui/react';\nimport { FormFieldLayout } from '@mezzanine-ui/core/form';\nimport type { SelectValue } from '@mezzanine-ui/react/Select';\nimport type {\n FormDefinitionSchema,\n FormUiSchema,\n} from '@rytass/bpm-core-shared/form';\nimport {\n ApprovalTemplateCategoryRecord,\n listApprovalTemplateCategoriesPage,\n} from '@rytass/bpm-core-client/template';\nimport { FormBuilderView } from '../../../forms/builder';\n\nconst UNCATEGORIZED_OPTION: SelectValue = {\n id: 'UNCATEGORIZED',\n name: '未分類',\n};\n\nconst CATEGORY_PAGE_SIZE = 100;\n\nexport interface ComposeFormStepProps {\n readonly name: string;\n readonly categoryId: string | null;\n readonly formSchema: FormDefinitionSchema;\n readonly formUiSchema: FormUiSchema;\n readonly onNameChange: (value: string) => void;\n readonly onCategoryIdChange: (value: string | null) => void;\n readonly onFormChange: (next: {\n readonly schema: FormDefinitionSchema;\n readonly uiSchema: FormUiSchema;\n }) => void;\n}\n\nexport function ComposeFormStep({\n categoryId,\n formSchema,\n formUiSchema,\n name,\n onCategoryIdChange,\n onFormChange,\n onNameChange,\n}: ComposeFormStepProps): ReactElement {\n const [categoryOptions, setCategoryOptions] = useState<\n readonly ApprovalTemplateCategoryRecord[]\n >([]);\n\n useEffect((): (() => void) => {\n let active = true;\n\n void (async (): Promise<void> => {\n try {\n const result = await listApprovalTemplateCategoriesPage({\n page: 1,\n pageSize: CATEGORY_PAGE_SIZE,\n searchText: '',\n status: 'ACTIVE',\n });\n\n if (active) {\n setCategoryOptions(result.categories);\n }\n } catch {\n if (active) {\n setCategoryOptions([]);\n }\n }\n })();\n\n return (): void => {\n active = false;\n };\n }, []);\n\n const selectOptions: SelectValue[] = [\n UNCATEGORIZED_OPTION,\n ...categoryOptions.map((category) => ({\n id: category.id,\n name: category.name,\n })),\n ];\n const selectedOption =\n selectOptions.find((option) => option.id === categoryId) ??\n UNCATEGORIZED_OPTION;\n\n return (\n <>\n <div style={BASICS_GRID_STYLE}>\n <FormField\n label=\"名稱\"\n layout={FormFieldLayout.VERTICAL}\n name=\"composeName\"\n >\n <Input\n fullWidth\n onChange={(event: ChangeEvent<HTMLInputElement>): void =>\n onNameChange(event.target.value)\n }\n placeholder=\"例如:請款簽核\"\n value={name}\n />\n </FormField>\n <FormField\n label=\"分類(選填)\"\n layout={FormFieldLayout.VERTICAL}\n name=\"composeCategory\"\n >\n <Select\n clearable={false}\n fullWidth\n onChange={(option): void =>\n onCategoryIdChange(\n option && option.id !== UNCATEGORIZED_OPTION.id\n ? option.id\n : null,\n )\n }\n options={selectOptions}\n placeholder=\"未分類\"\n value={selectedOption}\n />\n </FormField>\n </div>\n <Typography color=\"text-neutral\" variant=\"caption\">\n 先設計表單欄位,下一步的流程條件分流即可直接引用這些欄位。\n </Typography>\n <FormBuilderView\n onChange={onFormChange}\n value={{ schema: formSchema, uiSchema: formUiSchema }}\n />\n </>\n );\n}\n\nconst BASICS_GRID_STYLE = {\n display: 'grid',\n gap: 16,\n gridTemplateColumns: 'repeat(auto-fit, minmax(220px, 1fr))',\n} as const;\n","'use client';\n\nimport type { CSSProperties, ReactElement } from 'react';\nimport { Empty, Table, Tag, Typography } from '@mezzanine-ui/react';\nimport type { TableColumn } from '@mezzanine-ui/core/table';\nimport type {\n FormDefinitionSchema,\n FormUiSchema,\n} from '@rytass/bpm-core-shared/form';\nimport type {\n WorkflowDefinition,\n WorkflowNode,\n} from '@rytass/bpm-core-shared/workflow';\nimport { FormRenderer } from '../../../forms/renderer/FormRendererView';\nimport { readApproverResolverDetail } from '../../designer/approver-resolver-model';\n\ntype FlowNodeRow = Readonly<\n Record<string, unknown> & {\n detail: string;\n key: string;\n label: string;\n typeLabel: string;\n }\n>;\n\ntype BranchRow = Readonly<\n Record<string, unknown> & {\n condition: string;\n key: string;\n source: string;\n target: string;\n }\n>;\n\nexport interface ComposeReviewStepProps {\n readonly name: string;\n readonly formSchema: FormDefinitionSchema;\n readonly formUiSchema: FormUiSchema;\n readonly workflowDefinition: WorkflowDefinition | null;\n readonly initiatorPolicyCel: string | null;\n readonly publishError: string | null;\n}\n\nexport function ComposeReviewStep({\n formSchema,\n formUiSchema,\n initiatorPolicyCel,\n name,\n publishError,\n workflowDefinition,\n}: ComposeReviewStepProps): ReactElement {\n const nodes = workflowDefinition?.nodes ?? [];\n const edges = workflowDefinition?.edges ?? [];\n const fieldCount = formSchema.fields.length;\n const nodeLabelById = new Map(\n nodes.map((node) => [node.id, node.data.label] as const),\n );\n const nodeRows: FlowNodeRow[] = nodes.map((node) => ({\n detail: readNodeDetail(node) ?? '—',\n key: node.id,\n label: node.data.label,\n typeLabel: readNodeTypeLabel(node),\n }));\n const branchRows: BranchRow[] = edges\n .filter((edge) => Boolean(edge.data.condition))\n .map((edge) => ({\n condition: edge.data.condition ?? '',\n key: edge.id,\n source: nodeLabelById.get(edge.source) ?? edge.source,\n target: nodeLabelById.get(edge.target) ?? edge.target,\n }));\n\n return (\n <div style={STACK_STYLE}>\n <Typography component=\"h2\" style={TITLE_STYLE} variant=\"h2\">\n {name || '(未命名)'}\n </Typography>\n\n <div style={STACK_STYLE}>\n <Typography variant=\"h3\">表單預覽</Typography>\n {fieldCount > 0 ? (\n <FormRenderer\n dataSourceContext={{ kind: 'preview' }}\n readonly\n schema={formSchema}\n uiSchema={formUiSchema}\n />\n ) : (\n <Empty title=\"尚未設計表單欄位\" />\n )}\n </div>\n\n <div style={STACK_STYLE}>\n <Typography variant=\"h3\">流程概覽</Typography>\n {nodes.length > 0 ? (\n <Table columns={NODE_COLUMNS} dataSource={nodeRows} fullWidth />\n ) : (\n <Empty title=\"尚未設計流程節點\" />\n )}\n {branchRows.length > 0 ? (\n <>\n <Typography color=\"text-neutral\" variant=\"caption\">\n 條件分流\n </Typography>\n <Table columns={BRANCH_COLUMNS} dataSource={branchRows} fullWidth />\n </>\n ) : null}\n {initiatorPolicyCel ? (\n <Typography color=\"text-neutral\" variant=\"caption\">\n 發起權限:{initiatorPolicyCel}\n </Typography>\n ) : null}\n </div>\n\n {publishError ? (\n <Typography color=\"text-error\" variant=\"body\">\n {publishError}\n </Typography>\n ) : null}\n </div>\n );\n}\n\nconst NODE_COLUMNS: TableColumn<FlowNodeRow>[] = [\n {\n key: 'type',\n render: (record: FlowNodeRow): ReactElement => (\n <Tag label={record.typeLabel} size=\"sub\" type=\"static\" />\n ),\n title: '類型',\n width: 130,\n },\n { dataIndex: 'label', key: 'label', title: '節點' },\n { dataIndex: 'detail', key: 'detail', title: '簽核方式', width: 160 },\n];\n\nconst BRANCH_COLUMNS: TableColumn<BranchRow>[] = [\n { dataIndex: 'source', key: 'source', title: '來源', width: 180 },\n { dataIndex: 'target', key: 'target', title: '目標', width: 180 },\n { dataIndex: 'condition', key: 'condition', title: '條件' },\n];\n\nfunction readNodeTypeLabel(node: WorkflowNode): string {\n switch (node.type) {\n case 'startEvent':\n return '開始';\n case 'endEvent':\n return node.data.endState === 'REJECTED' ? '結束(駁回)' : '結束(核准)';\n case 'userTask':\n return '簽核';\n case 'serviceTask':\n return '服務';\n case 'exclusiveGateway':\n return '條件閘道';\n case 'parallelGateway':\n return '平行閘道';\n default:\n return '節點';\n }\n}\n\nfunction readNodeDetail(node: WorkflowNode): string | null {\n if (node.type !== 'userTask') {\n return null;\n }\n\n return readApproverResolverDetail(node.data.approverResolver);\n}\n\nconst STACK_STYLE: CSSProperties = {\n display: 'grid',\n gap: 12,\n};\n\n// Match the breathing room between the stepper and the PageHeader, which is the\n// Section's top padding token.\nconst TITLE_STYLE: CSSProperties = {\n marginTop: 'var(--mzn-spacing-padding-vertical-spacious)',\n};\n","'use client';\n\nimport type { ReactElement } from 'react';\nimport { Typography } from '@mezzanine-ui/react';\nimport type { FormDefinitionSchema } from '@rytass/bpm-core-shared/form';\nimport type { WorkflowDefinition } from '@rytass/bpm-core-shared/workflow';\nimport { TemplateDesignerView } from '../../designer';\n\nexport interface ComposeWorkflowStepProps {\n readonly formSchema: FormDefinitionSchema;\n readonly workflowDefinition: WorkflowDefinition | null;\n readonly initiatorPolicyCel: string | null;\n readonly onWorkflowChange: (definition: WorkflowDefinition) => void;\n readonly onInitiatorPolicyChange: (cel: string | null) => void;\n /**\n * Show the AI assistant button inside the embedded designer's side panel.\n * Follows the same opt-in contract as the standalone designer page; default\n * hidden. Wired up the stack from the server page's `BPM_AI_ASSISTANT_ENABLED`.\n */\n readonly showAiAssistant?: boolean;\n /**\n * Whether the LLM backend is configured (host has an API key). When `false`\n * the AI button shows disabled as a placeholder. Default `false`.\n */\n readonly aiAssistantAvailable?: boolean;\n}\n\nexport function ComposeWorkflowStep({\n aiAssistantAvailable = false,\n formSchema,\n initiatorPolicyCel,\n onInitiatorPolicyChange,\n onWorkflowChange,\n showAiAssistant = false,\n workflowDefinition,\n}: ComposeWorkflowStepProps): ReactElement {\n return (\n <>\n <Typography color=\"text-neutral\" variant=\"caption\">\n 設計簽核節點與條件分流;條件可直接引用上一步設計的表單欄位。\n </Typography>\n <TemplateDesignerView\n aiAssistantAvailable={aiAssistantAvailable}\n embedded\n formSchemaOverride={formSchema}\n initialInitiatorPolicyCel={initiatorPolicyCel}\n initialWorkflowDefinition={workflowDefinition ?? undefined}\n onInitiatorPolicyChange={onInitiatorPolicyChange}\n onWorkflowChange={onWorkflowChange}\n showAiAssistant={showAiAssistant}\n />\n </>\n );\n}\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport type {\n FormDefinitionSchema,\n FormUiSchema,\n} from '@rytass/bpm-core-shared/form';\nimport type { WorkflowDefinition } from '@rytass/bpm-core-shared/workflow';\nimport { useBPMLanguage } from '../../../lib/language-provider';\nimport {\n ComposeApprovalTemplateWithFormResult,\n composeApprovalTemplateWithForm,\n} from '@rytass/bpm-core-client/template';\nimport { readTemplateErrorMessage } from '../template-error-message';\n\nexport type ComposeWizardStep = 0 | 1 | 2;\n\nexport type ComposePublishPhase = 'error' | 'idle' | 'submitting' | 'success';\n\nexport const EMPTY_COMPOSE_FORM_SCHEMA: FormDefinitionSchema = {\n fields: [],\n schemaVersion: 1,\n};\n\nexport const EMPTY_COMPOSE_FORM_UI_SCHEMA: FormUiSchema = {\n layout: [],\n schemaVersion: 1,\n};\n\nexport interface TemplateComposeWizard {\n readonly currentStep: ComposeWizardStep;\n /**\n * Single user-facing name. Persisted to both the template and the form\n * (`templateName` / `formName`) at the `composeApprovalTemplateWithForm`\n * boundary — the DB keeps two columns, the UI keeps one field.\n */\n readonly name: string;\n readonly categoryId: string | null;\n readonly formSchema: FormDefinitionSchema;\n readonly formUiSchema: FormUiSchema;\n readonly workflowDefinition: WorkflowDefinition | null;\n readonly initiatorPolicyCel: string | null;\n readonly publishPhase: ComposePublishPhase;\n readonly publishError: string | null;\n readonly canLeaveBasics: boolean;\n readonly goToStep: (step: ComposeWizardStep) => void;\n readonly goNext: () => void;\n readonly goBack: () => void;\n readonly setName: (value: string) => void;\n readonly setCategoryId: (value: string | null) => void;\n readonly setFormValue: (next: {\n readonly schema: FormDefinitionSchema;\n readonly uiSchema: FormUiSchema;\n }) => void;\n readonly setWorkflowDefinition: (definition: WorkflowDefinition) => void;\n readonly setInitiatorPolicyCel: (cel: string | null) => void;\n readonly publish: () => Promise<ComposeApprovalTemplateWithFormResult | null>;\n}\n\n/**\n * Owns the cross-step state for the unified \"form + flow\" template wizard.\n *\n * Step 0 (表單) edits `formSchema`/`formUiSchema`; that same in-memory schema\n * feeds Step 1 (流程) as the field source for condition branches, so the\n * embedded designer never needs a published form version. Step 2 (檢視發佈)\n * submits everything through the atomic `composeApprovalTemplateWithForm`\n * mutation.\n */\nexport function useTemplateComposeWizard(): TemplateComposeWizard {\n const language = useBPMLanguage();\n const [currentStep, setCurrentStep] = useState<ComposeWizardStep>(0);\n const [name, setName] = useState('');\n const [categoryId, setCategoryId] = useState<string | null>(null);\n const [formSchema, setFormSchema] = useState<FormDefinitionSchema>(\n EMPTY_COMPOSE_FORM_SCHEMA,\n );\n const [formUiSchema, setFormUiSchema] = useState<FormUiSchema>(\n EMPTY_COMPOSE_FORM_UI_SCHEMA,\n );\n const [workflowDefinition, setWorkflowDefinitionState] =\n useState<WorkflowDefinition | null>(null);\n const [initiatorPolicyCel, setInitiatorPolicyCelState] = useState<\n string | null\n >(null);\n const [publishPhase, setPublishPhase] = useState<ComposePublishPhase>('idle');\n const [publishError, setPublishError] = useState<string | null>(null);\n\n const canLeaveBasics = name.trim().length > 0 && formSchema.fields.length > 0;\n\n const goToStep = useCallback((step: ComposeWizardStep): void => {\n setCurrentStep(step);\n }, []);\n\n const goNext = useCallback((): void => {\n setCurrentStep((step) =>\n step < 2 ? ((step + 1) as ComposeWizardStep) : step,\n );\n }, []);\n\n const goBack = useCallback((): void => {\n setCurrentStep((step) =>\n step > 0 ? ((step - 1) as ComposeWizardStep) : step,\n );\n }, []);\n\n const setFormValue = useCallback(\n (next: {\n readonly schema: FormDefinitionSchema;\n readonly uiSchema: FormUiSchema;\n }): void => {\n setFormSchema(next.schema);\n setFormUiSchema(next.uiSchema);\n },\n [],\n );\n\n const setWorkflowDefinition = useCallback(\n (definition: WorkflowDefinition): void => {\n setWorkflowDefinitionState(definition);\n },\n [],\n );\n\n const setInitiatorPolicyCel = useCallback((cel: string | null): void => {\n setInitiatorPolicyCelState(cel);\n }, []);\n\n const publish =\n useCallback(async (): Promise<ComposeApprovalTemplateWithFormResult | null> => {\n setPublishPhase('submitting');\n setPublishError(null);\n\n const submittedDefinition =\n workflowDefinition ?? EMPTY_WORKFLOW_DEFINITION;\n\n try {\n const result = await composeApprovalTemplateWithForm({\n category: null,\n categoryId,\n formDefinitionId: null,\n formDescription: null,\n // One UI name fans out to both persisted columns.\n formName: name,\n initiatorPolicyCel,\n notificationConfig: null,\n publish: true,\n schema: formSchema,\n slaDefaults: null,\n templateDescription: null,\n templateId: null,\n templateName: name,\n uiSchema: formUiSchema,\n workflowDefinition: submittedDefinition,\n });\n\n setPublishPhase('success');\n\n return result;\n } catch (requestError: unknown) {\n setPublishError(\n readTemplateErrorMessage(requestError, language, submittedDefinition),\n );\n setPublishPhase('error');\n\n return null;\n }\n }, [\n categoryId,\n formSchema,\n formUiSchema,\n initiatorPolicyCel,\n language,\n name,\n workflowDefinition,\n ]);\n\n return {\n canLeaveBasics,\n categoryId,\n currentStep,\n formSchema,\n formUiSchema,\n goBack,\n goNext,\n goToStep,\n initiatorPolicyCel,\n name,\n publish,\n publishError,\n publishPhase,\n setCategoryId,\n setFormValue,\n setInitiatorPolicyCel,\n setName,\n setWorkflowDefinition,\n workflowDefinition,\n };\n}\n\nconst EMPTY_WORKFLOW_DEFINITION: WorkflowDefinition = {\n edges: [],\n meta: { schemaVersion: 1 },\n nodes: [\n {\n data: { label: '開始' },\n id: 'start',\n position: { x: 80, y: 160 },\n type: 'startEvent',\n },\n {\n data: { endState: 'APPROVED', label: '完成', triggerMode: 'AND' },\n id: 'end',\n position: { x: 560, y: 160 },\n type: 'endEvent',\n },\n ],\n};\n","'use client';\n\nimport type { ReactElement } from 'react';\nimport {\n Button,\n PageHeader,\n Section,\n SectionGroup,\n Step,\n Stepper,\n Typography,\n} from '@mezzanine-ui/react';\nimport ContentHeader from '@mezzanine-ui/react/ContentHeader';\nimport { useRouterAdapter } from '../../../lib/router-adapter';\nimport { useBPMRoutes } from '../../../lib/routes-config';\nimport { ComposeFormStep } from './steps/ComposeFormStep';\nimport { ComposeReviewStep } from './steps/ComposeReviewStep';\nimport { ComposeWorkflowStep } from './steps/ComposeWorkflowStep';\nimport { useTemplateComposeWizard } from './use-template-compose-wizard';\n\nexport interface TemplateComposeWizardViewProps {\n /**\n * Show the workflow designer AI assistant inside Step 1 (流程設計). Opt-in,\n * default hidden — the server page maps `BPM_AI_ASSISTANT_ENABLED` to it.\n */\n readonly showAiAssistant?: boolean;\n /**\n * Whether the LLM backend is configured (host has an API key). When `false`\n * the AI button shows disabled as a placeholder. Default `false`.\n */\n readonly aiAssistantAvailable?: boolean;\n}\n\n/**\n * Unified \"form + flow\" template creation wizard. Walks the user through\n * Step 0 表單設計 → Step 1 流程設計 → Step 2 檢視並發佈, then commits both\n * sides atomically through `composeApprovalTemplateWithForm`. This is the\n * template entry point; the form builder is intentionally controlled here\n * instead of exposed as a standalone `/forms` page.\n */\nexport function TemplateComposeWizardView({\n aiAssistantAvailable = false,\n showAiAssistant = false,\n}: TemplateComposeWizardViewProps = {}): ReactElement {\n const router = useRouterAdapter();\n const routes = useBPMRoutes();\n const wizard = useTemplateComposeWizard();\n const submitting = wizard.publishPhase === 'submitting';\n\n async function handlePublish(): Promise<void> {\n const result = await wizard.publish();\n\n if (result) {\n router.push(routes.templateDesigner(result.templateId));\n }\n }\n\n return (\n <>\n <PageHeader>\n <ContentHeader\n description=\"一次完成表單與流程設計,發佈後即可直接發起。\"\n title=\"建立模板(表單 + 流程)\"\n >\n <Button\n disabled={submitting}\n onClick={(): void => router.push(routes.templates())}\n variant=\"base-secondary\"\n >\n 返回模板列表\n </Button>\n </ContentHeader>\n </PageHeader>\n\n <SectionGroup>\n <Section>\n <Stepper currentStep={wizard.currentStep}>\n <Step description=\"設計欄位與版面\" title=\"表單設計\" />\n <Step description=\"設計簽核節點與條件\" title=\"流程設計\" />\n <Step description=\"確認後發佈\" title=\"檢視並發佈\" />\n </Stepper>\n\n {wizard.currentStep === 0 ? (\n <ComposeFormStep\n categoryId={wizard.categoryId}\n formSchema={wizard.formSchema}\n formUiSchema={wizard.formUiSchema}\n name={wizard.name}\n onCategoryIdChange={wizard.setCategoryId}\n onFormChange={wizard.setFormValue}\n onNameChange={wizard.setName}\n />\n ) : null}\n\n {wizard.currentStep === 1 ? (\n <ComposeWorkflowStep\n aiAssistantAvailable={aiAssistantAvailable}\n formSchema={wizard.formSchema}\n initiatorPolicyCel={wizard.initiatorPolicyCel}\n onInitiatorPolicyChange={wizard.setInitiatorPolicyCel}\n onWorkflowChange={wizard.setWorkflowDefinition}\n showAiAssistant={showAiAssistant}\n workflowDefinition={wizard.workflowDefinition}\n />\n ) : null}\n\n {wizard.currentStep === 2 ? (\n <ComposeReviewStep\n formSchema={wizard.formSchema}\n formUiSchema={wizard.formUiSchema}\n initiatorPolicyCel={wizard.initiatorPolicyCel}\n name={wizard.name}\n publishError={wizard.publishError}\n workflowDefinition={wizard.workflowDefinition}\n />\n ) : null}\n\n <div style={FOOTER_STYLE}>\n {wizard.currentStep === 0 && !wizard.canLeaveBasics ? (\n <Typography color=\"text-neutral\" variant=\"caption\">\n 請填寫模板名稱、表單名稱,並至少新增一個表單欄位。\n </Typography>\n ) : (\n <span />\n )}\n <div style={FOOTER_ACTIONS_STYLE}>\n <Button\n disabled={wizard.currentStep === 0 || submitting}\n onClick={wizard.goBack}\n variant=\"base-secondary\"\n >\n 上一步\n </Button>\n {wizard.currentStep < 2 ? (\n <Button\n disabled={wizard.currentStep === 0 && !wizard.canLeaveBasics}\n onClick={wizard.goNext}\n variant=\"base-primary\"\n >\n 下一步\n </Button>\n ) : (\n <Button\n disabled={submitting}\n loading={submitting}\n onClick={(): void => {\n void handlePublish();\n }}\n variant=\"base-primary\"\n >\n 發佈\n </Button>\n )}\n </div>\n </div>\n </Section>\n </SectionGroup>\n </>\n );\n}\n\nconst FOOTER_STYLE = {\n alignItems: 'center',\n display: 'flex',\n // Match the breathing room used elsewhere (the Section's top padding token).\n marginTop: 'var(--mzn-spacing-padding-vertical-spacious)',\n justifyContent: 'space-between',\n gap: 16,\n} as const;\n\nconst FOOTER_ACTIONS_STYLE = {\n display: 'flex',\n gap: 8,\n} as const;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use client";const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./router-adapter--gYs13E8.cjs"),n=require("./routes-config-C1j_vFKo.cjs"),r=require("./FormBuilderView-G6uRSywl.cjs"),i=require("./FormRendererView-DwfFbaip.cjs"),a=require("./designer-Be9UI9Tg.cjs"),o=require("./language-provider-Bdnx3Gxl.cjs");let s=require("react"),c=require("@mezzanine-ui/react"),l=require("react/jsx-runtime"),u=require("@mezzanine-ui/core/form"),d=require("@mezzanine-ui/react/ContentHeader");d=e.t(d,1);let f=require("@rytass/bpm-core-client/template");var p={id:`UNCATEGORIZED`,name:`未分類`},m=100;function h({categoryId:e,formSchema:t,formUiSchema:n,name:i,onCategoryIdChange:a,onFormChange:o,onNameChange:d}){let[h,_]=(0,s.useState)([]);(0,s.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await(0,f.listApprovalTemplateCategoriesPage)({page:1,pageSize:m,searchText:``,status:`ACTIVE`});e&&_(t.categories)}catch{e&&_([])}})(),()=>{e=!1}},[]);let v=[p,...h.map(e=>({id:e.id,name:e.name}))],y=v.find(t=>t.id===e)??p;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{style:g,children:[(0,l.jsx)(c.FormField,{label:`名稱`,layout:u.FormFieldLayout.VERTICAL,name:`composeName`,children:(0,l.jsx)(c.Input,{fullWidth:!0,onChange:e=>d(e.target.value),placeholder:`例如:請款簽核`,value:i})}),(0,l.jsx)(c.FormField,{label:`分類(選填)`,layout:u.FormFieldLayout.VERTICAL,name:`composeCategory`,children:(0,l.jsx)(c.Select,{clearable:!1,fullWidth:!0,onChange:e=>a(e&&e.id!==p.id?e.id:null),options:v,placeholder:`未分類`,value:y})})]}),(0,l.jsx)(c.Typography,{color:`text-neutral`,variant:`caption`,children:`先設計表單欄位,下一步的流程條件分流即可直接引用這些欄位。`}),(0,l.jsx)(r.t,{onChange:o,value:{schema:t,uiSchema:n}})]})}var g={display:`grid`,gap:16,gridTemplateColumns:`repeat(auto-fit, minmax(220px, 1fr))`};function _({formSchema:e,formUiSchema:t,initiatorPolicyCel:n,name:r,publishError:a,workflowDefinition:o}){let s=o?.nodes??[],u=o?.edges??[],d=e.fields.length,f=new Map(s.map(e=>[e.id,e.data.label])),p=s.map(e=>({detail:x(e)??`—`,key:e.id,label:e.data.label,typeLabel:b(e)})),m=u.filter(e=>!!e.data.condition).map(e=>({condition:e.data.condition??``,key:e.id,source:f.get(e.source)??e.source,target:f.get(e.target)??e.target}));return(0,l.jsxs)(`div`,{style:S,children:[(0,l.jsx)(c.Typography,{component:`h2`,style:C,variant:`h2`,children:r||`(未命名)`}),(0,l.jsxs)(`div`,{style:S,children:[(0,l.jsx)(c.Typography,{variant:`h3`,children:`表單預覽`}),d>0?(0,l.jsx)(i.t,{dataSourceContext:{kind:`preview`},readonly:!0,schema:e,uiSchema:t}):(0,l.jsx)(c.Empty,{title:`尚未設計表單欄位`})]}),(0,l.jsxs)(`div`,{style:S,children:[(0,l.jsx)(c.Typography,{variant:`h3`,children:`流程概覽`}),s.length>0?(0,l.jsx)(c.Table,{columns:v,dataSource:p,fullWidth:!0}):(0,l.jsx)(c.Empty,{title:`尚未設計流程節點`}),m.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Typography,{color:`text-neutral`,variant:`caption`,children:`條件分流`}),(0,l.jsx)(c.Table,{columns:y,dataSource:m,fullWidth:!0})]}):null,n?(0,l.jsxs)(c.Typography,{color:`text-neutral`,variant:`caption`,children:[`發起權限:`,n]}):null]}),a?(0,l.jsx)(c.Typography,{color:`text-error`,variant:`body`,children:a}):null]})}var v=[{key:`type`,render:e=>(0,l.jsx)(c.Tag,{label:e.typeLabel,size:`sub`,type:`static`}),title:`類型`,width:130},{dataIndex:`label`,key:`label`,title:`節點`},{dataIndex:`detail`,key:`detail`,title:`簽核方式`,width:160}],y=[{dataIndex:`source`,key:`source`,title:`來源`,width:180},{dataIndex:`target`,key:`target`,title:`目標`,width:180},{dataIndex:`condition`,key:`condition`,title:`條件`}];function b(e){switch(e.type){case`startEvent`:return`開始`;case`endEvent`:return e.data.endState===`REJECTED`?`結束(駁回)`:`結束(核准)`;case`userTask`:return`簽核`;case`serviceTask`:return`服務`;case`exclusiveGateway`:return`條件閘道`;case`parallelGateway`:return`平行閘道`;default:return`節點`}}function x(e){return e.type===`userTask`?a.r(e.data.approverResolver):null}var S={display:`grid`,gap:12},C={marginTop:`var(--mzn-spacing-padding-vertical-spacious)`};function w({aiAssistantAvailable:e=!1,formSchema:t,initiatorPolicyCel:n,onInitiatorPolicyChange:r,onWorkflowChange:i,showAiAssistant:o=!1,workflowDefinition:s}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Typography,{color:`text-neutral`,variant:`caption`,children:`設計簽核節點與條件分流;條件可直接引用上一步設計的表單欄位。`}),(0,l.jsx)(a.t,{aiAssistantAvailable:e,embedded:!0,formSchemaOverride:t,initialInitiatorPolicyCel:n,initialWorkflowDefinition:s??void 0,onInitiatorPolicyChange:r,onWorkflowChange:i,showAiAssistant:o})]})}var T={fields:[],schemaVersion:1},E={layout:[],schemaVersion:1};function D(){let e=o.i(),[t,n]=(0,s.useState)(0),[r,i]=(0,s.useState)(``),[c,l]=(0,s.useState)(null),[u,d]=(0,s.useState)(T),[p,m]=(0,s.useState)(E),[h,g]=(0,s.useState)(null),[_,v]=(0,s.useState)(null),[y,b]=(0,s.useState)(`idle`),[x,S]=(0,s.useState)(null),C=r.trim().length>0&&u.fields.length>0,w=(0,s.useCallback)(e=>{n(e)},[]),D=(0,s.useCallback)(()=>{n(e=>e<2?e+1:e)},[]),k=(0,s.useCallback)(()=>{n(e=>e>0?e-1:e)},[]),A=(0,s.useCallback)(e=>{d(e.schema),m(e.uiSchema)},[]),j=(0,s.useCallback)(e=>{g(e)},[]),M=(0,s.useCallback)(e=>{v(e)},[]);return{canLeaveBasics:C,categoryId:c,currentStep:t,formSchema:u,formUiSchema:p,goBack:k,goNext:D,goToStep:w,initiatorPolicyCel:_,name:r,publish:(0,s.useCallback)(async()=>{b(`submitting`),S(null);let t=h??O;try{let e=await(0,f.composeApprovalTemplateWithForm)({category:null,categoryId:c,formDefinitionId:null,formDescription:null,formName:r,initiatorPolicyCel:_,notificationConfig:null,publish:!0,schema:u,slaDefaults:null,templateDescription:null,templateId:null,templateName:r,uiSchema:p,workflowDefinition:t});return b(`success`),e}catch(n){return S(a.n(n,e,t)),b(`error`),null}},[c,u,p,_,e,r,h]),publishError:x,publishPhase:y,setCategoryId:l,setFormValue:A,setInitiatorPolicyCel:M,setName:i,setWorkflowDefinition:j,workflowDefinition:h}}var O={edges:[],meta:{schemaVersion:1},nodes:[{data:{label:`開始`},id:`start`,position:{x:80,y:160},type:`startEvent`},{data:{endState:`APPROVED`,label:`完成`,triggerMode:`AND`},id:`end`,position:{x:560,y:160},type:`endEvent`}]};function k({aiAssistantAvailable:e=!1,showAiAssistant:r=!1}={}){let i=t.r(),a=n.r(),o=D(),s=o.publishPhase===`submitting`;async function u(){let e=await o.publish();e&&i.push(a.templateDesigner(e.templateId))}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.PageHeader,{children:(0,l.jsx)(d.default,{description:`一次完成表單與流程設計,發佈後即可直接發起。`,title:`建立模板(表單 + 流程)`,children:(0,l.jsx)(c.Button,{disabled:s,onClick:()=>i.push(a.templates()),variant:`base-secondary`,children:`返回模板列表`})})}),(0,l.jsx)(c.SectionGroup,{children:(0,l.jsxs)(c.Section,{children:[(0,l.jsxs)(c.Stepper,{currentStep:o.currentStep,children:[(0,l.jsx)(c.Step,{description:`設計欄位與版面`,title:`表單設計`}),(0,l.jsx)(c.Step,{description:`設計簽核節點與條件`,title:`流程設計`}),(0,l.jsx)(c.Step,{description:`確認後發佈`,title:`檢視並發佈`})]}),o.currentStep===0?(0,l.jsx)(h,{categoryId:o.categoryId,formSchema:o.formSchema,formUiSchema:o.formUiSchema,name:o.name,onCategoryIdChange:o.setCategoryId,onFormChange:o.setFormValue,onNameChange:o.setName}):null,o.currentStep===1?(0,l.jsx)(w,{aiAssistantAvailable:e,formSchema:o.formSchema,initiatorPolicyCel:o.initiatorPolicyCel,onInitiatorPolicyChange:o.setInitiatorPolicyCel,onWorkflowChange:o.setWorkflowDefinition,showAiAssistant:r,workflowDefinition:o.workflowDefinition}):null,o.currentStep===2?(0,l.jsx)(_,{formSchema:o.formSchema,formUiSchema:o.formUiSchema,initiatorPolicyCel:o.initiatorPolicyCel,name:o.name,publishError:o.publishError,workflowDefinition:o.workflowDefinition}):null,(0,l.jsxs)(`div`,{style:A,children:[o.currentStep===0&&!o.canLeaveBasics?(0,l.jsx)(c.Typography,{color:`text-neutral`,variant:`caption`,children:`請填寫模板名稱、表單名稱,並至少新增一個表單欄位。`}):(0,l.jsx)(`span`,{}),(0,l.jsxs)(`div`,{style:j,children:[(0,l.jsx)(c.Button,{disabled:o.currentStep===0||s,onClick:o.goBack,variant:`base-secondary`,children:`上一步`}),o.currentStep<2?(0,l.jsx)(c.Button,{disabled:o.currentStep===0&&!o.canLeaveBasics,onClick:o.goNext,variant:`base-primary`,children:`下一步`}):(0,l.jsx)(c.Button,{disabled:s,loading:s,onClick:()=>{u()},variant:`base-primary`,children:`發佈`})]})]})]})})]})}var A={alignItems:`center`,display:`flex`,marginTop:`var(--mzn-spacing-padding-vertical-spacious)`,justifyContent:`space-between`,gap:16},j={display:`flex`,gap:8};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return k}});
2
+ //# sourceMappingURL=compose-NH6dsFXD.cjs.map