@sachahjkl/backoffice 0.2.5 → 0.2.6

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 (280) hide show
  1. package/README.md +3 -1
  2. package/bin/backoffice.mjs +2 -2
  3. package/dist/demo-reset.cjs +65895 -0
  4. package/dist/main.cjs +71 -39
  5. package/dist/migrate.cjs +17 -3
  6. package/dist/web/{chunk-Bans5XmP2.js → chunk--RuvStn6.js} +1 -1
  7. package/dist/web/{chunk-BidSGJER.js → chunk-4ipZT9nT.js} +1 -1
  8. package/dist/web/chunk-6jIo5mZ42.js +1 -0
  9. package/dist/web/{chunk-D0WfOSVe.js → chunk-9X4vLcFh.js} +1 -1
  10. package/dist/web/chunk-9d_UD-MQ.js +1 -0
  11. package/dist/web/{chunk-CuukTiS1.js → chunk-AJOoJgZJ.js} +1 -1
  12. package/dist/web/{chunk-2sHWWuzv2.js → chunk-B0bNirg2.js} +1 -1
  13. package/dist/web/chunk-B3OxeBLO2.js +1 -0
  14. package/dist/web/chunk-B5xzAYYx2.js +1 -0
  15. package/dist/web/{chunk-BQRlJCOd.js → chunk-B6Rml85x2.js} +1 -1
  16. package/dist/web/chunk-B8_dFe5w.js +1 -0
  17. package/dist/web/chunk-B91VAo1J.js +1 -0
  18. package/dist/web/chunk-B9NV1rY62.js +1 -0
  19. package/dist/web/chunk-BAn0tBhX.js +1 -0
  20. package/dist/web/chunk-BGVaNZdj.js +1 -0
  21. package/dist/web/chunk-BHDXYrox.js +1 -0
  22. package/dist/web/chunk-BI9lIdFn.js +1 -0
  23. package/dist/web/{chunk-CYB9QO85.js → chunk-BKufCOYq.js} +1 -1
  24. package/dist/web/chunk-BNksdK_D2.js +1 -0
  25. package/dist/web/chunk-BQ7WWH4L.js +1 -0
  26. package/dist/web/chunk-BQrmVphu2.js +1 -0
  27. package/dist/web/chunk-BR0demlX.js +1 -0
  28. package/dist/web/chunk-BT8KtCYG.js +1 -0
  29. package/dist/web/{chunk-Bm0a1bep.js → chunk-BVszSMJC.js} +1 -1
  30. package/dist/web/{chunk-CJDa7FT62.js → chunk-BYjxXKZ4.js} +1 -1
  31. package/dist/web/chunk-BZZJ287h.js +1 -0
  32. package/dist/web/chunk-Bb31fHqC2.js +1 -0
  33. package/dist/web/chunk-BcUjdID-.js +1 -0
  34. package/dist/web/{chunk-BzOWqX4m2.js → chunk-Bck0-DJt2.js} +1 -1
  35. package/dist/web/chunk-Bf3eV_su2.js +1 -0
  36. package/dist/web/chunk-BfSewUhY.js +1 -0
  37. package/dist/web/{chunk-osh5v_OU2.js → chunk-Bfx7EEIR.js} +1 -1
  38. package/dist/web/chunk-Bi4Jixry2.js +1 -0
  39. package/dist/web/chunk-BiECfDS7.js +1 -0
  40. package/dist/web/{chunk-CGgGK0-O2.js → chunk-Bj7Oze2U2.js} +1 -1
  41. package/dist/web/{chunk-BYalGDdQ.js → chunk-Bjo6eVnk.js} +1 -1
  42. package/dist/web/{chunk-BbKL19W02.js → chunk-BkvskoFt2.js} +1 -1
  43. package/dist/web/chunk-Bn46cQyx.js +1 -0
  44. package/dist/web/chunk-Bn6RkvPA2.js +1 -0
  45. package/dist/web/{chunk-B08xNtqD2.js → chunk-BpZ7MSOP.js} +1 -1
  46. package/dist/web/{chunk-DCE1ImZZ2.js → chunk-Bq2zV2_3.js} +1 -1
  47. package/dist/web/chunk-By2EFyNM.js +1 -0
  48. package/dist/web/{chunk-DQwyRMR6.js → chunk-C-O6GrQC2.js} +1 -1
  49. package/dist/web/{chunk-CtR8WyO5.js → chunk-C0Ceu-vg.js} +1 -1
  50. package/dist/web/chunk-C0gTeWW62.js +1 -0
  51. package/dist/web/{chunk-ClevJX5T2.js → chunk-C19Alcnx2.js} +1 -1
  52. package/dist/web/{chunk-BKWyrwrz.js → chunk-CABvk97t2.js} +1 -1
  53. package/dist/web/chunk-CApvwK4D.js +1 -0
  54. package/dist/web/chunk-CCkaRRSy.js +1 -0
  55. package/dist/web/chunk-CCqlW8pS2.js +3 -0
  56. package/dist/web/chunk-CCr_R2Cg.js +1 -0
  57. package/dist/web/chunk-CDK48Khc.js +1 -0
  58. package/dist/web/chunk-CDS6LjBz2.js +1 -0
  59. package/dist/web/chunk-CE9WzUCM.js +1 -0
  60. package/dist/web/chunk-CEJjSd8-2.js +1 -0
  61. package/dist/web/{chunk-Ce_TeGo52.js → chunk-CG4Kbo1n2.js} +1 -1
  62. package/dist/web/chunk-CGfyD3XX2.js +1 -0
  63. package/dist/web/chunk-CK6Sjqig.js +1 -0
  64. package/dist/web/chunk-CKFB1V-p2.js +1 -0
  65. package/dist/web/chunk-CL02A9wI.js +1 -0
  66. package/dist/web/{chunk-CrhlmMPy2.js → chunk-CLHj5Ycx2.js} +1 -1
  67. package/dist/web/chunk-CLZ5xsSQ2.js +1 -0
  68. package/dist/web/{chunk-JUTCkl5C2.js → chunk-CMvRZBpn.js} +1 -1
  69. package/dist/web/chunk-CNfmNEak.js +1 -0
  70. package/dist/web/chunk-COTrF1xY2.js +1 -0
  71. package/dist/web/{chunk-CC05ZHq-.js → chunk-COXN76fu2.js} +1 -1
  72. package/dist/web/{chunk-BkKRFLuX2.js → chunk-CPHUl7N2.js} +1 -1
  73. package/dist/web/chunk-CUqj_Bxs2.js +1 -0
  74. package/dist/web/{chunk-C2gUrdSR2.js → chunk-CVHqiS63.js} +1 -1
  75. package/dist/web/chunk-CV_fLVFT.js +1 -0
  76. package/dist/web/{chunk-CJKvPHwX.js → chunk-CYGyIy7J.js} +1 -1
  77. package/dist/web/chunk-CYRUKYKv2.js +1 -0
  78. package/dist/web/{chunk-xlLlHW0G2.js → chunk-C_QyIKvy.js} +1 -1
  79. package/dist/web/chunk-Ca3lwqEF.js +1 -0
  80. package/dist/web/chunk-CaJrmM9V.js +1 -0
  81. package/dist/web/{chunk-Ok502fV82.js → chunk-CfcCxe_k.js} +1 -1
  82. package/dist/web/chunk-Ck6cItVE2.js +2 -0
  83. package/dist/web/{chunk-S5Gmkpdy2.js → chunk-CkWd-yMn.js} +1 -1
  84. package/dist/web/{chunk-C7DvmZKC.js → chunk-CmokTGIG.js} +1 -1
  85. package/dist/web/chunk-CpXqQPuw.js +1 -0
  86. package/dist/web/{chunk-Dyia17vy.js → chunk-CtmP6l7_2.js} +1 -1
  87. package/dist/web/chunk-CubfQf-X2.js +1 -0
  88. package/dist/web/chunk-CuepVIkm2.js +1 -0
  89. package/dist/web/chunk-CvMAjyvr2.js +1 -0
  90. package/dist/web/chunk-CvsVlcIU2.js +1 -0
  91. package/dist/web/chunk-CwzCbuXH.js +1 -0
  92. package/dist/web/{chunk-BxQ7up-t.js → chunk-Cx07K71K.js} +1 -1
  93. package/dist/web/chunk-D-VHaopx.js +1 -0
  94. package/dist/web/chunk-D1DvlGbP.js +1 -0
  95. package/dist/web/{chunk-CfAqWkFp.js → chunk-D1wrPwB5.js} +1 -1
  96. package/dist/web/{chunk-BbWEBemE.js → chunk-D3XjW5Cm.js} +1 -1
  97. package/dist/web/{chunk-DRgIjFR6.js → chunk-D5MFwK9L.js} +1 -1
  98. package/dist/web/{chunk-CjtJKrza.js → chunk-D5qmP2Wu.js} +2 -2
  99. package/dist/web/{chunk-BbbRo5jM2.js → chunk-D6k6pmdU.js} +1 -1
  100. package/dist/web/chunk-D8kEdb5y2.js +1 -0
  101. package/dist/web/chunk-D8t0s8LD.js +1 -0
  102. package/dist/web/{chunk-Z9CNux5n2.js → chunk-D8xHm8jb2.js} +1 -1
  103. package/dist/web/{chunk-BMYHfrEK.js → chunk-D97UUzIx.js} +1 -1
  104. package/dist/web/chunk-DB6sOjsn2.js +1 -0
  105. package/dist/web/{chunk-D4J7xo6v.js → chunk-DDCyjjcE.js} +1 -1
  106. package/dist/web/chunk-DEXzwHB0.js +1 -0
  107. package/dist/web/{chunk-DODMV1QO.js → chunk-DGbo0App2.js} +1 -1
  108. package/dist/web/chunk-DIBFSF2Z.js +1 -0
  109. package/dist/web/{chunk-bP01prsY.js → chunk-DIJSXeQC2.js} +1 -1
  110. package/dist/web/{chunk-CvjKWUFl.js → chunk-DKlxu0GP2.js} +1 -1
  111. package/dist/web/{chunk-BtRCqgfa.js → chunk-DM4Wc9U7.js} +1 -1
  112. package/dist/web/{chunk-DUJbqlfC.js → chunk-DM5aibnW.js} +1 -1
  113. package/dist/web/chunk-DMXgU6Nc2.js +1 -0
  114. package/dist/web/chunk-DMskLhpk2.js +1 -0
  115. package/dist/web/{chunk-HhmMH02E.js → chunk-DOCau85G2.js} +1 -1
  116. package/dist/web/{chunk-B86wqImw.js → chunk-DOinRyX_2.js} +1 -1
  117. package/dist/web/chunk-DQp-2GVv.js +1 -0
  118. package/dist/web/chunk-DQr_9Q6T.js +1 -0
  119. package/dist/web/chunk-DSpA-ZPx.js +1 -0
  120. package/dist/web/chunk-DTPC4JtI2.js +1 -0
  121. package/dist/web/chunk-DURq7J8U2.js +1 -0
  122. package/dist/web/chunk-DVJ4YZuU.js +1 -0
  123. package/dist/web/chunk-DVyDnsGh.js +1 -0
  124. package/dist/web/{chunk-oS95kAu6.js → chunk-DXvlXoVT2.js} +1 -1
  125. package/dist/web/{chunk-CHUMIo442.js → chunk-DZgMGE6C.js} +1 -1
  126. package/dist/web/{chunk-BK0Mi7Tk.js → chunk-DZgf7AIe.js} +1 -1
  127. package/dist/web/{chunk-CBXOl0VL.js → chunk-D_8jIApo.js} +1 -1
  128. package/dist/web/chunk-D_vyhgGx.js +1 -0
  129. package/dist/web/chunk-Db2zQ-8C.js +1 -0
  130. package/dist/web/{chunk-BEAkjhZc2.js → chunk-DboSVJMM.js} +1 -1
  131. package/dist/web/chunk-DdOc1fs-.js +1 -0
  132. package/dist/web/chunk-DddDKWSn2.js +1 -0
  133. package/dist/web/{chunk-DAdKllIN.js → chunk-DerJPaBw.js} +1 -1
  134. package/dist/web/chunk-Dh86w63y.js +1 -0
  135. package/dist/web/{chunk-DXsw8_Za2.js → chunk-DhLlQTD-2.js} +1 -1
  136. package/dist/web/{chunk-9qDelKdu.js → chunk-DhkjPUn4.js} +1 -1
  137. package/dist/web/{chunk-BAKoExNF.js → chunk-Di9FA_QV.js} +1 -1
  138. package/dist/web/chunk-DjwvqY3z2.js +1 -0
  139. package/dist/web/{chunk-CH-_LXUF.js → chunk-Dl4EbYnM2.js} +1 -1
  140. package/dist/web/chunk-Dl4V93zm2.js +1 -0
  141. package/dist/web/{chunk-CsiZwjWr2.js → chunk-Dns8uMf32.js} +1 -1
  142. package/dist/web/chunk-Dnzjseqf2.js +1 -0
  143. package/dist/web/chunk-DpI44v1z.js +1 -0
  144. package/dist/web/{chunk-BqIPzI6E2.js → chunk-DpLF2wJ62.js} +1 -1
  145. package/dist/web/chunk-Dqhs2Pyw2.js +1 -0
  146. package/dist/web/{chunk-BWNhkOOr.js → chunk-DsaNNeZe.js} +1 -1
  147. package/dist/web/{chunk-GjZTRlHL.js → chunk-DubWLqvO.js} +1 -1
  148. package/dist/web/{chunk-DibPYvNu.js → chunk-Fc120Hsi2.js} +1 -1
  149. package/dist/web/{chunk-B23x0ZHj2.js → chunk-HmRGBt692.js} +1 -1
  150. package/dist/web/chunk-IlM3eTPp2.js +1 -0
  151. package/dist/web/chunk-IzGdqlW82.js +1 -0
  152. package/dist/web/{chunk-u_CBgBep.js → chunk-MpUdRrak2.js} +1 -1
  153. package/dist/web/{chunk-BlE9HnAo.js → chunk-NDpjbcAr2.js} +1 -1
  154. package/dist/web/chunk-P1du2kWg2.js +1 -0
  155. package/dist/web/{chunk-BCemdpJW.js → chunk-POMKwNf_.js} +1 -1
  156. package/dist/web/chunk-PqGGk0JD.js +1 -0
  157. package/dist/web/{chunk-BG9HC5MH2.js → chunk-RIi7_iVg.js} +1 -1
  158. package/dist/web/chunk-SZJG1lFa2.js +1 -0
  159. package/dist/web/{chunk-jEvWOBug.js → chunk-WNYFaDlu2.js} +1 -1
  160. package/dist/web/{chunk-Cx_tkq5a.js → chunk-XtjMOmku2.js} +1 -1
  161. package/dist/web/chunk-XvyWOb2Q.js +1 -0
  162. package/dist/web/{chunk-BPI0E5qw.js → chunk-ZcJhJsoo.js} +1 -1
  163. package/dist/web/{chunk-Dk7Fe34Y.js → chunk-aW8Vltn22.js} +1 -1
  164. package/dist/web/chunk-a_Va_Nj7.js +1 -0
  165. package/dist/web/{chunk-D83vXRZS2.js → chunk-enci06qG.js} +1 -1
  166. package/dist/web/chunk-fYJ7OBkh.js +1 -0
  167. package/dist/web/{chunk-THRzZN4s.js → chunk-k6TIcaIA.js} +1 -1
  168. package/dist/web/{chunk-BsXdvb75.js → chunk-nC_XlFOG.js} +1 -1
  169. package/dist/web/{chunk-DzxhjLIR.js → chunk-niXXbm7H.js} +1 -1
  170. package/dist/web/chunk-owvOEsA9.js +1 -0
  171. package/dist/web/{chunk-D8ywkT0Z2.js → chunk-pV57uiBu2.js} +1 -1
  172. package/dist/web/{chunk-CdEOFR_J.js → chunk-qKosqkwC.js} +1 -1
  173. package/dist/web/{chunk-BMsK7VjB2.js → chunk-r6H-BfOd.js} +1 -1
  174. package/dist/web/chunk-tDREPM-0.js +1 -0
  175. package/dist/web/{chunk-78yNgJiB.js → chunk-xTX16tt2.js} +1 -1
  176. package/dist/web/chunk-y0Vyi0HZ.js +1 -0
  177. package/dist/web/chunk-yfBrkklv.js +1 -0
  178. package/dist/web/index.csr.html +1 -1
  179. package/dist/web/{main-AJD2LGCE.js → main-F7D3L737.js} +4 -4
  180. package/package.json +1 -1
  181. package/dist/web/chunk-0C-62od6.js +0 -1
  182. package/dist/web/chunk-B1Kpw1um2.js +0 -1
  183. package/dist/web/chunk-B43WHzJp.js +0 -1
  184. package/dist/web/chunk-B6BtInzP2.js +0 -1
  185. package/dist/web/chunk-BAjZiy9u2.js +0 -1
  186. package/dist/web/chunk-BE8oALxd.js +0 -1
  187. package/dist/web/chunk-BIydbtyu.js +0 -1
  188. package/dist/web/chunk-BMU6gPN0.js +0 -1
  189. package/dist/web/chunk-BRUZgvLR2.js +0 -1
  190. package/dist/web/chunk-BSxXPdhz2.js +0 -1
  191. package/dist/web/chunk-BTDByxsO2.js +0 -1
  192. package/dist/web/chunk-BUnVNwR0.js +0 -1
  193. package/dist/web/chunk-BV-2_l7u2.js +0 -1
  194. package/dist/web/chunk-B_pX979y.js +0 -1
  195. package/dist/web/chunk-Ba4cFLiE2.js +0 -1
  196. package/dist/web/chunk-BaLdnNAA.js +0 -1
  197. package/dist/web/chunk-BhCP8fQA.js +0 -1
  198. package/dist/web/chunk-BhwbhxlY2.js +0 -1
  199. package/dist/web/chunk-Bjio-Q3F.js +0 -1
  200. package/dist/web/chunk-BjiyoDeK2.js +0 -1
  201. package/dist/web/chunk-BnPSwNBN.js +0 -1
  202. package/dist/web/chunk-BqbhE2jJ.js +0 -1
  203. package/dist/web/chunk-BrRhr7VS.js +0 -1
  204. package/dist/web/chunk-Bt1ivJuj2.js +0 -1
  205. package/dist/web/chunk-BtH61zrc.js +0 -1
  206. package/dist/web/chunk-BuKqE_YG2.js +0 -1
  207. package/dist/web/chunk-ByBw4qTD.js +0 -1
  208. package/dist/web/chunk-ByfP_6io2.js +0 -1
  209. package/dist/web/chunk-Bylz8GTy2.js +0 -1
  210. package/dist/web/chunk-C1jIGjiG.js +0 -1
  211. package/dist/web/chunk-C2WwmFiS.js +0 -1
  212. package/dist/web/chunk-C3v6o8sk.js +0 -1
  213. package/dist/web/chunk-C7TzEeP_2.js +0 -1
  214. package/dist/web/chunk-C8AJBuJL2.js +0 -1
  215. package/dist/web/chunk-C9_g77K0.js +0 -1
  216. package/dist/web/chunk-CAr--Z8G2.js +0 -1
  217. package/dist/web/chunk-CIIIDIUz.js +0 -1
  218. package/dist/web/chunk-CUvLKCob2.js +0 -1
  219. package/dist/web/chunk-CV-g60E82.js +0 -1
  220. package/dist/web/chunk-CV1Zh4JH.js +0 -1
  221. package/dist/web/chunk-CVZQi-q62.js +0 -1
  222. package/dist/web/chunk-CY4lfBdp2.js +0 -1
  223. package/dist/web/chunk-Cc534gtY.js +0 -1
  224. package/dist/web/chunk-CcvGqiZH.js +0 -1
  225. package/dist/web/chunk-CdDlz5SQ2.js +0 -1
  226. package/dist/web/chunk-CdeX3SOP.js +0 -1
  227. package/dist/web/chunk-CgThkMbX2.js +0 -1
  228. package/dist/web/chunk-Chasvinb.js +0 -1
  229. package/dist/web/chunk-CihZnkoG2.js +0 -1
  230. package/dist/web/chunk-ClYiqUra.js +0 -1
  231. package/dist/web/chunk-CmhHSFX72.js +0 -1
  232. package/dist/web/chunk-CsdHWYnL.js +0 -1
  233. package/dist/web/chunk-CuQMh9Mm2.js +0 -1
  234. package/dist/web/chunk-D2Albj_1.js +0 -1
  235. package/dist/web/chunk-D2P8u0ih2.js +0 -1
  236. package/dist/web/chunk-D2reBpeg2.js +0 -1
  237. package/dist/web/chunk-D6HQPG4L.js +0 -1
  238. package/dist/web/chunk-DFQAtlu22.js +0 -1
  239. package/dist/web/chunk-DIyfCN-v.js +0 -1
  240. package/dist/web/chunk-DK0GFIMr.js +0 -1
  241. package/dist/web/chunk-DMlYYeVV2.js +0 -3
  242. package/dist/web/chunk-DS8Gi0yV2.js +0 -1
  243. package/dist/web/chunk-DSIpVKzQ.js +0 -1
  244. package/dist/web/chunk-DT9HaYIg.js +0 -1
  245. package/dist/web/chunk-DU2qw7-O.js +0 -1
  246. package/dist/web/chunk-DZX7bq5d.js +0 -1
  247. package/dist/web/chunk-DiSSXeWw2.js +0 -1
  248. package/dist/web/chunk-DjQuCwaE.js +0 -1
  249. package/dist/web/chunk-DmBRHpbi2.js +0 -1
  250. package/dist/web/chunk-DpbG_pUL.js +0 -1
  251. package/dist/web/chunk-DqoyE916.js +0 -1
  252. package/dist/web/chunk-DsZGgyjH2.js +0 -1
  253. package/dist/web/chunk-DsbC92Ad2.js +0 -1
  254. package/dist/web/chunk-DuQk8dor2.js +0 -1
  255. package/dist/web/chunk-DxjwnDdp.js +0 -1
  256. package/dist/web/chunk-DyaBJhQt2.js +0 -1
  257. package/dist/web/chunk-H2FHxG4A.js +0 -1
  258. package/dist/web/chunk-KV_4fJOq.js +0 -2
  259. package/dist/web/chunk-NyAoR3GT.js +0 -1
  260. package/dist/web/chunk-Qhc5gzMT.js +0 -1
  261. package/dist/web/chunk-RRqL4AoW2.js +0 -1
  262. package/dist/web/chunk-THDcl3GX2.js +0 -1
  263. package/dist/web/chunk-TRzqZ7nT.js +0 -1
  264. package/dist/web/chunk-VKqyG94L.js +0 -1
  265. package/dist/web/chunk-cxgj3JaU2.js +0 -1
  266. package/dist/web/chunk-dClaCeUx.js +0 -1
  267. package/dist/web/chunk-kb-UZrxn2.js +0 -1
  268. package/dist/web/chunk-mI1TUlml.js +0 -1
  269. package/dist/web/chunk-tiVwZKxb.js +0 -1
  270. package/dist/web/chunk-uYhVCHeh2.js +0 -1
  271. package/dist/web/chunk-ynjMwOUq.js +0 -1
  272. package/dist/web/chunk-z-mghjkB.js +0 -1
  273. /package/dist/web/{chunk-BUoX0svL2.js → chunk-BUoX0svL.js} +0 -0
  274. /package/dist/web/{chunk-Bsy3r41y.js → chunk-Bsy3r41y2.js} +0 -0
  275. /package/dist/web/{chunk-CARNiCDb.js → chunk-CARNiCDb2.js} +0 -0
  276. /package/dist/web/{chunk-CGo7Fepz2.js → chunk-CGo7Fepz.js} +0 -0
  277. /package/dist/web/{chunk-CXHCUTDs2.js → chunk-CXHCUTDs.js} +0 -0
  278. /package/dist/web/{chunk-CtcsJTAS.js → chunk-CtcsJTAS2.js} +0 -0
  279. /package/dist/web/{chunk-WJWN7A_V.js → chunk-WJWN7A_V2.js} +0 -0
  280. /package/dist/web/{chunk-cTGENC4T.js → chunk-cTGENC4T2.js} +0 -0
package/dist/main.cjs CHANGED
@@ -86870,6 +86870,7 @@ var DemoResetRejected = class extends Schema_exports.TaggedError()(
86870
86870
  code: Schema_exports.Literals([
86871
86871
  "demo.environment_rejected",
86872
86872
  "demo.secret_missing",
86873
+ "demo.password_conflict",
86873
86874
  "demo.password_invalid"
86874
86875
  ])
86875
86876
  }
@@ -88898,7 +88899,13 @@ var PublicRuntimeConfig = Schema_exports.Struct({
88898
88899
  appEnvironment: AppEnvironment,
88899
88900
  sitePhase: SitePhase,
88900
88901
  commit: Schema_exports.NullOr(GitCommit),
88901
- githubRepositoryUrl: Schema_exports.NullOr(Schema_exports.String)
88902
+ githubRepositoryUrl: Schema_exports.NullOr(Schema_exports.String),
88903
+ demo: Schema_exports.NullOr(
88904
+ Schema_exports.Struct({
88905
+ password: Schema_exports.String,
88906
+ accounts: Schema_exports.Array(Schema_exports.Struct({ name: Schema_exports.String, email: Schema_exports.String }))
88907
+ })
88908
+ )
88902
88909
  });
88903
88910
 
88904
88911
  // ../contracts/src/api-tokens/contracts.ts
