@sachahjkl/backoffice 0.2.5 → 0.2.7

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
@@ -1 +0,0 @@
1
- import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,At as S_,D as Fy,Dn as g,Dr as t_,E as Ft,Fn as iv,Gn as k_,Ir as wp,It as Us,J as Ky,Jr as zS,Jt as Xy,K as Ke$1,Nr as vd,P as Hn,Rn as jS,Rt as V_,Tn as fd,V as Iy,Vr as xH,Wn as kS,Wr as y_,X as LS,Xn as lv,dr as pe,ft as Ol,l as A_,lt as OS,mn as b_,mr as qT,mt as PH,pr as qS,qn as ky,rr as nv,tn as ZT,tt as Mn,vt as Py,w as Fb,xn as e_,xt as Qg,z as Ip,zn as j_}from"./chunk-BAHiFuUo.js";import{T as ue,h as Ne,i as r,m as Ie,o as U,r as N,v as Dt,y as G}from"./main-AJD2LGCE.js";import{t as D}from"./chunk-CuukTiS1.js";import{t as g$1}from"./chunk-B56nz2lI.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import{t as k}from"./chunk-DRgIjFR6.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{Ca as Zu}from"./chunk-CjtJKrza.js";import"./chunk-Dv9sNWWK.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as E}from"./chunk-BWNhkOOr.js";import{d as nr,h as yn}from"./chunk-CSkyOfSg.js";import{n as m$1,t as d$1}from"./chunk-cTGENC4T.js";import{t as Ft$1}from"./chunk-DjewtV43.js";import{t as p}from"./chunk-BHEFFEGN.js";import{t as D$1}from"./chunk-CXHCUTDs2.js";import"./chunk-ZBDWcE362.js";import{i as U$1,n as B,r as Q,t as $}from"./chunk-DMlYYeVV2.js";import{t as u}from"./chunk-osh5v_OU2.js";import{t as c}from"./chunk-D83vXRZS2.js";import{n as l$1,t as K}from"./chunk-CJDa7FT62.js";import{S as x,_ as h,a as I,f as R,g as _,h as Y,i as H,l as N$1,r as F,s as L,y as k$1}from"./chunk-JUTCkl5C2.js";import{t as f}from"./chunk-BG9HC5MH2.js";import{t as h$1}from"./chunk-DODMV1QO.js";import{t as B$1}from"./chunk-CdEOFR_J.js";import{n as b,t as Z}from"./chunk-BKWyrwrz.js";var je=[`periodError`];var Ke=r=>({count:r});var Ue=(r,n)=>n.key;var Qe=(r,n)=>n.item.sourceKind+n.item.sourceId;var Ge=(r,n)=>n.item.id;function Je(r,n){if(r&1&&(Us(0,`p`,21,0),y_(2),fd()),r&2){let e=qS(2);ZC(2),vd(` `,e.i18n.t(`bankWorkspace.ledgerPeriodRequired`),` `)}}function Xe(r,n){if(r&1){let e=zS();Us(0,`p`,4),y_(1),fd(),Us(2,`app-date-range-filter`,20),Gy(`focusin`,function(){Ip(e);return wp(qS().periodRequired.set(!1))})(`rangeApplied`,function(s){Ip(e);return wp(qS().applyPeriod(s))}),fd(),OS(3,Je,3,1,`p`,21)}if(r&2){let e=qS();ZC(),nv(e.i18n.t(`bankWorkspace.ledgerPeriodRequired`)),ZC(),Fy(`from`,e.query().from||void 0)(`to`,e.query().to||void 0),ZC(),kS(e.periodRequired()?3:-1)}}function Ye(r,n){if(r&1&&(Us(0,`app-hint`,13,1)(2,`a`,22),Py(3,`app-icon`,23),y_(4),fd()()),r&2){let e=t_(1),t=qS();Fy(`text`,t.i18n.t(`bankWorkspace.periodExportHint`)),ZC(2),Fy(`href`,n,Qg),ky(`aria-describedby`,e.id),ZC(2),nv(t.i18n.t(`bankWorkspace.periodExport`))}}function Ze(r,n){if(r&1){let e=zS();Us(0,`div`,14)(1,`button`,24),Gy(`click`,function(){Ip(e);return wp(qS().search(``))}),fd()()}if(r&2){let e=qS();ZC(),Fy(`label`,e.query().q)}}function et(r,n){if(r&1&&(Us(0,`p`,15),y_(1),fd()),r&2){let e=qS();ZC(),nv(e.i18n.t(n))}}function tt(r,n){if(r&1&&(Us(0,`p`,16),y_(1),fd()),r&2){let e=qS();ZC(),nv(e.i18n.t(`ledger.loading`))}}function nt(r,n){if(r&1){let e=zS();Us(0,`div`)(1,`button`,25),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(2),fd()()}if(r&2){let e=qS();ZC(2),nv(e.i18n.t(`bank.reload`))}}function rt(r,n){if(r&1&&Py(0,`app-empty-state`,17),r&2){let e=qS();Fy(`title`,e.i18n.t(e.query().q?`bankWorkspace.ledgerNoMatches`:e.query().view===`journal`?`bankWorkspace.journalEmpty`:`bankWorkspace.sourceEmpty`))}}function it(r,n){if(r&1){let e=zS();Us(0,`th`,27)(1,`button`,28),Gy(`click`,function(){let s=Ip(e).$implicit;return wp(qS(2).sortBy(s.key))}),fd()()}if(r&2){let e=n.$implicit,t=qS(2);Xy(`amount`,e.kind===`number`),ky(`aria-sort`,t.sortDirection(e.key)),ZC(),Fy(`label`,t.i18n.t(e.label))(`direction`,t.sortDirection(e.key))}}function at(r,n){if(r&1&&(Us(0,`a`,30),y_(1),fd()),r&2){let e=qS().$implicit,t=S_(0),s=qS(2);Fy(`routerLink`,s.sourceLink(t.sourceKind,t.sourceId))(`queryParams`,s.queryParams())(`appSearchHighlight`,e.indices),ZC(),nv(t.reference)}}function ot(r,n){if(r&1&&(Us(0,`span`,31),y_(1),fd()),r&2){let e=qS().$implicit,t=S_(0);Fy(`appSearchHighlight`,e.indices),ZC(),nv(t.reference)}}function st(r,n){if(r&1&&(lv(0),Us(1,`tr`)(2,`th`,29),OS(3,at,2,4,`a`,30)(4,ot,2,2,`span`,31),fd(),Us(5,`td`),y_(6),fd(),Us(7,`td`),y_(8),fd(),Us(9,`td`),y_(10),j_(11,`localizedDate`),fd(),Us(12,`td`,32),y_(13),fd()()),r&2){let e=n.$implicit,t=qS(2),s=b_(e.item);ZC(3),kS(t.authentication.can(`ledger.post`)?3:4),ZC(3),nv(s.account),ZC(2),nv(t.i18n.t(s.sourceKind===`fee`?`ledger.fee`:`ledger.debit`)),ZC(2),nv(V_(11,6,s.bookedOn,t.i18n.language())),ZC(3),nv(t.money(s.amountCents))}}function lt(r,n){if(r&1&&(Us(0,`div`,18)(1,`table`)(2,`thead`)(3,`tr`),LS(4,it,2,5,`th`,26,Ue),fd()(),Us(6,`tbody`),LS(7,st,14,9,`tr`,null,Qe),fd()()()),r&2){let e=qS();ZC(4),jS(e.sourceColumns),ZC(3),jS(e.sourceResults())}}function dt(r,n){if(r&1){let e=zS();Us(0,`th`,27)(1,`button`,28),Gy(`click`,function(){let s=Ip(e).$implicit;return wp(qS(2).sortBy(s.key))}),fd()()}if(r&2){let e=n.$implicit,t=qS(2);Xy(`amount`,e.kind===`number`),ky(`aria-sort`,t.sortDirection(e.key)),ZC(),Fy(`label`,t.i18n.t(e.label))(`direction`,t.sortDirection(e.key))}}function ct(r,n){if(r&1&&(Us(0,`tr`)(1,`th`,29)(2,`a`,30),y_(3),fd(),Us(4,`small`),y_(5),fd()(),Us(6,`td`)(7,`span`,31),y_(8),fd()(),Us(9,`td`),y_(10),j_(11,`localizedDate`),fd(),Us(12,`td`),y_(13),fd(),Us(14,`td`),y_(15),fd(),Us(16,`td`)(17,`span`,33),y_(18),fd()(),Us(19,`td`,32),y_(20),fd()()),r&2){let e=n.$implicit,t=qS(2),s=e.item;ZC(2),Fy(`routerLink`,t.entryLink(s.id))(`queryParams`,t.queryParams())(`appSearchHighlight`,e.indices),ZC(),nv(s.label),ZC(2),nv(s.id),ZC(2),Fy(`appSearchHighlight`,e.referenceIndices),ZC(),nv(s.sourceReference),ZC(2),nv(V_(11,12,s.bookedOn,t.i18n.language())),ZC(3),nv(s.debitAccount),ZC(2),nv(s.creditAccount),ZC(3),nv(t.i18n.t(s.reversesId?`bankWorkspace.reversalEntry`:s.reversalId?`bankWorkspace.reversedEntry`:`bankWorkspace.activeEntry`)),ZC(2),nv(t.money(s.amountCents))}}function pt(r,n){if(r&1&&(Us(0,`div`,18)(1,`table`)(2,`thead`)(3,`tr`),LS(4,dt,2,5,`th`,26,Ue),fd()(),Us(6,`tbody`),LS(7,ct,21,15,`tr`,null,Ge),fd()()()),r&2){let e=qS();ZC(4),jS(e.entryColumns),ZC(3),jS(e.entryResults())}}function ut(r,n){if(r&1&&(Us(0,`p`,16),y_(1),fd()),r&2){let e=qS();ZC(),nv(e.i18n.plural(`bankWorkspace.entryCount`,k_(1,Ke,e.count())))}}var Ae=class r$1{authentication=g(E);i18n=g(Ie);api=g(l$1);route=g(G);router=g(ue);destroyRef=g(pe);pendingTasks=g(Mn);state=Ke$1(`loading`);error=Ke$1(void 0);errorMessage=Ft(()=>K(this.error(),`load`));records=Ke$1({entries:[],sources:[]});query=Ke$1(F(this.route.snapshot.queryParamMap));queryParams=Ft(()=>H(this.query()));periodRequired=Ke$1(!1);periodError=xH(`periodError`,{read:Hn});searchForm=nr(Ke$1({q:this.query().q}));activeFilterCount=Ft(()=>+(this.query().from!==``||this.query().to!==``));filterMenu=xH(Z);searchControl=xH(Q);tabs=Ft(()=>N$1(this.i18n,n=>this.authentication.can(n)));viewTabs=Ft(()=>[`sources`,`journal`].map(n=>({path:`.`,id:`bank-${n}-tab`,label:this.i18n.t(`bankWorkspace.${n}`),queryParams:this.viewQuery(n),active:this.query().view===n})));sourceLink=Y;entryLink=_;sourceColumns=h;entryColumns=R;sources=Ft(()=>this.records().sources.filter(n=>n.entryId===null));sourceSearch=Ft$1(this.sources,Ft(()=>this.query().q),{keys:[`reference`,`account`],includeMatches:!0,ignoreLocation:!0,ignoreDiacritics:!0,threshold:.35});sourceResults=Ft(()=>{let n=I(k$1(this.query().sort,h),h,this.i18n.language(),e=>`${e.sourceId}/${e.sourceKind}`);return this.sourceSearch().toSorted((e,t)=>n(e.item,t.item)).map(e=>({item:e.item,indices:e.matches?.find(t=>t.key===`reference`)?.indices??[]}))});entrySearch=Ft$1(Ft(()=>this.records().entries),Ft(()=>this.query().q),{keys:[`label`,`id`,`sourceReference`],includeMatches:!0,ignoreLocation:!0,ignoreDiacritics:!0,threshold:.35});entryResults=Ft(()=>{let n=I(k$1(this.query().sort,R),R,this.i18n.language(),e=>e.id);return this.entrySearch().toSorted((e,t)=>n(e.item,t.item)).map(e=>({item:e.item,indices:e.matches?.find(t=>t.key===`label`)?.indices??[],referenceIndices:e.matches?.find(t=>t.key===`sourceReference`)?.indices??[]}))});count=Ft(()=>this.query().view===`journal`?this.entryResults().length:this.sourceResults().length);exportColumns=Ft(()=>this.query().view===`journal`?[`entry_id`,`label`,`source_reference`,`booked_on`,`debit_account`,`credit_account`,`status`,`amount_cents`,`currency`]:[`source_kind`,`source_id`,`reference`,`account`,`booked_on`,`amount_cents`,`currency`]);exportRows=Ft(()=>this.state()!==`ready`?[]:this.query().view===`journal`?this.entryResults().map(({item:n})=>[n.id,n.label,n.sourceReference,n.bookedOn,n.debitAccount,n.creditAccount,n.reversesId?`reversal`:n.reversalId?`reversed`:`active`,n.amountCents,`EUR`]):this.sourceResults().map(({item:n})=>[n.sourceKind,n.sourceId,n.reference,n.account,n.bookedOn,n.amountCents,`EUR`]));exportUrl=Ft(()=>this.state()===`ready`?`/api/banking/ledger/export?${new URLSearchParams({from:this.query().from,to:this.query().to})}`:void 0);loadedKey=``;generation=0;constructor(){PH(()=>{this.periodRequired()&&this.periodError()?.nativeElement.focus()}),Ol(()=>this.route.queryParamMap.pipe(U(this.destroyRef)).subscribe(n=>{let e=F(n);this.query.set(e),this.searchForm().reset({q:e.q});let t=`${e.from}/${e.to}`;t!==this.loadedKey&&(this.loadedKey=t,this.pendingTasks.run(()=>this.load()))}))}async load(){let n=++this.generation,e={from:this.query().from,to:this.query().to};if(!wu.is(Zu)(e)){this.state.set(`error`),this.error.set(`bankWorkspace.periodInvalid`);return}this.state.set(`loading`),this.error.set(void 0);try{let t=await this.api.list(e);if(n!==this.generation||this.destroyRef.destroyed)return;if(!t.success){this.error.set(t.code),this.state.set(`error`);return}this.records.set(t.result),this.state.set(`ready`)}catch{n===this.generation&&!this.destroyRef.destroyed&&(this.error.set(`ledger.error`),this.state.set(`error`))}}applyPeriod(n){let e={from:n.from??``,to:n.to??``};if(!wu.is(Zu)(e)){this.periodRequired.set(!0);return}this.periodRequired.set(!1),this.router.navigate([],{relativeTo:this.route,queryParams:H(l(l({},this.query()),e)),queryParamsHandling:`merge`}),this.filterMenu()?.close()}search(n){this.router.navigate([],{relativeTo:this.route,queryParams:H(m(l({},this.query()),{q:n})),queryParamsHandling:`merge`,replaceUrl:!0}),n===``&&this.searchControl()?.focus()}viewQuery(n){let e=n===`journal`?k$1(this.query().sort,R):k$1(this.query().sort,h);return H(m(l({},this.query()),{view:n,sort:e}))}sortDirection(n){return x(this.query().sort,n)}sortBy(n){this.router.navigate([],{relativeTo:this.route,queryParams:H({sort:L(this.query().sort,n)}),queryParamsHandling:`merge`,replaceUrl:!0})}money(n){return Ne(n,this.i18n.language(),`EUR`)}static ɵfac=function(e){return new(e||r$1)};static ɵcmp=Fb({type:r$1,selectors:[[`app-bank-ledger`]],viewQuery:function(e,t){e&1&&Ky(t.periodError,je,5,Hn)(t.filterMenu,Z,5)(t.searchControl,Q,5),e&2&&e_(3)},hostAttrs:[1,`page-container`],features:[A_([d$1])],decls:31,vars:34,consts:[[`periodError`,``],[`periodExportHint`,``],[`aria-labelledby`,`ledger-title`,1,`bank-page`],[`id`,`ledger-title`],[1,`muted`],[3,`label`,`tabs`],[`appNotice`,``,`variant`,`info`],[`appListWorkspace`,``],[`listSearch`,``,3,`valueChange`,`label`,`formField`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,1,`actions`],[3,`columns`,`rows`,`filename`,`label`,`emptyHint`,`pendingHint`,`pending`],[3,`text`],[1,`chips`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`role`,`status`],[3,`title`],[`appDataTable`,``,`tableLayout`,`fluid`,1,`wide-table`],[1,`list-summary`,`spacer-y-2`],[3,`focusin`,`rangeApplied`,`from`,`to`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`,`tabindex`,`-1`],[`appLinkButton`,``,`download`,``,3,`href`],[`name`,`download`],[`appFilterChip`,``,3,`click`,`label`],[`appButton`,``,`type`,`button`,3,`click`],[`scope`,`col`,3,`amount`],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[`scope`,`row`],[3,`routerLink`,`queryParams`,`appSearchHighlight`],[3,`appSearchHighlight`],[1,`amount`],[`appBadge`,``]],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()(),Py(6,`app-tabs`,5),Us(7,`p`,6),y_(8),fd(),Us(9,`p`,4),y_(10),fd(),Us(11,`section`,7),Py(12,`app-tabs`,5),Us(13,`app-list-toolbar`)(14,`app-list-search`,8),Gy(`valueChange`,function(m){return t.search(m)}),fd(),qT(),Us(15,`app-filter-menu`,9),Iy(16,Xe,4,4,`ng-template`,10),fd(),Us(17,`div`,11),Py(18,`app-table-export`,12),OS(19,Ye,5,4,`app-hint`,13),fd()(),OS(20,Ze,2,1,`div`,14),OS(21,et,2,1,`p`,15),OS(22,tt,2,1,`p`,16)(23,nt,3,1,`div`)(24,rt,1,1,`app-empty-state`,17)(25,lt,9,0,`div`,18)(26,pt,9,0,`div`,18),Us(27,`footer`,19),OS(28,ut,2,3,`p`,16),Us(29,`p`),y_(30),fd()()()()),e&2){let s,m;ZC(3),nv(t.i18n.t(`bank.title`)),ZC(2),nv(t.i18n.t(`bankWorkspace.intro`)),ZC(),Fy(`label`,t.i18n.t(`bank.title`))(`tabs`,t.tabs()),ZC(2),nv(t.i18n.t(`bankWorkspace.ledgerScope`)),ZC(2),nv(t.i18n.t(`bankWorkspace.ledgerSortLoaded`)),ZC(),ky(`aria-label`,t.i18n.t(`bankWorkspace.entries`)),ZC(),Fy(`label`,t.i18n.t(`bankWorkspace.entries`))(`tabs`,t.viewTabs()),ZC(2),Fy(`label`,t.i18n.t(`bankWorkspace.ledgerSearch`))(`formField`,t.searchForm.q),ZT(),ZC(),Fy(`label`,t.i18n.t(`listWorkspace.filters`))(`closeLabel`,t.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,t.i18n.t(`listWorkspace.backFilters`))(`activeCount`,t.activeFilterCount())(`disabled`,t.state()===`loading`),ZC(),Fy(`label`,t.i18n.t(`dateRangeFilter.label`))(`summary`,(t.query().from||`…`)+` → `+(t.query().to||`…`)),ZC(2),Fy(`columns`,t.exportColumns())(`rows`,t.exportRows())(`filename`,t.query().view===`journal`?`bank-journal-results.csv`:`bank-source-results.csv`)(`label`,t.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,t.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,t.i18n.t(`listWorkspace.exportPending`))(`pending`,t.state()===`loading`),ZC(),kS((s=t.exportUrl())?19:-1,s),ZC(),kS(t.query().q?20:-1),ZC(),kS((m=t.errorMessage())?21:-1,m),ZC(),kS(t.state()===`loading`?22:t.state()===`error`?23:t.count()?t.query().view===`sources`?25:26:24),ZC(6),kS(t.state()===`ready`?28:-1),ZC(2),iv(` `,t.i18n.t(`ledger.from`),` : `,t.query().from,` · `,t.i18n.t(`ledger.to`),` : `,t.query().to,` `)}},dependencies:[d,N,c,f,h$1,yn,U$1,B,Q,Z,b,B$1,$,D$1,r,k,g$1,Dt,m$1,D,u,p],styles:[`[_nghost-%COMP%]{display:block}.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)}}`]})};export{Ae as BankLedger};
@@ -1 +0,0 @@
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,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,S as FS,Tn as fd,Wn as kS,Wr as y_,X as LS,ft as Ol,lt as OS,mr as qT,pr as qS,rn as Zw,rr as nv,tn as ZT,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{T as ue,m as Ie$1,r as N,v as Dt,y as G}from"./main-AJD2LGCE.js";import{t as g$1}from"./chunk-B56nz2lI.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import{t as Ae}from"./chunk-DUJbqlfC.js";import{t as k}from"./chunk-DRgIjFR6.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{t as P}from"./chunk-DzxhjLIR.js";import{$r as T,Gr as S0,On as LC,U as DC,du as x0,ht as FC,pi as Uh,vr as PC,zn as MC,zt as HC}from"./chunk-CjtJKrza.js";import"./chunk-Dv9sNWWK.js";import{a as u,i as m$1}from"./chunk-Dx1NwQCW.js";import{t as f}from"./chunk-BCemdpJW.js";import{a as fn,c as ir,d as nr,f as or,h as yn,o as gn,r as cn,t as P$1,u as mn}from"./chunk-CSkyOfSg.js";import{t as S}from"./chunk-BbbRo5jM2.js";import{t as c}from"./chunk-BsXdvb75.js";var ge=(d,i)=>i.id;function ye(d,i){if(d&1&&(Us(0,`p`,4),y_(1),fd()),d&2){let e=qS();ZC(),nv(e.i18n.t(i))}}function Ie(d,i){if(d&1&&(Us(0,`p`,5),y_(1),fd()),d&2){let e=qS();ZC(),nv(e.i18n.t(`supplierInvoice.loadingDetail`))}}function xe(d,i){if(d&1&&(Us(0,`option`,13),y_(1),fd()),d&2){let e=i.$implicit;Fy(`value`,e.id),ZC(),nv(e.displayName)}}function he(d,i){if(d&1){let e=zS();Us(0,`div`,16)(1,`label`,10),y_(2),Py(3,`input`,14),qT(),fd(),Us(4,`label`,10),y_(5),Py(6,`input`,22),qT(),fd(),Us(7,`label`,10),y_(8),Py(9,`input`,22),qT(),fd(),Us(10,`button`,23),Gy(`click`,function(){let a=Ip(e).$index;return wp(qS(2).removeLine(a))}),y_(11),fd()()}if(d&2){let e=i.$implicit,t=qS(2);ZC(2),nv(t.i18n.t(`supplierInvoice.description`)),ZC(),Fy(`formField`,e.description),ZT(),ZC(2),nv(t.i18n.t(`supplierInvoice.netAmount`)),ZC(),Fy(`formField`,e.netAmount),ZT(),ZC(2),nv(t.i18n.t(`supplierInvoice.vatRate`)),ZC(),Fy(`formField`,e.vatRate),ZT(),ZC(),Fy(`disabled`,t.model().lines.length===1),ZC(),vd(` `,t.i18n.t(`supplierInvoice.removeLine`),` `)}}function _e(d,i){if(d&1){let e=zS();Us(0,`form`,7),Gy(`submit`,function(a){Ip(e);return wp(qS().save(a))}),Us(1,`div`,8)(2,`div`,9)(3,`label`,10),y_(4),Us(5,`select`,11)(6,`option`,12),y_(7),fd(),LS(8,xe,2,2,`option`,13,ge),fd(),qT(),fd(),Us(10,`label`,10),y_(11),Py(12,`input`,14),qT(),fd(),Us(13,`label`,10),y_(14),Py(15,`input`,15),qT(),fd(),Us(16,`label`,10),y_(17),Py(18,`input`,15),qT(),fd(),Us(19,`label`,10),y_(20),Py(21,`input`,14),qT(),fd()()(),Us(22,`div`,8)(23,`fieldset`)(24,`legend`),y_(25),fd(),LS(26,he,12,8,`div`,16,FS),Us(28,`button`,17),Gy(`click`,function(){Ip(e);return wp(qS().addLine())}),y_(29),fd()()(),Us(30,`div`,8)(31,`label`,10),y_(32),Py(33,`textarea`,18),qT(),fd()(),Us(34,`div`,19)(35,`button`,20),y_(36),fd(),Us(37,`a`,21),y_(38),fd()()()}if(d&2){let e=qS();ZC(4),nv(e.i18n.t(`supplierInvoice.supplier`)),ZC(),Fy(`formField`,e.invoiceForm.supplierId),ZT(),ZC(2),nv(e.i18n.t(`supplierInvoice.chooseSupplier`)),ZC(),jS(e.suppliers()),ZC(3),nv(e.i18n.t(`supplierInvoice.reference`)),ZC(),Fy(`formField`,e.invoiceForm.reference),ZT(),ZC(2),nv(e.i18n.t(`supplierInvoice.invoiceDate`)),ZC(),Fy(`formField`,e.invoiceForm.invoiceDate),ZT(),ZC(2),nv(e.i18n.t(`supplierInvoice.dueDate`)),ZC(),Fy(`formField`,e.invoiceForm.dueDate),ZT(),ZC(2),nv(e.i18n.t(`supplierInvoice.currency`)),ZC(),Fy(`formField`,e.invoiceForm.currency),ZT(),ZC(4),nv(e.i18n.t(`supplierInvoice.lines`)),ZC(),jS(e.invoiceForm.lines),ZC(3),vd(` `,e.i18n.t(`supplierInvoice.addLine`),` `),ZC(3),nv(e.i18n.t(`supplierInvoice.notes`)),ZC(),Fy(`formField`,e.invoiceForm.notes),ZT(),ZC(2),Fy(`disabled`,e.saving()),ZC(),vd(` `,e.i18n.t(`supplierInvoice.save`)),ZC(2),nv(e.i18n.t(`supplierInvoice.cancel`))}}var fe=()=>({description:``,netAmount:``,vatRate:``});var be=()=>({supplierId:``,reference:``,invoiceDate:``,dueDate:``,currency:`EUR`,notes:``,lines:[fe()]});var ve=class d{i18n=g(Ie$1);api=g(S);suppliersApi=g(c);route=g(G);router=g(ue);confirmation=g(P);requestId=crypto.randomUUID();invoiceId=this.route.snapshot.paramMap.get(`invoiceId`);invoice=Ke(void 0);editing=this.invoiceId!==null;suppliers=Ke([]);model=Ke(be());invoiceForm=nr(this.model,i=>{gn(i.supplierId),gn(i.reference),mn(i.reference,/\S/),cn(i.reference,80),gn(i.invoiceDate),P$1(i.invoiceDate,({value:e})=>wu.is(T)(e())?void 0:{kind:`date`}),gn(i.dueDate),P$1(i.dueDate,({value:e,valueOf:t})=>!wu.is(T)(e())||e()<t(i.invoiceDate)?{kind:`date`}:void 0),gn(i.currency),mn(i.currency,/^[A-Z]{3}$/),cn(i.notes,MC),fn(i.lines,1),ir(i.lines,e=>{gn(e.description),mn(e.description,/\S/),cn(e.description,500),P$1(e.netAmount,({value:t})=>{let a=u(t(),2);return a===void 0||a<0||a>4e12?{kind:`amount`}:void 0}),P$1(e.vatRate,({value:t})=>{let a=u(t(),2);return a===void 0||a<0||a>1e4?{kind:`rate`}:void 0})})});loading=Ke(!0);saving=Ke(!1);completed=Ke(!1);error=Ke(void 0);breadcrumbs=Ke([{label:this.i18n.t(`supplierInvoice.title`),path:`/purchases`}]);constructor(){Ol(()=>{this.load()})}title(){return this.i18n.t(this.editing?`supplierInvoice.editTitle`:`supplierInvoice.createTitle`)}addLine(){this.model().lines.length>=500||(this.model.update(i=>m(l({},i),{lines:[...i.lines,fe()]})),this.invoiceForm().markAsDirty())}removeLine(i){this.model().lines.length!==1&&(this.model.update(e=>m(l({},e),{lines:e.lines.filter((t,a)=>a!==i)})),this.invoiceForm().markAsDirty())}save(i){if(i.preventDefault(),this.saving()||this.invoiceForm().invalid()){this.invoiceForm().markAsTouched();return}let e=this.decodeLines();if(!e){this.invoiceForm().markAsTouched();return}or(this.invoiceForm,async()=>{this.saving.set(!0),this.error.set(void 0);try{let t=this.model(),a={supplierId:t.supplierId,reference:t.reference,invoiceDate:t.invoiceDate,dueDate:t.dueDate,currency:t.currency,notes:t.notes,lines:e},v=this.invoice(),k=v?await this.api.update(v.id,m(l({},a),{expectedVersion:v.version})):await this.api.create(m(l({},a),{requestId:this.requestId,source:`manual`,sourceFileName:null,externalSubmissionId:null}));if(!k.success){this.error.set(k.code);return}this.completed.set(!0),this.invoiceForm().reset(this.model()),await this.router.navigate([`/purchases`,k.result.id])}catch{this.error.set(`supplierInvoice.error`)}finally{this.saving.set(!1)}})}canDeactivate(){return this.saving()?!1:this.completed()||!this.invoiceForm().dirty()||this.confirmation.request(this.i18n.t(`supplierInvoice.unsavedChanges`))}beforeUnload(i){(this.saving()||this.invoiceForm().dirty())&&i.preventDefault()}decodeLines(){let i=this.model().lines.map(t=>({description:t.description,netTotalCents:u(t.netAmount,2),vatRateBasisPoints:u(t.vatRate,2)}));if(i.some(t=>t.netTotalCents===void 0||t.vatRateBasisPoints===void 0))return;let e=wu.Array(Uh);return wu.is(e)(i)?i:void 0}async load(){try{if(this.suppliers.set((await this.suppliersApi.list()).filter(({archived:e})=>!e)),!this.invoiceId)return;let i=await this.api.get(this.invoiceId);if(!i.success){this.error.set(i.code);return}if(i.result.status!==`draft`){this.error.set(`supplier_invoice.not_editable`);return}this.invoice.set(i.result),this.invoiceForm().reset({supplierId:i.result.supplierId,reference:i.result.reference,invoiceDate:i.result.invoiceDate,dueDate:i.result.dueDate,currency:i.result.currency,notes:i.result.notes,lines:i.result.lines.map(e=>({description:e.description,netAmount:m$1(e.netTotalCents,2),vatRate:m$1(e.vatRateBasisPoints,2)}))})}catch{this.error.set(`supplierInvoice.error`)}finally{this.loading.set(!1)}}static ɵfac=function(e){return new(e||d)};static ɵcmp=Fb({type:d,selectors:[[`app-supplier-invoice-editor`]],hostAttrs:[1,`page-container`],hostBindings:function(e,t){e&1&&Gy(`beforeunload`,function(v){return t.beforeUnload(v)},Zw)},decls:10,vars:7,consts:[[`aria-labelledby`,`supplier-invoice-editor-title`,1,`detail-page`,`form-page`],[`layout`,`stacked`],[`pageBack`,``,3,`label`,`items`,`current`],[`id`,`supplier-invoice-editor-title`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`role`,`status`],[`novalidate`,``],[`novalidate`,``,3,`submit`],[1,`ds-panel`,`form-panel`],[1,`field-grid`],[1,`field`],[`appFilterSelect`,``,1,`select`,3,`formField`],[`value`,``],[3,`value`],[1,`input`,3,`formField`],[`type`,`date`,1,`input`,3,`formField`],[1,`line-grid`],[`appButton`,``,`type`,`button`,3,`click`],[`rows`,`4`,1,`textarea`,3,`formField`],[1,`spacer-x-2`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appLinkButton`,``,`routerLink`,`/purchases`],[`inputmode`,`decimal`,1,`input`,3,`formField`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`]],template:function(e,t){if(e&1&&(Us(0,`section`,0)(1,`app-page-header`,1),Py(2,`app-breadcrumbs`,2),Us(3,`h1`,3),y_(4),fd(),Us(5,`p`),y_(6),fd()(),OS(7,ye,2,1,`p`,4),OS(8,Ie,2,1,`p`,5)(9,_e,39,18,`form`,6),fd()),e&2){let a;ZC(2),Fy(`label`,t.i18n.t(`backOfficeShell.breadcrumb`))(`items`,t.breadcrumbs())(`current`,t.title()),ZC(2),nv(t.title()),ZC(2),nv(t.i18n.t(`supplierInvoice.editorIntro`)),ZC(),kS((a=t.error())?7:-1,a),ZC(),kS(t.loading()?8:9)}},dependencies:[Ae,f,N,yn,k,g$1,Dt],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-panel[_ngcontent-%COMP%] + .form-panel[_ngcontent-%COMP%], .spacer-x-2[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-4)}.line-grid[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);grid-template-columns:minmax(12rem,1fr) 9rem 7rem auto;align-items:end;margin-block-end:var(--%NS%space-3)}@media(max-width:48rem){.line-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}`]})};export{ve as SupplierInvoiceEditor};
@@ -1 +0,0 @@
1
- import{E as Ft}from"./chunk-BAHiFuUo.js";import{C as oe,a as T$1}from"./main-AJD2LGCE.js";import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import{Ia as a}from"./chunk-CjtJKrza.js";import{b as y,c as R,f,l as S$1}from"./chunk-BQRlJCOd.js";var L=[`reference`,`invoice`,`client`,`date`,`method`,`status`,`amount`];var S=[`reference`,`invoice`,`client`,`date`,`amount`];var C=[`reference`,`invoice`,`client`,`date`,`status`,`amount`];function F(i){return i.cancelledAt===null?`billingWorkspace.active`:`billingWorkspace.cancelled`}function q(i){return i===`limit`?`billingWorkspace.limitExceeded`:`listWorkspace.exportEmpty`}function w(i){return i===0?`billingWorkspace.empty`:`billingWorkspace.noMatches`}var K=(i,n)=>f(i,n);function N(i,n,o,e,m){let a=o===`none`?`date-desc`:o,d;if(a.startsWith(`amount-`)){let l=t=>`amountCents`in t?t.amountCents:t.totalCents;d=l(i)-l(n)}else if(a.startsWith(`date-`)){let l=t=>Date.parse(`paidOn`in t?t.paidOn:`refundedOn`in t?t.refundedOn:t.issuedAt??t.createdAt);d=l(i)-l(n)}else{let l=t=>a.startsWith(`invoice-`)?`sourceInvoiceNumbers`in t?t.sourceInvoiceNumbers.join(` `):t.invoiceNumber??t.title??``:a.startsWith(`client-`)?t.clientDisplayName:a.startsWith(`method-`)?`method`in t?m(R(t.method)):``:a.startsWith(`status-`)?m(`cancelledAt`in t&&t.cancelledAt!==null?`billingWorkspace.cancelled`:`billingWorkspace.active`):`reference`in t?t.reference:t.number??t.id;d=e.compare(l(i),l(n))}return(a.endsWith(`-desc`)?-d:d)||i.id.localeCompare(n.id)}var Q=wu.Literals([`invoices`,`receipts`,`credits`,`refunds`]);var T=wu.Literals([`summary`,`document`,`receipts`,`credit`,`history`]);var x=wu.Literals([`draft`,`issued`,`void`]);var E=wu.Literals([`active`,`cancelled`]);var k=wu.Literals([`overdue`,`upcoming`]);var O=wu.Literals([`with`,`without`]);var D={invoices:`/billing`,receipts:`/billing/receipts`,credits:`/billing/credit-notes`,refunds:`/billing/refunds`};var U={invoices:S$1,receipts:L,credits:S,refunds:C};function h(i,n){let o=y(n),e=f(n,U[i]);return{q:(n.get(`q`)??``).slice(0,160)||void 0,client:Me.getOrUndefined(wu.decodeUnknownOption(a)(n.get(`client`))),status:i===`invoices`?Me.getOrUndefined(wu.decodeUnknownOption(x)(n.get(`status`))):i===`credits`?void 0:Me.getOrUndefined(wu.decodeUnknownOption(E)(n.get(`status`))),due:i===`invoices`?Me.getOrUndefined(wu.decodeUnknownOption(k)(n.get(`due`))):void 0,credit:i===`invoices`?Me.getOrUndefined(wu.decodeUnknownOption(O)(n.get(`credit`))):void 0,from:o.from||void 0,to:o.to||void 0,sort:e===`none`?void 0:e}}function W(i,n,o){let e=h(i,n);return{billingList:i,billingQ:e.q,billingStatus:e.status,billingClient:e.client,billingDue:e.due,billingCredit:e.credit,billingFrom:e.from,billingTo:e.to,billingSort:e.sort,tab:o}}var B=class{params;source;listLink;listQuery;detailQuery;constructor(n){this.params=T$1(n.queryParamMap,{initialValue:n.snapshot.queryParamMap}),this.source=Ft(()=>Me.getOrUndefined(wu.decodeUnknownOption(Q)(this.params().get(`billingList`)))),this.listLink=Ft(()=>D[this.source()??`invoices`]),this.listQuery=Ft(()=>{let o=this.source();if(o===void 0)return{};let e=this.params();return h(o,oe({q:e.get(`billingQ`),status:e.get(`billingStatus`),client:e.get(`billingClient`),due:e.get(`billingDue`),credit:e.get(`billingCredit`),from:e.get(`billingFrom`),to:e.get(`billingTo`),sort:e.get(`billingSort`)}))}),this.detailQuery=Ft(()=>{let o=this.source(),e=Me.getOrUndefined(wu.decodeUnknownOption(T)(this.params().get(`tab`)));return o===void 0?{tab:e}:W(o,oe(this.listQuery()),e)})}};export{L as a,W as c,K as i,q as l,C as n,N as o,F as r,S as s,B as t,w as u};
@@ -1 +0,0 @@
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-AJD2LGCE.js";import{i as U,r as Q,t as $}from"./chunk-DMlYYeVV2.js";import{n as b,t as Z}from"./chunk-BKWyrwrz.js";import{t as Fe}from"./chunk-C3v6o8sk.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};
@@ -1 +0,0 @@
1
- import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$ as MH,$t as ZC,A as Gy,At as S_,D as Fy,Dn as g,Dr as t_,E as Ft,Gn as k_,H as JD,Ir as wp,It as Us,Jr as zS,K as Ke$1,Lt as Uy,Nr as vd,Rn as jS,Sr as rv,Tn as fd,V as Iy,W as KS,Wn as kS,Wr as y_,X as LS,Xn as lv,dr as pe,en as ZS,ft as Ol,j as H,l as A_,lt as OS,mn as b_,mr as qT,nt as NH,o as A,ot as OD,pr as qS,qn as ky,rr as nv,tn as ZT,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{C as oe,T as ue,h as Ne,m as Ie,o as U,r as N,v as Dt,y as G$1}from"./main-AJD2LGCE.js";import"./chunk-CuukTiS1.js";import{t as g$1}from"./chunk-B56nz2lI.js";import"./chunk-BzUDWIzm.js";import"./chunk-CczD0yXn.js";import"./chunk-CReShp-B.js";import{t as k}from"./chunk-DRgIjFR6.js";import"./chunk-BAe_07VM.js";import"./chunk-CjtJKrza.js";import{a as K,d as V,g as q,h as i,m as h,n as D,o as N$1,p as g$2,s as P,t as A$1,u as T,v as w}from"./chunk-BQRlJCOd.js";import{c as W}from"./chunk-mI1TUlml.js";import"./chunk-Dv9sNWWK.js";import{t as R}from"./chunk-BlE9HnAo.js";import{t as d}from"./chunk-CfwFJLFh.js";import"./chunk-BWNhkOOr.js";import{t as l$1}from"./chunk-Bm0a1bep.js";import{d as nr,h as yn}from"./chunk-CSkyOfSg.js";import{n as m$1,t as d$1}from"./chunk-cTGENC4T.js";import{t as Ft$1}from"./chunk-DjewtV43.js";import"./chunk-CXHCUTDs2.js";import"./chunk-ZBDWcE362.js";import"./chunk-CP-AnFGa2.js";import"./chunk-scbWWgLx2.js";import{i as U$1,n as B,r as Q,t as $}from"./chunk-DMlYYeVV2.js";import{t as u}from"./chunk-osh5v_OU2.js";import{t as c}from"./chunk-D83vXRZS2.js";import{t as B$1}from"./chunk-CdEOFR_J.js";import{n as b,t as Z}from"./chunk-BKWyrwrz.js";import{t as l$2}from"./chunk-CH-_LXUF.js";import"./chunk-Bsy3r41y.js";import{t as Fe}from"./chunk-C3v6o8sk.js";import{t as d$2}from"./chunk-CGgGK0-O2.js";var Ke=[`*`];var j=class n{count=NH.required();selectionLabel=NH.required();clearLabel=NH.required();clearSelection=MH();static ɵfac=function(e){return new(e||n)};static ɵcmp=Fb({type:n,selectors:[[`app-bulk-selection`]],hostVars:1,hostBindings:function(e,i){e&2&&Uy(`hidden`,i.count()===0)},inputs:{count:[1,`count`],selectionLabel:[1,`selectionLabel`],clearLabel:[1,`clearLabel`]},outputs:{clearSelection:`clearSelection`},ngContentSelectors:Ke,decls:6,vars:2,consts:[[1,`actions`],[`appButton`,``,`type`,`button`,3,`click`]],template:function(e,i){e&1&&(ZS(),Us(0,`p`),y_(1),fd(),Us(2,`div`,0),KS(3),Us(4,`button`,1),Gy(`click`,function(){return i.clearSelection.emit()}),y_(5),fd()()),e&2&&(ZC(),nv(i.selectionLabel()),ZC(4),nv(i.clearLabel()))},dependencies:[N],styles:[`[_nghost-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--%NS%space-3);padding-block:var(--%NS%space-3);border-block:1px solid var(--%NS%color-line-strong)}[hidden][_nghost-%COMP%]{display:none}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--%NS%space-2);margin-inline-start:auto}`]})};var L=class n{http=g(OD);document=g(H);destroyRef=g(pe);downloads=new Map;pending=Ke$1(!1);failed=Ke$1(!1);constructor(){this.destroyRef.onDestroy(()=>{for(let[t,e]of this.downloads)clearTimeout(e),URL.revokeObjectURL(t);this.downloads.clear()})}async download(t){if(this.pending()||this.destroyRef.destroyed)return;let e=t.filter(i=>i.pdf?.status===`ready`);if(e.length!==0){this.pending.set(!0),this.failed.set(!1);try{for(let i of e){let a=await JD(this.http.get(`/api/invoices/${i.id}/revisions/${i.version}/pdf`,{responseType:`blob`}).pipe(U(this.destroyRef)));if(this.destroyRef.destroyed)return;if(a.type!==`application/pdf`){this.failed.set(!0);return}let s=URL.createObjectURL(a);this.downloads.set(s,setTimeout(()=>{URL.revokeObjectURL(s),this.downloads.delete(s)},1e3));let h=this.document.createElement(`a`);h.href=s,h.download=`${i.invoiceNumber??i.id}-v${i.version}.pdf`,h.hidden=!0,this.document.body.append(h);try{h.click()}finally{h.remove()}}}catch{this.destroyRef.destroyed||this.failed.set(!0)}finally{this.destroyRef.destroyed||this.pending.set(!1)}}}static ɵfac=function(e){return new(e||n)};static ɵprov=A({token:n,factory:n.ɵfac})};var G=n=>({count:n});var Qe=n=>({invoice:n});var Ge=n=>({reference:n});var Je=n=>[`/invoices`,n];var Xe=(n,t)=>t[0];var Ye=(n,t)=>t.id;var Ze=(n,t)=>t.item.id;function et(n,t){if(n&1&&(Us(0,`a`,14),y_(1),fd()),n&2){let e=qS();Fy(`queryParams`,e.detailQuery()),ZC(),nv(e.i18n.t(`backOffice.invoices.new`))}}function tt(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,15),Gy(`committed`,function(){Ip(e);let a=qS(),s=t_(12);return a.updateFilters(),wp(s.close())}),fd(),qT()}if(n&2){let e=qS();Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.statusOptions())(`formField`,e.filters.status),ZT()}}function it(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,15),Gy(`committed`,function(){Ip(e);let a=qS(),s=t_(12);return a.updateFilters(),wp(s.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.filters.client),ZT()}}function nt(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,15),Gy(`committed`,function(){Ip(e);let a=qS(),s=t_(12);return a.updateFilters(),wp(s.close())}),fd(),qT()}if(n&2){let e=qS();Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.dueOptions())(`formField`,e.filters.due),ZT()}}function rt(n,t){if(n&1){let e=zS();Us(0,`app-filter-choice`,15),Gy(`committed`,function(){Ip(e);let a=qS(),s=t_(12);return a.updateFilters(),wp(s.close())}),fd(),qT()}if(n&2){let e=qS();Fy(`label`,e.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,e.i18n.t(`listWorkspace.noChoices`))(`options`,e.creditOptions())(`formField`,e.filters.credit),ZT()}}function at(n,t){if(n&1){let e=zS();Us(0,`app-date-range-filter`,16),Gy(`rangeApplied`,function(a){Ip(e);let s=qS(),h=t_(12);return s.applyPeriod(a),wp(h.close())}),fd()}if(n&2){let e=qS();Fy(`from`,e.filters.from().value()||void 0)(`to`,e.filters.to().value()||void 0)}}function ot(n,t){if(n&1){let e=zS();Us(0,`button`,18),Gy(`click`,function(){let a=Ip(e).$implicit;return wp(qS(2).clearFilter(a[0]))}),y_(1),fd()}if(n&2){let e=t.$implicit,i=qS(2);ky(`aria-label`,i.i18n.t(`billingWorkspace.removeFilter`)+` : `+i.filterLabel(e[0],e[1])),ZC(),vd(` `,i.filterLabel(e[0],e[1]),` × `)}}function lt(n,t){if(n&1){let e=zS();Us(0,`div`,12),LS(1,ot,2,2,`button`,17,Xe),Us(3,`button`,18),Gy(`click`,function(){Ip(e);return wp(qS().clearFilter())}),y_(4),fd()()}if(n&2){let e=qS();ZC(),jS(e.activeFilters()),ZC(3),vd(` `,e.i18n.t(`billingWorkspace.clear`),` `)}}function st(n,t){if(n&1&&(Us(0,`p`,13),y_(1),fd()),n&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.invoices.loading`))}}function ct(n,t){if(n&1){let e=zS();Us(0,`p`,19),y_(1),fd(),Us(2,`button`,20),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(n&2){let e=qS();ZC(),nv(e.i18n.t(`billingWorkspace.loadError`)),ZC(2),nv(e.i18n.t(`backOffice.invoices.retry`))}}function dt(n,t){if(n&1){let e=zS();Us(0,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS(3).preparingReminders.set(!0))}),y_(1),fd()}if(n&2){let e=qS(3);Fy(`disabled`,e.reminders().length===0),ZC(),rv(` `,e.i18n.t(`billingWorkspace.prepareReminders`),` (`,e.reminders().length,`) `)}}function pt(n,t){if(n&1&&(Us(0,`p`,19),y_(1),fd()),n&2){let e=qS(3);ZC(),vd(` `,e.i18n.t(`billingWorkspace.pdfDownloadFailed`),` `)}}function mt(n,t){if(n&1&&(Us(0,`a`,29),y_(1),fd()),n&2){let e=qS().$implicit;Fy(`queryParams`,k_(3,Qe,e.id)),ZC(),rv(``,e.invoiceNumber,` · `,e.clientDisplayName)}}function ut(n,t){n&1&&(Us(0,`li`),Iy(1,mt,2,5,`a`,28),fd()),n&2&&(ZC(),Fy(`appCan`,`email.draft.manage`))}function _t(n,t){if(n&1&&(Us(0,`p`),y_(1),fd(),Us(2,`ul`),LS(3,ut,2,1,`li`,null,Ye),fd()),n&2){let e=qS(3);ZC(),nv(e.i18n.t(`billingWorkspace.remindersHint`)),ZC(2),jS(e.reminders())}}function ft(n,t){if(n&1){let e=zS();Us(0,`section`,21)(1,`app-bulk-selection`,25),Gy(`clearSelection`,function(){Ip(e);return wp(qS(2).clearSelection())}),Us(2,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS(2).exportSelected())}),y_(3),fd(),Iy(4,dt,2,3,`button`,27),fd(),OS(5,pt,2,1,`p`,19),OS(6,_t,5,1),fd()}if(n&2){let e=qS(2);ZC(),Fy(`count`,e.selected().length)(`selectionLabel`,e.i18n.plural(`billingWorkspace.selection`,k_(9,G,e.selected().length)))(`clearLabel`,e.i18n.t(`billingWorkspace.clearSelection`)),ZC(),Fy(`disabled`,e.exportCount()===0||e.pdf.pending()),ky(`aria-busy`,e.pdf.pending()),ZC(),vd(` `,e.i18n.plural(`backOffice.billing.bulkExport`,k_(11,G,e.exportCount())),` `),ZC(),Fy(`appCan`,`email.draft.manage`),ZC(),kS(e.pdf.failed()?5:-1),ZC(),kS(e.preparingReminders()?6:-1)}}function gt(n,t){if(n&1&&(Us(0,`p`,22),y_(1),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(e.emptyKey()))}}function yt(n,t){n&1&&(Us(0,`small`),y_(1),fd()),n&2&&(ZC(),nv(t))}function bt(n,t){if(n&1){let e=zS();lv(0),Us(1,`tr`)(2,`td`)(3,`input`,34,2),Gy(`change`,function(){Ip(e);let a=t_(4),s=S_(0);return wp(qS(3).toggle(s.id,a.checked))}),fd()(),Us(5,`td`)(6,`div`,35),Py(7,`app-entity-icon`,36),Us(8,`div`)(9,`a`,37)(10,`strong`,38),y_(11),fd()(),Us(12,`small`)(13,`span`,38),y_(14),fd(),y_(15,` · `),Us(16,`span`,38),y_(17),fd()()()()(),Us(18,`td`,38),y_(19),fd(),Us(20,`td`)(21,`span`,39),y_(22),fd()(),Us(23,`td`),y_(24),fd(),Us(25,`td`),y_(26),OS(27,yt,2,1,`small`),fd(),Us(28,`td`,40),y_(29),fd(),Us(30,`td`,40),y_(31),fd()()}if(n&2){let e,i=t.$implicit,a=qS(3),s=b_(i.item);ZC(3),Fy(`checked`,a.selectedIds().has(s.id)),ky(`aria-label`,a.i18n.tf(`backOffice.billing.selectInvoice`,k_(20,Ge,s.invoiceNumber??s.orderReference))),ZC(4),Fy(`variant`,a.iconVariant(s)),ZC(2),Fy(`routerLink`,k_(22,Je,s.id))(`queryParams`,a.detailQuery()),ZC(),Fy(`appSearchHighlight`,a.matchIndices(i,a.invoiceMatchKey(s))),ZC(),nv(s.invoiceNumber??s.title),ZC(2),Fy(`appSearchHighlight`,a.matchIndices(i,`title`)),ZC(),nv(s.title),ZC(2),Fy(`appSearchHighlight`,a.matchIndices(i,`orderReference`)),ZC(),nv(s.orderReference),ZC(),Fy(`appSearchHighlight`,a.matchIndices(i,`clientDisplayName`)),ZC(),vd(` `,s.clientDisplayName,` `),ZC(3),nv(a.filterLabel(`status`,a.documentStatus(s.status))),ZC(2),nv(a.i18n.t(a.financialStatus(s))),ZC(2),vd(` `,s.dueDate,` `),ZC(),kS((e=a.dueLabel(s))?27:-1,e),ZC(2),nv(a.money(s.totalCents)),ZC(2),nv(a.money(a.remaining(s)))}}function vt(n,t){if(n&1){let e=zS();Us(0,`div`,23)(1,`table`)(2,`thead`)(3,`tr`)(4,`th`)(5,`input`,30,1),Gy(`change`,function(){Ip(e);let a=t_(6);return wp(qS(2).selectVisible(a.checked))}),fd()(),Us(7,`th`,31)(8,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`number`))}),fd()(),Us(9,`th`,31)(10,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`client`))}),fd()(),Us(11,`th`,31)(12,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`status`))}),fd()(),Us(13,`th`,31)(14,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`financial`))}),fd()(),Us(15,`th`,31)(16,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`due`))}),fd()(),Us(17,`th`,33)(18,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`total`))}),fd()(),Us(19,`th`,33)(20,`button`,32),Gy(`click`,function(){Ip(e);return wp(qS(2).sortBy(`remaining`))}),fd()()()(),Us(21,`tbody`),LS(22,bt,32,24,`tr`,null,Ze),fd()()()}if(n&2){let e=qS(2);ZC(5),Fy(`checked`,e.allSelected())(`indeterminate`,e.selected().length>0&&!e.allSelected()),ky(`aria-label`,e.i18n.t(`backOffice.billing.selectAll`)),ZC(2),ky(`aria-sort`,e.sortDirection(e.sort(),`number`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.invoices.number`))(`direction`,e.sortDirection(e.sort(),`number`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`client`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.invoices.client`))(`direction`,e.sortDirection(e.sort(),`client`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`status`)),ZC(),Fy(`label`,e.i18n.t(`billingWorkspace.documentStatus`))(`direction`,e.sortDirection(e.sort(),`status`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`financial`)),ZC(),Fy(`label`,e.i18n.t(`billingWorkspace.financialStatus`))(`direction`,e.sortDirection(e.sort(),`financial`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`due`)),ZC(),Fy(`label`,e.i18n.t(`billingWorkspace.due`))(`direction`,e.sortDirection(e.sort(),`due`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`total`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.invoices.total`))(`direction`,e.sortDirection(e.sort(),`total`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`remaining`)),ZC(),Fy(`label`,e.i18n.t(`payment.remaining`))(`direction`,e.sortDirection(e.sort(),`remaining`)),ZC(2),jS(e.results())}}function ht(n,t){if(n&1&&(OS(0,ft,7,13,`section`,21),OS(1,gt,2,1,`p`,22)(2,vt,24,24,`div`,23),Us(3,`footer`,24)(4,`p`,13),y_(5),fd()()),n&2){let e=qS();kS(e.selected().length?0:-1),ZC(),kS(e.visible().length===0?1:2),ZC(4),nv(e.i18n.plural(`entityList.invoices`,k_(3,G,e.visible().length)))}}var Ae=class n{i18n=g(Ie);pdf=g(L);api=g(R);router=g(ue);route=g(G$1);destroyRef=g(pe);state=Ke$1(`loading`);invoices=Ke$1([]);filters=nr(Ke$1(w(this.route.snapshot.queryParamMap)));sort=Ke$1(T(this.route.snapshot.queryParamMap));detailQuery=Ft(()=>W(`invoices`,oe(m(l({},this.filters().value()),{sort:this.sort()}))));emptyKey=Ft(()=>this.invoices().length===0?`billingWorkspace.empty`:`billingWorkspace.noMatches`);sortDirection=P;matchIndices=V;selectedIds=Ke$1(new Set);preparingReminders=Ke$1(!1);searchResults=Ft$1(this.invoices,Ft(()=>this.filters.q().value()),{keys:[`invoiceNumber`,`title`,`clientDisplayName`,`orderReference`],ignoreDiacritics:!0,ignoreLocation:!0,includeMatches:!0,threshold:.35});results=Ft(()=>{let t=new Intl.Collator(this.i18n.language(),{numeric:!0,sensitivity:`base`});return this.searchResults().filter(({item:e})=>q(e,this.filters().value(),N$1())).toSorted((e,i)=>K(e.item,i.item,this.sort(),t,a=>this.i18n.t(a)))});visible=Ft(()=>this.results().map(({item:t})=>t));csvColumns=Ft(()=>[this.i18n.t(`backOffice.invoices.number`),this.i18n.t(`backOffice.invoice.title`),this.i18n.t(`backOffice.invoice.order`),this.i18n.t(`backOffice.invoices.client`),this.i18n.t(`billingWorkspace.documentStatus`),this.i18n.t(`billingWorkspace.financialStatus`),this.i18n.t(`billingWorkspace.due`),`${this.i18n.t(`backOffice.invoices.total`)} (EUR)`,`${this.i18n.t(`payment.remaining`)} (EUR)`]);csvRows=Ft(()=>this.state()!==`ready`?[]:this.visible().map(t=>[t.invoiceNumber,t.title,t.orderReference,t.clientDisplayName,this.filterLabel(`status`,g$2(t.status)),this.i18n.t(D(t)),t.dueDate,t.totalCents/100,i(t)/100]));clients=Ft(()=>[...new Map(this.invoices().map(t=>[t.clientId,t.clientDisplayName])).entries()]);clientOptions=Ft(()=>[{value:``,label:this.i18n.t(`billingWorkspace.all`)},...this.clients().map(([t,e])=>({value:t,label:e}))]);statusOptions=Ft(()=>[``,`draft`,`issued`,`void`].map(t=>({value:t,label:this.filterLabel(`status`,t)})));dueOptions=Ft(()=>[``,`overdue`,`upcoming`].map(t=>({value:t,label:this.filterLabel(`due`,t)})));creditOptions=Ft(()=>[``,`with`,`without`].map(t=>({value:t,label:this.filterLabel(`credit`,t)})));selected=Ft(()=>this.visible().filter(t=>this.selectedIds().has(t.id)));allSelected=Ft(()=>this.visible().length>0&&this.selected().length===this.visible().length);reminders=Ft(()=>this.selected().filter(t=>A$1(t,N$1())));exportCount=Ft(()=>this.selected().filter(t=>t.pdf?.status===`ready`).length);periodSummary=Ft(()=>{let{from:t,to:e}=this.filters().value();return[t?`${this.i18n.t(`dateRangeFilter.from`)} : ${t}`:``,e?`${this.i18n.t(`dateRangeFilter.to`)} : ${e}`:``].filter(Boolean).join(` · `)||this.i18n.t(`billingWorkspace.all`)});activeFilters=Ft(()=>{let t=this.filters().value(),e=Object.entries(t).filter(([i,a])=>i!==`from`&&i!==`to`&&a!==``);return(t.from||t.to)&&e.push([`period`,this.periodSummary()]),e});filterCount=Ft(()=>this.activeFilters().filter(([t])=>t!==`q`).length);documentStatus=g$2;financialStatus=D;remaining=i;businessDate=N$1();request=0;iconVariant(t){return t.status===`draft`?`default`:t.status===`void`?`danger`:t.creditedCents>0?`default`:i(t)===0?`success`:t.dueDate<this.businessDate?`danger`:t.recordedPaidCents>0?`warning`:`info`}invoiceMatchKey(t){return t.invoiceNumber===null?`title`:`invoiceNumber`}dueLabel(t){return t.status!==`issued`||i(t)<=0||t.creditedCents!==0?``:this.filterLabel(`due`,t.dueDate<this.businessDate?`overdue`:`upcoming`)}constructor(){this.route.queryParamMap.pipe(U()).subscribe(t=>{this.filters().reset(w(t)),this.sort.set(T(t)),this.selectedIds.set(new Set),this.preparingReminders.set(!1)}),Ol(()=>{this.load()})}updateFilters(){let t=this.sort();this.router.navigate([],{relativeTo:this.route,queryParams:m(l({},this.filters().value()),{sort:t===`none`?null:t}),queryParamsHandling:`merge`,replaceUrl:!0})}setSearch(t){this.filters.q().value.set(t.slice(0,160)),this.updateFilters()}applyPeriod(t){this.filters().reset(m(l({},this.filters().value()),{from:t.from??``,to:t.to??``})),this.updateFilters()}clearFilter(t){let e=this.filters().value();this.filters().reset(t===void 0?{q:``,status:``,client:``,due:``,credit:``,from:``,to:``}:t===`period`?m(l({},e),{from:``,to:``}):m(l({},e),{[t]:``})),this.updateFilters()}sortBy(t){this.sort.set(h(this.sort(),t)),this.updateFilters()}clearSelection(){this.selectedIds.set(new Set),this.preparingReminders.set(!1)}filterLabel(t,e){return e===``?this.i18n.t(`billingWorkspace.all`):t===`client`?this.clients().find(([i])=>i===e)?.[1]??e:t===`status`&&(e===`draft`||e===`issued`||e===`void`)?this.i18n.t(`backOffice.invoice.status.${e}`):t===`due`?this.i18n.t(e===`overdue`?`billingWorkspace.overdue`:`billingWorkspace.upcoming`):t===`credit`?this.i18n.t(e===`with`?`billingWorkspace.hasCredit`:`billingWorkspace.noCredit`):e}toggle(t,e){let i=new Set(this.selectedIds());e?i.add(t):i.delete(t),this.selectedIds.set(i)}selectVisible(t){this.selectedIds.set(new Set(t?this.visible().map(e=>e.id):[]))}exportSelected(){this.pdf.download(this.selected())}money(t){return Ne(t,this.i18n.language(),`EUR`)}async load(){let t=++this.request;this.state.set(`loading`);try{let e=await this.api.list();if(t!==this.request||this.destroyRef.destroyed)return;this.invoices.set(e),this.state.set(`ready`)}catch{!this.destroyRef.destroyed&&t===this.request&&this.state.set(`error`)}}static ɵfac=function(e){return new(e||n)};static ɵcmp=Fb({type:n,selectors:[[`app-billing`]],hostAttrs:[1,`page-container`],features:[A_([d$1,L])],decls:23,vars:28,consts:[[`menu`,``],[`all`,``],[`selected`,``],[`aria-labelledby`,`billing-title`,1,`detail-page`,`wide-page`,`billing-page`],[`id`,`billing-title`],[1,`muted`],[`pageActions`,``,`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/invoices/new`,3,`queryParams`,4,`appCan`],[`appListWorkspace`,``],[`listSearch`,``,3,`valueChange`,`label`,`value`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,`filename`,`invoices.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[1,`chips`],[`role`,`status`],[`pageActions`,``,`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/invoices/new`,3,`queryParams`],[3,`committed`,`label`,`emptyLabel`,`options`,`formField`],[3,`rangeApplied`,`from`,`to`],[`appButton`,``,`type`,`button`],[`appButton`,``,`type`,`button`,3,`click`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,3,`click`],[1,`bulk-actions`,`ds-panel`],[1,`empty`,`ds-panel`],[`appDataTable`,``],[1,`list-summary`],[3,`clearSelection`,`count`,`selectionLabel`,`clearLabel`],[`appButton`,``,3,`click`,`disabled`],[`appButton`,``,3,`disabled`,`click`,4,`appCan`],[`routerLink`,`/emails/new`,3,`queryParams`,4,`appCan`],[`routerLink`,`/emails/new`,3,`queryParams`],[`type`,`checkbox`,3,`change`,`checked`,`indeterminate`],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[`scope`,`col`,1,`amount`],[`type`,`checkbox`,3,`change`,`checked`],[1,`entity-label`],[`icon`,`invoice`,3,`variant`],[3,`routerLink`,`queryParams`],[3,`appSearchHighlight`],[`appBadge`,``],[1,`amount`]],template:function(e,i){if(e&1&&(Us(0,`section`,3)(1,`app-page-header`)(2,`h1`,4),y_(3),fd(),Us(4,`p`,5),y_(5),fd(),Iy(6,et,2,2,`a`,6),fd(),Py(7,`app-billing-nav`),Us(8,`section`,7)(9,`app-list-toolbar`)(10,`app-list-search`,8),Gy(`valueChange`,function(s){return i.setSearch(s)}),fd(),Us(11,`app-filter-menu`,9,0),Iy(13,tt,1,4,`ng-template`,10)(14,it,1,4,`ng-template`,10)(15,nt,1,4,`ng-template`,10)(16,rt,1,4,`ng-template`,10)(17,at,1,2,`ng-template`,10),fd(),Py(18,`app-table-export`,11),fd(),OS(19,lt,5,1,`div`,12),OS(20,st,2,1,`p`,13)(21,ct,4,2)(22,ht,6,5),fd()()),e&2){let a;ZC(3),nv(i.i18n.t(`backOffice.billing.title`)),ZC(2),nv(i.i18n.t(`backOffice.billing.intro`)),ZC(),Fy(`appCan`,`invoice.create`),ZC(4),Fy(`label`,i.i18n.t(`billingWorkspace.search`))(`value`,i.filters.q().value()),ZC(),Fy(`label`,i.i18n.t(`listWorkspace.filters`))(`closeLabel`,i.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,i.i18n.t(`listWorkspace.backFilters`))(`activeCount`,i.filterCount())(`disabled`,i.state()!==`ready`),ZC(2),Fy(`label`,i.i18n.t(`billingWorkspace.documentStatus`))(`summary`,i.filterLabel(`status`,i.filters.status().value())),ZC(),Fy(`label`,i.i18n.t(`backOffice.invoices.client`))(`summary`,i.filterLabel(`client`,i.filters.client().value())),ZC(),Fy(`label`,i.i18n.t(`billingWorkspace.due`))(`summary`,i.filterLabel(`due`,i.filters.due().value())),ZC(),Fy(`label`,i.i18n.t(`credit.title`))(`summary`,i.filterLabel(`credit`,i.filters.credit().value())),ZC(),Fy(`label`,i.i18n.t(`billingWorkspace.duePeriod`))(`summary`,i.periodSummary()),ZC(),Fy(`columns`,i.csvColumns())(`rows`,i.csvRows())(`label`,i.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,i.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,i.i18n.t(`listWorkspace.exportPending`))(`pending`,i.state()===`loading`),ZC(),kS(i.activeFilters().length?19:-1),ZC(),kS((a=i.state())===`loading`?20:a===`error`?21:a===`ready`?22:-1)}},dependencies:[l$1,l$2,d,N,c,yn,k,g$1,Dt,d$2,j,u,m$1,U$1,B,Q,Z,b,Fe,B$1,$],styles:[`[_nghost-%COMP%]{display:block}[appListWorkspace][_ngcontent-%COMP%] > p[_ngcontent-%COMP%]{margin-block:0}header[_ngcontent-%COMP%], .actions[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%], .chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--%NS%space-3)}header[_ngcontent-%COMP%]{justify-content:space-between;align-items:start}.billing-page[_ngcontent-%COMP%] > h1[_ngcontent-%COMP%]{font-size:var(--%NS%text-2xl);margin-block:var(--%NS%space-2)}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-xl)}.field[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2);min-inline-size:0}.filters[_ngcontent-%COMP%]{align-items:end}.filters[_ngcontent-%COMP%] .search[_ngcontent-%COMP%]{flex:1 1 22rem}.filters[_ngcontent-%COMP%] .field[_ngcontent-%COMP%]:not(.search){flex:1 1 10rem}.amount[_ngcontent-%COMP%]{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}td[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--%NS%color-muted)}.muted[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}.empty[_ngcontent-%COMP%], .bulk-actions[_ngcontent-%COMP%], .summary[_ngcontent-%COMP%]{padding:var(--%NS%space-4)}.task-form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-5);inline-size:100%}.fields[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--%NS%space-4)}.field-error[_ngcontent-%COMP%]{color:var(--%NS%color-danger);font-size:var(--%NS%text-sm)}.field-error[_ngcontent-%COMP%]:empty{display:none}dl[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3)}dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--%NS%space-2) var(--%NS%space-4)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}dd[_ngcontent-%COMP%]{margin:0;overflow-wrap:anywhere}ol[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4)}.history-entry[_ngcontent-%COMP%]{padding:var(--%NS%space-4);overflow-wrap:anywhere}@media(max-width:40rem){.fields[_ngcontent-%COMP%]{grid-template-columns:1fr}}.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}`]})};export{Ae as Billing};
@@ -1 +0,0 @@
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,E as Ft,Ir as wp,It as Us,Jr as zS,Jt as Xy,K as Ke,Nr as vd,Rn as jS,Tn as fd,V as Iy,Wn as kS,Wr as y_,X as LS,dr as pe,ft as Ol,j as H,lt as OS,mr as qT,o as A,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{T as ue,a as T,m as Ie$1,o as U,r as N,v as Dt,y as G}from"./main-AJD2LGCE.js";import{t as g$1}from"./chunk-B56nz2lI.js";import"./chunk-BzUDWIzm.js";import"./chunk-CReShp-B.js";import{t as k$1}from"./chunk-DRgIjFR6.js";import{ct as Me$1,wi as wu}from"./chunk-BAe_07VM.js";import{t as P}from"./chunk-DzxhjLIR.js";import{Ia as a,di as Ud,jr as Qd}from"./chunk-CjtJKrza.js";import"./chunk-Dv9sNWWK.js";import{t as E}from"./chunk-BWNhkOOr.js";import{t as l$1}from"./chunk-Bm0a1bep.js";import{d as nr,f as or,h as yn,n as an,o as gn,r as cn,u as mn}from"./chunk-CSkyOfSg.js";import"./chunk-DjewtV43.js";import"./chunk-2sHWWuzv2.js";import{t as y}from"./chunk-78yNgJiB.js";import"./chunk-CP9GxcYV.js";import"./chunk-CHUMIo442.js";import{t as b}from"./chunk-DpbG_pUL.js";var k=class n{authentication=g(E);document=g(H);async open(){let e=await this.authentication.currentAccount(),t=this.document.defaultView?.sessionStorage;if(e?.mode!==`administrator`||t===void 0)throw new Error(`client.creation_storage_error`);let i=`froment.pending.client-creation.${e.userId}`;return{read:()=>{let l=t.getItem(i);return l===null?void 0:wu.decodeUnknownSync(wu.fromJsonString(Qd))(l)},write:l=>t.setItem(i,wu.encodeSync(wu.fromJsonString(Qd))(l)),clear:()=>t.removeItem(i)}}static ɵfac=function(t){return new(t||n)};static ɵprov=A({token:n,factory:n.ɵfac,providedIn:`root`})};var we=(n,e)=>e.title;var Se=(n,e)=>e.name;function Ne(n,e){if(n&1&&(Us(0,`a`,7),y_(1),fd(),y_(2,` — `)),n&2){let t=qS();Fy(`routerLink`,t.backLink())(`queryParams`,t.returnQuery()),ZC(),nv(e.displayName)}}function Pe(n,e){if(n&1&&(Us(0,`p`,4),y_(1),fd()),n&2){let t=qS();ZC(),nv(t.i18n.t(`backOffice.clientDetail.loading`))}}function Ee(n,e){if(n&1){let t=zS();Us(0,`p`,8),y_(1),fd(),Us(2,`button`,9),Gy(`click`,function(){Ip(t);return wp(qS().load())}),y_(3),fd()}if(n&2){let t=qS();ZC(),nv(t.i18n.t(t.error())),ZC(2),vd(` `,t.i18n.t(`backOffice.dashboard.retry`),` `)}}function Oe(n,e){if(n&1&&(Us(0,`p`,5),y_(1),fd()),n&2){let t=qS();ZC(),nv(t.i18n.t(`backOffice.clientDetail.archived`))}}function Me(n,e){if(n&1&&(Us(0,`span`,21),y_(1),fd()),n&2){let t=qS().$implicit,i=qS(4);Fy(`id`,`client-`+t.name+`-error`),ZC(),nv(i.i18n.t(i.fieldError(t.name)))}}function Ie(n,e){if(n&1&&(Us(0,`label`,19),y_(1),Py(2,`input`,20),qT(),OS(3,Me,2,2,`span`,21),fd()),n&2){let t=e.$implicit,i=qS(4);Xy(`wide`,t.wide),Fy(`for`,`client-`+t.name),ZC(),vd(` `,i.i18n.t(i.fieldLabel(t.name)),` `),ZC(),Fy(`id`,`client-`+t.name)(`type`,t.type)(`autocomplete`,t.autocomplete)(`formField`,i.clientForm[t.name]),ky(`aria-invalid`,i.invalid(t.name))(`aria-describedby`,i.invalid(t.name)?`client-`+t.name+`-error`:null),ZT(),ZC(),kS(i.invalid(t.name)?3:-1)}}function Le(n,e){if(n&1&&(Us(0,`div`,12)(1,`fieldset`)(2,`legend`),y_(3),fd(),Us(4,`div`,17),LS(5,Ie,4,11,`label`,18,Se),fd()()()),n&2){let t=e.$implicit,i=qS(3);ZC(3),nv(i.i18n.t(t.title)),ZC(2),jS(t.fields)}}function De(n,e){if(n&1&&(Us(0,`p`,8),y_(1),fd()),n&2){let t=qS(3);ZC(),nv(t.i18n.t(e))}}function Te(n,e){if(n&1&&(Us(0,`p`,13),y_(1),fd()),n&2){let t=qS(3);ZC(),nv(t.i18n.t(`client.creation_pending`))}}function qe(n,e){if(n&1){let t=zS();Us(0,`form`,11),Gy(`submit`,function(l){Ip(t);return wp(qS(2).save(l))}),LS(1,Le,7,1,`div`,12,we),OS(3,De,2,1,`p`,8),OS(4,Te,2,1,`p`,13),Us(5,`div`,14)(6,`button`,15),y_(7),fd(),Us(8,`a`,16),y_(9),fd()()()}if(n&2){let t,i=qS(2);ZC(),jS(i.groups),ZC(2),kS((t=i.error())?3:-1,t),ZC(),kS(i.pendingCreation()?4:-1),ZC(2),Fy(`disabled`,i.saving()||i.completed()||i.editing()&&!i.clientForm().dirty()),ZC(),vd(` `,i.i18n.t(i.saveLabel()),` `),ZC(),Fy(`routerLink`,i.backLink())(`queryParams`,i.returnQuery()),ZC(),nv(i.i18n.t(`clientsWorkspace.cancel`))}}function Fe(n,e){if(n&1&&Iy(0,qe,10,7,`form`,10),n&2)Fy(`appCan`,qS().writePermission())}var fe=()=>({displayName:``,addressLine1:``,addressLine2:``,postalCode:``,city:``,country:``,email:``,phone:``});var ye=class n{i18n=g(Ie$1);api=g(y);creationStore=g(k);store;pendingCreation=Ke(void 0);route=g(G);router=g(ue);destroyRef=g(pe);confirmation=g(P);queryParams=T(this.route.queryParamMap,{initialValue:this.route.snapshot.queryParamMap});returnQuery=Ft(()=>b(this.queryParams()));client=Ke(void 0);state=Ke(`loading`);saving=Ke(!1);completed=Ke(!1);error=Ke(void 0);model=Ke(fe());editing=Ke(!1);saveLabel=Ft(()=>this.saving()?`backOffice.clientDetail.saving`:this.pendingCreation()?`client.creation_retry`:this.editing()?`backOffice.clientDetail.save`:`backOffice.clients.create`);writePermission=Ft(()=>this.editing()?`client.update`:`client.create`);titleLabel=Ft(()=>this.editing()?`clientsWorkspace.edit`:`backOffice.clients.create`);descriptionLabel=Ft(()=>this.editing()?`clientsWorkspace.editIntro`:`clientsWorkspace.formIntro`);backLabel=Ft(()=>this.client()?`clientsWorkspace.backToClient`:`backOffice.backToClients`);backLink=Ft(()=>{let e=this.client();return e?[`/clients`,e.id]:[`/clients`,this.returnQuery().view??`active`]});groups=[{title:`clientsWorkspace.identity`,fields:[{name:`displayName`,autocomplete:`organization`,type:`text`,wide:!0},{name:`email`,autocomplete:`email`,type:`email`,wide:!0},{name:`phone`,autocomplete:`tel`,type:`tel`,wide:!0}]},{title:`clientsWorkspace.address`,fields:[{name:`addressLine1`,autocomplete:`address-line1`,type:`text`,wide:!0},{name:`addressLine2`,autocomplete:`address-line2`,type:`text`,wide:!0},{name:`postalCode`,autocomplete:`postal-code`,type:`text`,wide:!1},{name:`city`,autocomplete:`address-level2`,type:`text`,wide:!1},{name:`country`,autocomplete:`country-name`,type:`text`,wide:!0}]}];clientForm=nr(this.model,e=>{an(e,()=>this.saving()||this.pendingCreation()!==void 0||this.completed()||this.state()!==`ready`||this.client()?.archived===!0),gn(e.displayName),mn(e.displayName,/\S/),cn(e.displayName,120),cn(e.addressLine1,160),cn(e.addressLine2,160),cn(e.postalCode,32),cn(e.city,120),cn(e.country,120),cn(e.email,254),mn(e.email,/^$|^[^\s@]+@[^\s@]+\.[^\s@]+$/),cn(e.phone,64),mn(e.phone,/^$|^\+?[0-9][0-9 ()\-./]{5,62}$/)});loadGeneration=0;constructor(){Ol(()=>this.route.paramMap.pipe(U(this.destroyRef)).subscribe(()=>{this.load()}))}async canDeactivate(){return this.saving()?!1:this.completed()?!0:this.pendingCreation()?this.confirmation.request(this.i18n.t(`client.creation_leave`)):!this.clientForm().dirty()||await this.confirmation.request(this.i18n.t(`backOffice.clientDetail.unsavedChanges`))}preventUnsavedUnload(e){(this.saving()||this.pendingCreation()||this.clientForm().dirty())&&e.preventDefault()}invalid(e){return this.clientForm[e]().touched()&&this.clientForm[e]().invalid()}fieldError(e){return e===`displayName`?`backOffice.clients.displayNameError`:e===`email`?`backOffice.clientDetail.emailInvalid`:e===`phone`?`backOffice.clientDetail.phoneInvalid`:`backOffice.clientDetail.fieldInvalid`}fieldLabel(e){return`backOffice.clients.${e}`}async load(){if(this.saving()||this.pendingCreation())return;let e=++this.loadGeneration,t=this.route.snapshot.paramMap.get(`clientId`);if(this.editing.set(t!==null),this.state.set(`loading`),this.completed.set(!1),this.error.set(void 0),t===null){try{let D=await this.creationStore.open();if(e!==this.loadGeneration||this.destroyRef.destroyed)return;let w=D.read();this.store=D,this.pendingCreation.set(w),this.client.set(void 0),this.clientForm().reset(w?wu.decodeUnknownSync(Ud)(w):fe()),this.state.set(`ready`)}catch{if(e!==this.loadGeneration||this.destroyRef.destroyed)return;this.error.set(`client.creation_storage_error`),this.state.set(`error`)}return}let i=wu.decodeUnknownOption(a)(t);if(Me$1.isNone(i)){this.error.set(`client.not_found`),this.state.set(`error`);return}let l=await this.api.get(i.value);if(e!==this.loadGeneration||this.destroyRef.destroyed)return;if(!l.success){this.error.set(l.code),this.state.set(`error`);return}let{displayName:C,addressLine1:ge,addressLine2:ve,postalCode:he,city:Ce,country:_e,email:be,phone:xe}=l.result;this.client.set(l.result),this.model.set({displayName:C,addressLine1:ge,addressLine2:ve,postalCode:he,city:Ce,country:_e,email:be,phone:xe}),this.clientForm().reset(),this.state.set(`ready`)}save(e){if(e.preventDefault(),!(this.saving()||this.completed()||this.state()!==`ready`||this.client()?.archived)){if(this.pendingCreation()){this.retryCreation();return}if(this.clientForm().markAsTouched(),this.clientForm().invalid()){this.clientForm().errorSummary()[0]?.fieldTree().focusBoundControl();return}or(this.clientForm,async()=>{this.saving.set(!0),this.error.set(void 0);try{let t=this.client();if(t)await this.acceptOutcome(await this.api.update(t.id,m(l({},this.model()),{expectedUpdatedAt:t.updatedAt})));else{let i=m(l({},this.model()),{requestId:crypto.randomUUID()});if(!this.store){this.error.set(`client.creation_storage_error`);return}try{this.store.write(i)}catch{this.error.set(`client.creation_storage_error`);return}this.pendingCreation.set(i),await this.acceptOutcome(await this.api.create(i))}}catch{this.error.set(`client.error`)}finally{this.saving.set(!1)}})}}async retryCreation(){let e=this.pendingCreation();if(!(!e||this.saving()||this.completed())){this.saving.set(!0),this.error.set(void 0);try{await this.acceptOutcome(await this.api.create(e))}catch{this.error.set(`client.error`)}finally{this.saving.set(!1)}}}async acceptOutcome(e){if(!this.destroyRef.destroyed){if(!e.success){this.error.set(e.code);return}this.pendingCreation()&&this.store?.clear(),this.pendingCreation.set(void 0),this.client.set(e.result),this.completed.set(!0),this.clientForm().reset(),this.saving.set(!1),await this.router.navigate([`/clients`,e.result.id],{queryParams:this.returnQuery(),queryParamsHandling:`replace`})}}static ɵfac=function(t){return new(t||n)};static ɵcmp=Fb({type:n,selectors:[[`app-client-editor`]],hostAttrs:[1,`page-container`],hostBindings:function(t,i){t&1&&Gy(`beforeunload`,function(C){return i.preventUnsavedUnload(C)},Zw)},decls:13,vars:7,consts:[[`aria-labelledby`,`client-editor-title`,1,`detail-page`,`form-page`,`client-editor`],[`layout`,`stacked`],[`pageBack`,``,`queryParamsHandling`,`replace`,3,`routerLink`,`queryParams`],[`id`,`client-editor-title`],[`role`,`status`],[`appNotice`,``,`role`,`status`],[`novalidate`,``,1,`profile-form`],[`queryParamsHandling`,`replace`,3,`routerLink`,`queryParams`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`],[`class`,`profile-form`,`novalidate`,``,3,`submit`,4,`appCan`],[`novalidate`,``,1,`profile-form`,3,`submit`],[1,`ds-panel`,`form-panel`],[`appNotice`,``,`variant`,`warning`,`role`,`status`],[1,`actions`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appLinkButton`,``,`queryParamsHandling`,`replace`,3,`routerLink`,`queryParams`],[1,`field-grid`],[1,`field`,3,`wide`,`for`],[1,`field`,3,`for`],[1,`input`,3,`id`,`type`,`autocomplete`,`formField`],[1,`field-error`,3,`id`]],template:function(t,i){if(t&1&&(Us(0,`section`,0)(1,`app-page-header`,1)(2,`a`,2),y_(3),fd(),Us(4,`h1`,3),y_(5),fd(),Us(6,`p`),OS(7,Ne,3,3),y_(8),fd()(),OS(9,Pe,2,1,`p`,4)(10,Ee,4,2)(11,Oe,2,1,`p`,5)(12,Fe,1,1,`form`,6),fd()),t&2){let l;ZC(2),Fy(`routerLink`,i.backLink())(`queryParams`,i.returnQuery()),ZC(),nv(i.i18n.t(i.backLabel())),ZC(2),nv(i.i18n.t(i.titleLabel())),ZC(2),kS((l=i.client())?7:-1,l),ZC(),vd(` `,i.i18n.t(i.descriptionLabel()),` `),ZC(),kS(i.state()===`loading`?9:i.state()===`error`?10:i.client()?.archived?11:12)}},dependencies:[l$1,N,yn,k$1,g$1,Dt],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-6)}fieldset[_ngcontent-%COMP%]{min-inline-size:0;margin:0;padding:0;border:0}legend[_ngcontent-%COMP%]{margin-block-end:var(--%NS%space-4);padding:0;font-weight:700}.field-error[_ngcontent-%COMP%]{color:var(--%NS%color-danger);font-size:var(--%NS%text-xs)}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--%NS%space-3);padding-block-start:var(--%NS%space-4);border-block-start:1px solid var(--%NS%color-line)}`]})};export{ye as ClientEditor};
@@ -1 +0,0 @@
1
- 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,Tn as fd,Wn as kS,Wr as y_,lt as OS,pr as qS,rr as nv,vt as Py,w as Fb,xt as Qg,z as Ip}from"./chunk-BAHiFuUo.js";import{T as ue,m as Ie,r as N,u as c,v as Dt,w as p,x as ce,y as G$1}from"./main-AJD2LGCE.js";import{t as k}from"./chunk-DRgIjFR6.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{Ia as a}from"./chunk-CjtJKrza.js";import"./chunk-Dv9sNWWK.js";import{t as E}from"./chunk-BWNhkOOr.js";import{t as m}from"./chunk-D0WfOSVe.js";import{n as m$1}from"./chunk-BUoX0svL2.js";import{t as w}from"./chunk-C8AJBuJL2.js";function G(s,t,i){if(s!==`client`)return`/dashboard`;let e=`/client`;if(!t?.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`))return e;let o;try{o=i.parse(t)}catch{return e}let c$1=o.root.children[p];if(!c$1||Object.keys(o.root.children).length!==1||c$1.hasChildren()||c$1.segments.some(m=>Object.keys(m.parameters).length>0))return e;let[k,u,f,J]=c$1.segments.map(m=>m.path);if(k!==`client`)return e;let b=c$1.segments.length,Q=b===1,X=u===`account`&&(b===2||b===3&&c.some(m=>m.path===f)),Z=b===4&&u===`documents`&&wu.is(m$1)(f)&&wu.is(a)(J);return Q||X||Z?i.serialize(o):e}function $(s,t){if(s&1&&(Py(0,`img`,21),Us(1,`p`,22),y_(2),fd()),s&2){let i=t;Fy(`src`,i.logoUrl,Qg),ZC(2),nv(i.name)}}function ee(s,t){if(s&1&&(Us(0,`p`,16),y_(1),fd()),s&2){let i=qS();ZC(),nv(i.i18n.t(t))}}function te(s,t){if(s&1){let i=zS();Us(0,`button`,23),Gy(`click`,function(){Ip(i);return wp(qS().loginPasskey())}),y_(1),fd()}if(s&2){let i=qS();Fy(`disabled`,i.pending()),ZC(),vd(` `,i.i18n.t(`passkey.login`),` `)}}var H=class s{branding=g(m);i18n=g(Ie);auth=g(E);route=g(G$1);router=g(ue);urlSerializer=g(ce);error=Ke(void 0);pending=Ke(!1);passkeys=g(w);constructor(){this.branding.load()}async loginPasskey(){if(this.pending())return;this.pending.set(!0),this.error.set(void 0);let t=await this.auth.authenticatePasskey(()=>this.passkeys.assertion());this.pending.set(!1),t.success?await this.router.navigateByUrl(this.destination(t.mode)):this.error.set(t.code)}submitLabel=Ft(()=>this.pending()?`backOffice.pending`:`backOffice.submit`);async submit(t,i,e){if(t.preventDefault(),this.pending())return;this.pending.set(!0),this.error.set(void 0);let o=await this.auth.authenticate(i,e);if(this.pending.set(!1),o.success){await this.router.navigateByUrl(this.destination(o.mode));return}this.error.set(o.code)}destination(t){return G(t,this.route.snapshot.queryParamMap.get(`returnUrl`),this.urlSerializer)}static ɵfac=function(i){return new(i||s)};static ɵcmp=Fb({type:s,selectors:[[`app-login`]],hostAttrs:[1,`page-container`],decls:32,vars:13,consts:[[`email`,``],[`password`,``],[`aria-labelledby`,`back-office-title`,1,`login-page`],[1,`login-intro`],[`id`,`back-office-title`],[1,`login-description`],[1,`login-access`],[1,`login-fields`],[`id`,`login-form-title`],[`id`,`login-hint`],[`aria-labelledby`,`login-form-title`,`aria-describedby`,`login-hint`,3,`submit`],[1,`field`],[`for`,`back-office-email`],[`id`,`back-office-email`,`type`,`email`,`autocomplete`,`username`,`required`,``,`autofocus`,``,1,`input`],[`for`,`back-office-password`],[`id`,`back-office-password`,`type`,`password`,`autocomplete`,`current-password`,`required`,``,1,`input`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appButton`,``,`type`,`button`,3,`disabled`],[1,`bootstrap-slot`],[`routerLink`,`/bootstrap`,1,`bootstrap-link`],[`alt`,``,`width`,`64`,`height`,`64`,1,`enterprise-logo`,3,`src`],[1,`enterprise-name`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`]],template:function(i,e){if(i&1){let o=zS();Us(0,`section`,2)(1,`header`,3),OS(2,$,3,2),Us(3,`h1`,4),y_(4),fd(),Us(5,`p`,5),y_(6),fd(),Us(7,`p`,6),y_(8),fd()(),Us(9,`div`,7)(10,`h2`,8),y_(11),fd(),Us(12,`p`,9),y_(13),fd(),Us(14,`form`,10),Gy(`submit`,function(k){Ip(o);let u=t_(19),f=t_(24);return wp(e.submit(k,u.value,f.value))}),Us(15,`div`,11)(16,`label`,12),y_(17),fd(),Py(18,`input`,13,0),fd(),Us(20,`div`,11)(21,`label`,14),y_(22),fd(),Py(23,`input`,15,1),fd(),OS(25,ee,2,1,`p`,16),Us(26,`button`,17),y_(27),fd(),OS(28,te,2,2,`button`,18),fd(),Us(29,`div`,19)(30,`a`,20),y_(31),fd()()()()}if(i&2){let o,c;ZC(2),kS((o=e.branding.current())?2:-1,o),ZC(2),nv(e.i18n.t(`backOffice.title`)),ZC(2),nv(e.i18n.t(`login.description`)),ZC(2),nv(e.i18n.t(`login.access`)),ZC(3),nv(e.i18n.t(`login.heading`)),ZC(2),nv(e.i18n.t(`backOffice.intro`)),ZC(4),vd(` `,e.i18n.t(`backOffice.email`),` `),ZC(5),nv(e.i18n.t(`backOffice.password`)),ZC(3),kS((c=e.error())?25:-1,c),ZC(),Fy(`disabled`,e.pending()),ZC(),vd(` `,e.i18n.t(e.submitLabel()),` `),ZC(),kS(e.passkeys.supported?28:-1),ZC(3),vd(` `,e.i18n.t(`backOffice.bootstrap`),` `)}},dependencies:[N,k,Dt],styles:[`[_nghost-%COMP%]{display:block}.login-page[_ngcontent-%COMP%]{display:grid;align-items:center;gap:var(--%NS%space-8);padding:var(--%NS%page-header-y) var(--%NS%page-x)}.login-intro[_ngcontent-%COMP%], .login-fields[_ngcontent-%COMP%]{min-width:0}.login-intro[_ngcontent-%COMP%]{padding-block:var(--%NS%space-4)}.enterprise-logo[_ngcontent-%COMP%]{display:block;max-inline-size:4rem;max-block-size:4rem;object-fit:contain;margin-block-end:var(--%NS%space-3)}.enterprise-name[_ngcontent-%COMP%]{font-weight:700;margin-block-end:var(--%NS%space-3)}h1[_ngcontent-%COMP%]{max-width:10ch;font-size:clamp(2.375rem,5vw,3.25rem);line-height:var(--%NS%leading-tight);letter-spacing:var(--%NS%tracking-display)}.login-description[_ngcontent-%COMP%]{max-width:28ch;margin-top:var(--%NS%space-5);font-size:var(--%NS%text-xl);line-height:var(--%NS%leading-heading);text-wrap:balance}.login-access[_ngcontent-%COMP%]{max-width:40ch;margin-top:var(--%NS%space-6);color:var(--%NS%color-muted);font-family:var(--%NS%font-mono);font-size:var(--%NS%text-xs)}.login-fields[_ngcontent-%COMP%]{width:100%;max-width:28rem}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-xl)}#login-hint[_ngcontent-%COMP%]{margin-top:var(--%NS%space-2);color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-5);margin-top:var(--%NS%space-6)}.bootstrap-slot[_ngcontent-%COMP%]{margin-top:var(--%NS%space-5);font-size:var(--%NS%text-sm)}.bootstrap-link[_ngcontent-%COMP%]{font-weight:600}@media(min-width:56rem){.login-page[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--%NS%space-12);padding-block:var(--%NS%space-12)}.login-fields[_ngcontent-%COMP%]{justify-self:end;padding-inline-start:var(--%NS%space-8);border-inline-start:1px solid var(--%NS%color-line-strong)}}`]})};export{H as Login};