@rytass/bpm-core-react 0.2.0 → 0.3.1

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 (437) hide show
  1. package/README.md +13 -1
  2. package/dist/chunks/app-navigation-C_mbz7jx.cjs +2 -0
  3. package/dist/chunks/app-navigation-C_mbz7jx.cjs.map +1 -0
  4. package/dist/chunks/{app-navigation-CATITRM7.js → app-navigation-uwbNEw9P.js} +66 -67
  5. package/dist/chunks/app-navigation-uwbNEw9P.js.map +1 -0
  6. package/dist/chunks/approval-instance-list-page-Mo6wpDPb.cjs +2 -0
  7. package/dist/chunks/approval-instance-list-page-Mo6wpDPb.cjs.map +1 -0
  8. package/dist/chunks/approval-instance-list-page-nmzMrj0b.js +281 -0
  9. package/dist/chunks/approval-instance-list-page-nmzMrj0b.js.map +1 -0
  10. package/dist/chunks/auth-provider-BV8Iiwfb.cjs +2 -0
  11. package/dist/chunks/auth-provider-BV8Iiwfb.cjs.map +1 -0
  12. package/dist/chunks/auth-provider-Bnox5gsx.js +98 -0
  13. package/dist/chunks/auth-provider-Bnox5gsx.js.map +1 -0
  14. package/dist/chunks/builder-DPhAH381.cjs +3 -0
  15. package/dist/chunks/builder-DPhAH381.cjs.map +1 -0
  16. package/dist/chunks/{FormBuilderView-CvChAvgD.js → builder-DqZskyXC.js} +334 -331
  17. package/dist/chunks/builder-DqZskyXC.js.map +1 -0
  18. package/dist/chunks/categories-DEijUOnw.cjs +2 -0
  19. package/dist/chunks/categories-DEijUOnw.cjs.map +1 -0
  20. package/dist/chunks/categories-DTEl182t.js +386 -0
  21. package/dist/chunks/categories-DTEl182t.js.map +1 -0
  22. package/dist/chunks/dashboard-page-DCmuB0Rw.cjs +2 -0
  23. package/dist/chunks/dashboard-page-DCmuB0Rw.cjs.map +1 -0
  24. package/dist/chunks/dashboard-page-Dx5PeEeN.js +117 -0
  25. package/dist/chunks/dashboard-page-Dx5PeEeN.js.map +1 -0
  26. package/dist/chunks/delegations-C-ZrwzvU.js +572 -0
  27. package/dist/chunks/delegations-C-ZrwzvU.js.map +1 -0
  28. package/dist/chunks/delegations-C5PzZ5Kn.js +645 -0
  29. package/dist/chunks/delegations-C5PzZ5Kn.js.map +1 -0
  30. package/dist/chunks/delegations-DOGDvybX.cjs +2 -0
  31. package/dist/chunks/delegations-DOGDvybX.cjs.map +1 -0
  32. package/dist/chunks/delegations-DkDBWOQ7.cjs +2 -0
  33. package/dist/chunks/delegations-DkDBWOQ7.cjs.map +1 -0
  34. package/dist/chunks/detail-B2gcOPkd.cjs +2 -0
  35. package/dist/chunks/detail-B2gcOPkd.cjs.map +1 -0
  36. package/dist/chunks/{InstanceDetailView-C-A-LOCG.js → detail-CfFyU5zC.js} +670 -667
  37. package/dist/chunks/detail-CfFyU5zC.js.map +1 -0
  38. package/dist/chunks/{format-date-time-BQyH5U8z.cjs → format-date-time-isOa3e9q.cjs} +2 -2
  39. package/dist/chunks/{format-date-time-BQyH5U8z.cjs.map → format-date-time-isOa3e9q.cjs.map} +1 -1
  40. package/dist/chunks/{LoginView-a1iu3cfc.js → login-C20yVxbc.js} +9 -9
  41. package/dist/chunks/login-C20yVxbc.js.map +1 -0
  42. package/dist/chunks/login-CQ9MfwcC.cjs +2 -0
  43. package/dist/chunks/login-CQ9MfwcC.cjs.map +1 -0
  44. package/dist/chunks/notifications-CPQ-nVar.cjs +2 -0
  45. package/dist/chunks/notifications-CPQ-nVar.cjs.map +1 -0
  46. package/dist/chunks/notifications-DweexUVy.js +197 -0
  47. package/dist/chunks/notifications-DweexUVy.js.map +1 -0
  48. package/dist/chunks/orgs-DgZ0DQ3-.cjs +2 -0
  49. package/dist/chunks/orgs-DgZ0DQ3-.cjs.map +1 -0
  50. package/dist/chunks/{AdminOrgsView-DZaVAbaQ.js → orgs-xrdhb3hS.js} +669 -666
  51. package/dist/chunks/orgs-xrdhb3hS.js.map +1 -0
  52. package/dist/chunks/templates-PK_VYvcy.js +383 -0
  53. package/dist/chunks/templates-PK_VYvcy.js.map +1 -0
  54. package/dist/chunks/templates-x1OJZmsG.cjs +2 -0
  55. package/dist/chunks/templates-x1OJZmsG.cjs.map +1 -0
  56. package/dist/chunks/users-CY4-NK3j.js +218 -0
  57. package/dist/chunks/users-CY4-NK3j.js.map +1 -0
  58. package/dist/chunks/users-DHnu_056.cjs +2 -0
  59. package/dist/chunks/users-DHnu_056.cjs.map +1 -0
  60. package/dist/components/app-navigation.d.ts +17 -10
  61. package/dist/index.cjs +1 -1
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.js +12 -13
  64. package/dist/index.js.map +1 -1
  65. package/dist/lib/notification-drawer-provider.d.ts +1 -1
  66. package/dist/lib/notification-unread-provider.d.ts +1 -1
  67. package/dist/lib/providers.d.ts +1 -1
  68. package/dist/next/BPMNextProviders.d.ts +6 -0
  69. package/dist/next/index.cjs +2 -0
  70. package/dist/next/index.cjs.map +1 -0
  71. package/dist/next/index.d.ts +1 -0
  72. package/dist/next/index.js +33 -0
  73. package/dist/next/index.js.map +1 -0
  74. package/dist/pages/admin/delegations/index.cjs +1 -1
  75. package/dist/pages/admin/delegations/index.cjs.map +1 -1
  76. package/dist/pages/admin/delegations/index.js +1 -1
  77. package/dist/pages/admin/delegations/index.js.map +1 -1
  78. package/dist/pages/admin/orgs/index.cjs +1 -1
  79. package/dist/pages/admin/orgs/index.cjs.map +1 -1
  80. package/dist/pages/admin/orgs/index.js +1 -1
  81. package/dist/pages/admin/orgs/index.js.map +1 -1
  82. package/dist/pages/admin/users/index.cjs +1 -1
  83. package/dist/pages/admin/users/index.cjs.map +1 -1
  84. package/dist/pages/admin/users/index.js +1 -1
  85. package/dist/pages/admin/users/index.js.map +1 -1
  86. package/dist/pages/cc/index.cjs +1 -1
  87. package/dist/pages/cc/index.cjs.map +1 -1
  88. package/dist/pages/cc/index.js +1 -1
  89. package/dist/pages/cc/index.js.map +1 -1
  90. package/dist/pages/dashboard/index.cjs +1 -1
  91. package/dist/pages/dashboard/index.cjs.map +1 -1
  92. package/dist/pages/dashboard/index.js +1 -1
  93. package/dist/pages/dashboard/index.js.map +1 -1
  94. package/dist/pages/delegations/index.cjs +1 -1
  95. package/dist/pages/delegations/index.cjs.map +1 -1
  96. package/dist/pages/delegations/index.js +1 -1
  97. package/dist/pages/delegations/index.js.map +1 -1
  98. package/dist/pages/forms/builder/index.cjs +1 -1
  99. package/dist/pages/forms/builder/index.cjs.map +1 -1
  100. package/dist/pages/forms/builder/index.d.ts +5 -7
  101. package/dist/pages/forms/builder/index.js +1 -1
  102. package/dist/pages/forms/builder/index.js.map +1 -1
  103. package/dist/pages/forms/index.cjs +1 -1
  104. package/dist/pages/forms/index.cjs.map +1 -1
  105. package/dist/pages/forms/index.js +1 -1
  106. package/dist/pages/forms/index.js.map +1 -1
  107. package/dist/pages/inbox/index.cjs +1 -1
  108. package/dist/pages/inbox/index.cjs.map +1 -1
  109. package/dist/pages/inbox/index.js +1 -1
  110. package/dist/pages/inbox/index.js.map +1 -1
  111. package/dist/pages/instances/detail/index.cjs +1 -1
  112. package/dist/pages/instances/detail/index.cjs.map +1 -1
  113. package/dist/pages/instances/detail/index.d.ts +1 -1
  114. package/dist/pages/instances/detail/index.js +1 -1
  115. package/dist/pages/instances/detail/index.js.map +1 -1
  116. package/dist/pages/instances/new/index.cjs +1 -1
  117. package/dist/pages/instances/new/index.cjs.map +1 -1
  118. package/dist/pages/instances/new/index.d.ts +5 -1
  119. package/dist/pages/instances/new/index.js +4 -3
  120. package/dist/pages/instances/new/index.js.map +1 -1
  121. package/dist/pages/login/index.cjs +1 -1
  122. package/dist/pages/login/index.cjs.map +1 -1
  123. package/dist/pages/login/index.d.ts +5 -1
  124. package/dist/pages/login/index.js +4 -3
  125. package/dist/pages/login/index.js.map +1 -1
  126. package/dist/pages/root/index.cjs +1 -1
  127. package/dist/pages/root/index.cjs.map +1 -1
  128. package/dist/pages/root/index.d.ts +7 -5
  129. package/dist/pages/root/index.js +5 -6
  130. package/dist/pages/root/index.js.map +1 -1
  131. package/dist/pages/search/index.cjs +1 -1
  132. package/dist/pages/search/index.cjs.map +1 -1
  133. package/dist/pages/search/index.js +1 -1
  134. package/dist/pages/search/index.js.map +1 -1
  135. package/dist/pages/sent/index.cjs +1 -1
  136. package/dist/pages/sent/index.cjs.map +1 -1
  137. package/dist/pages/sent/index.js +1 -1
  138. package/dist/pages/sent/index.js.map +1 -1
  139. package/dist/pages/settings/notifications/index.cjs +1 -1
  140. package/dist/pages/settings/notifications/index.cjs.map +1 -1
  141. package/dist/pages/settings/notifications/index.js +1 -1
  142. package/dist/pages/settings/notifications/index.js.map +1 -1
  143. package/dist/pages/templates/categories/index.cjs +1 -1
  144. package/dist/pages/templates/categories/index.cjs.map +1 -1
  145. package/dist/pages/templates/categories/index.js +1 -1
  146. package/dist/pages/templates/categories/index.js.map +1 -1
  147. package/dist/pages/templates/designer/index.cjs +1 -1
  148. package/dist/pages/templates/designer/index.cjs.map +1 -1
  149. package/dist/pages/templates/designer/index.d.ts +2 -4
  150. package/dist/pages/templates/designer/index.js +1 -1
  151. package/dist/pages/templates/designer/index.js.map +1 -1
  152. package/dist/pages/templates/index.cjs +1 -1
  153. package/dist/pages/templates/index.cjs.map +1 -1
  154. package/dist/pages/templates/index.js +1 -1
  155. package/dist/pages/templates/index.js.map +1 -1
  156. package/dist/pages/templates/versions/index.cjs +1 -1
  157. package/dist/pages/templates/versions/index.cjs.map +1 -1
  158. package/dist/pages/templates/versions/index.d.ts +2 -4
  159. package/dist/pages/templates/versions/index.js +1 -1
  160. package/dist/pages/templates/versions/index.js.map +1 -1
  161. package/dist/views/admin/delegations/index.cjs +1 -1
  162. package/dist/views/admin/delegations/index.js +1 -1
  163. package/dist/views/admin/index.cjs +1 -0
  164. package/dist/views/admin/index.d.ts +3 -0
  165. package/dist/views/admin/index.js +4 -0
  166. package/dist/views/admin/orgs/index.cjs +1 -1
  167. package/dist/views/admin/orgs/index.js +1 -1
  168. package/dist/views/admin/users/index.cjs +1 -1
  169. package/dist/views/admin/users/index.js +1 -1
  170. package/dist/views/cc/index.cjs +2 -1
  171. package/dist/views/cc/index.cjs.map +1 -0
  172. package/dist/views/cc/index.js +19 -2
  173. package/dist/views/cc/index.js.map +1 -0
  174. package/dist/views/dashboard/index.cjs +2 -1
  175. package/dist/views/dashboard/index.cjs.map +1 -0
  176. package/dist/views/dashboard/index.js +11 -2
  177. package/dist/views/dashboard/index.js.map +1 -0
  178. package/dist/views/delegations/index.cjs +1 -1
  179. package/dist/views/delegations/index.js +1 -1
  180. package/dist/views/forms/builder/index.cjs +1 -1
  181. package/dist/views/forms/builder/index.js +1 -1
  182. package/dist/views/forms/index.cjs +2 -1
  183. package/dist/views/forms/index.cjs.map +1 -0
  184. package/dist/views/forms/index.d.ts +1 -0
  185. package/dist/views/forms/index.js +189 -2
  186. package/dist/views/forms/index.js.map +1 -0
  187. package/dist/views/inbox/index.cjs +2 -1
  188. package/dist/views/inbox/index.cjs.map +1 -0
  189. package/dist/views/inbox/index.js +293 -2
  190. package/dist/views/inbox/index.js.map +1 -0
  191. package/dist/views/instances/detail/index.cjs +1 -1
  192. package/dist/views/instances/detail/index.js +1 -1
  193. package/dist/views/instances/index.cjs +1 -0
  194. package/dist/views/instances/index.d.ts +1 -0
  195. package/dist/views/instances/index.js +2 -0
  196. package/dist/views/instances/new/InstanceNewView.d.ts +3 -3
  197. package/dist/views/instances/new/index.cjs +2 -1
  198. package/dist/views/instances/new/index.cjs.map +1 -0
  199. package/dist/views/instances/new/index.js +195 -2
  200. package/dist/views/instances/new/index.js.map +1 -0
  201. package/dist/views/login/index.cjs +1 -1
  202. package/dist/views/login/index.js +1 -1
  203. package/dist/views/search/index.cjs +2 -1
  204. package/dist/views/search/index.cjs.map +1 -0
  205. package/dist/views/search/index.js +19 -2
  206. package/dist/views/search/index.js.map +1 -0
  207. package/dist/views/sent/index.cjs +2 -1
  208. package/dist/views/sent/index.cjs.map +1 -0
  209. package/dist/views/sent/index.js +19 -2
  210. package/dist/views/sent/index.js.map +1 -0
  211. package/dist/views/settings/index.cjs +1 -0
  212. package/dist/views/settings/index.d.ts +1 -0
  213. package/dist/views/settings/index.js +2 -0
  214. package/dist/views/settings/notifications/index.cjs +1 -1
  215. package/dist/views/settings/notifications/index.js +1 -1
  216. package/dist/views/templates/categories/index.cjs +1 -1
  217. package/dist/views/templates/categories/index.js +1 -1
  218. package/dist/views/templates/designer/index.cjs +51 -1
  219. package/dist/views/templates/designer/index.cjs.map +1 -0
  220. package/dist/views/templates/designer/index.js +2275 -2
  221. package/dist/views/templates/designer/index.js.map +1 -0
  222. package/dist/views/templates/index.cjs +1 -1
  223. package/dist/views/templates/index.d.ts +2 -0
  224. package/dist/views/templates/index.js +4 -2
  225. package/dist/views/templates/versions/index.cjs +2 -1
  226. package/dist/views/templates/versions/index.cjs.map +1 -0
  227. package/dist/views/templates/versions/index.js +113 -2
  228. package/dist/views/templates/versions/index.js.map +1 -0
  229. package/dist/views/workflow/index.cjs +1 -0
  230. package/dist/views/workflow/index.d.ts +4 -0
  231. package/dist/views/workflow/index.js +5 -0
  232. package/package.json +28 -3
  233. package/dist/chunks/AdminDelegationsView-CqNmlVWx.cjs +0 -2
  234. package/dist/chunks/AdminDelegationsView-CqNmlVWx.cjs.map +0 -1
  235. package/dist/chunks/AdminDelegationsView-DydMZ9ED.js +0 -642
  236. package/dist/chunks/AdminDelegationsView-DydMZ9ED.js.map +0 -1
  237. package/dist/chunks/AdminOrgsView-DZaVAbaQ.js.map +0 -1
  238. package/dist/chunks/AdminOrgsView-bSsIyMvk.cjs +0 -2
  239. package/dist/chunks/AdminOrgsView-bSsIyMvk.cjs.map +0 -1
  240. package/dist/chunks/AdminUsersView-C0oO05Br.js +0 -215
  241. package/dist/chunks/AdminUsersView-C0oO05Br.js.map +0 -1
  242. package/dist/chunks/AdminUsersView-DlArLlIr.cjs +0 -2
  243. package/dist/chunks/AdminUsersView-DlArLlIr.cjs.map +0 -1
  244. package/dist/chunks/CcView-BsVsya5F.cjs +0 -2
  245. package/dist/chunks/CcView-BsVsya5F.cjs.map +0 -1
  246. package/dist/chunks/CcView-Bv0GzA5C.js +0 -19
  247. package/dist/chunks/CcView-Bv0GzA5C.js.map +0 -1
  248. package/dist/chunks/DashboardView-Dk1ZQmmk.js +0 -11
  249. package/dist/chunks/DashboardView-Dk1ZQmmk.js.map +0 -1
  250. package/dist/chunks/DashboardView-_0zh-rxT.cjs +0 -2
  251. package/dist/chunks/DashboardView-_0zh-rxT.cjs.map +0 -1
  252. package/dist/chunks/DelegationsView-DQUqOUV5.js +0 -569
  253. package/dist/chunks/DelegationsView-DQUqOUV5.js.map +0 -1
  254. package/dist/chunks/DelegationsView-pKeFV2LN.cjs +0 -2
  255. package/dist/chunks/DelegationsView-pKeFV2LN.cjs.map +0 -1
  256. package/dist/chunks/FormBuilderView-BKtyW55e.cjs +0 -3
  257. package/dist/chunks/FormBuilderView-BKtyW55e.cjs.map +0 -1
  258. package/dist/chunks/FormBuilderView-CvChAvgD.js.map +0 -1
  259. package/dist/chunks/FormsView-DYEuik8W.js +0 -185
  260. package/dist/chunks/FormsView-DYEuik8W.js.map +0 -1
  261. package/dist/chunks/FormsView-RjJEkIfZ.cjs +0 -2
  262. package/dist/chunks/FormsView-RjJEkIfZ.cjs.map +0 -1
  263. package/dist/chunks/InboxView-DDWwmWhA.cjs +0 -2
  264. package/dist/chunks/InboxView-DDWwmWhA.cjs.map +0 -1
  265. package/dist/chunks/InboxView-YSoyrYLk.js +0 -291
  266. package/dist/chunks/InboxView-YSoyrYLk.js.map +0 -1
  267. package/dist/chunks/InstanceDetailView-C-A-LOCG.js.map +0 -1
  268. package/dist/chunks/InstanceDetailView-l_kNDCz2.cjs +0 -2
  269. package/dist/chunks/InstanceDetailView-l_kNDCz2.cjs.map +0 -1
  270. package/dist/chunks/InstanceNewView-B5hz-FWd.js +0 -190
  271. package/dist/chunks/InstanceNewView-B5hz-FWd.js.map +0 -1
  272. package/dist/chunks/InstanceNewView-CdCsxQIu.cjs +0 -2
  273. package/dist/chunks/InstanceNewView-CdCsxQIu.cjs.map +0 -1
  274. package/dist/chunks/LoginView-BED07v-7.cjs +0 -2
  275. package/dist/chunks/LoginView-BED07v-7.cjs.map +0 -1
  276. package/dist/chunks/LoginView-a1iu3cfc.js.map +0 -1
  277. package/dist/chunks/RootClientView-rXJt4TDd.cjs +0 -2
  278. package/dist/chunks/RootClientView-rXJt4TDd.cjs.map +0 -1
  279. package/dist/chunks/RootClientView-wAkXUEZw.js +0 -34
  280. package/dist/chunks/RootClientView-wAkXUEZw.js.map +0 -1
  281. package/dist/chunks/SearchView-CgXPssgE.cjs +0 -2
  282. package/dist/chunks/SearchView-CgXPssgE.cjs.map +0 -1
  283. package/dist/chunks/SearchView-WXMbZwRw.js +0 -19
  284. package/dist/chunks/SearchView-WXMbZwRw.js.map +0 -1
  285. package/dist/chunks/SentView-BTDoFBrG.cjs +0 -2
  286. package/dist/chunks/SentView-BTDoFBrG.cjs.map +0 -1
  287. package/dist/chunks/SentView-CdOL92Rq.js +0 -19
  288. package/dist/chunks/SentView-CdOL92Rq.js.map +0 -1
  289. package/dist/chunks/SettingsNotificationsView-B6F6fa7U.js +0 -194
  290. package/dist/chunks/SettingsNotificationsView-B6F6fa7U.js.map +0 -1
  291. package/dist/chunks/SettingsNotificationsView-Bnz0CmoJ.cjs +0 -2
  292. package/dist/chunks/SettingsNotificationsView-Bnz0CmoJ.cjs.map +0 -1
  293. package/dist/chunks/TemplateCategoriesView-CgZciaSd.js +0 -382
  294. package/dist/chunks/TemplateCategoriesView-CgZciaSd.js.map +0 -1
  295. package/dist/chunks/TemplateCategoriesView-U0stGUBc.cjs +0 -2
  296. package/dist/chunks/TemplateCategoriesView-U0stGUBc.cjs.map +0 -1
  297. package/dist/chunks/TemplateDesignerView-A38DyYD4.cjs +0 -51
  298. package/dist/chunks/TemplateDesignerView-A38DyYD4.cjs.map +0 -1
  299. package/dist/chunks/TemplateDesignerView-Dffx-VZ-.js +0 -2272
  300. package/dist/chunks/TemplateDesignerView-Dffx-VZ-.js.map +0 -1
  301. package/dist/chunks/TemplateVersionsView-6sVQbBem.js +0 -110
  302. package/dist/chunks/TemplateVersionsView-6sVQbBem.js.map +0 -1
  303. package/dist/chunks/TemplateVersionsView-CMqw3ieU.cjs +0 -2
  304. package/dist/chunks/TemplateVersionsView-CMqw3ieU.cjs.map +0 -1
  305. package/dist/chunks/TemplatesView-BLj9f-XI.js +0 -380
  306. package/dist/chunks/TemplatesView-BLj9f-XI.js.map +0 -1
  307. package/dist/chunks/TemplatesView-DIOQTUUl.cjs +0 -2
  308. package/dist/chunks/TemplatesView-DIOQTUUl.cjs.map +0 -1
  309. package/dist/chunks/app-navigation-CATITRM7.js.map +0 -1
  310. package/dist/chunks/app-navigation-DAC5gFbG.cjs +0 -2
  311. package/dist/chunks/app-navigation-DAC5gFbG.cjs.map +0 -1
  312. package/dist/chunks/approval-instance-list-page-B6vAGvOb.js +0 -278
  313. package/dist/chunks/approval-instance-list-page-B6vAGvOb.js.map +0 -1
  314. package/dist/chunks/approval-instance-list-page-DIAmwhvl.cjs +0 -2
  315. package/dist/chunks/approval-instance-list-page-DIAmwhvl.cjs.map +0 -1
  316. package/dist/chunks/auth-provider-D2P-qWmY.cjs +0 -2
  317. package/dist/chunks/auth-provider-D2P-qWmY.cjs.map +0 -1
  318. package/dist/chunks/auth-provider-TTO9eNZV.js +0 -83
  319. package/dist/chunks/auth-provider-TTO9eNZV.js.map +0 -1
  320. package/dist/chunks/dashboard-page-BsW8t104.js +0 -115
  321. package/dist/chunks/dashboard-page-BsW8t104.js.map +0 -1
  322. package/dist/chunks/dashboard-page-udYhnyMW.cjs +0 -2
  323. package/dist/chunks/dashboard-page-udYhnyMW.cjs.map +0 -1
  324. package/dist/chunks/router-adapter-BdHZXLS3.js +0 -23
  325. package/dist/chunks/router-adapter-BdHZXLS3.js.map +0 -1
  326. package/dist/chunks/router-adapter-BybHrCNP.cjs +0 -2
  327. package/dist/chunks/router-adapter-BybHrCNP.cjs.map +0 -1
  328. package/dist/chunks/templates.module-B5bg_goX.js +0 -8
  329. package/dist/chunks/templates.module-B5bg_goX.js.map +0 -1
  330. package/dist/chunks/templates.module-ClRnQQX4.cjs +0 -2
  331. package/dist/chunks/templates.module-ClRnQQX4.cjs.map +0 -1
  332. package/dist/pages/admin/delegations/AdminDelegationsClientView.cjs +0 -2
  333. package/dist/pages/admin/delegations/AdminDelegationsClientView.cjs.map +0 -1
  334. package/dist/pages/admin/delegations/AdminDelegationsClientView.d.ts +0 -3
  335. package/dist/pages/admin/delegations/AdminDelegationsClientView.js +0 -28
  336. package/dist/pages/admin/delegations/AdminDelegationsClientView.js.map +0 -1
  337. package/dist/pages/admin/orgs/AdminOrgsClientView.cjs +0 -2
  338. package/dist/pages/admin/orgs/AdminOrgsClientView.cjs.map +0 -1
  339. package/dist/pages/admin/orgs/AdminOrgsClientView.d.ts +0 -3
  340. package/dist/pages/admin/orgs/AdminOrgsClientView.js +0 -28
  341. package/dist/pages/admin/orgs/AdminOrgsClientView.js.map +0 -1
  342. package/dist/pages/admin/users/AdminUsersClientView.cjs +0 -2
  343. package/dist/pages/admin/users/AdminUsersClientView.cjs.map +0 -1
  344. package/dist/pages/admin/users/AdminUsersClientView.d.ts +0 -3
  345. package/dist/pages/admin/users/AdminUsersClientView.js +0 -28
  346. package/dist/pages/admin/users/AdminUsersClientView.js.map +0 -1
  347. package/dist/pages/cc/CcClientView.cjs +0 -2
  348. package/dist/pages/cc/CcClientView.cjs.map +0 -1
  349. package/dist/pages/cc/CcClientView.d.ts +0 -7
  350. package/dist/pages/cc/CcClientView.js +0 -28
  351. package/dist/pages/cc/CcClientView.js.map +0 -1
  352. package/dist/pages/dashboard/DashboardClientView.cjs +0 -2
  353. package/dist/pages/dashboard/DashboardClientView.cjs.map +0 -1
  354. package/dist/pages/dashboard/DashboardClientView.d.ts +0 -9
  355. package/dist/pages/dashboard/DashboardClientView.js +0 -28
  356. package/dist/pages/dashboard/DashboardClientView.js.map +0 -1
  357. package/dist/pages/delegations/DelegationsClientView.cjs +0 -2
  358. package/dist/pages/delegations/DelegationsClientView.cjs.map +0 -1
  359. package/dist/pages/delegations/DelegationsClientView.d.ts +0 -3
  360. package/dist/pages/delegations/DelegationsClientView.js +0 -28
  361. package/dist/pages/delegations/DelegationsClientView.js.map +0 -1
  362. package/dist/pages/forms/FormsClientView.cjs +0 -2
  363. package/dist/pages/forms/FormsClientView.cjs.map +0 -1
  364. package/dist/pages/forms/FormsClientView.d.ts +0 -10
  365. package/dist/pages/forms/FormsClientView.js +0 -28
  366. package/dist/pages/forms/FormsClientView.js.map +0 -1
  367. package/dist/pages/forms/builder/FormBuilderClientView.cjs +0 -2
  368. package/dist/pages/forms/builder/FormBuilderClientView.cjs.map +0 -1
  369. package/dist/pages/forms/builder/FormBuilderClientView.d.ts +0 -11
  370. package/dist/pages/forms/builder/FormBuilderClientView.js +0 -28
  371. package/dist/pages/forms/builder/FormBuilderClientView.js.map +0 -1
  372. package/dist/pages/inbox/InboxClientView.cjs +0 -2
  373. package/dist/pages/inbox/InboxClientView.cjs.map +0 -1
  374. package/dist/pages/inbox/InboxClientView.d.ts +0 -9
  375. package/dist/pages/inbox/InboxClientView.js +0 -28
  376. package/dist/pages/inbox/InboxClientView.js.map +0 -1
  377. package/dist/pages/instances/detail/InstanceDetailClientView.cjs +0 -2
  378. package/dist/pages/instances/detail/InstanceDetailClientView.cjs.map +0 -1
  379. package/dist/pages/instances/detail/InstanceDetailClientView.d.ts +0 -9
  380. package/dist/pages/instances/detail/InstanceDetailClientView.js +0 -28
  381. package/dist/pages/instances/detail/InstanceDetailClientView.js.map +0 -1
  382. package/dist/pages/instances/new/InstanceNewClientView.cjs +0 -2
  383. package/dist/pages/instances/new/InstanceNewClientView.cjs.map +0 -1
  384. package/dist/pages/instances/new/InstanceNewClientView.d.ts +0 -8
  385. package/dist/pages/instances/new/InstanceNewClientView.js +0 -28
  386. package/dist/pages/instances/new/InstanceNewClientView.js.map +0 -1
  387. package/dist/pages/login/LoginClientView.cjs +0 -2
  388. package/dist/pages/login/LoginClientView.cjs.map +0 -1
  389. package/dist/pages/login/LoginClientView.d.ts +0 -11
  390. package/dist/pages/login/LoginClientView.js +0 -29
  391. package/dist/pages/login/LoginClientView.js.map +0 -1
  392. package/dist/pages/root/RootClientView.cjs +0 -1
  393. package/dist/pages/root/RootClientView.d.ts +0 -8
  394. package/dist/pages/root/RootClientView.js +0 -2
  395. package/dist/pages/search/SearchClientView.cjs +0 -2
  396. package/dist/pages/search/SearchClientView.cjs.map +0 -1
  397. package/dist/pages/search/SearchClientView.d.ts +0 -7
  398. package/dist/pages/search/SearchClientView.js +0 -28
  399. package/dist/pages/search/SearchClientView.js.map +0 -1
  400. package/dist/pages/sent/SentClientView.cjs +0 -2
  401. package/dist/pages/sent/SentClientView.cjs.map +0 -1
  402. package/dist/pages/sent/SentClientView.d.ts +0 -7
  403. package/dist/pages/sent/SentClientView.js +0 -28
  404. package/dist/pages/sent/SentClientView.js.map +0 -1
  405. package/dist/pages/settings/notifications/SettingsNotificationsClientView.cjs +0 -2
  406. package/dist/pages/settings/notifications/SettingsNotificationsClientView.cjs.map +0 -1
  407. package/dist/pages/settings/notifications/SettingsNotificationsClientView.d.ts +0 -3
  408. package/dist/pages/settings/notifications/SettingsNotificationsClientView.js +0 -28
  409. package/dist/pages/settings/notifications/SettingsNotificationsClientView.js.map +0 -1
  410. package/dist/pages/templates/TemplatesClientView.cjs +0 -2
  411. package/dist/pages/templates/TemplatesClientView.cjs.map +0 -1
  412. package/dist/pages/templates/TemplatesClientView.d.ts +0 -3
  413. package/dist/pages/templates/TemplatesClientView.js +0 -28
  414. package/dist/pages/templates/TemplatesClientView.js.map +0 -1
  415. package/dist/pages/templates/categories/TemplateCategoriesClientView.cjs +0 -2
  416. package/dist/pages/templates/categories/TemplateCategoriesClientView.cjs.map +0 -1
  417. package/dist/pages/templates/categories/TemplateCategoriesClientView.d.ts +0 -3
  418. package/dist/pages/templates/categories/TemplateCategoriesClientView.js +0 -28
  419. package/dist/pages/templates/categories/TemplateCategoriesClientView.js.map +0 -1
  420. package/dist/pages/templates/designer/TemplateDesignerClientView.cjs +0 -2
  421. package/dist/pages/templates/designer/TemplateDesignerClientView.cjs.map +0 -1
  422. package/dist/pages/templates/designer/TemplateDesignerClientView.d.ts +0 -3
  423. package/dist/pages/templates/designer/TemplateDesignerClientView.js +0 -28
  424. package/dist/pages/templates/designer/TemplateDesignerClientView.js.map +0 -1
  425. package/dist/pages/templates/versions/TemplateVersionsClientView.cjs +0 -2
  426. package/dist/pages/templates/versions/TemplateVersionsClientView.cjs.map +0 -1
  427. package/dist/pages/templates/versions/TemplateVersionsClientView.d.ts +0 -3
  428. package/dist/pages/templates/versions/TemplateVersionsClientView.js +0 -28
  429. package/dist/pages/templates/versions/TemplateVersionsClientView.js.map +0 -1
  430. /package/dist/{templates.css → categories.css} +0 -0
  431. /package/dist/{AdminDelegationsView.css → delegations.css} +0 -0
  432. /package/dist/{DelegationsView.css → delegations2.css} +0 -0
  433. /package/dist/{InstanceDetailView.css → detail.css} +0 -0
  434. /package/dist/{LoginView.css → login.css} +0 -0
  435. /package/dist/{SettingsNotificationsView.css → notifications.css} +0 -0
  436. /package/dist/{AdminOrgsView.css → orgs.css} +0 -0
  437. /package/dist/{AdminUsersView.css → users.css} +0 -0