@@ -108138,6 +108145,9 @@ var translations = {
108138
108145
  "login.heading": "Connexion",
108139
108146
  "login.description": "Vos documents et le suivi de vos r\xE8glements, au m\xEAme endroit.",
108140
108147
  "login.access": "Votre compte donne acc\xE8s aux documents et aux actions qui vous concernent.",
108148
+ "login.demoHeading": "Comptes de d\xE9monstration",
108149
+ "login.demoDescription": "Donn\xE9es fictives r\xE9initialis\xE9es r\xE9guli\xE8rement. Choisissez un compte pour vous connecter.",
108150
+ "login.demoPassword": "Mot de passe des comptes",
108141
108151
  "bank.history": "Historique des rapprochements",
108142
108152
  "bank.historyHint": "Les 100 derniers rapprochements, avec dates, identifiants des auteurs et motifs de dissociation.",
108143
108153
  "bank.historyEmpty": "Aucun rapprochement enregistr\xE9 pour cette op\xE9ration.",
@@ -109466,6 +109476,9 @@ var translations = {
109466
109476
  "login.heading": "Sign in",
109467
109477
  "login.description": "Your documents and payment records, in one place.",
109468
109478
  "login.access": "Your account gives you access to the documents and actions available to you.",
109479
+ "login.demoHeading": "Demo accounts",
109480
+ "login.demoDescription": "Synthetic data resets regularly. Choose an account to sign in.",
109481
+ "login.demoPassword": "Account password",
109469
109482
  "bank.history": "Reconciliation history",
109470
109483
  "bank.historyHint": "The latest 100 matches, with dates, actor identifiers and reasons for removal.",
109471
109484
  "bank.historyEmpty": "No reconciliation recorded for this transaction.",
@@ -110875,7 +110888,7 @@ var defaultRuntimeConfig = {
110875
110888
  requestTimeoutMillis: 1e4
110876
110889
  },
110877
110890
  taxFiling: { apiKey: Option_exports.none(), requestTimeoutMillis: 2e4 },
110878
- demo: { password: Option_exports.none() }
110891
+ demo: { enabled: false, password: Option_exports.none(), accountPassword: Option_exports.none() }
110879
110892
  };
110880
110893
  var RuntimeConfig = {
110881
110894
  branding: Config_exports.all({
@@ -111067,7 +111080,9 @@ var RuntimeConfig = {
111067
111080
  )
111068
111081
  }),
111069
111082
  demo: Config_exports.all({
111070
- password: Config_exports.option(Config_exports.redacted("DEMO_PASSWORD"))
111083
+ enabled: Config_exports.boolean("DEMO_MODE").pipe(Config_exports.withDefault(false)),
111084
+ password: Config_exports.option(Config_exports.redacted("DEMO_PASSWORD")),
111085
+ accountPassword: Config_exports.option(Config_exports.redacted("DEMO_ACCOUNT_PASSWORD"))
111071
111086
  })
111072
111087
  };
111073
111088
  var runtimeConfig = Config_exports.all(RuntimeConfig);
@@ -166238,40 +166253,41 @@ var emailFor = (displayName, index3) => {
166238
166253
  return `${localPart}.${index3 + 1}@example.invalid`;
166239
166254
  };
166240
166255
  var frenchPhone = () => `+336${i3.string.numeric(8)}`;
166256
+ var demoProfiles = [
166257
+ {
166258
+ name: "L\xE9a Morel",
166259
+ email: "administrator@demo.invalid",
166260
+ roleName: "Administration",
166261
+ profile: null
166262
+ },
166263
+ {
166264
+ name: "Hugo Bernard",
166265
+ email: "collaborator@demo.invalid",
166266
+ roleName: "\xC9quipe commerciale",
166267
+ profile: "collaborator"
166268
+ },
166269
+ {
166270
+ name: "In\xE8s Laurent",
166271
+ email: "accountant@demo.invalid",
166272
+ roleName: "Comptabilit\xE9",
166273
+ profile: "accountant"
166274
+ },
166275
+ {
166276
+ name: "Thomas Leroy",
166277
+ email: "validator@demo.invalid",
166278
+ roleName: "Validation comptable",
166279
+ profile: "accounting-validator"
166280
+ },
166281
+ {
166282
+ name: "Sofia Roux",
166283
+ email: "reader@demo.invalid",
166284
+ roleName: "Consultation comptable",
166285
+ profile: "accounting-reader"
166286
+ }
166287
+ ];
166241
166288
  var generateDemoFixtures = () => {
166242
166289
  i3.seed(20260913);
166243
- const profiles = [
166244
- {
166245
- name: "L\xE9a Morel",
166246
- email: "administrator@demo.invalid",
166247
- roleName: "Administration",
166248
- profile: null
166249
- },
166250
- {
166251
- name: "Hugo Bernard",
166252
- email: "collaborator@demo.invalid",
166253
- roleName: "\xC9quipe commerciale",
166254
- profile: "collaborator"
166255
- },
166256
- {
166257
- name: "In\xE8s Laurent",
166258
- email: "accountant@demo.invalid",
166259
- roleName: "Comptabilit\xE9",
166260
- profile: "accountant"
166261
- },
166262
- {
166263
- name: "Thomas Leroy",
166264
- email: "validator@demo.invalid",
166265
- roleName: "Validation comptable",
166266
- profile: "accounting-validator"
166267
- },
166268
- {
166269
- name: "Sofia Roux",
166270
- email: "reader@demo.invalid",
166271
- roleName: "Consultation comptable",
166272
- profile: "accounting-reader"
166273
- }
166274
- ];
166290
+ const profiles = demoProfiles;
166275
166291
  const makeClient = (index3) => {
166276
166292
  const displayName = i3.company.name();
166277
166293
  return {
@@ -166422,16 +166438,19 @@ var make82 = Effect_exports.gen(function* () {
166422
166438
  const passwords = yield* Passwords;
166423
166439
  const audit = yield* Audit;
166424
166440
  const reset = Effect_exports.fn("Demo.reset")(function* (request3, actorUserId) {
166425
- if (runtime2.application.appEnvironment === "production")
166441
+ if (runtime2.application.appEnvironment === "production" || !runtime2.demo.enabled)
166426
166442
  return yield* new DemoResetRejected({ code: "demo.environment_rejected" });
166427
166443
  const password = Option_exports.getOrUndefined(runtime2.demo.password);
166428
- if (password === void 0)
166444
+ const accountPassword = Option_exports.getOrUndefined(runtime2.demo.accountPassword);
166445
+ if (password === void 0 || accountPassword === void 0)
166429
166446
  return yield* new DemoResetRejected({ code: "demo.secret_missing" });
166447
+ if (Redacted_exports.value(password) === Redacted_exports.value(accountPassword))
166448
+ return yield* new DemoResetRejected({ code: "demo.password_conflict" });
166430
166449
  const provided = Buffer.from(request3.password);
166431
166450
  const expected = Buffer.from(Redacted_exports.value(password));
166432
166451
  if (provided.length !== expected.length || !(0, import_node_crypto21.timingSafeEqual)(provided, expected))
166433
166452
  return yield* new DemoResetRejected({ code: "demo.password_invalid" });
166434
- const passwordHash = yield* passwords.hash(Redacted_exports.value(password)).pipe(Effect_exports.orDie);
166453
+ const passwordHash = yield* passwords.hash(Redacted_exports.value(accountPassword)).pipe(Effect_exports.orDie);
166435
166454
  const now3 = yield* Clock_exports.currentTimeMillis;
166436
166455
  const fixtures = generateDemoFixtures();
166437
166456
  const result4 = yield* Effect_exports.try({
@@ -167561,7 +167580,20 @@ var ServerLive = Layer_exports.unwrap(
167561
167580
  port: port2,
167562
167581
  publicOrigin: publicUrl.origin,
167563
167582
  staticRoot,
167564
- runtimeConfig: { ...runtime2.application, commit: deployment.metadata.commit }
167583
+ runtimeConfig: {
167584
+ ...runtime2.application,
167585
+ commit: deployment.metadata.commit,
167586
+ demo: runtime2.demo.enabled && runtime2.application.appEnvironment !== "production" ? Option_exports.match(runtime2.demo.accountPassword, {
167587
+ onNone: () => null,
167588
+ onSome: (password) => Option_exports.exists(
167589
+ runtime2.demo.password,
167590
+ (secret) => Redacted_exports.value(secret) === Redacted_exports.value(password)
167591
+ ) ? null : {
167592
+ password: Redacted_exports.value(password),
167593
+ accounts: demoProfiles.map(({ name: name2, email: email2 }) => ({ name: name2, email: email2 }))
167594
+ }
167595
+ }) : null
167596
+ }
167565
167597
  }).pipe(Layer_exports.provide(Layer_exports.succeed(TrustedProxyAddresses, new Set(trustedProxyAddresses))));
167566
167598
  })
167567
167599
  );
package/dist/migrate.cjs CHANGED
@@ -52466,7 +52466,13 @@ var PublicRuntimeConfig = Schema_exports.Struct({
52466
52466
  appEnvironment: AppEnvironment,
52467
52467
  sitePhase: SitePhase,
52468
52468
  commit: Schema_exports.NullOr(GitCommit),
52469
- githubRepositoryUrl: Schema_exports.NullOr(Schema_exports.String)
52469
+ githubRepositoryUrl: Schema_exports.NullOr(Schema_exports.String),
52470
+ demo: Schema_exports.NullOr(
52471
+ Schema_exports.Struct({
52472
+ password: Schema_exports.String,
52473
+ accounts: Schema_exports.Array(Schema_exports.Struct({ name: Schema_exports.String, email: Schema_exports.String }))
52474
+ })
52475
+ )
52470
52476
  });
52471
52477
 
52472
52478
  // ../l10n/src/team.ts
@@ -58538,6 +58544,9 @@ var translations = {
58538
58544
  "login.heading": "Connexion",
58539
58545
  "login.description": "Vos documents et le suivi de vos r\xE8glements, au m\xEAme endroit.",
58540
58546
  "login.access": "Votre compte donne acc\xE8s aux documents et aux actions qui vous concernent.",
58547
+ "login.demoHeading": "Comptes de d\xE9monstration",
58548
+ "login.demoDescription": "Donn\xE9es fictives r\xE9initialis\xE9es r\xE9guli\xE8rement. Choisissez un compte pour vous connecter.",
58549
+ "login.demoPassword": "Mot de passe des comptes",
58541
58550
  "bank.history": "Historique des rapprochements",
58542
58551
  "bank.historyHint": "Les 100 derniers rapprochements, avec dates, identifiants des auteurs et motifs de dissociation.",
58543
58552
  "bank.historyEmpty": "Aucun rapprochement enregistr\xE9 pour cette op\xE9ration.",
@@ -59866,6 +59875,9 @@ var translations = {
59866
59875
  "login.heading": "Sign in",
59867
59876
  "login.description": "Your documents and payment records, in one place.",
59868
59877
  "login.access": "Your account gives you access to the documents and actions available to you.",
59878
+ "login.demoHeading": "Demo accounts",
59879
+ "login.demoDescription": "Synthetic data resets regularly. Choose an account to sign in.",
59880
+ "login.demoPassword": "Account password",
59869
59881
  "bank.history": "Reconciliation history",
59870
59882
  "bank.historyHint": "The latest 100 matches, with dates, actor identifiers and reasons for removal.",
59871
59883
  "bank.historyEmpty": "No reconciliation recorded for this transaction.",
@@ -61224,7 +61236,7 @@ var defaultRuntimeConfig = {
61224
61236
  requestTimeoutMillis: 1e4
61225
61237
  },
61226
61238
  taxFiling: { apiKey: Option_exports.none(), requestTimeoutMillis: 2e4 },
61227
- demo: { password: Option_exports.none() }
61239
+ demo: { enabled: false, password: Option_exports.none(), accountPassword: Option_exports.none() }
61228
61240
  };
61229
61241
  var RuntimeConfig = {
61230
61242
  branding: Config_exports.all({
@@ -61416,7 +61428,9 @@ var RuntimeConfig = {
61416
61428
  )
61417
61429
  }),
61418
61430
  demo: Config_exports.all({
61419
- password: Config_exports.option(Config_exports.redacted("DEMO_PASSWORD"))
61431
+ enabled: Config_exports.boolean("DEMO_MODE").pipe(Config_exports.withDefault(false)),
61432
+ password: Config_exports.option(Config_exports.redacted("DEMO_PASSWORD")),
61433
+ accountPassword: Config_exports.option(Config_exports.redacted("DEMO_ACCOUNT_PASSWORD"))
61420
61434
  })
61421
61435
  };
61422
61436
  var runtimeConfig = Config_exports.all(RuntimeConfig);
@@ -1 +1 @@
1
- import{vt as Py,w as Fb}from"./chunk-BAHiFuUo.js";import{S as gr}from"./main-AJD2LGCE.js";var a=class t{static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`app-configuration`]],hostAttrs:[1,`page-container`],decls:1,vars:0,template:function(e,s){e&1&&Py(0,`router-outlet`)},dependencies:[gr],styles:[`[_nghost-%COMP%]{display:block}`]})};export{a as Configuration};
1
+ import{vt as Py,w as Fb}from"./chunk-BAHiFuUo.js";import{S as gr}from"./main-F7D3L737.js";var a=class t{static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`app-configuration`]],hostAttrs:[1,`page-container`],decls:1,vars:0,template:function(e,s){e&1&&Py(0,`router-outlet`)},dependencies:[gr],styles:[`[_nghost-%COMP%]{display:block}`]})};export{a as Configuration};
@@ -1 +1 @@
1
- import{$t as ZC,A as Gy,D as Fy,Dn as g,E as Ft,Gn as k_,Ir as wp,It as Us,J as Ky,Jr as zS,K as Ke,Nr as vd,P as Hn,Rn as jS,Tn as fd,Vr as xH,Wn as kS,Wr as y_,X as LS,dr as pe,ft as Ol,gn as ce,lt as OS,nt as NH,pr as qS,qn as ky,rn as Zw,rr as nv,w as Fb,xn as e_,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie,r as N}from"./main-AJD2LGCE.js";import{t as g$1}from"./chunk-B56nz2lI.js";import"./chunk-BzUDWIzm.js";import{t as k}from"./chunk-DRgIjFR6.js";import"./chunk-BAe_07VM.js";import{t as P}from"./chunk-DzxhjLIR.js";import"./chunk-CjtJKrza.js";import"./chunk-Dv9sNWWK.js";import{t as E}from"./chunk-BWNhkOOr.js";import{n as r}from"./chunk-CwkCpxYQ.js";var q=[`revokeStatus`];var z=t=>({id:t});var K=(t,n)=>n.id;function W(t,n){if(t&1){let e=zS();Us(0,`p`,6),y_(1),fd(),Us(2,`button`,7),Gy(`click`,function(){Ip(e);return wp(qS().reload())}),y_(3),fd(),Us(4,`p`),y_(5),fd()}if(t&2){let e=qS();ZC(),nv(e.i18n.t(n)),ZC(),Fy(`disabled`,e.loading()||e.revoking()!==void 0||e.disabled()),ZC(),vd(` `,e.i18n.t(`account.sessions_reload`),` `),ZC(2),nv(e.i18n.t(`account.sessions_retry`))}}function G(t,n){if(t&1&&(Us(0,`p`,4,0),y_(2),fd()),t&2){let e=qS();ZC(2),vd(` `,e.i18n.t(`account.session_revoked`),` `)}}function J(t,n){if(t&1&&(Us(0,`p`,5),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`account.sessions_loading`))}}function X(t,n){if(t&1&&(Us(0,`strong`),y_(1),fd()),t&2){let e=qS(3);ZC(),nv(e.i18n.t(`account.session_current_label`))}}function Y(t,n){if(t&1){let e=zS();Us(0,`button`,11),Gy(`click`,function(){Ip(e);let l=qS().$implicit;return wp(qS(2).revoke(l))}),y_(1),fd()}if(t&2){let e=qS().$implicit,i=qS(2);Fy(`disabled`,i.revoking()!==void 0||i.disabled()),ky(`aria-label`,i.i18n.tf(`account.session_revoke_label`,k_(3,z,e.id))),ZC(),vd(` `,i.i18n.t(i.revoking()===e.id?`account.session_revoking`:`account.session_revoke`),` `)}}function Z(t,n){if(t&1&&(Us(0,`li`,8)(1,`h3`),y_(2),fd(),OS(3,X,2,1,`strong`),Us(4,`dl`)(5,`div`)(6,`dt`),y_(7),fd(),Us(8,`dd`,9),y_(9),fd()(),Us(10,`div`)(11,`dt`),y_(12),fd(),Us(13,`dd`),y_(14),fd()(),Us(15,`div`)(16,`dt`),y_(17),fd(),Us(18,`dd`),y_(19),fd()()(),OS(20,Y,2,5,`button`,10),fd()),t&2){let e=n.$implicit,i=qS(2);ZC(2),nv(i.date(e.startedAt)),ZC(),kS(e.current?3:-1),ZC(4),nv(i.i18n.t(`account.session_id`)),ZC(2),nv(e.id),ZC(3),nv(i.i18n.t(`account.session_renewed`)),ZC(2),nv(i.date(e.renewedAt)),ZC(3),nv(i.i18n.t(`account.session_expires`)),ZC(2),nv(i.date(e.expiresAt)),ZC(),kS(e.current?-1:20)}}function ee(t,n){if(t&1&&(Us(0,`li`),y_(1),fd()),t&2){let e=qS(3);ZC(),nv(e.i18n.t(`account.sessions_empty`))}}function te(t,n){if(t&1&&OS(0,ee,2,1,`li`),t&2)kS(qS(2).error()?-1:0)}function ne(t,n){if(t&1&&(Us(0,`ul`),LS(1,Z,21,9,`li`,8,K,!1,te,1,1),fd()),t&2){let e=qS();ZC(),jS(e.sessions())}}var U=class t{confirmation=g(P);disabled=NH(!1);i18n=g(Ie);authentication=g(E);destroyRef=g(pe);injector=g(ce);revokeStatus=xH(`revokeStatus`,{read:Hn});sessions=Ke([]);loading=Ke(!0);revoking=Ke(void 0);error=Ke(void 0);errorOperation=Ke(`load-sessions`);errorMessage=Ft(()=>r(this.error(),this.errorOperation()));revoked=Ke(!1);constructor(){Ol(()=>{this.reload()})}async reload(){if(!(this.revoking()!==void 0||this.disabled())){this.loading.set(!0),this.errorOperation.set(`load-sessions`),this.error.set(void 0);try{let n=await this.authentication.listSessions();if(this.destroyRef.destroyed)return;n.success?this.sessions.set(n.result):this.error.set(n.code)}catch{this.error.set(`authentication.error`)}finally{this.loading.set(!1)}}}async revoke(n){if(!(n.current||this.revoking()!==void 0||this.loading()||this.disabled())&&await this.confirmation.request(this.i18n.tf(`account.session_revoke_confirm`,{date:this.date(n.startedAt),id:n.id}))){this.revoking.set(n.id),this.errorOperation.set(`revoke-session`),this.error.set(void 0),this.revoked.set(!1);try{let e=await this.authentication.revokeSession(n.id);if(this.destroyRef.destroyed)return;e.success?(this.sessions.update(i=>i.filter(l=>l.id!==n.id)),this.revoked.set(!0),Ol(()=>this.revokeStatus()?.nativeElement.focus(),{injector:this.injector})):this.error.set(e.code)}catch{this.error.set(`authentication.error`)}finally{this.revoking.set(void 0)}}}date(n){return new Intl.DateTimeFormat(this.i18n.language(),{dateStyle:`medium`,timeStyle:`medium`}).format(new Date(n))}canDeactivate(){return this.revoking()===void 0}beforeUnload(n){this.revoking()!==void 0&&n.preventDefault()}static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`app-account-sessions`]],viewQuery:function(e,i){e&1&&Ky(i.revokeStatus,q,5,Hn),e&2&&e_()},hostBindings:function(e,i){e&1&&Gy(`beforeunload`,function(y){return i.beforeUnload(y)},Zw)},inputs:{disabled:[1,`disabled`]},decls:10,vars:5,consts:[[`revokeStatus`,``],[`aria-labelledby`,`account-sessions-title`],[`id`,`account-sessions-title`],[1,`muted`],[`appNotice`,``,`variant`,`success`,`role`,`status`,`tabindex`,`-1`],[`role`,`status`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[1,`ds-panel`],[1,`session-id`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`disabled`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`click`,`disabled`]],template:function(e,i){if(e&1&&(Us(0,`section`,1)(1,`app-page-header`)(2,`h2`,2),y_(3),fd(),Us(4,`p`,3),y_(5),fd()(),OS(6,W,6,4),OS(7,G,3,1,`p`,4),OS(8,J,2,1,`p`,5)(9,ne,4,1,`ul`),fd()),e&2){let l;ZC(3),nv(i.i18n.t(`account.sessions_title`)),ZC(2),nv(i.i18n.t(`account.sessions_hint`)),ZC(),kS((l=i.errorMessage())?6:-1,l),ZC(),kS(i.revoked()?7:-1),ZC(),kS(i.loading()?8:9)}},dependencies:[N,k,g$1],styles:[`[_nghost-%COMP%]{display:block;padding:var(--%NS%space-6) var(--%NS%page-x)}section[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3)}ul[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--%NS%space-4);padding:0;list-style:none}li[_ngcontent-%COMP%]{padding:var(--%NS%panel-padding);min-width:0}dl[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);margin-block:var(--%NS%space-4)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}dd[_ngcontent-%COMP%]{margin:0}.session-id[_ngcontent-%COMP%]{font-family:var(--%NS%font-mono);overflow-wrap:anywhere;font-size:var(--%NS%text-sm)}`]})};export{U as AccountSessions};
1
+ import{$t as ZC,A as Gy,D as Fy,Dn as g,E as Ft,Gn as k_,Ir as wp,It as Us,J as Ky,Jr as zS,K as Ke,Nr as vd,P as Hn,Rn as jS,Tn as fd,Vr as xH,Wn as kS,Wr as y_,X as LS,dr as pe,ft as Ol,gn as ce,lt as OS,nt as NH,pr as qS,qn as ky,rn as Zw,rr as nv,w as Fb,xn as e_,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie,r as N}from"./main-F7D3L737.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D5qmP2Wu.js";import"./chunk-BzUDWIzm.js";import{t as E}from"./chunk-DsaNNeZe.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-D5MFwK9L.js";import{t as P}from"./chunk-niXXbm7H.js";import{n as r}from"./chunk-CwkCpxYQ.js";var q=[`revokeStatus`];var z=t=>({id:t});var K=(t,n)=>n.id;function W(t,n){if(t&1){let e=zS();Us(0,`p`,6),y_(1),fd(),Us(2,`button`,7),Gy(`click`,function(){Ip(e);return wp(qS().reload())}),y_(3),fd(),Us(4,`p`),y_(5),fd()}if(t&2){let e=qS();ZC(),nv(e.i18n.t(n)),ZC(),Fy(`disabled`,e.loading()||e.revoking()!==void 0||e.disabled()),ZC(),vd(` `,e.i18n.t(`account.sessions_reload`),` `),ZC(2),nv(e.i18n.t(`account.sessions_retry`))}}function G(t,n){if(t&1&&(Us(0,`p`,4,0),y_(2),fd()),t&2){let e=qS();ZC(2),vd(` `,e.i18n.t(`account.session_revoked`),` `)}}function J(t,n){if(t&1&&(Us(0,`p`,5),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`account.sessions_loading`))}}function X(t,n){if(t&1&&(Us(0,`strong`),y_(1),fd()),t&2){let e=qS(3);ZC(),nv(e.i18n.t(`account.session_current_label`))}}function Y(t,n){if(t&1){let e=zS();Us(0,`button`,11),Gy(`click`,function(){Ip(e);let l=qS().$implicit;return wp(qS(2).revoke(l))}),y_(1),fd()}if(t&2){let e=qS().$implicit,i=qS(2);Fy(`disabled`,i.revoking()!==void 0||i.disabled()),ky(`aria-label`,i.i18n.tf(`account.session_revoke_label`,k_(3,z,e.id))),ZC(),vd(` `,i.i18n.t(i.revoking()===e.id?`account.session_revoking`:`account.session_revoke`),` `)}}function Z(t,n){if(t&1&&(Us(0,`li`,8)(1,`h3`),y_(2),fd(),OS(3,X,2,1,`strong`),Us(4,`dl`)(5,`div`)(6,`dt`),y_(7),fd(),Us(8,`dd`,9),y_(9),fd()(),Us(10,`div`)(11,`dt`),y_(12),fd(),Us(13,`dd`),y_(14),fd()(),Us(15,`div`)(16,`dt`),y_(17),fd(),Us(18,`dd`),y_(19),fd()()(),OS(20,Y,2,5,`button`,10),fd()),t&2){let e=n.$implicit,i=qS(2);ZC(2),nv(i.date(e.startedAt)),ZC(),kS(e.current?3:-1),ZC(4),nv(i.i18n.t(`account.session_id`)),ZC(2),nv(e.id),ZC(3),nv(i.i18n.t(`account.session_renewed`)),ZC(2),nv(i.date(e.renewedAt)),ZC(3),nv(i.i18n.t(`account.session_expires`)),ZC(2),nv(i.date(e.expiresAt)),ZC(),kS(e.current?-1:20)}}function ee(t,n){if(t&1&&(Us(0,`li`),y_(1),fd()),t&2){let e=qS(3);ZC(),nv(e.i18n.t(`account.sessions_empty`))}}function te(t,n){if(t&1&&OS(0,ee,2,1,`li`),t&2)kS(qS(2).error()?-1:0)}function ne(t,n){if(t&1&&(Us(0,`ul`),LS(1,Z,21,9,`li`,8,K,!1,te,1,1),fd()),t&2){let e=qS();ZC(),jS(e.sessions())}}var U=class t{confirmation=g(P);disabled=NH(!1);i18n=g(Ie);authentication=g(E);destroyRef=g(pe);injector=g(ce);revokeStatus=xH(`revokeStatus`,{read:Hn});sessions=Ke([]);loading=Ke(!0);revoking=Ke(void 0);error=Ke(void 0);errorOperation=Ke(`load-sessions`);errorMessage=Ft(()=>r(this.error(),this.errorOperation()));revoked=Ke(!1);constructor(){Ol(()=>{this.reload()})}async reload(){if(!(this.revoking()!==void 0||this.disabled())){this.loading.set(!0),this.errorOperation.set(`load-sessions`),this.error.set(void 0);try{let n=await this.authentication.listSessions();if(this.destroyRef.destroyed)return;n.success?this.sessions.set(n.result):this.error.set(n.code)}catch{this.error.set(`authentication.error`)}finally{this.loading.set(!1)}}}async revoke(n){if(!(n.current||this.revoking()!==void 0||this.loading()||this.disabled())&&await this.confirmation.request(this.i18n.tf(`account.session_revoke_confirm`,{date:this.date(n.startedAt),id:n.id}))){this.revoking.set(n.id),this.errorOperation.set(`revoke-session`),this.error.set(void 0),this.revoked.set(!1);try{let e=await this.authentication.revokeSession(n.id);if(this.destroyRef.destroyed)return;e.success?(this.sessions.update(i=>i.filter(l=>l.id!==n.id)),this.revoked.set(!0),Ol(()=>this.revokeStatus()?.nativeElement.focus(),{injector:this.injector})):this.error.set(e.code)}catch{this.error.set(`authentication.error`)}finally{this.revoking.set(void 0)}}}date(n){return new Intl.DateTimeFormat(this.i18n.language(),{dateStyle:`medium`,timeStyle:`medium`}).format(new Date(n))}canDeactivate(){return this.revoking()===void 0}beforeUnload(n){this.revoking()!==void 0&&n.preventDefault()}static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`app-account-sessions`]],viewQuery:function(e,i){e&1&&Ky(i.revokeStatus,q,5,Hn),e&2&&e_()},hostBindings:function(e,i){e&1&&Gy(`beforeunload`,function(y){return i.beforeUnload(y)},Zw)},inputs:{disabled:[1,`disabled`]},decls:10,vars:5,consts:[[`revokeStatus`,``],[`aria-labelledby`,`account-sessions-title`],[`id`,`account-sessions-title`],[1,`muted`],[`appNotice`,``,`variant`,`success`,`role`,`status`,`tabindex`,`-1`],[`role`,`status`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[1,`ds-panel`],[1,`session-id`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`disabled`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`click`,`disabled`]],template:function(e,i){if(e&1&&(Us(0,`section`,1)(1,`app-page-header`)(2,`h2`,2),y_(3),fd(),Us(4,`p`,3),y_(5),fd()(),OS(6,W,6,4),OS(7,G,3,1,`p`,4),OS(8,J,2,1,`p`,5)(9,ne,4,1,`ul`),fd()),e&2){let l;ZC(3),nv(i.i18n.t(`account.sessions_title`)),ZC(2),nv(i.i18n.t(`account.sessions_hint`)),ZC(),kS((l=i.errorMessage())?6:-1,l),ZC(),kS(i.revoked()?7:-1),ZC(),kS(i.loading()?8:9)}},dependencies:[N,k,g$1],styles:[`[_nghost-%COMP%]{display:block;padding:var(--%NS%space-6) var(--%NS%page-x)}section[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3)}ul[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--%NS%space-4);padding:0;list-style:none}li[_ngcontent-%COMP%]{padding:var(--%NS%panel-padding);min-width:0}dl[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);margin-block:var(--%NS%space-4)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}dd[_ngcontent-%COMP%]{margin:0}.session-id[_ngcontent-%COMP%]{font-family:var(--%NS%font-mono);overflow-wrap:anywhere;font-size:var(--%NS%text-sm)}`]})};export{U as AccountSessions};
@@ -0,0 +1 @@
1
+ import{$ as MH,$t as ZC,A as Gy,D as Fy,Dn as g,Gn as k_,Ir as wp,It as Us,Jr as zS,Jt as Xy,Rn as jS,Tn as fd,Wn as kS,Wr as y_,X as LS,lt as OS,nt as NH,pr as qS,qn as ky,rr as nv,vt as Py,w as Fb,wn as fa,z as Ip}from"./chunk-BAHiFuUo.js";import{i as r,m as Ie,r as N}from"./main-F7D3L737.js";import{l as W}from"./chunk-BzUDWIzm.js";import{t as Ae}from"./chunk-DM5aibnW.js";import{t as D}from"./chunk-CXHCUTDs.js";var z=t=>({field:t});var L=(t,n)=>n.value;function F(t,n){if(t&1&&(Us(0,`option`,12),y_(1),fd()),t&2){let e=n.$implicit;Fy(`value`,e.value),ZC(),nv(e.label)}}function B(t,n){if(t&1){let e=zS();Us(0,`select`,11),Gy(`change`,function(c){Ip(e);return wp(qS(2).draft.set(c.target.value))}),LS(1,F,2,2,`option`,12,L),fd()}if(t&2){let e=qS(2);Fy(`id`,e.controlId)(`value`,e.draft())(`disabled`,e.saving()||e.disabled()),ky(`aria-labelledby`,e.labelId),ZC(),jS(e.options())}}function $(t,n){if(t&1){let e=zS();Us(0,`input`,13),Gy(`input`,function(c){Ip(e);return wp(qS(2).draft.set(c.target.value))}),fd()}if(t&2){let e=qS(2);Fy(`id`,e.controlId)(`type`,e.inputType())(`value`,e.draft())(`required`,e.required())(`maxLength`,e.maximumLength()??null)(`disabled`,e.saving()||e.disabled()),ky(`aria-labelledby`,e.labelId)}}function H(t,n){if(t&1){let e=zS();Us(0,`form`,1),Gy(`submit`,function(c){Ip(e);return wp(qS().submit(c))}),Us(1,`div`,2),OS(2,B,3,4,`select`,3)(3,$,1,7,`input`,4),Us(4,`div`,5)(5,`app-hint`,6)(6,`button`,7),Py(7,`app-icon`,8),fd()(),Us(8,`app-hint`,6)(9,`button`,9),Gy(`click`,function(){Ip(e);return wp(qS().cancelRequested.emit())}),Py(10,`app-icon`,10),fd()()()()()}if(t&2){let e=qS();ZC(2),kS(e.options().length>0?2:3),ZC(3),Fy(`text`,e.i18n.t(`inlineEdit.save`)),ZC(),Fy(`iconOnly`,!0)(`disabled`,e.saving()||e.disabled()),ky(`aria-label`,e.i18n.t(`inlineEdit.save`)),ZC(2),Fy(`text`,e.i18n.t(`inlineEdit.cancel`)),ZC(),Fy(`iconOnly`,!0)(`disabled`,e.saving()||e.disabled()),ky(`aria-label`,e.i18n.t(`inlineEdit.cancel`))}}function j(t,n){if(t&1){let e=zS();Us(0,`button`,9),Gy(`click`,function(){Ip(e);return wp(qS(2).editRequested.emit())}),Py(1,`app-icon`,15),fd()}if(t&2){let e=qS(2);Fy(`iconOnly`,!0)(`disabled`,e.disabled()),ky(`aria-label`,e.i18n.tf(`inlineEdit.editField`,k_(3,z,e.label())))}}function A(t,n){if(t&1&&(Us(0,`span`),y_(1),fd(),OS(2,j,2,5,`button`,14)),t&2){let e=qS();ZC(),nv(e.displayValue()||e.value()||e.emptyValue()),ZC(),kS(e.editable()?2:-1)}}var R=class t{i18n=g(Ie);controlId=g(W).getId(`inline-edit-`);labelId=`${this.controlId}-label`;label=NH.required();value=NH.required();displayValue=NH();emptyValue=NH.required();editable=NH(!0);disabled=NH(!1);editing=NH(!1);saving=NH(!1);required=NH(!1);inputType=NH(`text`);maximumLength=NH();options=NH([]);editRequested=MH();cancelRequested=MH();saveRequested=MH();draft=fa(()=>this.value());submit(n){if(n.preventDefault(),this.disabled())return;let e=this.draft().trim();this.required()&&e===``||this.saveRequested.emit(e)}static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`div`,`appInlineEdit`,``]],hostVars:3,hostBindings:function(e,o){e&2&&(ky(`aria-disabled`,o.disabled()?`true`:null),Xy(`is-disabled`,o.disabled()))},inputs:{label:[1,`label`],value:[1,`value`],displayValue:[1,`displayValue`],emptyValue:[1,`emptyValue`],editable:[1,`editable`],disabled:[1,`disabled`],editing:[1,`editing`],saving:[1,`saving`],required:[1,`required`],inputType:[1,`inputType`],maximumLength:[1,`maximumLength`],options:[1,`options`]},outputs:{editRequested:`editRequested`,cancelRequested:`cancelRequested`,saveRequested:`saveRequested`},decls:5,vars:3,consts:[[3,`id`],[3,`submit`],[1,`edit-control`],[`appFilterSelect`,``,1,`select`,3,`id`,`value`,`disabled`],[1,`input`,3,`id`,`type`,`value`,`required`,`maxLength`,`disabled`],[1,`edit-actions`],[3,`text`],[`appButton`,``,`type`,`submit`,`variant`,`ghost`,3,`iconOnly`,`disabled`],[`name`,`check`],[`appButton`,``,`type`,`button`,`variant`,`ghost`,3,`click`,`iconOnly`,`disabled`],[`name`,`close`],[`appFilterSelect`,``,1,`select`,3,`change`,`id`,`value`,`disabled`],[3,`value`],[1,`input`,3,`input`,`id`,`type`,`value`,`required`,`maxLength`,`disabled`],[`appButton`,``,`type`,`button`,`variant`,`ghost`,3,`iconOnly`,`disabled`],[`name`,`pencil`]],template:function(e,o){e&1&&(Us(0,`dt`,0),y_(1),fd(),Us(2,`dd`),OS(3,H,11,9,`form`)(4,A,3,2),fd()),e&2&&(Fy(`id`,o.labelId),ZC(),nv(o.label()),ZC(2),kS(o.editing()?3:4))},dependencies:[Ae,N,D,r],styles:[`[_nghost-%COMP%]{display:block}.inline-edit-compact[_nghost-%COMP%]{display:inline-flex;align-items:center;min-inline-size:0}.inline-edit-compact[_nghost-%COMP%] dt[_ngcontent-%COMP%]{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.inline-edit-compact[_nghost-%COMP%] dd[_ngcontent-%COMP%]{inline-size:auto;min-block-size:0;margin:0}.inline-edit-compact[_nghost-%COMP%] form[_ngcontent-%COMP%]{inline-size:min(20rem,100vw - 4rem)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}dd[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--%NS%space-2) var(--%NS%space-3);min-block-size:var(--%NS%control-height);inline-size:min(100%,28rem);margin:var(--%NS%space-1) 0 0;overflow-wrap:anywhere}.is-disabled[_nghost-%COMP%] dd[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}form[_ngcontent-%COMP%]{inline-size:100%}.edit-control[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--%NS%space-2)}.edit-control[_ngcontent-%COMP%] :is(.input[_ngcontent-%COMP%], .select[_ngcontent-%COMP%]){inline-size:100%}.edit-actions[_ngcontent-%COMP%]{display:flex;align-items:center}.edit-actions[_ngcontent-%COMP%] app-hint[_ngcontent-%COMP%], .edit-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{block-size:var(--%NS%control-height)}`]})};export{R as t};
@@ -1 +1 @@
1
- import{Dn as g,H as JD,K as Ke,o as A,ot as OD}from"./chunk-BAHiFuUo.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{Vr as Rs,dl as si}from"./chunk-CjtJKrza.js";import{n as m$1}from"./chunk-Dv9sNWWK.js";var m=class n{http=g(OD);current=Ke(null);async load(){try{this.current.set(wu.decodeUnknownSync(Rs)(await JD(this.http.get(`/api/branding`))))}catch{this.current.set(null)}}async update(e){let t=await m$1(this.http.put(`/api/branding`,e),Rs,si,`company.error`);return t.success&&this.current.set(t.result),t}static ɵfac=function(t){return new(t||n)};static ɵprov=A({token:n,factory:n.ɵfac,providedIn:`root`})};export{m as t};
1
+ import{Dn as g,H as JD,K as Ke,o as A,ot as OD}from"./chunk-BAHiFuUo.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{n as m$1}from"./chunk-Dv9sNWWK.js";import{Vr as Rs,dl as si}from"./chunk-D5qmP2Wu.js";var m=class n{http=g(OD);current=Ke(null);async load(){try{this.current.set(wu.decodeUnknownSync(Rs)(await JD(this.http.get(`/api/branding`))))}catch{this.current.set(null)}}async update(e){let t=await m$1(this.http.put(`/api/branding`,e),Rs,si,`company.error`);return t.success&&this.current.set(t.result),t}static ɵfac=function(t){return new(t||n)};static ɵprov=A({token:n,factory:n.ɵfac,providedIn:`root`})};export{m as t};
@@ -0,0 +1 @@
1
+ import{n as w,r as x}from"./chunk-B0bNirg2.js";import{s as u,t as c}from"./chunk-DpLF2wJ62.js";function m(e,r,i){if(e!==`stripe`&&e!==`resend`)return[];let s=`/services/${e}`;return[{id:`${e}-connection`,path:s,label:r.t(`configurationWorkspace.connection`),queryParams:i?{request:i}:void 0},{id:`${e}-tests`,path:`${s}/tests`,label:r.t(`configurationWorkspace.tests`),exact:!1}]}function l(e,r){switch(e){case`stripe`:return w(x(r,c),c);case`resend`:return w(x(r,u),u);default:return{}}}export{m as n,l as t};
@@ -1 +1 @@
1
- import{$ as MH,$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,Ir as wp,It as Us,Jr as zS,Jt as Xy,Nr as vd,P as Hn,Rn as jS,Tn as fd,Wn as kS,Wr as y_,X as LS,dr as pe,lt as OS,nt as NH,pr as qS,qn as ky,u as Ao,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{b as No,v as Dt}from"./main-AJD2LGCE.js";var L=(a,e)=>e.id;function I(a,e){if(a&1&&(Us(0,`a`,4,0),y_(2),fd()),a&2){let t=t_(1),r=qS().$implicit,n=qS();Xy(`active`,n.isActive(r,t.isActive)),Fy(`id`,r.id)(`routerLink`,e)(`queryParams`,r.queryParams)(`queryParamsHandling`,n.queryParamsHandling(r))(`preserveFragment`,n.preserveFragment())(`routerLinkActiveOptions`,n.activeOptions(r))(`ariaCurrentWhenActive`,n.currentPage(r)),ky(`aria-disabled`,n.disabled()),ZC(2),vd(` `,r.label,` `)}}function E(a,e){if(a&1){let t=zS();Us(0,`button`,5),Gy(`click`,function(){Ip(t);let n=qS().$implicit;return wp(qS().tabSelected.emit(n.id))}),y_(1),fd()}if(a&2){let t=qS().$implicit,r=qS();Xy(`active`,t.active),Fy(`disabled`,r.disabled()),ky(`aria-current`,t.active?`page`:null),ZC(),vd(` `,t.label,` `)}}function H(a,e){if(a&1&&OS(0,I,3,11,`a`,2)(1,E,2,5,`button`,3),a&2){let t,r=e.$implicit;kS((t=r.path)?0:1,t)}}var D=class a{label=NH.required();tabs=NH.required();disabled=NH(!1);preserveQuery=NH(!1);preserveFragment=NH(!1);tabSelected=MH();constructor(){let e=g(Hn),t=g(Ao),r=g(pe);for(let n of[`click`,`auxclick`]){let b=t.listen(e.nativeElement,n,y=>{this.disabled()&&(y.preventDefault(),y.stopPropagation())},{capture:!0});r.onDestroy(b)}}activeOptions(e){return{paths:e.exact===!1?`subset`:`exact`,queryParams:e.active===void 0&&e.queryParams?`subset`:`ignored`,fragment:`ignored`,matrixParams:`ignored`}}queryParamsHandling(e){return this.preserveQuery()?e.queryParams?`merge`:`preserve`:``}isActive(e,t){return e.active??t}currentPage(e){return e.active===!1?void 0:`page`}static ɵfac=function(t){return new(t||a)};static ɵcmp=Fb({type:a,selectors:[[`app-tabs`]],inputs:{label:[1,`label`],tabs:[1,`tabs`],disabled:[1,`disabled`],preserveQuery:[1,`preserveQuery`],preserveFragment:[1,`preserveFragment`]},outputs:{tabSelected:`tabSelected`},decls:3,vars:1,consts:[[`route`,`routerLinkActive`],[1,`tab-list`],[`routerLinkActive`,``,3,`id`,`routerLink`,`queryParams`,`queryParamsHandling`,`preserveFragment`,`routerLinkActiveOptions`,`active`,`ariaCurrentWhenActive`],[`type`,`button`,3,`active`,`disabled`],[`routerLinkActive`,``,3,`id`,`routerLink`,`queryParams`,`queryParamsHandling`,`preserveFragment`,`routerLinkActiveOptions`,`ariaCurrentWhenActive`],[`type`,`button`,3,`click`,`disabled`]],template:function(t,r){t&1&&(Us(0,`nav`,1),LS(1,H,2,1,null,null,L),fd()),t&2&&(ky(`aria-label`,r.label()),ZC(),jS(r.tabs()))},dependencies:[Dt,No],styles:[`[_nghost-%COMP%]{--%NS%scrollbar-size: var(--%NS%scrollbar-compact-size);--%NS%scrollbar-thumb-border: 1px;display:block;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.tab-list[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%space-2);min-width:max-content;border-bottom:1px solid var(--%NS%color-line);padding-block-end:var(--%NS%space-3)}:is(a[_ngcontent-%COMP%], button[_ngcontent-%COMP%]){--%NS%icon-color: currentColor;border-color:transparent;border-radius:var(--%NS%radius-sm);background:transparent;color:var(--%NS%color-muted);text-decoration:none;text-shadow:none;box-shadow:none;cursor:pointer;display:inline-flex;align-items:center;min-height:var(--%NS%control-height);padding:var(--%NS%space-2) var(--%NS%space-3);border:0}[_ngcontent-%COMP%]:is(a,button):not([aria-disabled=true],[aria-current=page]):hover{background:color-mix(in oklab,var(--%NS%color-surface-sunken),transparent 35%);color:var(--%NS%color-ink)}[_ngcontent-%COMP%]:is(a,button)[aria-current=page]{background:var(--%NS%color-panel);color:var(--%NS%color-ink);box-shadow:var(--%NS%shadow-panel);font-weight:700}[_ngcontent-%COMP%]:is(a,button):focus-visible{outline:2px solid var(--%NS%color-focus);outline-offset:-2px}[_ngcontent-%COMP%]:is(a,button)[aria-disabled=true], button[_ngcontent-%COMP%]:disabled{cursor:not-allowed;opacity:.55}`]})};export{D as t};
1
+ import{$ as MH,$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,Ir as wp,It as Us,Jr as zS,Jt as Xy,Nr as vd,P as Hn,Rn as jS,Tn as fd,Wn as kS,Wr as y_,X as LS,dr as pe,lt as OS,nt as NH,pr as qS,qn as ky,u as Ao,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{b as No,v as Dt}from"./main-F7D3L737.js";var L=(a,e)=>e.id;function I(a,e){if(a&1&&(Us(0,`a`,4,0),y_(2),fd()),a&2){let t=t_(1),r=qS().$implicit,n=qS();Xy(`active`,n.isActive(r,t.isActive)),Fy(`id`,r.id)(`routerLink`,e)(`queryParams`,r.queryParams)(`queryParamsHandling`,n.queryParamsHandling(r))(`preserveFragment`,n.preserveFragment())(`routerLinkActiveOptions`,n.activeOptions(r))(`ariaCurrentWhenActive`,n.currentPage(r)),ky(`aria-disabled`,n.disabled()),ZC(2),vd(` `,r.label,` `)}}function E(a,e){if(a&1){let t=zS();Us(0,`button`,5),Gy(`click`,function(){Ip(t);let n=qS().$implicit;return wp(qS().tabSelected.emit(n.id))}),y_(1),fd()}if(a&2){let t=qS().$implicit,r=qS();Xy(`active`,t.active),Fy(`disabled`,r.disabled()),ky(`aria-current`,t.active?`page`:null),ZC(),vd(` `,t.label,` `)}}function H(a,e){if(a&1&&OS(0,I,3,11,`a`,2)(1,E,2,5,`button`,3),a&2){let t,r=e.$implicit;kS((t=r.path)?0:1,t)}}var D=class a{label=NH.required();tabs=NH.required();disabled=NH(!1);preserveQuery=NH(!1);preserveFragment=NH(!1);tabSelected=MH();constructor(){let e=g(Hn),t=g(Ao),r=g(pe);for(let n of[`click`,`auxclick`]){let b=t.listen(e.nativeElement,n,y=>{this.disabled()&&(y.preventDefault(),y.stopPropagation())},{capture:!0});r.onDestroy(b)}}activeOptions(e){return{paths:e.exact===!1?`subset`:`exact`,queryParams:e.active===void 0&&e.queryParams?`subset`:`ignored`,fragment:`ignored`,matrixParams:`ignored`}}queryParamsHandling(e){return this.preserveQuery()?e.queryParams?`merge`:`preserve`:``}isActive(e,t){return e.active??t}currentPage(e){return e.active===!1?void 0:`page`}static ɵfac=function(t){return new(t||a)};static ɵcmp=Fb({type:a,selectors:[[`app-tabs`]],inputs:{label:[1,`label`],tabs:[1,`tabs`],disabled:[1,`disabled`],preserveQuery:[1,`preserveQuery`],preserveFragment:[1,`preserveFragment`]},outputs:{tabSelected:`tabSelected`},decls:3,vars:1,consts:[[`route`,`routerLinkActive`],[1,`tab-list`],[`routerLinkActive`,``,3,`id`,`routerLink`,`queryParams`,`queryParamsHandling`,`preserveFragment`,`routerLinkActiveOptions`,`active`,`ariaCurrentWhenActive`],[`type`,`button`,3,`active`,`disabled`],[`routerLinkActive`,``,3,`id`,`routerLink`,`queryParams`,`queryParamsHandling`,`preserveFragment`,`routerLinkActiveOptions`,`ariaCurrentWhenActive`],[`type`,`button`,3,`click`,`disabled`]],template:function(t,r){t&1&&(Us(0,`nav`,1),LS(1,H,2,1,null,null,L),fd()),t&2&&(ky(`aria-label`,r.label()),ZC(),jS(r.tabs()))},dependencies:[Dt,No],styles:[`[_nghost-%COMP%]{--%NS%scrollbar-size: var(--%NS%scrollbar-compact-size);--%NS%scrollbar-thumb-border: 1px;display:block;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.tab-list[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%space-2);min-width:max-content;border-bottom:1px solid var(--%NS%color-line);padding-block-end:var(--%NS%space-3)}:is(a[_ngcontent-%COMP%], button[_ngcontent-%COMP%]){--%NS%icon-color: currentColor;border-color:transparent;border-radius:var(--%NS%radius-sm);background:transparent;color:var(--%NS%color-muted);text-decoration:none;text-shadow:none;box-shadow:none;cursor:pointer;display:inline-flex;align-items:center;min-height:var(--%NS%control-height);padding:var(--%NS%space-2) var(--%NS%space-3);border:0}[_ngcontent-%COMP%]:is(a,button):not([aria-disabled=true],[aria-current=page]):hover{background:color-mix(in oklab,var(--%NS%color-surface-sunken),transparent 35%);color:var(--%NS%color-ink)}[_ngcontent-%COMP%]:is(a,button)[aria-current=page]{background:var(--%NS%color-panel);color:var(--%NS%color-ink);box-shadow:var(--%NS%shadow-panel);font-weight:700}[_ngcontent-%COMP%]:is(a,button):focus-visible{outline:2px solid var(--%NS%color-focus);outline-offset:-2px}[_ngcontent-%COMP%]:is(a,button)[aria-disabled=true], button[_ngcontent-%COMP%]:disabled{cursor:not-allowed;opacity:.55}`]})};export{D as t};
@@ -1 +1 @@
1
- import{t as l}from"./chunk-BwCtja5l.js";import{Dn as g,E as Ft}from"./chunk-BAHiFuUo.js";import{T as ue,a as T,m as Ie,y as G}from"./main-AJD2LGCE.js";import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import{t}from"./chunk-CKxU-VJf.js";import{t as Ft$1}from"./chunk-DjewtV43.js";var k={q:`q`,sort:`sort`,filter:`filter`};var O=wu.String.check(wu.isMaxLength(120));var x=(n,r)=>{let a=r.parameters??k,s=wu.Literals(r.columns.flatMap(({key:t})=>[`${t}Asc`,`${t}Desc`])),i=wu.Literals([`all`,...(r.filters??[]).map(({value:t})=>t)]),d=(t,g,o)=>n.getAll(t).length!==1?o:Me.getOrElse(wu.decodeUnknownOption(g)(n.get(t)),()=>o);return{q:d(a.q,O,``),sort:d(a.sort,s,`none`),filter:d(a.filter,i,`all`)}};var w=(n,r)=>{let a=r.parameters??k,s={};return n.q!==``&&(s[a.q]=n.q),n.sort!==`none`&&(s[a.sort]=n.sort),n.filter!==`all`&&(s[a.filter]=n.filter),s};var M=(n,r,a,s)=>{a===`none`&&(a=r.defaultSort);let i=r.columns.find(({key:o})=>a===`${o}Asc`||a===`${o}Desc`);if(i===void 0)throw new Error(`workspace.invalid_sort`);let d=new Intl.Collator(s,{numeric:!0,sensitivity:`base`}),t=a.endsWith(`Desc`)?-1:1,g=i.kind===`number`?(o,m)=>{let c=i.value(o),l=i.value(m);return c===null?l===null?0:1:l===null?-1:t*(c-l)}:(o,m)=>{let c=i.value(o,s),l=i.value(m,s);return c===null?l===null?0:1:l===null?-1:t*d.compare(c,l)};return n.toSorted((o,m)=>{let c=g(o.item,m.item),l=r.id(o.item),e=r.id(m.item);return c||(l<e?-1:l>e?1:0)})};var P=(n,r,a)=>n.matches?.find(s=>s.key===r&&(a===void 0||s.refIndex===a))?.indices??[];var N=(n,r)=>{let a=g(G),s=g(ue),i=g(Ie),d=T(a.queryParamMap,{requireSync:!0}),t$1=Ft(()=>x(d(),r)),o=Ft$1(Ft(()=>n().filter(e=>t$1().filter===`all`||r.matchesFilter?.(e,t$1().filter)===!0)),Ft(()=>t$1().q),{keys:r.searchKeys,includeMatches:!0,ignoreDiacritics:!0,ignoreLocation:!0,threshold:.35}),m=Ft(()=>M(o(),r,t$1().sort,i.language())),c=Ft(()=>[{value:`all`,label:i.t(`configurationWorkspace.allRows`)},...(r.filters??[]).map(({value:e,label:f})=>({value:e,label:i.t(f)}))]),l$1=(e,f=!1)=>{let b=r.parameters??k;s.navigate([],{relativeTo:a,queryParams:l({[b.q]:null,[b.sort]:null,[b.filter]:null},w(l(l({},t$1()),e),r)),queryParamsHandling:`merge`,replaceUrl:f})};return{query:t$1,results:m,rows:Ft(()=>m().map(({item:e})=>e)),params:Ft(()=>w(t$1(),r)),filterOptions:c,filterSummary:Ft(()=>c().find(({value:e})=>e===t$1().filter)?.label??``),match:P,direction:e=>t$1().sort===`${e}Asc`?`ascending`:t$1().sort===`${e}Desc`?`descending`:`none`,sort:e=>{r.columns.some(({key:f})=>f===e)&&l$1({sort:t(t$1().sort,`${e}Asc`,`${e}Desc`)})},search:e=>l$1({q:e.slice(0,120)},!0),filter:e=>{(e===`all`||r.filters?.some(f=>f.value===e))&&l$1({filter:e})}}};export{w as n,x as r,N as t};
1
+ import{t as l}from"./chunk-BwCtja5l.js";import{Dn as g,E as Ft}from"./chunk-BAHiFuUo.js";import{T as ue,a as T,m as Ie,y as G}from"./main-F7D3L737.js";import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import{t as Ft$1}from"./chunk-DjewtV43.js";import{t}from"./chunk-CKxU-VJf.js";var k={q:`q`,sort:`sort`,filter:`filter`};var O=wu.String.check(wu.isMaxLength(120));var x=(n,r)=>{let a=r.parameters??k,s=wu.Literals(r.columns.flatMap(({key:t})=>[`${t}Asc`,`${t}Desc`])),i=wu.Literals([`all`,...(r.filters??[]).map(({value:t})=>t)]),d=(t,g,o)=>n.getAll(t).length!==1?o:Me.getOrElse(wu.decodeUnknownOption(g)(n.get(t)),()=>o);return{q:d(a.q,O,``),sort:d(a.sort,s,`none`),filter:d(a.filter,i,`all`)}};var w=(n,r)=>{let a=r.parameters??k,s={};return n.q!==``&&(s[a.q]=n.q),n.sort!==`none`&&(s[a.sort]=n.sort),n.filter!==`all`&&(s[a.filter]=n.filter),s};var M=(n,r,a,s)=>{a===`none`&&(a=r.defaultSort);let i=r.columns.find(({key:o})=>a===`${o}Asc`||a===`${o}Desc`);if(i===void 0)throw new Error(`workspace.invalid_sort`);let d=new Intl.Collator(s,{numeric:!0,sensitivity:`base`}),t=a.endsWith(`Desc`)?-1:1,g=i.kind===`number`?(o,m)=>{let c=i.value(o),l=i.value(m);return c===null?l===null?0:1:l===null?-1:t*(c-l)}:(o,m)=>{let c=i.value(o,s),l=i.value(m,s);return c===null?l===null?0:1:l===null?-1:t*d.compare(c,l)};return n.toSorted((o,m)=>{let c=g(o.item,m.item),l=r.id(o.item),e=r.id(m.item);return c||(l<e?-1:l>e?1:0)})};var P=(n,r,a)=>n.matches?.find(s=>s.key===r&&(a===void 0||s.refIndex===a))?.indices??[];var N=(n,r)=>{let a=g(G),s=g(ue),i=g(Ie),d=T(a.queryParamMap,{requireSync:!0}),t$1=Ft(()=>x(d(),r)),o=Ft$1(Ft(()=>n().filter(e=>t$1().filter===`all`||r.matchesFilter?.(e,t$1().filter)===!0)),Ft(()=>t$1().q),{keys:r.searchKeys,includeMatches:!0,ignoreDiacritics:!0,ignoreLocation:!0,threshold:.35}),m=Ft(()=>M(o(),r,t$1().sort,i.language())),c=Ft(()=>[{value:`all`,label:i.t(`configurationWorkspace.allRows`)},...(r.filters??[]).map(({value:e,label:f})=>({value:e,label:i.t(f)}))]),l$1=(e,f=!1)=>{let b=r.parameters??k;s.navigate([],{relativeTo:a,queryParams:l({[b.q]:null,[b.sort]:null,[b.filter]:null},w(l(l({},t$1()),e),r)),queryParamsHandling:`merge`,replaceUrl:f})};return{query:t$1,results:m,rows:Ft(()=>m().map(({item:e})=>e)),params:Ft(()=>w(t$1(),r)),filterOptions:c,filterSummary:Ft(()=>c().find(({value:e})=>e===t$1().filter)?.label??``),match:P,direction:e=>t$1().sort===`${e}Asc`?`ascending`:t$1().sort===`${e}Desc`?`descending`:`none`,sort:e=>{r.columns.some(({key:f})=>f===e)&&l$1({sort:t(t$1().sort,`${e}Asc`,`${e}Desc`)})},search:e=>l$1({q:e.slice(0,120)},!0),filter:e=>{(e===`all`||r.filters?.some(f=>f.value===e))&&l$1({filter:e})}}};export{w as n,x as r,N as t};
@@ -0,0 +1 @@
1
+ import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,E as Ft,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,Tn as fd,V as Iy,W as KS,Wn as kS,Wr as y_,X as LS,en as ZS,lt as OS,mr as qT,nt as NH,o as A,pr as qS,qn as ky,tn as ZT,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{T as ue,m as Ie,o as U,r as N,y as G}from"./main-F7D3L737.js";import{d as nr,h as yn}from"./chunk-CSkyOfSg.js";import{t as Fe}from"./chunk-DB6sOjsn2.js";import{n as b,t as Z$1}from"./chunk-CABvk97t2.js";import{i as U$1,r as Q}from"./chunk-CCqlW8pS2.js";import{t as B}from"./chunk-qKosqkwC.js";import{b as y}from"./chunk-B6Rml85x2.js";var ee=[[[``,`listActions`,``]]];var te=[`[listActions]`];var ie=(n,t)=>t[0];function ne(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,6),Gy(`committed`,function(){Ip(e);let r=qS(),a=t_(3);return r.state.update(),wp(a.close())}),fd(),qT()}if(n&2){let e=qS();Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.clientOptions())(`formField`,e.state.fields.client),ZT()}}function re(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,6),Gy(`committed`,function(){Ip(e);let r=qS(2),a=t_(3);return r.state.update(),wp(a.close())}),fd(),qT()}if(n&2){let e=qS(2);Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.statusOptions())(`formField`,e.state.fields.status),ZT()}}function ae(n,t){if(n&1&&Iy(0,re,1,4,`ng-template`,3),n&2){let e=qS();Fy(`label`,e.i18n.t(`billingWorkspace.financialStatus`))(`summary`,e.label(`status`,e.state.fields.status().value()))}}function le(n,t){if(n&1){let e=zS();Us(0,`app-date-range-filter`,7),Gy(`rangeApplied`,function(r){Ip(e);let a=qS(),h=t_(3);return a.state.applyPeriod(r),wp(h.close())}),fd()}if(n&2){let e=qS();Fy(`from`,e.state.fields.from().value()||void 0)(`to`,e.state.fields.to().value()||void 0)}}function oe(n,t){if(n&1){let e=zS();Us(0,`button`,9),Gy(`click`,function(){let r=Ip(e).$implicit;return wp(qS(2).state.clear(r[0]))}),y_(1),fd()}if(n&2){let e=t.$implicit,i=qS(2);ky(`aria-label`,i.i18n.t(`billingWorkspace.removeFilter`)+` : `+i.label(e[0],e[1])),ZC(),vd(` `,i.label(e[0],e[1]),` × `)}}function se(n,t){if(n&1){let e=zS();Us(0,`div`,5),LS(1,oe,2,2,`button`,8,ie),Us(3,`button`,9),Gy(`click`,function(){Ip(e);return wp(qS().state.clear())}),y_(4),fd()()}if(n&2){let e=qS();ZC(),jS(e.state.active()),ZC(3),vd(` `,e.i18n.t(`billingWorkspace.clear`),` `)}}var Y=n=>l({q:(n.get(`q`)??``).slice(0,160),status:n.get(`status`)??``,client:n.get(`client`)??``},y(n));var P=class n{i18n=g(Ie);route=g(G);router=g(ue);params=Ke(this.route.snapshot.queryParamMap);fields=nr(Ke(Y(this.route.snapshot.queryParamMap)));periodSummary=Ft(()=>{let{from:t,to:e}=this.fields().value();return[t?`${this.i18n.t(`dateRangeFilter.from`)} : ${t}`:``,e?`${this.i18n.t(`dateRangeFilter.to`)} : ${e}`:``].filter(Boolean).join(` · `)||this.i18n.t(`billingWorkspace.all`)});active=Ft(()=>{let t=this.fields().value(),e=Object.entries(t).filter(([i,r])=>i!==`from`&&i!==`to`&&r!==``);return(t.from||t.to)&&e.push([`period`,this.periodSummary()]),e});filterCount=Ft(()=>this.active().filter(([t])=>t!==`q`).length);constructor(){this.route.queryParamMap.pipe(U()).subscribe(t=>{this.params.set(t),this.fields().reset(Y(t))})}update(){this.router.navigate([],{relativeTo:this.route,queryParams:this.fields().value(),queryParamsHandling:`merge`,replaceUrl:!0})}setSearch(t){this.fields.q().value.set(t.slice(0,160)),this.update()}applyPeriod(t){this.fields().reset(m(l({},this.fields().value()),{from:t.from??``,to:t.to??``})),this.update()}updateSort(t){this.router.navigate([],{relativeTo:this.route,queryParams:m(l({},this.fields().value()),{sort:t===`none`?null:t}),queryParamsHandling:`merge`,replaceUrl:!0})}clear(t){this.fields().reset(t===void 0?{q:``,status:``,client:``,from:``,to:``}:t===`period`?m(l({},this.fields().value()),{from:``,to:``}):m(l({},this.fields().value()),{[t]:``})),this.update()}passes(t,e){let{status:i,client:r,from:a,to:h}=this.fields().value();return(!r||t.clientId===r)&&(!a||e>=a)&&(!h||e<=h)&&(!i||!(`cancelledAt`in t)||(i===`cancelled`?t.cancelledAt!=null:t.cancelledAt===null))}static ɵfac=function(e){return new(e||n)};static ɵprov=A({token:n,factory:n.ɵfac})};var Z=class n{state=g(P);i18n=g(Ie);clients=NH.required();periodLabel=NH.required();showStatus=NH(!0);disabled=NH(!1);clientOptions=Ft(()=>[{value:``,label:this.i18n.t(`billingWorkspace.all`)},...this.clients().map(([t,e])=>({value:t,label:e}))]);statusOptions=Ft(()=>[``,`active`,`cancelled`].map(t=>({value:t,label:this.label(`status`,t)})));label(t,e){return e===``?this.i18n.t(`billingWorkspace.all`):t===`client`?this.clients().find(([i])=>i===e)?.[1]??e:t===`status`?this.i18n.t(e===`cancelled`?`billingWorkspace.cancelled`:`billingWorkspace.active`):e}static ɵfac=function(e){return new(e||n)};static ɵcmp=Fb({type:n,selectors:[[`app-billing-entry-filters`]],hostAttrs:[2,`display`,`contents`],inputs:{clients:[1,`clients`],periodLabel:[1,`periodLabel`],showStatus:[1,`showStatus`],disabled:[1,`disabled`]},ngContentSelectors:te,decls:10,vars:13,consts:[[`menu`,``],[`listSearch`,``,3,`valueChange`,`label`,`value`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``],[1,`chips`],[3,`committed`,`label`,`emptyLabel`,`options`,`formField`],[3,`rangeApplied`,`from`,`to`],[`appButton`,``,`type`,`button`],[`appButton`,``,`type`,`button`,3,`click`]],template:function(e,i){e&1&&(ZS(ee),Us(0,`app-list-toolbar`)(1,`app-list-search`,1),Gy(`valueChange`,function(a){return i.state.setSearch(a)}),fd(),Us(2,`app-filter-menu`,2,0),Iy(4,ne,1,4,`ng-template`,3),OS(5,ae,1,2,null,3),Iy(6,le,1,2,`ng-template`,3),fd(),Us(7,`div`,4),KS(8),fd()(),OS(9,se,5,1,`div`,5)),e&2&&(ZC(),Fy(`label`,i.i18n.t(`billingWorkspace.search`))(`value`,i.state.fields.q().value()),ZC(),Fy(`label`,i.i18n.t(`listWorkspace.filters`))(`closeLabel`,i.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,i.i18n.t(`listWorkspace.backFilters`))(`activeCount`,i.state.filterCount())(`disabled`,i.disabled()),ZC(2),Fy(`label`,i.i18n.t(`backOffice.invoices.client`))(`summary`,i.label(`client`,i.state.fields.client().value())),ZC(),kS(i.showStatus()?5:-1),ZC(),Fy(`label`,i.periodLabel())(`summary`,i.state.periodSummary()),ZC(3),kS(i.state.active().length?9:-1))},dependencies:[yn,N,U$1,Q,Z$1,b,Fe,B],styles:[`.chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:end;gap:var(--%NS%space-3)}`]})};export{Z as n,P as t};
@@ -0,0 +1 @@
1
+ import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,E as Ft$1,Er as sv,Fn as iv,Gn as k_,Ir as wp,It as Us,J as Ky,Jr as zS,Jt as Xy,K as Ke,M as H_,Nr as vd,Rn as jS,Rt as V_,Sr as rv,Tn as fd,V as Iy,Vr as xH,Wn as kS,Wr as y_,X as LS,dr as pe,ft as Ol,gn as ce,j as H,lt as OS,mr as qT,mt as PH,pr as qS,qn as ky,rn as Zw,rr as nv,sr as ov,tn as ZT,tt as Mn,ut as O_,vt as Py,w as Fb,xn as e_,z as Ip,zn as j_}from"./chunk-BAHiFuUo.js";import{T as ue,a as T,h as Ne,m as Ie,o as U,r as N,v as Dt$1,y as G}from"./main-F7D3L737.js";import{wi as wu}from"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{Ia as a}from"./chunk-D5qmP2Wu.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import{t as Ae}from"./chunk-DM5aibnW.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as E}from"./chunk-DsaNNeZe.js";import{t as l$1}from"./chunk-BVszSMJC.js";import{t as u}from"./chunk-Bfx7EEIR.js";import{t as c}from"./chunk-enci06qG.js";import{d as nr,f as or,h as yn,n as an,o as gn,r as cn,t as P,u as mn}from"./chunk-CSkyOfSg.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-D5MFwK9L.js";import{S as x,a as I,b as q,i as H$1,n as D,p as T$1,s as L$1,u as O,v as j,y as k$1}from"./chunk-CMvRZBpn.js";import{t as P$1}from"./chunk-niXXbm7H.js";import{t as p}from"./chunk-BHEFFEGN.js";import{t as R}from"./chunk-NDpjbcAr2.js";import{t as w}from"./chunk-Bq2zV2_3.js";import{a as u$1,i as m$1}from"./chunk-Dx1NwQCW.js";var je=[`result`];var Je=[`cancelReason`];var Xe=n=>[`/purchases`,n];var ne=n=>[`/invoices`,n];var Ge=()=>({dateStyle:`medium`,timeStyle:`short`});var Ye=(n,t)=>t.batchId+t.invoiceId;var L=(n,t)=>t.id;var Ze=(n,t)=>t.paymentId;var Qe=(n,t)=>t.key;var et=(n,t)=>t.matchId;function tt(n,t){if(n&1&&(Us(0,`div`,7,0)(2,`p`,9),y_(3),fd()()),n&2){let e=qS();ZC(3),nv(e.i18n.t(`bank.saved`))}}function nt(n,t){if(n&1){let e=zS();Us(0,`div`)(1,`button`,11),Gy(`click`,function(){Ip(e);return wp(qS(2).refresh())}),y_(2),fd()()}if(n&2){let e=qS(2);ZC(),Fy(`disabled`,e.busy()),ZC(),vd(` `,e.i18n.t(`bank.reload`),` `)}}function it(n,t){if(n&1&&(Us(0,`p`,10),y_(1),fd(),OS(2,nt,3,2,`div`)),n&2){let e=qS();ZC(),nv(e.i18n.t(t)),ZC(),kS(e.state()===`ready`&&!e.pendingMatch()&&!e.pendingCancellation()?2:-1)}}function at(n,t){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let e=qS();ZC(),nv(e.i18n.t(`bank.loading`))}}function ot(n,t){if(n&1){let e=zS();Us(0,`div`)(1,`button`,12),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(2),fd()()}if(n&2){let e=qS();ZC(2),nv(e.i18n.t(`bank.reload`))}}function rt(n,t){if(n&1&&(Us(0,`div`)(1,`dt`),y_(2),fd(),Us(3,`dd`),y_(4),fd()(),Us(5,`div`)(6,`dt`),y_(7),fd(),Us(8,`dd`),y_(9),fd()()),n&2){let e=qS(),a=qS();ZC(2),nv(a.i18n.t(`bank.allocated`)),ZC(2),nv(a.money(e.matchedCents)),ZC(3),nv(a.i18n.t(`bank.remaining`)),ZC(2),nv(a.money(a.remaining()))}}function ct(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.noSupplierPayments`))}}function lt(n,t){if(n&1){let e=zS();Us(0,`li`)(1,`button`,11),Gy(`click`,function(){let l=Ip(e).$implicit;return wp(qS(4).matchSupplier(l))}),y_(2),fd()()}if(n&2){let e=t.$implicit,a=qS(4);ZC(),Fy(`disabled`,a.busy()),ZC(),ov(` `,e.reference,` · `,e.supplierName,` · `,a.money(e.availableCents),` `)}}function st(n,t){if(n&1){let e=zS();Us(0,`button`,11),Gy(`click`,function(){Ip(e);let l=qS().$implicit;return wp(qS(5).unmatchSupplier(l))}),y_(1),fd()}if(n&2){let e=qS(6);Fy(`disabled`,e.busy()),ZC(),vd(` `,e.i18n.t(`bankWorkspace.unmatch`),` `)}}function dt(n,t){if(n&1&&(Us(0,`tr`)(1,`th`,34)(2,`a`,35),y_(3),fd()(),Us(4,`td`),y_(5),fd(),Us(6,`td`),y_(7),fd(),Us(8,`td`),OS(9,st,2,2,`button`,36),fd()()),n&2){let e=t.$implicit,a=qS(5);ZC(2),Fy(`routerLink`,k_(5,Xe,e.invoiceId)),ZC(),nv(e.invoiceId),ZC(2),nv(a.money(e.amountCents)),ZC(2),nv(e.cancelledAt),ZC(2),kS(e.cancelledAt?-1:9)}}function mt(n,t){if(n&1&&(Us(0,`h3`),y_(1),fd(),Us(2,`div`,32)(3,`table`)(4,`thead`)(5,`tr`)(6,`th`,33),y_(7),fd(),Us(8,`th`,33),y_(9),fd(),Us(10,`th`,33),y_(11),fd(),Us(12,`th`,33),y_(13),fd()()(),Us(14,`tbody`),LS(15,dt,10,7,`tr`,null,L),fd()()()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.supplierMatchHistory`)),ZC(6),nv(e.i18n.t(`bank.invoice`)),ZC(2),nv(e.i18n.t(`bankWorkspace.amount`)),ZC(2),nv(e.i18n.t(`bankWorkspace.status`)),ZC(2),nv(e.i18n.t(`bankWorkspace.actions`)),ZC(2),jS(e.supplierMatches())}}function pt(n,t){if(n&1&&(Us(0,`section`,21)(1,`h2`,30),y_(2),fd(),Us(3,`p`,18),y_(4),fd(),OS(5,ct,2,1,`p`),Us(6,`ul`,31),LS(7,lt,3,4,`li`,null,Ye),fd(),OS(9,mt,17,5),fd()),n&2){let e=qS(3);ZC(2),nv(e.i18n.t(`bankWorkspace.supplierPayments`)),ZC(2),nv(e.i18n.t(`bankWorkspace.supplierPaymentsHint`)),ZC(),kS(e.supplierPayments().length?-1:5),ZC(2),jS(e.supplierPayments()),ZC(2),kS(e.supplierMatches().length?9:-1)}}function ut(n,t){n&1&&Iy(0,pt,10,4,`section`,29),n&2&&Fy(`appCan`,`bank.reconcile`)}function _t(n,t){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.suggestionsLoading`))}}function yt(n,t){if(n&1){let e=zS();Us(0,`li`)(1,`button`,57),Gy(`click`,function(){let l=Ip(e).$implicit;return wp(qS(5).applySuggestion(l))}),y_(2),fd()()}if(n&2){let e=t.$implicit,a=qS(5);ZC(2),iv(` `,e.invoiceNumber,` · `,e.clientDisplayName,` · `,a.money(e.amountCents),` · `,e.score,`% `)}}function ht(n,t){if(n&1&&(Us(0,`section`,39)(1,`h3`,56),y_(2),fd(),Us(3,`p`,18),y_(4),fd(),Us(5,`ul`),LS(6,yt,3,4,`li`,null,Ze),fd()()),n&2){let e=qS(4);ZC(2),nv(e.i18n.t(`bankWorkspace.suggestions`)),ZC(2),nv(e.i18n.t(`bankWorkspace.suggestionsHint`)),ZC(2),jS(e.suggestions())}}function ft(n,t){if(n&1){let e=zS();Us(0,`p`,10),y_(1),fd(),Us(2,`div`)(3,`button`,12),Gy(`click`,function(){Ip(e);return wp(qS(4).loadInvoices())}),y_(4),fd()()}if(n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bank.error`)),ZC(3),vd(` `,e.i18n.t(`bank.reload`),` `)}}function xt(n,t){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bank.loading`))}}function vt(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.noInvoices`))}}function bt(n,t){if(n&1&&(Us(0,`option`,44),y_(1),fd()),n&2){let e=t.$implicit;Fy(`value`,e.id),ZC(),rv(` `,e.invoiceNumber,` — `,e.title,` `)}}function Ct(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.invoiceInvalid`),` `)}function gt(n,t){if(n&1&&(Us(0,`a`,35),y_(1),fd()),n&2){let e=qS(4);Fy(`routerLink`,k_(2,ne,e.matchForm.invoiceId().value())),ZC(),nv(e.i18n.t(`bankWorkspace.viewInvoice`))}}function kt(n,t){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bank.loading`))}}function St(n,t){if(n&1){let e=zS();Us(0,`p`,10),y_(1),fd(),Us(2,`div`)(3,`button`,12),Gy(`click`,function(){Ip(e);let l=qS(4);return wp(l.selectInvoice(l.matchForm.invoiceId().value()))}),y_(4),fd()()}if(n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bank.error`)),ZC(3),vd(` `,e.i18n.t(`bank.reload`),` `)}}function It(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.noPayments`))}}function Bt(n,t){if(n&1&&(Us(0,`option`,44),y_(1),j_(2,`localizedDate`),fd()),n&2){let e=t.$implicit,a=qS(4);Fy(`value`,e.id),ZC(),ov(` `,e.reference,` — `,V_(2,4,e.paidOn,a.i18n.language()),` — `,a.money(e.availableCents),` `)}}function Et(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.paymentInvalid`),` `)}function Mt(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.amountInvalid`),` `)}function Rt(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.feeInvalid`),` `)}function wt(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(4);ZC(),rv(``,e.i18n.t(`bankWorkspace.net`),` : `,e.money(e.net()??0))}}function Tt(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.netInvalid`),` `)}function Pt(n,t){if(n&1&&(Us(0,`p`,54),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.retryHint`))}}function Ft(n,t){if(n&1){let e=zS();Us(0,`section`,22)(1,`h2`,38),y_(2),fd(),Us(3,`p`),y_(4),fd(),Us(5,`p`,18),y_(6),fd(),OS(7,_t,2,1,`p`,8)(8,ht,8,2,`section`,39),OS(9,ft,5,2)(10,xt,2,1,`p`,8)(11,vt,2,1,`p`),Us(12,`form`,40),Gy(`submit`,function(l){Ip(e);return wp(qS(3).reconcile(l))}),Us(13,`label`,41),y_(14),Us(15,`select`,42,1),Gy(`change`,function(){Ip(e);let l=t_(16);return wp(qS(3).selectInvoice(l.value))}),Us(17,`option`,43),y_(18),fd(),LS(19,bt,2,3,`option`,44,L),fd(),qT(),Us(21,`span`,45),OS(22,Ct,1,1),fd()(),OS(23,gt,2,4,`a`,35),OS(24,kt,2,1,`p`,8)(25,St,5,2)(26,It,2,1,`p`),Us(27,`label`,41),y_(28),Us(29,`select`,46)(30,`option`,43),y_(31),fd(),LS(32,Bt,3,7,`option`,44,L),fd(),qT(),Us(34,`span`,47),OS(35,Et,1,1),fd()(),Us(36,`label`,41),y_(37),Py(38,`input`,48),qT(),Us(39,`span`,49),OS(40,Mt,1,1),fd()(),Us(41,`label`,41),y_(42),Py(43,`input`,50),qT(),Us(44,`span`,51),OS(45,Rt,1,1),fd()(),Us(46,`p`,52),y_(47),fd(),OS(48,wt,2,2,`p`),Us(49,`p`,53),OS(50,Tt,1,1),fd(),OS(51,Pt,2,1,`p`,54),Us(52,`div`)(53,`button`,55),y_(54),fd()()()()}if(n&2){let e=qS(3);ZC(2),nv(e.i18n.t(`bankWorkspace.allocate`)),ZC(2),nv(e.i18n.t(`bankWorkspace.groupHint`)),ZC(2),nv(e.i18n.t(`bankWorkspace.paymentHint`)),ZC(),kS(e.suggestionState()===`loading`?7:e.suggestions().length>0?8:-1),ZC(2),kS(e.invoicesFailed()?9:e.invoicesLoading()?10:e.invoices().length?-1:11),ZC(5),nv(e.i18n.t(`bank.invoice`)),ZC(),Fy(`formField`,e.matchForm.invoiceId),ky(`aria-invalid`,e.invalid(`invoiceId`)),ZT(),ZC(3),nv(e.i18n.t(`bank.chooseInvoice`)),ZC(),jS(e.invoices()),ZC(3),kS(e.invalid(`invoiceId`)?22:-1),ZC(),kS(e.matchForm.invoiceId().value()?23:-1),ZC(),kS(e.paymentState()===`loading`?24:e.paymentState()===`error`?25:e.paymentState()===`ready`&&!e.payments().length?26:-1),ZC(4),nv(e.i18n.t(`bankWorkspace.payment`)),ZC(),Fy(`formField`,e.matchForm.paymentId),ky(`aria-invalid`,e.invalid(`paymentId`)),ZT(),ZC(2),nv(e.i18n.t(`bankWorkspace.choosePayment`)),ZC(),jS(e.payments()),ZC(3),kS(e.invalid(`paymentId`)?35:-1),ZC(2),nv(e.i18n.t(`bank.allocationAmount`)),ZC(),Fy(`formField`,e.matchForm.amount),ky(`aria-invalid`,e.invalid(`amount`)||e.netInvalid()),ZT(),ZC(2),kS(e.invalid(`amount`)?40:-1),ZC(2),nv(e.i18n.t(`bank.feeAmount`)),ZC(),Fy(`formField`,e.matchForm.fee),ky(`aria-invalid`,e.invalid(`fee`)),ZT(),ZC(2),kS(e.invalid(`fee`)?45:-1),ZC(2),nv(e.i18n.t(`bank.feeHint`)),ZC(),kS(e.net()!==void 0?48:-1),ZC(2),kS(e.netInvalid()?50:-1),ZC(),kS(e.pendingMatch()?51:-1),ZC(2),Fy(`disabled`,e.busy()||!!e.cancelling()||e.invoicesLoading()||e.paymentState()===`loading`),ZC(),vd(` `,e.i18n.t(e.pendingMatch()?`bankWorkspace.retry`:`bank.reconcile`),` `)}}function Nt(n,t){n&1&&Iy(0,Ft,55,31,`section`,37),n&2&&Fy(`appCan`,`bank.reconcile`)}function Dt(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(`bankWorkspace.noAllocations`))}}function Wt(n,t){if(n&1){let e=zS();Us(0,`th`,33)(1,`button`,59),Gy(`click`,function(){let l=Ip(e).$implicit;return wp(qS(3).sortBy(`allocation`,l.key))}),fd()()}if(n&2){let e=t.$implicit,a=qS(3);Xy(`amount`,e.kind===`number`),ky(`aria-sort`,a.sortDirection(`allocation`,e.key)),ZC(),Fy(`label`,a.i18n.t(e.label))(`direction`,a.sortDirection(`allocation`,e.key))}}function Vt(n,t){if(n&1&&(Us(0,`small`),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bank.paymentCancelled`))}}function Ot(n,t){if(n&1){let e=zS();Us(0,`button`,62),Gy(`click`,function(){Ip(e);let l=qS().$implicit;return wp(qS(3).selectCancellation(l))}),y_(1),fd()}if(n&2){let e=qS(4);Fy(`disabled`,e.busy()||!!e.pendingMatch()||!!e.pendingCancellation()),ZC(),vd(` `,e.i18n.t(`bankWorkspace.cancelAllocation`),` `)}}function Lt(n,t){if(n&1&&(Us(0,`tr`)(1,`th`,34)(2,`a`,35),y_(3),fd(),OS(4,Vt,2,1,`small`),fd(),Us(5,`td`),y_(6),fd(),Us(7,`td`,60),y_(8),fd(),Us(9,`td`,60),y_(10),fd(),Us(11,`td`),Iy(12,Ot,2,2,`button`,61),fd()()),n&2){let e=t.$implicit,a=qS(3);ZC(2),Fy(`routerLink`,k_(7,ne,e.invoiceId)),ZC(),nv(e.invoiceNumber),ZC(),kS(e.paymentCancelled?4:-1),ZC(2),nv(e.paymentId),ZC(2),nv(a.money(e.amountCents)),ZC(2),nv(a.money(e.feeCents)),ZC(2),Fy(`appCan`,`bank.reconcile`)}}function At(n,t){if(n&1&&(Us(0,`div`,25)(1,`table`)(2,`thead`)(3,`tr`),LS(4,Wt,2,5,`th`,58,Qe),Us(6,`th`,33),y_(7),fd()()(),Us(8,`tbody`),LS(9,Lt,13,9,`tr`,null,et),fd()()()),n&2){let e=qS(2);ZC(4),jS(e.allocationColumns),ZC(3),nv(e.i18n.t(`bank.allocation`)),ZC(2),jS(e.sortedAllocations())}}function Ht(n,t){if(n&1&&y_(0),n&2)vd(` `,qS(4).i18n.t(`bankWorkspace.reasonInvalid`),` `)}function qt(n,t){if(n&1&&(Us(0,`p`,54),y_(1),fd()),n&2){let e=qS(4);ZC(),nv(e.i18n.t(`bankWorkspace.retryHint`))}}function zt(n,t){if(n&1){let e=zS();Us(0,`form`,64),Gy(`submit`,function(l){Ip(e);return wp(qS(3).cancelAllocation(l))}),Us(1,`h3`),y_(2),fd(),Us(3,`p`),y_(4),fd(),Us(5,`p`),y_(6),fd(),Us(7,`a`,19),y_(8),fd(),Us(9,`label`,41),y_(10),Py(11,`textarea`,65,2),qT(),Us(13,`span`,66),OS(14,Ht,1,1),fd()(),OS(15,qt,2,1,`p`,54),Us(16,`div`,67)(17,`button`,68),y_(18),fd(),Us(19,`button`,11),Gy(`click`,function(){Ip(e);return wp(qS(3).closeCancellation())}),y_(20),fd()()()}if(n&2){let e=qS(),a=qS(2);ZC(2),nv(a.i18n.t(`bankWorkspace.cancelContext`)),ZC(2),sv(` `,e.invoiceNumber,` · `,e.paymentId,` · `,a.money(e.amountCents),` · `,a.i18n.t(`bank.fees`),` `,a.money(e.feeCents),` `),ZC(2),nv(a.i18n.t(`bankWorkspace.feePosted`)),ZC(),Fy(`queryParams`,a.ledgerQuery()),ZC(),nv(a.i18n.t(`bankWorkspace.viewFees`)),ZC(2),nv(a.i18n.t(`bank.reason`)),ZC(),Fy(`formField`,a.cancelForm.reason),ky(`aria-invalid`,a.cancelForm.reason().touched()&&a.cancelForm.reason().invalid()),ZT(),ZC(3),kS(a.cancelForm.reason().touched()&&a.cancelForm.reason().invalid()?14:-1),ZC(),kS(a.pendingCancellation()?15:-1),ZC(2),Fy(`disabled`,a.busy()),ZC(),vd(` `,a.i18n.t(a.pendingCancellation()?`bankWorkspace.retry`:`bankWorkspace.cancelAllocation`)),ZC(),Fy(`disabled`,a.busy()||!!a.pendingCancellation()),ZC(),vd(` `,a.i18n.t(`bankWorkspace.cancelClose`),` `)}}function $t(n,t){n&1&&Iy(0,zt,21,18,`form`,63),n&2&&Fy(`appCan`,`bank.reconcile`)}function Ut(n,t){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(`bank.loading`))}}function Gt(n,t){if(n&1){let e=zS();Us(0,`p`,10),y_(1),fd(),Us(2,`div`)(3,`button`,12),Gy(`click`,function(){Ip(e);return wp(qS(2).loadHistory())}),y_(4),fd()()}if(n&2){let e=qS(2);ZC(),nv(e.i18n.t(`bank.error`)),ZC(3),nv(e.i18n.t(`bank.reload`))}}function Qt(n,t){if(n&1&&(Us(0,`p`),y_(1),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(`bank.historyEmpty`))}}function Kt(n,t){if(n&1){let e=zS();Us(0,`th`,33)(1,`button`,59),Gy(`click`,function(){let l=Ip(e).$implicit;return wp(qS(3).sortBy(`history`,l.key))}),fd()()}if(n&2){let e=t.$implicit,a=qS(3);Xy(`amount`,e.kind===`number`),ky(`aria-sort`,a.sortDirection(`history`,e.key)),ZC(),Fy(`label`,a.i18n.t(e.label))(`direction`,a.sortDirection(`history`,e.key))}}function jt(n,t){if(n&1&&(y_(0),j_(1,`localizedDate`),Us(2,`small`),y_(3),fd(),Us(4,`p`,16),y_(5),fd()),n&2){let e=qS().$implicit,a=qS(3);vd(` `,H_(1,3,e.cancelledAt,a.i18n.language(),O_(7,Ge))),ZC(3),nv(e.cancelledByUserId),ZC(2),nv(e.cancellationReason)}}function Jt(n,t){n&1&&y_(0,` — `)}function Xt(n,t){if(n&1&&(Us(0,`tr`)(1,`th`,34)(2,`a`,35),y_(3),fd(),Us(4,`small`),y_(5),fd()(),Us(6,`td`),y_(7),j_(8,`localizedDate`),Us(9,`small`),y_(10),fd()(),Us(11,`td`,60),y_(12),fd(),Us(13,`td`,60),y_(14),fd(),Us(15,`td`),OS(16,jt,6,8)(17,Jt,1,0),fd()()),n&2){let e=t.$implicit,a=qS(3);ZC(2),Fy(`routerLink`,k_(12,ne,e.invoiceId)),ZC(),nv(e.invoiceNumber),ZC(2),nv(e.paymentId),ZC(2),vd(` `,H_(8,8,e.matchedAt,a.i18n.language(),O_(14,Ge))),ZC(3),nv(e.matchedByUserId),ZC(2),nv(a.money(e.amountCents)),ZC(2),nv(a.money(e.feeCents)),ZC(2),kS(e.cancelledAt!==null?16:17)}}function Yt(n,t){if(n&1&&(Us(0,`div`,25)(1,`table`)(2,`thead`)(3,`tr`),LS(4,Kt,2,5,`th`,58,Qe),fd()(),Us(6,`tbody`),LS(7,Xt,18,15,`tr`,null,L),fd()()()),n&2){let e=qS(2);ZC(4),jS(e.historyColumns),ZC(3),jS(e.sortedHistory())}}function Zt(n,t){if(n&1&&(Us(0,`div`,13)(1,`aside`,14)(2,`h2`,15),y_(3),fd(),Us(4,`p`,16),y_(5),fd(),Us(6,`dl`)(7,`div`)(8,`dt`),y_(9),fd(),Us(10,`dd`),y_(11),fd()(),Us(12,`div`)(13,`dt`),y_(14),fd(),Us(15,`dd`),y_(16),j_(17,`localizedDate`),fd()(),Us(18,`div`)(19,`dt`),y_(20),fd(),Us(21,`dd`),y_(22),fd()(),Us(23,`div`)(24,`dt`),y_(25),fd(),Us(26,`dd`)(27,`span`,17),y_(28),fd()()(),OS(29,rt,10,4),fd(),Us(30,`p`,18),y_(31),fd(),Us(32,`a`,19),y_(33),fd()(),Us(34,`div`,20),OS(35,ut,1,1,`section`,21),OS(36,Nt,1,1,`section`,22),Us(37,`section`,23)(38,`h2`,24),y_(39),fd(),Us(40,`p`,18),y_(41),fd(),OS(42,Dt,2,1,`p`)(43,At,11,1,`div`,25),OS(44,$t,1,1,`form`,26),fd()()(),Us(45,`section`,27)(46,`h2`,28),y_(47),fd(),Us(48,`p`,18),y_(49),fd(),Us(50,`p`,18),y_(51),fd(),OS(52,Ut,2,1,`p`,8)(53,Gt,5,2)(54,Qt,2,1,`p`)(55,Yt,9,0,`div`,25),fd()),n&2){let e,a=t,l=qS();ZC(3),nv(a.reference),ZC(2),nv(a.description),ZC(4),nv(l.i18n.t(`bankWorkspace.account`)),ZC(2),nv(a.account),ZC(3),nv(l.i18n.t(`bankWorkspace.date`)),ZC(2),nv(V_(17,24,a.bookedOn,l.i18n.language())),ZC(4),nv(l.i18n.t(`bankWorkspace.amount`)),ZC(2),nv(l.money(a.amountCents)),ZC(3),nv(l.i18n.t(`bankWorkspace.status`)),ZC(3),nv(l.i18n.t(l.status())),ZC(),kS(a.amountCents>0?29:-1),ZC(2),nv(l.i18n.t(`bankWorkspace.accountHint`)),ZC(),Fy(`queryParams`,l.ledgerQuery()),ZC(),nv(l.i18n.t(`bankWorkspace.entries`)),ZC(2),kS(a.amountCents<0?35:-1),ZC(),kS(a.amountCents>0&&l.remaining()>0?36:-1),ZC(3),nv(l.i18n.t(`bankWorkspace.allocations`)),ZC(2),nv(l.i18n.t(`bankWorkspace.immutable`)),ZC(),kS(a.allocations.length?43:42),ZC(2),kS((e=l.cancelling())?44:-1,e),ZC(3),nv(l.i18n.t(`bank.history`)),ZC(2),nv(l.i18n.t(`bank.historyHint`)),ZC(2),nv(l.i18n.t(`bankWorkspace.historySortLoaded`)),ZC(),kS(l.historyState()===`loading`?52:l.historyState()===`error`?53:l.history().length?55:54)}}var te=()=>({invoiceId:``,paymentId:``,amount:``,fee:`0.00`});var Ue=class n{authentication=g(E);i18n=g(Ie);api=g(w);invoicesApi=g(R);route=g(G);router=g(ue);params=T(this.route.queryParamMap,{initialValue:this.route.snapshot.queryParamMap});confirmation=g(P$1);document=g(H);injector=g(ce);destroyRef=g(pe);pendingTasks=g(Mn);result=xH(`result`);cancelReason=xH(`cancelReason`);state=Ke(`loading`);busy=Ke(!1);error=Ke(void 0);saved=Ke(!1);transaction=Ke(void 0);titleLabel=Ft$1(()=>!this.authentication.can(`bank.reconcile`)||(this.transaction()?.amountCents??0)<0?`bankWorkspace.context`:`bankWorkspace.reconciliation`);invoices=Ke([]);invoicesFailed=Ke(!1);invoicesLoading=Ke(!1);payments=Ke([]);paymentState=Ke(`idle`);history=Ke([]);suggestions=Ke([]);supplierPayments=Ke([]);supplierMatches=Ke([]);suggestionState=Ke(`loading`);allocationColumns=O;historyColumns=j;allocationSort=Ft$1(()=>k$1(this.params().get(`allocationSort`),O));historySort=Ft$1(()=>k$1(this.params().get(`historySort`),j));sortedAllocations=Ft$1(()=>(this.transaction()?.allocations??[]).toSorted(I(this.allocationSort(),O,this.i18n.language(),t=>t.matchId,`invoice-asc`)));sortedHistory=Ft$1(()=>this.history().toSorted(I(this.historySort(),j,this.i18n.language(),t=>t.id)));historyState=Ke(`loading`);cancelling=Ke(void 0);pendingMatch=Ke(void 0);pendingCancellation=Ke(void 0);model=Ke(te());matchForm=nr(this.model,t=>{an(t,()=>this.busy()||this.state()!==`ready`||this.pendingMatch()!==void 0||this.cancelling()!==void 0),gn(t.invoiceId),P(t.invoiceId,({value:e})=>this.invoices().some(a=>a.id===e())?void 0:{kind:`invoice`}),gn(t.paymentId),P(t.paymentId,({value:e})=>this.payments().some(a=>a.id===e())?void 0:{kind:`payment`}),gn(t.amount),P(t.amount,({value:e,valueOf:a})=>{let l=u$1(e(),2),m=this.payments().find(Ke=>Ke.id===a(t.paymentId));return l!==void 0&&l>0&&m!==void 0&&l<=m.availableCents?void 0:{kind:`amount`}}),gn(t.fee),P(t.fee,({value:e,valueOf:a})=>{let l=u$1(e(),2),m=u$1(a(t.amount),2);return l!==void 0&&l>=0&&m!==void 0&&l<m?void 0:{kind:`fee`}})});cancelForm=nr(Ke({reason:``}),t=>{gn(t.reason),mn(t.reason,/\S/),cn(t.reason,500),an(t,()=>this.busy()||this.pendingCancellation()!==void 0)});net=Ft$1(()=>{let t=u$1(this.model().amount,2),e=u$1(this.model().fee,2);return t===void 0||e===void 0?void 0:t-e});remaining=Ft$1(()=>{let t=this.transaction();return t?t.amountCents-t.matchedCents:0});netInvalid=Ft$1(()=>{let t=this.net();return t!==void 0&&t>this.remaining()});status=Ft$1(()=>{let t=this.transaction();return D(t?T$1(t):`unmatched`)});backQuery=H$1(q(this.route.snapshot.queryParamMap));generation=0;paymentGeneration=0;historyGeneration=0;matchKey;constructor(){PH(()=>{this.saved()&&this.result()?.nativeElement.focus()}),PH(()=>{this.cancelling()&&this.cancelReason()?.nativeElement.focus()}),Ol(()=>this.route.paramMap.pipe(U(this.destroyRef)).subscribe(()=>{this.pendingTasks.run(()=>this.load())}))}async load(){if(this.busy())return;let t=++this.generation;++this.paymentGeneration,this.state.set(`loading`),this.error.set(void 0),this.saved.set(!1),this.transaction.set(void 0),this.suggestions.set([]),this.supplierPayments.set([]),this.supplierMatches.set([]),this.suggestionState.set(`loading`),this.payments.set([]),this.paymentState.set(`idle`),this.cancelling.set(void 0),this.pendingMatch.set(void 0),this.pendingCancellation.set(void 0),this.matchKey=void 0,this.matchForm().reset(te()),this.cancelForm().reset({reason:``});let e=this.route.snapshot.paramMap.get(`transactionId`);if(!wu.is(a)(e)){this.error.set(`bank.transaction_not_found`),this.state.set(`error`);return}try{let a=await this.api.get(e);if(t!==this.generation||this.destroyRef.destroyed)return;if(!a.success){this.error.set(a.code),this.state.set(`error`);return}this.transaction.set(a.result),this.resetMatch(),this.state.set(`ready`);let l=[this.loadHistory(),this.loadInvoices(),this.loadSuggestions(e)];a.result.amountCents<0&&l.push(this.loadSupplierPayments(e)),await Promise.all(l)}catch{t===this.generation&&!this.destroyRef.destroyed&&(this.error.set(`bank.error`),this.state.set(`error`))}}async loadSuggestions(t){try{let e=await this.api.suggestions(t);if(this.transaction()?.id!==t||this.destroyRef.destroyed)return;if(!e.success){this.suggestionState.set(`error`);return}this.suggestions.set(e.result),this.suggestionState.set(`ready`)}catch{this.transaction()?.id===t&&!this.destroyRef.destroyed&&this.suggestionState.set(`error`)}}async loadSupplierPayments(t){let[e,a]=await Promise.all([this.api.supplierPayments(t),this.api.supplierMatches(t)]);this.transaction()?.id!==t||this.destroyRef.destroyed||(e.success&&this.supplierPayments.set(e.result),a.success&&this.supplierMatches.set(a.result))}async matchSupplier(t){let e=this.transaction();if(e===void 0||this.busy()||!await this.confirmation.request(this.i18n.t(`bankWorkspace.supplierConfirm`)))return;this.busy.set(!0);let l=Math.min(t.availableCents,-e.amountCents);try{let m=await this.api.matchSupplier(e.id,{requestId:crypto.randomUUID(),batchId:t.batchId,invoiceId:t.invoiceId,amountCents:l});m.success?(this.supplierPayments.set(m.result),await this.loadSupplierPayments(e.id),this.saved.set(!0)):this.error.set(m.code)}catch{this.error.set(`bank.error`)}finally{this.busy.set(!1)}}async unmatchSupplier(t){let e=this.transaction();if(!(e===void 0||this.busy()||!await this.confirmation.request(this.i18n.t(`bankWorkspace.supplierUnmatchConfirm`)))){this.busy.set(!0);try{let l=await this.api.unmatchSupplier(e.id,t.id,this.i18n.t(`bankWorkspace.supplierUnmatchReason`));l.success?(this.supplierPayments.set(l.result),await this.loadSupplierPayments(e.id),this.saved.set(!0)):this.error.set(l.code)}catch{this.error.set(`bank.error`)}finally{this.busy.set(!1)}}}async applySuggestion(t){await this.selectInvoice(t.invoiceId),this.payments().some(e=>e.id===t.paymentId)&&this.model.update(e=>m(l({},e),{invoiceId:t.invoiceId,paymentId:t.paymentId,amount:m$1(t.amountCents,2),fee:`0.00`}))}async loadInvoices(){if(!this.authentication.can(`bank.reconcile`)||!this.authentication.can(`invoice.read`))return;let t=this.generation;this.invoicesFailed.set(!1),this.invoicesLoading.set(!0);try{let e=await this.invoicesApi.list();t===this.generation&&!this.destroyRef.destroyed&&this.invoices.set(e.filter(a=>a.status===`issued`||a.status===`paid`))}catch{t===this.generation&&!this.destroyRef.destroyed&&this.invoicesFailed.set(!0)}finally{t===this.generation&&!this.destroyRef.destroyed&&this.invoicesLoading.set(!1)}}async refresh(){this.pendingMatch()||this.pendingCancellation()||await this.canDeactivate()&&await this.load()}async selectInvoice(t){if(this.busy()||this.pendingMatch())return;let e=++this.paymentGeneration;if(this.model.update(a=>m(l({},a),{invoiceId:t,paymentId:``})),this.payments.set([]),this.paymentState.set(`idle`),!!this.invoices().some(a=>a.id===t)){this.paymentState.set(`loading`);try{let a=await this.api.payments(t);if(e!==this.paymentGeneration||this.destroyRef.destroyed)return;if(!a.success){this.paymentState.set(`error`);return}this.payments.set(a.result.filter(l=>l.availableCents>0)),this.paymentState.set(`ready`)}catch{e===this.paymentGeneration&&!this.destroyRef.destroyed&&this.paymentState.set(`error`)}}}invalid(t){return this.matchForm[t]().touched()&&this.matchForm[t]().invalid()}reconcile(t){if(t.preventDefault(),!(this.busy()||this.cancelling()||this.paymentState()===`loading`||this.state()!==`ready`)){if(this.pendingMatch()){this.sendMatch(!1);return}this.matchForm().markAsTouched();for(let e of[`invoiceId`,`paymentId`,`amount`,`fee`])if(this.matchForm[e]().invalid()){this.matchForm[e]().focusBoundControl();return}if(this.netInvalid()){this.matchForm.amount().focusBoundControl();return}or(this.matchForm,async()=>{let e=u$1(this.model().amount,2),a=u$1(this.model().fee,2);if(e===void 0||a===void 0)return;let l$2={paymentId:this.model().paymentId,amountCents:e,feeCents:a},m$2=JSON.stringify(l$2);this.matchKey?.fingerprint!==m$2&&(this.matchKey={fingerprint:m$2,id:crypto.randomUUID()}),this.pendingMatch.set(m(l({},l$2),{requestId:this.matchKey.id})),await this.sendMatch()})}}async sendMatch(t=!0){let e=this.transaction(),a=this.pendingMatch();if(!(!e||!a||this.busy())){this.busy.set(!0),this.error.set(void 0),this.saved.set(!1);try{if(t&&!await this.confirmation.request(this.i18n.t(`bankWorkspace.confirmMatch`))){this.pendingMatch.set(void 0);return}let l=await this.api.match(e.id,a);if(this.destroyRef.destroyed)return;if(!l.success){this.error.set(l.code),l.code!==`bank.error`&&this.pendingMatch.set(void 0);return}this.pendingMatch.set(void 0),this.matchKey=void 0,await this.complete(e.id,l.result)}catch{this.destroyRef.destroyed||this.error.set(`bank.error`)}finally{this.destroyRef.destroyed||this.busy.set(!1)}}}async selectCancellation(t){if(this.busy()||this.pendingMatch()||this.pendingCancellation())return;let e=this.cancelForm().dirty()||this.matchForm().dirty(),a=this.document.activeElement;this.busy.set(!0);try{if(e&&!await this.confirmation.request(this.i18n.t(`bankWorkspace.unsaved`))){this.destroyRef.destroyed||Ol(()=>{!this.busy()&&a instanceof HTMLElement&&a.isConnected&&a.focus()},{injector:this.injector});return}if(this.destroyRef.destroyed||!this.transaction()?.allocations.some(l=>l.matchId===t.matchId))return;this.resetMatch(),this.cancelling.set(t),this.cancelForm().reset({reason:``})}finally{this.destroyRef.destroyed||this.busy.set(!1)}}async closeCancellation(){this.busy()||this.pendingCancellation()||this.cancelForm().dirty()&&!await this.confirmation.request(this.i18n.t(`bankWorkspace.unsaved`))||(this.cancelling.set(void 0),this.cancelForm().reset({reason:``}))}cancelAllocation(t){if(t.preventDefault(),!this.busy()){if(this.pendingCancellation()){this.sendCancellation(!1);return}if(this.cancelForm().markAsTouched(),this.cancelForm.reason().invalid()){this.cancelForm.reason().focusBoundControl();return}or(this.cancelForm,async()=>{let e=this.transaction(),a=this.cancelling(),l=this.cancelForm().value().reason.trim();!e||!a||(this.pendingCancellation.set({matchId:a.matchId,reason:l}),await this.sendCancellation())})}}async sendCancellation(t=!0){let e=this.transaction(),a=this.pendingCancellation();if(!(!e||!a||this.busy())){this.busy.set(!0),this.saved.set(!1),this.error.set(void 0);try{if(t&&!await this.confirmation.request(this.i18n.t(`bankWorkspace.confirmUnmatch`))){this.pendingCancellation.set(void 0);return}let l=await this.api.unmatch(e.id,a.matchId,a.reason);if(this.destroyRef.destroyed)return;if(!l.success){this.error.set(l.code),l.code!==`bank.error`&&this.pendingCancellation.set(void 0);return}this.pendingCancellation.set(void 0),this.cancelling.set(void 0),this.cancelForm().reset({reason:``}),await this.complete(e.id,l.result)}catch{this.destroyRef.destroyed||this.error.set(`bank.error`)}finally{this.destroyRef.destroyed||this.busy.set(!1)}}}async complete(t,e){let a=e.find(l=>l.id===t);if(a)this.transaction.set(a);else{let l=await this.api.get(t);if(this.destroyRef.destroyed)return;if(!l.success){this.error.set(l.code),this.state.set(`error`);return}this.transaction.set(l.result)}this.resetMatch(),this.saved.set(!0),await this.loadHistory()}resetMatch(){++this.paymentGeneration,this.payments.set([]),this.paymentState.set(`idle`),this.matchForm().reset(m(l({},te()),{amount:m$1(Math.max(0,this.remaining()),2,`.`)}))}async loadHistory(){let t=this.transaction()?.id;if(!t)return;let e=++this.historyGeneration;this.history.set([]),this.historyState.set(`loading`);try{let a=await this.api.history(t);if(e!==this.historyGeneration||this.destroyRef.destroyed||this.transaction()?.id!==t)return;if(!a.success){this.historyState.set(`error`);return}this.history.set(a.result),this.historyState.set(`ready`)}catch{e===this.historyGeneration&&!this.destroyRef.destroyed&&this.historyState.set(`error`)}}ledgerQuery(){let t=this.transaction();return{from:t?.bookedOn,to:t?.bookedOn,q:t?.reference}}sortDirection(t,e){return x(t===`allocation`?this.allocationSort():this.historySort(),e)}sortBy(t,e){let l=L$1(t===`allocation`?this.allocationSort():this.historySort(),e);this.router.navigate([],{relativeTo:this.route,queryParams:{[t===`allocation`?`allocationSort`:`historySort`]:l===`none`?null:l},queryParamsHandling:`merge`,replaceUrl:!0})}money(t){let e=this.transaction()?.currency??`EUR`;return Ne(t,this.i18n.language(),e)}dirty(){return this.matchForm().dirty()||this.cancelForm().dirty()||this.pendingMatch()!==void 0||this.pendingCancellation()!==void 0}async canDeactivate(){return!this.busy()&&(!this.dirty()||await this.confirmation.request(this.i18n.t(`bankWorkspace.unsaved`)))}beforeUnload(t){(this.busy()||this.dirty())&&t.preventDefault()}static ɵfac=function(e){return new(e||n)};static ɵcmp=Fb({type:n,selectors:[[`app-bank-reconciliation`]],viewQuery:function(e,a){e&1&&Ky(a.result,je,5)(a.cancelReason,Je,5),e&2&&e_(2)},hostAttrs:[1,`page-container`],hostBindings:function(e,a){e&1&&Gy(`beforeunload`,function(m){return a.beforeUnload(m)},Zw)},decls:13,vars:7,consts:[[`result`,``],[`invoice`,``],[`cancelReason`,``],[`aria-labelledby`,`match-title`,1,`detail-page`,`wide-page`],[`layout`,`stacked`],[`pageBack`,``,`routerLink`,`/banking`,3,`queryParams`],[`id`,`match-title`],[`tabindex`,`-1`,`role`,`status`],[`role`,`status`],[`appNotice`,``,`variant`,`success`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[`appButton`,``,`type`,`button`,3,`click`],[1,`context`],[`aria-labelledby`,`transaction-title`,1,`ds-panel`,`task-panel`],[`id`,`transaction-title`],[1,`pre-wrap`],[`appBadge`,``],[1,`muted`],[`routerLink`,`/banking/ledger`,3,`queryParams`],[1,`bank-section`],[`aria-labelledby`,`supplier-match-title`,1,`bank-section`],[`aria-labelledby`,`allocation-title`,1,`bank-section`],[`aria-labelledby`,`allocations-title`,1,`bank-section`],[`id`,`allocations-title`],[`appDataTable`,``,`tableLayout`,`fluid`,1,`wide-table`],[`novalidate`,``,1,`ds-panel`,`task-panel`,`task-form`],[`aria-labelledby`,`history-title`,1,`bank-section`],[`id`,`history-title`],[`class`,`bank-section`,`aria-labelledby`,`supplier-match-title`,4,`appCan`],[`id`,`supplier-match-title`],[1,`suggestions`],[`appDataTable`,``,`tableLayout`,`fluid`],[`scope`,`col`],[`scope`,`row`],[3,`routerLink`],[`appButton`,``,`type`,`button`,3,`disabled`],[`class`,`bank-section`,`aria-labelledby`,`allocation-title`,4,`appCan`],[`id`,`allocation-title`],[`aria-labelledby`,`bank-suggestions-title`,1,`suggestions`],[`novalidate`,``,1,`task-form`,3,`submit`],[1,`field`],[`appFilterSelect`,``,`aria-describedby`,`invoice-error`,1,`select`,3,`change`,`formField`],[`value`,``],[3,`value`],[`id`,`invoice-error`,1,`field-error`],[`appFilterSelect`,``,`aria-describedby`,`payment-error`,1,`select`,3,`formField`],[`id`,`payment-error`,1,`field-error`],[`inputmode`,`decimal`,`aria-describedby`,`amount-error net-error`,1,`input`,3,`formField`],[`id`,`amount-error`,1,`field-error`],[`inputmode`,`decimal`,`aria-describedby`,`fee-error fee-hint`,1,`input`,3,`formField`],[`id`,`fee-error`,1,`field-error`],[`id`,`fee-hint`],[`id`,`net-error`,1,`field-error`],[`appNotice`,``,`variant`,`warning`],[`appButton`,``,`type`,`submit`,`variant`,`primary`,3,`disabled`],[`id`,`bank-suggestions-title`],[`appButton`,``,`type`,`button`,`variant`,`ghost`,3,`click`],[`scope`,`col`,3,`amount`],[`appTableSort`,``,3,`click`,`label`,`direction`],[1,`amount`],[`appButton`,``,`type`,`button`,`variant`,`warning`,3,`disabled`,`click`,4,`appCan`],[`appButton`,``,`type`,`button`,`variant`,`warning`,3,`click`,`disabled`],[`class`,`ds-panel task-panel task-form`,`novalidate`,``,3,`submit`,4,`appCan`],[`novalidate`,``,1,`ds-panel`,`task-panel`,`task-form`,3,`submit`],[`rows`,`3`,`aria-describedby`,`reason-error`,1,`input`,3,`formField`],[`id`,`reason-error`,1,`field-error`],[1,`actions`],[`appButton`,``,`type`,`submit`,`variant`,`warning`,3,`disabled`]],template:function(e,a){if(e&1&&(Us(0,`section`,3)(1,`app-page-header`,4)(2,`a`,5),y_(3),fd(),Us(4,`h1`,6),y_(5),fd(),Us(6,`p`),y_(7),fd()(),OS(8,tt,4,1,`div`,7),OS(9,it,3,2),OS(10,at,2,1,`p`,8)(11,ot,3,1,`div`)(12,Zt,56,27),fd()),e&2){let l,m;ZC(2),Fy(`queryParams`,a.backQuery),ZC(),nv(a.i18n.t(`bankWorkspace.back`)),ZC(2),nv(a.i18n.t(a.titleLabel())),ZC(2),nv(a.i18n.t(`bank.noTransfer`)),ZC(),kS(a.saved()?8:-1),ZC(),kS((l=a.error())?9:-1,l),ZC(),kS(a.state()===`loading`?10:a.state()===`error`?11:(m=a.transaction())?12:-1,m)}},dependencies:[Ae,l$1,d,N,c,yn,k,g$1,Dt$1,u,p],styles:[`.bank-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);padding:var(--%NS%page-header-y) var(--%NS%page-x);min-inline-size:0}.bank-section[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);min-inline-size:0}.actions[_ngcontent-%COMP%], .chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--%NS%space-3);align-items:end}.field[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2);min-inline-size:0}.muted[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}small[_ngcontent-%COMP%]{display:block;font-size:var(--%NS%text-sm);font-weight:400}.amount[_ngcontent-%COMP%]{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}.field-error[_ngcontent-%COMP%]{color:var(--%NS%color-danger);font-size:var(--%NS%text-sm)}.task-form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4)}.task-panel[_ngcontent-%COMP%]{padding:var(--%NS%space-5);display:grid;gap:var(--%NS%space-4);min-inline-size:0}.context[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(16rem,1fr) minmax(0,2fr);gap:var(--%NS%space-6);align-items:start}dl[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}dd[_ngcontent-%COMP%]{margin:0;overflow-wrap:anywhere}input[_ngcontent-%COMP%], select[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{min-inline-size:0;max-inline-size:100%}.pre-wrap[_ngcontent-%COMP%]{white-space:pre-wrap;overflow-wrap:anywhere}button[_ngcontent-%COMP%]{max-inline-size:100%;white-space:normal}[tabindex="-1"][_ngcontent-%COMP%]:focus{outline:2px solid var(--%NS%color-button-primary-highlight);outline-offset:var(--%NS%space-1)}@media(max-width:60rem){.context[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}[_nghost-%COMP%]{display:block}.detail-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);min-inline-size:0;inline-size:100%;max-inline-size:var(--%NS%page-width-detail);margin-inline:auto;padding:var(--%NS%page-header-y) var(--%NS%page-x)}.detail-page.form-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-form)}.detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-wide)}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-2xl);overflow-wrap:anywhere}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-base);color:var(--%NS%color-muted);overflow-wrap:anywhere}.detail-page[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{justify-self:start}@media print{.detail-page[_ngcontent-%COMP%], .detail-page.form-page[_ngcontent-%COMP%], .detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:none}}`]})};export{Ue as BankReconciliation};
@@ -1 +1 @@
1
- import{t as l}from"./chunk-BwCtja5l.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{t}from"./chunk-CKxU-VJf.js";import{$r as T$1}from"./chunk-CjtJKrza.js";function f(t,e){let r=t.get(`sort`);for(let a of e){if(r===`${a}-asc`)return`${a}-asc`;if(r===`${a}-desc`)return`${a}-desc`}return`none`}function P(t,e){return t===`${e}-asc`?`ascending`:t===`${e}-desc`?`descending`:`none`}function h(t$1,e){return t(t$1,`${e}-asc`,`${e}-desc`)}function V(t,e){return t.matches?.find(r=>r.key===e)?.indices??[]}var y=t=>{let e=t.get(`from`),r=t.get(`to`);return{from:wu.is(T$1)(e)?e:``,to:wu.is(T$1)(r)?r:``}};var S=[`number`,`client`,`status`,`financial`,`due`,`total`,`remaining`];var T=t=>f(t,S);var K=(t,e,r,a,c)=>{let n=r===`none`?`due-asc`:r,o;if(n.startsWith(`due-`))o=Date.parse(t.dueDate)-Date.parse(e.dueDate);else if(n.startsWith(`total-`))o=t.totalCents-e.totalCents;else if(n.startsWith(`remaining-`))o=i(t)-i(e);else{let d=s=>n.startsWith(`client-`)?s.clientDisplayName:n.startsWith(`status-`)?c(x(s.status)):n.startsWith(`financial-`)?c(D(s)):s.invoiceNumber??s.title;o=a.compare(d(t),d(e))}return(n.endsWith(`-desc`)?-o:o)||t.id.localeCompare(e.id)};var w=t=>l({q:(t.get(`q`)??``).slice(0,160),status:t.get(`status`)??``,client:t.get(`client`)??``,due:t.get(`due`)??``,credit:t.get(`credit`)??``},y(t));var g=t=>t===`paid`?`issued`:t;var x=t=>`backOffice.invoice.status.${g(t)}`;var R=t=>`payment.${t}`;var i=t=>t.status===`draft`||t.status===`void`?0:Math.max(0,t.totalCents-t.creditedCents-t.recordedPaidCents);var I=t=>t.payments.reduce((e,r)=>e+(r.cancelledAt===null?r.amountCents:0),0);var v=t=>t.status===`draft`||t.status===`void`?0:Math.max(0,t.currentRevision.totalCents-t.creditedCents-I(t));var D=t=>t.status===`draft`||t.status===`void`?`billingWorkspace.notApplicable`:t.creditedCents>0?`billingWorkspace.credited`:t.recordedPaidCents>=t.totalCents?`billingWorkspace.paid`:t.recordedPaidCents>0?`billingWorkspace.partial`:`billingWorkspace.unpaid`;var A=(t,e)=>t.status===`issued`&&t.creditedCents===0&&i(t)>0&&t.dueDate<e;var q=(t,e,r)=>!(e.status&&g(t.status)!==e.status||e.client&&t.clientId!==e.client||e.from&&t.dueDate<e.from||e.to&&t.dueDate>e.to||e.credit===`with`&&t.creditedCents===0||e.credit===`without`&&t.creditedCents>0||e.due&&(t.status!==`issued`||i(t)===0)||e.due===`overdue`&&t.dueDate>=r||e.due===`upcoming`&&t.dueDate<r);var C=new Intl.DateTimeFormat(`en-CA`,{timeZone:`Europe/Paris`,year:`numeric`,month:`2-digit`,day:`2-digit`});var E=t=>C.format(new Date(t));var N=()=>C.format(new Date);export{v as _,K as a,y as b,R as c,V as d,f,q as g,i as h,I as i,S as l,h as m,D as n,N as o,g as p,E as r,P as s,A as t,T as u,w as v,x as y};
1
+ import{t as l}from"./chunk-BwCtja5l.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{$r as T$1}from"./chunk-D5qmP2Wu.js";import{t}from"./chunk-CKxU-VJf.js";function f(t,e){let r=t.get(`sort`);for(let a of e){if(r===`${a}-asc`)return`${a}-asc`;if(r===`${a}-desc`)return`${a}-desc`}return`none`}function P(t,e){return t===`${e}-asc`?`ascending`:t===`${e}-desc`?`descending`:`none`}function h(t$1,e){return t(t$1,`${e}-asc`,`${e}-desc`)}function V(t,e){return t.matches?.find(r=>r.key===e)?.indices??[]}var y=t=>{let e=t.get(`from`),r=t.get(`to`);return{from:wu.is(T$1)(e)?e:``,to:wu.is(T$1)(r)?r:``}};var S=[`number`,`client`,`status`,`financial`,`due`,`total`,`remaining`];var T=t=>f(t,S);var K=(t,e,r,a,c)=>{let n=r===`none`?`due-asc`:r,o;if(n.startsWith(`due-`))o=Date.parse(t.dueDate)-Date.parse(e.dueDate);else if(n.startsWith(`total-`))o=t.totalCents-e.totalCents;else if(n.startsWith(`remaining-`))o=i(t)-i(e);else{let d=s=>n.startsWith(`client-`)?s.clientDisplayName:n.startsWith(`status-`)?c(x(s.status)):n.startsWith(`financial-`)?c(D(s)):s.invoiceNumber??s.title;o=a.compare(d(t),d(e))}return(n.endsWith(`-desc`)?-o:o)||t.id.localeCompare(e.id)};var w=t=>l({q:(t.get(`q`)??``).slice(0,160),status:t.get(`status`)??``,client:t.get(`client`)??``,due:t.get(`due`)??``,credit:t.get(`credit`)??``},y(t));var g=t=>t===`paid`?`issued`:t;var x=t=>`backOffice.invoice.status.${g(t)}`;var R=t=>`payment.${t}`;var i=t=>t.status===`draft`||t.status===`void`?0:Math.max(0,t.totalCents-t.creditedCents-t.recordedPaidCents);var I=t=>t.payments.reduce((e,r)=>e+(r.cancelledAt===null?r.amountCents:0),0);var v=t=>t.status===`draft`||t.status===`void`?0:Math.max(0,t.currentRevision.totalCents-t.creditedCents-I(t));var D=t=>t.status===`draft`||t.status===`void`?`billingWorkspace.notApplicable`:t.creditedCents>0?`billingWorkspace.credited`:t.recordedPaidCents>=t.totalCents?`billingWorkspace.paid`:t.recordedPaidCents>0?`billingWorkspace.partial`:`billingWorkspace.unpaid`;var A=(t,e)=>t.status===`issued`&&t.creditedCents===0&&i(t)>0&&t.dueDate<e;var q=(t,e,r)=>!(e.status&&g(t.status)!==e.status||e.client&&t.clientId!==e.client||e.from&&t.dueDate<e.from||e.to&&t.dueDate>e.to||e.credit===`with`&&t.creditedCents===0||e.credit===`without`&&t.creditedCents>0||e.due&&(t.status!==`issued`||i(t)===0)||e.due===`overdue`&&t.dueDate>=r||e.due===`upcoming`&&t.dueDate<r);var C=new Intl.DateTimeFormat(`en-CA`,{timeZone:`Europe/Paris`,year:`numeric`,month:`2-digit`,day:`2-digit`});var E=t=>C.format(new Date(t));var N=()=>C.format(new Date);export{v as _,K as a,y as b,R as c,V as d,f,q as g,i as h,I as i,S as l,h as m,D as n,N as o,g as p,E as r,P as s,A as t,T as u,w as v,x as y};
@@ -0,0 +1 @@
1
+ import{$t as ZC,A as Gy,D as Fy,Dn as g,E as Ft,Gn as k_,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,Tn as fd,V as Iy,Wn as kS,Wr as y_,X as LS,ft as Ol,lt as OS,pr as qS,qn as ky,rr as nv,ut as O_,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{h as Ne,m as Ie,r as N,v as Dt}from"./main-F7D3L737.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D5qmP2Wu.js";import"./chunk-DjewtV43.js";import{t as N$1}from"./chunk-B0bNirg2.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import"./chunk-DsaNNeZe.js";import{t as l}from"./chunk-BVszSMJC.js";import{t as u}from"./chunk-Bfx7EEIR.js";import{t as c}from"./chunk-enci06qG.js";import"./chunk-CSkyOfSg.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-D5MFwK9L.js";import"./chunk-CXHCUTDs.js";import"./chunk-ZBDWcE362.js";import"./chunk-CP-AnFGa2.js";import"./chunk-scbWWgLx2.js";import"./chunk-Bsy3r41y2.js";import"./chunk-DB6sOjsn2.js";import"./chunk-CABvk97t2.js";import{n as B}from"./chunk-CCqlW8pS2.js";import{t as S}from"./chunk-D6k6pmdU.js";import{t as M}from"./chunk-BAn0tBhX.js";var j=()=>[`reference`,`supplier`,`invoiceDate`,`dueDate`,`status`,`totalCents`];var H=t=>({count:t});var G=t=>[t];var J=(t,n)=>n.item.id;function Q(t,n){if(t&1&&(Us(0,`a`,9),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`supplierPaymentBatch.open`))}}function U(t,n){if(t&1&&(Us(0,`a`,10),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`supplierInvoice.analysis.action`))}}function X(t,n){if(t&1&&(Us(0,`a`,11),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`supplierInvoice.create`))}}function Y(t,n){if(t&1&&(Us(0,`p`,6),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(n))}}function Z(t,n){if(t&1&&(Us(0,`p`,7),y_(1),fd()),t&2){let e=qS();ZC(),nv(e.i18n.t(`supplierInvoice.loading`))}}function ee(t,n){if(t&1&&(Us(0,`tr`)(1,`th`,17)(2,`a`,18),y_(3),fd()(),Us(4,`td`),y_(5),fd(),Us(6,`td`),y_(7),fd(),Us(8,`td`),y_(9),fd(),Us(10,`td`),y_(11),fd(),Us(12,`td`),y_(13),fd()()),t&2){let e=n.$implicit,c=qS(2),a=e.item;ZC(2),Fy(`routerLink`,k_(7,G,a.id)),ZC(),nv(a.reference),ZC(2),nv(a.supplierName),ZC(2),nv(a.invoiceDate),ZC(2),nv(a.dueDate),ZC(2),nv(c.status(a)),ZC(2),nv(c.money(a))}}function te(t,n){if(t&1&&(Us(0,`tr`)(1,`td`,19),y_(2),fd()()),t&2){let e=qS(2);ZC(2),nv(e.i18n.t(`supplierInvoice.empty`))}}function ie(t,n){if(t&1){let e=zS();Us(0,`section`,8)(1,`app-workspace-table-tools`,12),Gy(`queryChange`,function(a){Ip(e);return wp(qS().table.search(a))})(`filterChange`,function(a){Ip(e);return wp(qS().table.filter(a))}),fd(),Us(2,`div`,13)(3,`table`)(4,`thead`)(5,`tr`)(6,`th`,14)(7,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`reference`))}),fd()(),Us(8,`th`,14)(9,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`supplier`))}),fd()(),Us(10,`th`,14)(11,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`invoiceDate`))}),fd()(),Us(12,`th`,14)(13,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`dueDate`))}),fd()(),Us(14,`th`,14)(15,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`status`))}),fd()(),Us(16,`th`,14)(17,`button`,15),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`total`))}),fd()()()(),Us(18,`tbody`),LS(19,ee,14,9,`tr`,null,J,!1,te,3,1,`tr`),fd()()(),Us(22,`footer`,16)(23,`p`,7),y_(24),fd()()()}if(t&2){let e=qS();ZC(),Fy(`query`,e.table.query().q)(`filter`,e.table.query().filter)(`filterLabel`,e.i18n.t(`supplierInvoice.status`))(`filterSummary`,e.table.filterSummary())(`filterOptions`,e.table.filterOptions())(`columns`,O_(28,j))(`rows`,e.invoiceExport())(`pending`,e.loading()||e.error()!==void 0),ZC(5),ky(`aria-sort`,e.table.direction(`reference`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.reference`))(`direction`,e.table.direction(`reference`)),ZC(),ky(`aria-sort`,e.table.direction(`supplier`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.supplier`))(`direction`,e.table.direction(`supplier`)),ZC(),ky(`aria-sort`,e.table.direction(`invoiceDate`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.invoiceDate`))(`direction`,e.table.direction(`invoiceDate`)),ZC(),ky(`aria-sort`,e.table.direction(`dueDate`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.dueDate`))(`direction`,e.table.direction(`dueDate`)),ZC(),ky(`aria-sort`,e.table.direction(`status`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.status`))(`direction`,e.table.direction(`status`)),ZC(),ky(`aria-sort`,e.table.direction(`total`)),ZC(),Fy(`label`,e.i18n.t(`supplierInvoice.total`))(`direction`,e.table.direction(`total`)),ZC(2),jS(e.table.results()),ZC(5),vd(` `,e.i18n.plural(`supplierInvoice.count`,k_(29,H,e.table.results().length)),` `)}}var ne={columns:[{kind:`text`,key:`reference`,value:t=>t.reference},{kind:`text`,key:`supplier`,value:t=>t.supplierName},{kind:`text`,key:`invoiceDate`,value:t=>t.invoiceDate},{kind:`text`,key:`dueDate`,value:t=>t.dueDate},{kind:`text`,key:`status`,value:t=>t.status},{kind:`number`,key:`total`,value:t=>t.totalCents}],defaultSort:`invoiceDateDesc`,id:t=>t.id,searchKeys:[`reference`,`supplierName`,`invoiceDate`,`dueDate`],parameters:{q:`q`,sort:`sort`,filter:`status`},filters:[{value:`draft`,label:`supplierInvoice.status.draft`},{value:`confirmed`,label:`supplierInvoice.status.confirmed`},{value:`approved`,label:`supplierInvoice.status.approved`},{value:`paid`,label:`supplierInvoice.status.paid`},{value:`cancelled`,label:`supplierInvoice.status.cancelled`}],matchesFilter:(t,n)=>t.status===n};var $=class t{i18n=g(Ie);api=g(S);invoices=Ke([]);table=N$1(this.invoices,ne);invoiceExport=Ft(()=>this.table.rows().map(n=>[n.reference,n.supplierName,n.invoiceDate,n.dueDate,this.status(n),n.totalCents]));loading=Ke(!0);error=Ke(void 0);constructor(){Ol(()=>{this.load()})}async load(){this.loading.set(!0),this.error.set(void 0);try{let n=await this.api.list();n.success?this.invoices.set(n.result):this.error.set(n.code)}catch{this.error.set(`supplierInvoice.error`)}finally{this.loading.set(!1)}}money(n){return Ne(n.totalCents,this.i18n.language(),n.currency)}status(n){return this.i18n.t(`supplierInvoice.status.${n.status}`)}static ɵfac=function(e){return new(e||t)};static ɵcmp=Fb({type:t,selectors:[[`app-supplier-invoices`]],hostAttrs:[1,`page-container`],decls:13,vars:7,consts:[[`aria-labelledby`,`supplier-invoices-title`,1,`detail-page`,`wide-page`],[`id`,`supplier-invoices-title`],[`pageActions`,``,1,`spacer-x-2`],[`appLinkButton`,``,`icon`,`bank`,`routerLink`,`payments`,4,`appCan`],[`appLinkButton`,``,`icon`,`ai`,`routerLink`,`analyze`,4,`appCan`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`new`,4,`appCan`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`role`,`status`],[`appListWorkspace`,``],[`appLinkButton`,``,`icon`,`bank`,`routerLink`,`payments`],[`appLinkButton`,``,`icon`,`ai`,`routerLink`,`analyze`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`new`],[`filename`,`supplier-invoices.csv`,3,`queryChange`,`filterChange`,`query`,`filter`,`filterLabel`,`filterSummary`,`filterOptions`,`columns`,`rows`,`pending`],[`appDataTable`,``],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[1,`list-summary`],[`scope`,`row`],[3,`routerLink`],[`colspan`,`6`]],template:function(e,c){if(e&1&&(Us(0,`section`,0)(1,`app-page-header`)(2,`h1`,1),y_(3),fd(),Us(4,`p`),y_(5),fd(),Us(6,`div`,2),Iy(7,Q,2,1,`a`,3)(8,U,2,1,`a`,4)(9,X,2,1,`a`,5),fd()(),OS(10,Y,2,1,`p`,6),OS(11,Z,2,1,`p`,7)(12,ie,25,31,`section`,8),fd()),e&2){let a;ZC(3),nv(c.i18n.t(`supplierInvoice.title`)),ZC(2),nv(c.i18n.t(`supplierInvoice.intro`)),ZC(2),Fy(`appCan`,`supplier-invoice.pay`),ZC(),Fy(`appCan`,`supplier-invoice.analyze`),ZC(),Fy(`appCan`,`supplier-invoice.create`),ZC(),kS((a=c.error())?10:-1,a),ZC(),kS(c.loading()?11:12)}},dependencies:[N,l,c,B,k,g$1,Dt,u,M],styles:[`[_nghost-%COMP%]{display:block}.detail-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);min-inline-size:0;inline-size:100%;max-inline-size:var(--%NS%page-width-detail);margin-inline:auto;padding:var(--%NS%page-header-y) var(--%NS%page-x)}.detail-page.form-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-form)}.detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-wide)}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-2xl);overflow-wrap:anywhere}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-base);color:var(--%NS%color-muted);overflow-wrap:anywhere}.detail-page[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{justify-self:start}@media print{.detail-page[_ngcontent-%COMP%], .detail-page.form-page[_ngcontent-%COMP%], .detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:none}}`]})};export{$ as SupplierInvoicesPage};
@@ -0,0 +1 @@
1
+ import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,Sr as rv,Tn as fd,V as Iy,Wn as kS,Wr as y_,X as LS,ft as Ol,ht as PS,lt as OS,mr as qT,o as A,ot as OD,pr as qS,qn as ky,rn as Zw,rr as nv,tn as ZT,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie,r as N}from"./main-F7D3L737.js";import"./chunk-BAe_07VM.js";import{n as m$1}from"./chunk-Dv9sNWWK.js";import{in as Is,uu as wy,yl as ti,z as Cs}from"./chunk-D5qmP2Wu.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import"./chunk-DsaNNeZe.js";import{t as l$1}from"./chunk-BVszSMJC.js";import{d as nr,f as or,h as yn,l as ln,n as an,o as gn,s as hn,u as mn}from"./chunk-CSkyOfSg.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-D5MFwK9L.js";import{t as P}from"./chunk-niXXbm7H.js";import{t as a}from"./chunk-1ErswIDf.js";import{t as D}from"./chunk-CXHCUTDs.js";import{a as u,i as m$2}from"./chunk-Dx1NwQCW.js";var I=class i{http=g(OD);async get(){return m$1(this.http.get(`/api/company`),ti,wy,`company.error`)}async update(t){return m$1(this.http.put(`/api/company`,t),ti,wy,`company.error`)}async initializeAccounting(t){return m$1(this.http.post(`/api/company/accounting/initialize`,t),ti,wy,`company.error`)}async listExchangeRates(){return m$1(this.http.get(`/api/company/exchange-rates`),Cs,wy,`company.error`)}async setExchangeRate(t){return m$1(this.http.put(`/api/company/exchange-rates`,t),Is,wy,`company.error`)}async importExchangeRates(){return m$1(this.http.post(`/api/company/exchange-rates/ecb`,null),Cs,wy,`company.error`)}static ɵfac=function(e){return new(e||i)};static ɵprov=A({token:i,factory:i.ɵfac,providedIn:`root`})};var me=(i,t)=>t.id;function ue(i,t){if(i&1&&(Us(0,`p`,4),y_(1),fd()),i&2){let e=qS();ZC(),nv(e.i18n.t(`company.loading`))}}function ge(i,t){if(i&1){let e=zS();Us(0,`div`,5)(1,`p`,6),y_(2),fd(),Us(3,`button`,7),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(4),fd()()}if(i&2){let e=qS();ZC(2),nv(e.i18n.t(e.error())),ZC(2),vd(` `,e.i18n.t(`backOffice.dashboard.retry`),` `)}}function ye(i,t){if(i&1&&(Us(0,`p`,8),y_(1),fd()),i&2){let e=qS(2);ZC(),nv(e.i18n.t(`company.saved`))}}function xe(i,t){if(i&1&&(Us(0,`p`,6),y_(1),fd()),i&2){let e=qS(2);ZC(),nv(e.i18n.t(t))}}function he(i,t){if(i&1){let e=zS();Us(0,`app-hint`,21,0)(2,`label`)(3,`input`,35),Gy(`change`,function(a){let m=Ip(e).$implicit;return wp(qS(2).setModule(m,a))}),fd(),y_(4),fd()()}if(i&2){let e=t.$implicit,l=t_(1),a=qS(2);Fy(`text`,a.moduleHint(e)),ZC(3),Fy(`checked`,a.moduleEnabled(e)),ky(`aria-describedby`,l.id),ZC(),nv(a.moduleLabel(e))}}function fe(i,t){if(i&1&&(Us(0,`button`,36),y_(1),fd()),i&2){let e=qS(2);Fy(`disabled`,e.saving()),ZC(),vd(` `,e.i18n.t(`company.save`),` `)}}function _e(i,t){if(i&1){let e=zS();Us(0,`button`,37),Gy(`click`,function(){Ip(e);return wp(qS(3).initializeAccounting())}),y_(1),fd()}if(i&2){let e=qS(3);Fy(`disabled`,e.initializing()),ZC(),vd(` `,e.i18n.t(`company.initializeAccounting`),` `)}}function Ce(i,t){i&1&&Iy(0,_e,2,2,`button`,31),i&2&&Fy(`appCan`,`company.update`)}function ve(i,t){if(i&1){let e=zS();Us(0,`button`,37),Gy(`click`,function(){Ip(e);return wp(qS(2).importExchangeRates())}),y_(1),fd()}if(i&2){let e=qS(2);Fy(`disabled`,e.exchangeRateBusy()),ZC(),vd(` `,e.i18n.t(`company.exchangeRateImport`),` `)}}function be(i,t){if(i&1&&(Us(0,`p`,6),y_(1),fd()),i&2){let e=qS(2);ZC(),nv(e.i18n.t(t))}}function Se(i,t){if(i&1){let e=zS();Us(0,`form`,38),Gy(`submit`,function(a){Ip(e);return wp(qS(2).saveExchangeRate(a))}),Us(1,`label`,39),y_(2),Us(3,`input`,40),Gy(`input`,function(a){Ip(e);return wp(qS(2).setExchangeRateField(`date`,a))}),fd()(),Us(4,`label`,39),y_(5),Us(6,`input`,41),Gy(`input`,function(a){Ip(e);return wp(qS(2).setExchangeRateField(`currency`,a))}),fd()(),Us(7,`label`,39),y_(8),Us(9,`input`,42),Gy(`input`,function(a){Ip(e);return wp(qS(2).setExchangeRateField(`value`,a))}),fd()(),Us(10,`button`,36),y_(11),fd()()}if(i&2){let e=qS(2);ZC(2),vd(` `,e.i18n.t(`company.exchangeRateDate`),` `),ZC(),Fy(`value`,e.exchangeRateDate()),ZC(2),vd(` `,e.i18n.t(`company.exchangeRateCurrency`),` `),ZC(),Fy(`value`,e.exchangeRateCurrency()),ZC(2),vd(` `,e.i18n.t(`company.exchangeRateValue`),` `),ZC(),Fy(`value`,e.exchangeRateValue()),ZC(),Fy(`disabled`,e.exchangeRateBusy()),ZC(),vd(` `,e.i18n.t(`company.exchangeRateOverride`),` `)}}function Re(i,t){if(i&1&&(Us(0,`tr`)(1,`td`),y_(2),fd(),Us(3,`td`),y_(4),fd(),Us(5,`td`,43),y_(6),fd(),Us(7,`td`),y_(8),fd()()),i&2){let e=t.$implicit,l=qS(2);ZC(2),nv(e.rateDate),ZC(2),rv(``,e.functionalCurrency,`/`,e.foreignCurrency),ZC(2),nv(l.rateValue(e)),ZC(2),nv(l.rateSource(e))}}function Ee(i,t){if(i&1&&(Us(0,`tr`)(1,`td`,44),y_(2),fd()()),i&2){let e=qS(2);ZC(2),nv(e.i18n.t(`company.exchangeRateEmpty`))}}function Me(i,t){if(i&1){let e=zS();OS(0,ye,2,1,`p`,8),OS(1,xe,2,1,`p`,6),Us(2,`form`,9),Gy(`submit`,function(a){Ip(e);return wp(qS().save(a))}),Us(3,`fieldset`,10)(4,`legend`),y_(5),fd(),Us(6,`label`,11),y_(7),Py(8,`input`,12),fd(),Us(9,`label`,13),y_(10),Py(11,`input`,14),qT(),fd(),Us(12,`p`,15),y_(13),fd()(),Us(14,`fieldset`,10)(15,`legend`),y_(16),fd(),Us(17,`label`,16),y_(18),Py(19,`input`,17),qT(),fd(),Us(20,`label`,18),y_(21),Py(22,`input`,19),qT(),fd(),Us(23,`p`,15),y_(24),fd()(),Us(25,`fieldset`,10)(26,`legend`),y_(27),fd(),Us(28,`div`,20),LS(29,he,5,4,`app-hint`,21,PS),fd()(),Us(31,`fieldset`,10)(32,`legend`),y_(33),fd(),Us(34,`label`,22),y_(35),Py(36,`input`,23),qT(),fd(),Us(37,`p`,15),y_(38),fd()(),Us(39,`div`,24),Iy(40,fe,2,2,`button`,25),OS(41,Ce,1,1,`button`,26),fd()(),Us(42,`section`,27)(43,`div`,28)(44,`div`)(45,`h2`,29),y_(46),fd(),Us(47,`p`,30),y_(48),fd()(),Iy(49,ve,2,2,`button`,31),fd(),OS(50,be,2,1,`p`,6),Iy(51,Se,12,8,`form`,32),Us(52,`div`,33)(53,`table`)(54,`thead`)(55,`tr`)(56,`th`,34),y_(57),fd(),Us(58,`th`,34),y_(59),fd(),Us(60,`th`,34),y_(61),fd(),Us(62,`th`,34),y_(63),fd()()(),Us(64,`tbody`),LS(65,Re,9,5,`tr`,null,me,!1,Ee,3,1,`tr`),fd()()()()}if(i&2){let e,l,a=qS();kS(a.saved()?0:-1),ZC(),kS((e=a.error())?1:-1,e),ZC(4),nv(a.i18n.t(`company.legal`)),ZC(2),nv(a.i18n.t(`company.jurisdiction`)),ZC(),Fy(`value`,a.model().jurisdiction),ZC(2),nv(a.i18n.t(`company.functionalCurrency`)),ZC(),Fy(`formField`,a.settingsForm.functionalCurrency),ZT(),ZC(2),nv(a.accountingState()),ZC(3),nv(a.i18n.t(`company.fiscalYear`)),ZC(2),nv(a.i18n.t(`company.fiscalMonth`)),ZC(),Fy(`formField`,a.settingsForm.fiscalYearStartMonth),ZT(),ZC(2),nv(a.i18n.t(`company.fiscalDay`)),ZC(),Fy(`formField`,a.settingsForm.fiscalYearStartDay),ZT(),ZC(2),nv(a.i18n.t(`company.fiscalDuration`)),ZC(3),nv(a.i18n.t(`company.modules`)),ZC(2),jS(a.modules),ZC(4),nv(a.i18n.t(`company.retention`)),ZC(2),nv(a.i18n.t(`company.retentionYears`)),ZC(),Fy(`formField`,a.settingsForm.retentionYears),ZT(),ZC(2),nv(a.i18n.t(`company.retentionExplanation`)),ZC(2),Fy(`appCan`,`company.update`),ZC(),kS(a.currencyLocked()?-1:41),ZC(5),nv(a.i18n.t(`company.exchangeRates`)),ZC(2),nv(a.i18n.t(`company.exchangeRatesHint`)),ZC(),Fy(`appCan`,`company.update`),ZC(),kS((l=a.exchangeRateError())?50:-1,l),ZC(),Fy(`appCan`,`company.update`),ZC(6),nv(a.i18n.t(`company.exchangeRateDate`)),ZC(2),nv(a.i18n.t(`company.exchangeRatePair`)),ZC(2),nv(a.i18n.t(`company.exchangeRateValue`)),ZC(2),nv(a.i18n.t(`company.exchangeRateSource`)),ZC(2),jS(a.exchangeRates())}}var Pe=[`sales`,`purchasing`,`banking`,`accounting`,`tax`,`ai`,`demonstration`];var Ve=()=>({jurisdiction:`FR`,functionalCurrency:`EUR`,fiscalYearStartMonth:1,fiscalYearStartDay:1,enabledModules:[],retentionYears:10});var se=class i{i18n=g(Ie);api=g(I);confirmation=g(P);modules=Pe;state=Ke(`loading`);settings=Ke(void 0);model=Ke(Ve());settingsForm=nr(this.model,t=>{gn(t.functionalCurrency),mn(t.functionalCurrency,/^[A-Z]{3}$/),an(t.functionalCurrency,()=>this.currencyLocked()),hn(t.fiscalYearStartMonth,1),ln(t.fiscalYearStartMonth,12),hn(t.fiscalYearStartDay,1),ln(t.fiscalYearStartDay,31),hn(t.retentionYears,10)});saving=Ke(!1);initializing=Ke(!1);exchangeRates=Ke([]);exchangeRateDate=Ke(``);exchangeRateCurrency=Ke(``);exchangeRateValue=Ke(``);exchangeRateBusy=Ke(!1);exchangeRateError=Ke(void 0);saved=Ke(!1);error=Ke(void 0);constructor(){Ol(()=>{this.load()})}async canDeactivate(){return this.saving()||this.initializing()||this.exchangeRateBusy()?!1:this.settingsForm().dirty()?this.confirmation.request(this.i18n.t(`company.unsavedChanges`)):!0}preventUnsavedUnload(t){(this.saving()||this.initializing()||this.exchangeRateBusy()||this.settingsForm().dirty())&&t.preventDefault()}moduleEnabled(t){return this.model().enabledModules.includes(t)}setModule(t,e){if(!(e.currentTarget instanceof HTMLInputElement))return;let l$2=e.currentTarget.checked;this.model.update(a=>m(l({},a),{enabledModules:l$2?[...a.enabledModules,t]:a.enabledModules.filter(m=>m!==t)}))}moduleLabel(t){return this.i18n.t(`company.module.${t}`)}moduleHint(t){return this.i18n.t(`company.module.${t}.hint`)}currencyLocked(){return this.settings()?.accountingInitialized===!0}accountingState(){return this.i18n.t(this.currencyLocked()?`company.accountingInitialized`:`company.accountingNotInitialized`)}async load(){this.state.set(`loading`),this.error.set(void 0);let t=await this.api.get();if(!t.success){this.error.set(t.code),this.state.set(`error`);return}this.apply(t.result),this.state.set(`ready`),await this.loadExchangeRates()}save(t){if(t.preventDefault(),this.saving()||this.settingsForm().invalid()){this.settingsForm().markAsTouched();return}let e=this.settings();e&&or(this.settingsForm,async()=>{this.saving.set(!0),this.saved.set(!1),this.error.set(void 0);try{let l$3=await this.api.update(m(l({},this.model()),{expectedVersion:e.version}));if(!l$3.success){this.error.set(l$3.code);return}this.apply(l$3.result),this.saved.set(!0)}catch{this.error.set(`company.error`)}finally{this.saving.set(!1)}})}async initializeAccounting(){let t=this.settings();if(!(!t||t.accountingInitialized||this.initializing())&&await this.confirmation.request(this.i18n.t(`company.initializeConfirm`))){this.initializing.set(!0),this.error.set(void 0);try{let e=await this.api.initializeAccounting({functionalCurrency:this.model().functionalCurrency,expectedVersion:t.version});if(!e.success){this.error.set(e.code);return}this.apply(e.result),this.saved.set(!0)}catch{this.error.set(`company.error`)}finally{this.initializing.set(!1)}}}rateValue(t){return m$2(t.foreignUnitsPerFunctionalUnitNanos,9).replace(/\.?0+$/,``)}rateSource(t){return this.i18n.t(t.source===`ecb`?`company.exchangeRateEcb`:`company.exchangeRateManual`)}setExchangeRateField(t,e){e.currentTarget instanceof HTMLInputElement&&(t===`date`&&this.exchangeRateDate.set(e.currentTarget.value),t===`currency`&&this.exchangeRateCurrency.set(e.currentTarget.value.toUpperCase()),t===`value`&&this.exchangeRateValue.set(e.currentTarget.value))}async saveExchangeRate(t){t.preventDefault();let e=u(this.exchangeRateValue(),9);if(this.exchangeRateBusy()||!/^\d{4}-\d{2}-\d{2}$/.test(this.exchangeRateDate())||!/^[A-Z]{3}$/.test(this.exchangeRateCurrency())||e===void 0||e===0){this.exchangeRateError.set(`company.exchangeRateInvalid`);return}this.exchangeRateBusy.set(!0),this.exchangeRateError.set(void 0);try{let l=await this.api.setExchangeRate({rateDate:this.exchangeRateDate(),foreignCurrency:this.exchangeRateCurrency(),foreignUnitsPerFunctionalUnitNanos:e});if(!l.success){this.exchangeRateError.set(l.code);return}await this.loadExchangeRates()}catch{this.exchangeRateError.set(`company.error`)}finally{this.exchangeRateBusy.set(!1)}}async importExchangeRates(){if(!this.exchangeRateBusy()){this.exchangeRateBusy.set(!0),this.exchangeRateError.set(void 0);try{let t=await this.api.importExchangeRates();if(!t.success){this.exchangeRateError.set(t.code);return}this.exchangeRates.set(t.result)}catch{this.exchangeRateError.set(`company.error`)}finally{this.exchangeRateBusy.set(!1)}}}async loadExchangeRates(){try{let t=await this.api.listExchangeRates();t.success?this.exchangeRates.set(t.result):this.exchangeRateError.set(t.code)}catch{this.exchangeRateError.set(`company.error`)}}apply(t){this.settings.set(t),this.settingsForm().reset({jurisdiction:t.jurisdiction,functionalCurrency:t.functionalCurrency,fiscalYearStartMonth:t.fiscalYearStartMonth,fiscalYearStartDay:t.fiscalYearStartDay,enabledModules:t.enabledModules,retentionYears:t.retentionYears})}static ɵfac=function(e){return new(e||i)};static ɵcmp=Fb({type:i,selectors:[[`app-company-settings`]],hostAttrs:[1,`page-container`],hostBindings:function(e,l){e&1&&Gy(`beforeunload`,function(m){return l.preventUnsavedUnload(m)},Zw)},decls:9,vars:3,consts:[[`moduleHelp`,``],[`aria-labelledby`,`company-settings-title`,1,`detail-page`,`form-page`],[`layout`,`stacked`],[`id`,`company-settings-title`],[`role`,`status`],[1,`notice-flow`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`],[`appNotice`,``,`variant`,`success`,`role`,`status`],[`novalidate`,``,3,`submit`],[1,`field-grid`,`ds-panel`],[`for`,`company-jurisdiction`,1,`field`],[`id`,`company-jurisdiction`,`type`,`text`,`readonly`,``,1,`input`,3,`value`],[`for`,`company-currency`,1,`field`],[`id`,`company-currency`,`type`,`text`,1,`input`,3,`formField`],[`appFieldHint`,``,1,`wide`],[`for`,`company-fiscal-month`,1,`field`],[`id`,`company-fiscal-month`,`type`,`number`,`step`,`1`,1,`input`,3,`formField`],[`for`,`company-fiscal-day`,1,`field`],[`id`,`company-fiscal-day`,`type`,`number`,`step`,`1`,1,`input`,3,`formField`],[1,`module-grid`,`wide`],[3,`text`],[`for`,`company-retention`,1,`field`,`wide`],[`id`,`company-retention`,`type`,`number`,`step`,`1`,1,`input`,3,`formField`],[1,`actions`,`spacer-x-2`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`,4,`appCan`],[`appButton`,``,`type`,`button`,3,`disabled`],[`aria-labelledby`,`exchange-rates-title`,1,`ds-panel`,`form-panel`,`exchange-rates`],[1,`section-heading`],[`id`,`exchange-rates-title`],[1,`muted`],[`appButton`,``,`type`,`button`,3,`disabled`,`click`,4,`appCan`],[`class`,`rate-form`,3,`submit`,4,`appCan`],[1,`table-scroll`],[`scope`,`col`],[`type`,`checkbox`,3,`change`,`checked`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[1,`rate-form`,3,`submit`],[1,`field`],[`type`,`date`,`required`,``,1,`input`,3,`input`,`value`],[`maxlength`,`3`,`pattern`,`[A-Z]{3}`,`required`,``,1,`input`,3,`input`,`value`],[`inputmode`,`decimal`,`required`,``,1,`input`,3,`input`,`value`],[1,`amount`],[`colspan`,`4`]],template:function(e,l){e&1&&(Us(0,`section`,1)(1,`app-page-header`,2)(2,`h1`,3),y_(3),fd(),Us(4,`p`),y_(5),fd()(),OS(6,ue,2,1,`p`,4)(7,ge,5,2,`div`,5)(8,Me,68,31),fd()),e&2&&(ZC(3),nv(l.i18n.t(`company.title`)),ZC(2),nv(l.i18n.t(`company.intro`)),ZC(),kS(l.state()===`loading`?6:l.state()===`error`?7:8))},dependencies:[N,l$1,a,yn,D,k,g$1],styles:[`[_nghost-%COMP%]{display:block}.detail-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);min-inline-size:0;inline-size:100%;max-inline-size:var(--%NS%page-width-detail);margin-inline:auto;padding:var(--%NS%page-header-y) var(--%NS%page-x)}.detail-page.form-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-form)}.detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:var(--%NS%page-width-wide)}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-2xl);overflow-wrap:anywhere}app-page-header[data-header-layout=stacked][_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:var(--%NS%text-base);color:var(--%NS%color-muted);overflow-wrap:anywhere}.detail-page[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{justify-self:start}@media print{.detail-page[_ngcontent-%COMP%], .detail-page.form-page[_ngcontent-%COMP%], .detail-page.wide-page[_ngcontent-%COMP%]{max-inline-size:none}}form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-5)}fieldset[_ngcontent-%COMP%]{min-inline-size:0;margin:0;padding:var(--%NS%space-5)}.module-grid[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.module-grid[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%space-2);align-items:center}.module-grid[_ngcontent-%COMP%] app-hint[_ngcontent-%COMP%], .module-grid[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{inline-size:100%}.exchange-rates[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);margin-block-start:var(--%NS%space-4)}.section-heading[_ngcontent-%COMP%], .rate-form[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--%NS%space-4)}.section-heading[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .section-heading[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.rate-form[_ngcontent-%COMP%] .field[_ngcontent-%COMP%]{flex:1 1 10rem}.table-scroll[_ngcontent-%COMP%]{max-block-size:24rem;overflow:auto}table[_ngcontent-%COMP%]{width:100%}th[_ngcontent-%COMP%]{text-align:start}thead[_ngcontent-%COMP%]{position:sticky;z-index:1;inset-block-start:0;background:var(--%NS%color-panel)}`]})};export{se as CompanySettingsPage};
@@ -0,0 +1 @@
1
+ import{$t as ZC,A as Gy,At as S_,C as F_,D as Fy,Dn as g,Dr as t_,E as Ft,Gn as k_,Ir as wp,It as Us,Jr as zS,K as Ke,M as H_,Nr as vd,Rn as jS,Sr as rv,St as Qy,Tn as fd,V as Iy,Wn as kS,Wr as y_,X as LS,Xn as lv,dr as pe,ft as Ol,ht as PS,l as A_,lt as OS,mn as b_,pr as qS,qn as ky,rn as Zw,rr as nv,ut as O_,vt as Py,w as Fb,z as Ip,zn as j_}from"./chunk-BAHiFuUo.js";import{m as Ie$1,r as N,v as Dt}from"./main-F7D3L737.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D5qmP2Wu.js";import"./chunk-DjewtV43.js";import{t as N$1}from"./chunk-B0bNirg2.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as u}from"./chunk-Bfx7EEIR.js";import{t as c}from"./chunk-enci06qG.js";import"./chunk-CSkyOfSg.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-D5MFwK9L.js";import{t as P}from"./chunk-niXXbm7H.js";import{t as p}from"./chunk-BHEFFEGN.js";import"./chunk-CXHCUTDs.js";import{n as m,t as d$1}from"./chunk-cTGENC4T2.js";import"./chunk-ZBDWcE362.js";import"./chunk-CP-AnFGa2.js";import"./chunk-scbWWgLx2.js";import{r as l}from"./chunk-DpLF2wJ62.js";import{t as h}from"./chunk-DGbo0App2.js";import{t as l$1}from"./chunk-Dl4EbYnM2.js";import"./chunk-Bsy3r41y2.js";import{t as Fe$1}from"./chunk-DB6sOjsn2.js";import{n as b,t as Z}from"./chunk-CABvk97t2.js";import{i as U,n as B,r as Q,t as $}from"./chunk-CCqlW8pS2.js";import{t as f}from"./chunk-RIi7_iVg.js";import{n as V,r as b$1,t as E}from"./chunk-IzGdqlW82.js";var xe=()=>[`name`,`permissions`,`createdAt`,`expiresAt`,`lastUsedAt`,`status`];var he=o=>({count:o});var I=()=>({dateStyle:`short`,timeStyle:`short`});var Ce=(o,i)=>({count:o,total:i});var Te=(o,i)=>i.item.id;function Se(o,i){if(o&1){let e=zS();Us(0,`app-filter-choice`,19),Gy(`committed`,function(a){Ip(e);let m=qS(),ve=t_(15);return m.table.filter(a),wp(ve.close())}),fd()}if(o&2){let e=qS();Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.table.filterOptions())(`value`,e.table.query().filter)(`disabled`,e.loading())}}function Ee(o,i){if(o&1){let e=zS();Us(0,`div`,12)(1,`button`,20),Gy(`click`,function(){Ip(e);let a=qS(),m=t_(13);return a.table.filter(`all`),wp(m.focus())}),fd()()}if(o&2){let e=qS();ZC(),Fy(`label`,e.table.filterSummary())(`disabled`,e.loading())}}function we(o,i){if(o&1&&(Us(0,`p`,13),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(i))}}function Ae(o,i){if(o&1&&(Us(0,`p`,14),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.apiTokens.loading`))}}function Oe(o,i){if(o&1&&(Us(0,`app-empty-state`,15)(1,`p`),y_(2),fd(),Us(3,`a`,21),y_(4),fd()()),o&2){let e=qS();Fy(`title`,e.i18n.t(`backOffice.apiTokens.empty`)),ZC(2),nv(e.i18n.t(`backOffice.apiTokens.emptyIntro`)),ZC(),Fy(`queryParams`,e.navigation.params()),ZC(),nv(e.i18n.t(`backOffice.apiTokens.create`))}}function Me(o,i){if(o&1&&(Us(0,`li`)(1,`code`,27),y_(2),fd(),Us(3,`span`),y_(4),fd()()),o&2){let e=i.$implicit,t=i.$index,a=qS().$implicit,m=qS(2);ZC(),Fy(`appSearchHighlight`,m.table.match(a,`permissions`,t)),ZC(),nv(e),ZC(2),nv(m.i18n.t(m.permissionLabel(e)))}}function Pe(o,i){if(o&1&&y_(0),o&2)vd(` `,qS(3).i18n.t(`backOffice.apiTokens.never`),` `)}function Ne(o,i){if(o&1&&(y_(0),j_(1,`localizedDate`)),o&2){qS();let e=S_(0),t=qS(2);vd(` `,H_(1,1,t.date(e.lastUsedAt),t.i18n.language(),O_(5,I)),` `)}}function Ve(o,i){if(o&1){let e=zS();Us(0,`button`,36),Gy(`click`,function(){Ip(e),qS();let a=S_(0);return wp(qS(2).revoke(a))}),y_(1),fd()}if(o&2){qS();let e=S_(0),t=qS(2);Fy(`disabled`,t.revoking()),ky(`aria-label`,t.i18n.t(`backOffice.apiTokens.revoke`)+` `+e.name),ZC(),vd(` `,t.i18n.t(`backOffice.apiTokens.revoke`),` `)}}function Ie(o,i){if(o&1&&(lv(0),Us(1,`tr`)(2,`th`,24)(3,`div`,25),Py(4,`app-entity-icon`,26),Us(5,`span`,27),y_(6),fd()()(),Us(7,`td`)(8,`button`,28),y_(9),fd(),Us(10,`div`,29)(11,`div`,30)(12,`h2`,31),y_(13),fd(),Us(14,`button`,32),y_(15),fd()(),Us(16,`ul`,33),LS(17,Me,5,3,`li`,null,PS),fd()()(),Us(19,`td`),y_(20),j_(21,`localizedDate`),fd(),Us(22,`td`),y_(23),j_(24,`localizedDate`),fd(),Us(25,`td`),OS(26,Pe,1,1)(27,Ne,2,6),fd(),Us(28,`td`)(29,`span`,34),y_(30),fd()(),Us(31,`td`),OS(32,Ve,2,3,`button`,35),fd()()),o&2){let e=i.$implicit,t=qS(2),a=b_(e.item);ZC(4),Fy(`variant`,t.statusVariant(a)),ZC(),Fy(`appSearchHighlight`,t.table.match(e,`name`)),ZC(),nv(a.name),ZC(2),Qy(`anchor-name`,`--token-permissions-`+a.id),ky(`popovertarget`,`token-permissions-`+a.id),ZC(),vd(` `,t.i18n.plural(`configurationWorkspace.permissionCount`,k_(31,he,a.permissions.length)),` `),ZC(),Qy(`position-anchor`,`--token-permissions-`+a.id),Fy(`id`,`token-permissions-`+a.id),ky(`aria-labelledby`,`token-permissions-title-`+a.id),ZC(2),Fy(`id`,`token-permissions-title-`+a.id),ZC(),rv(` `,t.i18n.t(`backOffice.apiTokens.permissions`),` — `,a.name,` `),ZC(),ky(`popovertarget`,`token-permissions-`+a.id),ZC(),vd(` `,t.i18n.t(`adminPages.closePermissions`),` `),ZC(2),jS(a.permissions),ZC(3),vd(` `,H_(21,23,t.date(a.createdAt),t.i18n.language(),O_(33,I)),` `),ZC(3),vd(` `,H_(24,27,t.date(a.expiresAt),t.i18n.language(),O_(34,I)),` `),ZC(3),kS(a.lastUsedAt===null?26:27),ZC(3),Fy(`variant`,t.statusVariant(a)),ZC(),nv(t.i18n.t(t.statusLabel(a))),ZC(2),kS(t.status(a)!==`revoked`?32:-1)}}function De(o,i){if(o&1){let e=zS();Us(0,`div`,16)(1,`table`)(2,`thead`)(3,`tr`)(4,`th`,22)(5,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`name`))}),fd()(),Us(6,`th`,22),y_(7),fd(),Us(8,`th`,22)(9,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`date`))}),fd()(),Us(10,`th`,22)(11,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`expires`))}),fd()(),Us(12,`th`,22)(13,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().table.sort(`used`))}),fd()(),Us(14,`th`,22),y_(15),fd(),Us(16,`th`,22),y_(17),fd()()(),Us(18,`tbody`),LS(19,Ie,33,35,`tr`,null,Te),fd()()()}if(o&2){let e=qS();ZC(4),ky(`aria-sort`,e.table.direction(`name`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.apiTokens.name`))(`direction`,e.table.direction(`name`)),ZC(2),nv(e.i18n.t(`backOffice.apiTokens.permissions`)),ZC(),ky(`aria-sort`,e.table.direction(`date`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.apiTokens.createdAt`))(`direction`,e.table.direction(`date`)),ZC(),ky(`aria-sort`,e.table.direction(`expires`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.apiTokens.expiresAt`))(`direction`,e.table.direction(`expires`)),ZC(),ky(`aria-sort`,e.table.direction(`used`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.apiTokens.lastUsedAt`))(`direction`,e.table.direction(`used`)),ZC(2),nv(e.i18n.t(`backOffice.apiTokens.status`)),ZC(2),nv(e.i18n.t(`backOffice.apiTokens.actions`)),ZC(2),jS(e.table.results())}}function Le(o,i){if(o&1&&(Us(0,`footer`,17)(1,`p`,14),y_(2),fd()()),o&2){let e=qS();ZC(2),vd(` `,e.i18n.plural(`adminPages.tokensCount`,F_(1,Ce,e.table.results().length,e.tokens().length)),` `)}}function Fe(o,i){if(o&1){let e=zS();Us(0,`button`,37),Gy(`click`,function(){Ip(e);return wp(qS().loadMore())}),y_(1),fd()}if(o&2){let e=qS();Fy(`disabled`,e.loadingMore()),ZC(),vd(` `,e.i18n.t(`backOffice.apiTokens.loadMore`),` `)}}var ye=class o{confirmation=g(P);i18n=g(Ie$1);navigation=g(b$1);api=g(V);destroyRef=g(pe);tokens=Ke([]);table=N$1(this.tokens,l);filterCount=Ft(()=>+(this.table.query().filter!==`all`));tokenExport=Ft(()=>this.table.rows().map(i=>[i.name,i.permissions.join(`, `),new Date(i.createdAt).toISOString(),new Date(i.expiresAt).toISOString(),i.lastUsedAt===null?null:new Date(i.lastUsedAt).toISOString(),this.status(i)]));nextCursor=Ke(null);loading=Ke(!0);loadingMore=Ke(!1);revoking=Ke(!1);pageError=Ke(void 0);errorOperation=Ke(`load`);errorMessage=Ft(()=>E(this.pageError(),this.errorOperation()));now=Ke(Date.now());expirationTimer;constructor(){Ol(()=>{this.load()}),this.destroyRef.onDestroy(()=>{this.expirationTimer!==void 0&&clearTimeout(this.expirationTimer)})}permissionLabel(i){return`permission.${i}`}async revoke(i){if(this.revoking()||!await this.confirmation.request(this.i18n.t(`backOffice.apiTokens.revokeConfirmation`)))return;this.revoking.set(!0),this.pageError.set(void 0);let e=await this.api.revoke(i.id);if(this.revoking.set(!1),!e.success){this.errorOperation.set(`revoke`),this.pageError.set(e.code);return}this.tokens.update(t=>t.map(a=>a.id===e.result.id?e.result:a)),this.scheduleExpiration()}status(i){return i.revokedAt!==null?`revoked`:i.expiresAt<=this.now()?`expired`:`active`}statusLabel(i){return`backOffice.apiTokens.status.${this.status(i)}`}statusVariant(i){let e=this.status(i);return e===`active`?`success`:e===`expired`?`warning`:`danger`}date(i){return new Date(i)}async loadMore(){let i=this.nextCursor();if(!(i===null||this.loadingMore())){this.loadingMore.set(!0),this.pageError.set(void 0);try{let e=await this.api.list(i);this.appendMissingTokens(e.items),this.nextCursor.set(e.nextCursor),this.scheduleExpiration()}catch{this.errorOperation.set(`load`),this.pageError.set(`api_token.error`)}finally{this.loadingMore.set(!1)}}}canDeactivate(){return!this.revoking()}beforeUnload(i){this.revoking()&&i.preventDefault()}async load(){try{let i=await this.api.list();this.appendMissingTokens(i.items),this.nextCursor.set(i.nextCursor),this.scheduleExpiration()}catch{this.errorOperation.set(`load`),this.pageError.set(`api_token.error`)}finally{this.loading.set(!1)}}appendMissingTokens(i){this.tokens.update(e=>{let t=new Set(e.map(({id:a})=>a));return[...e,...i.filter(({id:a})=>!t.has(a))]})}scheduleExpiration(){this.expirationTimer!==void 0&&clearTimeout(this.expirationTimer);let i=Date.now();this.now.set(i);let e=this.tokens().filter(({expiresAt:t,revokedAt:a})=>a===null&&t>i).reduce((t,{expiresAt:a})=>t===void 0||a<t?a:t,void 0);if(e===void 0){this.expirationTimer=void 0;return}this.expirationTimer=setTimeout(()=>this.scheduleExpiration(),Math.min(e-i+1,2147483647))}static ɵfac=function(e){return new(e||o)};static ɵcmp=Fb({type:o,selectors:[[`app-api-tokens`]],hostAttrs:[1,`page-container`],hostBindings:function(e,t){e&1&&Gy(`beforeunload`,function(m){return t.beforeUnload(m)},Zw)},features:[A_([d$1,b$1])],decls:25,vars:26,consts:[[`tokenSearch`,``],[`tokenMenu`,``],[`aria-labelledby`,`api-tokens-title`,1,`tokens-page`],[`id`,`api-tokens-title`],[1,`muted`],[`pageActions`,``,`appLinkButton`,``,`icon`,`plus`,`variant`,`primary`,`routerLink`,`new`,3,`queryParams`],[`href`,`/api/docs`,`target`,`_blank`,`rel`,`noopener noreferrer`],[`appListWorkspace`,``],[`listSearch`,``,3,`valueChange`,`label`,`value`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,`filename`,`api-token-permissions.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[1,`spacer-x-3`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`role`,`status`],[`icon`,`secrets`,3,`title`],[`appDataTable`,``],[1,`list-summary`,`spacer-y-2`],[`appButton`,``,`type`,`button`,3,`disabled`],[3,`committed`,`label`,`emptyLabel`,`options`,`value`,`disabled`],[`appFilterChip`,``,3,`click`,`label`,`disabled`],[`emptyActions`,``,`appLinkButton`,``,`icon`,`plus`,`routerLink`,`new`,3,`queryParams`],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[`scope`,`row`],[1,`entity-label`],[`icon`,`secrets`,3,`variant`],[3,`appSearchHighlight`],[`appButton`,``,`type`,`button`,`aria-haspopup`,`dialog`],[`popover`,`auto`,`role`,`dialog`,`tabindex`,`0`,1,`permissions-popover`,3,`id`],[1,`permissions-heading`,`spacer-x-3`],[3,`id`],[`appButton`,``,`type`,`button`,`popovertargetaction`,`hide`,`autofocus`,``],[1,`permissions-list`],[`appBadge`,``,3,`variant`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`disabled`],[`appButton`,``,`variant`,`danger`,`type`,`button`,3,`click`,`disabled`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`]],template:function(e,t){if(e&1&&(Us(0,`section`,2)(1,`app-page-header`)(2,`h1`,3),y_(3),fd(),Us(4,`p`,4),y_(5),fd(),Us(6,`a`,5),y_(7),fd()(),Us(8,`a`,6),y_(9),fd(),Us(10,`div`,7)(11,`app-list-toolbar`)(12,`app-list-search`,8,0),Gy(`valueChange`,function(m){return t.table.search(m)}),fd(),Us(14,`app-filter-menu`,9,1),Iy(16,Se,1,5,`ng-template`,10),fd(),Py(17,`app-table-export`,11),fd(),OS(18,Ee,2,2,`div`,12),OS(19,we,2,1,`p`,13),OS(20,Ae,2,1,`p`,14)(21,Oe,5,4,`app-empty-state`,15)(22,De,21,15,`div`,16),OS(23,Le,3,4,`footer`,17),OS(24,Fe,2,2,`button`,18),fd()()),e&2){let a;ZC(3),nv(t.i18n.t(`backOffice.apiTokens.title`)),ZC(2),nv(t.i18n.t(`backOffice.apiTokens.intro`)),ZC(),Fy(`queryParams`,t.navigation.params()),ZC(),nv(t.i18n.t(`backOffice.apiTokens.create`)),ZC(2),nv(t.i18n.t(`backOffice.apiTokens.documentation`)),ZC(3),Fy(`label`,t.i18n.t(`configurationWorkspace.searchTokens`))(`value`,t.table.query().q),ZC(2),Fy(`label`,t.i18n.t(`listWorkspace.filters`))(`closeLabel`,t.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,t.i18n.t(`listWorkspace.backFilters`))(`activeCount`,t.filterCount())(`disabled`,t.loading()),ZC(2),Fy(`label`,t.i18n.t(`configurationWorkspace.status`))(`summary`,t.table.filterSummary()),ZC(),Fy(`columns`,O_(25,xe))(`rows`,t.tokenExport())(`label`,t.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,t.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,t.i18n.t(`listWorkspace.exportPending`))(`pending`,t.loading()||t.loadingMore()||t.revoking()||t.pageError()!==void 0),ZC(),kS(t.filterCount()?18:-1),ZC(),kS((a=t.errorMessage())?19:-1,a),ZC(),kS(t.loading()?20:t.table.results().length===0&&!t.pageError()?21:22),ZC(3),kS(t.loading()?-1:23),ZC(),kS(t.nextCursor()!==null?24:-1)}},dependencies:[d,N,c,l$1,f,k,g$1,Dt,u,U,B,Q,Z,b,Fe$1,h,$,m,p],styles:[`.entity-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--%NS%space-2);min-inline-size:0}.entity-label[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:last-child{min-inline-size:0}[_nghost-%COMP%]{display:block}.tokens-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-5);padding:var(--%NS%page-header-y) var(--%NS%page-x)}.permissions-heading[_ngcontent-%COMP%]{justify-content:space-between}.permissions-heading[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}.permissions-popover[_ngcontent-%COMP%]{position:fixed;position-area:block-end;position-try-fallbacks:flip-block,block-end span-inline-start,block-start span-inline-start,block-end span-inline-end,block-start span-inline-end;inset:auto;inline-size:min(36rem,100vw - 2rem);max-block-size:min(32rem,100dvh - 4rem);overflow:auto;overscroll-behavior:contain;margin:var(--%NS%space-2);padding:var(--%NS%space-4);border:1px solid var(--%NS%color-line-strong);border-radius:var(--%NS%radius-md);background:var(--%NS%color-surface-raised);color:var(--%NS%color-ink);box-shadow:var(--%NS%shadow-page);overflow-wrap:anywhere}.permissions-list[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);margin-block:var(--%NS%space-4) 0;padding-inline-start:var(--%NS%space-5)}.permissions-list[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}.field[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2)}fieldset[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);min-width:0;margin:0;padding:var(--%NS%space-4)}.permission-grid[_ngcontent-%COMP%]{max-height:min(26rem,50dvh);overflow:auto}.permission-search[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2)}.permission-grid[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%;min-width:38rem}.permission-grid[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:last-child, .permission-selection[_ngcontent-%COMP%]{width:7rem;text-align:center}.permission-selection[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:1.1rem;height:1.1rem}`]})};export{ye as ApiTokens};
@@ -0,0 +1 @@
1
+ import{$ as MH,$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,Ir as wp,It as Us,Jr as zS,Tn as fd,V as Iy,nt as NH,pr as qS,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie}from"./main-F7D3L737.js";import{t as Fe}from"./chunk-DB6sOjsn2.js";import{n as b,t as Z}from"./chunk-CABvk97t2.js";import{i as U,r as Q,t as $}from"./chunk-CCqlW8pS2.js";function N(r,u){if(r&1){let t=zS();Us(0,`app-filter-choice`,5),Gy(`committed`,function(c){Ip(t);let s=qS(),S=t_(3);return s.filterChange.emit(c),wp(S.close())}),fd()}if(r&2){let t=qS();Fy(`label`,t.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,t.i18n.t(`listWorkspace.noChoices`))(`options`,t.filterOptions())(`value`,t.filter())(`disabled`,t.pending())}}var M=class r{i18n=g(Ie);query=NH.required();filter=NH.required();filterLabel=NH.required();filterSummary=NH.required();filterOptions=NH.required();columns=NH.required();rows=NH.required();filename=NH.required();pending=NH(!1);queryChange=MH();filterChange=MH();static ɵfac=function(t){return new(t||r)};static ɵcmp=Fb({type:r,selectors:[[`app-workspace-table-tools`]],hostAttrs:[2,`display`,`contents`],inputs:{query:[1,`query`],filter:[1,`filter`],filterLabel:[1,`filterLabel`],filterSummary:[1,`filterSummary`],filterOptions:[1,`filterOptions`],columns:[1,`columns`],rows:[1,`rows`],filename:[1,`filename`],pending:[1,`pending`]},outputs:{queryChange:`queryChange`,filterChange:`filterChange`},decls:6,vars:17,consts:[[`menu`,``],[`listSearch`,``,3,`valueChange`,`label`,`value`,`disabled`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,3,`columns`,`rows`,`filename`,`label`,`emptyHint`,`pendingHint`,`pending`],[3,`committed`,`label`,`emptyLabel`,`options`,`value`,`disabled`]],template:function(t,e){t&1&&(Us(0,`app-list-toolbar`)(1,`app-list-search`,1),Gy(`valueChange`,function(s){return e.queryChange.emit(s)}),fd(),Us(2,`app-filter-menu`,2,0),Iy(4,N,1,5,`ng-template`,3),fd(),Py(5,`app-table-export`,4),fd()),t&2&&(ZC(),Fy(`label`,e.i18n.t(`listWorkspace.search`))(`value`,e.query())(`disabled`,e.pending()),ZC(),Fy(`label`,e.i18n.t(`listWorkspace.filters`))(`closeLabel`,e.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,e.i18n.t(`listWorkspace.backFilters`))(`activeCount`,e.filter()===`all`?0:1)(`disabled`,e.pending()),ZC(2),Fy(`label`,e.filterLabel())(`summary`,e.filterSummary()),ZC(),Fy(`columns`,e.columns())(`rows`,e.rows())(`filename`,e.filename())(`label`,e.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,e.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,e.i18n.t(`listWorkspace.exportPending`))(`pending`,e.pending()))},dependencies:[Fe,Z,b,Q,U,$],encapsulation:2})};export{M as t};
@@ -0,0 +1 @@
1
+ import{$t as ZC,D as Fy,Dn as g,It as Us,Nr as vd,Tn as fd,Wn as kS,Wr as y_,lt as OS,pr as qS,rr as nv,vt as Py,w as Fb}from"./chunk-BAHiFuUo.js";import{t as k}from"./chunk-D5MFwK9L.js";import{t as N$1}from"./chunk-Fc120Hsi2.js";import{t as w}from"./chunk-Bb31fHqC2.js";function T(e,i){if(e&1&&(Us(0,`p`,1),y_(1),fd()),e&2){let t=qS();ZC(),nv(t.task.i18n.t(`backOffice.invoices.loading`))}}function I(e,i){if(e&1&&(Us(0,`p`,1),y_(1),fd()),e&2){let t=qS();ZC(),nv(t.task.i18n.t(`billingWorkspace.pending`))}}function F(e,i){if(e&1&&(Us(0,`p`,2),y_(1),fd()),e&2){let t=qS();ZC(),vd(` `,t.task.i18n.t(`billingWorkspace.completed`),` `)}}function S(e,i){if(e&1&&(Us(0,`p`,3),y_(1),fd()),e&2){let t=qS();ZC(),nv(t.task.i18n.t(`billingWorkspace.stale`))}}function E(e,i){if(e&1&&(Us(0,`p`,3),y_(1),fd()),e&2){let t=qS();ZC(),vd(` `,t.task.i18n.t(`billingWorkspace.uncertain`),` `)}}function N(e,i){if(e&1&&(Us(0,`p`,4),y_(1),fd()),e&2){let t=qS();ZC(),nv(t.task.i18n.t(i))}}function D(e,i){if(e&1&&Py(0,`app-document-issues`,5),e&2)Fy(`issues`,qS().task.issues())(`clientId`,i.clientId)}var v=class e{task=g(w);static ɵfac=function(t){return new(t||e)};static ɵcmp=Fb({type:e,selectors:[[`app-invoice-task-feedback`]],decls:8,vars:5,consts:[[`data-task-feedback`,``,`tabindex`,`-1`,1,`feedback`],[`role`,`status`],[`appNotice`,``,`variant`,`success`,`role`,`status`],[`appNotice`,``,`variant`,`warning`,`role`,`alert`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`kind`,`invoice`,3,`issues`,`clientId`]],template:function(t,a){if(t&1&&(Us(0,`div`,0),OS(1,T,2,1,`p`,1),OS(2,I,2,1,`p`,1),OS(3,F,2,1,`p`,2),OS(4,S,2,1,`p`,3)(5,E,2,1,`p`,3)(6,N,2,1,`p`,4),OS(7,D,1,2,`app-document-issues`,5),fd()),t&2){let k,u;ZC(),kS(a.task.loading()?1:-1),ZC(),kS(a.task.busy()?2:-1),ZC(),kS(a.task.completed()?3:-1),ZC(),kS(a.task.stale()?4:a.task.uncertain()?5:(k=!a.task.issues().length&&a.task.error())?6:-1,k),ZC(3),kS((u=a.task.issues().length&&a.task.invoice())?7:-1,u)}},dependencies:[k,N$1],styles:[`.feedback[_ngcontent-%COMP%]{display:grid;justify-items:start;gap:var(--%NS%space-3)}p[_ngcontent-%COMP%]{margin:0}app-document-issues[_ngcontent-%COMP%]{margin:0}`]})};export{v as t};