@rytass/bpm-core-react 0.2.0 → 0.3.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 (418) hide show
  1. package/dist/chunks/app-navigation-BRRFCkxZ.cjs +2 -0
  2. package/dist/chunks/{app-navigation-DAC5gFbG.cjs.map → app-navigation-BRRFCkxZ.cjs.map} +1 -1
  3. package/dist/chunks/{app-navigation-CATITRM7.js → app-navigation-rxhpHCch.js} +2 -3
  4. package/dist/chunks/{app-navigation-CATITRM7.js.map → app-navigation-rxhpHCch.js.map} +1 -1
  5. package/dist/chunks/approval-instance-list-page-2vUWc5-c.cjs +2 -0
  6. package/dist/chunks/{approval-instance-list-page-DIAmwhvl.cjs.map → approval-instance-list-page-2vUWc5-c.cjs.map} +1 -1
  7. package/dist/chunks/{approval-instance-list-page-B6vAGvOb.js → approval-instance-list-page-BgE4vQw8.js} +3 -3
  8. package/dist/chunks/{approval-instance-list-page-B6vAGvOb.js.map → approval-instance-list-page-BgE4vQw8.js.map} +1 -1
  9. package/dist/chunks/auth-provider-BV8Iiwfb.cjs +2 -0
  10. package/dist/chunks/auth-provider-BV8Iiwfb.cjs.map +1 -0
  11. package/dist/chunks/auth-provider-Bnox5gsx.js +98 -0
  12. package/dist/chunks/auth-provider-Bnox5gsx.js.map +1 -0
  13. package/dist/chunks/builder-B8X-m6C5.cjs +3 -0
  14. package/dist/chunks/builder-B8X-m6C5.cjs.map +1 -0
  15. package/dist/chunks/{FormBuilderView-CvChAvgD.js → builder-Du_0apkh.js} +3 -3
  16. package/dist/chunks/builder-Du_0apkh.js.map +1 -0
  17. package/dist/chunks/{TemplateCategoriesView-CgZciaSd.js → categories-DG4k7S8V.js} +86 -85
  18. package/dist/chunks/categories-DG4k7S8V.js.map +1 -0
  19. package/dist/chunks/categories-DshBQG33.cjs +2 -0
  20. package/dist/chunks/categories-DshBQG33.cjs.map +1 -0
  21. package/dist/chunks/{dashboard-page-BsW8t104.js → dashboard-page-CTBwpu_D.js} +3 -4
  22. package/dist/chunks/{dashboard-page-BsW8t104.js.map → dashboard-page-CTBwpu_D.js.map} +1 -1
  23. package/dist/chunks/dashboard-page-DcDiWQp2.cjs +2 -0
  24. package/dist/chunks/{dashboard-page-udYhnyMW.cjs.map → dashboard-page-DcDiWQp2.cjs.map} +1 -1
  25. package/dist/chunks/{AdminDelegationsView-DydMZ9ED.js → delegations-BAZQbElH.js} +4 -4
  26. package/dist/chunks/delegations-BAZQbElH.js.map +1 -0
  27. package/dist/chunks/{DelegationsView-DQUqOUV5.js → delegations-DzrckrPp.js} +4 -4
  28. package/dist/chunks/delegations-DzrckrPp.js.map +1 -0
  29. package/dist/chunks/delegations-Z8hTajLj.cjs +2 -0
  30. package/dist/chunks/delegations-Z8hTajLj.cjs.map +1 -0
  31. package/dist/chunks/delegations-hb9JoVZe.cjs +2 -0
  32. package/dist/chunks/delegations-hb9JoVZe.cjs.map +1 -0
  33. package/dist/chunks/{InstanceDetailView-C-A-LOCG.js → detail-DilI0PPe.js} +10 -10
  34. package/dist/chunks/detail-DilI0PPe.js.map +1 -0
  35. package/dist/chunks/detail-DuRg3Y7b.cjs +2 -0
  36. package/dist/chunks/detail-DuRg3Y7b.cjs.map +1 -0
  37. package/dist/chunks/{format-date-time-BQyH5U8z.cjs → format-date-time-hKLVMxq4.cjs} +2 -2
  38. package/dist/chunks/{format-date-time-BQyH5U8z.cjs.map → format-date-time-hKLVMxq4.cjs.map} +1 -1
  39. package/dist/chunks/{LoginView-a1iu3cfc.js → login-C20yVxbc.js} +9 -9
  40. package/dist/chunks/login-C20yVxbc.js.map +1 -0
  41. package/dist/chunks/login-CQ9MfwcC.cjs +2 -0
  42. package/dist/chunks/login-CQ9MfwcC.cjs.map +1 -0
  43. package/dist/chunks/{SettingsNotificationsView-B6F6fa7U.js → notifications-B2Lk3grg.js} +4 -4
  44. package/dist/chunks/notifications-B2Lk3grg.js.map +1 -0
  45. package/dist/chunks/notifications-C8ADhnxF.cjs +2 -0
  46. package/dist/chunks/notifications-C8ADhnxF.cjs.map +1 -0
  47. package/dist/chunks/orgs-CGv3VNDR.cjs +2 -0
  48. package/dist/chunks/orgs-CGv3VNDR.cjs.map +1 -0
  49. package/dist/chunks/{AdminOrgsView-DZaVAbaQ.js → orgs-c29y74w2.js} +52 -52
  50. package/dist/chunks/orgs-c29y74w2.js.map +1 -0
  51. package/dist/chunks/templates-Cd0WFheA.cjs +2 -0
  52. package/dist/chunks/templates-Cd0WFheA.cjs.map +1 -0
  53. package/dist/chunks/{TemplatesView-BLj9f-XI.js → templates-Dn9QHFSy.js} +4 -4
  54. package/dist/chunks/templates-Dn9QHFSy.js.map +1 -0
  55. package/dist/chunks/users-B-trMu0E.cjs +2 -0
  56. package/dist/chunks/users-B-trMu0E.cjs.map +1 -0
  57. package/dist/chunks/{AdminUsersView-C0oO05Br.js → users-itVXXRj7.js} +3 -3
  58. package/dist/chunks/users-itVXXRj7.js.map +1 -0
  59. package/dist/index.cjs +1 -1
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.js +12 -13
  62. package/dist/index.js.map +1 -1
  63. package/dist/next/BPMNextProviders.d.ts +6 -0
  64. package/dist/next/index.cjs +2 -0
  65. package/dist/next/index.cjs.map +1 -0
  66. package/dist/next/index.d.ts +1 -0
  67. package/dist/next/index.js +33 -0
  68. package/dist/next/index.js.map +1 -0
  69. package/dist/pages/admin/delegations/index.cjs +1 -1
  70. package/dist/pages/admin/delegations/index.cjs.map +1 -1
  71. package/dist/pages/admin/delegations/index.js +1 -1
  72. package/dist/pages/admin/delegations/index.js.map +1 -1
  73. package/dist/pages/admin/orgs/index.cjs +1 -1
  74. package/dist/pages/admin/orgs/index.cjs.map +1 -1
  75. package/dist/pages/admin/orgs/index.js +1 -1
  76. package/dist/pages/admin/orgs/index.js.map +1 -1
  77. package/dist/pages/admin/users/index.cjs +1 -1
  78. package/dist/pages/admin/users/index.cjs.map +1 -1
  79. package/dist/pages/admin/users/index.js +1 -1
  80. package/dist/pages/admin/users/index.js.map +1 -1
  81. package/dist/pages/cc/index.cjs +1 -1
  82. package/dist/pages/cc/index.cjs.map +1 -1
  83. package/dist/pages/cc/index.js +1 -1
  84. package/dist/pages/cc/index.js.map +1 -1
  85. package/dist/pages/dashboard/index.cjs +1 -1
  86. package/dist/pages/dashboard/index.cjs.map +1 -1
  87. package/dist/pages/dashboard/index.js +1 -1
  88. package/dist/pages/dashboard/index.js.map +1 -1
  89. package/dist/pages/delegations/index.cjs +1 -1
  90. package/dist/pages/delegations/index.cjs.map +1 -1
  91. package/dist/pages/delegations/index.js +1 -1
  92. package/dist/pages/delegations/index.js.map +1 -1
  93. package/dist/pages/forms/builder/index.cjs +1 -1
  94. package/dist/pages/forms/builder/index.cjs.map +1 -1
  95. package/dist/pages/forms/builder/index.d.ts +5 -7
  96. package/dist/pages/forms/builder/index.js +1 -1
  97. package/dist/pages/forms/builder/index.js.map +1 -1
  98. package/dist/pages/forms/index.cjs +1 -1
  99. package/dist/pages/forms/index.cjs.map +1 -1
  100. package/dist/pages/forms/index.js +1 -1
  101. package/dist/pages/forms/index.js.map +1 -1
  102. package/dist/pages/inbox/index.cjs +1 -1
  103. package/dist/pages/inbox/index.cjs.map +1 -1
  104. package/dist/pages/inbox/index.js +1 -1
  105. package/dist/pages/inbox/index.js.map +1 -1
  106. package/dist/pages/instances/detail/index.cjs +1 -1
  107. package/dist/pages/instances/detail/index.cjs.map +1 -1
  108. package/dist/pages/instances/detail/index.d.ts +1 -1
  109. package/dist/pages/instances/detail/index.js +1 -1
  110. package/dist/pages/instances/detail/index.js.map +1 -1
  111. package/dist/pages/instances/new/index.cjs +1 -1
  112. package/dist/pages/instances/new/index.cjs.map +1 -1
  113. package/dist/pages/instances/new/index.d.ts +5 -1
  114. package/dist/pages/instances/new/index.js +4 -3
  115. package/dist/pages/instances/new/index.js.map +1 -1
  116. package/dist/pages/login/index.cjs +1 -1
  117. package/dist/pages/login/index.cjs.map +1 -1
  118. package/dist/pages/login/index.d.ts +5 -1
  119. package/dist/pages/login/index.js +4 -3
  120. package/dist/pages/login/index.js.map +1 -1
  121. package/dist/pages/root/index.cjs +1 -1
  122. package/dist/pages/root/index.cjs.map +1 -1
  123. package/dist/pages/root/index.d.ts +7 -5
  124. package/dist/pages/root/index.js +5 -6
  125. package/dist/pages/root/index.js.map +1 -1
  126. package/dist/pages/search/index.cjs +1 -1
  127. package/dist/pages/search/index.cjs.map +1 -1
  128. package/dist/pages/search/index.js +1 -1
  129. package/dist/pages/search/index.js.map +1 -1
  130. package/dist/pages/sent/index.cjs +1 -1
  131. package/dist/pages/sent/index.cjs.map +1 -1
  132. package/dist/pages/sent/index.js +1 -1
  133. package/dist/pages/sent/index.js.map +1 -1
  134. package/dist/pages/settings/notifications/index.cjs +1 -1
  135. package/dist/pages/settings/notifications/index.cjs.map +1 -1
  136. package/dist/pages/settings/notifications/index.js +1 -1
  137. package/dist/pages/settings/notifications/index.js.map +1 -1
  138. package/dist/pages/templates/categories/index.cjs +1 -1
  139. package/dist/pages/templates/categories/index.cjs.map +1 -1
  140. package/dist/pages/templates/categories/index.js +1 -1
  141. package/dist/pages/templates/categories/index.js.map +1 -1
  142. package/dist/pages/templates/designer/index.cjs +1 -1
  143. package/dist/pages/templates/designer/index.cjs.map +1 -1
  144. package/dist/pages/templates/designer/index.d.ts +2 -4
  145. package/dist/pages/templates/designer/index.js +1 -1
  146. package/dist/pages/templates/designer/index.js.map +1 -1
  147. package/dist/pages/templates/index.cjs +1 -1
  148. package/dist/pages/templates/index.cjs.map +1 -1
  149. package/dist/pages/templates/index.js +1 -1
  150. package/dist/pages/templates/index.js.map +1 -1
  151. package/dist/pages/templates/versions/index.cjs +1 -1
  152. package/dist/pages/templates/versions/index.cjs.map +1 -1
  153. package/dist/pages/templates/versions/index.d.ts +2 -4
  154. package/dist/pages/templates/versions/index.js +1 -1
  155. package/dist/pages/templates/versions/index.js.map +1 -1
  156. package/dist/views/admin/delegations/index.cjs +1 -1
  157. package/dist/views/admin/delegations/index.js +1 -1
  158. package/dist/views/admin/index.cjs +1 -0
  159. package/dist/views/admin/index.d.ts +3 -0
  160. package/dist/views/admin/index.js +4 -0
  161. package/dist/views/admin/orgs/index.cjs +1 -1
  162. package/dist/views/admin/orgs/index.js +1 -1
  163. package/dist/views/admin/users/index.cjs +1 -1
  164. package/dist/views/admin/users/index.js +1 -1
  165. package/dist/views/cc/index.cjs +2 -1
  166. package/dist/views/cc/index.cjs.map +1 -0
  167. package/dist/views/cc/index.js +19 -2
  168. package/dist/views/cc/index.js.map +1 -0
  169. package/dist/views/dashboard/index.cjs +2 -1
  170. package/dist/views/dashboard/index.cjs.map +1 -0
  171. package/dist/views/dashboard/index.js +11 -2
  172. package/dist/views/dashboard/index.js.map +1 -0
  173. package/dist/views/delegations/index.cjs +1 -1
  174. package/dist/views/delegations/index.js +1 -1
  175. package/dist/views/forms/builder/index.cjs +1 -1
  176. package/dist/views/forms/builder/index.js +1 -1
  177. package/dist/views/forms/index.cjs +2 -1
  178. package/dist/views/forms/index.cjs.map +1 -0
  179. package/dist/views/forms/index.d.ts +1 -0
  180. package/dist/views/forms/index.js +186 -2
  181. package/dist/views/forms/index.js.map +1 -0
  182. package/dist/views/inbox/index.cjs +2 -1
  183. package/dist/views/inbox/index.cjs.map +1 -0
  184. package/dist/views/inbox/index.js +290 -2
  185. package/dist/views/inbox/index.js.map +1 -0
  186. package/dist/views/instances/detail/index.cjs +1 -1
  187. package/dist/views/instances/detail/index.js +1 -1
  188. package/dist/views/instances/index.cjs +1 -0
  189. package/dist/views/instances/index.d.ts +1 -0
  190. package/dist/views/instances/index.js +2 -0
  191. package/dist/views/instances/new/InstanceNewView.d.ts +3 -3
  192. package/dist/views/instances/new/index.cjs +2 -1
  193. package/dist/views/instances/new/index.cjs.map +1 -0
  194. package/dist/views/instances/new/index.js +189 -2
  195. package/dist/views/instances/new/index.js.map +1 -0
  196. package/dist/views/login/index.cjs +1 -1
  197. package/dist/views/login/index.js +1 -1
  198. package/dist/views/search/index.cjs +2 -1
  199. package/dist/views/search/index.cjs.map +1 -0
  200. package/dist/views/search/index.js +19 -2
  201. package/dist/views/search/index.js.map +1 -0
  202. package/dist/views/sent/index.cjs +2 -1
  203. package/dist/views/sent/index.cjs.map +1 -0
  204. package/dist/views/sent/index.js +19 -2
  205. package/dist/views/sent/index.js.map +1 -0
  206. package/dist/views/settings/index.cjs +1 -0
  207. package/dist/views/settings/index.d.ts +1 -0
  208. package/dist/views/settings/index.js +2 -0
  209. package/dist/views/settings/notifications/index.cjs +1 -1
  210. package/dist/views/settings/notifications/index.js +1 -1
  211. package/dist/views/templates/categories/index.cjs +1 -1
  212. package/dist/views/templates/categories/index.js +1 -1
  213. package/dist/views/templates/designer/index.cjs +51 -1
  214. package/dist/views/templates/designer/index.cjs.map +1 -0
  215. package/dist/views/templates/designer/index.js +2272 -2
  216. package/dist/views/templates/designer/index.js.map +1 -0
  217. package/dist/views/templates/index.cjs +1 -1
  218. package/dist/views/templates/index.d.ts +2 -0
  219. package/dist/views/templates/index.js +4 -2
  220. package/dist/views/templates/versions/index.cjs +2 -1
  221. package/dist/views/templates/versions/index.cjs.map +1 -0
  222. package/dist/views/templates/versions/index.js +110 -2
  223. package/dist/views/templates/versions/index.js.map +1 -0
  224. package/dist/views/workflow/index.cjs +1 -0
  225. package/dist/views/workflow/index.d.ts +4 -0
  226. package/dist/views/workflow/index.js +5 -0
  227. package/package.json +28 -3
  228. package/dist/chunks/AdminDelegationsView-CqNmlVWx.cjs +0 -2
  229. package/dist/chunks/AdminDelegationsView-CqNmlVWx.cjs.map +0 -1
  230. package/dist/chunks/AdminDelegationsView-DydMZ9ED.js.map +0 -1
  231. package/dist/chunks/AdminOrgsView-DZaVAbaQ.js.map +0 -1
  232. package/dist/chunks/AdminOrgsView-bSsIyMvk.cjs +0 -2
  233. package/dist/chunks/AdminOrgsView-bSsIyMvk.cjs.map +0 -1
  234. package/dist/chunks/AdminUsersView-C0oO05Br.js.map +0 -1
  235. package/dist/chunks/AdminUsersView-DlArLlIr.cjs +0 -2
  236. package/dist/chunks/AdminUsersView-DlArLlIr.cjs.map +0 -1
  237. package/dist/chunks/CcView-BsVsya5F.cjs +0 -2
  238. package/dist/chunks/CcView-BsVsya5F.cjs.map +0 -1
  239. package/dist/chunks/CcView-Bv0GzA5C.js +0 -19
  240. package/dist/chunks/CcView-Bv0GzA5C.js.map +0 -1
  241. package/dist/chunks/DashboardView-Dk1ZQmmk.js +0 -11
  242. package/dist/chunks/DashboardView-Dk1ZQmmk.js.map +0 -1
  243. package/dist/chunks/DashboardView-_0zh-rxT.cjs +0 -2
  244. package/dist/chunks/DashboardView-_0zh-rxT.cjs.map +0 -1
  245. package/dist/chunks/DelegationsView-DQUqOUV5.js.map +0 -1
  246. package/dist/chunks/DelegationsView-pKeFV2LN.cjs +0 -2
  247. package/dist/chunks/DelegationsView-pKeFV2LN.cjs.map +0 -1
  248. package/dist/chunks/FormBuilderView-BKtyW55e.cjs +0 -3
  249. package/dist/chunks/FormBuilderView-BKtyW55e.cjs.map +0 -1
  250. package/dist/chunks/FormBuilderView-CvChAvgD.js.map +0 -1
  251. package/dist/chunks/FormsView-DYEuik8W.js +0 -185
  252. package/dist/chunks/FormsView-DYEuik8W.js.map +0 -1
  253. package/dist/chunks/FormsView-RjJEkIfZ.cjs +0 -2
  254. package/dist/chunks/FormsView-RjJEkIfZ.cjs.map +0 -1
  255. package/dist/chunks/InboxView-DDWwmWhA.cjs +0 -2
  256. package/dist/chunks/InboxView-DDWwmWhA.cjs.map +0 -1
  257. package/dist/chunks/InboxView-YSoyrYLk.js +0 -291
  258. package/dist/chunks/InboxView-YSoyrYLk.js.map +0 -1
  259. package/dist/chunks/InstanceDetailView-C-A-LOCG.js.map +0 -1
  260. package/dist/chunks/InstanceDetailView-l_kNDCz2.cjs +0 -2
  261. package/dist/chunks/InstanceDetailView-l_kNDCz2.cjs.map +0 -1
  262. package/dist/chunks/InstanceNewView-B5hz-FWd.js +0 -190
  263. package/dist/chunks/InstanceNewView-B5hz-FWd.js.map +0 -1
  264. package/dist/chunks/InstanceNewView-CdCsxQIu.cjs +0 -2
  265. package/dist/chunks/InstanceNewView-CdCsxQIu.cjs.map +0 -1
  266. package/dist/chunks/LoginView-BED07v-7.cjs +0 -2
  267. package/dist/chunks/LoginView-BED07v-7.cjs.map +0 -1
  268. package/dist/chunks/LoginView-a1iu3cfc.js.map +0 -1
  269. package/dist/chunks/RootClientView-rXJt4TDd.cjs +0 -2
  270. package/dist/chunks/RootClientView-rXJt4TDd.cjs.map +0 -1
  271. package/dist/chunks/RootClientView-wAkXUEZw.js +0 -34
  272. package/dist/chunks/RootClientView-wAkXUEZw.js.map +0 -1
  273. package/dist/chunks/SearchView-CgXPssgE.cjs +0 -2
  274. package/dist/chunks/SearchView-CgXPssgE.cjs.map +0 -1
  275. package/dist/chunks/SearchView-WXMbZwRw.js +0 -19
  276. package/dist/chunks/SearchView-WXMbZwRw.js.map +0 -1
  277. package/dist/chunks/SentView-BTDoFBrG.cjs +0 -2
  278. package/dist/chunks/SentView-BTDoFBrG.cjs.map +0 -1
  279. package/dist/chunks/SentView-CdOL92Rq.js +0 -19
  280. package/dist/chunks/SentView-CdOL92Rq.js.map +0 -1
  281. package/dist/chunks/SettingsNotificationsView-B6F6fa7U.js.map +0 -1
  282. package/dist/chunks/SettingsNotificationsView-Bnz0CmoJ.cjs +0 -2
  283. package/dist/chunks/SettingsNotificationsView-Bnz0CmoJ.cjs.map +0 -1
  284. package/dist/chunks/TemplateCategoriesView-CgZciaSd.js.map +0 -1
  285. package/dist/chunks/TemplateCategoriesView-U0stGUBc.cjs +0 -2
  286. package/dist/chunks/TemplateCategoriesView-U0stGUBc.cjs.map +0 -1
  287. package/dist/chunks/TemplateDesignerView-A38DyYD4.cjs +0 -51
  288. package/dist/chunks/TemplateDesignerView-A38DyYD4.cjs.map +0 -1
  289. package/dist/chunks/TemplateDesignerView-Dffx-VZ-.js +0 -2272
  290. package/dist/chunks/TemplateDesignerView-Dffx-VZ-.js.map +0 -1
  291. package/dist/chunks/TemplateVersionsView-6sVQbBem.js +0 -110
  292. package/dist/chunks/TemplateVersionsView-6sVQbBem.js.map +0 -1
  293. package/dist/chunks/TemplateVersionsView-CMqw3ieU.cjs +0 -2
  294. package/dist/chunks/TemplateVersionsView-CMqw3ieU.cjs.map +0 -1
  295. package/dist/chunks/TemplatesView-BLj9f-XI.js.map +0 -1
  296. package/dist/chunks/TemplatesView-DIOQTUUl.cjs +0 -2
  297. package/dist/chunks/TemplatesView-DIOQTUUl.cjs.map +0 -1
  298. package/dist/chunks/app-navigation-DAC5gFbG.cjs +0 -2
  299. package/dist/chunks/approval-instance-list-page-DIAmwhvl.cjs +0 -2
  300. package/dist/chunks/auth-provider-D2P-qWmY.cjs +0 -2
  301. package/dist/chunks/auth-provider-D2P-qWmY.cjs.map +0 -1
  302. package/dist/chunks/auth-provider-TTO9eNZV.js +0 -83
  303. package/dist/chunks/auth-provider-TTO9eNZV.js.map +0 -1
  304. package/dist/chunks/dashboard-page-udYhnyMW.cjs +0 -2
  305. package/dist/chunks/router-adapter-BdHZXLS3.js +0 -23
  306. package/dist/chunks/router-adapter-BdHZXLS3.js.map +0 -1
  307. package/dist/chunks/router-adapter-BybHrCNP.cjs +0 -2
  308. package/dist/chunks/router-adapter-BybHrCNP.cjs.map +0 -1
  309. package/dist/chunks/templates.module-B5bg_goX.js +0 -8
  310. package/dist/chunks/templates.module-B5bg_goX.js.map +0 -1
  311. package/dist/chunks/templates.module-ClRnQQX4.cjs +0 -2
  312. package/dist/chunks/templates.module-ClRnQQX4.cjs.map +0 -1
  313. package/dist/pages/admin/delegations/AdminDelegationsClientView.cjs +0 -2
  314. package/dist/pages/admin/delegations/AdminDelegationsClientView.cjs.map +0 -1
  315. package/dist/pages/admin/delegations/AdminDelegationsClientView.d.ts +0 -3
  316. package/dist/pages/admin/delegations/AdminDelegationsClientView.js +0 -28
  317. package/dist/pages/admin/delegations/AdminDelegationsClientView.js.map +0 -1
  318. package/dist/pages/admin/orgs/AdminOrgsClientView.cjs +0 -2
  319. package/dist/pages/admin/orgs/AdminOrgsClientView.cjs.map +0 -1
  320. package/dist/pages/admin/orgs/AdminOrgsClientView.d.ts +0 -3
  321. package/dist/pages/admin/orgs/AdminOrgsClientView.js +0 -28
  322. package/dist/pages/admin/orgs/AdminOrgsClientView.js.map +0 -1
  323. package/dist/pages/admin/users/AdminUsersClientView.cjs +0 -2
  324. package/dist/pages/admin/users/AdminUsersClientView.cjs.map +0 -1
  325. package/dist/pages/admin/users/AdminUsersClientView.d.ts +0 -3
  326. package/dist/pages/admin/users/AdminUsersClientView.js +0 -28
  327. package/dist/pages/admin/users/AdminUsersClientView.js.map +0 -1
  328. package/dist/pages/cc/CcClientView.cjs +0 -2
  329. package/dist/pages/cc/CcClientView.cjs.map +0 -1
  330. package/dist/pages/cc/CcClientView.d.ts +0 -7
  331. package/dist/pages/cc/CcClientView.js +0 -28
  332. package/dist/pages/cc/CcClientView.js.map +0 -1
  333. package/dist/pages/dashboard/DashboardClientView.cjs +0 -2
  334. package/dist/pages/dashboard/DashboardClientView.cjs.map +0 -1
  335. package/dist/pages/dashboard/DashboardClientView.d.ts +0 -9
  336. package/dist/pages/dashboard/DashboardClientView.js +0 -28
  337. package/dist/pages/dashboard/DashboardClientView.js.map +0 -1
  338. package/dist/pages/delegations/DelegationsClientView.cjs +0 -2
  339. package/dist/pages/delegations/DelegationsClientView.cjs.map +0 -1
  340. package/dist/pages/delegations/DelegationsClientView.d.ts +0 -3
  341. package/dist/pages/delegations/DelegationsClientView.js +0 -28
  342. package/dist/pages/delegations/DelegationsClientView.js.map +0 -1
  343. package/dist/pages/forms/FormsClientView.cjs +0 -2
  344. package/dist/pages/forms/FormsClientView.cjs.map +0 -1
  345. package/dist/pages/forms/FormsClientView.d.ts +0 -10
  346. package/dist/pages/forms/FormsClientView.js +0 -28
  347. package/dist/pages/forms/FormsClientView.js.map +0 -1
  348. package/dist/pages/forms/builder/FormBuilderClientView.cjs +0 -2
  349. package/dist/pages/forms/builder/FormBuilderClientView.cjs.map +0 -1
  350. package/dist/pages/forms/builder/FormBuilderClientView.d.ts +0 -11
  351. package/dist/pages/forms/builder/FormBuilderClientView.js +0 -28
  352. package/dist/pages/forms/builder/FormBuilderClientView.js.map +0 -1
  353. package/dist/pages/inbox/InboxClientView.cjs +0 -2
  354. package/dist/pages/inbox/InboxClientView.cjs.map +0 -1
  355. package/dist/pages/inbox/InboxClientView.d.ts +0 -9
  356. package/dist/pages/inbox/InboxClientView.js +0 -28
  357. package/dist/pages/inbox/InboxClientView.js.map +0 -1
  358. package/dist/pages/instances/detail/InstanceDetailClientView.cjs +0 -2
  359. package/dist/pages/instances/detail/InstanceDetailClientView.cjs.map +0 -1
  360. package/dist/pages/instances/detail/InstanceDetailClientView.d.ts +0 -9
  361. package/dist/pages/instances/detail/InstanceDetailClientView.js +0 -28
  362. package/dist/pages/instances/detail/InstanceDetailClientView.js.map +0 -1
  363. package/dist/pages/instances/new/InstanceNewClientView.cjs +0 -2
  364. package/dist/pages/instances/new/InstanceNewClientView.cjs.map +0 -1
  365. package/dist/pages/instances/new/InstanceNewClientView.d.ts +0 -8
  366. package/dist/pages/instances/new/InstanceNewClientView.js +0 -28
  367. package/dist/pages/instances/new/InstanceNewClientView.js.map +0 -1
  368. package/dist/pages/login/LoginClientView.cjs +0 -2
  369. package/dist/pages/login/LoginClientView.cjs.map +0 -1
  370. package/dist/pages/login/LoginClientView.d.ts +0 -11
  371. package/dist/pages/login/LoginClientView.js +0 -29
  372. package/dist/pages/login/LoginClientView.js.map +0 -1
  373. package/dist/pages/root/RootClientView.cjs +0 -1
  374. package/dist/pages/root/RootClientView.d.ts +0 -8
  375. package/dist/pages/root/RootClientView.js +0 -2
  376. package/dist/pages/search/SearchClientView.cjs +0 -2
  377. package/dist/pages/search/SearchClientView.cjs.map +0 -1
  378. package/dist/pages/search/SearchClientView.d.ts +0 -7
  379. package/dist/pages/search/SearchClientView.js +0 -28
  380. package/dist/pages/search/SearchClientView.js.map +0 -1
  381. package/dist/pages/sent/SentClientView.cjs +0 -2
  382. package/dist/pages/sent/SentClientView.cjs.map +0 -1
  383. package/dist/pages/sent/SentClientView.d.ts +0 -7
  384. package/dist/pages/sent/SentClientView.js +0 -28
  385. package/dist/pages/sent/SentClientView.js.map +0 -1
  386. package/dist/pages/settings/notifications/SettingsNotificationsClientView.cjs +0 -2
  387. package/dist/pages/settings/notifications/SettingsNotificationsClientView.cjs.map +0 -1
  388. package/dist/pages/settings/notifications/SettingsNotificationsClientView.d.ts +0 -3
  389. package/dist/pages/settings/notifications/SettingsNotificationsClientView.js +0 -28
  390. package/dist/pages/settings/notifications/SettingsNotificationsClientView.js.map +0 -1
  391. package/dist/pages/templates/TemplatesClientView.cjs +0 -2
  392. package/dist/pages/templates/TemplatesClientView.cjs.map +0 -1
  393. package/dist/pages/templates/TemplatesClientView.d.ts +0 -3
  394. package/dist/pages/templates/TemplatesClientView.js +0 -28
  395. package/dist/pages/templates/TemplatesClientView.js.map +0 -1
  396. package/dist/pages/templates/categories/TemplateCategoriesClientView.cjs +0 -2
  397. package/dist/pages/templates/categories/TemplateCategoriesClientView.cjs.map +0 -1
  398. package/dist/pages/templates/categories/TemplateCategoriesClientView.d.ts +0 -3
  399. package/dist/pages/templates/categories/TemplateCategoriesClientView.js +0 -28
  400. package/dist/pages/templates/categories/TemplateCategoriesClientView.js.map +0 -1
  401. package/dist/pages/templates/designer/TemplateDesignerClientView.cjs +0 -2
  402. package/dist/pages/templates/designer/TemplateDesignerClientView.cjs.map +0 -1
  403. package/dist/pages/templates/designer/TemplateDesignerClientView.d.ts +0 -3
  404. package/dist/pages/templates/designer/TemplateDesignerClientView.js +0 -28
  405. package/dist/pages/templates/designer/TemplateDesignerClientView.js.map +0 -1
  406. package/dist/pages/templates/versions/TemplateVersionsClientView.cjs +0 -2
  407. package/dist/pages/templates/versions/TemplateVersionsClientView.cjs.map +0 -1
  408. package/dist/pages/templates/versions/TemplateVersionsClientView.d.ts +0 -3
  409. package/dist/pages/templates/versions/TemplateVersionsClientView.js +0 -28
  410. package/dist/pages/templates/versions/TemplateVersionsClientView.js.map +0 -1
  411. /package/dist/{templates.css → categories.css} +0 -0
  412. /package/dist/{AdminDelegationsView.css → delegations.css} +0 -0
  413. /package/dist/{DelegationsView.css → delegations2.css} +0 -0
  414. /package/dist/{InstanceDetailView.css → detail.css} +0 -0
  415. /package/dist/{LoginView.css → login.css} +0 -0
  416. /package/dist/{SettingsNotificationsView.css → notifications.css} +0 -0
  417. /package/dist/{AdminOrgsView.css → orgs.css} +0 -0
  418. /package/dist/{AdminUsersView.css → users.css} +0 -0