@@ -0,0 +1,572 @@
1
+ "use client";
2
+ import { n as e } from "./auth-provider-Bnox5gsx.js";
3
+ import { t } from "./format-date-time-CB-LxzqT.js";
4
+ import { t as n } from "./app-navigation-uwbNEw9P.js";
5
+ import { t as r } from "./bpm-form-field-Cao0rMol.js";
6
+ import { useCallback as i, useEffect as a, useMemo as o, useState as s } from "react";
7
+ import { AutoComplete as c, Badge as l, Button as ee, DateTimePicker as u, Filter as te, FilterArea as ne, FilterLine as re, FormField as ie, Modal as ae, PageHeader as oe, Section as se, SectionGroup as ce, Select as d, Tab as le, TabItem as ue, Table as de, Tooltip as f, Typography as p } from "@mezzanine-ui/react";
8
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
+ import { createDelegationRule as fe, listDelegationRulesPage as pe, revokeDelegationRule as me, searchMembers as g } from "@rytass/bpm-core-client/workflow";
10
+ import { PlusIcon as he } from "@mezzanine-ui/icons";
11
+ import ge from "@mezzanine-ui/react/ContentHeader";
12
+ import { FormFieldLayout as _e } from "@mezzanine-ui/core/form";
13
+ import { listApprovalTemplates as ve } from "@rytass/bpm-core-client/template";
14
+ import '../delegations2.css';var _ = {
15
+ delegationFilterArea: "bpm_delegationFilterArea_hAA4C",
16
+ delegationModalFields: "bpm_delegationModalFields_1aOVW",
17
+ memberNameWithTooltip: "bpm_memberNameWithTooltip_6Mojc"
18
+ }, v = _e.HORIZONTAL, ye = [
19
+ 10,
20
+ 20,
21
+ 50
22
+ ], be = [
23
+ {
24
+ key: "ALL",
25
+ label: "全部"
26
+ },
27
+ {
28
+ key: "ACTIVE",
29
+ label: "啟用中"
30
+ },
31
+ {
32
+ key: "REVOKED",
33
+ label: "已撤銷"
34
+ },
35
+ {
36
+ key: "EXPIRED",
37
+ label: "已過期"
38
+ }
39
+ ], y = [
40
+ {
41
+ id: "ALL_SCOPES",
42
+ name: "全部範圍",
43
+ scopeType: null
44
+ },
45
+ {
46
+ id: "ALL",
47
+ name: "全部簽核",
48
+ scopeType: "ALL"
49
+ },
50
+ {
51
+ id: "TEMPLATE_LIST",
52
+ name: "指定模板",
53
+ scopeType: "TEMPLATE_LIST"
54
+ }
55
+ ], b = [{
56
+ id: "ALL",
57
+ name: "全部簽核"
58
+ }, {
59
+ id: "TEMPLATE_LIST",
60
+ name: "指定模板"
61
+ }];
62
+ function x({ activeHref: l = "/delegations" } = {}) {
63
+ let { member: f } = e(), v = f?.memberId ?? null, [x, C] = s(null), [w, E] = s(""), [k, A] = s(null), [j, N] = s(!0), [Me, P] = s(!1), [F, I] = s([]), [Ne, L] = s(!1), [R, z] = s(1), [B, Pe] = s(10), [V, Fe] = s("ALL"), [Ie, Le] = s(0), [H, Re] = s([]), [U, ze] = s(!1), [W, Be] = s(y[0]), [G, Ve] = s([]), [He, Ue] = s(b[0]), [K, q] = s(""), [We, Ge] = s(!1), [Ke, J] = s([]), Y = i(async () => {
64
+ if (!v) {
65
+ N(!1);
66
+ return;
67
+ }
68
+ N(!0), A(null);
69
+ try {
70
+ let [e, t] = await Promise.all([pe({
71
+ includeInactive: !0,
72
+ page: R,
73
+ pageSize: B,
74
+ principalMemberId: v,
75
+ scopeType: W.scopeType,
76
+ status: V === "ALL" ? null : V
77
+ }), g("")]);
78
+ Re(e.rules), Le(e.totalCount), I(t.map(S));
79
+ } catch (e) {
80
+ A(M(e));
81
+ } finally {
82
+ N(!1);
83
+ }
84
+ }, [
85
+ v,
86
+ R,
87
+ B,
88
+ V,
89
+ W
90
+ ]);
91
+ a(() => {
92
+ Y();
93
+ }, [Y]);
94
+ let X = o(() => new Map(F.map((e) => [e.id, e])), [F]), qe = o(() => H.map((e) => ({
95
+ ...e,
96
+ agentEmail: X.get(e.agentMemberId)?.email ?? null,
97
+ agentName: X.get(e.agentMemberId)?.displayName ?? e.agentMemberId,
98
+ key: e.id,
99
+ scopeLabel: De(e)
100
+ })), [X, H]), Z = b.find((e) => e.id === He.id) ?? b[0], Je = o(() => [
101
+ {
102
+ key: "agent",
103
+ render: (e) => /* @__PURE__ */ m(Se, {
104
+ email: e.agentEmail,
105
+ name: e.agentName
106
+ }),
107
+ title: "代理人",
108
+ width: 220
109
+ },
110
+ {
111
+ dataIndex: "scopeLabel",
112
+ key: "scope",
113
+ title: "代理範圍",
114
+ width: 220
115
+ },
116
+ {
117
+ key: "status",
118
+ render: (e) => /* @__PURE__ */ m(ke, { status: e.status }),
119
+ title: "狀態",
120
+ width: 120
121
+ },
122
+ {
123
+ key: "startAt",
124
+ render: (e) => /* @__PURE__ */ m(p, {
125
+ component: "span",
126
+ variant: "body",
127
+ children: t(e.startAt)
128
+ }),
129
+ title: "開始時間",
130
+ width: 220
131
+ },
132
+ {
133
+ key: "endAt",
134
+ render: (e) => /* @__PURE__ */ m(p, {
135
+ component: "span",
136
+ variant: "body",
137
+ children: e.endAt ? t(e.endAt) : "-"
138
+ }),
139
+ title: "結束時間",
140
+ width: 220
141
+ }
142
+ ], []), Ye = i(async (e) => {
143
+ if (v) {
144
+ A(null);
145
+ try {
146
+ await me({
147
+ id: e,
148
+ revokedByMemberId: v
149
+ }), await Y();
150
+ } catch (e) {
151
+ A(M(e));
152
+ }
153
+ }
154
+ }, [v, Y]), Xe = o(() => ({
155
+ render: (e) => e.status === "ACTIVE" ? [{
156
+ name: "撤銷",
157
+ onClick: () => void Ye(e.id)
158
+ }] : [],
159
+ variant: "destructive-secondary",
160
+ width: 88
161
+ }), [Ye]);
162
+ async function Ze(e) {
163
+ P(!0);
164
+ try {
165
+ I((await g(e)).map(S));
166
+ } catch (e) {
167
+ A(M(e));
168
+ } finally {
169
+ P(!1);
170
+ }
171
+ }
172
+ async function Q(e, t = G) {
173
+ Ge(!0);
174
+ try {
175
+ J(T(t, Te((await ve()).map(Ce), e)));
176
+ } catch (e) {
177
+ A(M(e));
178
+ } finally {
179
+ Ge(!1);
180
+ }
181
+ }
182
+ function Qe() {
183
+ C(null), E(""), Ve([]), Ue(b[0]), q(""), J([]), Q("", []), L(!0);
184
+ }
185
+ function $() {
186
+ U || L(!1);
187
+ }
188
+ async function $e() {
189
+ if (v) {
190
+ if (!x) {
191
+ A("請選擇代理人");
192
+ return;
193
+ }
194
+ if (x.id === v) {
195
+ A("代理人不可設定為自己");
196
+ return;
197
+ }
198
+ if (Z.id === "TEMPLATE_LIST" && G.length < 1) {
199
+ A("請選擇至少一個簽核模板");
200
+ return;
201
+ }
202
+ if (je(K, w)) {
203
+ A("結束時間必須晚於起始時間");
204
+ return;
205
+ }
206
+ ze(!0), A(null);
207
+ try {
208
+ await fe({
209
+ agentMemberId: x.id,
210
+ createdByMemberId: v,
211
+ endAt: w || null,
212
+ principalMemberId: v,
213
+ priority: 100,
214
+ requiresConfirmation: !1,
215
+ scopeConditionCel: null,
216
+ scopeTemplateIds: Z.id === "TEMPLATE_LIST" ? G.map((e) => e.id) : [],
217
+ scopeType: Z.id,
218
+ startAt: K || null
219
+ }), L(!1), R === 1 ? await Y() : z(1);
220
+ } catch (e) {
221
+ A(M(e));
222
+ } finally {
223
+ ze(!1);
224
+ }
225
+ }
226
+ }
227
+ return /* @__PURE__ */ h(n, {
228
+ activeHref: l,
229
+ children: [
230
+ /* @__PURE__ */ m(oe, { children: /* @__PURE__ */ m(ge, {
231
+ description: "設定自己的簽核代理,讓指定期間內的新待簽任務自動交由代理人處理。",
232
+ title: "我的代理",
233
+ children: /* @__PURE__ */ m(ee, {
234
+ icon: he,
235
+ iconType: "leading",
236
+ onClick: Qe,
237
+ variant: "base-primary",
238
+ children: "建立代理"
239
+ })
240
+ }) }),
241
+ /* @__PURE__ */ m(ce, { children: /* @__PURE__ */ h(se, {
242
+ filterArea: /* @__PURE__ */ m(ne, {
243
+ className: _.delegationFilterArea,
244
+ size: "sub",
245
+ children: /* @__PURE__ */ m(re, { children: /* @__PURE__ */ m(te, {
246
+ span: 2,
247
+ children: /* @__PURE__ */ m(ie, {
248
+ fullWidth: !0,
249
+ layout: _e.VERTICAL,
250
+ name: "scopeFilterType",
251
+ children: /* @__PURE__ */ m(d, {
252
+ clearable: !1,
253
+ fullWidth: !0,
254
+ onChange: (e) => {
255
+ Be(Ee(e)), z(1);
256
+ },
257
+ options: [...y],
258
+ placeholder: "代理範圍",
259
+ size: "sub",
260
+ value: W
261
+ })
262
+ })
263
+ }) })
264
+ }),
265
+ tab: /* @__PURE__ */ m(le, {
266
+ activeKey: V,
267
+ onChange: (e) => {
268
+ Fe(Ae(e)), z(1);
269
+ },
270
+ children: be.map((e) => /* @__PURE__ */ m(ue, { children: e.label }, e.key))
271
+ }),
272
+ children: [k ? /* @__PURE__ */ m(p, {
273
+ color: "text-error",
274
+ variant: "body",
275
+ children: k
276
+ }) : null, /* @__PURE__ */ m(de, {
277
+ actions: Xe,
278
+ columns: Je,
279
+ dataSource: qe,
280
+ fullWidth: !0,
281
+ loading: j,
282
+ pagination: {
283
+ current: R,
284
+ onChange: (e) => {
285
+ z(e);
286
+ },
287
+ onChangePageSize: (e) => {
288
+ z(1), Pe(e);
289
+ },
290
+ pageSize: B,
291
+ pageSizeLabel: "每頁筆數",
292
+ pageSizeOptions: ye,
293
+ renderResultSummary: (e, t, n) => `顯示 ${e}-${t} 筆,共 ${n} 筆`,
294
+ showPageSizeOptions: !0,
295
+ total: Ie
296
+ }
297
+ })]
298
+ }) }),
299
+ /* @__PURE__ */ m(ae, {
300
+ cancelText: "取消",
301
+ confirmButtonProps: { disabled: !x },
302
+ confirmText: "建立代理",
303
+ loading: U,
304
+ modalType: "standard",
305
+ onCancel: $,
306
+ onClose: $,
307
+ onConfirm: () => void $e(),
308
+ open: Ne,
309
+ showModalFooter: !0,
310
+ showModalHeader: !0,
311
+ size: "regular",
312
+ supportingText: "代理生效後,後續建立的待簽任務會依範圍自動指派給代理人。",
313
+ title: "建立個人代理",
314
+ children: /* @__PURE__ */ h("div", {
315
+ className: _.delegationModalFields,
316
+ children: [
317
+ /* @__PURE__ */ m(xe, {
318
+ label: "代理人",
319
+ loading: Me,
320
+ name: "agentMemberId",
321
+ onChange: C,
322
+ onSearch: Ze,
323
+ options: F,
324
+ value: x
325
+ }),
326
+ /* @__PURE__ */ m(r, {
327
+ label: "代理範圍",
328
+ name: "scopeType",
329
+ required: !0,
330
+ children: /* @__PURE__ */ m(d, {
331
+ clearable: !1,
332
+ fullWidth: !0,
333
+ onChange: (e) => Ue(Oe(e)),
334
+ options: [...b],
335
+ placeholder: "選擇代理範圍",
336
+ value: Z
337
+ })
338
+ }),
339
+ Z.id === "TEMPLATE_LIST" ? /* @__PURE__ */ m(r, {
340
+ label: "簽核模板",
341
+ name: "scopeTemplateIds",
342
+ required: !0,
343
+ children: /* @__PURE__ */ m(c, {
344
+ asyncData: !0,
345
+ disabledOptionsFilter: !0,
346
+ emptyText: "沒有符合的模板",
347
+ inputProps: {
348
+ autoCapitalize: "none",
349
+ autoCorrect: "off",
350
+ name: "scopeTemplateIds",
351
+ spellCheck: !1
352
+ },
353
+ loading: We,
354
+ loadingText: "搜尋模板中...",
355
+ mode: "multiple",
356
+ onChange: (e) => {
357
+ let t = we(e);
358
+ Ve(t), J((e) => T(t, e));
359
+ },
360
+ onSearch: Q,
361
+ onVisibilityChange: (e) => {
362
+ e && Q("");
363
+ },
364
+ options: [...Ke],
365
+ overflowStrategy: "wrap",
366
+ placeholder: "搜尋並選取簽核模板",
367
+ searchDebounceTime: 300,
368
+ value: [...G]
369
+ })
370
+ }) : null,
371
+ /* @__PURE__ */ m(r, {
372
+ label: "起始時間",
373
+ name: "startAt",
374
+ children: /* @__PURE__ */ m(u, {
375
+ formatDate: "YYYY-MM-DD",
376
+ formatTime: "HH:mm",
377
+ fullWidth: !0,
378
+ hideSecond: !0,
379
+ onChange: (e) => q(O(e)),
380
+ placeholderLeft: "留空立即生效",
381
+ placeholderRight: "選擇時間",
382
+ value: D(K)
383
+ })
384
+ }),
385
+ /* @__PURE__ */ m(r, {
386
+ label: "結束時間",
387
+ name: "endAt",
388
+ children: /* @__PURE__ */ m(u, {
389
+ formatDate: "YYYY-MM-DD",
390
+ formatTime: "HH:mm",
391
+ fullWidth: !0,
392
+ hideSecond: !0,
393
+ onChange: (e) => E(O(e)),
394
+ placeholderLeft: "可留空",
395
+ placeholderRight: "選擇時間",
396
+ value: D(w)
397
+ })
398
+ })
399
+ ]
400
+ })
401
+ })
402
+ ]
403
+ });
404
+ }
405
+ function xe({ label: e, loading: t, name: n, onChange: i, onSearch: a, options: o, value: s }) {
406
+ return /* @__PURE__ */ m(r, {
407
+ label: e,
408
+ layout: v,
409
+ name: n,
410
+ required: !0,
411
+ children: /* @__PURE__ */ m(c, {
412
+ asyncData: !0,
413
+ disabledOptionsFilter: !0,
414
+ emptyText: "沒有符合的成員",
415
+ inputProps: {
416
+ autoCapitalize: "none",
417
+ autoCorrect: "off",
418
+ name: n,
419
+ spellCheck: !1
420
+ },
421
+ loading: t,
422
+ loadingText: "搜尋成員中...",
423
+ mode: "single",
424
+ onChange: (e) => i(C(e)),
425
+ onSearch: a,
426
+ onSearchTextChange: (e) => i(w(e, o)),
427
+ onVisibilityChange: (e) => {
428
+ e && a("");
429
+ },
430
+ options: [...o],
431
+ placeholder: "搜尋姓名或信箱",
432
+ searchDebounceTime: 300,
433
+ value: s
434
+ })
435
+ });
436
+ }
437
+ function Se({ email: e, name: t }) {
438
+ return e ? /* @__PURE__ */ m(f, {
439
+ title: e,
440
+ children: ({ onMouseEnter: e, onMouseLeave: n, ref: r }) => /* @__PURE__ */ m("span", {
441
+ className: _.memberNameWithTooltip,
442
+ onMouseEnter: e,
443
+ onMouseLeave: n,
444
+ ref: r,
445
+ children: t
446
+ })
447
+ }) : /* @__PURE__ */ m("span", { children: t });
448
+ }
449
+ function S(e) {
450
+ return {
451
+ displayName: e.name,
452
+ email: e.email,
453
+ id: e.memberId,
454
+ name: `${e.name} (${e.email})`
455
+ };
456
+ }
457
+ function C(e) {
458
+ if (!N(e)) return null;
459
+ let t = e.displayName, n = e.email, r = e.id, i = e.name;
460
+ return typeof r == "string" && typeof i == "string" ? {
461
+ displayName: typeof t == "string" ? t : i,
462
+ email: typeof n == "string" ? n : null,
463
+ id: r,
464
+ name: i
465
+ } : null;
466
+ }
467
+ function w(e, t) {
468
+ let n = e.trim().toLocaleLowerCase();
469
+ if (!n) return null;
470
+ let r = t.filter((e) => [
471
+ e.id,
472
+ e.name,
473
+ e.email ?? ""
474
+ ].some((e) => e.toLocaleLowerCase().includes(n)));
475
+ return r.length === 1 ? r[0] ?? null : null;
476
+ }
477
+ function Ce(e) {
478
+ return {
479
+ id: e.id,
480
+ name: e.name
481
+ };
482
+ }
483
+ function we(e) {
484
+ return e.flatMap((e) => {
485
+ if (!N(e)) return [];
486
+ let t = e.id, n = e.name;
487
+ return typeof t == "string" && typeof n == "string" ? [{
488
+ id: t,
489
+ name: n
490
+ }] : [];
491
+ });
492
+ }
493
+ function Te(e, t) {
494
+ let n = t.trim().toLocaleLowerCase();
495
+ return n ? e.filter((e) => [e.id, e.name].some((e) => e.toLocaleLowerCase().includes(n))) : e;
496
+ }
497
+ function T(e, t) {
498
+ return [...e, ...t].reduce((e, t) => e.some((e) => e.id === t.id) ? e : [...e, t], []);
499
+ }
500
+ function Ee(e) {
501
+ if (!N(e)) return y[0];
502
+ let t = e.id;
503
+ return y.find((e) => e.id === t) ?? y[0];
504
+ }
505
+ function De(e) {
506
+ return e.scopeType === "ALL" ? "全部簽核" : e.scopeType === "TEMPLATE_LIST" ? `指定模板:${e.scopeTemplateIds.length}` : e.scopeConditionCel ? `條件:${e.scopeConditionCel}` : "條件式";
507
+ }
508
+ function Oe(e) {
509
+ return !N(e) || !E(e.id) ? b[0] : b.find((t) => t.id === e.id) ?? b[0];
510
+ }
511
+ function E(e) {
512
+ return e === "ALL" || e === "TEMPLATE_LIST";
513
+ }
514
+ function ke({ status: e }) {
515
+ return e === "ACTIVE" ? /* @__PURE__ */ m(l, {
516
+ size: "sub",
517
+ text: "啟用中",
518
+ variant: "dot-success"
519
+ }) : e === "REVOKED" ? /* @__PURE__ */ m(l, {
520
+ size: "sub",
521
+ text: "已撤銷",
522
+ variant: "dot-inactive"
523
+ }) : e === "EXPIRED" ? /* @__PURE__ */ m(l, {
524
+ size: "sub",
525
+ text: "已過期",
526
+ variant: "dot-warning"
527
+ }) : /* @__PURE__ */ m(l, {
528
+ size: "sub",
529
+ text: e,
530
+ variant: "dot-info"
531
+ });
532
+ }
533
+ function Ae(e) {
534
+ return e === "ACTIVE" || e === "REVOKED" || e === "EXPIRED" ? e : "ALL";
535
+ }
536
+ function D(e) {
537
+ let t = e ? k(e) : null;
538
+ return t ? `${A(t)}T${j(t.getHours())}:${j(t.getMinutes())}` : void 0;
539
+ }
540
+ function O(e) {
541
+ let t = e ? k(e) : null;
542
+ return t ? t.toISOString() : "";
543
+ }
544
+ function je(e, t) {
545
+ if (!e || !t) return !1;
546
+ let n = k(e), r = k(t);
547
+ return !!n && !!r && r.getTime() <= n.getTime();
548
+ }
549
+ function k(e) {
550
+ if (e.endsWith("Z") || /[+-]\d{2}:\d{2}$/.test(e)) {
551
+ let t = new Date(e);
552
+ return Number.isNaN(t.getTime()) ? null : t;
553
+ }
554
+ let [t = "", n = "00:00"] = e.split("T"), [r = 0, i = 1, a = 1] = t.split("-").map(Number), [o = 0, s = 0] = n.split(":").map(Number), c = new Date(r, i - 1, a, o, s);
555
+ return Number.isNaN(c.getTime()) ? null : c;
556
+ }
557
+ function A(e) {
558
+ return `${e.getFullYear()}-${j(e.getMonth() + 1)}-${j(e.getDate())}`;
559
+ }
560
+ function j(e) {
561
+ return String(e).padStart(2, "0");
562
+ }
563
+ function M(e) {
564
+ return e instanceof Error ? e.message : "發生未知錯誤";
565
+ }
566
+ function N(e) {
567
+ return typeof e == "object" && !!e;
568
+ }
569
+ //#endregion
570
+ export { x as t };
571
+
572
+ //# sourceMappingURL=delegations-C-ZrwzvU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegations-C-ZrwzvU.js","names":[],"sources":["../../src/views/delegations/delegations.module.scss","../../src/views/delegations/DelegationsView.tsx"],"sourcesContent":[".delegationFilterArea {\n :global(.mzn-filter-area__actions) {\n display: none;\n }\n\n :global(.mzn-form-field__label-area) {\n display: none;\n }\n\n :global(.mzn-form-field__control-field-slot--main) {\n width: 100%;\n min-width: 0;\n }\n}\n\n.delegationModalFields {\n display: grid;\n gap: 12px;\n width: 100%;\n\n :global(.mzn-form-field--horizontal) {\n align-items: flex-start;\n }\n\n :global(.mzn-form-field--horizontal .mzn-form-field__label-area) {\n flex: 0 0 112px;\n width: 112px;\n min-width: 112px;\n white-space: nowrap;\n }\n\n :global(.mzn-form-field--horizontal .mzn-form-field__label) {\n flex-wrap: nowrap;\n white-space: nowrap;\n }\n\n :global(.mzn-form-field--horizontal .mzn-form-field__data-entry) {\n flex: 1 1 auto;\n align-items: stretch;\n min-width: 0;\n max-width: none;\n }\n\n :global(.mzn-form-field__control-field-slot--main) {\n width: 100%;\n min-width: 0;\n }\n\n :global(.mzn-autocomplete) {\n width: 100%;\n min-width: 0;\n }\n\n :global(.mzn-input),\n :global(.mzn-input-container),\n :global(.mzn-picker),\n :global(.mzn-select),\n :global(.mzn-select-trigger),\n :global(.mzn-text-field) {\n width: 100%;\n min-width: 0 !important;\n }\n\n :global(.mzn-select-trigger__input) {\n width: 100%;\n min-width: 0 !important;\n text-overflow: ellipsis;\n }\n}\n\n.memberNameWithTooltip {\n cursor: help;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n}\n","'use client';\n\nimport {\n Key,\n ReactElement,\n RefCallback,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n AutoComplete,\n Badge,\n Button,\n DateTimePicker,\n Filter,\n FilterArea,\n FilterLine,\n FormField,\n Modal,\n PageHeader,\n Section,\n SectionGroup,\n Select,\n Tab,\n TabItem,\n Table,\n Tooltip,\n Typography,\n} from '@mezzanine-ui/react';\nimport ContentHeader from '@mezzanine-ui/react/ContentHeader';\nimport { PlusIcon } from '@mezzanine-ui/icons';\nimport { FormFieldLayout } from '@mezzanine-ui/core/form';\nimport type { TableActions, TableColumn } from '@mezzanine-ui/core/table';\nimport { BPMFormField } from '../../components/bpm-form-field';\nimport { formatDateTime } from '../../lib/format-date-time';\nimport { AppLayout } from '../../components/app-navigation';\nimport { useAuth } from '../../lib/auth-provider';\nimport {\n DelegationRuleRecord,\n DelegationRuleStatus,\n DelegationScopeType,\n MemberProfileRecord,\n createDelegationRule,\n listDelegationRulesPage,\n revokeDelegationRule,\n searchMembers,\n} from '@rytass/bpm-core-client/workflow';\nimport {\n ApprovalTemplateRecord,\n listApprovalTemplates,\n} from '@rytass/bpm-core-client/template';\nimport styles from './delegations.module.scss';\n\ntype DelegationStatusTabKey = 'ALL' | DelegationRuleStatus;\n\ntype MemberOption = Readonly<{\n displayName: string;\n email: string | null;\n id: string;\n name: string;\n}>;\n\ntype ScopeOption = Readonly<{\n id: DelegationScopeType;\n name: string;\n}>;\n\ntype ScopeFilterOption = Readonly<{\n id: 'ALL_SCOPES' | DelegationScopeType;\n name: string;\n scopeType: DelegationScopeType | null;\n}>;\n\ntype TemplateOption = Readonly<{\n id: string;\n name: string;\n}>;\n\ntype DelegationRuleRow = Readonly<\n Record<string, unknown> &\n DelegationRuleRecord & {\n agentEmail: string | null;\n agentName: string;\n key: string;\n scopeLabel: string;\n }\n>;\n\nconst DELEGATION_MODAL_FIELD_LAYOUT = FormFieldLayout.HORIZONTAL;\nconst DELEGATION_PAGE_SIZE_OPTIONS = [10, 20, 50];\nconst DELEGATION_STATUS_TABS: readonly {\n readonly key: DelegationStatusTabKey;\n readonly label: string;\n}[] = [\n { key: 'ALL', label: '全部' },\n { key: 'ACTIVE', label: '啟用中' },\n { key: 'REVOKED', label: '已撤銷' },\n { key: 'EXPIRED', label: '已過期' },\n];\nconst SCOPE_FILTER_OPTIONS: readonly ScopeFilterOption[] = [\n { id: 'ALL_SCOPES', name: '全部範圍', scopeType: null },\n { id: 'ALL', name: '全部簽核', scopeType: 'ALL' },\n { id: 'TEMPLATE_LIST', name: '指定模板', scopeType: 'TEMPLATE_LIST' },\n];\nconst SCOPE_OPTIONS: readonly ScopeOption[] = [\n { id: 'ALL', name: '全部簽核' },\n { id: 'TEMPLATE_LIST', name: '指定模板' },\n];\n\nexport interface DelegationsViewProps {\n readonly activeHref?: string;\n}\n\nexport function DelegationsView({\n activeHref = '/delegations',\n}: DelegationsViewProps = {}): ReactElement {\n const { member } = useAuth();\n const currentMemberId = member?.memberId ?? null;\n const [agentMember, setAgentMember] = useState<MemberOption | null>(null);\n const [endAt, setEndAt] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [loading, setLoading] = useState(true);\n const [memberLoading, setMemberLoading] = useState(false);\n const [memberOptions, setMemberOptions] = useState<readonly MemberOption[]>(\n [],\n );\n const [modalOpen, setModalOpen] = useState(false);\n const [rulePage, setRulePage] = useState(1);\n const [rulePageSize, setRulePageSize] = useState(10);\n const [ruleStatus, setRuleStatus] = useState<DelegationStatusTabKey>('ALL');\n const [ruleTotalCount, setRuleTotalCount] = useState(0);\n const [rules, setRules] = useState<readonly DelegationRuleRecord[]>([]);\n const [saving, setSaving] = useState(false);\n const [scopeFilterType, setScopeFilterType] = useState<ScopeFilterOption>(\n SCOPE_FILTER_OPTIONS[0],\n );\n const [scopeTemplates, setScopeTemplates] = useState<\n readonly TemplateOption[]\n >([]);\n const [scopeType, setScopeType] = useState<ScopeOption>(SCOPE_OPTIONS[0]);\n const [startAt, setStartAt] = useState('');\n const [templateLoading, setTemplateLoading] = useState(false);\n const [templateOptions, setTemplateOptions] = useState<\n readonly TemplateOption[]\n >([]);\n\n const refreshRules = useCallback(async (): Promise<void> => {\n if (!currentMemberId) {\n setLoading(false);\n return;\n }\n\n setLoading(true);\n setError(null);\n\n try {\n const [rulePageResult, members] = await Promise.all([\n listDelegationRulesPage({\n includeInactive: true,\n page: rulePage,\n pageSize: rulePageSize,\n principalMemberId: currentMemberId,\n scopeType: scopeFilterType.scopeType,\n status: ruleStatus === 'ALL' ? null : ruleStatus,\n }),\n searchMembers(''),\n ]);\n\n setRules(rulePageResult.rules);\n setRuleTotalCount(rulePageResult.totalCount);\n setMemberOptions(members.map(readMemberOption));\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setLoading(false);\n }\n }, [currentMemberId, rulePage, rulePageSize, ruleStatus, scopeFilterType]);\n\n useEffect((): void => {\n void refreshRules();\n }, [refreshRules]);\n\n const membersById = useMemo(\n (): ReadonlyMap<string, MemberOption> =>\n new Map(memberOptions.map((option) => [option.id, option])),\n [memberOptions],\n );\n const rows = useMemo(\n (): DelegationRuleRow[] =>\n rules.map((rule) => ({\n ...rule,\n agentEmail: membersById.get(rule.agentMemberId)?.email ?? null,\n agentName:\n membersById.get(rule.agentMemberId)?.displayName ??\n rule.agentMemberId,\n key: rule.id,\n scopeLabel: readScopeLabel(rule),\n })),\n [membersById, rules],\n );\n const selectedScopeType =\n SCOPE_OPTIONS.find((option) => option.id === scopeType.id) ??\n SCOPE_OPTIONS[0];\n const columns = useMemo(\n (): TableColumn<DelegationRuleRow>[] => [\n {\n key: 'agent',\n render: (record: DelegationRuleRow): ReactElement => (\n <MemberNameWithEmailTooltip\n email={record.agentEmail}\n name={record.agentName}\n />\n ),\n title: '代理人',\n width: 220,\n },\n { dataIndex: 'scopeLabel', key: 'scope', title: '代理範圍', width: 220 },\n {\n key: 'status',\n render: (record: DelegationRuleRow): ReactElement => (\n <DelegationStatusBadge status={record.status} />\n ),\n title: '狀態',\n width: 120,\n },\n {\n key: 'startAt',\n render: (record: DelegationRuleRow): ReactElement => (\n <Typography component=\"span\" variant=\"body\">\n {formatDateTime(record.startAt)}\n </Typography>\n ),\n title: '開始時間',\n width: 220,\n },\n {\n key: 'endAt',\n render: (record: DelegationRuleRow): ReactElement => (\n <Typography component=\"span\" variant=\"body\">\n {record.endAt ? formatDateTime(record.endAt) : '-'}\n </Typography>\n ),\n title: '結束時間',\n width: 220,\n },\n ],\n [],\n );\n const handleRevoke = useCallback(\n async (id: string): Promise<void> => {\n if (!currentMemberId) {\n return;\n }\n\n setError(null);\n\n try {\n await revokeDelegationRule({\n id,\n revokedByMemberId: currentMemberId,\n });\n await refreshRules();\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n }\n },\n [currentMemberId, refreshRules],\n );\n const tableActions = useMemo(\n (): TableActions<DelegationRuleRow> => ({\n render: (\n record,\n ): ReturnType<TableActions<DelegationRuleRow>['render']> =>\n record.status === 'ACTIVE'\n ? [\n {\n name: '撤銷',\n onClick: (): void => void handleRevoke(record.id),\n },\n ]\n : [],\n variant: 'destructive-secondary',\n width: 88,\n }),\n [handleRevoke],\n );\n\n async function handleSearchMembers(searchText: string): Promise<void> {\n setMemberLoading(true);\n\n try {\n setMemberOptions((await searchMembers(searchText)).map(readMemberOption));\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setMemberLoading(false);\n }\n }\n\n async function handleSearchTemplates(\n searchText: string,\n selectedOptions: readonly TemplateOption[] = scopeTemplates,\n ): Promise<void> {\n setTemplateLoading(true);\n\n try {\n const nextOptions = (await listApprovalTemplates()).map(\n readTemplateOption,\n );\n\n setTemplateOptions(\n mergeTemplateOptions(\n selectedOptions,\n filterTemplateOptions(nextOptions, searchText),\n ),\n );\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setTemplateLoading(false);\n }\n }\n\n function openCreateModal(): void {\n setAgentMember(null);\n setEndAt('');\n setScopeTemplates([]);\n setScopeType(SCOPE_OPTIONS[0]);\n setStartAt('');\n setTemplateOptions([]);\n void handleSearchTemplates('', []);\n setModalOpen(true);\n }\n\n function closeCreateModal(): void {\n if (saving) {\n return;\n }\n\n setModalOpen(false);\n }\n\n async function handleCreate(): Promise<void> {\n if (!currentMemberId) {\n return;\n }\n\n if (!agentMember) {\n setError('請選擇代理人');\n return;\n }\n\n if (agentMember.id === currentMemberId) {\n setError('代理人不可設定為自己');\n return;\n }\n\n if (selectedScopeType.id === 'TEMPLATE_LIST' && scopeTemplates.length < 1) {\n setError('請選擇至少一個簽核模板');\n return;\n }\n\n if (isInvalidDelegationDateRange(startAt, endAt)) {\n setError('結束時間必須晚於起始時間');\n return;\n }\n\n setSaving(true);\n setError(null);\n\n try {\n await createDelegationRule({\n agentMemberId: agentMember.id,\n createdByMemberId: currentMemberId,\n endAt: endAt || null,\n principalMemberId: currentMemberId,\n priority: 100,\n requiresConfirmation: false,\n scopeConditionCel: null,\n scopeTemplateIds:\n selectedScopeType.id === 'TEMPLATE_LIST'\n ? scopeTemplates.map((template) => template.id)\n : [],\n scopeType: selectedScopeType.id,\n startAt: startAt || null,\n });\n setModalOpen(false);\n\n if (rulePage === 1) {\n await refreshRules();\n } else {\n setRulePage(1);\n }\n } catch (requestError: unknown) {\n setError(readErrorMessage(requestError));\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <AppLayout activeHref={activeHref}>\n <PageHeader>\n <ContentHeader\n description=\"設定自己的簽核代理,讓指定期間內的新待簽任務自動交由代理人處理。\"\n title=\"我的代理\"\n >\n <Button\n icon={PlusIcon}\n iconType=\"leading\"\n onClick={openCreateModal}\n variant=\"base-primary\"\n >\n 建立代理\n </Button>\n </ContentHeader>\n </PageHeader>\n\n <SectionGroup>\n <Section\n filterArea={\n <FilterArea className={styles.delegationFilterArea} size=\"sub\">\n <FilterLine>\n <Filter span={2}>\n <FormField\n fullWidth\n layout={FormFieldLayout.VERTICAL}\n name=\"scopeFilterType\"\n >\n <Select\n clearable={false}\n fullWidth\n onChange={(option): void => {\n setScopeFilterType(readScopeFilterOption(option));\n setRulePage(1);\n }}\n options={[...SCOPE_FILTER_OPTIONS]}\n placeholder=\"代理範圍\"\n size=\"sub\"\n value={scopeFilterType}\n />\n </FormField>\n </Filter>\n </FilterLine>\n </FilterArea>\n }\n tab={\n <Tab\n activeKey={ruleStatus}\n onChange={(activeKey): void => {\n setRuleStatus(readDelegationStatusTabKey(activeKey));\n setRulePage(1);\n }}\n >\n {DELEGATION_STATUS_TABS.map((statusTab) => (\n <TabItem key={statusTab.key}>{statusTab.label}</TabItem>\n ))}\n </Tab>\n }\n >\n {error ? (\n <Typography color=\"text-error\" variant=\"body\">\n {error}\n </Typography>\n ) : null}\n <Table\n actions={tableActions}\n columns={columns}\n dataSource={rows}\n fullWidth\n loading={loading}\n pagination={{\n current: rulePage,\n onChange: (page): void => {\n setRulePage(page);\n },\n onChangePageSize: (pageSize): void => {\n setRulePage(1);\n setRulePageSize(pageSize);\n },\n pageSize: rulePageSize,\n pageSizeLabel: '每頁筆數',\n pageSizeOptions: DELEGATION_PAGE_SIZE_OPTIONS,\n renderResultSummary: (from, to, total): string =>\n `顯示 ${from}-${to} 筆,共 ${total} 筆`,\n showPageSizeOptions: true,\n total: ruleTotalCount,\n }}\n />\n </Section>\n </SectionGroup>\n\n <Modal\n cancelText=\"取消\"\n confirmButtonProps={{\n disabled: !agentMember,\n }}\n confirmText=\"建立代理\"\n loading={saving}\n modalType=\"standard\"\n onCancel={closeCreateModal}\n onClose={closeCreateModal}\n onConfirm={(): void => void handleCreate()}\n open={modalOpen}\n showModalFooter\n showModalHeader\n size=\"regular\"\n supportingText=\"代理生效後,後續建立的待簽任務會依範圍自動指派給代理人。\"\n title=\"建立個人代理\"\n >\n <div className={styles.delegationModalFields}>\n <MemberAutoCompleteField\n label=\"代理人\"\n loading={memberLoading}\n name=\"agentMemberId\"\n onChange={setAgentMember}\n onSearch={handleSearchMembers}\n options={memberOptions}\n value={agentMember}\n />\n <BPMFormField label=\"代理範圍\" name=\"scopeType\" required>\n <Select\n clearable={false}\n fullWidth\n onChange={(option): void =>\n setScopeType(readScopeOptionFromValue(option))\n }\n options={[...SCOPE_OPTIONS]}\n placeholder=\"選擇代理範圍\"\n value={selectedScopeType}\n />\n </BPMFormField>\n {selectedScopeType.id === 'TEMPLATE_LIST' ? (\n <BPMFormField label=\"簽核模板\" name=\"scopeTemplateIds\" required>\n <AutoComplete\n asyncData\n disabledOptionsFilter\n emptyText=\"沒有符合的模板\"\n inputProps={{\n autoCapitalize: 'none',\n autoCorrect: 'off',\n name: 'scopeTemplateIds',\n spellCheck: false,\n }}\n loading={templateLoading}\n loadingText=\"搜尋模板中...\"\n mode=\"multiple\"\n onChange={(nextTemplates): void => {\n const selectedTemplates =\n readTemplateOptionsFromValue(nextTemplates);\n\n setScopeTemplates(selectedTemplates);\n setTemplateOptions((currentOptions) =>\n mergeTemplateOptions(selectedTemplates, currentOptions),\n );\n }}\n onSearch={handleSearchTemplates}\n onVisibilityChange={(open): void => {\n if (open) {\n void handleSearchTemplates('');\n }\n }}\n options={[...templateOptions]}\n overflowStrategy=\"wrap\"\n placeholder=\"搜尋並選取簽核模板\"\n searchDebounceTime={300}\n value={[...scopeTemplates]}\n />\n </BPMFormField>\n ) : null}\n <BPMFormField label=\"起始時間\" name=\"startAt\">\n <DateTimePicker\n formatDate=\"YYYY-MM-DD\"\n formatTime=\"HH:mm\"\n fullWidth\n hideSecond\n onChange={(nextValue): void =>\n setStartAt(formatDelegationDateTimePickerValue(nextValue))\n }\n placeholderLeft=\"留空立即生效\"\n placeholderRight=\"選擇時間\"\n value={readDelegationDateTimePickerValue(startAt)}\n />\n </BPMFormField>\n <BPMFormField label=\"結束時間\" name=\"endAt\">\n <DateTimePicker\n formatDate=\"YYYY-MM-DD\"\n formatTime=\"HH:mm\"\n fullWidth\n hideSecond\n onChange={(nextValue): void =>\n setEndAt(formatDelegationDateTimePickerValue(nextValue))\n }\n placeholderLeft=\"可留空\"\n placeholderRight=\"選擇時間\"\n value={readDelegationDateTimePickerValue(endAt)}\n />\n </BPMFormField>\n </div>\n </Modal>\n </AppLayout>\n );\n}\n\nfunction MemberAutoCompleteField({\n label,\n loading,\n name,\n onChange,\n onSearch,\n options,\n value,\n}: {\n readonly label: string;\n readonly loading: boolean;\n readonly name: string;\n readonly onChange: (option: MemberOption | null) => void;\n readonly onSearch: (searchText: string) => Promise<void>;\n readonly options: readonly MemberOption[];\n readonly value: MemberOption | null;\n}): ReactElement {\n return (\n <BPMFormField\n label={label}\n layout={DELEGATION_MODAL_FIELD_LAYOUT}\n name={name}\n required\n >\n <AutoComplete\n asyncData\n disabledOptionsFilter\n emptyText=\"沒有符合的成員\"\n inputProps={{\n autoCapitalize: 'none',\n autoCorrect: 'off',\n name,\n spellCheck: false,\n }}\n loading={loading}\n loadingText=\"搜尋成員中...\"\n mode=\"single\"\n onChange={(option): void => onChange(readMemberOptionFromValue(option))}\n onSearch={onSearch}\n onSearchTextChange={(searchText): void =>\n onChange(readUniqueMemberOption(searchText, options))\n }\n onVisibilityChange={(open): void => {\n if (open) {\n void onSearch('');\n }\n }}\n options={[...options]}\n placeholder=\"搜尋姓名或信箱\"\n searchDebounceTime={300}\n value={value}\n />\n </BPMFormField>\n );\n}\n\nfunction MemberNameWithEmailTooltip({\n email,\n name,\n}: {\n readonly email: string | null;\n readonly name: string;\n}): ReactElement {\n if (!email) {\n return <span>{name}</span>;\n }\n\n return (\n <Tooltip title={email}>\n {({ onMouseEnter, onMouseLeave, ref }): ReactElement => (\n <span\n className={styles.memberNameWithTooltip}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n ref={ref as RefCallback<HTMLSpanElement>}\n >\n {name}\n </span>\n )}\n </Tooltip>\n );\n}\n\nfunction readMemberOption(member: MemberProfileRecord): MemberOption {\n return {\n displayName: member.name,\n email: member.email,\n id: member.memberId,\n name: `${member.name} (${member.email})`,\n };\n}\n\nfunction readMemberOptionFromValue(value: unknown): MemberOption | null {\n if (!isRecord(value)) {\n return null;\n }\n\n const displayName = value.displayName;\n const email = value.email;\n const id = value.id;\n const name = value.name;\n\n return typeof id === 'string' && typeof name === 'string'\n ? {\n displayName: typeof displayName === 'string' ? displayName : name,\n email: typeof email === 'string' ? email : null,\n id,\n name,\n }\n : null;\n}\n\nfunction readUniqueMemberOption(\n searchText: string,\n options: readonly MemberOption[],\n): MemberOption | null {\n const normalizedSearchText = searchText.trim().toLocaleLowerCase();\n\n if (!normalizedSearchText) {\n return null;\n }\n\n const matches = options.filter((option) =>\n [option.id, option.name, option.email ?? ''].some((value) =>\n value.toLocaleLowerCase().includes(normalizedSearchText),\n ),\n );\n\n return matches.length === 1 ? (matches[0] ?? null) : null;\n}\n\nfunction readTemplateOption(template: ApprovalTemplateRecord): TemplateOption {\n return {\n id: template.id,\n name: template.name,\n };\n}\n\nfunction readTemplateOptionsFromValue(\n value: readonly unknown[],\n): readonly TemplateOption[] {\n return value.flatMap((item): readonly TemplateOption[] => {\n if (!isRecord(item)) {\n return [];\n }\n\n const id = item.id;\n const name = item.name;\n\n return typeof id === 'string' && typeof name === 'string'\n ? [{ id, name }]\n : [];\n });\n}\n\nfunction filterTemplateOptions(\n options: readonly TemplateOption[],\n searchText: string,\n): readonly TemplateOption[] {\n const normalizedSearchText = searchText.trim().toLocaleLowerCase();\n\n if (!normalizedSearchText) {\n return options;\n }\n\n return options.filter((option) =>\n [option.id, option.name].some((value) =>\n value.toLocaleLowerCase().includes(normalizedSearchText),\n ),\n );\n}\n\nfunction mergeTemplateOptions(\n selectedOptions: readonly TemplateOption[],\n availableOptions: readonly TemplateOption[],\n): readonly TemplateOption[] {\n return [...selectedOptions, ...availableOptions].reduce<TemplateOption[]>(\n (options, option) =>\n options.some((currentOption) => currentOption.id === option.id)\n ? options\n : [...options, option],\n [],\n );\n}\n\nfunction readScopeFilterOption(value: unknown): ScopeFilterOption {\n if (!isRecord(value)) {\n return SCOPE_FILTER_OPTIONS[0];\n }\n\n const id = value.id;\n\n return (\n SCOPE_FILTER_OPTIONS.find((option) => option.id === id) ??\n SCOPE_FILTER_OPTIONS[0]\n );\n}\n\nfunction readScopeLabel(rule: DelegationRuleRecord): string {\n if (rule.scopeType === 'ALL') {\n return '全部簽核';\n }\n\n if (rule.scopeType === 'TEMPLATE_LIST') {\n return `指定模板:${rule.scopeTemplateIds.length}`;\n }\n\n return rule.scopeConditionCel ? `條件:${rule.scopeConditionCel}` : '條件式';\n}\n\nfunction readScopeOptionFromValue(value: unknown): ScopeOption {\n if (!isRecord(value) || !isSelectableDelegationScopeType(value.id)) {\n return SCOPE_OPTIONS[0];\n }\n\n return (\n SCOPE_OPTIONS.find((option) => option.id === value.id) ?? SCOPE_OPTIONS[0]\n );\n}\n\nfunction isSelectableDelegationScopeType(\n value: unknown,\n): value is ScopeOption['id'] {\n return value === 'ALL' || value === 'TEMPLATE_LIST';\n}\n\nfunction DelegationStatusBadge({\n status,\n}: {\n readonly status: DelegationRuleRecord['status'];\n}): ReactElement {\n if (status === 'ACTIVE') {\n return <Badge size=\"sub\" text=\"啟用中\" variant=\"dot-success\" />;\n }\n\n if (status === 'REVOKED') {\n return <Badge size=\"sub\" text=\"已撤銷\" variant=\"dot-inactive\" />;\n }\n\n if (status === 'EXPIRED') {\n return <Badge size=\"sub\" text=\"已過期\" variant=\"dot-warning\" />;\n }\n\n return <Badge size=\"sub\" text={status} variant=\"dot-info\" />;\n}\n\nfunction readDelegationStatusTabKey(activeKey: Key): DelegationStatusTabKey {\n if (\n activeKey === 'ACTIVE' ||\n activeKey === 'REVOKED' ||\n activeKey === 'EXPIRED'\n ) {\n return activeKey;\n }\n\n return 'ALL';\n}\n\nfunction readDelegationDateTimePickerValue(value: string): string | undefined {\n const date = value ? parseDelegationDateTimeValue(value) : null;\n\n return date\n ? `${formatDateParts(date)}T${padDatePart(date.getHours())}:${padDatePart(\n date.getMinutes(),\n )}`\n : undefined;\n}\n\nfunction formatDelegationDateTimePickerValue(\n value: string | undefined,\n): string {\n const date = value ? parseDelegationDateTimeValue(value) : null;\n\n return date ? date.toISOString() : '';\n}\n\nfunction isInvalidDelegationDateRange(startAt: string, endAt: string): boolean {\n if (!startAt || !endAt) {\n return false;\n }\n\n const startDate = parseDelegationDateTimeValue(startAt);\n const endDate = parseDelegationDateTimeValue(endAt);\n\n return !!startDate && !!endDate && endDate.getTime() <= startDate.getTime();\n}\n\nfunction parseDelegationDateTimeValue(value: string): Date | null {\n if (value.endsWith('Z') || /[+-]\\d{2}:\\d{2}$/.test(value)) {\n const parsedDate = new Date(value);\n\n return Number.isNaN(parsedDate.getTime()) ? null : parsedDate;\n }\n\n const [datePart = '', timePart = '00:00'] = value.split('T');\n const [year = 0, month = 1, day = 1] = datePart.split('-').map(Number);\n const [hour = 0, minute = 0] = timePart.split(':').map(Number);\n const parsedDate = new Date(year, month - 1, day, hour, minute);\n\n return Number.isNaN(parsedDate.getTime()) ? null : parsedDate;\n}\n\nfunction formatDateParts(date: Date): string {\n return `${date.getFullYear()}-${padDatePart(date.getMonth() + 1)}-${padDatePart(\n date.getDate(),\n )}`;\n}\n\nfunction padDatePart(value: number): string {\n return String(value).padStart(2, '0');\n}\n\nfunction readErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : '發生未知錯誤';\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n return typeof value === 'object' && value !== null;\n}\n"],"mappings":"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"}