@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,15 +1,16 @@
1
1
  "use client";
2
- import { t as e } from "./bpm-form-field-Cao0rMol.js";
3
- import { t } from "./format-member-label-DudVI55w.js";
2
+ import { t as e } from "./bpm-form-field-9B-Det0u.js";
3
+ import { t } from "./format-member-label-C73FuP-d.js";
4
4
  import { useCallback as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
5
5
  import { AutoComplete as s, Button as c, CheckboxGroup as l, DatePicker as u, DateTimePicker as d, Input as f, RadioGroup as p, Select as m, Table as h, Textarea as g, Toggle as _, Typography as v, Upload as y } from "@mezzanine-ui/react";
6
6
  import { resolveMembers as b, searchMembers as x } from "@rytass/bpm-core-client";
7
7
  import { jsx as S, jsxs as C } from "react/jsx-runtime";
8
8
  import { PlusIcon as w, TrashIcon as T } from "@mezzanine-ui/icons";
9
- import { buildFormRendererValues as E, clampOptionalNumber as D, createFormTableRow as ee, formatDatePickerValue as O, formatDateTimePickerValue as k, isFormRendererFieldReadonly as A, isFormRendererFieldRequired as j, mergeFormDataSourceOptions as M, parseOptionalNumberInput as N, previewFormFieldOptions as te, previewResolveFormFieldOptions as ne, readDatePickerValue as re, readFieldOptionAsSelectOption as P, readFormDataSourceErrorCode as ie, readFormDataSourceErrorMessage as ae, readFormDataSourceSelectedValues as oe, readFormDataSourceValueSignature as F, readFormFieldOptions as se, readFormTableCellPath as I, readFormTableRowBounds as ce, readFormTableRows as L, readMissingFormDataSourceDependencies as le, readMissingFormDataSourceOptionValues as R, readSelectOption as z, readSelectedFormDataSourceOptions as B, readVisibleFormRendererFields as ue, resolveFormFieldOptions as de } from "@rytass/bpm-core-client/form";
10
- import { isFormDataSourceFieldDefinition as V, isFormStaticOptionFieldDefinition as fe, isFormTableCellValue as H, isTableFieldDefinition as pe, readFormFieldSelectionMode as U, readFormMemberIds as W } from "@rytass/bpm-core-shared/form";
11
- //#region src/views/forms/renderer/form-data-source-field.ts
12
- var me = {
9
+ import { buildFormRendererValues as E, clampOptionalNumber as D, createFormTableRow as O, formatDatePickerValue as k, formatDateTimePickerValue as A, isFormRendererFieldReadonly as j, isFormRendererFieldRequired as M, mergeFormDataSourceOptions as N, parseOptionalNumberInput as P, previewFormFieldOptions as ee, previewResolveFormFieldOptions as te, readDatePickerValue as F, readFieldOptionAsSelectOption as I, readFormDataSourceErrorCode as ne, readFormDataSourceErrorMessage as re, readFormDataSourceSelectedValues as ie, readFormDataSourceValueSignature as L, readFormFieldOptions as ae, readFormTableCellPath as oe, readFormTableRowBounds as se, readFormTableRows as R, readMissingFormDataSourceDependencies as ce, readMissingFormDataSourceOptionValues as z, readSelectOption as le, readSelectedFormDataSourceOptions as ue, readVisibleFormRendererFields as de, resolveFormFieldOptions as fe } from "@rytass/bpm-core-client/form";
10
+ import { isFormDataSourceFieldDefinition as B, isFormStaticOptionFieldDefinition as pe, isFormTableCellValue as V, isTableFieldDefinition as me, readFormFieldSelectionMode as H, readFormMemberIds as U } from "@rytass/bpm-core-shared/form";
11
+ import { resolveOrgUnitOptions as W, searchOrgUnitOptions as G } from "@rytass/bpm-core-client/organization";
12
+ // src/views/forms/renderer/form-data-source-field.ts
13
+ var he = {
13
14
  canRetry: !1,
14
15
  error: null,
15
16
  hasValue: !1,
@@ -20,13 +21,13 @@ var me = {
20
21
  options: [],
21
22
  retry: () => void 0,
22
23
  status: "IDLE"
23
- }, G = [], he = 10, ge = ["FORM_DATA_SOURCE_SEARCH_NOT_SUPPORTED", "FORM_DATA_SOURCE_SEARCH_TOO_SHORT"];
24
- function K(e) {
25
- let t = V(e.field) ? e.field : null, s = e.fieldPath ?? t?.fieldKey ?? "", c = t ? e.optionSnapshots?.[e.snapshotKey ?? t.fieldKey] : void 0, l = t ? JSON.stringify({
24
+ }, K = [], ge = 10, _e = ["FORM_DATA_SOURCE_SEARCH_NOT_SUPPORTED", "FORM_DATA_SOURCE_SEARCH_TOO_SHORT"];
25
+ function q(e) {
26
+ let t = B(e.field) ? e.field : null, s = e.fieldPath ?? t?.fieldKey ?? "", c = t ? e.optionSnapshots?.[e.snapshotKey ?? t.fieldKey] : void 0, l = t ? JSON.stringify({
26
27
  dataSource: t.dataSource,
27
28
  fieldKey: t.fieldKey,
28
29
  type: t.type
29
- }) : "", u = JSON.stringify(c ?? null), d = i(() => c?.options ?? [], [u]), f = JSON.stringify(e.formData), p = JSON.stringify(e.initialFormData ?? {}), m = JSON.stringify(e.schema), h = JSON.stringify(e.uiSchema), g = e.context?.kind, _ = e.context?.kind === "runtime" ? e.context.instanceId : void 0, v = e.context?.kind === "runtime" ? e.context.templateId : void 0, y = JSON.stringify(e.row?.values ?? null), b = JSON.stringify(e.row?.initialValues ?? null), x = t ? e.row ? e.row.values[t.fieldKey] : e.formData[t.fieldKey] : void 0, S = F(x), C = i(() => oe(x), [S]), w = C.length > 0, T = t ? JSON.stringify({
30
+ }) : "", u = JSON.stringify(c ?? null), d = i(() => c?.options ?? [], [u]), f = JSON.stringify(e.formData), p = JSON.stringify(e.initialFormData ?? {}), m = JSON.stringify(e.schema), h = JSON.stringify(e.uiSchema), g = e.context?.kind, _ = e.context?.kind === "runtime" ? e.context.instanceId : void 0, v = e.context?.kind === "runtime" ? e.context.templateId : void 0, y = JSON.stringify(e.row?.values ?? null), b = JSON.stringify(e.row?.initialValues ?? null), x = t ? e.row ? e.row.values[t.fieldKey] : e.formData[t.fieldKey] : void 0, S = L(x), C = i(() => ie(x), [S]), w = C.length > 0, T = t ? JSON.stringify({
30
31
  bindings: t.dataSource.bindings.map((t) => t.from.kind === "FIELD" ? {
31
32
  fieldKey: t.from.fieldKey,
32
33
  value: e.formData[t.from.fieldKey]
@@ -47,28 +48,28 @@ function K(e) {
47
48
  g,
48
49
  v,
49
50
  e.readonly
50
- ]), D = t ? (e.initialFormData !== void 0 || e.initialValue !== void 0) && F(e.initialValue) !== S : !1, ee = t ? e.initialFormData !== void 0 && t.dataSource.bindings.some((t) => t.from.kind === "FIELD" ? F(e.initialFormData?.[t.from.fieldKey]) !== F(e.formData[t.from.fieldKey]) : t.from.kind === "ROW_FIELD" && e.row?.initialValues ? F(e.row.initialValues[t.from.columnKey]) !== F(e.row.values[t.from.columnKey]) : !1) : !1, O = !(!c && !w || !D && !ee), k = !!(t && E && O && w), A = ye({
51
+ ]), D = t ? (e.initialFormData !== void 0 || e.initialValue !== void 0) && L(e.initialValue) !== S : !1, O = t ? e.initialFormData !== void 0 && t.dataSource.bindings.some((t) => t.from.kind === "FIELD" ? L(e.initialFormData?.[t.from.fieldKey]) !== L(e.formData[t.from.fieldKey]) : t.from.kind === "ROW_FIELD" && e.row?.initialValues ? L(e.row.initialValues[t.from.columnKey]) !== L(e.row.values[t.from.columnKey]) : !1) : !1, k = !(!c && !w || !D && !O), A = !!(t && E && k && w), j = ye({
51
52
  hasSnapshot: !!c,
52
53
  hasValue: w,
53
- isStale: O,
54
+ isStale: k,
54
55
  readonly: e.readonly
55
- }), j = !!(t && E && t.type !== "autocomplete"), N = be(O, j && t !== null && le(t, e.formData, e.row?.values).length > 0), [re, P] = o([]), [I, ce] = o(""), [L, R] = o(null), [z, ue] = o(null), [fe, H] = o(() => t ? j ? N : A : "IDLE"), [pe, U] = o(null), W = a(0), G = a(0), K = a(0), q = a(null), J = a(null), _e = a({
56
+ }), M = !!(t && E && t.type !== "autocomplete"), P = be(k, M && t !== null && ce(t, e.formData, e.row?.values).length > 0), [F, I] = o([]), [oe, se] = o(""), [R, z] = o(null), [le, de] = o(null), [pe, V] = o(() => t ? M ? P : j : "IDLE"), [me, H] = o(null), U = a(0), W = a(0), G = a(0), K = a(null), q = a(null), J = a({
56
57
  cursor: null,
57
58
  searchText: ""
58
- }), Y = i(() => we(e.formData), [f]), X = i(() => e.row ? we(e.row.values) : void 0, [y]), Te = i(() => M(d, re), [re, d]), Ee = z && z.signature === T ? z : null, De = k && !Ee, Oe = ve({
59
- options: Te,
60
- resolution: Ee,
61
- resolvePending: De,
59
+ }), Y = i(() => we(e.formData), [f]), X = i(() => e.row ? we(e.row.values) : void 0, [y]), Z = i(() => N(d, F), [F, d]), Te = le && le.signature === T ? le : null, Ee = A && !Te, De = ve({
60
+ options: Z,
61
+ resolution: Te,
62
+ resolvePending: Ee,
62
63
  value: x
63
- }), Z = n((n, r) => {
64
+ }), Q = n((n, r) => {
64
65
  if (!t || !E) return;
65
- let i = G.current + 1;
66
- G.current = i, _e.current = {
66
+ let i = W.current + 1;
67
+ W.current = i, J.current = {
67
68
  cursor: r,
68
69
  searchText: n
69
- }, q.current?.abort();
70
+ }, K.current?.abort();
70
71
  let a = new AbortController();
71
- q.current = a, H(N), U(null), (E.kind === "preview" ? te({
72
+ K.current = a, V(P), H(null), (E.kind === "preview" ? ee({
72
73
  cursor: r,
73
74
  fieldKey: s,
74
75
  formData: Y,
@@ -77,7 +78,7 @@ function K(e) {
77
78
  searchText: n,
78
79
  signal: a.signal,
79
80
  uiSchema: e.uiSchema
80
- }) : se({
81
+ }) : ae({
81
82
  cursor: r,
82
83
  fieldKey: s,
83
84
  formData: Y,
@@ -87,34 +88,34 @@ function K(e) {
87
88
  signal: a.signal,
88
89
  templateId: E.templateId ?? null
89
90
  })).then((e) => {
90
- Ce(a, G, i) || (P((t) => {
91
- let n = B(x, t);
92
- return M(n, r ? t : [], e.options);
93
- }), R(e.nextCursor), U(null), W.current = r ? W.current + e.options.length : e.options.length, e.nextCursor && e.options.length > 0 && W.current < he && Q.current(n, e.nextCursor), H(e.waitingForFieldKeys.length ? "WAITING_FOR_DEPENDENCIES" : "VALID"));
91
+ Ce(a, W, i) || (I((t) => {
92
+ let n = ue(x, t);
93
+ return N(n, r ? t : [], e.options);
94
+ }), z(e.nextCursor), H(null), U.current = r ? U.current + e.options.length : e.options.length, e.nextCursor && e.options.length > 0 && U.current < ge && Oe.current(n, e.nextCursor), V(e.waitingForFieldKeys.length ? "WAITING_FOR_DEPENDENCIES" : "VALID"));
94
95
  }).catch((e) => {
95
- if (Ce(a, G, i)) return;
96
- let t = ae(e) ?? "選項來源暫時無法使用。", n = ie(e);
97
- U(t), H(xe(!!(n && ge.includes(n)), w));
96
+ if (Ce(a, W, i)) return;
97
+ let t = re(e) ?? "選項來源暫時無法使用。", n = ne(e);
98
+ H(t), V(xe(!!(n && _e.includes(n)), w));
98
99
  });
99
100
  }, [
100
101
  S,
101
102
  l,
102
103
  E,
103
104
  w,
104
- N,
105
+ P,
105
106
  s,
106
107
  Y,
107
108
  X,
108
109
  m,
109
110
  h
110
- ]), Q = a(Z);
111
- Q.current = Z;
111
+ ]), Oe = a(Q);
112
+ Oe.current = Q;
112
113
  let ke = n(() => {
113
114
  if (!t || !E || C.length === 0) return;
114
- let n = T, r = K.current + 1;
115
- K.current = r, J.current?.abort();
115
+ let n = T, r = G.current + 1;
116
+ G.current = r, q.current?.abort();
116
117
  let i = new AbortController();
117
- J.current = i, U(null), (E.kind === "preview" ? ne({
118
+ q.current = i, H(null), (E.kind === "preview" ? te({
118
119
  fieldKey: s,
119
120
  formData: Y,
120
121
  rowValues: X,
@@ -122,7 +123,7 @@ function K(e) {
122
123
  signal: i.signal,
123
124
  uiSchema: e.uiSchema,
124
125
  values: C
125
- }) : de({
126
+ }) : fe({
126
127
  fieldKey: s,
127
128
  formData: Y,
128
129
  instanceId: E.instanceId ?? null,
@@ -131,12 +132,12 @@ function K(e) {
131
132
  templateId: E.templateId ?? null,
132
133
  values: C
133
134
  })).then((e) => {
134
- Ce(i, K, r) || (e.waitingForFieldKeys.length ? H("WAITING_FOR_DEPENDENCIES") : (P((t) => M(t, e.options)), ue({
135
+ Ce(i, G, r) || (e.waitingForFieldKeys.length ? V("WAITING_FOR_DEPENDENCIES") : (I((t) => N(t, e.options)), de({
135
136
  signature: n,
136
137
  unresolvedValues: e.unresolvedValues
137
- }), H("VALID")));
138
+ }), V("VALID")));
138
139
  }).catch((e) => {
139
- Ce(i, K, r) || (H("UNAVAILABLE"), U(ae(e) ?? "選項來源暫時無法使用。"));
140
+ Ce(i, G, r) || (V("UNAVAILABLE"), H(re(e) ?? "選項來源暫時無法使用。"));
140
141
  });
141
142
  }, [
142
143
  T,
@@ -150,60 +151,60 @@ function K(e) {
150
151
  h
151
152
  ]), Ae = a(ke);
152
153
  Ae.current = ke, r(() => {
153
- G.current += 1, q.current?.abort(), P((e) => B(x, e)), R((e) => e === null ? e : null), ce((e) => e && ""), U((e) => e && null), t ? j ? Q.current("", null) : H(A) : H("IDLE");
154
+ W.current += 1, K.current?.abort(), I((e) => ue(x, e)), z((e) => e === null ? e : null), se((e) => e && ""), H((e) => e && null), t ? M ? Oe.current("", null) : V(j) : V("IDLE");
154
155
  }, [
155
- j,
156
+ M,
156
157
  l,
157
158
  E,
158
159
  T,
159
160
  p,
160
161
  b,
161
162
  e.readonly,
162
- N,
163
- A,
163
+ P,
164
+ j,
164
165
  u
165
166
  ]), r(() => {
166
- k && Ae.current();
167
+ A && Ae.current();
167
168
  }, [
168
169
  T,
169
170
  E,
170
- k
171
+ A
171
172
  ]), r(() => () => {
172
- q.current?.abort(), J.current?.abort();
173
+ K.current?.abort(), q.current?.abort();
173
174
  }, []);
174
175
  let je = n((e) => {
175
- ce(e), P((e) => B(x, e)), R(null), Z(e, null);
176
- }, [Z]), Me = n(() => {
177
- L && Z(I, L);
176
+ se(e), I((e) => ue(x, e)), z(null), Q(e, null);
177
+ }, [Q]), Me = n(() => {
178
+ R && Q(oe, R);
178
179
  }, [
179
- Z,
180
- L,
181
- I
180
+ Q,
181
+ R,
182
+ oe
182
183
  ]), Ne = n(() => {
183
- E && (Z(_e.current.searchText, _e.current.cursor), k && Ae.current());
184
+ E && (Q(J.current.searchText, J.current.cursor), A && Ae.current());
184
185
  }, [
185
186
  E,
186
- Z,
187
- k
187
+ Q,
188
+ A
188
189
  ]);
189
190
  return t ? {
190
191
  canRetry: !!E,
191
- error: pe,
192
+ error: me,
192
193
  hasValue: w,
193
- hasNextPage: !!L,
194
- invalidValues: Oe,
194
+ hasNextPage: !!R,
195
+ invalidValues: De,
195
196
  onReachBottom: Me,
196
197
  onSearch: je,
197
- options: Te,
198
+ options: Z,
198
199
  retry: Ne,
199
200
  status: Se({
200
- invalidValues: Oe,
201
- resolvePending: De,
202
- status: fe
201
+ invalidValues: De,
202
+ resolvePending: Ee,
203
+ status: pe
203
204
  })
204
- } : me;
205
+ } : he;
205
206
  }
206
- function q(e) {
207
+ function J(e) {
207
208
  switch (e.status) {
208
209
  case "WAITING_FOR_DEPENDENCIES": return "請先填寫相依欄位。";
209
210
  case "STALE": return "選項需要重新載入或驗證。";
@@ -213,15 +214,15 @@ function q(e) {
213
214
  default: return e.error;
214
215
  }
215
216
  }
216
- function J(e) {
217
+ function Y(e) {
217
218
  return e.hasValue && e.status !== "VALID";
218
219
  }
219
- function _e(e) {
220
- let t = e.filter(J);
220
+ function X(e) {
221
+ let t = e.filter(Y);
221
222
  return t.length === 0 ? null : t.every((e) => e.status === "LOADING" || e.status === "STALE") ? "選項驗證中,請稍候再送出。" : "請先完成動態選項驗證。";
222
223
  }
223
224
  function ve(e) {
224
- return e.resolution ? e.resolution.unresolvedValues : e.resolvePending ? G : R(e.value, e.options);
225
+ return e.resolution ? e.resolution.unresolvedValues : e.resolvePending ? K : z(e.value, e.options);
225
226
  }
226
227
  function ye(e) {
227
228
  return e.isStale ? "STALE" : e.hasSnapshot ? "VALID" : e.readonly && e.hasValue ? "UNAVAILABLE" : "IDLE";
@@ -244,35 +245,158 @@ function we(e) {
244
245
  [t]: n
245
246
  }, {});
246
247
  }
247
- //#endregion
248
- //#region src/views/forms/renderer/form-field-link.ts
249
- var Y = /\s/u;
250
- function X(e) {
248
+ // src/views/forms/renderer/form-value-readers.ts
249
+ function Z(e) {
250
+ return Array.isArray(e) && e.every((e) => typeof e == "string") ? e : [];
251
+ }
252
+ // src/views/forms/renderer/file-upload-field.tsx
253
+ function Te(e) {
254
+ return e.some((e) => e.pendingCount > 0) ? "附件仍在上傳中,請稍候再送出。" : e.some((e) => e.failedCount > 0) ? "有附件上傳失敗,請重試或移除後再送出。" : null;
255
+ }
256
+ function Ee() {
257
+ let [e, t] = o({}), r = n((e, n) => t((t) => ({
258
+ ...t,
259
+ [e]: n
260
+ })), []);
261
+ return {
262
+ blockMessage: Te(Object.values(e)),
263
+ onFileUploadStateChange: r
264
+ };
265
+ }
266
+ var De = "無法讀取檔名的附件", Q = "此處無法上傳附件";
267
+ function Oe({ attachments: e, field: t, onChange: s, onDownloadAttachment: c, onStateChange: l, onUploadAttachment: u, readonly: d, value: f }) {
268
+ let [p, m] = o([]), [h, g] = o(() => /* @__PURE__ */ new Map()), [_, v] = o([]), b = Z(f), x = b.join("\n"), C = i(() => new Map((e ?? []).map((e) => [e.id, e])), [e]), w = i(() => {
269
+ let e = new Map(_.map((e, t) => [e, t]));
270
+ return [...b.map((e) => h.get(e) ?? ke(e, C.get(e))), ...p].sort((t, n) => (e.get(t.id) ?? -1) - (e.get(n.id) ?? -1));
271
+ }, [
272
+ C,
273
+ _,
274
+ h,
275
+ p,
276
+ x
277
+ ]), T = a(w), E = a(!0), D = a(M);
278
+ D.current = M, r(() => {
279
+ T.current = w;
280
+ }, [w]);
281
+ let O = n((e) => D.current(e), []), k = p.filter((e) => e.status === "loading").length, A = p.filter((e) => e.status === "error").length, j = a(l);
282
+ j.current = l, r(() => {
283
+ j.current?.({
284
+ failedCount: A,
285
+ pendingCount: k
286
+ });
287
+ }, [A, k]), r(() => (E.current = !0, () => {
288
+ E.current = !1, j.current?.({
289
+ failedCount: 0,
290
+ pendingCount: 0
291
+ });
292
+ }), []);
293
+ function M(e) {
294
+ if (!E.current) return;
295
+ let t = e.filter((e) => e.status === "done"), n = t.map((e) => e.id), r = new Set(b), i = t.filter((e) => e.file !== void 0 && !r.has(e.id));
296
+ T.current = e, v(e.map((e) => e.id)), m(e.filter((e) => e.status !== "done")), i.length > 0 && g((e) => new Map([...e, ...i.map((e) => [e.id, e])])), n.join("\n") !== x && s(n.length ? n : void 0);
297
+ }
298
+ async function N(e) {
299
+ if (!u) throw Error(Q);
300
+ return {
301
+ file: e,
302
+ id: (await u(t, e)).id,
303
+ progress: 100,
304
+ status: "done"
305
+ };
306
+ }
307
+ async function P(e, t) {
308
+ let n = await N(t).catch((n) => ({
309
+ errorMessage: je(n),
310
+ file: t,
311
+ id: e,
312
+ status: "error"
313
+ }));
314
+ D.current(T.current.map((t) => t.id === e ? n : t));
315
+ }
316
+ function ee(e, t) {
317
+ h.has(e) ? Me(t) : c?.(e);
318
+ }
319
+ let te = !!u && !d, F = [...!d && !u ? [{
320
+ label: Q,
321
+ type: "info"
322
+ }] : [], ...p.filter((e) => e.status === "error").map((e) => ({
323
+ label: `${e.file?.name ?? "檔案"}:${e.errorMessage ?? "上傳失敗"},未附加。請重試或刪除。`,
324
+ type: "error"
325
+ }))];
326
+ return /* @__PURE__ */ S(y, {
327
+ accept: t.acceptedMimeTypes?.join(","),
328
+ disabled: !te,
329
+ files: w,
330
+ ...F.length > 0 ? { hints: F } : {},
331
+ maxFiles: t.maxFiles,
332
+ mode: "button-list",
333
+ ...(t.maxFiles ?? 1) > 1 ? { multiple: !0 } : {},
334
+ onChange: O,
335
+ onDownload: ee,
336
+ onReload: (e, t) => {
337
+ P(e, t);
338
+ },
339
+ onUpload: async (e) => Promise.all(e.map(async (e) => N(e).catch((t) => ({
340
+ errorMessage: je(t),
341
+ file: e,
342
+ id: `failed-${e.name}-${e.lastModified}-${Math.random()}`,
343
+ status: "error"
344
+ })))),
345
+ size: "sub"
346
+ });
347
+ }
348
+ function ke(e, t) {
349
+ return t ? {
350
+ file: Ae(t),
351
+ id: e,
352
+ progress: 100,
353
+ status: "done"
354
+ } : {
355
+ id: e,
356
+ progress: 100,
357
+ status: "done",
358
+ url: De
359
+ };
360
+ }
361
+ function Ae(e) {
362
+ let t = new File([], e.filename), n = Number(e.sizeBytes);
363
+ return Number.isFinite(n) && n >= 0 && Object.defineProperty(t, "size", { value: n }), t;
364
+ }
365
+ function je(e) {
366
+ return e instanceof Error && e.message ? `上傳失敗:${e.message}` : "上傳失敗,請重試。";
367
+ }
368
+ function Me(e) {
369
+ let t = URL.createObjectURL(e), n = document.createElement("a");
370
+ n.href = t, n.download = e.name, n.style.display = "none", document.body.appendChild(n), n.click(), n.remove(), setTimeout(() => URL.revokeObjectURL(t), 3e4);
371
+ }
372
+ // src/views/forms/renderer/form-field-link.ts
373
+ var Ne = /\s/u;
374
+ function Pe(e) {
251
375
  return [...e].some((e) => {
252
376
  let t = e.codePointAt(0) ?? 0;
253
- return t <= 32 || t >= 127 && t <= 160 || Y.test(e);
377
+ return t <= 32 || t >= 127 && t <= 160 || Ne.test(e);
254
378
  });
255
379
  }
256
- var Te = /^https?:\/\//iu;
257
- function Ee(e) {
258
- return typeof e != "string" || !e || e.includes("\\") || X(e) ? null : e.startsWith("/") ? !e.startsWith("//") && Oe(e) ? {
380
+ var Fe = /^https?:\/\//iu;
381
+ function Ie(e) {
382
+ return typeof e != "string" || !e || e.includes("\\") || Pe(e) ? null : e.startsWith("/") ? !e.startsWith("//") && Re(e) ? {
259
383
  external: !1,
260
384
  href: e
261
- } : null : Te.test(e) && Z(e) ? {
385
+ } : null : Fe.test(e) && ze(e) ? {
262
386
  external: !0,
263
387
  href: e
264
388
  } : null;
265
389
  }
266
- var De = "http://placeholder.invalid";
267
- function Oe(e) {
390
+ var Le = "http://placeholder.invalid";
391
+ function Re(e) {
268
392
  try {
269
- let t = new URL(e, De);
270
- return t.origin === De && !t.pathname.startsWith("//");
393
+ let t = new URL(e, Le);
394
+ return t.origin === Le && !t.pathname.startsWith("//");
271
395
  } catch {
272
396
  return !1;
273
397
  }
274
398
  }
275
- function Z(e) {
399
+ function ze(e) {
276
400
  try {
277
401
  let t = new URL(e);
278
402
  return (t.protocol === "http:" || t.protocol === "https:") && !!t.hostname && !t.username && !t.password;
@@ -280,7 +404,7 @@ function Z(e) {
280
404
  return !1;
281
405
  }
282
406
  }
283
- async function Q(e, t, n = {}) {
407
+ async function Be(e, t, n = {}) {
284
408
  let r = n.maxPerIdRequests ?? 20, i = Math.max(1, n.concurrency ?? 4);
285
409
  try {
286
410
  return {
@@ -295,17 +419,17 @@ async function Q(e, t, n = {}) {
295
419
  skippedIds: []
296
420
  };
297
421
  }
298
- let a = e.slice(0, r), o = await Ae(a, i, (e) => t([e]));
422
+ let a = e.slice(0, r), o = await He(a, i, (e) => t([e]));
299
423
  return {
300
424
  failedIds: a.filter((e, t) => o[t].status === "rejected"),
301
425
  profiles: o.flatMap((e) => e.status === "fulfilled" ? e.value : []),
302
426
  skippedIds: e.slice(r)
303
427
  };
304
428
  }
305
- function ke(e, t) {
429
+ function Ve(e, t) {
306
430
  return e.filter((e) => !t.has(e));
307
431
  }
308
- async function Ae(e, t, n) {
432
+ async function He(e, t, n) {
309
433
  let r = [], i = 0;
310
434
  async function a() {
311
435
  for (; i < e.length;) {
@@ -321,46 +445,44 @@ async function Ae(e, t, n) {
321
445
  }
322
446
  return await Promise.all(Array.from({ length: Math.min(t, e.length) }, a)), r;
323
447
  }
324
- //#endregion
325
- //#region src/views/forms/renderer/member-field-options.ts
326
- var je = "未知會員";
327
- function Me(e) {
448
+ // src/views/forms/renderer/member-field-options.ts
449
+ var Ue = "未知會員";
450
+ function We(e) {
328
451
  return {
329
452
  id: e.memberId,
330
453
  name: t(e.name, e.email)
331
454
  };
332
455
  }
333
- function Ne(e) {
456
+ function Ge(e) {
334
457
  return {
335
458
  id: e,
336
- name: je,
459
+ name: Ue,
337
460
  unresolved: !0
338
461
  };
339
462
  }
340
- function Pe(e, t) {
463
+ function Ke(e, t) {
341
464
  let n = new Map(t.filter((e) => !e.unresolved).map((e) => [e.id, e])), r = new Set(e.map((e) => e.id)), i = t.filter((e, n) => !r.has(e.id) && t.findIndex((t) => t.id === e.id) === n), a = e.map((e) => (e.unresolved ? n.get(e.id) : void 0) ?? e);
342
465
  return i.length > 0 || a.some((t, n) => t !== e[n]) ? [...a, ...i] : e;
343
466
  }
344
- function Fe(e, t) {
467
+ function qe(e, t) {
345
468
  let n = new Set(t.filter((e) => !e.unresolved).map((e) => e.id));
346
- return W(e).filter((e) => !n.has(e));
469
+ return U(e).filter((e) => !n.has(e));
347
470
  }
348
- function Ie(e, t) {
349
- return W(e).map((e) => t.find((t) => t.id === e) ?? Ne(e));
471
+ function Je(e, t) {
472
+ return U(e).map((e) => t.find((t) => t.id === e) ?? Ge(e));
350
473
  }
351
- function Le(e, t) {
474
+ function Ye(e, t) {
352
475
  if (e.length !== 0) return t ? e.map((e) => e.id) : e[0]?.id;
353
476
  }
354
- //#endregion
355
- //#region src/views/forms/renderer/member-field.tsx
356
- function Re({ multiple: e, name: t, onChange: n, placeholder: i, readonly: c, size: l, value: u }) {
357
- let [d, f] = o([]), [p, m] = o([]), [h, g] = o(!1), _ = a(0), v = a(/* @__PURE__ */ new Set()), y = Fe(u, d).join("\n");
477
+ // src/views/forms/renderer/member-field.tsx
478
+ function Xe({ multiple: e, name: t, onChange: n, placeholder: i, readonly: c, size: l, value: u }) {
479
+ let [d, f] = o([]), [p, m] = o([]), [h, g] = o(!1), _ = a(0), v = a(/* @__PURE__ */ new Set()), y = qe(u, d).join("\n");
358
480
  r(() => {
359
- let e = ke(y ? y.split("\n") : [], v.current), t = !1;
360
- return e.length === 0 ? () => void 0 : (Q(e, b).then(({ profiles: n, skippedIds: r }) => {
481
+ let e = Ve(y ? y.split("\n") : [], v.current), t = !1;
482
+ return e.length === 0 ? () => void 0 : (Be(e, b).then(({ profiles: n, skippedIds: r }) => {
361
483
  if (t) return;
362
- let i = n.map(Me), a = e.filter((e) => !i.some((t) => t.id === e)).map(Ne);
363
- a.filter((e) => !r.includes(e.id)).forEach((e) => v.current.add(e.id)), f((e) => Pe(e, [...i, ...a]));
484
+ let i = n.map(We), a = e.filter((e) => !i.some((t) => t.id === e)).map(Ge);
485
+ a.filter((e) => !r.includes(e.id)).forEach((e) => v.current.add(e.id)), f((e) => Ke(e, [...i, ...a]));
364
486
  }), () => {
365
487
  t = !0;
366
488
  });
@@ -369,15 +491,15 @@ function Re({ multiple: e, name: t, onChange: n, placeholder: i, readonly: c, si
369
491
  let t = _.current + 1;
370
492
  _.current = t, g(!0);
371
493
  try {
372
- let n = (await x(e)).map(Me);
373
- _.current === t && (m(n), f((e) => Pe(e, n)));
494
+ let n = (await x(e)).map(We);
495
+ _.current === t && (m(n), f((e) => Ke(e, n)));
374
496
  } catch {
375
497
  _.current === t && m([]);
376
498
  } finally {
377
499
  _.current === t && g(!1);
378
500
  }
379
501
  }
380
- let w = Ie(u, d), T = [...Pe(w, p)], E = {
502
+ let w = Je(u, d), T = [...Ke(w, p)], E = {
381
503
  asyncData: !0,
382
504
  clearSearchText: !0,
383
505
  disabled: c,
@@ -405,103 +527,219 @@ function Re({ multiple: e, name: t, onChange: n, placeholder: i, readonly: c, si
405
527
  return e ? /* @__PURE__ */ S(s, {
406
528
  ...E,
407
529
  mode: "multiple",
408
- onChange: (e) => n(Le(e, !0)),
530
+ onChange: (e) => n(Ye(e, !0)),
409
531
  value: [...w]
410
532
  }) : /* @__PURE__ */ S(s, {
411
533
  ...E,
412
534
  mode: "single",
413
- onChange: (e) => n(Le(e ? [e] : [], !1)),
535
+ onChange: (e) => n(Ye(e ? [e] : [], !1)),
414
536
  value: w[0] ?? null
415
537
  });
416
538
  }
417
- //#endregion
418
- //#region src/views/forms/renderer/FormRendererView.tsx
419
- var ze = {
539
+ // src/views/forms/renderer/org-unit-field-options.ts
540
+ var Ze = "未知組織", Qe = "(已刪除)";
541
+ function $e(e) {
542
+ return {
543
+ id: e.id,
544
+ name: e.deleted ? `${e.name}${Qe}` : e.name
545
+ };
546
+ }
547
+ function et(e) {
548
+ return {
549
+ id: e,
550
+ name: e,
551
+ unresolved: !0
552
+ };
553
+ }
554
+ function tt(e) {
555
+ return {
556
+ id: e,
557
+ name: Ze,
558
+ unresolved: !0
559
+ };
560
+ }
561
+ function nt(e) {
562
+ return typeof e == "string" && e.trim() ? e : null;
563
+ }
564
+ function $(e) {
565
+ return e.toLowerCase();
566
+ }
567
+ function rt(e, t) {
568
+ return $(e) === $(t);
569
+ }
570
+ function it(e, t) {
571
+ let n = nt(e);
572
+ return n === null ? null : t.find((e) => rt(e.id, n)) ?? et(n);
573
+ }
574
+ function at(e, t) {
575
+ let n = nt(e);
576
+ return n !== null && !t.some((e) => rt(e.id, n)) ? n : null;
577
+ }
578
+ function ot(e, t) {
579
+ let n = new Map(t.filter((e) => !e.unresolved).map((e) => [$(e.id), e])), r = new Set(e.map((e) => $(e.id))), i = t.filter((e, n) => !r.has($(e.id)) && t.findIndex((t) => rt(t.id, e.id)) === n), a = e.map((e) => (e.unresolved ? n.get($(e.id)) : void 0) ?? e);
580
+ return i.length > 0 || a.some((t, n) => t !== e[n]) ? [...a, ...i] : e;
581
+ }
582
+ function st(e) {
583
+ return e ? e.id : void 0;
584
+ }
585
+ // src/views/forms/renderer/org-unit-field.tsx
586
+ var ct = "搜尋組織失敗,請稍後再試。";
587
+ function lt({ name: e, onChange: t, placeholder: n, readonly: i, size: c, value: l }) {
588
+ let [u, d] = o([]), [f, p] = o([]), [m, h] = o(!1), [g, _] = o(!1), y = a(0), b = at(l, u);
589
+ r(() => {
590
+ let e = !1;
591
+ return b === null ? () => void 0 : (W([b]).then((e) => {
592
+ let t = e.map($e);
593
+ return t.some((e) => e.id.toLowerCase() === b.toLowerCase()) ? t : [...t, tt(b)];
594
+ }).catch(() => [tt(b)]).then((t) => {
595
+ e || d((e) => ot(e, t));
596
+ }), () => {
597
+ e = !0;
598
+ });
599
+ }, [b]);
600
+ async function x(e) {
601
+ let t = y.current + 1;
602
+ y.current = t, h(!0);
603
+ try {
604
+ let n = (await G(e)).map($e);
605
+ y.current === t && (p(n), _(!1), d((e) => ot(e, n)));
606
+ } catch {
607
+ y.current === t && (p([]), _(!0));
608
+ } finally {
609
+ y.current === t && h(!1);
610
+ }
611
+ }
612
+ let w = it(l, u), T = [...ot(w ? [w] : [], f)];
613
+ return /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S(s, {
614
+ asyncData: !0,
615
+ clearSearchText: !0,
616
+ disabled: i,
617
+ disabledOptionsFilter: !0,
618
+ emptyText: "沒有符合的組織",
619
+ globalPortal: !0,
620
+ inputProps: {
621
+ autoCapitalize: "none",
622
+ autoCorrect: "off",
623
+ name: e,
624
+ spellCheck: !1
625
+ },
626
+ loading: m,
627
+ loadingText: "搜尋組織中...",
628
+ mode: "single",
629
+ onChange: (e) => t(st(e ?? null)),
630
+ onSearch: x,
631
+ onVisibilityChange: (e) => {
632
+ e && (p([]), x(""));
633
+ },
634
+ options: T,
635
+ placeholder: n ?? "搜尋組織名稱",
636
+ readOnly: i,
637
+ searchDebounceTime: 300,
638
+ size: c,
639
+ value: w
640
+ }), g ? /* @__PURE__ */ S(v, {
641
+ color: "text-error",
642
+ variant: "caption",
643
+ children: ct
644
+ }) : null] });
645
+ }
646
+ // src/views/forms/renderer/FormRendererView.tsx
647
+ var ut = {
420
648
  alignItems: "start",
421
649
  display: "grid",
422
650
  gap: 12,
423
651
  gridTemplateColumns: "repeat(12, minmax(0, 1fr))"
424
- }, Be = { gridColumn: "1 / -1" }, Ve = {
652
+ }, dt = { gridColumn: "1 / -1" }, ft = {
425
653
  alignItems: "start",
426
654
  display: "grid",
427
655
  gap: 8,
428
656
  minWidth: 0
429
- }, He = {
657
+ }, pt = {
430
658
  minWidth: "100%",
431
659
  width: "100%"
432
660
  };
433
- function Ue(e) {
661
+ function mt(e) {
434
662
  e && (e.style.width = "100%");
435
663
  }
436
- function We({ dataSourceContext: e, dataSourceInitialValues: t, emptyText: n = "尚未建立欄位。", errors: s = {}, fieldAccess: c, fieldLabelMarkers: l, maxWidth: u, onChange: d, onDataSourceStateChange: f, onUploadAttachment: p, optionSnapshots: m, readonly: h = !1, schema: g, singleColumn: _ = !1, uiSchema: y, value: b }) {
437
- let [x, C] = o(() => E(g.fields, b ?? {})), w = i(() => E(g.fields, b ?? x), [
438
- x,
439
- g.fields,
440
- b
441
- ]), T = a(w), D = i(() => ue(g, y, w).filter((e) => Ge(c, e.fieldKey)?.visible !== !1), [
442
- c,
443
- g,
444
- y,
664
+ function ht({ attachments: e, dataSourceContext: t, dataSourceInitialValues: n, emptyText: s = "尚未建立欄位。", errors: c = {}, fieldAccess: l, fieldLabelMarkers: u, maxWidth: d, onChange: f, onDataSourceStateChange: p, onDownloadAttachment: m, onFileUploadStateChange: h, onUploadAttachment: g, optionSnapshots: _, readonly: y = !1, schema: b, singleColumn: x = !1, uiSchema: C, value: w }) {
665
+ let T = i(() => ({
666
+ attachments: e,
667
+ onDownloadAttachment: m,
668
+ onStateChange: h,
669
+ onUploadAttachment: g
670
+ }), [
671
+ e,
672
+ m,
673
+ h,
674
+ g
675
+ ]), [D, O] = o(() => E(b.fields, w ?? {})), k = i(() => E(b.fields, w ?? D), [
676
+ D,
677
+ b.fields,
445
678
  w
679
+ ]), A = a(k), j = i(() => de(b, C, k).filter((e) => gt(l, e.fieldKey)?.visible !== !1), [
680
+ l,
681
+ b,
682
+ C,
683
+ k
446
684
  ]);
447
685
  r(() => {
448
- T.current = w;
449
- }, [w]), r(() => {
450
- C((e) => E(g.fields, b ?? e));
451
- }, [g.fields, b]);
452
- function ee(e, t) {
686
+ A.current = k;
687
+ }, [k]), r(() => {
688
+ O((e) => E(b.fields, w ?? e));
689
+ }, [b.fields, w]);
690
+ function M(e, t) {
453
691
  let n = {
454
- ...T.current,
692
+ ...A.current,
455
693
  [e]: t
456
694
  };
457
- T.current = n, b || C(n), d?.(n);
695
+ A.current = n, w || O(n), f?.(n);
458
696
  }
459
- return D.length ? /* @__PURE__ */ S("div", {
697
+ return j.length ? /* @__PURE__ */ S("div", {
460
698
  style: {
461
- ...ze,
462
- ..._ ? { width: "100%" } : {}
699
+ ...ut,
700
+ ...x ? { width: "100%" } : {}
463
701
  },
464
- children: D.map((n) => /* @__PURE__ */ S(qe, {
465
- dataSourceContext: e,
466
- dataSourceInitialValues: t,
467
- field: n,
468
- error: s[n.fieldKey] ?? null,
469
- errors: s,
470
- fields: g.fields,
471
- labelMarker: l !== void 0 && Object.prototype.hasOwnProperty.call(l, n.fieldKey) ? l[n.fieldKey] : void 0,
472
- onChange: ee,
473
- onDataSourceStateChange: f,
474
- onUploadAttachment: p,
475
- optionSnapshots: m,
476
- readonly: Ke(Ge(c, n.fieldKey), h),
477
- schema: g,
702
+ children: j.map((e) => /* @__PURE__ */ S(vt, {
703
+ dataSourceContext: t,
704
+ dataSourceInitialValues: n,
705
+ field: e,
706
+ error: c[e.fieldKey] ?? null,
707
+ errors: c,
708
+ fields: b.fields,
709
+ labelMarker: u !== void 0 && Object.prototype.hasOwnProperty.call(u, e.fieldKey) ? u[e.fieldKey] : void 0,
710
+ onChange: M,
711
+ fileUpload: T,
712
+ onDataSourceStateChange: p,
713
+ optionSnapshots: _,
714
+ readonly: _t(gt(l, e.fieldKey), y),
715
+ schema: b,
478
716
  style: {
479
- ...Ve,
480
- gridColumn: `span ${_ ? 12 : pt(n, y)}`,
481
- ..._ && !pe(n) ? { maxWidth: u } : {}
717
+ ...ft,
718
+ gridColumn: `span ${x ? 12 : Rt(e, C)}`,
719
+ ...x && !me(e) ? { maxWidth: d } : {}
482
720
  },
483
- value: w[n.fieldKey],
484
- values: w,
485
- uiSchema: y
486
- }, n.fieldKey))
721
+ value: k[e.fieldKey],
722
+ values: k,
723
+ uiSchema: C
724
+ }, e.fieldKey))
487
725
  }) : /* @__PURE__ */ S("div", {
488
- style: ze,
726
+ style: ut,
489
727
  children: /* @__PURE__ */ S(v, {
490
728
  color: "text-neutral",
491
- style: Be,
729
+ style: dt,
492
730
  variant: "body",
493
- children: g.fields.length > 0 ? "目前條件下沒有可填寫欄位。" : n
731
+ children: b.fields.length > 0 ? "目前條件下沒有可填寫欄位。" : s
494
732
  })
495
733
  });
496
734
  }
497
- function Ge(e, t) {
735
+ function gt(e, t) {
498
736
  return e !== void 0 && Object.prototype.hasOwnProperty.call(e, t) ? e[t] : void 0;
499
737
  }
500
- function Ke(e, t) {
738
+ function _t(e, t) {
501
739
  return e === void 0 ? t : !e.editable;
502
740
  }
503
- function qe({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors: a, field: o, fields: s, labelMarker: l, onChange: u, onDataSourceStateChange: d, onUploadAttachment: f, optionSnapshots: p, readonly: m, schema: h, style: g, value: _, values: y, uiSchema: b }) {
504
- let x = j(o, s, y), w = m || A(o, s, y), T = K({
741
+ function vt({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors: a, field: o, fields: s, fileUpload: l, labelMarker: u, onChange: d, onDataSourceStateChange: f, optionSnapshots: p, readonly: m, schema: h, style: g, value: _, values: y, uiSchema: b }) {
742
+ let x = M(o, s, y), w = m || j(o, s, y), T = q({
505
743
  context: t,
506
744
  field: o,
507
745
  formData: y,
@@ -511,13 +749,13 @@ function qe({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors
511
749
  readonly: w,
512
750
  schema: h,
513
751
  uiSchema: b
514
- }), E = q(T), D = JSON.stringify({
752
+ }), E = J(T), D = JSON.stringify({
515
753
  hasValue: T.hasValue,
516
754
  invalidValues: T.invalidValues,
517
755
  status: T.status
518
756
  });
519
757
  return r(() => {
520
- V(o) && d?.(o.fieldKey, {
758
+ B(o) && f?.(o.fieldKey, {
521
759
  hasValue: T.hasValue,
522
760
  invalidValues: T.invalidValues,
523
761
  status: T.status
@@ -525,30 +763,30 @@ function qe({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors
525
763
  }, [
526
764
  D,
527
765
  o.fieldKey,
528
- d
766
+ f
529
767
  ]), /* @__PURE__ */ C("div", {
530
768
  "data-form-field-key": o.fieldKey,
531
769
  style: g,
532
770
  children: [
533
771
  /* @__PURE__ */ S(e, {
534
772
  label: o.label,
535
- ...l ? { labelOptionalMarker: l } : {},
773
+ ...u ? { labelOptionalMarker: u } : {},
536
774
  name: o.fieldKey,
537
775
  required: x,
538
- children: pe(o) ? /* @__PURE__ */ S(it, {
776
+ children: me(o) ? /* @__PURE__ */ S(kt, {
539
777
  dataSourceContext: t,
540
778
  dataSourceInitialValues: n,
541
779
  errors: a,
542
780
  field: o,
543
- onChange: u,
544
- onDataSourceStateChange: d,
781
+ onChange: d,
782
+ onDataSourceStateChange: f,
545
783
  optionSnapshots: p,
546
784
  readonly: w,
547
785
  schema: h,
548
786
  uiSchema: b,
549
787
  value: _,
550
788
  values: y
551
- }) : ut(o, _, w, u, f, t, T)
789
+ }) : Ft(o, _, w, d, l, t, T)
552
790
  }),
553
791
  i ? /* @__PURE__ */ S(v, {
554
792
  color: "text-error",
@@ -556,7 +794,7 @@ function qe({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors
556
794
  children: i
557
795
  }) : null,
558
796
  E ? /* @__PURE__ */ C("div", {
559
- style: Ze,
797
+ style: St,
560
798
  children: [/* @__PURE__ */ S(v, {
561
799
  color: T.status === "INVALID" || T.status === "UNAVAILABLE" ? "text-error" : "text-neutral",
562
800
  variant: "caption",
@@ -572,99 +810,99 @@ function qe({ dataSourceContext: t, dataSourceInitialValues: n, error: i, errors
572
810
  ]
573
811
  });
574
812
  }
575
- var Je = "(另開新分頁)", Ye = "另開新分頁", Xe = {
813
+ var yt = "(另開新分頁)", bt = "另開新分頁", xt = {
576
814
  color: "inherit",
577
815
  textDecoration: "underline",
578
816
  wordBreak: "break-all"
579
- }, Ze = {
817
+ }, St = {
580
818
  alignItems: "center",
581
819
  display: "flex",
582
820
  gap: 8
583
- }, Qe = {
821
+ }, Ct = {
584
822
  display: "grid",
585
823
  gap: 8,
586
824
  minWidth: 0,
587
825
  width: "100%"
588
- }, $e = {
826
+ }, wt = {
589
827
  display: "flex",
590
828
  justifyContent: "flex-start"
591
- }, et = {
829
+ }, Tt = {
592
830
  maxWidth: "100%",
593
831
  overflowX: "auto"
594
- }, tt = 160, nt = 56, rt = {
832
+ }, Et = 160, Dt = 56, Ot = {
595
833
  display: "grid",
596
834
  gap: 4,
597
835
  minWidth: 0
598
836
  };
599
- function it({ dataSourceContext: e, dataSourceInitialValues: t, errors: n, field: i, onChange: s, onDataSourceStateChange: l, optionSnapshots: u, readonly: d, schema: f, uiSchema: p, value: m, values: g }) {
600
- let _ = L(m), v = ce(i), y = a(0), [b, x] = o(() => _.map(() => st(y)));
837
+ function kt({ dataSourceContext: e, dataSourceInitialValues: t, errors: n, field: i, onChange: s, onDataSourceStateChange: l, optionSnapshots: u, readonly: d, schema: f, uiSchema: p, value: m, values: g }) {
838
+ let _ = R(m), v = se(i), y = a(0), [b, x] = o(() => _.map(() => Mt(y)));
601
839
  r(() => {
602
- b.length !== _.length && x(_.map(() => st(y)));
840
+ b.length !== _.length && x(_.map(() => Mt(y)));
603
841
  }, [b.length, _.length]);
604
842
  function E(e) {
605
843
  s(i.fieldKey, e);
606
844
  }
607
845
  function D() {
608
- x([...b, st(y)]), E([..._, ee(i.columns)]);
846
+ x([...b, Mt(y)]), E([..._, O(i.columns)]);
609
847
  }
610
- function O(e) {
848
+ function k(e) {
611
849
  x(b.filter((t, n) => n !== e)), E(_.filter((t, n) => n !== e));
612
850
  }
613
- function k(e, t, n) {
614
- E(_.map((r, i) => i === e ? ct(r, t, n) : r));
851
+ function A(e, t, n) {
852
+ E(_.map((r, i) => i === e ? Nt(r, t, n) : r));
615
853
  }
616
- let A = _.map((e, t) => ({
854
+ let j = _.map((e, t) => ({
617
855
  ...e,
618
856
  index: t,
619
857
  key: b[t] ?? `row-${t}`
620
- })), j = i.columns.map((r) => ({
858
+ })), M = i.columns.map((r) => ({
621
859
  key: r.fieldKey,
622
- render: (a) => /* @__PURE__ */ S(at, {
860
+ render: (a) => /* @__PURE__ */ S(At, {
623
861
  column: r,
624
862
  dataSourceContext: e,
625
- error: n[I(i.fieldKey, a.index, r.fieldKey)] ?? null,
863
+ error: n[oe(i.fieldKey, a.index, r.fieldKey)] ?? null,
626
864
  fieldPath: `${i.fieldKey}.${r.fieldKey}`,
627
865
  formData: g,
628
866
  initialFormData: t,
629
- initialRowValues: ot(t?.[i.fieldKey], a.index),
630
- onChange: (e) => k(a.index, r.fieldKey, e),
867
+ initialRowValues: jt(t?.[i.fieldKey], a.index),
868
+ onChange: (e) => A(a.index, r.fieldKey, e),
631
869
  onDataSourceStateChange: l,
632
870
  optionSnapshots: u,
633
- path: I(i.fieldKey, a.index, r.fieldKey),
871
+ path: oe(i.fieldKey, a.index, r.fieldKey),
634
872
  readonly: d,
635
873
  rowValues: _[a.index] ?? {},
636
874
  schema: f,
637
875
  uiSchema: p
638
876
  }, `${b[a.index] ?? a.index}-${r.fieldKey}`),
639
877
  title: r.label || r.fieldKey
640
- })), M = d ? void 0 : {
878
+ })), N = d ? void 0 : {
641
879
  render: (e) => [{
642
880
  disabled: () => _.length <= v.minRows,
643
881
  icon: T,
644
882
  iconType: "icon-only",
645
883
  name: "刪除此列",
646
- onClick: () => O(e.index),
884
+ onClick: () => k(e.index),
647
885
  variant: "destructive-ghost"
648
886
  }],
649
887
  width: 56
650
888
  };
651
889
  return /* @__PURE__ */ C("div", {
652
- style: Qe,
890
+ style: Ct,
653
891
  children: [/* @__PURE__ */ S("div", {
654
- style: et,
892
+ style: Tt,
655
893
  children: /* @__PURE__ */ S("div", {
656
- style: { minWidth: i.columns.length * tt + (M ? nt : 0) },
894
+ style: { minWidth: i.columns.length * Et + (N ? Dt : 0) },
657
895
  children: /* @__PURE__ */ S(h, {
658
- ...M ? { actions: M } : {},
659
- columns: j,
660
- dataSource: [...A],
896
+ ...N ? { actions: N } : {},
897
+ columns: M,
898
+ dataSource: [...j],
661
899
  rowHeightPreset: "roomy",
662
900
  showHeader: !0,
663
901
  size: "sub"
664
902
  })
665
903
  })
666
904
  }), d ? null : /* @__PURE__ */ S("div", {
667
- style: $e,
905
+ style: wt,
668
906
  children: /* @__PURE__ */ S(c, {
669
907
  disabled: _.length >= v.maxRows,
670
908
  icon: w,
@@ -678,14 +916,14 @@ function it({ dataSourceContext: e, dataSourceInitialValues: t, errors: n, field
678
916
  })]
679
917
  });
680
918
  }
681
- function at({ column: e, dataSourceContext: t, error: n, fieldPath: i, formData: a, initialFormData: o, initialRowValues: s, onChange: l, onDataSourceStateChange: u, optionSnapshots: d, path: f, readonly: p, rowValues: m, schema: h, uiSchema: g }) {
682
- let _ = lt(m, e.fieldKey), y = K({
919
+ function At({ column: e, dataSourceContext: t, error: n, fieldPath: i, formData: a, initialFormData: o, initialRowValues: s, onChange: l, onDataSourceStateChange: u, optionSnapshots: d, path: f, readonly: p, rowValues: m, schema: h, uiSchema: g }) {
920
+ let _ = Pt(m, e.fieldKey), y = q({
683
921
  context: t,
684
922
  field: e,
685
923
  fieldPath: i,
686
924
  formData: a,
687
925
  initialFormData: o,
688
- initialValue: s ? lt(s, e.fieldKey) : void 0,
926
+ initialValue: s ? Pt(s, e.fieldKey) : void 0,
689
927
  optionSnapshots: d,
690
928
  readonly: p,
691
929
  row: {
@@ -695,13 +933,13 @@ function at({ column: e, dataSourceContext: t, error: n, fieldPath: i, formData:
695
933
  schema: h,
696
934
  snapshotKey: f,
697
935
  uiSchema: g
698
- }), b = q(y), x = JSON.stringify({
936
+ }), b = J(y), x = JSON.stringify({
699
937
  hasValue: y.hasValue,
700
938
  invalidValues: y.invalidValues,
701
939
  status: y.status
702
940
  });
703
941
  return r(() => {
704
- if (V(e)) return u?.(f, {
942
+ if (B(e)) return u?.(f, {
705
943
  hasValue: y.hasValue,
706
944
  invalidValues: y.invalidValues,
707
945
  status: y.status
@@ -718,16 +956,16 @@ function at({ column: e, dataSourceContext: t, error: n, fieldPath: i, formData:
718
956
  x
719
957
  ]), /* @__PURE__ */ C("div", {
720
958
  "data-form-field-key": f,
721
- style: rt,
959
+ style: Ot,
722
960
  children: [
723
- ut(e, _, p, (e, t) => l(t), void 0, t, y, "sub"),
961
+ Ft(e, _, p, (e, t) => l(t), void 0, t, y, "sub"),
724
962
  n ? /* @__PURE__ */ S(v, {
725
963
  color: "text-error",
726
964
  variant: "caption",
727
965
  children: n
728
966
  }) : null,
729
967
  b ? /* @__PURE__ */ C("div", {
730
- style: Ze,
968
+ style: St,
731
969
  children: [/* @__PURE__ */ S(v, {
732
970
  color: y.status === "INVALID" || y.status === "UNAVAILABLE" ? "text-error" : "text-neutral",
733
971
  variant: "caption",
@@ -743,38 +981,38 @@ function at({ column: e, dataSourceContext: t, error: n, fieldPath: i, formData:
743
981
  ]
744
982
  });
745
983
  }
746
- function ot(e, t) {
747
- return L(e)[t];
984
+ function jt(e, t) {
985
+ return R(e)[t];
748
986
  }
749
- function st(e) {
987
+ function Mt(e) {
750
988
  return e.current += 1, `table-row-${e.current}`;
751
989
  }
752
- function ct(e, t, n) {
753
- return n === void 0 || !H(n) ? Object.fromEntries(Object.entries(e).filter(([e]) => e !== t)) : {
990
+ function Nt(e, t, n) {
991
+ return n === void 0 || !V(n) ? Object.fromEntries(Object.entries(e).filter(([e]) => e !== t)) : {
754
992
  ...e,
755
993
  [t]: n
756
994
  };
757
995
  }
758
- function lt(e, t) {
996
+ function Pt(e, t) {
759
997
  if (e && Object.prototype.hasOwnProperty.call(e, t)) return e[t];
760
998
  }
761
- function ut(e, t, n, r, i, a, o, s = "main") {
762
- return V(e) ? ft(e, t, n, r, a, o, s) : dt(e, t, n, r, i, s);
999
+ function Ft(e, t, n, r, i, a, o, s = "main") {
1000
+ return B(e) ? Lt(e, t, n, r, a, o, s) : It(e, t, n, r, i, s);
763
1001
  }
764
- function dt(e, t, n, r, i, a = "main") {
765
- let o = n && (e.type === "text" || e.type === "textarea") && e.displayAs === "link" ? Ee(t) : null;
1002
+ function It(e, t, n, r, i, a = "main") {
1003
+ let o = n && (e.type === "text" || e.type === "textarea") && e.displayAs === "link" ? Ie(t) : null;
766
1004
  if (o) return /* @__PURE__ */ S(v, {
767
1005
  color: "text-brand",
768
1006
  component: "span",
769
1007
  variant: "body",
770
1008
  children: /* @__PURE__ */ S("a", {
771
1009
  href: o.href,
772
- style: Xe,
1010
+ style: xt,
773
1011
  ...o.external ? {
774
- "aria-label": `${o.href}${Je}`,
1012
+ "aria-label": `${o.href}${yt}`,
775
1013
  rel: "noopener noreferrer",
776
1014
  target: "_blank",
777
- title: Ye
1015
+ title: bt
778
1016
  } : {},
779
1017
  children: o.href
780
1018
  })
@@ -783,10 +1021,10 @@ function dt(e, t, n, r, i, a = "main") {
783
1021
  onChange: (t) => r(e.fieldKey, t.target.value),
784
1022
  placeholder: e.placeholder ?? "請輸入多行文字",
785
1023
  readOnly: n,
786
- ref: Ue,
1024
+ ref: mt,
787
1025
  rows: 3,
788
- style: He,
789
- value: $(t)
1026
+ style: pt,
1027
+ value: zt(t)
790
1028
  });
791
1029
  if (e.type === "boolean") return /* @__PURE__ */ S(_, {
792
1030
  checked: t === !0,
@@ -795,8 +1033,8 @@ function dt(e, t, n, r, i, a = "main") {
795
1033
  onChange: (t) => r(e.fieldKey, t.target.checked),
796
1034
  size: a
797
1035
  });
798
- if (fe(e) && e.type === "checkbox") {
799
- let i = e.options.map(P);
1036
+ if (pe(e) && e.type === "checkbox") {
1037
+ let i = e.options.map(I);
800
1038
  return /* @__PURE__ */ S(m, {
801
1039
  mode: "multiple",
802
1040
  onChange: (t) => r(e.fieldKey, t?.length ? t.map((e) => e.id) : void 0),
@@ -804,21 +1042,21 @@ function dt(e, t, n, r, i, a = "main") {
804
1042
  placeholder: e.placeholder ?? "請選擇一或多個選項",
805
1043
  readOnly: n,
806
1044
  size: a,
807
- value: i.filter((e) => mt(t).includes(e.id))
1045
+ value: i.filter((e) => Z(t).includes(e.id))
808
1046
  });
809
1047
  }
810
- if (fe(e)) {
811
- let i = e.options.map(P);
1048
+ if (pe(e)) {
1049
+ let i = e.options.map(I);
812
1050
  return /* @__PURE__ */ S(m, {
813
1051
  onChange: (t) => r(e.fieldKey, t?.id ?? void 0),
814
1052
  options: i,
815
1053
  placeholder: e.placeholder ?? "請選擇",
816
1054
  readOnly: n,
817
1055
  size: a,
818
- value: z(i, $(t))
1056
+ value: le(i, zt(t))
819
1057
  });
820
1058
  }
821
- return e.type === "member" ? /* @__PURE__ */ S(Re, {
1059
+ return e.type === "member" ? /* @__PURE__ */ S(Xe, {
822
1060
  multiple: e.multiple === !0,
823
1061
  name: e.fieldKey,
824
1062
  onChange: (t) => r(e.fieldKey, t),
@@ -826,64 +1064,66 @@ function dt(e, t, n, r, i, a = "main") {
826
1064
  readonly: n,
827
1065
  size: a,
828
1066
  value: t
829
- }) : e.type === "file_upload" ? /* @__PURE__ */ S(y, {
830
- accept: e.acceptedMimeTypes?.join(","),
831
- disabled: n,
832
- maxFiles: e.maxFiles,
833
- mode: "button-list",
834
- ...(e.maxFiles ?? 1) > 1 ? { multiple: !0 } : {},
835
- onChange: (t) => r(e.fieldKey, t.length ? t.map((e) => e.id) : void 0),
836
- onUpload: async (t) => Promise.all(t.map(async (t) => ({
837
- file: t,
838
- id: (i ? await i(e, t) : { id: `${t.name}-${t.lastModified}` }).id,
839
- progress: 100,
840
- status: "done"
841
- }))),
842
- size: "sub"
1067
+ }) : e.type === "org_unit" ? /* @__PURE__ */ S(lt, {
1068
+ name: e.fieldKey,
1069
+ onChange: (t) => r(e.fieldKey, t),
1070
+ placeholder: e.placeholder ?? Vt(e.type),
1071
+ readonly: n,
1072
+ size: a,
1073
+ value: t
1074
+ }) : e.type === "file_upload" ? /* @__PURE__ */ S(Oe, {
1075
+ attachments: i?.attachments,
1076
+ field: e,
1077
+ onChange: (t) => r(e.fieldKey, t),
1078
+ onDownloadAttachment: i?.onDownloadAttachment,
1079
+ onStateChange: (t) => i?.onStateChange?.(e.fieldKey, t),
1080
+ onUploadAttachment: i?.onUploadAttachment,
1081
+ readonly: n,
1082
+ value: t
843
1083
  }) : e.type === "date" ? /* @__PURE__ */ S(u, {
844
1084
  format: "YYYY-MM-DD",
845
1085
  fullWidth: !0,
846
- onChange: (t) => r(e.fieldKey, O(t)),
847
- placeholder: e.placeholder ?? gt(e.type),
1086
+ onChange: (t) => r(e.fieldKey, k(t)),
1087
+ placeholder: e.placeholder ?? Vt(e.type),
848
1088
  readOnly: n,
849
- value: re(t)
1089
+ value: F(t)
850
1090
  }) : e.type === "datetime" ? /* @__PURE__ */ S(d, {
851
1091
  formatDate: "YYYY-MM-DD",
852
1092
  formatTime: "HH:mm",
853
1093
  fullWidth: !0,
854
1094
  hideSecond: !0,
855
- onChange: (t) => r(e.fieldKey, k(t)),
1095
+ onChange: (t) => r(e.fieldKey, A(t)),
856
1096
  placeholderLeft: "選擇日期",
857
1097
  placeholderRight: "選擇時間",
858
1098
  readOnly: n,
859
- value: re(t)
1099
+ value: F(t)
860
1100
  }) : e.type === "number" || e.type === "money" ? /* @__PURE__ */ S(f, {
861
1101
  fullWidth: !0,
862
1102
  max: e.maximum,
863
1103
  min: e.minimum,
864
1104
  size: a,
865
- onChange: (t) => r(e.fieldKey, D(N(t.target.value), {
1105
+ onChange: (t) => r(e.fieldKey, D(P(t.target.value), {
866
1106
  max: e.maximum,
867
1107
  min: e.minimum
868
1108
  })),
869
- placeholder: e.placeholder ?? gt(e.type),
1109
+ placeholder: e.placeholder ?? Vt(e.type),
870
1110
  ...n ? { readonly: !0 } : {},
871
1111
  showSpinner: !0,
872
- value: ht(t),
1112
+ value: Bt(t),
873
1113
  variant: "measure"
874
1114
  }) : /* @__PURE__ */ S(f, {
875
1115
  fullWidth: !0,
876
1116
  onChange: (t) => r(e.fieldKey, t.target.value),
877
- placeholder: e.placeholder ?? gt(e.type),
1117
+ placeholder: e.placeholder ?? Vt(e.type),
878
1118
  ...n ? { readonly: !0 } : {},
879
1119
  size: a,
880
- value: $(t),
1120
+ value: zt(t),
881
1121
  variant: "base"
882
1122
  });
883
1123
  }
884
- function ft(e, t, n, r, i, a, o = "main") {
885
- let c = a.options.map(P), u = B(t, a.options).map(P), d = a.status === "LOADING", f = a.status === "WAITING_FOR_DEPENDENCIES", h = !!i && !n, g = n || f, _ = n;
886
- return e.type === "autocomplete" ? U(e) === "multiple" ? /* @__PURE__ */ S(s, {
1124
+ function Lt(e, t, n, r, i, a, o = "main") {
1125
+ let c = a.options.map(I), u = ue(t, a.options).map(I), d = a.status === "LOADING", f = a.status === "WAITING_FOR_DEPENDENCIES", h = !!i && !n, g = n || f, _ = n;
1126
+ return e.type === "autocomplete" ? H(e) === "multiple" ? /* @__PURE__ */ S(s, {
887
1127
  asyncData: h,
888
1128
  clearSearchText: !0,
889
1129
  disabled: _,
@@ -922,7 +1162,7 @@ function ft(e, t, n, r, i, a, o = "main") {
922
1162
  name: e.fieldKey,
923
1163
  onChange: (t) => r(e.fieldKey, t.target.value || void 0),
924
1164
  options: c,
925
- value: $(t)
1165
+ value: zt(t)
926
1166
  }) : e.type === "checkbox" ? /* @__PURE__ */ S(l, {
927
1167
  disabled: g,
928
1168
  name: e.fieldKey,
@@ -931,8 +1171,8 @@ function ft(e, t, n, r, i, a, o = "main") {
931
1171
  label: e.name,
932
1172
  value: e.id
933
1173
  })),
934
- value: [...mt(t)]
935
- }) : U(e) === "multiple" ? /* @__PURE__ */ S(m, {
1174
+ value: [...Z(t)]
1175
+ }) : H(e) === "multiple" ? /* @__PURE__ */ S(m, {
936
1176
  disabled: g,
937
1177
  loading: d,
938
1178
  mode: "multiple",
@@ -955,23 +1195,20 @@ function ft(e, t, n, r, i, a, o = "main") {
955
1195
  value: u[0] ?? null
956
1196
  });
957
1197
  }
958
- function pt(e, t) {
1198
+ function Rt(e, t) {
959
1199
  return {
960
1200
  FULL: 12,
961
1201
  HALF: 6,
962
1202
  THIRD: 4
963
1203
  }[t.layout.find((t) => t.fieldKey === e.fieldKey)?.width ?? "FULL"];
964
1204
  }
965
- function $(e) {
1205
+ function zt(e) {
966
1206
  return typeof e == "string" ? e : "";
967
1207
  }
968
- function mt(e) {
969
- return Array.isArray(e) && e.every((e) => typeof e == "string") ? e : [];
970
- }
971
- function ht(e) {
1208
+ function Bt(e) {
972
1209
  return typeof e == "number" ? String(e) : "";
973
1210
  }
974
- function gt(e) {
1211
+ function Vt(e) {
975
1212
  return {
976
1213
  boolean: "",
977
1214
  autocomplete: "請輸入或選擇",
@@ -982,6 +1219,7 @@ function gt(e) {
982
1219
  member: "搜尋姓名或信箱",
983
1220
  money: "請輸入金額",
984
1221
  number: "請輸入數字",
1222
+ org_unit: "搜尋組織名稱",
985
1223
  radio: "請選擇一個選項",
986
1224
  select: "請選擇一個選項",
987
1225
  table: "",
@@ -989,7 +1227,6 @@ function gt(e) {
989
1227
  textarea: "請輸入多行文字"
990
1228
  }[e];
991
1229
  }
992
- //#endregion
993
- export { q as a, J as i, ke as n, _e as o, Q as r, K as s, We as t };
1230
+ export { Te as a, J as c, Be as i, X as l, $e as n, Ee as o, Ve as r, Y as s, ht as t, q as u };
994
1231
 
995
- //# sourceMappingURL=FormRendererView-BsTwZkqU.js.map
1232
+ //# sourceMappingURL=FormRendererView-DHfVgbo6.js.map