@@ -1,2 +1,290 @@
1
- import { t as e } from "../../chunks/InboxView-YSoyrYLk.js";
2
- export { e as InboxView };
1
+ "use client";
2
+ import { a as e, n as t } from "../../chunks/auth-provider-Bnox5gsx.js";
3
+ import { t as n } from "../../chunks/format-date-time-CB-LxzqT.js";
4
+ import { t as r } from "../../chunks/app-navigation-rxhpHCch.js";
5
+ import { useEffect as i, useMemo as a, useState as o } from "react";
6
+ import { Button as s, Layout as c, PageHeader as l, Section as u, SectionGroup as d, Tab as f, TabItem as p, Table as m, Typography as h } from "@mezzanine-ui/react";
7
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
8
+ import { listApprovalHistoryTasks as v, listInboxTasks as y, listTaskDecisions as b, readApprovalInstance as x, readApprovalInstanceCaseTitle as S } from "@rytass/bpm-core-client/workflow";
9
+ import { PlusIcon as C } from "@mezzanine-ui/icons";
10
+ import w from "@mezzanine-ui/react/ContentHeader";
11
+ //#region src/views/inbox/InboxView.tsx
12
+ function T(b = {}) {
13
+ let x = e(), { member: S } = t(), T = S?.memberId ?? null, [O, k] = o("pending"), [A, j] = o(null), [M, P] = o([]), [I, R] = o(!0), [z, B] = o([]);
14
+ i(() => {
15
+ T && J();
16
+ }, [T]);
17
+ let V = a(() => [
18
+ {
19
+ dataIndex: "caseTitle",
20
+ key: "caseTitle",
21
+ title: "案件",
22
+ width: 280
23
+ },
24
+ {
25
+ dataIndex: "nodeId",
26
+ key: "nodeId",
27
+ title: "節點",
28
+ width: 180
29
+ },
30
+ {
31
+ dataIndex: "statusLabel",
32
+ key: "statusLabel",
33
+ title: "狀態",
34
+ width: 120
35
+ },
36
+ {
37
+ key: "slaDueAt",
38
+ render: (e) => /* @__PURE__ */ g(h, {
39
+ color: e.slaStatusColor,
40
+ component: "span",
41
+ variant: "body",
42
+ children: e.slaStatusText
43
+ }),
44
+ title: "SLA",
45
+ width: 180
46
+ },
47
+ {
48
+ key: "createdAt",
49
+ render: (e) => /* @__PURE__ */ g(h, {
50
+ component: "span",
51
+ variant: "body",
52
+ children: n(e.createdAt)
53
+ }),
54
+ title: "建立時間",
55
+ width: 220
56
+ }
57
+ ], []), U = a(() => ({
58
+ render: (e) => [{
59
+ name: "處理",
60
+ onClick: () => x.push(`/instances/${e.instanceId}`)
61
+ }],
62
+ variant: "base-secondary",
63
+ width: 88
64
+ }), [x]), W = a(() => [
65
+ {
66
+ dataIndex: "caseTitle",
67
+ key: "caseTitle",
68
+ title: "案件",
69
+ width: 280
70
+ },
71
+ {
72
+ dataIndex: "nodeId",
73
+ key: "nodeId",
74
+ title: "節點",
75
+ width: 180
76
+ },
77
+ {
78
+ key: "decisionLabel",
79
+ render: (e) => /* @__PURE__ */ g(h, {
80
+ color: N(e.decisionAction),
81
+ component: "span",
82
+ variant: "body",
83
+ children: e.decisionLabel
84
+ }),
85
+ title: "決議",
86
+ width: 120
87
+ },
88
+ {
89
+ key: "decisionComment",
90
+ render: (e) => /* @__PURE__ */ g(h, {
91
+ component: "span",
92
+ variant: "body",
93
+ children: e.decisionCommentText
94
+ }),
95
+ title: "意見",
96
+ width: 240
97
+ },
98
+ {
99
+ key: "instanceStateLabel",
100
+ render: (e) => /* @__PURE__ */ g(h, {
101
+ color: F(e.instanceState),
102
+ component: "span",
103
+ variant: "body",
104
+ children: e.instanceStateLabel
105
+ }),
106
+ title: "流程狀態",
107
+ width: 140
108
+ },
109
+ {
110
+ key: "decidedAt",
111
+ render: (e) => /* @__PURE__ */ g(h, {
112
+ component: "span",
113
+ variant: "body",
114
+ children: L(e.decidedAt)
115
+ }),
116
+ title: "簽核時間",
117
+ width: 220
118
+ }
119
+ ], []), G = a(() => ({
120
+ render: (e) => [{
121
+ name: "查看",
122
+ onClick: () => x.push(`/instances/${e.instanceId}`)
123
+ }],
124
+ variant: "base-secondary",
125
+ width: 88
126
+ }), [x]), K = a(() => M.filter((e) => e.instanceState === "RUNNING"), [M]);
127
+ function q(e) {
128
+ if (e === "history" || e === "pending" || e === "tracking") {
129
+ k(e);
130
+ return;
131
+ }
132
+ k("pending");
133
+ }
134
+ async function J() {
135
+ R(!0), j(null);
136
+ try {
137
+ if (!T) {
138
+ B([]), P([]);
139
+ return;
140
+ }
141
+ let [e, t] = await Promise.all([y(T), v(T)]), [n, r] = await Promise.all([E(e), D(t)]);
142
+ B(n), P(r);
143
+ } catch (e) {
144
+ j(H(e));
145
+ } finally {
146
+ R(!1);
147
+ }
148
+ }
149
+ return /* @__PURE__ */ _(c, { children: [/* @__PURE__ */ g(r, { activeHref: "/inbox" }), /* @__PURE__ */ _(c.Main, { children: [/* @__PURE__ */ g(l, { children: /* @__PURE__ */ g(w, {
150
+ description: `目前以 ${S?.name ?? T ?? "目前登入會員"} 查詢待處理與歷史簽核任務。`,
151
+ title: "我的待簽",
152
+ children: /* @__PURE__ */ g(s, {
153
+ icon: C,
154
+ iconType: "leading",
155
+ onClick: () => x.push("/instances/new"),
156
+ variant: "base-primary",
157
+ children: "發起簽核"
158
+ })
159
+ }) }), /* @__PURE__ */ g(d, { children: /* @__PURE__ */ _(u, { children: [
160
+ A ? /* @__PURE__ */ g(h, {
161
+ color: "text-error",
162
+ variant: "body",
163
+ children: A
164
+ }) : null,
165
+ /* @__PURE__ */ _(f, {
166
+ activeKey: O,
167
+ onChange: q,
168
+ size: "sub",
169
+ children: [
170
+ /* @__PURE__ */ g(p, {
171
+ badgeCount: I ? void 0 : z.length,
172
+ children: "待簽核"
173
+ }, "pending"),
174
+ /* @__PURE__ */ g(p, {
175
+ badgeCount: I ? void 0 : K.length,
176
+ children: "已處理未結束"
177
+ }, "tracking"),
178
+ /* @__PURE__ */ g(p, { children: "歷史簽核記錄" }, "history")
179
+ ]
180
+ }),
181
+ O === "pending" ? /* @__PURE__ */ g(m, {
182
+ actions: U,
183
+ columns: V,
184
+ dataSource: z,
185
+ fullWidth: !0,
186
+ loading: I
187
+ }) : null,
188
+ O === "tracking" ? /* @__PURE__ */ g(m, {
189
+ actions: G,
190
+ columns: W,
191
+ dataSource: K,
192
+ fullWidth: !0,
193
+ loading: I
194
+ }) : null,
195
+ O === "history" ? /* @__PURE__ */ g(m, {
196
+ actions: G,
197
+ columns: W,
198
+ dataSource: M,
199
+ fullWidth: !0,
200
+ loading: I
201
+ }) : null
202
+ ] }) })] })] });
203
+ }
204
+ async function E(e) {
205
+ let t = await O(e);
206
+ return e.map((e, n) => ({
207
+ ...e,
208
+ caseTitle: k(e, t[n] ?? null),
209
+ key: e.id,
210
+ slaStatusColor: z(e.slaDueAt),
211
+ slaStatusText: R(e.slaDueAt),
212
+ statusLabel: V(e.status)
213
+ }));
214
+ }
215
+ async function D(e) {
216
+ let [t, n] = await Promise.all([Promise.all(e.map((e) => b(e.id))), O(e)]);
217
+ return e.map((e, r) => {
218
+ let i = A(t[r] ?? []), a = n[r] ?? null;
219
+ return {
220
+ ...e,
221
+ caseTitle: k(e, a),
222
+ decisionAction: i?.action ?? null,
223
+ decisionComment: i?.comment ?? null,
224
+ decisionCommentText: I(i?.comment ?? null),
225
+ decisionLabel: M(i?.action ?? null),
226
+ decidedAt: i?.decidedAt ?? e.completedAt,
227
+ instanceState: a?.state ?? null,
228
+ instanceStateLabel: P(a?.state ?? null),
229
+ key: e.id
230
+ };
231
+ });
232
+ }
233
+ async function O(e) {
234
+ return Promise.all(e.map(async (e) => {
235
+ try {
236
+ return (await x(e.instanceId)).instance;
237
+ } catch {
238
+ return null;
239
+ }
240
+ }));
241
+ }
242
+ function k(e, t) {
243
+ return t ? S(t) : e.instanceId;
244
+ }
245
+ function A(e) {
246
+ return [...e].sort(j)[0] ?? null;
247
+ }
248
+ function j(e, t) {
249
+ return new Date(t.decidedAt).getTime() - new Date(e.decidedAt).getTime();
250
+ }
251
+ function M(e) {
252
+ return e === "APPROVED" ? "同意" : e === "REJECTED" ? "拒絕" : e === "RETURNED" ? "退回" : e === "TRANSFERRED" ? "轉派" : "未記錄";
253
+ }
254
+ function N(e) {
255
+ return e === "APPROVED" ? "text-success" : e === "REJECTED" || e === "RETURNED" ? "text-error" : "text-neutral";
256
+ }
257
+ function P(e) {
258
+ return e === "RUNNING" ? "進行中" : e === "APPROVED" ? "已通過" : e === "REJECTED" ? "已拒絕" : e === "RETURNED" ? "已退回" : e === "CANCELLED" ? "已取消" : e === "EXPIRED" ? "已逾期" : e === "DRAFT" ? "草稿" : "-";
259
+ }
260
+ function F(e) {
261
+ return e === "APPROVED" ? "text-success" : e === "REJECTED" || e === "CANCELLED" || e === "EXPIRED" ? "text-error" : "text-neutral";
262
+ }
263
+ function I(e) {
264
+ return (e?.trim() ?? "") || "-";
265
+ }
266
+ function L(e) {
267
+ return n(e);
268
+ }
269
+ function R(e) {
270
+ if (!e) return "-";
271
+ let t = new Date(e).getTime(), n = Date.now(), r = B(Math.abs(t - n));
272
+ return t < n ? `已逾期 ${r}` : `剩餘 ${r}`;
273
+ }
274
+ function z(e) {
275
+ return e ? new Date(e).getTime() < Date.now() ? "text-error" : "text-success" : "text-neutral";
276
+ }
277
+ function B(e) {
278
+ let t = Math.max(1, Math.ceil(e / 6e4)), n = Math.floor(t / 1440), r = Math.floor(t % 1440 / 60), i = t % 60;
279
+ return n > 0 ? `${n}天 ${r}小時` : r > 0 ? `${r}小時 ${i}分鐘` : `${i}分鐘`;
280
+ }
281
+ function V(e) {
282
+ return e === "PENDING" ? "待處理" : e === "IN_PROGRESS" ? "處理中" : e === "COMPLETED" ? "已完成" : e === "TRANSFERRED" ? "已轉派" : e === "CANCELLED" ? "已取消" : e;
283
+ }
284
+ function H(e) {
285
+ return e instanceof Error ? e.message : "發生未知錯誤";
286
+ }
287
+ //#endregion
288
+ export { T as InboxView };
289
+
290
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/views/inbox/InboxView.tsx"],"sourcesContent":["'use client';\n\nimport { type Key, ReactElement, useEffect, useMemo, useState } from 'react';\nimport {\n Button,\n Layout,\n PageHeader,\n Section,\n SectionGroup,\n Tab,\n TabItem,\n Table,\n Typography,\n} from '@mezzanine-ui/react';\nimport ContentHeader from '@mezzanine-ui/react/ContentHeader';\nimport { PlusIcon } from '@mezzanine-ui/icons';\nimport type { TableActions, TableColumn } from '@mezzanine-ui/core/table';\nimport {\n ApprovalInstanceRecord,\n listApprovalHistoryTasks,\n listInboxTasks,\n listTaskDecisions,\n readApprovalInstance,\n readApprovalInstanceCaseTitle,\n TaskDecisionRecord,\n TaskRecord,\n} from '@rytass/bpm-core-client/workflow';\nimport { formatDateTime } from '../../lib/format-date-time';\nimport { useAuth } from '../../lib/auth-provider';\nimport { useRouterAdapter } from '../../lib/router-adapter';\nimport { AppNavigation } from '../../components/app-navigation';\n\ntype InboxTabKey = 'history' | 'pending' | 'tracking';\n\ntype InboxTaskRow = Readonly<\n Record<string, unknown> &\n TaskRecord & {\n caseTitle: string;\n key: string;\n slaStatusColor: 'text-error' | 'text-neutral' | 'text-success';\n slaStatusText: string;\n statusLabel: string;\n }\n>;\n\ntype ApprovalHistoryRow = Readonly<\n Record<string, unknown> &\n TaskRecord & {\n caseTitle: string;\n decisionAction: TaskDecisionRecord['action'] | null;\n decisionComment: string | null;\n decisionCommentText: string;\n decisionLabel: string;\n decidedAt: string | null;\n instanceState: ApprovalInstanceRecord['state'] | null;\n instanceStateLabel: string;\n key: string;\n }\n>;\n\nexport interface InboxViewProps {}\n\n/**\n * Framework-agnostic view for the BPM \"我的待簽\" inbox. Mechanical port of\n * `apps/client/src/app/inbox/page.tsx` — renders pending tasks, tracking,\n * and history tabs.\n */\nexport function InboxView(_props: InboxViewProps = {}): ReactElement {\n const router = useRouterAdapter();\n const { member } = useAuth();\n const currentMemberId = member?.memberId ?? null;\n const [activeTab, setActiveTab] = useState<InboxTabKey>('pending');\n const [error, setError] = useState<string | null>(null);\n const [historyRows, setHistoryRows] = useState<ApprovalHistoryRow[]>([]);\n const [loading, setLoading] = useState(true);\n const [pendingRows, setPendingRows] = useState<InboxTaskRow[]>([]);\n\n useEffect((): void => {\n if (!currentMemberId) {\n return;\n }\n\n void refreshTasks();\n }, [currentMemberId]);\n\n const pendingColumns = useMemo(\n (): TableColumn<InboxTaskRow>[] => [\n { dataIndex: 'caseTitle', key: 'caseTitle', title: '案件', width: 280 },\n { dataIndex: 'nodeId', key: 'nodeId', title: '節點', width: 180 },\n {\n dataIndex: 'statusLabel',\n key: 'statusLabel',\n title: '狀態',\n width: 120,\n },\n {\n key: 'slaDueAt',\n render: (record: InboxTaskRow): ReactElement => (\n <Typography\n color={record.slaStatusColor}\n component=\"span\"\n variant=\"body\"\n >\n {record.slaStatusText}\n </Typography>\n ),\n title: 'SLA',\n width: 180,\n },\n {\n key: 'createdAt',\n render: (record: InboxTaskRow): ReactElement => (\n <Typography component=\"span\" variant=\"body\">\n {formatDateTime(record.createdAt)}\n </Typography>\n ),\n title: '建立時間',\n width: 220,\n },\n ],\n [],\n );\n const pendingTableActions = useMemo(\n (): TableActions<InboxTaskRow> => ({\n render: (record): ReturnType<TableActions<InboxTaskRow>['render']> => [\n {\n name: '處理',\n onClick: (): void => router.push(`/instances/${record.instanceId}`),\n },\n ],\n variant: 'base-secondary',\n width: 88,\n }),\n [router],\n );\n const historyColumns = useMemo(\n (): TableColumn<ApprovalHistoryRow>[] => [\n { dataIndex: 'caseTitle', key: 'caseTitle', title: '案件', width: 280 },\n { dataIndex: 'nodeId', key: 'nodeId', title: '節點', width: 180 },\n {\n key: 'decisionLabel',\n render: (record: ApprovalHistoryRow): ReactElement => (\n <Typography\n color={readTaskDecisionColor(record.decisionAction)}\n component=\"span\"\n variant=\"body\"\n >\n {record.decisionLabel}\n </Typography>\n ),\n title: '決議',\n width: 120,\n },\n {\n key: 'decisionComment',\n render: (record: ApprovalHistoryRow): ReactElement => (\n <Typography component=\"span\" variant=\"body\">\n {record.decisionCommentText}\n </Typography>\n ),\n title: '意見',\n width: 240,\n },\n {\n key: 'instanceStateLabel',\n render: (record: ApprovalHistoryRow): ReactElement => (\n <Typography\n color={readInstanceStateColor(record.instanceState)}\n component=\"span\"\n variant=\"body\"\n >\n {record.instanceStateLabel}\n </Typography>\n ),\n title: '流程狀態',\n width: 140,\n },\n {\n key: 'decidedAt',\n render: (record: ApprovalHistoryRow): ReactElement => (\n <Typography component=\"span\" variant=\"body\">\n {formatHistoryDateTime(record.decidedAt)}\n </Typography>\n ),\n title: '簽核時間',\n width: 220,\n },\n ],\n [],\n );\n const historyTableActions = useMemo(\n (): TableActions<ApprovalHistoryRow> => ({\n render: (\n record,\n ): ReturnType<TableActions<ApprovalHistoryRow>['render']> => [\n {\n name: '查看',\n onClick: (): void => router.push(`/instances/${record.instanceId}`),\n },\n ],\n variant: 'base-secondary',\n width: 88,\n }),\n [router],\n );\n const trackingRows = useMemo(\n (): ApprovalHistoryRow[] =>\n historyRows.filter((row) => row.instanceState === 'RUNNING'),\n [historyRows],\n );\n\n function handleTabChange(activeKey: Key): void {\n if (\n activeKey === 'history' ||\n activeKey === 'pending' ||\n activeKey === 'tracking'\n ) {\n setActiveTab(activeKey);\n return;\n }\n\n setActiveTab('pending');\n }\n\n async function refreshTasks(): Promise<void> {\n setLoading(true);\n setError(null);\n\n try {\n if (!currentMemberId) {\n setPendingRows([]);\n setHistoryRows([]);\n return;\n }\n\n const [nextPendingTasks, nextHistoryTasks] = await Promise.all([\n listInboxTasks(currentMemberId),\n listApprovalHistoryTasks(currentMemberId),\n ]);\n const [nextPendingRows, nextHistoryRows] = await Promise.all([\n readInboxTaskRows(nextPendingTasks),\n readApprovalHistoryRows(nextHistoryTasks),\n ]);\n\n setPendingRows(nextPendingRows);\n setHistoryRows(nextHistoryRows);\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }\n\n return (\n <Layout>\n <AppNavigation activeHref=\"/inbox\" />\n\n <Layout.Main>\n <PageHeader>\n <ContentHeader\n description={`目前以 ${member?.name ?? currentMemberId ?? '目前登入會員'} 查詢待處理與歷史簽核任務。`}\n title=\"我的待簽\"\n >\n <Button\n icon={PlusIcon}\n iconType=\"leading\"\n onClick={(): void => router.push('/instances/new')}\n variant=\"base-primary\"\n >\n 發起簽核\n </Button>\n </ContentHeader>\n </PageHeader>\n\n <SectionGroup>\n <Section>\n {error ? (\n <Typography color=\"text-error\" variant=\"body\">\n {error}\n </Typography>\n ) : null}\n <Tab activeKey={activeTab} onChange={handleTabChange} size=\"sub\">\n <TabItem\n badgeCount={loading ? undefined : pendingRows.length}\n key=\"pending\"\n >\n 待簽核\n </TabItem>\n <TabItem\n badgeCount={loading ? undefined : trackingRows.length}\n key=\"tracking\"\n >\n 已處理未結束\n </TabItem>\n <TabItem key=\"history\">歷史簽核記錄</TabItem>\n </Tab>\n\n {activeTab === 'pending' ? (\n <Table\n actions={pendingTableActions}\n columns={pendingColumns}\n dataSource={pendingRows}\n fullWidth\n loading={loading}\n />\n ) : null}\n {activeTab === 'tracking' ? (\n <Table\n actions={historyTableActions}\n columns={historyColumns}\n dataSource={trackingRows}\n fullWidth\n loading={loading}\n />\n ) : null}\n {activeTab === 'history' ? (\n <Table\n actions={historyTableActions}\n columns={historyColumns}\n dataSource={historyRows}\n fullWidth\n loading={loading}\n />\n ) : null}\n </Section>\n </SectionGroup>\n </Layout.Main>\n </Layout>\n );\n}\n\nasync function readInboxTaskRows(\n tasks: readonly TaskRecord[],\n): Promise<InboxTaskRow[]> {\n const instances = await readTaskInstances(tasks);\n\n return tasks.map(\n (task, index): InboxTaskRow => ({\n ...task,\n caseTitle: readTaskCaseTitle(task, instances[index] ?? null),\n key: task.id,\n slaStatusColor: readSlaStatusColor(task.slaDueAt),\n slaStatusText: readSlaStatusText(task.slaDueAt),\n statusLabel: readTaskStatusLabel(task.status),\n }),\n );\n}\n\nasync function readApprovalHistoryRows(\n tasks: readonly TaskRecord[],\n): Promise<ApprovalHistoryRow[]> {\n const [decisionLists, instances] = await Promise.all([\n Promise.all(tasks.map((task) => listTaskDecisions(task.id))),\n readTaskInstances(tasks),\n ]);\n\n return tasks.map((task, index): ApprovalHistoryRow => {\n const decision = readLatestTaskDecision(decisionLists[index] ?? []);\n const instance = instances[index] ?? null;\n\n return {\n ...task,\n caseTitle: readTaskCaseTitle(task, instance),\n decisionAction: decision?.action ?? null,\n decisionComment: decision?.comment ?? null,\n decisionCommentText: readDecisionCommentText(decision?.comment ?? null),\n decisionLabel: readTaskDecisionLabel(decision?.action ?? null),\n decidedAt: decision?.decidedAt ?? task.completedAt,\n instanceState: instance?.state ?? null,\n instanceStateLabel: readInstanceStateLabel(instance?.state ?? null),\n key: task.id,\n };\n });\n}\n\nasync function readTaskInstances(\n tasks: readonly TaskRecord[],\n): Promise<readonly (ApprovalInstanceRecord | null)[]> {\n return Promise.all(\n tasks.map(async (task): Promise<ApprovalInstanceRecord | null> => {\n try {\n return (await readApprovalInstance(task.instanceId)).instance;\n } catch {\n return null;\n }\n }),\n );\n}\n\nfunction readTaskCaseTitle(\n task: TaskRecord,\n instance: ApprovalInstanceRecord | null,\n): string {\n return instance ? readApprovalInstanceCaseTitle(instance) : task.instanceId;\n}\n\nfunction readLatestTaskDecision(\n decisions: readonly TaskDecisionRecord[],\n): TaskDecisionRecord | null {\n return [...decisions].sort(compareTaskDecisionDesc)[0] ?? null;\n}\n\nfunction compareTaskDecisionDesc(\n left: TaskDecisionRecord,\n right: TaskDecisionRecord,\n): number {\n return (\n new Date(right.decidedAt).getTime() - new Date(left.decidedAt).getTime()\n );\n}\n\nfunction readTaskDecisionLabel(\n action: TaskDecisionRecord['action'] | null,\n): string {\n if (action === 'APPROVED') {\n return '同意';\n }\n\n if (action === 'REJECTED') {\n return '拒絕';\n }\n\n if (action === 'RETURNED') {\n return '退回';\n }\n\n if (action === 'TRANSFERRED') {\n return '轉派';\n }\n\n return '未記錄';\n}\n\nfunction readTaskDecisionColor(\n action: TaskDecisionRecord['action'] | null,\n): 'text-error' | 'text-neutral' | 'text-success' {\n if (action === 'APPROVED') {\n return 'text-success';\n }\n\n if (action === 'REJECTED' || action === 'RETURNED') {\n return 'text-error';\n }\n\n return 'text-neutral';\n}\n\nfunction readInstanceStateLabel(\n state: ApprovalInstanceRecord['state'] | null,\n): string {\n if (state === 'RUNNING') {\n return '進行中';\n }\n\n if (state === 'APPROVED') {\n return '已通過';\n }\n\n if (state === 'REJECTED') {\n return '已拒絕';\n }\n\n if (state === 'RETURNED') {\n return '已退回';\n }\n\n if (state === 'CANCELLED') {\n return '已取消';\n }\n\n if (state === 'EXPIRED') {\n return '已逾期';\n }\n\n if (state === 'DRAFT') {\n return '草稿';\n }\n\n return '-';\n}\n\nfunction readInstanceStateColor(\n state: ApprovalInstanceRecord['state'] | null,\n): 'text-error' | 'text-neutral' | 'text-success' {\n if (state === 'APPROVED') {\n return 'text-success';\n }\n\n if (state === 'REJECTED' || state === 'CANCELLED' || state === 'EXPIRED') {\n return 'text-error';\n }\n\n return 'text-neutral';\n}\n\nfunction readDecisionCommentText(comment: string | null): string {\n const trimmedComment = comment?.trim() ?? '';\n\n return trimmedComment || '-';\n}\n\nfunction formatHistoryDateTime(value: string | null): string {\n return formatDateTime(value);\n}\n\nfunction readSlaStatusText(value: string | null): string {\n if (!value) {\n return '-';\n }\n\n const dueAt = new Date(value).getTime();\n const now = Date.now();\n const diffMs = Math.abs(dueAt - now);\n const label = formatDuration(diffMs);\n\n return dueAt < now ? `已逾期 ${label}` : `剩餘 ${label}`;\n}\n\nfunction readSlaStatusColor(\n value: string | null,\n): 'text-error' | 'text-neutral' | 'text-success' {\n if (!value) {\n return 'text-neutral';\n }\n\n return new Date(value).getTime() < Date.now() ? 'text-error' : 'text-success';\n}\n\nfunction formatDuration(value: number): string {\n const totalMinutes = Math.max(1, Math.ceil(value / 60_000));\n const days = Math.floor(totalMinutes / 1440);\n const hours = Math.floor((totalMinutes % 1440) / 60);\n const minutes = totalMinutes % 60;\n\n if (days > 0) {\n return `${days}天 ${hours}小時`;\n }\n\n if (hours > 0) {\n return `${hours}小時 ${minutes}分鐘`;\n }\n\n return `${minutes}分鐘`;\n}\n\nfunction readTaskStatusLabel(status: TaskRecord['status']): string {\n if (status === 'PENDING') {\n return '待處理';\n }\n\n if (status === 'IN_PROGRESS') {\n return '處理中';\n }\n\n if (status === 'COMPLETED') {\n return '已完成';\n }\n\n if (status === 'TRANSFERRED') {\n return '已轉派';\n }\n\n if (status === 'CANCELLED') {\n return '已取消';\n }\n\n return status;\n}\n\nfunction readErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : '發生未知錯誤';\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/InstanceDetailView-l_kNDCz2.cjs");exports.InstanceDetailView=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/detail-DuRg3Y7b.cjs");exports.InstanceDetailView=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../chunks/InstanceDetailView-C-A-LOCG.js";
1
+ import { t as e } from "../../../chunks/detail-DilI0PPe.js";
2
2
  export { e as InstanceDetailView };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./new/index.cjs");exports.InstanceNewView=e.InstanceNewView;
@@ -0,0 +1 @@
1
+ export * from './new';
@@ -0,0 +1,2 @@
1
+ import { InstanceNewView as e } from "./new/index.js";
2
+ export { e as InstanceNewView };
@@ -1,9 +1,9 @@
1
1
  import { ReactElement } from 'react';
2
2
  export interface InstanceNewViewProps {
3
3
  /**
4
- * Optional template id pre-selected via host router search params.
5
- * When omitted, the view reads `?templateId=` from
6
- * `useRouterAdapter().searchParams()`.
4
+ * Optional template id pre-selected by the host. The Server Component
5
+ * page should read `?templateId=` from its `searchParams` and pass the
6
+ * value through this prop.
7
7
  */
8
8
  readonly templateId?: string | null;
9
9
  }
@@ -1 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/InstanceNewView-CdCsxQIu.cjs");exports.InstanceNewView=e.t;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/app-navigation-BRRFCkxZ.cjs"),t=require("../../../chunks/auth-provider-BV8Iiwfb.cjs"),n=require("../../../chunks/format-date-time-hKLVMxq4.cjs"),r=require("../../../chunks/FormRendererView-BwVsH2eX.cjs");let i=require("react"),a=require("@mezzanine-ui/react"),o=require("react/jsx-runtime"),s=require("@rytass/bpm-core-client/workflow"),c=require("@mezzanine-ui/icons"),l=require("@mezzanine-ui/react/ContentHeader");l=e.o(l,1);let u=require("@rytass/bpm-core-client/form");var d={display:`grid`,gap:16};function f(e={}){return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(m,{}),children:(0,o.jsx)(p,{templateId:e.templateId??void 0})})}function p({templateId:f}){let p=t.a(),{member:m}=t.n(),g=m?.memberId??null,_=f??null,[v,y]=(0,i.useState)(null),[b,x]=(0,i.useState)({}),[S,C]=(0,i.useState)([]),[w,T]=(0,i.useState)(null),[E,D]=(0,i.useState)({}),[O,k]=(0,i.useState)(!0),[A,j]=(0,i.useState)(!1);(0,i.useEffect)(()=>{if(!_){F();return}I(_)},[_]);let M=(0,i.useMemo)(()=>S.map(e=>({...e,key:e.id,updatedAt:n.t(e.updatedAt),versionLabel:`v${e.version}`})),[S]),N=(0,i.useMemo)(()=>[{dataIndex:`name`,key:`name`,title:`模板名稱`,width:240},{dataIndex:`versionLabel`,key:`versionLabel`,title:`發布版本`,width:120},{dataIndex:`updatedAt`,key:`updatedAt`,title:`更新時間`,width:220}],[]),P=(0,i.useMemo)(()=>({render:e=>[{name:`發起`,onClick:()=>p.push(`/instances/new?templateId=${e.id}`),variant:`base-primary`}],variant:`base-secondary`,width:88}),[p]);async function F(){k(!0),T(null),y(null);try{C(await(0,s.listLaunchableTemplates)())}catch(e){T(h(e))}finally{k(!1)}}async function I(e){k(!0),T(null),C([]);try{y(await(0,s.readLaunchContext)(e))}catch(e){T(h(e))}finally{k(!1)}}async function L(){if(!v||!g)return;j(!0),T(null),D({});let e=(0,u.validateFormRendererValues)({schema:v.formVersion.schema,uiSchema:v.formVersion.uiSchema,values:b});if(!e.valid){D(e.errors),T(`請先補齊必填欄位。`),e.firstInvalidFieldKey&&(0,u.focusFormRendererField)(e.firstInvalidFieldKey),j(!1);return}try{let e=await(0,s.submitApprovalInstance)({formData:b,initiatorMemberId:g,templateId:v.template.id,title:(0,s.readFormDataCaseTitle)({fallbackTitle:v.template.name,formData:b,schema:v.formVersion.schema,uiSchema:v.formVersion.uiSchema})});p.push(`/instances/${e}`)}catch(e){T(h(e))}finally{j(!1)}}async function R(e,t){if(!g)throw Error(`尚未登入,無法上傳附件`);return{id:(await(0,s.uploadAttachment)({file:t,formFieldPath:`form.${e.fieldKey}`})).id}}return(0,o.jsxs)(a.Layout,{children:[(0,o.jsx)(e.t,{activeHref:`/`}),(0,o.jsxs)(a.Layout.Main,{children:[(0,o.jsx)(a.PageHeader,{children:(0,o.jsx)(l.default,{description:v?`${v.template.name} · 表單 v${v.formVersion.version}`:`選擇可發起的已發布模板後填寫表單內容。`,title:`發起簽核`,children:v?(0,o.jsx)(a.Button,{disabled:O||A,icon:c.CheckedIcon,iconType:`leading`,onClick:L,variant:`base-primary`,children:`送出`}):null})}),(0,o.jsx)(a.SectionGroup,{children:(0,o.jsx)(a.Section,{children:(0,o.jsxs)(`div`,{style:d,children:[w?(0,o.jsx)(a.Typography,{color:`text-error`,variant:`body`,children:w}):null,O?(0,o.jsx)(a.Typography,{color:`text-neutral`,variant:`body`,children:`載入中...`}):null,v?(0,o.jsx)(r.t,{errors:E,maxWidth:480,onChange:e=>{x(e),D({})},onUploadAttachment:R,schema:v.formVersion.schema,singleColumn:!0,uiSchema:v.formVersion.uiSchema,value:b}):null,!_&&!O?M.length>0?(0,o.jsx)(a.Table,{actions:P,columns:N,dataSource:M,fullWidth:!0}):(0,o.jsx)(a.Typography,{color:`text-neutral`,variant:`body`,children:`目前沒有可發起的已發布模板。`}):null]})})})]})]})}function m(){return(0,o.jsxs)(a.Layout,{children:[(0,o.jsx)(e.t,{activeHref:`/`}),(0,o.jsxs)(a.Layout.Main,{children:[(0,o.jsx)(a.PageHeader,{children:(0,o.jsx)(l.default,{description:`選擇可發起的已發布模板後填寫表單內容。`,title:`發起簽核`})}),(0,o.jsx)(a.SectionGroup,{children:(0,o.jsx)(a.Section,{children:(0,o.jsx)(a.Typography,{color:`text-neutral`,variant:`body`,children:`載入中...`})})})]})]})}function h(e){return e instanceof Error?e.message:`發生未知錯誤`}exports.InstanceNewView=f;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/views/instances/new/InstanceNewView.tsx"],"sourcesContent":["'use client';\n\nimport {\n CSSProperties,\n ReactElement,\n Suspense,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n Button,\n Layout,\n PageHeader,\n Section,\n SectionGroup,\n Table,\n Typography,\n} from '@mezzanine-ui/react';\nimport ContentHeader from '@mezzanine-ui/react/ContentHeader';\nimport { CheckedIcon } from '@mezzanine-ui/icons';\nimport type { TableActions, TableColumn } from '@mezzanine-ui/core/table';\nimport { FormFieldDefinition } from '@rytass/bpm-core-shared/form';\nimport {\n focusFormRendererField,\n FormRendererValues,\n validateFormRendererValues,\n} from '@rytass/bpm-core-client/form';\nimport {\n LaunchContext,\n LaunchableTemplateRecord,\n listLaunchableTemplates,\n readFormDataCaseTitle,\n readLaunchContext,\n submitApprovalInstance,\n uploadAttachment,\n} from '@rytass/bpm-core-client/workflow';\nimport { formatDateTime } from '../../../lib/format-date-time';\nimport { useAuth } from '../../../lib/auth-provider';\nimport { useRouterAdapter } from '../../../lib/router-adapter';\nimport { AppNavigation } from '../../../components/app-navigation';\nimport { FormRenderer } from '../../forms/renderer/FormRendererView';\n\nconst FORM_SECTION_STYLE: CSSProperties = {\n display: 'grid',\n gap: 16,\n};\n\ntype LaunchableTemplateRow = Readonly<\n Record<string, unknown> &\n LaunchableTemplateRecord & {\n key: string;\n versionLabel: string;\n }\n>;\n\nexport interface InstanceNewViewProps {\n /**\n * Optional template id pre-selected by the host. The Server Component\n * page should read `?templateId=` from its `searchParams` and pass the\n * value through this prop.\n */\n readonly templateId?: string | null;\n}\n\n/**\n * Framework-agnostic view for the BPM \"發起簽核\" launch page. Mechanical port\n * of `apps/client/src/app/instances/new/page.tsx` — picks a launchable\n * template and submits the launch form.\n */\nexport function InstanceNewView(\n props: InstanceNewViewProps = {},\n): ReactElement {\n return (\n <Suspense fallback={<NewApprovalInstanceLoading />}>\n <NewApprovalInstanceContent templateId={props.templateId ?? undefined} />\n </Suspense>\n );\n}\n\nfunction NewApprovalInstanceContent({\n templateId: templateIdProp,\n}: {\n readonly templateId?: string;\n}): ReactElement {\n const router = useRouterAdapter();\n const { member } = useAuth();\n const currentMemberId = member?.memberId ?? null;\n const templateId = templateIdProp ?? null;\n const [context, setContext] = useState<LaunchContext | null>(null);\n const [formValues, setFormValues] = useState<FormRendererValues>({});\n const [templates, setTemplates] = useState<\n readonly LaunchableTemplateRecord[]\n >([]);\n const [error, setError] = useState<string | null>(null);\n const [formErrors, setFormErrors] = useState<\n Readonly<Record<string, string>>\n >({});\n const [loading, setLoading] = useState(true);\n const [submitting, setSubmitting] = useState(false);\n\n useEffect((): void => {\n if (!templateId) {\n void refreshTemplates();\n\n return;\n }\n\n void refreshContext(templateId);\n }, [templateId]);\n\n const rows = useMemo(\n (): LaunchableTemplateRow[] =>\n templates.map((template) => ({\n ...template,\n key: template.id,\n updatedAt: formatDateTime(template.updatedAt),\n versionLabel: `v${template.version}`,\n })),\n [templates],\n );\n const columns = useMemo(\n (): TableColumn<LaunchableTemplateRow>[] => [\n { dataIndex: 'name', key: 'name', title: '模板名稱', width: 240 },\n {\n dataIndex: 'versionLabel',\n key: 'versionLabel',\n title: '發布版本',\n width: 120,\n },\n {\n dataIndex: 'updatedAt',\n key: 'updatedAt',\n title: '更新時間',\n width: 220,\n },\n ],\n [],\n );\n const tableActions = useMemo(\n (): TableActions<LaunchableTemplateRow> => ({\n render: (\n record,\n ): ReturnType<TableActions<LaunchableTemplateRow>['render']> => [\n {\n name: '發起',\n onClick: (): void =>\n router.push(`/instances/new?templateId=${record.id}`),\n variant: 'base-primary',\n },\n ],\n variant: 'base-secondary',\n width: 88,\n }),\n [router],\n );\n\n async function refreshTemplates(): Promise<void> {\n setLoading(true);\n setError(null);\n setContext(null);\n\n try {\n setTemplates(await listLaunchableTemplates());\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }\n\n async function refreshContext(nextTemplateId: string): Promise<void> {\n setLoading(true);\n setError(null);\n setTemplates([]);\n\n try {\n setContext(await readLaunchContext(nextTemplateId));\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }\n\n async function handleSubmit(): Promise<void> {\n if (!context || !currentMemberId) {\n return;\n }\n\n setSubmitting(true);\n setError(null);\n setFormErrors({});\n\n const validation = validateFormRendererValues({\n schema: context.formVersion.schema,\n uiSchema: context.formVersion.uiSchema,\n values: formValues,\n });\n\n if (!validation.valid) {\n setFormErrors(validation.errors);\n setError('請先補齊必填欄位。');\n\n if (validation.firstInvalidFieldKey) {\n focusFormRendererField(validation.firstInvalidFieldKey);\n }\n\n setSubmitting(false);\n\n return;\n }\n\n try {\n const instanceId = await submitApprovalInstance({\n formData: formValues,\n initiatorMemberId: currentMemberId,\n templateId: context.template.id,\n title: readFormDataCaseTitle({\n fallbackTitle: context.template.name,\n formData: formValues,\n schema: context.formVersion.schema,\n uiSchema: context.formVersion.uiSchema,\n }),\n });\n\n router.push(`/instances/${instanceId}`);\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setSubmitting(false);\n }\n }\n\n async function handleUploadAttachment(\n field: FormFieldDefinition,\n file: File,\n ): Promise<{ readonly id: string }> {\n if (!currentMemberId) {\n throw new Error('尚未登入,無法上傳附件');\n }\n\n const attachment = await uploadAttachment({\n file,\n formFieldPath: `form.${field.fieldKey}`,\n });\n\n return { id: attachment.id };\n }\n\n return (\n <Layout>\n <AppNavigation activeHref=\"/\" />\n\n <Layout.Main>\n <PageHeader>\n <ContentHeader\n description={\n context\n ? `${context.template.name} · 表單 v${context.formVersion.version}`\n : '選擇可發起的已發布模板後填寫表單內容。'\n }\n title=\"發起簽核\"\n >\n {context ? (\n <Button\n disabled={loading || submitting}\n icon={CheckedIcon}\n iconType=\"leading\"\n onClick={handleSubmit}\n variant=\"base-primary\"\n >\n 送出\n </Button>\n ) : null}\n </ContentHeader>\n </PageHeader>\n\n <SectionGroup>\n <Section>\n <div style={FORM_SECTION_STYLE}>\n {error ? (\n <Typography color=\"text-error\" variant=\"body\">\n {error}\n </Typography>\n ) : null}\n\n {loading ? (\n <Typography color=\"text-neutral\" variant=\"body\">\n 載入中...\n </Typography>\n ) : null}\n\n {context ? (\n <FormRenderer\n errors={formErrors}\n maxWidth={480}\n onChange={(values): void => {\n setFormValues(values);\n setFormErrors({});\n }}\n onUploadAttachment={handleUploadAttachment}\n schema={context.formVersion.schema}\n singleColumn\n uiSchema={context.formVersion.uiSchema}\n value={formValues}\n />\n ) : null}\n\n {!templateId && !loading ? (\n rows.length > 0 ? (\n <Table\n actions={tableActions}\n columns={columns}\n dataSource={rows}\n fullWidth\n />\n ) : (\n <Typography color=\"text-neutral\" variant=\"body\">\n 目前沒有可發起的已發布模板。\n </Typography>\n )\n ) : null}\n </div>\n </Section>\n </SectionGroup>\n </Layout.Main>\n </Layout>\n );\n}\n\nfunction NewApprovalInstanceLoading(): ReactElement {\n return (\n <Layout>\n <AppNavigation activeHref=\"/\" />\n\n <Layout.Main>\n <PageHeader>\n <ContentHeader\n description=\"選擇可發起的已發布模板後填寫表單內容。\"\n title=\"發起簽核\"\n />\n </PageHeader>\n\n <SectionGroup>\n <Section>\n <Typography color=\"text-neutral\" variant=\"body\">\n 載入中...\n </Typography>\n </Section>\n </SectionGroup>\n </Layout.Main>\n </Layout>\n );\n}\n\nfunction readErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : '發生未知錯誤';\n}\n"],"mappings":"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"}
@@ -1,2 +1,189 @@
1
- import { t as e } from "../../../chunks/InstanceNewView-B5hz-FWd.js";
2
- export { e as InstanceNewView };
1
+ "use client";
2
+ import { a as e, n as t } from "../../../chunks/auth-provider-Bnox5gsx.js";
3
+ import { t as n } from "../../../chunks/format-date-time-CB-LxzqT.js";
4
+ import { t as r } from "../../../chunks/app-navigation-rxhpHCch.js";
5
+ import { t as i } from "../../../chunks/FormRendererView-DrHsuSVo.js";
6
+ import { Suspense as a, useEffect as o, useMemo as s, useState as c } from "react";
7
+ import { Button as l, Layout as u, PageHeader as d, Section as f, SectionGroup as p, Table as m, Typography as h } from "@mezzanine-ui/react";
8
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
9
+ import { listLaunchableTemplates as v, readFormDataCaseTitle as y, readLaunchContext as b, submitApprovalInstance as x, uploadAttachment as S } from "@rytass/bpm-core-client/workflow";
10
+ import { CheckedIcon as C } from "@mezzanine-ui/icons";
11
+ import w from "@mezzanine-ui/react/ContentHeader";
12
+ import { focusFormRendererField as T, validateFormRendererValues as E } from "@rytass/bpm-core-client/form";
13
+ //#region src/views/instances/new/InstanceNewView.tsx
14
+ var D = {
15
+ display: "grid",
16
+ gap: 16
17
+ };
18
+ function O(e = {}) {
19
+ return /* @__PURE__ */ g(a, {
20
+ fallback: /* @__PURE__ */ g(A, {}),
21
+ children: /* @__PURE__ */ g(k, { templateId: e.templateId ?? void 0 })
22
+ });
23
+ }
24
+ function k({ templateId: a }) {
25
+ let O = e(), { member: k } = t(), A = k?.memberId ?? null, M = a ?? null, [N, P] = c(null), [F, I] = c({}), [L, R] = c([]), [z, B] = c(null), [V, H] = c({}), [U, W] = c(!0), [G, K] = c(!1);
26
+ o(() => {
27
+ if (!M) {
28
+ X();
29
+ return;
30
+ }
31
+ Z(M);
32
+ }, [M]);
33
+ let q = s(() => L.map((e) => ({
34
+ ...e,
35
+ key: e.id,
36
+ updatedAt: n(e.updatedAt),
37
+ versionLabel: `v${e.version}`
38
+ })), [L]), J = s(() => [
39
+ {
40
+ dataIndex: "name",
41
+ key: "name",
42
+ title: "模板名稱",
43
+ width: 240
44
+ },
45
+ {
46
+ dataIndex: "versionLabel",
47
+ key: "versionLabel",
48
+ title: "發布版本",
49
+ width: 120
50
+ },
51
+ {
52
+ dataIndex: "updatedAt",
53
+ key: "updatedAt",
54
+ title: "更新時間",
55
+ width: 220
56
+ }
57
+ ], []), Y = s(() => ({
58
+ render: (e) => [{
59
+ name: "發起",
60
+ onClick: () => O.push(`/instances/new?templateId=${e.id}`),
61
+ variant: "base-primary"
62
+ }],
63
+ variant: "base-secondary",
64
+ width: 88
65
+ }), [O]);
66
+ async function X() {
67
+ W(!0), B(null), P(null);
68
+ try {
69
+ R(await v());
70
+ } catch (e) {
71
+ B(j(e));
72
+ } finally {
73
+ W(!1);
74
+ }
75
+ }
76
+ async function Z(e) {
77
+ W(!0), B(null), R([]);
78
+ try {
79
+ P(await b(e));
80
+ } catch (e) {
81
+ B(j(e));
82
+ } finally {
83
+ W(!1);
84
+ }
85
+ }
86
+ async function Q() {
87
+ if (!N || !A) return;
88
+ K(!0), B(null), H({});
89
+ let e = E({
90
+ schema: N.formVersion.schema,
91
+ uiSchema: N.formVersion.uiSchema,
92
+ values: F
93
+ });
94
+ if (!e.valid) {
95
+ H(e.errors), B("請先補齊必填欄位。"), e.firstInvalidFieldKey && T(e.firstInvalidFieldKey), K(!1);
96
+ return;
97
+ }
98
+ try {
99
+ let e = await x({
100
+ formData: F,
101
+ initiatorMemberId: A,
102
+ templateId: N.template.id,
103
+ title: y({
104
+ fallbackTitle: N.template.name,
105
+ formData: F,
106
+ schema: N.formVersion.schema,
107
+ uiSchema: N.formVersion.uiSchema
108
+ })
109
+ });
110
+ O.push(`/instances/${e}`);
111
+ } catch (e) {
112
+ B(j(e));
113
+ } finally {
114
+ K(!1);
115
+ }
116
+ }
117
+ async function $(e, t) {
118
+ if (!A) throw Error("尚未登入,無法上傳附件");
119
+ return { id: (await S({
120
+ file: t,
121
+ formFieldPath: `form.${e.fieldKey}`
122
+ })).id };
123
+ }
124
+ return /* @__PURE__ */ _(u, { children: [/* @__PURE__ */ g(r, { activeHref: "/" }), /* @__PURE__ */ _(u.Main, { children: [/* @__PURE__ */ g(d, { children: /* @__PURE__ */ g(w, {
125
+ description: N ? `${N.template.name} · 表單 v${N.formVersion.version}` : "選擇可發起的已發布模板後填寫表單內容。",
126
+ title: "發起簽核",
127
+ children: N ? /* @__PURE__ */ g(l, {
128
+ disabled: U || G,
129
+ icon: C,
130
+ iconType: "leading",
131
+ onClick: Q,
132
+ variant: "base-primary",
133
+ children: "送出"
134
+ }) : null
135
+ }) }), /* @__PURE__ */ g(p, { children: /* @__PURE__ */ g(f, { children: /* @__PURE__ */ _("div", {
136
+ style: D,
137
+ children: [
138
+ z ? /* @__PURE__ */ g(h, {
139
+ color: "text-error",
140
+ variant: "body",
141
+ children: z
142
+ }) : null,
143
+ U ? /* @__PURE__ */ g(h, {
144
+ color: "text-neutral",
145
+ variant: "body",
146
+ children: "載入中..."
147
+ }) : null,
148
+ N ? /* @__PURE__ */ g(i, {
149
+ errors: V,
150
+ maxWidth: 480,
151
+ onChange: (e) => {
152
+ I(e), H({});
153
+ },
154
+ onUploadAttachment: $,
155
+ schema: N.formVersion.schema,
156
+ singleColumn: !0,
157
+ uiSchema: N.formVersion.uiSchema,
158
+ value: F
159
+ }) : null,
160
+ !M && !U ? q.length > 0 ? /* @__PURE__ */ g(m, {
161
+ actions: Y,
162
+ columns: J,
163
+ dataSource: q,
164
+ fullWidth: !0
165
+ }) : /* @__PURE__ */ g(h, {
166
+ color: "text-neutral",
167
+ variant: "body",
168
+ children: "目前沒有可發起的已發布模板。"
169
+ }) : null
170
+ ]
171
+ }) }) })] })] });
172
+ }
173
+ function A() {
174
+ return /* @__PURE__ */ _(u, { children: [/* @__PURE__ */ g(r, { activeHref: "/" }), /* @__PURE__ */ _(u.Main, { children: [/* @__PURE__ */ g(d, { children: /* @__PURE__ */ g(w, {
175
+ description: "選擇可發起的已發布模板後填寫表單內容。",
176
+ title: "發起簽核"
177
+ }) }), /* @__PURE__ */ g(p, { children: /* @__PURE__ */ g(f, { children: /* @__PURE__ */ g(h, {
178
+ color: "text-neutral",
179
+ variant: "body",
180
+ children: "載入中..."
181
+ }) }) })] })] });
182
+ }
183
+ function j(e) {
184
+ return e instanceof Error ? e.message : "發生未知錯誤";
185
+ }
186
+ //#endregion
187
+ export { O as InstanceNewView };
188
+
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/views/instances/new/InstanceNewView.tsx"],"sourcesContent":["'use client';\n\nimport {\n CSSProperties,\n ReactElement,\n Suspense,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n Button,\n Layout,\n PageHeader,\n Section,\n SectionGroup,\n Table,\n Typography,\n} from '@mezzanine-ui/react';\nimport ContentHeader from '@mezzanine-ui/react/ContentHeader';\nimport { CheckedIcon } from '@mezzanine-ui/icons';\nimport type { TableActions, TableColumn } from '@mezzanine-ui/core/table';\nimport { FormFieldDefinition } from '@rytass/bpm-core-shared/form';\nimport {\n focusFormRendererField,\n FormRendererValues,\n validateFormRendererValues,\n} from '@rytass/bpm-core-client/form';\nimport {\n LaunchContext,\n LaunchableTemplateRecord,\n listLaunchableTemplates,\n readFormDataCaseTitle,\n readLaunchContext,\n submitApprovalInstance,\n uploadAttachment,\n} from '@rytass/bpm-core-client/workflow';\nimport { formatDateTime } from '../../../lib/format-date-time';\nimport { useAuth } from '../../../lib/auth-provider';\nimport { useRouterAdapter } from '../../../lib/router-adapter';\nimport { AppNavigation } from '../../../components/app-navigation';\nimport { FormRenderer } from '../../forms/renderer/FormRendererView';\n\nconst FORM_SECTION_STYLE: CSSProperties = {\n display: 'grid',\n gap: 16,\n};\n\ntype LaunchableTemplateRow = Readonly<\n Record<string, unknown> &\n LaunchableTemplateRecord & {\n key: string;\n versionLabel: string;\n }\n>;\n\nexport interface InstanceNewViewProps {\n /**\n * Optional template id pre-selected by the host. The Server Component\n * page should read `?templateId=` from its `searchParams` and pass the\n * value through this prop.\n */\n readonly templateId?: string | null;\n}\n\n/**\n * Framework-agnostic view for the BPM \"發起簽核\" launch page. Mechanical port\n * of `apps/client/src/app/instances/new/page.tsx` — picks a launchable\n * template and submits the launch form.\n */\nexport function InstanceNewView(\n props: InstanceNewViewProps = {},\n): ReactElement {\n return (\n <Suspense fallback={<NewApprovalInstanceLoading />}>\n <NewApprovalInstanceContent templateId={props.templateId ?? undefined} />\n </Suspense>\n );\n}\n\nfunction NewApprovalInstanceContent({\n templateId: templateIdProp,\n}: {\n readonly templateId?: string;\n}): ReactElement {\n const router = useRouterAdapter();\n const { member } = useAuth();\n const currentMemberId = member?.memberId ?? null;\n const templateId = templateIdProp ?? null;\n const [context, setContext] = useState<LaunchContext | null>(null);\n const [formValues, setFormValues] = useState<FormRendererValues>({});\n const [templates, setTemplates] = useState<\n readonly LaunchableTemplateRecord[]\n >([]);\n const [error, setError] = useState<string | null>(null);\n const [formErrors, setFormErrors] = useState<\n Readonly<Record<string, string>>\n >({});\n const [loading, setLoading] = useState(true);\n const [submitting, setSubmitting] = useState(false);\n\n useEffect((): void => {\n if (!templateId) {\n void refreshTemplates();\n\n return;\n }\n\n void refreshContext(templateId);\n }, [templateId]);\n\n const rows = useMemo(\n (): LaunchableTemplateRow[] =>\n templates.map((template) => ({\n ...template,\n key: template.id,\n updatedAt: formatDateTime(template.updatedAt),\n versionLabel: `v${template.version}`,\n })),\n [templates],\n );\n const columns = useMemo(\n (): TableColumn<LaunchableTemplateRow>[] => [\n { dataIndex: 'name', key: 'name', title: '模板名稱', width: 240 },\n {\n dataIndex: 'versionLabel',\n key: 'versionLabel',\n title: '發布版本',\n width: 120,\n },\n {\n dataIndex: 'updatedAt',\n key: 'updatedAt',\n title: '更新時間',\n width: 220,\n },\n ],\n [],\n );\n const tableActions = useMemo(\n (): TableActions<LaunchableTemplateRow> => ({\n render: (\n record,\n ): ReturnType<TableActions<LaunchableTemplateRow>['render']> => [\n {\n name: '發起',\n onClick: (): void =>\n router.push(`/instances/new?templateId=${record.id}`),\n variant: 'base-primary',\n },\n ],\n variant: 'base-secondary',\n width: 88,\n }),\n [router],\n );\n\n async function refreshTemplates(): Promise<void> {\n setLoading(true);\n setError(null);\n setContext(null);\n\n try {\n setTemplates(await listLaunchableTemplates());\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }\n\n async function refreshContext(nextTemplateId: string): Promise<void> {\n setLoading(true);\n setError(null);\n setTemplates([]);\n\n try {\n setContext(await readLaunchContext(nextTemplateId));\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }\n\n async function handleSubmit(): Promise<void> {\n if (!context || !currentMemberId) {\n return;\n }\n\n setSubmitting(true);\n setError(null);\n setFormErrors({});\n\n const validation = validateFormRendererValues({\n schema: context.formVersion.schema,\n uiSchema: context.formVersion.uiSchema,\n values: formValues,\n });\n\n if (!validation.valid) {\n setFormErrors(validation.errors);\n setError('請先補齊必填欄位。');\n\n if (validation.firstInvalidFieldKey) {\n focusFormRendererField(validation.firstInvalidFieldKey);\n }\n\n setSubmitting(false);\n\n return;\n }\n\n try {\n const instanceId = await submitApprovalInstance({\n formData: formValues,\n initiatorMemberId: currentMemberId,\n templateId: context.template.id,\n title: readFormDataCaseTitle({\n fallbackTitle: context.template.name,\n formData: formValues,\n schema: context.formVersion.schema,\n uiSchema: context.formVersion.uiSchema,\n }),\n });\n\n router.push(`/instances/${instanceId}`);\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setSubmitting(false);\n }\n }\n\n async function handleUploadAttachment(\n field: FormFieldDefinition,\n file: File,\n ): Promise<{ readonly id: string }> {\n if (!currentMemberId) {\n throw new Error('尚未登入,無法上傳附件');\n }\n\n const attachment = await uploadAttachment({\n file,\n formFieldPath: `form.${field.fieldKey}`,\n });\n\n return { id: attachment.id };\n }\n\n return (\n <Layout>\n <AppNavigation activeHref=\"/\" />\n\n <Layout.Main>\n <PageHeader>\n <ContentHeader\n description={\n context\n ? `${context.template.name} · 表單 v${context.formVersion.version}`\n : '選擇可發起的已發布模板後填寫表單內容。'\n }\n title=\"發起簽核\"\n >\n {context ? (\n <Button\n disabled={loading || submitting}\n icon={CheckedIcon}\n iconType=\"leading\"\n onClick={handleSubmit}\n variant=\"base-primary\"\n >\n 送出\n </Button>\n ) : null}\n </ContentHeader>\n </PageHeader>\n\n <SectionGroup>\n <Section>\n <div style={FORM_SECTION_STYLE}>\n {error ? (\n <Typography color=\"text-error\" variant=\"body\">\n {error}\n </Typography>\n ) : null}\n\n {loading ? (\n <Typography color=\"text-neutral\" variant=\"body\">\n 載入中...\n </Typography>\n ) : null}\n\n {context ? (\n <FormRenderer\n errors={formErrors}\n maxWidth={480}\n onChange={(values): void => {\n setFormValues(values);\n setFormErrors({});\n }}\n onUploadAttachment={handleUploadAttachment}\n schema={context.formVersion.schema}\n singleColumn\n uiSchema={context.formVersion.uiSchema}\n value={formValues}\n />\n ) : null}\n\n {!templateId && !loading ? (\n rows.length > 0 ? (\n <Table\n actions={tableActions}\n columns={columns}\n dataSource={rows}\n fullWidth\n />\n ) : (\n <Typography color=\"text-neutral\" variant=\"body\">\n 目前沒有可發起的已發布模板。\n </Typography>\n )\n ) : null}\n </div>\n </Section>\n </SectionGroup>\n </Layout.Main>\n </Layout>\n );\n}\n\nfunction NewApprovalInstanceLoading(): ReactElement {\n return (\n <Layout>\n <AppNavigation activeHref=\"/\" />\n\n <Layout.Main>\n <PageHeader>\n <ContentHeader\n description=\"選擇可發起的已發布模板後填寫表單內容。\"\n title=\"發起簽核\"\n />\n </PageHeader>\n\n <SectionGroup>\n <Section>\n <Typography color=\"text-neutral\" variant=\"body\">\n 載入中...\n </Typography>\n </Section>\n </SectionGroup>\n </Layout.Main>\n </Layout>\n );\n}\n\nfunction readErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : '發生未知錯誤';\n}\n"],"mappings":";;;;;;;;;;;;;AA2CA,IAAM,IAAoC;CACxC,SAAS;CACT,KAAK;AACP;AAwBA,SAAgB,EACd,IAA8B,CAAC,GACjB;CACd,OACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,CAA6B,CAAA;YAC/C,kBAAC,GAAD,EAA4B,YAAY,EAAM,cAAc,KAAA,EAAY,CAAA;CAChE,CAAA;AAEd;AAEA,SAAS,EAA2B,EAClC,YAAY,KAGG;CACf,IAAM,IAAS,EAAiB,GAC1B,EAAE,cAAW,EAAQ,GACrB,IAAkB,GAAQ,YAAY,MACtC,IAAa,KAAkB,MAC/B,CAAC,GAAS,KAAc,EAA+B,IAAI,GAC3D,CAAC,GAAY,KAAiB,EAA6B,CAAC,CAAC,GAC7D,CAAC,GAAW,KAAgB,EAEhC,CAAC,CAAC,GACE,CAAC,GAAO,KAAY,EAAwB,IAAI,GAChD,CAAC,GAAY,KAAiB,EAElC,CAAC,CAAC,GACE,CAAC,GAAS,KAAc,EAAS,EAAI,GACrC,CAAC,GAAY,KAAiB,EAAS,EAAK;CAElD,QAAsB;EACpB,IAAI,CAAC,GAAY;GACf,EAAsB;GAEtB;EACF;EAEA,EAAoB,CAAU;CAChC,GAAG,CAAC,CAAU,CAAC;CAEf,IAAM,IAAO,QAET,EAAU,KAAK,OAAc;EAC3B,GAAG;EACH,KAAK,EAAS;EACd,WAAW,EAAe,EAAS,SAAS;EAC5C,cAAc,IAAI,EAAS;CAC7B,EAAE,GACJ,CAAC,CAAS,CACZ,GACM,IAAU,QAC8B;EAC1C;GAAE,WAAW;GAAQ,KAAK;GAAQ,OAAO;GAAQ,OAAO;EAAI;EAC5D;GACE,WAAW;GACX,KAAK;GACL,OAAO;GACP,OAAO;EACT;EACA;GACE,WAAW;GACX,KAAK;GACL,OAAO;GACP,OAAO;EACT;CACF,GACA,CAAC,CACH,GACM,IAAe,SACyB;EAC1C,SACE,MAC8D,CAC9D;GACE,MAAM;GACN,eACE,EAAO,KAAK,6BAA6B,EAAO,IAAI;GACtD,SAAS;EACX,CACF;EACA,SAAS;EACT,OAAO;CACT,IACA,CAAC,CAAM,CACT;CAEA,eAAe,IAAkC;EAG/C,AAFA,EAAW,EAAI,GACf,EAAS,IAAI,GACb,EAAW,IAAI;EAEf,IAAI;GACF,EAAa,MAAM,EAAwB,CAAC;EAC9C,SAAS,GAAuB;GAC9B,EAAS,EAAiB,CAAY,CAAC;EACzC,UAAU;GACR,EAAW,EAAK;EAClB;CACF;CAEA,eAAe,EAAe,GAAuC;EAGnE,AAFA,EAAW,EAAI,GACf,EAAS,IAAI,GACb,EAAa,CAAC,CAAC;EAEf,IAAI;GACF,EAAW,MAAM,EAAkB,CAAc,CAAC;EACpD,SAAS,GAAuB;GAC9B,EAAS,EAAiB,CAAY,CAAC;EACzC,UAAU;GACR,EAAW,EAAK;EAClB;CACF;CAEA,eAAe,IAA8B;EAC3C,IAAI,CAAC,KAAW,CAAC,GACf;EAKF,AAFA,EAAc,EAAI,GAClB,EAAS,IAAI,GACb,EAAc,CAAC,CAAC;EAEhB,IAAM,IAAa,EAA2B;GAC5C,QAAQ,EAAQ,YAAY;GAC5B,UAAU,EAAQ,YAAY;GAC9B,QAAQ;EACV,CAAC;EAED,IAAI,CAAC,EAAW,OAAO;GAQrB,AAPA,EAAc,EAAW,MAAM,GAC/B,EAAS,WAAW,GAEhB,EAAW,wBACb,EAAuB,EAAW,oBAAoB,GAGxD,EAAc,EAAK;GAEnB;EACF;EAEA,IAAI;GACF,IAAM,IAAa,MAAM,EAAuB;IAC9C,UAAU;IACV,mBAAmB;IACnB,YAAY,EAAQ,SAAS;IAC7B,OAAO,EAAsB;KAC3B,eAAe,EAAQ,SAAS;KAChC,UAAU;KACV,QAAQ,EAAQ,YAAY;KAC5B,UAAU,EAAQ,YAAY;IAChC,CAAC;GACH,CAAC;GAED,EAAO,KAAK,cAAc,GAAY;EACxC,SAAS,GAAuB;GAC9B,EAAS,EAAiB,CAAY,CAAC;EACzC,UAAU;GACR,EAAc,EAAK;EACrB;CACF;CAEA,eAAe,EACb,GACA,GACkC;EAClC,IAAI,CAAC,GACH,MAAU,MAAM,aAAa;EAQ/B,OAAO,EAAE,KAAI,MALY,EAAiB;GACxC;GACA,eAAe,QAAQ,EAAM;EAC/B,CAAC,GAEuB,GAAG;CAC7B;CAEA,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAe,YAAW,IAAK,CAAA,GAE/B,kBAAC,EAAO,MAAR,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACE,aACE,IACI,GAAG,EAAQ,SAAS,KAAK,SAAS,EAAQ,YAAY,YACtD;EAEN,OAAM;YAEL,IACC,kBAAC,GAAD;GACE,UAAU,KAAW;GACrB,MAAM;GACN,UAAS;GACT,SAAS;GACT,SAAQ;aACT;EAEO,CAAA,IACN;CACS,CAAA,EACL,CAAA,GAEZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;EAAK,OAAO;YAAZ;GACG,IACC,kBAAC,GAAD;IAAY,OAAM;IAAa,SAAQ;cACpC;GACS,CAAA,IACV;GAEH,IACC,kBAAC,GAAD;IAAY,OAAM;IAAe,SAAQ;cAAO;GAEpC,CAAA,IACV;GAEH,IACC,kBAAC,GAAD;IACE,QAAQ;IACR,UAAU;IACV,WAAW,MAAiB;KAE1B,AADA,EAAc,CAAM,GACpB,EAAc,CAAC,CAAC;IAClB;IACA,oBAAoB;IACpB,QAAQ,EAAQ,YAAY;IAC5B,cAAA;IACA,UAAU,EAAQ,YAAY;IAC9B,OAAO;GACR,CAAA,IACC;GAEH,CAAC,KAAc,CAAC,IACf,EAAK,SAAS,IACZ,kBAAC,GAAD;IACE,SAAS;IACA;IACT,YAAY;IACZ,WAAA;GACD,CAAA,IAED,kBAAC,GAAD;IAAY,OAAM;IAAe,SAAQ;cAAO;GAEpC,CAAA,IAEZ;EACD;IACE,CAAA,EACG,CAAA,CACH,EAAA,CAAA,CACP,EAAA,CAAA;AAEZ;AAEA,SAAS,IAA2C;CAClD,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAe,YAAW,IAAK,CAAA,GAE/B,kBAAC,EAAO,MAAR,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACE,aAAY;EACZ,OAAM;CACP,CAAA,EACS,CAAA,GAEZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAY,OAAM;EAAe,SAAQ;YAAO;CAEpC,CAAA,EACL,CAAA,EACG,CAAA,CACH,EAAA,CAAA,CACP,EAAA,CAAA;AAEZ;AAEA,SAAS,EAAiB,GAAwB;CAChD,OAAO,aAAiB,QAAQ,EAAM,UAAU;AAClD"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/LoginView-BED07v-7.cjs");exports.LoginView=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/login-CQ9MfwcC.cjs");exports.LoginView=e.t;