@sachahjkl/backoffice 0.2.7 → 0.2.8

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 (289) hide show
  1. package/README.md +3 -1
  2. package/dist/demo-reset.cjs +14 -12
  3. package/dist/main.cjs +14 -12
  4. package/dist/migrate.cjs +8 -6
  5. package/dist/web/chunk-3MmwmyDh.js +1 -0
  6. package/dist/web/{chunk-DhkjPUn4.js → chunk-6-OG9zy0.js} +1 -1
  7. package/dist/web/chunk-6twPawwh.js +1 -0
  8. package/dist/web/{chunk-Bck0-DJt2.js → chunk-AE7J7wcH2.js} +1 -1
  9. package/dist/web/chunk-AZB0sMq_.js +1 -0
  10. package/dist/web/{chunk-CGfyD3XX2.js → chunk-B-2b7DJP.js} +1 -1
  11. package/dist/web/{chunk-BYjxXKZ4.js → chunk-B-XrDECw.js} +1 -1
  12. package/dist/web/chunk-B0Pr-tNT.js +1 -0
  13. package/dist/web/chunk-B1Kpw1um.js +1 -0
  14. package/dist/web/chunk-B2X87TB92.js +1 -0
  15. package/dist/web/chunk-B3fBH9Bt2.js +1 -0
  16. package/dist/web/chunk-B4KnJ14M2.js +1 -0
  17. package/dist/web/{chunk-DZgf7AIe.js → chunk-B4Vcwa9l.js} +1 -1
  18. package/dist/web/chunk-B4cAnuMM2.js +1 -0
  19. package/dist/web/chunk-B6mYbErA2.js +1 -0
  20. package/dist/web/chunk-B6trGhNK2.js +3 -0
  21. package/dist/web/chunk-B89j6ppg2.js +1 -0
  22. package/dist/web/chunk-B8tEtjeZ2.js +1 -0
  23. package/dist/web/chunk-BAYVC6mO2.js +1 -0
  24. package/dist/web/{chunk-MpUdRrak2.js → chunk-BCN3uL5S.js} +1 -1
  25. package/dist/web/chunk-BDmE_ZEe2.js +1 -0
  26. package/dist/web/{chunk-aW8Vltn22.js → chunk-BEYQDr-4.js} +1 -1
  27. package/dist/web/{chunk-CLHj5Ycx2.js → chunk-BEqSiNum.js} +1 -1
  28. package/dist/web/chunk-BHnrX0WJ.js +1 -0
  29. package/dist/web/chunk-BJ0yZa2G.js +1 -0
  30. package/dist/web/{chunk-Fc120Hsi2.js → chunk-BL3upDtA.js} +1 -1
  31. package/dist/web/{chunk-POMKwNf_.js → chunk-BMiFx1ci.js} +1 -1
  32. package/dist/web/{chunk--RuvStn6.js → chunk-BNS7t55s2.js} +1 -1
  33. package/dist/web/{chunk-D1wrPwB5.js → chunk-BO6tYuf8.js} +1 -1
  34. package/dist/web/{chunk-HmRGBt692.js → chunk-BPA6_4Vt.js} +1 -1
  35. package/dist/web/chunk-BRp_hGNk.js +1 -0
  36. package/dist/web/chunk-BSDpuA332.js +1 -0
  37. package/dist/web/chunk-BSKQUQGn.js +1 -0
  38. package/dist/web/{chunk-C0Ceu-vg.js → chunk-BTsDF4C6.js} +1 -1
  39. package/dist/web/{chunk-CDK48Khc.js → chunk-BVXF-FYe2.js} +1 -1
  40. package/dist/web/{chunk-BkvskoFt2.js → chunk-BWBbQ7HE2.js} +1 -1
  41. package/dist/web/{chunk-DTPC4JtI2.js → chunk-BYRTViky2.js} +1 -1
  42. package/dist/web/chunk-BZe5DpAa.js +1 -0
  43. package/dist/web/chunk-B_7K7EHr.js +1 -0
  44. package/dist/web/{chunk-D8xHm8jb2.js → chunk-B_pcpccF.js} +1 -1
  45. package/dist/web/{chunk-xTX16tt2.js → chunk-B_xlO55a2.js} +1 -1
  46. package/dist/web/{chunk-BKufCOYq.js → chunk-BfKP2Lf9.js} +1 -1
  47. package/dist/web/chunk-Bfm6z5eI2.js +1 -0
  48. package/dist/web/chunk-Bgl7kJgO2.js +1 -0
  49. package/dist/web/{chunk-enci06qG.js → chunk-Bh2Diab5.js} +1 -1
  50. package/dist/web/chunk-Bi9TDDm92.js +1 -0
  51. package/dist/web/chunk-Bit8ybhq.js +1 -0
  52. package/dist/web/chunk-BmfZmUis.js +1 -0
  53. package/dist/web/chunk-BpkPnQ2K.js +1 -0
  54. package/dist/web/chunk-Bq24rsxm2.js +1 -0
  55. package/dist/web/{chunk-C_QyIKvy.js → chunk-BqXhvdC0.js} +1 -1
  56. package/dist/web/{chunk-CCkaRRSy.js → chunk-Brog8aBK.js} +1 -1
  57. package/dist/web/{chunk-C-O6GrQC2.js → chunk-Bu0zsnWO.js} +1 -1
  58. package/dist/web/chunk-BurkPLm-2.js +1 -0
  59. package/dist/web/chunk-BuyEsqZU2.js +1 -0
  60. package/dist/web/{chunk-AJOoJgZJ.js → chunk-BwFjLr9D2.js} +1 -1
  61. package/dist/web/chunk-BwGtxWvC.js +1 -0
  62. package/dist/web/chunk-Bxrld4562.js +1 -0
  63. package/dist/web/{chunk-Bq2zV2_3.js → chunk-C01EdpX9.js} +1 -1
  64. package/dist/web/{chunk-Dl4EbYnM2.js → chunk-C0dwIYf0.js} +1 -1
  65. package/dist/web/{chunk-CfcCxe_k.js → chunk-C1BibNrz.js} +1 -1
  66. package/dist/web/{chunk-Dns8uMf32.js → chunk-C1gYDta1.js} +1 -1
  67. package/dist/web/{chunk-CubfQf-X2.js → chunk-C2i4N9dz.js} +1 -1
  68. package/dist/web/{chunk-DpLF2wJ62.js → chunk-C6M6lCrw2.js} +1 -1
  69. package/dist/web/{chunk-CK6Sjqig.js → chunk-C94w9Yq2.js} +1 -1
  70. package/dist/web/chunk-CA-xctoQ2.js +1 -0
  71. package/dist/web/chunk-CBcFgY8f2.js +1 -0
  72. package/dist/web/{chunk-DGbo0App2.js → chunk-CCItYukO.js} +1 -1
  73. package/dist/web/chunk-CGLHod2X2.js +1 -0
  74. package/dist/web/{chunk-Bfx7EEIR.js → chunk-CHUNlDss2.js} +1 -1
  75. package/dist/web/chunk-CJ10tvOm.js +1 -0
  76. package/dist/web/chunk-CJE3VBx5.js +1 -0
  77. package/dist/web/chunk-CL9McPWU.js +1 -0
  78. package/dist/web/chunk-CLzfpBlo2.js +1 -0
  79. package/dist/web/chunk-CM29tQ7z.js +1 -0
  80. package/dist/web/{chunk-Ck6cItVE2.js → chunk-CMC_2rEW.js} +1 -1
  81. package/dist/web/chunk-CMFGRRh02.js +1 -0
  82. package/dist/web/chunk-CO_ECkiv.js +1 -0
  83. package/dist/web/{chunk-D97UUzIx.js → chunk-CQvxhLmC2.js} +1 -1
  84. package/dist/web/chunk-CRDadWvH2.js +1 -0
  85. package/dist/web/chunk-CS69nNvh.js +1 -0
  86. package/dist/web/chunk-CXb1THnv2.js +1 -0
  87. package/dist/web/chunk-CZM1REvY.js +1 -0
  88. package/dist/web/chunk-C_4qOSvi2.js +1 -0
  89. package/dist/web/chunk-C_wLUbPJ2.js +1 -0
  90. package/dist/web/chunk-CdvoW0GI.js +1 -0
  91. package/dist/web/{chunk-CE9WzUCM.js → chunk-CecoTW2V.js} +1 -1
  92. package/dist/web/chunk-Cg6D1SkX2.js +1 -0
  93. package/dist/web/chunk-ChMWeKtk2.js +1 -0
  94. package/dist/web/chunk-CiQcqWHR.js +1 -0
  95. package/dist/web/chunk-Cjj8GJIb2.js +1 -0
  96. package/dist/web/{chunk-niXXbm7H.js → chunk-CkRw7h0_.js} +1 -1
  97. package/dist/web/{chunk-nC_XlFOG.js → chunk-Ckk2HUrT.js} +1 -1
  98. package/dist/web/chunk-Cl9ktebj.js +1 -0
  99. package/dist/web/chunk-ClviGHGr.js +1 -0
  100. package/dist/web/{chunk-BVszSMJC.js → chunk-Cm2UNqwE.js} +1 -1
  101. package/dist/web/chunk-CoUH4AfS2.js +1 -0
  102. package/dist/web/chunk-CpB8RIpf.js +1 -0
  103. package/dist/web/{chunk-BpZ7MSOP.js → chunk-CqreQVp_.js} +1 -1
  104. package/dist/web/{chunk-DEXzwHB0.js → chunk-CrwYH4R_2.js} +1 -1
  105. package/dist/web/{chunk-RIi7_iVg.js → chunk-CuVXI21d.js} +1 -1
  106. package/dist/web/{chunk-CvsVlcIU2.js → chunk-CwkgffnU.js} +1 -1
  107. package/dist/web/chunk-CxgCrZQl.js +1 -0
  108. package/dist/web/{chunk-DDCyjjcE.js → chunk-CyavDx9Z.js} +1 -1
  109. package/dist/web/{chunk-r6H-BfOd.js → chunk-D0MIkZdd2.js} +1 -1
  110. package/dist/web/{chunk-D5qmP2Wu.js → chunk-D8Ui_APT.js} +1 -1
  111. package/dist/web/{chunk-CPHUl7N2.js → chunk-D8VZRHVx.js} +1 -1
  112. package/dist/web/chunk-D9pT7T7E.js +1 -0
  113. package/dist/web/chunk-DD8ATIqT2.js +1 -0
  114. package/dist/web/chunk-DE4GLf5B.js +1 -0
  115. package/dist/web/{chunk-CkWd-yMn.js → chunk-DEYSMPA_2.js} +1 -1
  116. package/dist/web/chunk-DGXdMht2.js +1 -0
  117. package/dist/web/chunk-DJfwJBD6.js +1 -0
  118. package/dist/web/chunk-DJwuZjJg2.js +1 -0
  119. package/dist/web/chunk-DKDWoDXU.js +1 -0
  120. package/dist/web/chunk-DLH3RPM22.js +1 -0
  121. package/dist/web/{chunk-qKosqkwC.js → chunk-DQRDJtdh.js} +1 -1
  122. package/dist/web/chunk-DRY4w4Td.js +1 -0
  123. package/dist/web/chunk-DTRJLfq02.js +1 -0
  124. package/dist/web/{chunk-4ipZT9nT.js → chunk-DTj9NKPI.js} +1 -1
  125. package/dist/web/chunk-DVbkiKVh2.js +1 -0
  126. package/dist/web/chunk-DVu24rwt.js +1 -0
  127. package/dist/web/chunk-DWN606KF2.js +1 -0
  128. package/dist/web/chunk-DZvdrgcs2.js +1 -0
  129. package/dist/web/chunk-D_X9J-dz2.js +1 -0
  130. package/dist/web/{chunk-C0gTeWW62.js → chunk-DbL20WIB2.js} +1 -1
  131. package/dist/web/{chunk-Bb31fHqC2.js → chunk-DbcNGxba.js} +1 -1
  132. package/dist/web/chunk-Dc29tEgJ2.js +1 -0
  133. package/dist/web/{chunk-DboSVJMM.js → chunk-Dc8-8Og_.js} +1 -1
  134. package/dist/web/chunk-DdVUVFhX.js +1 -0
  135. package/dist/web/chunk-DeERUxjp.js +1 -0
  136. package/dist/web/chunk-Dfxr5EJU.js +1 -0
  137. package/dist/web/chunk-DgZvyF3s.js +1 -0
  138. package/dist/web/chunk-DgZxoBPB.js +1 -0
  139. package/dist/web/{chunk-DsaNNeZe.js → chunk-DhpMFMQw.js} +1 -1
  140. package/dist/web/{chunk-DOCau85G2.js → chunk-DlBNgzF8.js} +1 -1
  141. package/dist/web/{chunk-CVHqiS63.js → chunk-DlecOMbR.js} +1 -1
  142. package/dist/web/chunk-DnKyRGr_.js +1 -0
  143. package/dist/web/{chunk-DhLlQTD-2.js → chunk-DnYJfVdt.js} +1 -1
  144. package/dist/web/chunk-Dr_Uz6uR2.js +1 -0
  145. package/dist/web/{chunk-NDpjbcAr2.js → chunk-DvAE1Kdh2.js} +1 -1
  146. package/dist/web/chunk-DwSL7UNj.js +1 -0
  147. package/dist/web/{chunk-DZgMGE6C.js → chunk-Dyouu0xF.js} +1 -1
  148. package/dist/web/{chunk-CABvk97t2.js → chunk-DytjnC4n2.js} +1 -1
  149. package/dist/web/{chunk-CApvwK4D.js → chunk-Fo633neF.js} +1 -1
  150. package/dist/web/chunk-I2ekTEA32.js +1 -0
  151. package/dist/web/{chunk-D5MFwK9L.js → chunk-IrDYxRzS.js} +1 -1
  152. package/dist/web/chunk-JqPdfaO22.js +1 -0
  153. package/dist/web/chunk-LKcToPK62.js +1 -0
  154. package/dist/web/{chunk-CtmP6l7_2.js → chunk-Qweefwro2.js} +1 -1
  155. package/dist/web/chunk-U_cdbXaE2.js +1 -0
  156. package/dist/web/chunk-Ub2hjsmX.js +1 -0
  157. package/dist/web/chunk-WylMVh3d.js +1 -0
  158. package/dist/web/chunk-ZZuAWaLQ.js +1 -0
  159. package/dist/web/{chunk-C19Alcnx2.js → chunk-Zj43itle.js} +1 -1
  160. package/dist/web/chunk-ZoQD3eIP2.js +1 -0
  161. package/dist/web/chunk-ZxYSyP21.js +1 -0
  162. package/dist/web/{chunk-D_8jIApo.js → chunk-a58d-9ZM2.js} +1 -1
  163. package/dist/web/{chunk-pV57uiBu2.js → chunk-aGxrcUQJ2.js} +1 -1
  164. package/dist/web/chunk-bIBAi42v2.js +1 -0
  165. package/dist/web/{chunk-DIJSXeQC2.js → chunk-bQhJGrXj2.js} +1 -1
  166. package/dist/web/chunk-c57UHX0J.js +1 -0
  167. package/dist/web/chunk-eAm9Qkk4.js +1 -0
  168. package/dist/web/{chunk-WNYFaDlu2.js → chunk-f6C5Rz_B2.js} +1 -1
  169. package/dist/web/chunk-fLDt2Dc5.js +1 -0
  170. package/dist/web/{chunk-CmokTGIG.js → chunk-fY-2jgAh.js} +1 -1
  171. package/dist/web/{chunk-SZJG1lFa2.js → chunk-f_xeGTT7.js} +1 -1
  172. package/dist/web/chunk-fxkvCM0b.js +1 -0
  173. package/dist/web/{chunk-9X4vLcFh.js → chunk-k8jJDyGi.js} +1 -1
  174. package/dist/web/{chunk-DerJPaBw.js → chunk-mCmB-2Tr.js} +1 -1
  175. package/dist/web/{chunk-DXvlXoVT2.js → chunk-mqeSFXPY2.js} +1 -1
  176. package/dist/web/{chunk-D6k6pmdU.js → chunk-o83QpKCY.js} +1 -1
  177. package/dist/web/chunk-pffFf_PV2.js +1 -0
  178. package/dist/web/{chunk-XtjMOmku2.js → chunk-sAfSVia62.js} +1 -1
  179. package/dist/web/{chunk-CEJjSd8-2.js → chunk-xIoy5TmG2.js} +1 -1
  180. package/dist/web/{chunk-B8_dFe5w.js → chunk-xRsHYitB.js} +1 -1
  181. package/dist/web/index.csr.html +1 -1
  182. package/dist/web/{main-F7D3L737.js → main-LXYWXFW4.js} +2 -2
  183. package/package.json +1 -1
  184. package/dist/web/chunk-6jIo5mZ42.js +0 -1
  185. package/dist/web/chunk-9d_UD-MQ.js +0 -1
  186. package/dist/web/chunk-B0bNirg2.js +0 -1
  187. package/dist/web/chunk-B3OxeBLO2.js +0 -1
  188. package/dist/web/chunk-B5xzAYYx2.js +0 -1
  189. package/dist/web/chunk-B6Rml85x2.js +0 -1
  190. package/dist/web/chunk-B91VAo1J.js +0 -1
  191. package/dist/web/chunk-B9NV1rY62.js +0 -1
  192. package/dist/web/chunk-BAn0tBhX.js +0 -1
  193. package/dist/web/chunk-BGVaNZdj.js +0 -1
  194. package/dist/web/chunk-BHDXYrox.js +0 -1
  195. package/dist/web/chunk-BI9lIdFn.js +0 -1
  196. package/dist/web/chunk-BNksdK_D2.js +0 -1
  197. package/dist/web/chunk-BQ7WWH4L.js +0 -1
  198. package/dist/web/chunk-BQrmVphu2.js +0 -1
  199. package/dist/web/chunk-BR0demlX.js +0 -1
  200. package/dist/web/chunk-BT8KtCYG.js +0 -1
  201. package/dist/web/chunk-BZZJ287h.js +0 -1
  202. package/dist/web/chunk-BcUjdID-.js +0 -1
  203. package/dist/web/chunk-Bf3eV_su2.js +0 -1
  204. package/dist/web/chunk-BfSewUhY.js +0 -1
  205. package/dist/web/chunk-Bi4Jixry2.js +0 -1
  206. package/dist/web/chunk-BiECfDS7.js +0 -1
  207. package/dist/web/chunk-Bj7Oze2U2.js +0 -1
  208. package/dist/web/chunk-Bjo6eVnk.js +0 -1
  209. package/dist/web/chunk-Bn46cQyx.js +0 -1
  210. package/dist/web/chunk-Bn6RkvPA2.js +0 -1
  211. package/dist/web/chunk-Bsy3r41y2.js +0 -1
  212. package/dist/web/chunk-By2EFyNM.js +0 -1
  213. package/dist/web/chunk-CCqlW8pS2.js +0 -3
  214. package/dist/web/chunk-CCr_R2Cg.js +0 -1
  215. package/dist/web/chunk-CDS6LjBz2.js +0 -1
  216. package/dist/web/chunk-CG4Kbo1n2.js +0 -1
  217. package/dist/web/chunk-CKFB1V-p2.js +0 -1
  218. package/dist/web/chunk-CL02A9wI.js +0 -1
  219. package/dist/web/chunk-CLZ5xsSQ2.js +0 -1
  220. package/dist/web/chunk-CMvRZBpn.js +0 -1
  221. package/dist/web/chunk-CNfmNEak.js +0 -1
  222. package/dist/web/chunk-COTrF1xY2.js +0 -1
  223. package/dist/web/chunk-COXN76fu2.js +0 -1
  224. package/dist/web/chunk-CUqj_Bxs2.js +0 -1
  225. package/dist/web/chunk-CV_fLVFT.js +0 -1
  226. package/dist/web/chunk-CYGyIy7J.js +0 -1
  227. package/dist/web/chunk-CYRUKYKv2.js +0 -1
  228. package/dist/web/chunk-Ca3lwqEF.js +0 -1
  229. package/dist/web/chunk-CaJrmM9V.js +0 -1
  230. package/dist/web/chunk-CpXqQPuw.js +0 -1
  231. package/dist/web/chunk-CuepVIkm2.js +0 -1
  232. package/dist/web/chunk-CvMAjyvr2.js +0 -1
  233. package/dist/web/chunk-CwzCbuXH.js +0 -1
  234. package/dist/web/chunk-Cx07K71K.js +0 -1
  235. package/dist/web/chunk-D-VHaopx.js +0 -1
  236. package/dist/web/chunk-D1DvlGbP.js +0 -1
  237. package/dist/web/chunk-D3XjW5Cm.js +0 -1
  238. package/dist/web/chunk-D8kEdb5y2.js +0 -1
  239. package/dist/web/chunk-D8t0s8LD.js +0 -1
  240. package/dist/web/chunk-DB6sOjsn2.js +0 -1
  241. package/dist/web/chunk-DIBFSF2Z.js +0 -1
  242. package/dist/web/chunk-DKlxu0GP2.js +0 -1
  243. package/dist/web/chunk-DM4Wc9U7.js +0 -1
  244. package/dist/web/chunk-DM5aibnW.js +0 -1
  245. package/dist/web/chunk-DMXgU6Nc2.js +0 -1
  246. package/dist/web/chunk-DMskLhpk2.js +0 -1
  247. package/dist/web/chunk-DOinRyX_2.js +0 -1
  248. package/dist/web/chunk-DQp-2GVv.js +0 -1
  249. package/dist/web/chunk-DQr_9Q6T.js +0 -1
  250. package/dist/web/chunk-DSpA-ZPx.js +0 -1
  251. package/dist/web/chunk-DURq7J8U2.js +0 -1
  252. package/dist/web/chunk-DVJ4YZuU.js +0 -1
  253. package/dist/web/chunk-DVyDnsGh.js +0 -1
  254. package/dist/web/chunk-D_vyhgGx.js +0 -1
  255. package/dist/web/chunk-Db2zQ-8C.js +0 -1
  256. package/dist/web/chunk-DdOc1fs-.js +0 -1
  257. package/dist/web/chunk-DddDKWSn2.js +0 -1
  258. package/dist/web/chunk-Dh86w63y.js +0 -1
  259. package/dist/web/chunk-Di9FA_QV.js +0 -1
  260. package/dist/web/chunk-DjwvqY3z2.js +0 -1
  261. package/dist/web/chunk-Dl4V93zm2.js +0 -1
  262. package/dist/web/chunk-Dnzjseqf2.js +0 -1
  263. package/dist/web/chunk-DpI44v1z.js +0 -1
  264. package/dist/web/chunk-Dqhs2Pyw2.js +0 -1
  265. package/dist/web/chunk-DubWLqvO.js +0 -1
  266. package/dist/web/chunk-IlM3eTPp2.js +0 -1
  267. package/dist/web/chunk-IzGdqlW82.js +0 -1
  268. package/dist/web/chunk-P1du2kWg2.js +0 -1
  269. package/dist/web/chunk-PqGGk0JD.js +0 -1
  270. package/dist/web/chunk-XvyWOb2Q.js +0 -1
  271. package/dist/web/chunk-ZBDWcE362.js +0 -1
  272. package/dist/web/chunk-ZcJhJsoo.js +0 -1
  273. package/dist/web/chunk-a_Va_Nj7.js +0 -1
  274. package/dist/web/chunk-fYJ7OBkh.js +0 -1
  275. package/dist/web/chunk-k6TIcaIA.js +0 -1
  276. package/dist/web/chunk-owvOEsA9.js +0 -1
  277. package/dist/web/chunk-scbWWgLx2.js +0 -1
  278. package/dist/web/chunk-tDREPM-0.js +0 -1
  279. package/dist/web/chunk-y0Vyi0HZ.js +0 -1
  280. package/dist/web/chunk-yfBrkklv.js +0 -1
  281. /package/dist/web/{chunk-1ErswIDf.js → chunk-1ErswIDf2.js} +0 -0
  282. /package/dist/web/{chunk-CARNiCDb2.js → chunk-CARNiCDb.js} +0 -0
  283. /package/dist/web/{chunk-CGo7Fepz.js → chunk-CGo7Fepz2.js} +0 -0
  284. /package/dist/web/{chunk-CKxU-VJf.js → chunk-CKxU-VJf2.js} +0 -0
  285. /package/dist/web/{chunk-CP-AnFGa2.js → chunk-CP-AnFGa.js} +0 -0
  286. /package/dist/web/{chunk-CXHCUTDs.js → chunk-CXHCUTDs2.js} +0 -0
  287. /package/dist/web/{chunk-CczD0yXn.js → chunk-CczD0yXn2.js} +0 -0
  288. /package/dist/web/{chunk-CtcsJTAS2.js → chunk-CtcsJTAS.js} +0 -0
  289. /package/dist/web/{chunk-WJWN7A_V2.js → chunk-WJWN7A_V.js} +0 -0
package/README.md CHANGED
@@ -22,6 +22,8 @@ The command creates `data/froment.sqlite`, applies database migrations, and list
22
22
 
23
23
  Set `DATABASE_PATH` to use a different database file. Set `PORT` to use a different port. Set `TYPST_PATH` to the absolute path of Typst if it is not on `PATH`. The package includes the Cousine fonts and document templates used for PDF documents. Set `BUSINESS_TIME_ZONE` to override `Europe/Paris`.
24
24
 
25
+ In Configuration, upload a PNG, JPEG, or WebP logo of up to 256 KB. The application stores it with the branding settings in the database. Without an uploaded logo, the package uses its default logo or the instance's `ENTERPRISE_LOGO_URL`.
26
+
25
27
  Run `npx froment-backoffice migrate` to apply migrations without starting the server. Run `npx froment-backoffice backup` with `BACKUP_ACTION` and `BACKUP_PATH` to create, verify, or restore a backup.
26
28
 
27
29
  For a separate demo installation, set `APP_ENV=staging`, `DEMO_MODE=true`, `DEMO_PASSWORD`, and a different `DEMO_ACCOUNT_PASSWORD`. Set `ENTERPRISE_NAME` before `demo-reset` to name the company in its settings and generated documents. Run `npx froment-backoffice demo-reset` to migrate the database and create synthetic accounts and data. The login page displays the demo account credentials only in demo mode. Schedule this command to restore the demo data when needed.
@@ -30,4 +32,4 @@ See the source repository's `docs/secrets.md` and `docs/runtime-configuration.md
30
32
 
31
33
  ## Build a local package from source
32
34
 
33
- Run `pnpm pack:app` at the repository root. This builds the API and web application, assembles the assets, and writes an npm tarball to the repository root. Install that tarball with `npm install ./sachahjkl-backoffice-0.2.7.tgz` in the consuming application.
35
+ Run `pnpm pack:app` at the repository root. This builds the API and web application, assembles the assets, and writes an npm tarball to the repository root. Install that tarball with `npm install ./sachahjkl-backoffice-0.2.8.tgz` in the consuming application.
@@ -47785,8 +47785,10 @@ var DemoFailure = Schema_exports.Union([
47785
47785
  // ../contracts/src/company/branding.ts
47786
47786
  var BrandingName = Schema_exports.String.check(Schema_exports.isMinLength(1), Schema_exports.isMaxLength(120));
47787
47787
  var BrandingLogoUrl = Schema_exports.String.check(
47788
- Schema_exports.isMaxLength(2048),
47789
- Schema_exports.isPattern(/^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+)$/)
47788
+ Schema_exports.isMaxLength(35e4),
47789
+ Schema_exports.isPattern(
47790
+ /^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+|data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2})$/
47791
+ )
47790
47792
  );
47791
47793
  var Branding = Schema_exports.Struct({
47792
47794
  name: BrandingName,
@@ -56592,7 +56594,7 @@ var webUiText = {
56592
56594
  "shell.construction.description": "Froment Software prend forme. Le site complet sera bient\xF4t disponible.",
56593
56595
  "about.faq.label": "FAQ",
56594
56596
  "backOffice.billing.summary": "R\xE9sum\xE9",
56595
- "businessCard.defaultName": "Sacha Froment",
56597
+ "businessCard.defaultName": "Pr\xE9nom Nom",
56596
56598
  "businessCard.defaultRole": "Ing\xE9nieur logiciel",
56597
56599
  "businessCard.title": "Carte de visite",
56598
56600
  "businessCard.print": "Imprimer ou exporter en PDF",
@@ -56743,7 +56745,7 @@ var webUiText = {
56743
56745
  "shell.construction.description": "Froment Software is taking shape. The complete site will be available soon.",
56744
56746
  "about.faq.label": "FAQ",
56745
56747
  "backOffice.billing.summary": "Summary",
56746
- "businessCard.defaultName": "Sacha Froment",
56748
+ "businessCard.defaultName": "First Last",
56747
56749
  "businessCard.defaultRole": "Software engineer",
56748
56750
  "businessCard.title": "Business card",
56749
56751
  "businessCard.print": "Print or export as PDF",
@@ -62172,7 +62174,7 @@ var defaultRuntimeConfig = {
62172
62174
  invoicePdfWorker: { concurrency: 1, intervalMillis: 1e3 },
62173
62175
  database: { busyTimeoutMillis: 5e3 },
62174
62176
  http: {
62175
- maximumRequestBodyBytes: 32768,
62177
+ maximumRequestBodyBytes: 4e5,
62176
62178
  maximumBankImportBodyBytes: 3001024,
62177
62179
  maximumSupplierInvoiceAnalysisBodyBytes: 8001024,
62178
62180
  maximumSupplierInvoiceEvidenceBodyBytes: 8001024
@@ -62331,7 +62333,7 @@ var RuntimeConfig = {
62331
62333
  busyTimeoutMillis: positiveInt("DATABASE_BUSY_TIMEOUT_MILLIS", 5e3)
62332
62334
  }),
62333
62335
  http: Config_exports.all({
62334
- maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 32768),
62336
+ maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 4e5),
62335
62337
  maximumBankImportBodyBytes: positiveInt(
62336
62338
  "HTTP_MAXIMUM_BANK_IMPORT_BODY_BYTES",
62337
62339
  defaultRuntimeConfig.http.maximumBankImportBodyBytes
@@ -64956,11 +64958,11 @@ var make23 = Effect_exports.gen(function* () {
64956
64958
  `insert into company_settings (id, jurisdiction, functional_currency, accounting_initialized, fiscal_year_start_month, fiscal_year_start_day, default_fiscal_year_months, enabled_modules, retention_years, version, updated_at) values (1, 'FR', 'EUR', 1, 1, 1, 12, '["sales","purchasing","banking","accounting","tax","ai","demonstration"]', 10, 1, ?)`
64957
64959
  ).run(now3);
64958
64960
  sqlite.prepare(
64959
- "insert into branding_settings (id, name, logo_url, version) values (1, 'Atelier N\xE9bula', null, 0)"
64960
- ).run();
64961
+ "insert into branding_settings (id, name, logo_url, version) values (1, ?, null, 0)"
64962
+ ).run(runtime.branding.name);
64961
64963
  sqlite.prepare(
64962
- "insert into issuer_settings (id, display_name, address_line_1, address_line_2, postal_code, city, country, email, phone, registration_number, vat_number, iban, bic, version, updated_at) values (1, 'Atelier N\xE9bula', '18 rue des Forges', '', '44000', 'Nantes', 'France', 'bonjour@atelier-nebula.invalid', '+33251840024', '84372860100019', 'FR32843728601', 'FR7630006000011234567890189', 'AGRIFRPP', 1, ?)"
64963
- ).run(now3);
64964
+ "insert into issuer_settings (id, display_name, address_line_1, address_line_2, postal_code, city, country, email, phone, registration_number, vat_number, iban, bic, version, updated_at) values (1, ?, '18 rue des Forges', '', '44000', 'Nantes', 'France', 'bonjour@demo.invalid', '+33251840024', '84372860100019', 'FR32843728601', 'FR7630006000011234567890189', 'AGRIFRPP', 1, ?)"
64965
+ ).run(runtime.branding.name, now3);
64964
64966
  sqlite.prepare(
64965
64967
  "insert into supplier_invoice_analysis_settings (id, adapter) values (1, 'local')"
64966
64968
  ).run();
@@ -65022,13 +65024,13 @@ var make23 = Effect_exports.gen(function* () {
65022
65024
  const year = new Date(now3).getUTCFullYear();
65023
65025
  const isoNow = DateTime_exports.formatIso(DateTime_exports.makeUnsafe(now3));
65024
65026
  const issuer = {
65025
- displayName: "Atelier N\xE9bula",
65027
+ displayName: runtime.branding.name,
65026
65028
  addressLine1: "18 rue des Forges",
65027
65029
  addressLine2: "",
65028
65030
  postalCode: "44000",
65029
65031
  city: "Nantes",
65030
65032
  country: "France",
65031
- email: "bonjour@atelier-nebula.invalid",
65033
+ email: "bonjour@demo.invalid",
65032
65034
  phone: "+33251840024",
65033
65035
  registrationNumber: "84372860100019",
65034
65036
  vatNumber: "FR32843728601"
package/dist/main.cjs CHANGED
@@ -86886,8 +86886,10 @@ var DemoFailure = Schema_exports.Union([
86886
86886
  // ../contracts/src/company/branding.ts
86887
86887
  var BrandingName = Schema_exports.String.check(Schema_exports.isMinLength(1), Schema_exports.isMaxLength(120));
86888
86888
  var BrandingLogoUrl = Schema_exports.String.check(
86889
- Schema_exports.isMaxLength(2048),
86890
- Schema_exports.isPattern(/^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+)$/)
86889
+ Schema_exports.isMaxLength(35e4),
86890
+ Schema_exports.isPattern(
86891
+ /^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+|data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2})$/
86892
+ )
86891
86893
  );
86892
86894
  var Branding = Schema_exports.Struct({
86893
86895
  name: BrandingName,
@@ -105240,7 +105242,7 @@ var webUiText = {
105240
105242
  "shell.construction.description": "Froment Software prend forme. Le site complet sera bient\xF4t disponible.",
105241
105243
  "about.faq.label": "FAQ",
105242
105244
  "backOffice.billing.summary": "R\xE9sum\xE9",
105243
- "businessCard.defaultName": "Sacha Froment",
105245
+ "businessCard.defaultName": "Pr\xE9nom Nom",
105244
105246
  "businessCard.defaultRole": "Ing\xE9nieur logiciel",
105245
105247
  "businessCard.title": "Carte de visite",
105246
105248
  "businessCard.print": "Imprimer ou exporter en PDF",
@@ -105391,7 +105393,7 @@ var webUiText = {
105391
105393
  "shell.construction.description": "Froment Software is taking shape. The complete site will be available soon.",
105392
105394
  "about.faq.label": "FAQ",
105393
105395
  "backOffice.billing.summary": "Summary",
105394
- "businessCard.defaultName": "Sacha Froment",
105396
+ "businessCard.defaultName": "First Last",
105395
105397
  "businessCard.defaultRole": "Software engineer",
105396
105398
  "businessCard.title": "Business card",
105397
105399
  "businessCard.print": "Print or export as PDF",
@@ -110871,7 +110873,7 @@ var defaultRuntimeConfig = {
110871
110873
  invoicePdfWorker: { concurrency: 1, intervalMillis: 1e3 },
110872
110874
  database: { busyTimeoutMillis: 5e3 },
110873
110875
  http: {
110874
- maximumRequestBodyBytes: 32768,
110876
+ maximumRequestBodyBytes: 4e5,
110875
110877
  maximumBankImportBodyBytes: 3001024,
110876
110878
  maximumSupplierInvoiceAnalysisBodyBytes: 8001024,
110877
110879
  maximumSupplierInvoiceEvidenceBodyBytes: 8001024
@@ -111030,7 +111032,7 @@ var RuntimeConfig = {
111030
111032
  busyTimeoutMillis: positiveInt("DATABASE_BUSY_TIMEOUT_MILLIS", 5e3)
111031
111033
  }),
111032
111034
  http: Config_exports.all({
111033
- maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 32768),
111035
+ maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 4e5),
111034
111036
  maximumBankImportBodyBytes: positiveInt(
111035
111037
  "HTTP_MAXIMUM_BANK_IMPORT_BODY_BYTES",
111036
111038
  defaultRuntimeConfig.http.maximumBankImportBodyBytes
@@ -166506,11 +166508,11 @@ var make82 = Effect_exports.gen(function* () {
166506
166508
  `insert into company_settings (id, jurisdiction, functional_currency, accounting_initialized, fiscal_year_start_month, fiscal_year_start_day, default_fiscal_year_months, enabled_modules, retention_years, version, updated_at) values (1, 'FR', 'EUR', 1, 1, 1, 12, '["sales","purchasing","banking","accounting","tax","ai","demonstration"]', 10, 1, ?)`
166507
166509
  ).run(now3);
166508
166510
  sqlite.prepare(
166509
- "insert into branding_settings (id, name, logo_url, version) values (1, 'Atelier N\xE9bula', null, 0)"
166510
- ).run();
166511
+ "insert into branding_settings (id, name, logo_url, version) values (1, ?, null, 0)"
166512
+ ).run(runtime2.branding.name);
166511
166513
  sqlite.prepare(
166512
- "insert into issuer_settings (id, display_name, address_line_1, address_line_2, postal_code, city, country, email, phone, registration_number, vat_number, iban, bic, version, updated_at) values (1, 'Atelier N\xE9bula', '18 rue des Forges', '', '44000', 'Nantes', 'France', 'bonjour@atelier-nebula.invalid', '+33251840024', '84372860100019', 'FR32843728601', 'FR7630006000011234567890189', 'AGRIFRPP', 1, ?)"
166513
- ).run(now3);
166514
+ "insert into issuer_settings (id, display_name, address_line_1, address_line_2, postal_code, city, country, email, phone, registration_number, vat_number, iban, bic, version, updated_at) values (1, ?, '18 rue des Forges', '', '44000', 'Nantes', 'France', 'bonjour@demo.invalid', '+33251840024', '84372860100019', 'FR32843728601', 'FR7630006000011234567890189', 'AGRIFRPP', 1, ?)"
166515
+ ).run(runtime2.branding.name, now3);
166514
166516
  sqlite.prepare(
166515
166517
  "insert into supplier_invoice_analysis_settings (id, adapter) values (1, 'local')"
166516
166518
  ).run();
@@ -166572,13 +166574,13 @@ var make82 = Effect_exports.gen(function* () {
166572
166574
  const year = new Date(now3).getUTCFullYear();
166573
166575
  const isoNow = DateTime_exports.formatIso(DateTime_exports.makeUnsafe(now3));
166574
166576
  const issuer = {
166575
- displayName: "Atelier N\xE9bula",
166577
+ displayName: runtime2.branding.name,
166576
166578
  addressLine1: "18 rue des Forges",
166577
166579
  addressLine2: "",
166578
166580
  postalCode: "44000",
166579
166581
  city: "Nantes",
166580
166582
  country: "France",
166581
- email: "bonjour@atelier-nebula.invalid",
166583
+ email: "bonjour@demo.invalid",
166582
166584
  phone: "+33251840024",
166583
166585
  registrationNumber: "84372860100019",
166584
166586
  vatNumber: "FR32843728601"
package/dist/migrate.cjs CHANGED
@@ -52430,8 +52430,10 @@ var import_node_path2 = require("node:path");
52430
52430
  // ../contracts/src/company/branding.ts
52431
52431
  var BrandingName = Schema_exports.String.check(Schema_exports.isMinLength(1), Schema_exports.isMaxLength(120));
52432
52432
  var BrandingLogoUrl = Schema_exports.String.check(
52433
- Schema_exports.isMaxLength(2048),
52434
- Schema_exports.isPattern(/^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+)$/)
52433
+ Schema_exports.isMaxLength(35e4),
52434
+ Schema_exports.isPattern(
52435
+ /^(?:\/(?!\/)[^\s]*|https:\/\/[^\s]+|data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2})$/
52436
+ )
52435
52437
  );
52436
52438
  var Branding = Schema_exports.Struct({
52437
52439
  name: BrandingName,
@@ -55639,7 +55641,7 @@ var webUiText = {
55639
55641
  "shell.construction.description": "Froment Software prend forme. Le site complet sera bient\xF4t disponible.",
55640
55642
  "about.faq.label": "FAQ",
55641
55643
  "backOffice.billing.summary": "R\xE9sum\xE9",
55642
- "businessCard.defaultName": "Sacha Froment",
55644
+ "businessCard.defaultName": "Pr\xE9nom Nom",
55643
55645
  "businessCard.defaultRole": "Ing\xE9nieur logiciel",
55644
55646
  "businessCard.title": "Carte de visite",
55645
55647
  "businessCard.print": "Imprimer ou exporter en PDF",
@@ -55790,7 +55792,7 @@ var webUiText = {
55790
55792
  "shell.construction.description": "Froment Software is taking shape. The complete site will be available soon.",
55791
55793
  "about.faq.label": "FAQ",
55792
55794
  "backOffice.billing.summary": "Summary",
55793
- "businessCard.defaultName": "Sacha Froment",
55795
+ "businessCard.defaultName": "First Last",
55794
55796
  "businessCard.defaultRole": "Software engineer",
55795
55797
  "businessCard.title": "Business card",
55796
55798
  "businessCard.print": "Print or export as PDF",
@@ -61219,7 +61221,7 @@ var defaultRuntimeConfig = {
61219
61221
  invoicePdfWorker: { concurrency: 1, intervalMillis: 1e3 },
61220
61222
  database: { busyTimeoutMillis: 5e3 },
61221
61223
  http: {
61222
- maximumRequestBodyBytes: 32768,
61224
+ maximumRequestBodyBytes: 4e5,
61223
61225
  maximumBankImportBodyBytes: 3001024,
61224
61226
  maximumSupplierInvoiceAnalysisBodyBytes: 8001024,
61225
61227
  maximumSupplierInvoiceEvidenceBodyBytes: 8001024
@@ -61378,7 +61380,7 @@ var RuntimeConfig = {
61378
61380
  busyTimeoutMillis: positiveInt("DATABASE_BUSY_TIMEOUT_MILLIS", 5e3)
61379
61381
  }),
61380
61382
  http: Config_exports.all({
61381
- maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 32768),
61383
+ maximumRequestBodyBytes: positiveInt("HTTP_MAXIMUM_REQUEST_BODY_BYTES", 4e5),
61382
61384
  maximumBankImportBodyBytes: positiveInt(
61383
61385
  "HTTP_MAXIMUM_BANK_IMPORT_BODY_BYTES",
61384
61386
  defaultRuntimeConfig.http.maximumBankImportBodyBytes
@@ -0,0 +1 @@
1
+ import{$t as ZC,A as Gy,D as Fy,Dn as g,E as Ft,Gn as k_,Ir as wp,It as Us,Jr as zS,K as Ke,M as H_,Nr as vd,Sr as rv,Tn as fd,V as Iy,Wn as kS,Wr as y_,dr as pe$1,ft as Ol,l as A_,lt as OS,pr as qS,rr as nv,ut as O_,vt as Py,w as Fb,xt as Qg,z as Ip,zn as j_}from"./chunk-BAHiFuUo.js";import{a as T,h as Ne,m as Ie,o as U,r as N,v as Dt,y as G}from"./main-LXYWXFW4.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{Ni as WT}from"./chunk-D8Ui_APT.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as p}from"./chunk-BHEFFEGN.js";import"./chunk-BzUDWIzm.js";import{t as P$1}from"./chunk-CkRw7h0_.js";import{t as E}from"./chunk-DhpMFMQw.js";import{t as l}from"./chunk-Cm2UNqwE.js";import"./chunk-DjewtV43.js";import{t as D}from"./chunk-BwFjLr9D2.js";import"./chunk-C6M6lCrw2.js";import"./chunk-DVbkiKVh2.js";import{i as f,n as O,o as x,r as R}from"./chunk-Qweefwro2.js";import{t as f$1}from"./chunk-BVXF-FYe2.js";import{n as m,t as l$1}from"./chunk-DJwuZjJg2.js";var P=()=>({dateStyle:`medium`,timeStyle:`short`});var de=e=>[`/invoices`,e];var le=()=>[`integration.configure`,`invoice.read`];function se(e,r){if(e&1&&(Us(0,`span`,3),y_(1),fd()),e&2){let n=qS();ZC(),nv(n.i18n.t(n.statusLabel(r.status)))}}function pe(e,r){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let n=qS();ZC(),nv(n.i18n.t(`checkout.paused`))}}function ue(e,r){e&1&&(Us(0,`p`),y_(1),fd()),e&2&&(ZC(),nv(r.invoiceNumber))}function me(e,r){if(e&1&&(Us(0,`p`,6),y_(1),fd()),e&2){let n=qS();ZC(),nv(n.i18n.t(n.historyLabel()))}}function ge(e,r){if(e&1&&(Us(0,`p`,7),y_(1),fd()),e&2){let n=qS();ZC(),nv(n.i18n.t(r))}}function he(e,r){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let n=qS(2);ZC(),nv(n.i18n.t(r))}}function _e(e,r){if(e&1&&(Us(0,`dt`),y_(1),fd(),Us(2,`dd`),y_(3),j_(4,`localizedDate`),fd()),e&2){let n=qS(2);ZC(),nv(n.i18n.t(`checkout.nextAttempt`)),ZC(2),vd(` `,H_(4,2,r,n.i18n.language(),O_(6,P)),` `)}}function ye(e,r){if(e&1){let n=zS();Us(0,`button`,15),Gy(`click`,function(){Ip(n);return wp(qS(3).reconcile())}),y_(1),fd()}if(e&2){let n=qS(3);Fy(`disabled`,n.reconciling()),ZC(),vd(` `,n.i18n.t(`checkout.reconcile`),` `)}}function fe(e,r){e&1&&Iy(0,ye,2,2,`button`,14),e&2&&Fy(`appCan`,O_(1,le))}function Ce(e,r){if(e&1&&(Us(0,`a`,11),y_(1),fd()),e&2){let n=qS(),s=qS();Fy(`href`,n.checkoutUrl,Qg),ZC(),nv(s.i18n.t(`checkout.openStripe`))}}function xe(e,r){if(e&1&&(Us(0,`p`),y_(1),fd()),e&2){let n=qS(3);ZC(),nv(n.i18n.t(`checkout.reconcileHint`))}}function ve(e,r){e&1&&Iy(0,xe,2,1,`p`,16),e&2&&Fy(`appCan`,O_(1,le))}function ke(e,r){if(e&1&&(Us(0,`p`),y_(1),fd()),e&2){let n=qS(2);ZC(),nv(n.i18n.t(`checkout.testCard`))}}function be(e,r){if(e&1&&(OS(0,he,2,1,`p`,5),Us(1,`dl`)(2,`dt`),y_(3),fd(),Us(4,`dd`),y_(5),fd(),Us(6,`dt`),y_(7),fd(),Us(8,`dd`),y_(9),fd(),Us(10,`dt`),y_(11),fd(),Us(12,`dd`),y_(13),j_(14,`localizedDate`),fd(),Us(15,`dt`),y_(16),fd(),Us(17,`dd`),y_(18),j_(19,`localizedDate`),fd(),OS(20,_e,5,7),fd(),Us(21,`div`,8),OS(22,fe,1,2,`button`,9),Us(23,`a`,10),y_(24),fd(),OS(25,Ce,2,2,`a`,11),fd(),OS(26,ve,1,2,`p`),OS(27,ke,2,1,`p`),Us(28,`p`),y_(29),fd(),Us(30,`section`,12)(31,`h2`,13),y_(32),fd(),Us(33,`dl`)(34,`dt`),y_(35),fd(),Us(36,`dd`)(37,`code`),y_(38),fd()(),Us(39,`dt`),y_(40),fd(),Us(41,`dd`)(42,`code`),y_(43),fd()()()()),e&2){let n,s,d=r,l=qS();kS((n=d.error)?0:-1,n),ZC(3),nv(l.i18n.t(`checkout.amount`)),ZC(2),nv(l.money(d.amountCents)),ZC(2),nv(l.i18n.t(`checkout.attempts`)),ZC(2),nv(d.attempts),ZC(2),nv(l.i18n.t(`checkout.expiresAt`)),ZC(2),vd(` `,H_(14,22,d.expiresAt,l.i18n.language(),O_(30,P)),` `),ZC(3),nv(l.i18n.t(`checkout.updatedAt`)),ZC(2),vd(` `,H_(19,26,d.updatedAt,l.i18n.language(),O_(31,P)),` `),ZC(2),kS((s=d.nextAttemptAt)?20:-1,s),ZC(2),kS(l.canReconcile(d)?22:-1),ZC(),Fy(`routerLink`,k_(32,de,d.request.invoiceId)),ZC(),nv(l.i18n.t(`checkout.viewInvoice`)),ZC(),kS(l.canOpen(d)?25:-1),ZC(),kS(l.canReconcile(d)?26:-1),ZC(),kS(l.canOpen(d)?27:-1),ZC(2),nv(l.i18n.t(`checkout.returnHint`)),ZC(3),nv(l.i18n.t(`checkout.identifiers`)),ZC(3),nv(l.i18n.t(`checkout.requestId`)),ZC(3),nv(d.request.requestId),ZC(2),nv(l.i18n.t(`checkout.sessionId`)),ZC(3),nv(d.sessionId??`—`)}}var ce=class e{authentication=g(E);confirmation=g(P$1);reconcileAllowed=Ft(()=>this.authentication.can(`integration.configure`)&&this.authentication.can(`invoice.read`));i18n=g(Ie);history=g(f$1);api=g(f);reconciling=Ke(!1);reconcileError=Ke(void 0);reconcileErrorMessage=Ft(()=>O(this.reconcileError()));canReconcile=WT;route=g(G);params=T(this.route.paramMap,{requireSync:!0});queryParams=T(this.route.queryParamMap,{requireSync:!0});testParams=Ft(()=>l$1(`stripe`,this.queryParams()));tabs=Ft(()=>m(`stripe`,this.i18n,this.params().get(`requestId`)));current=Ft(()=>this.history.operations().find(r=>r.request.requestId===this.params().get(`requestId`)));statusLabel=x;canOpen=R;historyLabel=Ft(()=>this.history.loaded()?`checkout.requestNotFound`:this.history.paused()?`checkout.historyUnknown`:`checkout.historyLoading`);destroyRef=g(pe$1);constructor(){Ol(()=>{this.history.watch(()=>this.reconciling()).pipe(U(this.destroyRef)).subscribe()})}async reconcile(){let r=this.current(),n=this.authentication.account();if(!(!n||!this.reconcileAllowed()||!r||!WT(r)||this.reconciling())){this.reconciling.set(!0),this.reconcileError.set(void 0);try{if(!await this.confirmation.request(this.i18n.t(`checkout.reconcileHint`),{acceptLabel:this.i18n.t(`checkout.reconcile`)})||this.destroyRef.destroyed)return;let s=await this.authentication.refreshAccount(),d=this.current();if(this.destroyRef.destroyed||s?.userId!==n.userId||!this.reconcileAllowed()||!d||!WT(d)||d.request.requestId!==r.request.requestId)return;this.history.invalidate();let l=await this.api.reconcile(r.request.requestId);if(this.destroyRef.destroyed)return;l.success?this.history.record(l.result):this.reconcileError.set(l.code)}catch{this.destroyRef.destroyed||this.reconcileError.set(`checkout.error`)}finally{this.destroyRef.destroyed||(this.reconciling.set(!1),this.reconcileAllowed()&&this.history.refresh())}}}money(r){return Ne(r,this.i18n.language(),`EUR`)}static ɵfac=function(n){return new(n||e)};static ɵcmp=Fb({type:e,selectors:[[`app-checkout-detail`]],hostAttrs:[1,`page-container`],features:[A_([f$1])],decls:15,vars:14,consts:[[1,`detail-page`,`form-page`],[`layout`,`stacked`],[`pageBack`,``,`routerLink`,`/services/stripe/tests`,3,`queryParams`],[`appBadge`,``,`pageBadges`,``,`role`,`status`],[3,`label`,`tabs`,`preserveQuery`,`preserveFragment`],[`appNotice`,``,`variant`,`warning`],[`role`,`status`],[`appNotice`,``,`variant`,`danger`],[1,`spacer-x-4`],[`appButton`,``,`type`,`button`,3,`disabled`],[3,`routerLink`],[`appLinkButton`,``,`variant`,`primary`,`rel`,`noreferrer noopener`,`target`,`_blank`,3,`href`],[`aria-labelledby`,`checkout-identifiers-title`,1,`identifiers`],[`id`,`checkout-identifiers-title`],[`appButton`,``,`type`,`button`,3,`disabled`,`click`,4,`appCan`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[4,`appCan`]],template:function(n,s){if(n&1&&(Us(0,`section`,0)(1,`app-page-header`,1)(2,`a`,2),y_(3),fd(),Us(4,`h1`),y_(5),fd(),Us(6,`p`),y_(7),fd(),OS(8,se,2,1,`span`,3),fd(),Py(9,`app-tabs`,4),OS(10,pe,2,1,`p`,5),OS(11,ue,2,1,`p`)(12,me,2,1,`p`,6),OS(13,ge,2,1,`p`,7),OS(14,be,44,34),fd()),n&2){let d,l,O,I;ZC(2),Fy(`queryParams`,s.testParams()),ZC(),nv(s.i18n.t(`configurationWorkspace.backTests`)),ZC(2),rv(``,s.i18n.t(`connections.stripe`),` — `,s.i18n.t(`configurationWorkspace.testDetail`)),ZC(2),nv(s.i18n.t(`checkout.historyHint`)),ZC(),kS((d=s.current())?8:-1,d),ZC(),Fy(`label`,s.i18n.t(`configurationWorkspace.services`))(`tabs`,s.tabs())(`preserveQuery`,!0)(`preserveFragment`,!0),ZC(),kS(s.history.paused()?10:-1),ZC(),kS((l=s.current())?11:12,l),ZC(2),kS((O=s.reconcileErrorMessage())?13:-1,O),ZC(),kS((I=s.current())?14:-1,I)}},dependencies:[l,N,d,k,Dt,g$1,D,p],styles:[`.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}}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] > section[_ngcontent-%COMP%]:not(.detail-page){padding:var(--%NS%space-6) var(--%NS%page-x)}section[_ngcontent-%COMP%]:not(.detail-page) > *[_ngcontent-%COMP%] + *[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-6)}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-xl)}h3[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}p[_ngcontent-%COMP%]{text-wrap:pretty}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--%NS%space-4)}button[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{overflow-wrap:anywhere}button[_ngcontent-%COMP%]{white-space:normal}code[_ngcontent-%COMP%], dd[_ngcontent-%COMP%]{overflow-wrap:anywhere}dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);gap:var(--%NS%space-2) var(--%NS%space-4)}dt[_ngcontent-%COMP%]{font-weight:600}dd[_ngcontent-%COMP%]{margin:0}.ds-panel[_ngcontent-%COMP%]{padding:var(--%NS%space-4)}.ds-panel[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] + *[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-3)}@media(max-width:40rem){dl[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}dd[_ngcontent-%COMP%] + dt[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-2)}}p[_ngcontent-%COMP%]{max-inline-size:none}form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4);justify-items:start}.field[_ngcontent-%COMP%]{width:100%}.field-error[_ngcontent-%COMP%]:empty{display:none}tbody[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:inherit;color:inherit;font-size:inherit;text-transform:none}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{vertical-align:top}.identifiers[_ngcontent-%COMP%]{color:var(--%NS%color-muted);font-size:var(--%NS%text-sm)}.identifiers[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-base)}.identifiers[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-3)}`]})};export{ce as CheckoutDetail};
@@ -1 +1 @@
1
- import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import{Ia as a$1}from"./chunk-D5qmP2Wu.js";function a(e){return Me.getOrUndefined(wu.decodeUnknownOption(a$1)(e))}var f=[`draft`,`sent`,`rejected`,`expired`,`archived`,`cancelled`,`ordered`,`invoiceDraft`,`issued`,`paid`,`void`];var c=wu.Literals([`none`,`reference-asc`,`reference-desc`,`title-asc`,`title-desc`,`client-asc`,`client-desc`,`stage-asc`,`stage-desc`,`amount-asc`,`amount-desc`,`updated-asc`,`updated-desc`]);function d(e){return Me.getOrElse(wu.decodeUnknownOption(c)(e.get(`sort`)),()=>`none`)}function s(e){return{q:(e.get(`q`)??``).slice(0,120),stage:Me.getOrElse(wu.decodeUnknownOption(wu.Literals(f))(e.get(`stage`)),()=>``),client:a(e.get(`client`))??``}}function p(e){return Me.getOrElse(wu.decodeUnknownOption(wu.Literals([`attention`,`active`,`completed`,`all`]))(e.get(`view`)),()=>`attention`)}function x(e){let i=s(e),r=d(e);return{q:i.q||void 0,stage:i.stage||void 0,client:i.client||void 0,view:e.has(`view`)?p(e):void 0,sort:r===`none`?void 0:r}}export{x as n,a as t};
1
+ import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import{Ia as a$1}from"./chunk-D8Ui_APT.js";function a(e){return Me.getOrUndefined(wu.decodeUnknownOption(a$1)(e))}var f=[`draft`,`sent`,`rejected`,`expired`,`archived`,`cancelled`,`ordered`,`invoiceDraft`,`issued`,`paid`,`void`];var c=wu.Literals([`none`,`reference-asc`,`reference-desc`,`title-asc`,`title-desc`,`client-asc`,`client-desc`,`stage-asc`,`stage-desc`,`amount-asc`,`amount-desc`,`updated-asc`,`updated-desc`]);function d(e){return Me.getOrElse(wu.decodeUnknownOption(c)(e.get(`sort`)),()=>`none`)}function s(e){return{q:(e.get(`q`)??``).slice(0,120),stage:Me.getOrElse(wu.decodeUnknownOption(wu.Literals(f))(e.get(`stage`)),()=>``),client:a(e.get(`client`))??``}}function p(e){return Me.getOrElse(wu.decodeUnknownOption(wu.Literals([`attention`,`active`,`completed`,`all`]))(e.get(`view`)),()=>`attention`)}function x(e){let i=s(e),r=d(e);return{q:i.q||void 0,stage:i.stage||void 0,client:i.client||void 0,view:e.has(`view`)?p(e):void 0,sort:r===`none`?void 0:r}}export{x as n,a as t};
@@ -0,0 +1 @@
1
+ import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,D as Fy,Dn as g,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_,dr as pe$1,ft as Ol,lt as OS,mr as qT,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$1,m as Ie,o as U,r as N,v as Dt,y as G}from"./main-LXYWXFW4.js";import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{jt as Ga,sl as ry}from"./chunk-D8Ui_APT.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import{t as u}from"./chunk-Dc8-8Og_.js";import{i as R,n as E}from"./chunk-C1gYDta1.js";import"./chunk-BzUDWIzm.js";import{t as P}from"./chunk-CkRw7h0_.js";import"./chunk-CP-AnFGa.js";import"./chunk-DwSL7UNj.js";import"./chunk-CReShp-B.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-CczD0yXn2.js";import"./chunk-B4KnJ14M2.js";import"./chunk-CXHCUTDs2.js";import"./chunk-C_4qOSvi2.js";import{t as O}from"./chunk-B1Kpw1um.js";import{n as l$1,t as i}from"./chunk-BEqSiNum.js";import{t as Q}from"./chunk-BPA6_4Vt.js";import{t as g$2}from"./chunk-D8VZRHVx.js";import{t as Of}from"./chunk-B_pcpccF.js";function de(i,t){if(i&1&&(Us(0,`p`,4),y_(1),fd()),i&2){let e=qS();ZC(),nv(e.i18n.t(t))}}function me(i,t){if(i&1&&(Us(0,`p`,5),y_(1),fd()),i&2){let e=qS();ZC(),nv(e.i18n.t(`integrations.loading`))}}function pe(i,t){if(i&1){let e=zS();Us(0,`div`)(1,`button`,8),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(2),fd()()}if(i&2){let e=qS();ZC(2),nv(e.i18n.t(`integrations.reload`))}}function ce(i,t){if(i&1&&(Us(0,`p`,6),y_(1),fd()),i&2){let e=qS();ZC(),vd(` `,e.i18n.t(e.archived()?`emailsWorkspace.templateArchived`:`emailsWorkspace.templateSaved`),` `)}}function ue(i,t){if(i&1&&y_(0),i&2)vd(` `,qS(2).i18n.t(`emailsWorkspace.shortTextInvalid`),` `)}function ye(i,t){if(i&1&&y_(0),i&2)vd(` `,qS(3).i18n.t(`emailsWorkspace.bodyInvalid`),` `)}function fe(i,t){if(i&1&&(Us(0,`label`,10),y_(1),Py(2,`textarea`,21),qT(),Us(3,`span`,22),OS(4,ye,1,1),fd()()),i&2){let e=qS(2);ZC(),nv(e.i18n.t(`emails.body`)),ZC(),Fy(`formField`,e.templateForm.body),ky(`aria-invalid`,e.invalid(`body`)),ZT(),ZC(2),kS(e.invalid(`body`)?4:-1)}}function ge(i,t){if(i&1&&y_(0),i&2)vd(` `,qS(3).i18n.t(`emailsWorkspace.bodyInvalid`),` `)}function be(i,t){if(i&1&&(Py(0,`app-document-text-editor`,23),qT(),Us(1,`span`,22),OS(2,ge,1,1),fd()),i&2){let e=qS(2);Fy(`label`,e.i18n.t(`emails.body`))(`formField`,e.templateForm.body)(`presentation`,e.bodyPresentation())(`showPlacement`,!1),ZT(),ZC(2),kS(e.invalid(`body`)?2:-1)}}function he(i,t){if(i&1){let e=zS();Us(0,`app-action-menu`,24),Gy(`actionSelected`,function(){Ip(e);return wp(qS(2).archive())}),fd()}if(i&2){let e=qS(2);Fy(`label`,e.i18n.t(`listControls.moreActions`))(`actions`,e.templateActions())(`disabled`,e.busy())}}function ve(i,t){if(i&1){let e=zS();Us(0,`form`,9),Gy(`submit`,function(l){Ip(e);return wp(qS().save(l))}),Us(1,`label`,10),y_(2),Py(3,`input`,11),qT(),Us(4,`span`,12),OS(5,ue,1,1),fd()(),Us(6,`app-segmented-control`,13),Gy(`valueChange`,function(l){Ip(e);return wp(qS().changeBodyFormat(l))}),fd(),OS(7,fe,5,4,`label`,10)(8,be,3,5),Us(9,`section`,14)(10,`h2`,15),y_(11),fd(),Us(12,`strong`),y_(13),fd(),Py(14,`app-document-text-view`,16),fd(),Us(15,`div`,17)(16,`button`,18),y_(17),fd(),OS(18,he,1,3,`app-action-menu`,19),Us(19,`a`,20),y_(20),fd()()()}if(i&2){let e=qS();ZC(2),nv(e.i18n.t(`emails.subject`)),ZC(),Fy(`formField`,e.templateForm.subject),ky(`aria-invalid`,e.invalid(`subject`)),ZT(),ZC(2),kS(e.invalid(`subject`)?5:-1),ZC(),Fy(`label`,e.i18n.t(`emailsWorkspace.bodyFormat`))(`options`,e.bodyFormatOptions())(`value`,e.model().bodyFormat)(`disabled`,e.busy()),ZC(),kS(e.model().bodyFormat===`plain`?7:8),ZC(4),nv(e.i18n.t(`emailsWorkspace.preview`)),ZC(2),nv(e.model().subject),ZC(),Fy(`source`,e.model().body)(`presentation`,e.bodyPresentation()),ZC(2),Fy(`disabled`,e.busy()),ZC(),vd(` `,e.i18n.t(e.busy()?`emailsWorkspace.saving`:`catalog.save`)),ZC(),kS(e.template()?18:-1),ZC(),Fy(`queryParams`,e.backQuery()),ZC(),nv(e.i18n.t(`catalogWorkspace.cancel`))}}var se=class i$1{i18n=g(Ie);api=g(u);route=g(G);router=g(ue$1);destroyRef=g(pe$1);confirmation=g(P);state=Ke(`loading`);busy=Ke(!1);confirming=Ke(!1);completed=Ke(!1);archived=Ke(!1);formatChanged=Ke(!1);error=Ke(void 0);template=Ke(void 0);titleLabel=Ft(()=>this.template()?`emailsWorkspace.editTemplate`:`emailsWorkspace.newTemplate`);templateActions=Ft(()=>[{id:`archive`,label:this.i18n.t(`emailDraft.archive`),danger:!0}]);model=Ke({subject:``,body:``,bodyFormat:`plain`});bodyPresentation=Ft(()=>i(this.model().bodyFormat));bodyFormatOptions=Ft(()=>[{value:`plain`,label:this.i18n.t(`emailsWorkspace.plainText`)},{value:`blocks`,label:this.i18n.t(`emailsWorkspace.formattedText`)}]);templateForm=nr(this.model,t=>{an(t,()=>this.busy()||this.completed()||this.state()!==`ready`),gn(t.subject),mn(t.subject,/\S/),cn(t.subject,160),gn(t.body),mn(t.body,/\S/),cn(t.body,2e4)});requestId;generation=0;constructor(){Ol(()=>this.route.paramMap.pipe(U(this.destroyRef)).subscribe(()=>{this.load()}))}backQuery(){return R(E(this.route.snapshot.queryParamMap))}invalid(t){return this.templateForm[t]().touched()&&this.templateForm[t]().invalid()}async canDeactivate(){return!this.busy()&&!this.confirming()&&(!this.templateForm().dirty()&&!this.formatChanged()||await this.confirmation.request(this.i18n.t(`emailsWorkspace.unsavedTemplate`)))}preventUnload(t){(this.busy()||this.confirming()||this.templateForm().dirty()||this.formatChanged())&&t.preventDefault()}async load(){let t=++this.generation;this.state.set(`loading`),this.error.set(void 0),this.template.set(void 0),this.completed.set(!1),this.archived.set(!1),this.formatChanged.set(!1),this.model.set({subject:``,body:``,bodyFormat:`plain`}),this.templateForm().reset(),this.requestId=void 0;let e=this.route.snapshot.paramMap.get(`templateId`);if(e===null){this.state.set(`ready`);return}if(!wu.is(Ga)(e)){this.error.set(`email_template.not_found`),this.state.set(`error`);return}try{let n=await this.api.list();if(this.destroyRef.destroyed||t!==this.generation)return;if(!n.success){this.error.set(n.code),this.state.set(`error`);return}let l=n.result.find(f=>f.id===e);if(!l){this.error.set(`email_template.not_found`),this.state.set(`error`);return}this.template.set(l),this.model.set({subject:l.subject,body:l.body,bodyFormat:l.bodyFormat}),this.templateForm().reset(),this.state.set(`ready`)}catch{!this.destroyRef.destroyed&&t===this.generation&&(this.error.set(`emailTemplate.error`),this.state.set(`error`))}}changeBodyFormat(t){this.busy()||this.completed()||this.state()!==`ready`||(this.model.update(e=>m(l({},e),{body:l$1(e.body,e.bodyFormat,t),bodyFormat:t})),this.formatChanged.set(!0))}save(t){if(t.preventDefault(),!(this.busy()||this.completed()||this.state()!==`ready`)){this.templateForm().markAsTouched();for(let e of[`subject`,`body`])if(this.templateForm[e]().invalid()){this.templateForm[e]().focusBoundControl();return}or(this.templateForm,async()=>{let e=wu.decodeUnknownOption(ry)(m(l({},this.model()),{expectedVersion:this.template()?.version??0}));if(Me.isNone(e)){this.error.set(`emails.invalid`);return}this.requestId??=this.template()?.id??crypto.randomUUID(),this.busy.set(!0),this.error.set(void 0);try{let n=await this.api.save(this.requestId,e.value);if(!n.success){this.error.set(n.code);return}this.template.set(n.result),this.formatChanged.set(!1),this.templateForm().reset(),this.completed.set(!0)}catch{this.error.set(`emailTemplate.error`)}finally{this.busy.set(!1)}this.completed()&&await this.router.navigate([`/emails/templates`],{queryParams:this.backQuery()})})}}async archive(){let t=this.template();if(!(!t||this.busy()||this.confirming()||this.completed())){this.confirming.set(!0);try{if(!await this.confirmation.request(this.i18n.t(`emailTemplate.archiveConfirm`)))return}finally{this.confirming.set(!1)}if(!this.destroyRef.destroyed){this.busy.set(!0),this.error.set(void 0);try{let e=await this.api.archive(t);e.success?(this.archived.set(!0),this.templateForm().reset(),this.completed.set(!0)):this.error.set(e.code)}catch{this.error.set(`emailTemplate.error`)}finally{this.busy.set(!1)}this.completed()&&await this.router.navigate([`/emails/templates`],{queryParams:this.backQuery()})}}}static ɵfac=function(e){return new(e||i$1)};static ɵcmp=Fb({type:i$1,selectors:[[`app-email-template-editor`]],hostAttrs:[1,`page-container`],hostBindings:function(e,n){e&1&&Gy(`beforeunload`,function(f){return n.preventUnload(f)},Zw)},decls:13,vars:6,consts:[[`aria-labelledby`,`template-title`,1,`detail-page`,`form-page`],[`layout`,`stacked`],[`pageBack`,``,`routerLink`,`/emails/templates`,3,`queryParams`],[`id`,`template-title`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`role`,`status`],[`appNotice`,``,`variant`,`success`,`role`,`status`],[`novalidate`,``,1,`task-form`],[`appButton`,``,`type`,`button`,3,`click`],[`novalidate`,``,1,`task-form`,3,`submit`],[1,`field`],[`id`,`template-subject`,`aria-describedby`,`template-subject-error`,1,`input`,3,`formField`],[`id`,`template-subject-error`,1,`field-error`],[`controlId`,`template-body-format`,`variant`,`default`,3,`valueChange`,`label`,`options`,`value`,`disabled`],[`aria-labelledby`,`template-preview-title`,1,`message-preview`,`preview-surface`],[`id`,`template-preview-title`],[3,`source`,`presentation`],[1,`actions`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[3,`label`,`actions`,`disabled`],[`appLinkButton`,``,`routerLink`,`/emails/templates`,3,`queryParams`],[`id`,`template-body`,`rows`,`12`,`aria-describedby`,`template-body-error`,1,`input`,3,`formField`],[`id`,`template-body-error`,1,`field-error`],[`controlId`,`template-body`,`descriptionId`,`template-body-error`,3,`label`,`formField`,`presentation`,`showPlacement`],[3,`actionSelected`,`label`,`actions`,`disabled`]],template:function(e,n){if(e&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`),y_(7),fd()(),OS(8,de,2,1,`p`,4),OS(9,me,2,1,`p`,5)(10,pe,3,1,`div`)(11,ce,2,1,`p`,6)(12,ve,21,18,`form`,7),fd()),e&2){let l;ZC(2),Fy(`queryParams`,n.backQuery()),ZC(),nv(n.i18n.t(`emailsWorkspace.backTemplates`)),ZC(2),nv(n.i18n.t(n.titleLabel())),ZC(2),nv(n.i18n.t(`emailsWorkspace.templateHint`)),ZC(),kS((l=n.error())?8:-1,l),ZC(),kS(n.state()===`loading`?9:n.state()===`error`?10:n.completed()?11:12)}},dependencies:[Q,N,Of,g$2,yn,k,g$1,Dt,O],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}}.task-form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-6);inline-size:100%}.field[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2);min-inline-size:0}.fields[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--%NS%space-4)}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--%NS%space-3);align-items:center}.muted[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}.field-error[_ngcontent-%COMP%]{color:var(--%NS%color-danger);font-size:var(--%NS%text-sm)}.field-error[_ngcontent-%COMP%]:empty{display:none}.message-body[_ngcontent-%COMP%]{white-space:pre-wrap;overflow-wrap:anywhere}.message-preview[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-3);padding:var(--%NS%space-4);background:var(--%NS%color-surface-raised)}dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--%NS%space-3) var(--%NS%space-5)}dt[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}dd[_ngcontent-%COMP%]{margin:0;overflow-wrap:anywhere}fieldset[_ngcontent-%COMP%]{border:0;padding:0;margin:0;min-inline-size:0}legend[_ngcontent-%COMP%]{padding:0;margin-block-end:var(--%NS%space-4);font-weight:700}@media(max-width:40rem){.fields[_ngcontent-%COMP%]{grid-template-columns:1fr}dl[_ngcontent-%COMP%]{grid-template-columns:1fr;gap:var(--%NS%space-2)}}.message-preview[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}`]})};export{se as EmailTemplateEditor};
@@ -1 +1 @@
1
- import{$t as ZC,A as Gy,D as Fy,Dn as g,H as JD,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Tn as fd,Wn as kS,Wr as y_,ft as Ol,lt as OS,mr as qT,o as A,ot as OD,pr as qS,rr as nv,tn as ZT,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie,n as v,r as N,t as o,v as Dt}from"./main-F7D3L737.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{n as m}from"./chunk-Dv9sNWWK.js";import{Cc as ou,Dl as tu,pa as ZC$1}from"./chunk-D5qmP2Wu.js";import"./chunk-CReShp-B.js";import{d as nr,f as or,h as yn,o as gn}from"./chunk-CSkyOfSg.js";import{t as k}from"./chunk-D5MFwK9L.js";var x=class e{http=g(OD);sessions=g(v);cookieLock=g(o);async status(){return wu.decodeUnknownSync(tu)(await JD(this.http.get(`/api/bootstrap`))).available}async create(a){return this.cookieLock.run(async()=>{let t=await m(this.http.post(`/api/bootstrap`,a),ou,ZC$1,`bootstrap.error`);return t.success&&this.sessions.set(t.result),t})}static ɵfac=function(t){return new(t||e)};static ɵprov=A({token:e,factory:e.ɵfac,providedIn:`root`})};function Q(e,a){if(e&1&&(Us(0,`p`),y_(1),fd(),Us(2,`a`,3),y_(3),fd()),e&2){let t=qS();ZC(),nv(t.i18n.t(`bootstrap.success`)),ZC(2),vd(` `,t.i18n.t(`bootstrap.login`),` `)}}function W(e,a){if(e&1&&(Us(0,`p`,4),y_(1),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.loading`))}}function X(e,a){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let t=qS(3);ZC(),nv(t.i18n.t(a))}}function Y(e,a){if(e&1){let t=zS();Us(0,`p`),y_(1),fd(),Us(2,`form`,6),Gy(`submit`,function(U){Ip(t);return wp(qS(2).create(U))}),Us(3,`label`,7),y_(4),fd(),Py(5,`input`,8),qT(),Us(6,`label`,9),y_(7),fd(),Py(8,`input`,10),qT(),Us(9,`label`,11),y_(10),fd(),Py(11,`input`,12),qT(),OS(12,X,2,1,`p`,5),Us(13,`button`,13),y_(14),fd()()}if(e&2){let t,n=qS(2);ZC(),nv(n.i18n.t(`bootstrap.intro`)),ZC(3),nv(n.i18n.t(`bootstrap.password`)),ZC(),Fy(`formField`,n.bootstrapForm.bootstrapPassword),ZT(),ZC(2),nv(n.i18n.t(`bootstrap.email`)),ZC(),Fy(`formField`,n.bootstrapForm.email),ZT(),ZC(2),nv(n.i18n.t(`bootstrap.accountPassword`)),ZC(),Fy(`formField`,n.bootstrapForm.password),ZT(),ZC(),kS((t=n.error())?12:-1,t),ZC(),Fy(`disabled`,n.pending()),ZC(),vd(` `,n.i18n.t(n.submitLabel()),` `)}}function Z(e,a){if(e&1&&(Us(0,`p`),y_(1),fd(),Us(2,`a`,14),y_(3),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.unavailable`)),ZC(2),vd(` `,t.i18n.t(`bootstrap.login`),` `)}}function $(e,a){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.error`))}}function tt(e,a){if(e&1&&OS(0,W,2,1,`p`,4)(1,Y,15,10)(2,Z,4,2)(3,$,2,1,`p`,5),e&2){let t;kS((t=qS().state())===`loading`?0:t===`available`?1:t===`unavailable`?2:t===`error`?3:-1)}}var H=class e{i18n=g(Ie);api=g(x);model=Ke({bootstrapPassword:``,email:``,password:``});bootstrapForm=nr(this.model,a=>{gn(a.bootstrapPassword),gn(a.email),gn(a.password)});state=Ke(`loading`);pending=Ke(!1);error=Ke(void 0);created=Ke(!1);constructor(){Ol(()=>{this.load()})}create(a){a.preventDefault(),or(this.bootstrapForm,async()=>{this.pending.set(!0),this.error.set(void 0);try{let t=await this.api.create(this.model());if(t.success){this.created.set(!0),this.state.set(`unavailable`);return}this.error.set(t.code),t.code===`bootstrap.unavailable`&&this.state.set(`unavailable`)}catch{this.error.set(`bootstrap.error`)}finally{this.pending.set(!1)}})}submitLabel(){return this.pending()?`bootstrap.pending`:`bootstrap.submit`}async load(){try{if(await this.api.status()){this.state.set(`available`);return}this.state.set(`unavailable`)}catch{this.state.set(`error`)}}static ɵfac=function(t){return new(t||e)};static ɵcmp=Fb({type:e,selectors:[[`app-bootstrap`]],hostAttrs:[1,`page-container`],decls:6,vars:2,consts:[[`aria-labelledby`,`bootstrap-title`,1,`bootstrap-page`],[1,`bootstrap-panel`,`ds-panel`],[`id`,`bootstrap-title`],[`appLinkButton`,``,`variant`,`primary`,`routerLink`,`/dashboard`],[`aria-live`,`polite`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[3,`submit`],[`for`,`bootstrap-password`],[`id`,`bootstrap-password`,`type`,`password`,`autocomplete`,`new-password`,`autofocus`,``,1,`input`,3,`formField`],[`for`,`bootstrap-email`],[`id`,`bootstrap-email`,`type`,`email`,`autocomplete`,`username`,1,`input`,3,`formField`],[`for`,`administrator-password`],[`id`,`administrator-password`,`type`,`password`,`autocomplete`,`new-password`,1,`input`,3,`formField`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appLinkButton`,``,`variant`,`primary`,`routerLink`,`/login`]],template:function(t,n){t&1&&(Us(0,`section`,0)(1,`div`,1)(2,`h1`,2),y_(3),fd(),OS(4,Q,4,2)(5,tt,4,1),fd()()),t&2&&(ZC(3),nv(n.i18n.t(`bootstrap.title`)),ZC(),kS(n.created()?4:5))},dependencies:[N,k,yn,Dt],styles:[`[_nghost-%COMP%]{display:block}.bootstrap-page[_ngcontent-%COMP%]{display:grid;min-height:30rem;place-items:center;padding:var(--%NS%page-header-y) var(--%NS%page-x)}.bootstrap-panel[_ngcontent-%COMP%]{width:100%;max-width:36rem;padding:var(--%NS%panel-padding)}h1[_ngcontent-%COMP%]{font-size:var(--%NS%text-2xl)}.bootstrap-panel[_ngcontent-%COMP%] > p[_ngcontent-%COMP%], form[_ngcontent-%COMP%]{margin-top:var(--%NS%space-4)}.credential[_ngcontent-%COMP%]{margin-top:var(--%NS%space-5)}.bootstrap-panel[_ngcontent-%COMP%] > [appLinkButton][_ngcontent-%COMP%]{margin-top:var(--%NS%space-6)}form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4)}label[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm);font-weight:700}[appButton][_ngcontent-%COMP%], [appLinkButton][_ngcontent-%COMP%]{justify-self:start}`]})};export{H as Bootstrap};
1
+ import{$t as ZC,A as Gy,D as Fy,Dn as g,H as JD,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Tn as fd,Wn as kS,Wr as y_,ft as Ol,lt as OS,mr as qT,o as A,ot as OD,pr as qS,rr as nv,tn as ZT,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{m as Ie,n as v,r as N,t as o,v as Dt}from"./main-LXYWXFW4.js";import{wi as wu}from"./chunk-BAe_07VM.js";import{n as m}from"./chunk-Dv9sNWWK.js";import{Cc as ou,Dl as tu,pa as ZC$1}from"./chunk-D8Ui_APT.js";import{t as k}from"./chunk-IrDYxRzS.js";import"./chunk-CReShp-B.js";import{d as nr,f as or,h as yn,o as gn}from"./chunk-CSkyOfSg.js";var x=class e{http=g(OD);sessions=g(v);cookieLock=g(o);async status(){return wu.decodeUnknownSync(tu)(await JD(this.http.get(`/api/bootstrap`))).available}async create(a){return this.cookieLock.run(async()=>{let t=await m(this.http.post(`/api/bootstrap`,a),ou,ZC$1,`bootstrap.error`);return t.success&&this.sessions.set(t.result),t})}static ɵfac=function(t){return new(t||e)};static ɵprov=A({token:e,factory:e.ɵfac,providedIn:`root`})};function Q(e,a){if(e&1&&(Us(0,`p`),y_(1),fd(),Us(2,`a`,3),y_(3),fd()),e&2){let t=qS();ZC(),nv(t.i18n.t(`bootstrap.success`)),ZC(2),vd(` `,t.i18n.t(`bootstrap.login`),` `)}}function W(e,a){if(e&1&&(Us(0,`p`,4),y_(1),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.loading`))}}function X(e,a){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let t=qS(3);ZC(),nv(t.i18n.t(a))}}function Y(e,a){if(e&1){let t=zS();Us(0,`p`),y_(1),fd(),Us(2,`form`,6),Gy(`submit`,function(U){Ip(t);return wp(qS(2).create(U))}),Us(3,`label`,7),y_(4),fd(),Py(5,`input`,8),qT(),Us(6,`label`,9),y_(7),fd(),Py(8,`input`,10),qT(),Us(9,`label`,11),y_(10),fd(),Py(11,`input`,12),qT(),OS(12,X,2,1,`p`,5),Us(13,`button`,13),y_(14),fd()()}if(e&2){let t,n=qS(2);ZC(),nv(n.i18n.t(`bootstrap.intro`)),ZC(3),nv(n.i18n.t(`bootstrap.password`)),ZC(),Fy(`formField`,n.bootstrapForm.bootstrapPassword),ZT(),ZC(2),nv(n.i18n.t(`bootstrap.email`)),ZC(),Fy(`formField`,n.bootstrapForm.email),ZT(),ZC(2),nv(n.i18n.t(`bootstrap.accountPassword`)),ZC(),Fy(`formField`,n.bootstrapForm.password),ZT(),ZC(),kS((t=n.error())?12:-1,t),ZC(),Fy(`disabled`,n.pending()),ZC(),vd(` `,n.i18n.t(n.submitLabel()),` `)}}function Z(e,a){if(e&1&&(Us(0,`p`),y_(1),fd(),Us(2,`a`,14),y_(3),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.unavailable`)),ZC(2),vd(` `,t.i18n.t(`bootstrap.login`),` `)}}function $(e,a){if(e&1&&(Us(0,`p`,5),y_(1),fd()),e&2){let t=qS(2);ZC(),nv(t.i18n.t(`bootstrap.error`))}}function tt(e,a){if(e&1&&OS(0,W,2,1,`p`,4)(1,Y,15,10)(2,Z,4,2)(3,$,2,1,`p`,5),e&2){let t;kS((t=qS().state())===`loading`?0:t===`available`?1:t===`unavailable`?2:t===`error`?3:-1)}}var H=class e{i18n=g(Ie);api=g(x);model=Ke({bootstrapPassword:``,email:``,password:``});bootstrapForm=nr(this.model,a=>{gn(a.bootstrapPassword),gn(a.email),gn(a.password)});state=Ke(`loading`);pending=Ke(!1);error=Ke(void 0);created=Ke(!1);constructor(){Ol(()=>{this.load()})}create(a){a.preventDefault(),or(this.bootstrapForm,async()=>{this.pending.set(!0),this.error.set(void 0);try{let t=await this.api.create(this.model());if(t.success){this.created.set(!0),this.state.set(`unavailable`);return}this.error.set(t.code),t.code===`bootstrap.unavailable`&&this.state.set(`unavailable`)}catch{this.error.set(`bootstrap.error`)}finally{this.pending.set(!1)}})}submitLabel(){return this.pending()?`bootstrap.pending`:`bootstrap.submit`}async load(){try{if(await this.api.status()){this.state.set(`available`);return}this.state.set(`unavailable`)}catch{this.state.set(`error`)}}static ɵfac=function(t){return new(t||e)};static ɵcmp=Fb({type:e,selectors:[[`app-bootstrap`]],hostAttrs:[1,`page-container`],decls:6,vars:2,consts:[[`aria-labelledby`,`bootstrap-title`,1,`bootstrap-page`],[1,`bootstrap-panel`,`ds-panel`],[`id`,`bootstrap-title`],[`appLinkButton`,``,`variant`,`primary`,`routerLink`,`/dashboard`],[`aria-live`,`polite`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[3,`submit`],[`for`,`bootstrap-password`],[`id`,`bootstrap-password`,`type`,`password`,`autocomplete`,`new-password`,`autofocus`,``,1,`input`,3,`formField`],[`for`,`bootstrap-email`],[`id`,`bootstrap-email`,`type`,`email`,`autocomplete`,`username`,1,`input`,3,`formField`],[`for`,`administrator-password`],[`id`,`administrator-password`,`type`,`password`,`autocomplete`,`new-password`,1,`input`,3,`formField`],[`appButton`,``,`variant`,`primary`,`type`,`submit`,3,`disabled`],[`appLinkButton`,``,`variant`,`primary`,`routerLink`,`/login`]],template:function(t,n){t&1&&(Us(0,`section`,0)(1,`div`,1)(2,`h1`,2),y_(3),fd(),OS(4,Q,4,2)(5,tt,4,1),fd()()),t&2&&(ZC(3),nv(n.i18n.t(`bootstrap.title`)),ZC(),kS(n.created()?4:5))},dependencies:[N,k,yn,Dt],styles:[`[_nghost-%COMP%]{display:block}.bootstrap-page[_ngcontent-%COMP%]{display:grid;min-height:30rem;place-items:center;padding:var(--%NS%page-header-y) var(--%NS%page-x)}.bootstrap-panel[_ngcontent-%COMP%]{width:100%;max-width:36rem;padding:var(--%NS%panel-padding)}h1[_ngcontent-%COMP%]{font-size:var(--%NS%text-2xl)}.bootstrap-panel[_ngcontent-%COMP%] > p[_ngcontent-%COMP%], form[_ngcontent-%COMP%]{margin-top:var(--%NS%space-4)}.credential[_ngcontent-%COMP%]{margin-top:var(--%NS%space-5)}.bootstrap-panel[_ngcontent-%COMP%] > [appLinkButton][_ngcontent-%COMP%]{margin-top:var(--%NS%space-6)}form[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4)}label[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm);font-weight:700}[appButton][_ngcontent-%COMP%], [appLinkButton][_ngcontent-%COMP%]{justify-self:start}`]})};export{H as Bootstrap};
@@ -0,0 +1 @@
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$1,Gn as k_,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,Tn as fd,V as Iy,Wn as kS,Wr as y_,X as LS,Xn as lv,dr as pe,ft as Ol,l as A_,lt as OS,mn as b_,mr as qT,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{S as gr,T as ue,c as O,h as Ne,l as r,m as Ie,o as U,r as N,v as Dt$1,y as G}from"./main-LXYWXFW4.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D8Ui_APT.js";import{t as c}from"./chunk-Bh2Diab5.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as f}from"./chunk-CuVXI21d.js";import{t as h}from"./chunk-CCItYukO.js";import"./chunk-BzUDWIzm.js";import{t as E}from"./chunk-DhpMFMQw.js";import{t as l$1}from"./chunk-Cm2UNqwE.js";import{t as l$2}from"./chunk-C0dwIYf0.js";import"./chunk-CP-AnFGa.js";import"./chunk-Bit8ybhq.js";import{t as Ft$2}from"./chunk-DjewtV43.js";import"./chunk-DwSL7UNj.js";import"./chunk-CReShp-B.js";import{d as nr,h as yn}from"./chunk-CSkyOfSg.js";import{t as Fe}from"./chunk-CO_ECkiv.js";import"./chunk-CczD0yXn2.js";import"./chunk-B4KnJ14M2.js";import{n as b,t as Z}from"./chunk-DytjnC4n2.js";import"./chunk-CXHCUTDs2.js";import{i as U$1,n as B,r as Q,t as $}from"./chunk-B6trGhNK2.js";import{n as m$1,t as d$1}from"./chunk-cTGENC4T2.js";import{t as D}from"./chunk-BwFjLr9D2.js";import{t as u}from"./chunk-CHUNlDss2.js";import{t}from"./chunk-CKxU-VJf2.js";import{i as m$2}from"./chunk-Dx1NwQCW.js";import{a as h$1,i as f$1,n as V,r as b$1,t as P}from"./chunk-C1BibNrz.js";var Pt=a=>({query:a});var Mt=a=>({rate:a});var Vt=a=>({count:a});var Dt=a=>[`/catalog`,a,`edit`];var Wt=(a,i)=>i.item.id;function Lt(a,i){if(a&1&&(Us(0,`a`,8),y_(1),fd()),a&2){let t=qS();Fy(`queryParams`,t.createQuery()),ZC(),nv(t.i18n.t(`catalog.create`))}}function It(a,i){if(a&1&&(Us(0,`p`,6),y_(1),fd()),a&2){let t=qS();ZC(),nv(t.i18n.t(`catalog.saved`))}}function Ft(a,i){if(a&1){let t=zS();Us(0,`app-filter-choice`,17),Gy(`committed`,function(n){Ip(t),qS();let p=t_(5);return qS().setTax(n),wp(p.close())}),fd(),qT()}if(a&2){let t=qS(2);Fy(`label`,t.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,t.i18n.t(`listWorkspace.noChoices`))(`options`,t.taxChoices())(`formField`,t.filters.tax),ZT()}}function Rt(a,i){if(a&1){let t=zS();Us(0,`button`,19),Gy(`click`,function(){Ip(t);return wp(qS(3).clearSearch())}),fd()}if(a&2){let t=qS(3);Fy(`label`,t.i18n.tf(`catalogWorkspace.searchFilter`,k_(1,Pt,t.query().q)))}}function Bt(a,i){if(a&1){let t=zS();Us(0,`button`,19),Gy(`click`,function(){Ip(t);return wp(qS(3).clearTax())}),fd()}if(a&2){qS(2);let t=S_(0),e=qS();Fy(`label`,e.i18n.tf(`catalogWorkspace.taxFilter`,k_(1,Mt,e.decimal(t,2))))}}function Nt(a,i){if(a&1&&(Us(0,`div`,14),OS(1,Rt,1,3,`button`,18),OS(2,Bt,1,3,`button`,18),fd()),a&2){qS();let t=S_(0),e=qS();ZC(),kS(e.query().q?1:-1),ZC(),kS(t!==null?2:-1)}}function Qt(a,i){if(a&1&&(Us(0,`p`,15),y_(1),fd()),a&2){let t=qS(2);ZC(),nv(t.i18n.t(`catalog.loading`))}}function At(a,i){if(a&1){let t=zS();Us(0,`div`,16)(1,`p`,20),y_(2),fd(),Us(3,`button`,21),Gy(`click`,function(){Ip(t);return wp(qS(2).load())}),y_(4),fd()()}if(a&2){let t=qS(2);ZC(2),nv(t.i18n.t(`catalogWorkspace.loadError`)),ZC(2),vd(` `,t.i18n.t(`catalogWorkspace.retry`),` `)}}function Ht(a,i){if(a&1){let t=zS();Us(0,`button`,27),Gy(`click`,function(){Ip(t);return wp(qS(4).resetFilters())}),y_(1),fd()}if(a&2){let t=qS(4);ZC(),vd(` `,t.i18n.t(`catalogWorkspace.resetFilters`),` `)}}function Ot(a,i){if(a&1&&(Us(0,`a`,26),y_(1),fd()),a&2){let t=qS(4).tab,e=qS();Fy(`queryParams`,e.editorQuery(t)),ZC(),nv(e.i18n.t(`catalog.create`))}}function $t(a,i){a&1&&Iy(0,Ot,2,2,`a`,28),a&2&&Fy(`appCan`,`catalog.manage`)}function zt(a,i){if(a&1&&(Us(0,`app-empty-state`,22)(1,`p`),y_(2),fd(),OS(3,Ht,2,1,`button`,25)(4,$t,1,1,`a`,26),fd()),a&2){let t=qS(2).tab,e=qS();Fy(`title`,e.i18n.t(e.filtered()?`catalogWorkspace.noMatches`:t===`archived`?`catalogWorkspace.noArchived`:`catalogWorkspace.empty`)),ZC(2),vd(` `,e.i18n.t(e.filtered()?`catalogWorkspace.changeSearch`:t===`archived`?`catalogWorkspace.archiveIntro`:`catalogWorkspace.emptyIntro`),` `),ZC(),kS(e.filtered()?3:t!==`archived`?4:-1)}}function Gt(a,i){if(a&1&&(Us(0,`a`,38),y_(1),fd()),a&2){let t=qS().$implicit,e=S_(0),n=qS(3).tab,p=qS();Fy(`routerLink`,k_(4,Dt,e.id))(`queryParams`,p.editorQuery(n))(`appSearchHighlight`,t.matches),ZC(),nv(e.description)}}function Ut(a,i){if(a&1&&(Us(0,`span`,39),y_(1),fd()),a&2){let t=qS().$implicit,e=S_(0);Fy(`appSearchHighlight`,t.matches),ZC(),nv(e.description)}}function jt(a,i){if(a&1&&(lv(0),Us(1,`tr`)(2,`th`,35)(3,`div`,36),Py(4,`app-entity-icon`,37),OS(5,Gt,2,6,`a`,38)(6,Ut,2,2,`span`,39),fd()(),Us(7,`td`,40),y_(8),fd(),Us(9,`td`,40),y_(10),fd(),Us(11,`td`,40),y_(12),fd(),Us(13,`td`)(14,`span`,41),y_(15),fd()()()),a&2){let t=i.$implicit,e=qS(4),n=b_(t.item);ZC(4),Fy(`variant`,e.iconVariant(n)),ZC(),kS(e.authentication.can(`catalog.manage`)?5:6),ZC(3),nv(e.decimal(n.quantityMilli,3)),ZC(2),nv(e.money(n.unitPriceCents)),ZC(2),vd(``,e.decimal(n.vatRateBasisPoints,2),` %`),ZC(3),nv(e.i18n.t(n.archived?`catalog.archived`:`catalogWorkspace.available`))}}function Jt(a,i){if(a&1){let t=zS();Us(0,`div`,23)(1,`table`)(2,`colgroup`),Py(3,`col`,29)(4,`col`,30)(5,`col`,31)(6,`col`)(7,`col`),fd(),Us(8,`thead`)(9,`tr`)(10,`th`,32)(11,`button`,33),Gy(`click`,function(){Ip(t);return wp(qS(3).sortBy(`description`))}),fd()(),Us(12,`th`,34)(13,`button`,33),Gy(`click`,function(){Ip(t);return wp(qS(3).sortBy(`quantity`))}),fd()(),Us(14,`th`,34)(15,`button`,33),Gy(`click`,function(){Ip(t);return wp(qS(3).sortBy(`price`))}),fd()(),Us(16,`th`,34)(17,`button`,33),Gy(`click`,function(){Ip(t);return wp(qS(3).sortBy(`tax`))}),fd()(),Us(18,`th`,32)(19,`button`,33),Gy(`click`,function(){Ip(t);return wp(qS(3).sortBy(`status`))}),fd()()()(),Us(20,`tbody`),LS(21,jt,16,7,`tr`,null,Wt),fd()()()}if(a&2){let t=qS(2).tab,e=qS();ZC(10),ky(`aria-sort`,e.sortDirection(`description`)===`none`?null:e.sortDirection(`description`)),ZC(),Fy(`label`,e.i18n.t(`catalog.description`))(`direction`,e.sortDirection(`description`)),ZC(),ky(`aria-sort`,e.sortDirection(`quantity`)===`none`?null:e.sortDirection(`quantity`)),ZC(),Fy(`label`,e.i18n.t(`catalog.quantity`))(`direction`,e.sortDirection(`quantity`)),ZC(),ky(`aria-sort`,e.sortDirection(`price`)===`none`?null:e.sortDirection(`price`)),ZC(),Fy(`label`,e.i18n.t(`catalogWorkspace.price`))(`direction`,e.sortDirection(`price`)),ZC(),ky(`aria-sort`,e.sortDirection(`tax`)===`none`?null:e.sortDirection(`tax`)),ZC(),Fy(`label`,e.i18n.t(`catalog.tax`))(`direction`,e.sortDirection(`tax`)),ZC(),ky(`aria-sort`,e.sortDirection(`status`)===`none`?null:e.sortDirection(`status`)),ZC(),Fy(`label`,e.i18n.t(`catalogWorkspace.status`))(`direction`,e.sortDirection(`status`)),ZC(2),jS(e.visibleItems(t))}}function Kt(a,i){if(a&1&&(OS(0,zt,5,3,`app-empty-state`,22)(1,Jt,23,15,`div`,23),Us(2,`footer`,24)(3,`p`,15),y_(4),fd()()),a&2){let t=qS().tab,e=qS();kS(e.visibleItems(t).length===0?0:1),ZC(4),vd(` `,e.i18n.plural(`catalogWorkspace.count`,k_(2,Vt,e.visibleItems(t).length)),` `)}}function Xt(a,i){if(a&1){let t=zS();lv(0),Us(1,`section`,9)(2,`app-list-toolbar`)(3,`app-list-search`,10),Gy(`valueChange`,function(n){Ip(t);return wp(qS().setSearch(n))}),fd(),qT(),Us(4,`app-filter-menu`,11,0),Iy(6,Ft,1,4,`ng-template`,12),fd(),Py(7,`app-table-export`,13),fd(),OS(8,Nt,3,2,`div`,14),OS(9,Qt,2,1,`p`,15)(10,At,5,2,`div`,16)(11,Kt,5,4),fd()}if(a&2){let t,e=i.tab,n=qS(),p=b_(n.query().tax);ZC(),ky(`aria-labelledby`,`catalog-`+e+`-tab`),ZC(2),Fy(`label`,n.i18n.t(`catalog.search`))(`formField`,n.filters.search),ZT(),ZC(),Fy(`label`,n.i18n.t(`listWorkspace.filters`))(`closeLabel`,n.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,n.i18n.t(`listWorkspace.backFilters`))(`activeCount`,p===null?0:1)(`disabled`,n.state()!==`ready`),ZC(2),Fy(`label`,n.i18n.t(`catalog.tax`))(`summary`,p===null?n.i18n.t(`catalogWorkspace.allTaxRates`):n.decimal(p,2)+` %`),ZC(),Fy(`columns`,n.exportColumns())(`rows`,n.exportRows(e))(`label`,n.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,n.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,n.i18n.t(`listWorkspace.exportPending`))(`pending`,n.state()!==`ready`),ZC(),kS(n.filtered()?8:-1),ZC(),kS((t=n.state())===`loading`?9:t===`error`?10:t===`ready`?11:-1)}}var Et=class a{authentication=g(E);i18n=g(Ie);api=g(f$1);route=g(G);router=g(ue);destroyRef=g(pe);state=Ke(`loading`);items=Ke([]);query=Ke(P(this.route.snapshot.queryParamMap));filterModel=Ke({search:this.query().q,tax:this.query().tax?.toString()??``});filters=nr(this.filterModel);filtered=Ft$1(()=>this.query().q!==``||this.query().tax!==null);taxRates=Ft$1(()=>{let{tax:i}=this.query();return[...new Set([...this.items().map(t=>t.vatRateBasisPoints),...i===null?[]:[i]])].sort((t,e)=>t-e)});exportColumns=Ft$1(()=>[this.i18n.t(`catalog.description`),this.i18n.t(`catalog.quantity`),this.i18n.t(`catalogWorkspace.exportPrice`),this.i18n.t(`catalog.tax`),this.i18n.t(`catalogWorkspace.status`)]);taxChoices=Ft$1(()=>[{value:``,label:this.i18n.t(`catalogWorkspace.allTaxRates`)},...this.taxRates().map(i=>({value:String(i),label:`${this.decimal(i,2)} %`}))]);saved=this.router.currentNavigation()?.extras.state?.catalogSaved===!0;tabs=Ft$1(()=>[`active`,`archived`,`all`].map(i=>({path:i,id:`catalog-${i}-tab`,label:this.i18n.t(`catalogWorkspace.${i}`)})));searchResults=Ft$2(this.items,Ft$1(()=>this.filters.search().value()),{keys:[`description`],ignoreDiacritics:!0,ignoreLocation:!0,includeMatches:!0,threshold:.35});results=Ft$1(()=>{let i=this.query().sort===`none`?`description-asc`:this.query().sort,t=i.endsWith(`desc`)?-1:1,e=new Intl.Collator(this.i18n.language(),{numeric:!0,sensitivity:`base`});return this.searchResults().toSorted((n,p)=>{let v;return i.startsWith(`quantity`)?v=n.item.quantityMilli-p.item.quantityMilli:i.startsWith(`price`)?v=n.item.unitPriceCents-p.item.unitPriceCents:i.startsWith(`tax`)?v=n.item.vatRateBasisPoints-p.item.vatRateBasisPoints:i.startsWith(`status`)?v=Number(n.item.archived)-Number(p.item.archived):v=e.compare(n.item.description,p.item.description),t*v||n.item.id.localeCompare(p.item.id)}).map(n=>({item:n.item,matches:n.matches?.find(p=>p.key===`description`)?.indices??[]}))});loadGeneration=0;constructor(){Ol(()=>{this.route.queryParamMap.pipe(U(this.destroyRef)).subscribe(i=>{let t=P(i);this.query.set(t),this.filterModel.set({search:t.q,tax:t.tax?.toString()??``})}),this.load()})}visibleItems(i){let{tax:t}=this.query();return this.results().filter(({item:e})=>(i===`all`||e.archived===(i===`archived`))&&(t===null||e.vatRateBasisPoints===t))}iconVariant(i){return i.archived?`warning`:`success`}exportRows(i){return this.state()!==`ready`?[]:this.visibleItems(i).map(({item:t})=>[t.description,m$2(t.quantityMilli,3),m$2(t.unitPriceCents,2),m$2(t.vatRateBasisPoints,2),this.i18n.t(t.archived?`catalog.archived`:`catalogWorkspace.available`)])}editorQuery(i){return m(l({},b$1(this.query())),{view:i})}createQuery(){return this.editorQuery(h$1(this.route.firstChild?.snapshot.url[0]?.path))}setSearch(i){let t=i.slice(0,120);this.filterModel.update(e=>m(l({},e),{search:t})),this.query.update(e=>m(l({},e),{q:t})),this.updateQuery()}clearSearch(){this.setSearch(``),this.filters.search().focusBoundControl()}setTax(i){let t=V(i);this.filterModel.update(e=>m(l({},e),{tax:t?.toString()??``})),this.query.update(e=>m(l({},e),{tax:t})),this.updateQuery()}clearTax(){this.setTax(``),this.filters.search().focusBoundControl()}resetFilters(){this.filterModel.set({search:``,tax:``}),this.query.update(i=>m(l({},i),{q:``,tax:null})),this.updateQuery(),this.filters.search().focusBoundControl()}sortDirection(i){let{sort:t}=this.query();return t===`${i}-asc`?`ascending`:t===`${i}-desc`?`descending`:`none`}sortBy(i){let t$1=t(this.query().sort,`${i}-asc`,`${i}-desc`);this.query.update(e=>m(l({},e),{sort:t$1})),this.router.navigate([],{relativeTo:this.route,queryParams:{sort:t$1===`none`?null:t$1},queryParamsHandling:`merge`,replaceUrl:!0})}updateQuery(){this.router.navigate([],{relativeTo:this.route,queryParams:b$1(this.query()),replaceUrl:!0})}async load(){let i=++this.loadGeneration;this.state.set(`loading`);try{let t=await this.api.list();if(this.destroyRef.destroyed||i!==this.loadGeneration)return;this.items.set(t),this.state.set(`ready`)}catch{!this.destroyRef.destroyed&&i===this.loadGeneration&&this.state.set(`error`)}}money(i){return Ne(i,this.i18n.language(),`EUR`)}decimal(i,t){return m$2(i,t,this.i18n.language()===`fr`?`,`:`.`)}static ɵfac=function(t){return new(t||a)};static ɵcmp=Fb({type:a,selectors:[[`app-catalog`]],hostAttrs:[1,`page-container`],features:[A_([d$1])],decls:11,vars:7,consts:[[`filterMenu`,``],[`appTabLayout`,``,`aria-labelledby`,`catalog-title`,1,`catalog-page`],[`id`,`catalog-title`],[1,`muted`],[`pageActions`,``,`appLinkButton`,``,`icon`,`plus`,`variant`,`primary`,`routerLink`,`/catalog/new`,3,`queryParams`,4,`appCan`],[3,`label`,`tabs`,`preserveQuery`],[`appNotice`,``,`variant`,`success`,`role`,`status`],[`appTabPanel`,`catalog`],[`pageActions`,``,`appLinkButton`,``,`icon`,`plus`,`variant`,`primary`,`routerLink`,`/catalog/new`,3,`queryParams`],[`appListWorkspace`,``,`id`,`catalog-panel`,`role`,`region`],[`listSearch`,``,3,`valueChange`,`label`,`formField`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,`filename`,`catalog.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[1,`active-filters`],[`role`,`status`],[1,`notice-flow`],[3,`committed`,`label`,`emptyLabel`,`options`,`formField`],[`appFilterChip`,``,3,`label`],[`appFilterChip`,``,3,`click`,`label`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`],[`icon`,`catalog`,3,`title`],[`appDataTable`,``,`tableLayout`,`fluid`,1,`items`,`wide-table`],[1,`list-summary`],[`emptyActions`,``,`appButton`,``,`type`,`button`],[`emptyActions`,``,`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/catalog/new`,3,`queryParams`],[`emptyActions`,``,`appButton`,``,`type`,`button`,3,`click`],[`emptyActions`,``,`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/catalog/new`,3,`queryParams`,4,`appCan`],[1,`description-column`],[1,`quantity-column`],[1,`price-column`],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[`scope`,`col`,1,`numeric`],[`scope`,`row`],[1,`entity-label`],[`icon`,`catalog`,3,`variant`],[3,`routerLink`,`queryParams`,`appSearchHighlight`],[3,`appSearchHighlight`],[1,`numeric`],[`appBadge`,``]],template:function(t,e){t&1&&(Us(0,`section`,1)(1,`app-page-header`)(2,`h1`,2),y_(3),fd(),Us(4,`p`,3),y_(5),fd(),Iy(6,Lt,2,2,`a`,4),fd(),Py(7,`app-tabs`,5),OS(8,It,2,1,`p`,6),Py(9,`router-outlet`),Iy(10,Xt,12,19,`ng-template`,7),fd()),t&2&&(ZC(3),nv(e.i18n.t(`catalog.title`)),ZC(2),nv(e.i18n.t(`catalogWorkspace.intro`)),ZC(),Fy(`appCan`,`catalog.manage`),ZC(),Fy(`label`,e.i18n.t(`catalogWorkspace.views`))(`tabs`,e.tabs())(`preserveQuery`,!0),ZC(),kS(e.saved?8:-1))},dependencies:[l$1,l$2,d,N,c,f,h,Z,b,Fe,yn,Q,U$1,B,k,g$1,Dt$1,gr,m$1,$,u,O,r,D],styles:[`.entity-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--%NS%space-2);min-inline-size:0}.entity-label[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:last-child{min-inline-size:0}[_nghost-%COMP%]{display:block}.catalog-page[_ngcontent-%COMP%]{padding:var(--%NS%page-header-y) var(--%NS%page-x)}.field[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-2);min-inline-size:0}.numeric[_ngcontent-%COMP%]{text-align:end;font-variant-numeric:tabular-nums}.description-column[_ngcontent-%COMP%]{inline-size:35%}.quantity-column[_ngcontent-%COMP%]{inline-size:18%}.price-column[_ngcontent-%COMP%]{inline-size:22%}.active-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--%NS%space-2)}`]})};export{Et as Catalog};
@@ -1 +1 @@
1
- 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,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,lt as OS,pr as qS,qn as ky,rr as nv,ut as O_,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{h as Ne,m as Ie,r as N,v as Dt}from"./main-F7D3L737.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D5qmP2Wu.js";import{t as y}from"./chunk-xTX16tt2.js";import{t as d}from"./chunk-CfwFJLFh.js";import{t as E}from"./chunk-DsaNNeZe.js";import{t as l}from"./chunk-BVszSMJC.js";import{t as c}from"./chunk-enci06qG.js";import{t as k}from"./chunk-D5MFwK9L.js";import{n as u}from"./chunk-BHEFFEGN.js";import{t as R}from"./chunk-NDpjbcAr2.js";import{t as y$1}from"./chunk-DZgf7AIe.js";import{t as d$1}from"./chunk-D1wrPwB5.js";import{t as a}from"./chunk-WJWN7A_V2.js";var Z=()=>({stage:`draft`});var J=()=>({stage:`sent`});var K=()=>({stage:`ordered`});var X=()=>({status:`issued`});var Y=()=>({status:`issued`,due:`overdue`});var U=(o,t)=>t.id;function ee(o,t){if(o&1&&(Us(0,`a`,7),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.createQuote`))}}function te(o,t){if(o&1&&(Us(0,`a`,8),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.createClient`))}}function ae(o,t){if(o&1&&(Us(0,`p`,6),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.loading`))}}function ne(o,t){if(o&1){let e=zS();Us(0,`p`,9),y_(1),fd(),Us(2,`button`,10),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.error`)),ZC(2),vd(` `,e.i18n.t(`backOffice.dashboard.retry`),` `)}}function ie(o,t){if(o&1&&(Us(0,`p`,11),y_(1),Us(2,`time`,25),y_(3),fd()()),o&2){let e=t,r=qS(2);ZC(),vd(` `,r.i18n.t(`dashboardWorkspace.loadedAt`),` `),ZC(),Fy(`dateTime`,e),ZC(),nv(r.date(e))}}function re(o,t){if(o&1&&(Us(0,`p`,20),y_(1),fd()),o&2){let e=qS(2);ZC(),nv(e.i18n.t(`backOffice.dashboard.noActions`))}}function oe(o,t){if(o&1&&(Us(0,`tr`)(1,`th`,27),y_(2),Us(3,`small`),y_(4),fd()(),Us(5,`td`)(6,`span`,28),y_(7),fd()(),Us(8,`td`)(9,`a`,29),y_(10),fd()()()),o&2){let e=t.$implicit;ZC(2),nv(e.title),ZC(2),nv(e.client),ZC(2),Fy(`variant`,e.variant),ZC(),nv(e.label),ZC(2),Fy(`routerLink`,e.link)(`queryParams`,e.query),ZC(),nv(e.task)}}function de(o,t){if(o&1&&(Us(0,`div`,21)(1,`table`)(2,`thead`)(3,`tr`)(4,`th`,26),y_(5),fd(),Us(6,`th`,26),y_(7),fd(),Us(8,`th`,26),y_(9),fd()()(),Us(10,`tbody`),LS(11,oe,11,7,`tr`,null,U),fd()()()),o&2){let e=qS(2);ZC(5),nv(e.i18n.t(`backOffice.clientDetail.document`)),ZC(2),nv(e.i18n.t(`backOffice.clientDetail.status`)),ZC(2),nv(e.i18n.t(`dashboardWorkspace.task`)),ZC(2),jS(e.actions())}}function se(o,t){if(o&1&&(Us(0,`li`)(1,`a`,30)(2,`strong`),y_(3),fd(),Us(4,`small`),y_(5),fd()(),Us(6,`time`,25),y_(7),fd()()),o&2){let e=t.$implicit,r=qS(2);ZC(),Fy(`routerLink`,e.link),ZC(2),nv(e.title),ZC(2),nv(e.client),ZC(),Fy(`dateTime`,e.date),ZC(),nv(r.date(e.date))}}function le(o,t){if(o&1&&(Us(0,`li`),y_(1),fd()),o&2){let e=qS(2);ZC(),nv(e.i18n.t(`dashboardWorkspace.noRecent`))}}function ce(o,t){if(o&1&&(OS(0,ie,4,3,`p`,11),Us(1,`nav`,12)(2,`a`,13)(3,`span`),y_(4),fd(),Us(5,`strong`),y_(6),fd()(),Us(7,`a`,14)(8,`span`),y_(9),fd(),Us(10,`strong`),y_(11),fd()(),Us(12,`a`,13)(13,`span`),y_(14),fd(),Us(15,`strong`),y_(16),fd()(),Us(17,`a`,15)(18,`span`),y_(19),fd(),Us(20,`strong`),y_(21),fd()(),Us(22,`a`,15)(23,`span`),y_(24),fd(),Us(25,`strong`),y_(26),fd()()(),Us(27,`section`,16)(28,`div`,17)(29,`h2`,18),y_(30),fd(),Us(31,`a`,19),y_(32),fd()(),OS(33,re,2,1,`p`,20)(34,de,13,3,`div`,21),fd(),Us(35,`section`,22)(36,`h2`,23),y_(37),fd(),Us(38,`p`,2),y_(39),fd(),Us(40,`ol`,24),LS(41,se,8,5,`li`,null,U,!1,le,2,1,`li`),fd()()),o&2){let e,r=qS();kS((e=r.loadedAt())?0:-1,e),ZC(),ky(`aria-label`,r.i18n.t(`backOffice.dashboard.summary`)),ZC(),Fy(`queryParams`,O_(23,Z)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.draftQuotes`)),ZC(2),nv(r.draftQuotes()),ZC(),Fy(`queryParams`,O_(24,J)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.awaitingSignature`)),ZC(2),nv(r.sentQuotes()),ZC(),Fy(`queryParams`,O_(25,K)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.toInvoice`)),ZC(2),nv(r.ordersToInvoice()),ZC(),Fy(`queryParams`,O_(26,X)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.outstanding`)),ZC(2),nv(r.money(r.outstandingCents())),ZC(),Fy(`queryParams`,O_(27,Y)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.overdueInvoices`)),ZC(2),nv(r.overdueInvoices()),ZC(4),nv(r.i18n.t(`backOffice.dashboard.actions`)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.openAffairs`)),ZC(),kS(r.actions().length===0?33:34),ZC(4),nv(r.i18n.t(`dashboardWorkspace.recent`)),ZC(2),nv(r.i18n.t(`dashboardWorkspace.recentHint`)),ZC(2),jS(r.activity())}}var H=class o{authentication=g(E);i18n=g(Ie);quotesApi=g(y$1);clientsApi=g(y);ordersApi=g(d$1);invoicesApi=g(R);state=Ke(`loading`);destroyRef=g(pe);loadGeneration=0;today=Ke(this.businessToday());loadedAt=Ke(void 0);clients=Ke([]);quotes=Ke([]);orders=Ke([]);invoices=Ke([]);draftQuotes=Ft(()=>this.quotes().filter(({status:t})=>t===`draft`).length);sentQuotes=Ft(()=>this.quotes().filter(({status:t})=>t===`sent`).length);ordersToInvoice=Ft(()=>this.orders().filter(({invoiceId:t})=>t===null).length);outstandingCents=Ft(()=>this.invoices().filter(({status:t})=>t===`issued`).reduce((t,e)=>t+Math.max(0,e.totalCents-e.creditedCents-e.recordedPaidCents),0));overdueInvoices=Ft(()=>this.invoices().filter(t=>this.overdue(t)).length);actions=Ft(()=>{let t=new Map(this.clients().map(e=>[e.id,e]));return[...this.quotes().filter(({status:e})=>e===`draft`||e===`sent`).map(e=>{let r=t.get(e.clientId),l=r?.archived===!0,v=e.status===`draft`&&r!==void 0&&a(r),y=l||v;return{id:`quote-${e.id}`,permission:y?l?`client.read`:`client.update`:e.status===`draft`?`quote.update`:`quote.read`,label:y?this.i18n.t(l?`dashboardWorkspace.blocked`:`dashboardWorkspace.contactBlocked`):e.status===`sent`?this.i18n.t(`dashboardWorkspace.waiting`):this.i18n.t(`backOffice.affairs.stage.draft`),title:e.title,client:e.clientDisplayName,link:y?[`/clients`,e.clientId,l?`profile`:`edit`]:e.status===`draft`?[`/quotes`,e.id,`edit`]:[`/quotes`,e.id],task:this.i18n.t(y?l?`dashboardWorkspace.reviewClient`:`dashboardWorkspace.completeClient`:e.status===`draft`?`dashboardWorkspace.editQuote`:`dashboardWorkspace.followQuote`),variant:y?`danger`:`default`,priority:y?0:e.status===`sent`?5:3}}),...this.orders().filter(({invoiceId:e})=>e===null).map(e=>({id:`order-${e.id}`,permission:`invoice.create`,label:this.i18n.t(`backOffice.affairs.stage.ordered`),title:e.title,client:e.clientDisplayName,link:[`/invoices/new`],query:{orderId:e.id},task:this.i18n.t(`backOffice.affairs.createInvoice`),variant:`default`,priority:2})),...this.invoices().filter(e=>e.status===`draft`||e.pdf?.status===`failed`||e.status===`issued`&&this.remaining(e)>0).map(e=>({id:`invoice-${e.id}`,permission:e.pdf?.status===`failed`?`invoice.read`:this.canRemind(e)?`email.draft.manage`:e.status===`draft`?`invoice.update`:`invoice.read`,label:e.pdf?.status===`failed`?this.i18n.t(`dashboardWorkspace.pdfBlocked`):e.status===`draft`?this.i18n.t(`backOffice.affairs.stage.invoiceDraft`):this.overdue(e)?this.i18n.t(`backOffice.dashboard.overdue`):this.i18n.t(`dashboardWorkspace.waiting`),title:e.title,client:e.clientDisplayName,link:e.pdf?.status===`failed`?[`/invoices`,e.id]:this.canRemind(e)?[`/emails/new`]:e.status===`draft`?[`/invoices`,e.id,`edit`]:[`/invoices`,e.id],query:this.canRemind(e)?{invoice:e.id}:void 0,task:this.i18n.t(e.pdf?.status===`failed`?`dashboardWorkspace.followInvoice`:this.canRemind(e)?`dashboardWorkspace.remindInvoice`:e.status===`draft`?`dashboardWorkspace.issueInvoice`:`dashboardWorkspace.followInvoice`),variant:e.pdf?.status===`failed`||this.overdue(e)?`danger`:`default`,priority:e.pdf?.status===`failed`?0:this.overdue(e)?1:e.status===`issued`?5:3}))].filter(e=>this.authentication.can(e.permission)).sort((e,r)=>e.priority-r.priority).slice(0,12)});activity=Ft(()=>[...this.quotes().map(t=>({id:`quote-${t.id}`,title:t.reference,client:t.clientDisplayName,date:t.updatedAt,link:[`/quotes`,t.id]})),...this.invoices().map(t=>({id:`invoice-${t.id}`,title:t.invoiceNumber??t.orderReference,client:t.clientDisplayName,date:t.updatedAt,link:[`/invoices`,t.id]}))].sort((t,e)=>e.date.localeCompare(t.date)).slice(0,6));constructor(){Ol(()=>{this.load()})}money(t){return Ne(t,this.i18n.language(),`EUR`)}date(t){return u(t,this.i18n.language(),{dateStyle:`medium`,timeStyle:`short`})}remaining(t){return Math.max(0,t.totalCents-t.creditedCents-t.recordedPaidCents)}overdue(t){return t.status===`issued`&&this.remaining(t)>0&&t.dueDate<this.today()}canRemind(t){return t.pdf?.status!==`failed`&&t.creditedCents===0&&this.overdue(t)}businessToday(){return new Intl.DateTimeFormat(`en-CA`,{timeZone:`Europe/Paris`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date)}async load(){let t=++this.loadGeneration;this.state.set(`loading`);try{let[e,r,l,v]=await Promise.all([this.clientsApi.list(),this.quotesApi.list(),this.ordersApi.list(),this.invoicesApi.list()]);if(t!==this.loadGeneration||this.destroyRef.destroyed)return;this.today.set(this.businessToday()),this.clients.set(e),this.quotes.set(r),this.orders.set(l),this.invoices.set(v),this.loadedAt.set(new Date().toISOString()),this.state.set(`ready`)}catch{t===this.loadGeneration&&!this.destroyRef.destroyed&&this.state.set(`error`)}}static ɵfac=function(e){return new(e||o)};static ɵcmp=Fb({type:o,selectors:[[`app-dashboard`]],hostAttrs:[1,`page-container`],decls:13,vars:6,consts:[[`aria-labelledby`,`dashboard-title`,1,`dashboard`],[`id`,`dashboard-title`],[1,`intro`],[1,`quick-actions`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/quotes/new`,4,`appCan`],[`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/clients/new`,4,`appCan`],[`role`,`status`,1,`state`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/quotes/new`],[`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/clients/new`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`],[`id`,`dashboard-loaded-at`,1,`intro`],[`aria-describedby`,`dashboard-loaded-at`,1,`metrics`],[`routerLink`,`/affairs/attention`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`routerLink`,`/affairs/active`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`routerLink`,`/billing`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`aria-labelledby`,`actions-title`,1,`action-section`],[1,`section-heading`],[`id`,`actions-title`],[`routerLink`,`/affairs`],[1,`empty`],[`appDataTable`,``,`tableLayout`,`fluid`,1,`wide-table`],[`aria-labelledby`,`activity-title`,1,`recent-section`],[`id`,`activity-title`],[1,`activity-list`],[3,`dateTime`],[`scope`,`col`],[`scope`,`row`],[`appBadge`,``,3,`variant`],[3,`routerLink`,`queryParams`],[3,`routerLink`]],template:function(e,r){if(e&1&&(Us(0,`section`,0)(1,`header`)(2,`div`)(3,`h1`,1),y_(4),fd(),Us(5,`p`,2),y_(6),fd()(),Us(7,`nav`,3),Iy(8,ee,2,1,`a`,4)(9,te,2,1,`a`,5),fd()(),OS(10,ae,2,1,`p`,6)(11,ne,4,2)(12,ce,44,28),fd()),e&2){let l;ZC(4),nv(r.i18n.t(`backOffice.dashboard.title`)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.intro`)),ZC(),ky(`aria-label`,r.i18n.t(`backOffice.dashboard.quickActions`)),ZC(),Fy(`appCan`,`quote.create`),ZC(),Fy(`appCan`,`client.create`),ZC(),kS((l=r.state())===`loading`?10:l===`error`?11:l===`ready`?12:-1)}},dependencies:[l,d,N,c,k,Dt],styles:[`[_nghost-%COMP%]{display:block}.dashboard[_ngcontent-%COMP%]{padding:var(--%NS%page-header-y) var(--%NS%page-x)}header[_ngcontent-%COMP%], .quick-actions[_ngcontent-%COMP%], .section-heading[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--%NS%space-4)}.quick-actions[_ngcontent-%COMP%]{gap:var(--%NS%space-2)}h1[_ngcontent-%COMP%]{font-size:var(--%NS%text-2xl)}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}.intro[_ngcontent-%COMP%], small[_ngcontent-%COMP%], time[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}.intro[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-2);max-inline-size:68ch}.metrics[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--%NS%space-3);margin-block:var(--%NS%space-6)}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:grid;grid-template-rows:1fr auto;gap:var(--%NS%space-2);padding:var(--%NS%space-3);color:var(--%NS%color-ink);text-decoration:none}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{border-color:var(--%NS%color-ink)}.metrics[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm);color:var(--%NS%color-muted)}.metrics[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-family:var(--%NS%font-display);font-size:var(--%NS%text-xl);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}[appDataTable][_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-4)}th[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;font-weight:400}.recent-section[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-7);max-inline-size:58rem}.activity-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin-block-start:var(--%NS%space-4)}.activity-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--%NS%space-3);border-top:1px solid var(--%NS%color-line);padding-block:var(--%NS%space-3)}.activity-list[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:grid;overflow-wrap:anywhere}time[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm)}.state[_ngcontent-%COMP%], .empty[_ngcontent-%COMP%], [role=alert][_ngcontent-%COMP%]{margin-block:var(--%NS%space-5)}@media(max-width:38rem){.metrics[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child{grid-column:1/-1}}`]})};export{H as Dashboard};
1
+ 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,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,lt as OS,pr as qS,qn as ky,rr as nv,ut as O_,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{h as Ne,m as Ie,r as N,v as Dt}from"./main-LXYWXFW4.js";import"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import"./chunk-D8Ui_APT.js";import{t as c}from"./chunk-Bh2Diab5.js";import{t as k}from"./chunk-IrDYxRzS.js";import{t as d}from"./chunk-CfwFJLFh.js";import{n as u}from"./chunk-BHEFFEGN.js";import{t as E}from"./chunk-DhpMFMQw.js";import{t as l}from"./chunk-Cm2UNqwE.js";import{t as R}from"./chunk-DvAE1Kdh2.js";import{t as y}from"./chunk-B_xlO55a2.js";import{t as y$1}from"./chunk-B4Vcwa9l.js";import{t as a}from"./chunk-WJWN7A_V.js";import{t as d$1}from"./chunk-BO6tYuf8.js";var Z=()=>({stage:`draft`});var J=()=>({stage:`sent`});var K=()=>({stage:`ordered`});var X=()=>({status:`issued`});var Y=()=>({status:`issued`,due:`overdue`});var U=(o,t)=>t.id;function ee(o,t){if(o&1&&(Us(0,`a`,7),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.createQuote`))}}function te(o,t){if(o&1&&(Us(0,`a`,8),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.createClient`))}}function ae(o,t){if(o&1&&(Us(0,`p`,6),y_(1),fd()),o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.loading`))}}function ne(o,t){if(o&1){let e=zS();Us(0,`p`,9),y_(1),fd(),Us(2,`button`,10),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(o&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.dashboard.error`)),ZC(2),vd(` `,e.i18n.t(`backOffice.dashboard.retry`),` `)}}function ie(o,t){if(o&1&&(Us(0,`p`,11),y_(1),Us(2,`time`,25),y_(3),fd()()),o&2){let e=t,r=qS(2);ZC(),vd(` `,r.i18n.t(`dashboardWorkspace.loadedAt`),` `),ZC(),Fy(`dateTime`,e),ZC(),nv(r.date(e))}}function re(o,t){if(o&1&&(Us(0,`p`,20),y_(1),fd()),o&2){let e=qS(2);ZC(),nv(e.i18n.t(`backOffice.dashboard.noActions`))}}function oe(o,t){if(o&1&&(Us(0,`tr`)(1,`th`,27),y_(2),Us(3,`small`),y_(4),fd()(),Us(5,`td`)(6,`span`,28),y_(7),fd()(),Us(8,`td`)(9,`a`,29),y_(10),fd()()()),o&2){let e=t.$implicit;ZC(2),nv(e.title),ZC(2),nv(e.client),ZC(2),Fy(`variant`,e.variant),ZC(),nv(e.label),ZC(2),Fy(`routerLink`,e.link)(`queryParams`,e.query),ZC(),nv(e.task)}}function de(o,t){if(o&1&&(Us(0,`div`,21)(1,`table`)(2,`thead`)(3,`tr`)(4,`th`,26),y_(5),fd(),Us(6,`th`,26),y_(7),fd(),Us(8,`th`,26),y_(9),fd()()(),Us(10,`tbody`),LS(11,oe,11,7,`tr`,null,U),fd()()()),o&2){let e=qS(2);ZC(5),nv(e.i18n.t(`backOffice.clientDetail.document`)),ZC(2),nv(e.i18n.t(`backOffice.clientDetail.status`)),ZC(2),nv(e.i18n.t(`dashboardWorkspace.task`)),ZC(2),jS(e.actions())}}function se(o,t){if(o&1&&(Us(0,`li`)(1,`a`,30)(2,`strong`),y_(3),fd(),Us(4,`small`),y_(5),fd()(),Us(6,`time`,25),y_(7),fd()()),o&2){let e=t.$implicit,r=qS(2);ZC(),Fy(`routerLink`,e.link),ZC(2),nv(e.title),ZC(2),nv(e.client),ZC(),Fy(`dateTime`,e.date),ZC(),nv(r.date(e.date))}}function le(o,t){if(o&1&&(Us(0,`li`),y_(1),fd()),o&2){let e=qS(2);ZC(),nv(e.i18n.t(`dashboardWorkspace.noRecent`))}}function ce(o,t){if(o&1&&(OS(0,ie,4,3,`p`,11),Us(1,`nav`,12)(2,`a`,13)(3,`span`),y_(4),fd(),Us(5,`strong`),y_(6),fd()(),Us(7,`a`,14)(8,`span`),y_(9),fd(),Us(10,`strong`),y_(11),fd()(),Us(12,`a`,13)(13,`span`),y_(14),fd(),Us(15,`strong`),y_(16),fd()(),Us(17,`a`,15)(18,`span`),y_(19),fd(),Us(20,`strong`),y_(21),fd()(),Us(22,`a`,15)(23,`span`),y_(24),fd(),Us(25,`strong`),y_(26),fd()()(),Us(27,`section`,16)(28,`div`,17)(29,`h2`,18),y_(30),fd(),Us(31,`a`,19),y_(32),fd()(),OS(33,re,2,1,`p`,20)(34,de,13,3,`div`,21),fd(),Us(35,`section`,22)(36,`h2`,23),y_(37),fd(),Us(38,`p`,2),y_(39),fd(),Us(40,`ol`,24),LS(41,se,8,5,`li`,null,U,!1,le,2,1,`li`),fd()()),o&2){let e,r=qS();kS((e=r.loadedAt())?0:-1,e),ZC(),ky(`aria-label`,r.i18n.t(`backOffice.dashboard.summary`)),ZC(),Fy(`queryParams`,O_(23,Z)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.draftQuotes`)),ZC(2),nv(r.draftQuotes()),ZC(),Fy(`queryParams`,O_(24,J)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.awaitingSignature`)),ZC(2),nv(r.sentQuotes()),ZC(),Fy(`queryParams`,O_(25,K)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.toInvoice`)),ZC(2),nv(r.ordersToInvoice()),ZC(),Fy(`queryParams`,O_(26,X)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.outstanding`)),ZC(2),nv(r.money(r.outstandingCents())),ZC(),Fy(`queryParams`,O_(27,Y)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.overdueInvoices`)),ZC(2),nv(r.overdueInvoices()),ZC(4),nv(r.i18n.t(`backOffice.dashboard.actions`)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.openAffairs`)),ZC(),kS(r.actions().length===0?33:34),ZC(4),nv(r.i18n.t(`dashboardWorkspace.recent`)),ZC(2),nv(r.i18n.t(`dashboardWorkspace.recentHint`)),ZC(2),jS(r.activity())}}var H=class o{authentication=g(E);i18n=g(Ie);quotesApi=g(y$1);clientsApi=g(y);ordersApi=g(d$1);invoicesApi=g(R);state=Ke(`loading`);destroyRef=g(pe);loadGeneration=0;today=Ke(this.businessToday());loadedAt=Ke(void 0);clients=Ke([]);quotes=Ke([]);orders=Ke([]);invoices=Ke([]);draftQuotes=Ft(()=>this.quotes().filter(({status:t})=>t===`draft`).length);sentQuotes=Ft(()=>this.quotes().filter(({status:t})=>t===`sent`).length);ordersToInvoice=Ft(()=>this.orders().filter(({invoiceId:t})=>t===null).length);outstandingCents=Ft(()=>this.invoices().filter(({status:t})=>t===`issued`).reduce((t,e)=>t+Math.max(0,e.totalCents-e.creditedCents-e.recordedPaidCents),0));overdueInvoices=Ft(()=>this.invoices().filter(t=>this.overdue(t)).length);actions=Ft(()=>{let t=new Map(this.clients().map(e=>[e.id,e]));return[...this.quotes().filter(({status:e})=>e===`draft`||e===`sent`).map(e=>{let r=t.get(e.clientId),l=r?.archived===!0,v=e.status===`draft`&&r!==void 0&&a(r),y=l||v;return{id:`quote-${e.id}`,permission:y?l?`client.read`:`client.update`:e.status===`draft`?`quote.update`:`quote.read`,label:y?this.i18n.t(l?`dashboardWorkspace.blocked`:`dashboardWorkspace.contactBlocked`):e.status===`sent`?this.i18n.t(`dashboardWorkspace.waiting`):this.i18n.t(`backOffice.affairs.stage.draft`),title:e.title,client:e.clientDisplayName,link:y?[`/clients`,e.clientId,l?`profile`:`edit`]:e.status===`draft`?[`/quotes`,e.id,`edit`]:[`/quotes`,e.id],task:this.i18n.t(y?l?`dashboardWorkspace.reviewClient`:`dashboardWorkspace.completeClient`:e.status===`draft`?`dashboardWorkspace.editQuote`:`dashboardWorkspace.followQuote`),variant:y?`danger`:`default`,priority:y?0:e.status===`sent`?5:3}}),...this.orders().filter(({invoiceId:e})=>e===null).map(e=>({id:`order-${e.id}`,permission:`invoice.create`,label:this.i18n.t(`backOffice.affairs.stage.ordered`),title:e.title,client:e.clientDisplayName,link:[`/invoices/new`],query:{orderId:e.id},task:this.i18n.t(`backOffice.affairs.createInvoice`),variant:`default`,priority:2})),...this.invoices().filter(e=>e.status===`draft`||e.pdf?.status===`failed`||e.status===`issued`&&this.remaining(e)>0).map(e=>({id:`invoice-${e.id}`,permission:e.pdf?.status===`failed`?`invoice.read`:this.canRemind(e)?`email.draft.manage`:e.status===`draft`?`invoice.update`:`invoice.read`,label:e.pdf?.status===`failed`?this.i18n.t(`dashboardWorkspace.pdfBlocked`):e.status===`draft`?this.i18n.t(`backOffice.affairs.stage.invoiceDraft`):this.overdue(e)?this.i18n.t(`backOffice.dashboard.overdue`):this.i18n.t(`dashboardWorkspace.waiting`),title:e.title,client:e.clientDisplayName,link:e.pdf?.status===`failed`?[`/invoices`,e.id]:this.canRemind(e)?[`/emails/new`]:e.status===`draft`?[`/invoices`,e.id,`edit`]:[`/invoices`,e.id],query:this.canRemind(e)?{invoice:e.id}:void 0,task:this.i18n.t(e.pdf?.status===`failed`?`dashboardWorkspace.followInvoice`:this.canRemind(e)?`dashboardWorkspace.remindInvoice`:e.status===`draft`?`dashboardWorkspace.issueInvoice`:`dashboardWorkspace.followInvoice`),variant:e.pdf?.status===`failed`||this.overdue(e)?`danger`:`default`,priority:e.pdf?.status===`failed`?0:this.overdue(e)?1:e.status===`issued`?5:3}))].filter(e=>this.authentication.can(e.permission)).sort((e,r)=>e.priority-r.priority).slice(0,12)});activity=Ft(()=>[...this.quotes().map(t=>({id:`quote-${t.id}`,title:t.reference,client:t.clientDisplayName,date:t.updatedAt,link:[`/quotes`,t.id]})),...this.invoices().map(t=>({id:`invoice-${t.id}`,title:t.invoiceNumber??t.orderReference,client:t.clientDisplayName,date:t.updatedAt,link:[`/invoices`,t.id]}))].sort((t,e)=>e.date.localeCompare(t.date)).slice(0,6));constructor(){Ol(()=>{this.load()})}money(t){return Ne(t,this.i18n.language(),`EUR`)}date(t){return u(t,this.i18n.language(),{dateStyle:`medium`,timeStyle:`short`})}remaining(t){return Math.max(0,t.totalCents-t.creditedCents-t.recordedPaidCents)}overdue(t){return t.status===`issued`&&this.remaining(t)>0&&t.dueDate<this.today()}canRemind(t){return t.pdf?.status!==`failed`&&t.creditedCents===0&&this.overdue(t)}businessToday(){return new Intl.DateTimeFormat(`en-CA`,{timeZone:`Europe/Paris`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date)}async load(){let t=++this.loadGeneration;this.state.set(`loading`);try{let[e,r,l,v]=await Promise.all([this.clientsApi.list(),this.quotesApi.list(),this.ordersApi.list(),this.invoicesApi.list()]);if(t!==this.loadGeneration||this.destroyRef.destroyed)return;this.today.set(this.businessToday()),this.clients.set(e),this.quotes.set(r),this.orders.set(l),this.invoices.set(v),this.loadedAt.set(new Date().toISOString()),this.state.set(`ready`)}catch{t===this.loadGeneration&&!this.destroyRef.destroyed&&this.state.set(`error`)}}static ɵfac=function(e){return new(e||o)};static ɵcmp=Fb({type:o,selectors:[[`app-dashboard`]],hostAttrs:[1,`page-container`],decls:13,vars:6,consts:[[`aria-labelledby`,`dashboard-title`,1,`dashboard`],[`id`,`dashboard-title`],[1,`intro`],[1,`quick-actions`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/quotes/new`,4,`appCan`],[`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/clients/new`,4,`appCan`],[`role`,`status`,1,`state`],[`appLinkButton`,``,`icon`,`file-plus`,`variant`,`primary`,`routerLink`,`/quotes/new`],[`appLinkButton`,``,`icon`,`plus`,`routerLink`,`/clients/new`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`],[`id`,`dashboard-loaded-at`,1,`intro`],[`aria-describedby`,`dashboard-loaded-at`,1,`metrics`],[`routerLink`,`/affairs/attention`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`routerLink`,`/affairs/active`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`routerLink`,`/billing`,`aria-describedby`,`dashboard-loaded-at`,1,`ds-panel`,3,`queryParams`],[`aria-labelledby`,`actions-title`,1,`action-section`],[1,`section-heading`],[`id`,`actions-title`],[`routerLink`,`/affairs`],[1,`empty`],[`appDataTable`,``,`tableLayout`,`fluid`,1,`wide-table`],[`aria-labelledby`,`activity-title`,1,`recent-section`],[`id`,`activity-title`],[1,`activity-list`],[3,`dateTime`],[`scope`,`col`],[`scope`,`row`],[`appBadge`,``,3,`variant`],[3,`routerLink`,`queryParams`],[3,`routerLink`]],template:function(e,r){if(e&1&&(Us(0,`section`,0)(1,`header`)(2,`div`)(3,`h1`,1),y_(4),fd(),Us(5,`p`,2),y_(6),fd()(),Us(7,`nav`,3),Iy(8,ee,2,1,`a`,4)(9,te,2,1,`a`,5),fd()(),OS(10,ae,2,1,`p`,6)(11,ne,4,2)(12,ce,44,28),fd()),e&2){let l;ZC(4),nv(r.i18n.t(`backOffice.dashboard.title`)),ZC(2),nv(r.i18n.t(`backOffice.dashboard.intro`)),ZC(),ky(`aria-label`,r.i18n.t(`backOffice.dashboard.quickActions`)),ZC(),Fy(`appCan`,`quote.create`),ZC(),Fy(`appCan`,`client.create`),ZC(),kS((l=r.state())===`loading`?10:l===`error`?11:l===`ready`?12:-1)}},dependencies:[l,d,N,c,k,Dt],styles:[`[_nghost-%COMP%]{display:block}.dashboard[_ngcontent-%COMP%]{padding:var(--%NS%page-header-y) var(--%NS%page-x)}header[_ngcontent-%COMP%], .quick-actions[_ngcontent-%COMP%], .section-heading[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--%NS%space-4)}.quick-actions[_ngcontent-%COMP%]{gap:var(--%NS%space-2)}h1[_ngcontent-%COMP%]{font-size:var(--%NS%text-2xl)}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}.intro[_ngcontent-%COMP%], small[_ngcontent-%COMP%], time[_ngcontent-%COMP%]{color:var(--%NS%color-muted)}.intro[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-2);max-inline-size:68ch}.metrics[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--%NS%space-3);margin-block:var(--%NS%space-6)}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:grid;grid-template-rows:1fr auto;gap:var(--%NS%space-2);padding:var(--%NS%space-3);color:var(--%NS%color-ink);text-decoration:none}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{border-color:var(--%NS%color-ink)}.metrics[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm);color:var(--%NS%color-muted)}.metrics[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-family:var(--%NS%font-display);font-size:var(--%NS%text-xl);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}[appDataTable][_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-4)}th[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;font-weight:400}.recent-section[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-7);max-inline-size:58rem}.activity-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin-block-start:var(--%NS%space-4)}.activity-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--%NS%space-3);border-top:1px solid var(--%NS%color-line);padding-block:var(--%NS%space-3)}.activity-list[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:grid;overflow-wrap:anywhere}time[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:var(--%NS%text-sm)}.state[_ngcontent-%COMP%], .empty[_ngcontent-%COMP%], [role=alert][_ngcontent-%COMP%]{margin-block:var(--%NS%space-5)}@media(max-width:38rem){.metrics[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child{grid-column:1/-1}}`]})};export{H as Dashboard};
@@ -1 +1 @@
1
- import{Dn as g,o as A,ot as OD}from"./chunk-BAHiFuUo.js";import{n as m}from"./chunk-Dv9sNWWK.js";import{Ei as Vi,It as Gt,Mr as Qg,er as Ng}from"./chunk-D5qmP2Wu.js";var l=class r{http=g(OD);list(e){return m(this.http.get(`/api/banking/ledger`,{params:e}),Qg,Gt,`ledger.error`)}post(e){return m(this.http.post(`/api/banking/ledger`,e),Vi,Gt,`ledger.error`)}getEntry(e){return m(this.http.get(`/api/banking/ledger/entries/${e}`),Vi,Gt,`ledger.error`)}getSource(e,o){return m(this.http.get(`/api/banking/ledger/sources/${e}/${o}`),Ng,Gt,`ledger.error`)}reverse(e,o){return m(this.http.post(`/api/banking/ledger/${e}/reverse`,o),Vi,Gt,`ledger.error`)}static ɵfac=function(o){return new(o||r)};static ɵprov=A({token:r,factory:r.ɵfac,providedIn:`root`})};function K(r,e){if(r!==`ledger.error`)return r;switch(e){case`load`:return`ledger.loadError`;case`post`:return`ledger.postUnconfirmed`;case`reverse`:return`ledger.reverseUnconfirmed`}}export{l as n,K as t};
1
+ import{Dn as g,o as A,ot as OD}from"./chunk-BAHiFuUo.js";import{n as m}from"./chunk-Dv9sNWWK.js";import{Ei as Vi,It as Gt,Mr as Qg,er as Ng}from"./chunk-D8Ui_APT.js";var l=class r{http=g(OD);list(e){return m(this.http.get(`/api/banking/ledger`,{params:e}),Qg,Gt,`ledger.error`)}post(e){return m(this.http.post(`/api/banking/ledger`,e),Vi,Gt,`ledger.error`)}getEntry(e){return m(this.http.get(`/api/banking/ledger/entries/${e}`),Vi,Gt,`ledger.error`)}getSource(e,o){return m(this.http.get(`/api/banking/ledger/sources/${e}/${o}`),Ng,Gt,`ledger.error`)}reverse(e,o){return m(this.http.post(`/api/banking/ledger/${e}/reverse`,o),Vi,Gt,`ledger.error`)}static ɵfac=function(o){return new(o||r)};static ɵprov=A({token:r,factory:r.ɵfac,providedIn:`root`})};function K(r,e){if(r!==`ledger.error`)return r;switch(e){case`load`:return`ledger.loadError`;case`post`:return`ledger.postUnconfirmed`;case`reverse`:return`ledger.reverseUnconfirmed`}}export{l as n,K as t};
@@ -0,0 +1 @@
1
+ import{$t as ZC,A as Gy,D as Fy,Dn as g,Dr as t_,E as Ft,Gn as k_,Ir as wp,It as Us,Jr as zS,K as Ke$1,Nr as vd,P as Hn,Rn as jS,Tn as fd,Wn as kS,Wr as y_,X as LS,dr as pe,ft as Ol,l as A_,lt as OS,mr as qT,mt as PH,pr as qS,qn as ky,rr as nv,tn as ZT,ut as O_,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{h as Ne$1,i as r,m as Ie$1,r as N,v as Dt}from"./main-LXYWXFW4.js";import{wi as wu}from"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{$r as T}from"./chunk-D8Ui_APT.js";import{t as c}from"./chunk-Bh2Diab5.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import"./chunk-BzUDWIzm.js";import"./chunk-DhpMFMQw.js";import{t as l}from"./chunk-C0dwIYf0.js";import"./chunk-CP-AnFGa.js";import"./chunk-Bit8ybhq.js";import{t as Ft$1}from"./chunk-DjewtV43.js";import"./chunk-DwSL7UNj.js";import"./chunk-CReShp-B.js";import{d as nr,f as or,h as yn,n as an,o as gn,t as P}from"./chunk-CSkyOfSg.js";import"./chunk-CO_ECkiv.js";import"./chunk-DQRDJtdh.js";import"./chunk-CczD0yXn2.js";import"./chunk-B4KnJ14M2.js";import"./chunk-DytjnC4n2.js";import{t as D}from"./chunk-CXHCUTDs2.js";import{n as B,t as $}from"./chunk-B6trGhNK2.js";import{n as m,t as d}from"./chunk-cTGENC4T2.js";import"./chunk-BwFjLr9D2.js";import{t as u}from"./chunk-CHUNlDss2.js";import{t as d$1}from"./chunk-B89j6ppg2.js";import{c as R,d as V,m as h,s as P$1}from"./chunk-BAYVC6mO2.js";import{a as L,c as W,i as K,l as q,o as N$1,r as F,u as w}from"./chunk-xIoy5TmG2.js";import{t as R$1}from"./chunk-DvAE1Kdh2.js";import{n as Z,t as P$2}from"./chunk-CBcFgY8f2.js";var Ee=()=>({status:`issued`,credit:`without`});var Me=a=>({count:a});var we=a=>[`/invoices`,a];var Ie=(a,n)=>n.item.id;function Re(a,n){if(a&1&&(Us(0,`p`,8),y_(1),fd()),a&2){let e=qS();ZC(),nv(e.i18n.t(`backOffice.invoices.loading`))}}function Oe(a,n){if(a&1){let e=zS();Us(0,`p`,22),y_(1),fd(),Us(2,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(a&2){let e=qS();ZC(),nv(e.i18n.t(`billingWorkspace.loadError`)),ZC(2),nv(e.i18n.t(`listControls.reload`))}}function Pe(a,n){if(a&1){let e=zS();Us(0,`p`,22),y_(1),fd(),Us(2,`button`,23),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(a&2){let e=qS();ZC(),nv(e.i18n.t(`billingWorkspace.limitExceeded`)),ZC(2),nv(e.i18n.t(`listControls.reload`))}}function Ne(a,n){if(a&1&&(Us(0,`tr`)(1,`td`)(2,`div`,29),Py(3,`app-entity-icon`,30),Us(4,`a`,31),y_(5),fd()()(),Us(6,`td`)(7,`span`,32),y_(8),fd(),Us(9,`small`)(10,`span`,32),y_(11),fd(),y_(12,` · `),Us(13,`span`,32),y_(14),fd()()(),Us(15,`td`,32),y_(16),fd(),Us(17,`td`),y_(18),fd(),Us(19,`td`),y_(20),fd(),Us(21,`td`),y_(22),fd(),Us(23,`td`,33),y_(24),fd()()),a&2){let e=n.$implicit,t=qS(2),l=e.item;ZC(3),Fy(`variant`,t.iconVariant(l)),ZC(),Fy(`routerLink`,k_(18,we,l.invoiceId))(`queryParams`,t.detailQuery())(`fragment`,l.id)(`appSearchHighlight`,t.matchIndices(e,`reference`)),ZC(),nv(l.reference),ZC(2),Fy(`appSearchHighlight`,t.matchIndices(e,`invoiceNumber`)),ZC(),nv(l.invoiceNumber),ZC(2),Fy(`appSearchHighlight`,t.matchIndices(e,`title`)),ZC(),nv(l.title),ZC(2),Fy(`appSearchHighlight`,t.matchIndices(e,`orderReference`)),ZC(),nv(l.orderReference),ZC(),Fy(`appSearchHighlight`,t.matchIndices(e,`clientDisplayName`)),ZC(),vd(` `,l.clientDisplayName,` `),ZC(2),nv(l.paidOn),ZC(2),nv(t.i18n.t(t.paymentMethodKey(l.method))),ZC(2),nv(t.i18n.t(t.entryStatusKey(l))),ZC(2),nv(t.money(l.amountCents))}}function De(a,n){if(a&1&&(Us(0,`tr`)(1,`td`,34),y_(2),fd()()),a&2){let e=qS(2);ZC(2),nv(e.i18n.t(e.emptyKey()))}}function Le(a,n){if(a&1){let e=zS();Us(0,`div`,24)(1,`table`)(2,`thead`)(3,`tr`)(4,`th`,25)(5,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`reference`))}),fd()(),Us(6,`th`,25)(7,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`invoice`))}),fd()(),Us(8,`th`,25)(9,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`client`))}),fd()(),Us(10,`th`,25)(11,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`date`))}),fd()(),Us(12,`th`,25)(13,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`method`))}),fd()(),Us(14,`th`,25)(15,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`status`))}),fd()(),Us(16,`th`,27)(17,`button`,26),Gy(`click`,function(){Ip(e);return wp(qS().sortBy(`amount`))}),fd()()()(),Us(18,`tbody`),LS(19,Ne,25,20,`tr`,null,Ie,!1,De,3,1,`tr`),fd()()(),Us(22,`footer`,28)(23,`p`,8),y_(24),fd()()}if(a&2){let e=qS();ZC(4),ky(`aria-sort`,e.sortDirection(e.sort(),`reference`)),ZC(),Fy(`label`,e.i18n.t(`payment.reference`))(`direction`,e.sortDirection(e.sort(),`reference`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`invoice`)),ZC(),Fy(`label`,e.i18n.t(`backOffice.invoices.number`))(`direction`,e.sortDirection(e.sort(),`invoice`)),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(),`date`)),ZC(),Fy(`label`,e.i18n.t(`payment.date`))(`direction`,e.sortDirection(e.sort(),`date`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`method`)),ZC(),Fy(`label`,e.i18n.t(`payment.method`))(`direction`,e.sortDirection(e.sort(),`method`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`status`)),ZC(),Fy(`label`,e.i18n.t(`billingWorkspace.financialStatus`))(`direction`,e.sortDirection(e.sort(),`status`)),ZC(),ky(`aria-sort`,e.sortDirection(e.sort(),`amount`)),ZC(),Fy(`label`,e.i18n.t(`payment.amount`))(`direction`,e.sortDirection(e.sort(),`amount`)),ZC(2),jS(e.visible()),ZC(5),nv(e.i18n.plural(`entityList.receipts`,k_(23,Me,e.visible().length)))}}function Te(a,n){if(a&1&&y_(0),a&2)vd(` `,qS().i18n.t(`billingWorkspace.dateInvalid`),` `)}function Fe(a,n){if(a&1&&y_(0),a&2)vd(` `,qS().i18n.t(`billingWorkspace.dateInvalid`),` `)}function Ve(a,n){if(a&1&&(Us(0,`p`,21),y_(1),fd()),a&2){let e=qS();ZC(),nv(e.i18n.t(`billingWorkspace.dateInvalid`))}}function He(a,n){if(a&1&&(Us(0,`p`,22),y_(1),fd()),a&2){let e=qS();ZC(),nv(e.i18n.t(n))}}function Ke(a,n){if(a&1&&(Us(0,`p`,8),y_(1),fd()),a&2){let e=qS();ZC(),nv(e.i18n.t(`payment.export_ready`))}}var Se=class a{paymentMethodKey=R;i18n=g(Ie$1);api=g(R$1);destroyRef=g(pe);element=g(Hn);focusInvalid=Ke$1(!1);filters=g(P$2);detailQuery=Ft(()=>W(`receipts`,this.filters.params(),`receipts`));entryStatusKey=F;emptyKey=Ft(()=>w(this.rows().length));exportEmptyKey=Ft(()=>q(this.state()));rows=Ke$1([]);sort=Ft(()=>K(this.filters.params(),L));sortDirection=P$1;matchIndices=V;searchResults=Ft$1(this.rows,Ft(()=>this.filters.fields.q().value()),{keys:[`reference`,`invoiceNumber`,`title`,`clientDisplayName`,`orderReference`],ignoreDiacritics:!0,ignoreLocation:!0,includeMatches:!0,threshold:.35});visible=Ft(()=>{let n=new Intl.Collator(this.i18n.language(),{numeric:!0,sensitivity:`base`});return this.searchResults().filter(({item:e})=>this.filters.passes(e,e.paidOn)).toSorted((e,t)=>N$1(e.item,t.item,this.sort(),n,l=>this.i18n.t(l)))});sortBy(n){this.filters.updateSort(h(this.sort(),n))}iconVariant(n){return n.cancelledAt===null?`success`:`danger`}clients=Ft(()=>[...new Map(this.rows().map(n=>[n.clientId,n.clientDisplayName])).entries()]);state=Ke$1(`loading`);csvColumns=Ft(()=>[this.i18n.t(`payment.reference`),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(`payment.date`),this.i18n.t(`payment.method`),this.i18n.t(`billingWorkspace.financialStatus`),`${this.i18n.t(`payment.amount`)} (EUR)`]);csvRows=Ft(()=>this.state()!==`ready`?[]:this.visible().map(({item:n})=>[n.reference,n.invoiceNumber,n.title,n.orderReference,n.clientDisplayName,n.paidOn,this.i18n.t(R(n.method)),this.i18n.t(F(n)),n.amountCents/100]));error=Ke$1(void 0);exporting=Ke$1(!1);exportHintKey=Ft(()=>this.exporting()?`payment.export_pending`:`payment.export_hint`);exportButtonKey=Ft(()=>this.exporting()?`payment.export_pending`:`payment.export_download`);exported=Ke$1(!1);exportForm=nr(Ke$1({from:``,to:``}),n=>{an(n,()=>this.exporting()),gn(n.from),gn(n.to),P(n.from,({value:e})=>wu.is(T)(e())?void 0:{kind:`date`}),P(n.to,({value:e,valueOf:t})=>wu.is(T)(e())&&e()>=t(n.from)?void 0:{kind:`date`})});exportUrl;constructor(){Ol(()=>{this.load()}),PH(()=>{this.focusInvalid()?(this.element.nativeElement.querySelector(`.payment-export [aria-invalid="true"]`)?.focus(),this.focusInvalid.set(!1)):(this.error()||this.exported())&&this.element.nativeElement.querySelector(`[data-export-feedback]`)?.focus()}),this.destroyRef.onDestroy(()=>{this.exportUrl&&URL.revokeObjectURL(this.exportUrl)})}async load(){this.state.set(`loading`),this.rows.set([]);try{let n=await this.api.receipts();if(this.destroyRef.destroyed)return;n.success?(this.rows.set(n.result),this.state.set(`ready`)):this.state.set(n.code===`invoice.workspace_limit`?`limit`:`error`)}catch{this.destroyRef.destroyed||this.state.set(`error`)}}exportPayments(n){n.preventDefault(),!this.exporting()&&or(this.exportForm,{action:async()=>{this.exporting.set(!0),this.error.set(void 0),this.exported.set(!1);try{let e=await this.api.exportPayments(this.exportForm().value());if(this.destroyRef.destroyed)return;if(!e.success){this.error.set(e.code);return}this.exportUrl&&URL.revokeObjectURL(this.exportUrl),this.exportUrl=URL.createObjectURL(new Blob([e.result],{type:`text/csv;charset=utf-8`}));let t=document.createElement(`a`);t.href=this.exportUrl,t.download=`invoice-payments.csv`,t.click(),this.exported.set(!0)}catch{this.destroyRef.destroyed||this.error.set(`payment.export_error`)}finally{this.destroyRef.destroyed||this.exporting.set(!1)}},onInvalid:()=>this.focusInvalid.set(!0)})}money(n){return Ne$1(n,this.i18n.language(),`EUR`)}static ɵfac=function(e){return new(e||a)};static ɵcmp=Fb({type:a,selectors:[[`app-receipt-list`]],hostAttrs:[1,`page-container`],features:[A_([P$2,d])],decls:43,vars:33,consts:[[`exportHint`,``],[`aria-labelledby`,`receipts-title`,1,`detail-page`,`wide-page`,`billing-page`],[`id`,`receipts-title`],[1,`muted`],[`pageActions`,``,`appLinkButton`,``,`icon`,`invoice`,`variant`,`primary`,`routerLink`,`/billing`,3,`queryParams`],[`appListWorkspace`,``],[3,`clients`,`disabled`,`periodLabel`],[`listActions`,``,`filename`,`receipts.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[`role`,`status`],[`aria-labelledby`,`payment-export-title`,1,`payment-export`,`ds-panel`],[`id`,`payment-export-title`],[1,`filters`,3,`submit`],[1,`field`],[`type`,`date`,`aria-describedby`,`export-from-error`,1,`input`,3,`formField`],[`id`,`export-from-error`,1,`field-error`],[`type`,`date`,`aria-describedby`,`export-to-error`,1,`input`,3,`formField`],[`id`,`export-to-error`,1,`field-error`],[3,`text`],[`appButton`,``,`type`,`submit`,3,`disabled`],[`name`,`download`],[`tabindex`,`-1`,`data-export-feedback`,``],[`role`,`alert`,1,`field-error`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,3,`click`],[`appDataTable`,``],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[`scope`,`col`,1,`amount`],[1,`list-summary`],[1,`entity-label`],[`icon`,`bank`,3,`variant`],[3,`routerLink`,`queryParams`,`fragment`,`appSearchHighlight`],[3,`appSearchHighlight`],[1,`amount`],[`colspan`,`7`]],template:function(e,t){if(e&1&&(Us(0,`section`,1)(1,`app-page-header`)(2,`h1`,2),y_(3),fd(),Us(4,`p`,3),y_(5),fd(),Us(6,`a`,4),y_(7),fd()(),Py(8,`app-billing-nav`),Us(9,`section`,5)(10,`app-billing-entry-filters`,6),Py(11,`app-table-export`,7),fd(),OS(12,Re,2,1,`p`,8)(13,Oe,4,2)(14,Pe,4,2)(15,Le,25,25),fd(),Us(16,`p`,3),y_(17),fd(),Us(18,`section`,9)(19,`h2`,10),y_(20),fd(),Us(21,`p`),y_(22),fd(),Us(23,`form`,11),Gy(`submit`,function(S){return t.exportPayments(S)}),Us(24,`label`,12),y_(25),Py(26,`input`,13),qT(),Us(27,`span`,14),OS(28,Te,1,1),fd()(),Us(29,`label`,12),y_(30),Py(31,`input`,15),qT(),Us(32,`span`,16),OS(33,Fe,1,1),fd()(),Us(34,`app-hint`,17,0)(36,`button`,18),Py(37,`app-icon`,19),y_(38),fd()()(),Us(39,`div`,20),OS(40,Ve,2,1,`p`,21),OS(41,He,2,1,`p`,22),OS(42,Ke,2,1,`p`,8),fd()()()),e&2){let l,S,ke=t_(35);ZC(3),nv(t.i18n.t(`backOffice.billing.title`)),ZC(2),nv(t.i18n.t(`backOffice.billing.intro`)),ZC(),Fy(`queryParams`,O_(32,Ee)),ZC(),nv(t.i18n.t(`billingWorkspace.chooseInvoice`)),ZC(3),Fy(`clients`,t.clients())(`disabled`,t.state()!==`ready`)(`periodLabel`,t.i18n.t(`billingWorkspace.receiptPeriod`)),ZC(),Fy(`columns`,t.csvColumns())(`rows`,t.csvRows())(`label`,t.i18n.t(`listWorkspace.exportCsv`))(`emptyHint`,t.i18n.t(t.exportEmptyKey()))(`pendingHint`,t.i18n.t(`listWorkspace.exportPending`))(`pending`,t.state()===`loading`),ZC(),kS((l=t.state())===`loading`?12:l===`error`?13:l===`limit`?14:l===`ready`?15:-1),ZC(5),nv(t.i18n.t(`billingWorkspace.receiptHint`)),ZC(3),nv(t.i18n.t(`payment.export_title`)),ZC(2),nv(t.i18n.t(`payment.export_hint`)),ZC(3),nv(t.i18n.t(`payment.export_from`)),ZC(),Fy(`formField`,t.exportForm.from),ky(`aria-invalid`,t.exportForm.from().invalid()&&t.exportForm.from().touched()),ZT(),ZC(2),kS(t.exportForm.from().invalid()&&t.exportForm.from().touched()?28:-1),ZC(2),nv(t.i18n.t(`payment.export_to`)),ZC(),Fy(`formField`,t.exportForm.to),ky(`aria-invalid`,t.exportForm.to().invalid()&&t.exportForm.to().touched()),ZT(),ZC(2),kS(t.exportForm.to().invalid()&&t.exportForm.to().touched()?33:-1),ZC(),Fy(`text`,t.i18n.t(t.exportHintKey())),ZC(2),Fy(`disabled`,t.exporting()),ky(`aria-describedby`,ke.id),ZC(2),vd(` `,t.i18n.t(t.exportButtonKey()),` `),ZC(2),kS(t.exportForm().invalid()&&t.exportForm().touched()?40:-1),ZC(),kS((S=t.error())?41:-1,S),ZC(),kS(t.exported()?42:-1)}},dependencies:[l,N,k,g$1,c,Dt,yn,d$1,Z,u,m,B,$,D,r],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}.payment-export[_ngcontent-%COMP%]{padding:var(--%NS%space-4);display:grid;gap:var(--%NS%space-3)}.payment-export[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-1)}`]})};export{Se as ReceiptList};
@@ -0,0 +1 @@
1
+ import{$ as MH,$t as ZC,A as Gy,D as Fy,Dr as t_,Ir as wp,It as Us,Jr as zS,Rn as jS,Tn as fd,Wr as y_,X as LS,nt as NH,pr as qS,qn as ky,rr as nv,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{t as D}from"./chunk-CXHCUTDs2.js";var P=(r,t)=>t.value;function y(r,t){if(r&1){let e=zS();Us(0,`app-hint`,4,0)(2,`input`,5),Gy(`change`,function(){let c=Ip(e).$implicit;return wp(qS().select(c.value))}),fd(),Us(3,`label`,6),y_(4),fd()()}if(r&2){let e=t.$implicit,n=t.$index,c=t_(1),a=qS();Fy(`text`,e.hint??``)(`content`,e.hintContent),ky(`data-segment-variant`,e.variant??a.variant()),ZC(2),Fy(`id`,a.controlId()+`-`+n)(`name`,a.controlId())(`value`,e.value)(`checked`,a.value()===e.value),ky(`aria-describedby`,e.hint||e.hintContent?c.id:null),ZC(),Fy(`for`,a.controlId()+`-`+n),ZC(),nv(e.label)}}var O=class r{controlId=NH.required();label=NH.required();options=NH.required();value=NH.required();disabled=NH(!1);variant=NH(`primary`);size=NH(`default`);valueChange=MH();select(t){!this.disabled()&&t!==this.value()&&this.valueChange.emit(t)}static ɵfac=function(e){return new(e||r)};static ɵcmp=Fb({type:r,selectors:[[`app-segmented-control`]],hostVars:2,hostBindings:function(e,n){e&2&&ky(`data-segmented-variant`,n.variant())(`data-segmented-size`,n.size())},inputs:{controlId:[1,`controlId`],label:[1,`label`],options:[1,`options`],value:[1,`value`],disabled:[1,`disabled`],variant:[1,`variant`],size:[1,`size`]},outputs:{valueChange:`valueChange`},decls:6,vars:2,consts:[[`hint`,``],[3,`disabled`],[1,`visually-hidden`],[1,`segments`],[3,`text`,`content`],[`type`,`radio`,1,`visually-hidden`,3,`change`,`id`,`name`,`value`,`checked`],[3,`for`]],template:function(e,n){e&1&&(Us(0,`fieldset`,1)(1,`legend`,2),y_(2),fd(),Us(3,`div`,3),LS(4,y,5,10,`app-hint`,4,P),fd()()),e&2&&(Fy(`disabled`,n.disabled()),ZC(2),nv(n.label()),ZC(2),jS(n.options()))},dependencies:[D],styles:[`[_nghost-%COMP%]{--%NS%segment-color: var(--%NS%color-button-primary);--%NS%segment-highlight: var(--%NS%color-button-primary-highlight);--%NS%segment-text: var(--%NS%color-button-on-color);--%NS%segment-text-shadow: 0 -1px 0 rgb(0 0 0 / .25);display:inline-block;max-inline-size:100%}[data-segmented-variant=default][_nghost-%COMP%], app-hint[data-segment-variant=default][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-default);--%NS%segment-highlight: var(--%NS%color-button-default-highlight);--%NS%segment-text: var(--%NS%color-button-on-default);--%NS%segment-text-shadow: var(--%NS%shadow-button-default-label)}[data-segmented-variant=info][_nghost-%COMP%], app-hint[data-segment-variant=info][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-info);--%NS%segment-highlight: var(--%NS%color-button-info-highlight)}[data-segmented-variant=success][_nghost-%COMP%], app-hint[data-segment-variant=success][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-success);--%NS%segment-highlight: var(--%NS%color-button-success-highlight)}[data-segmented-variant=warning][_nghost-%COMP%], app-hint[data-segment-variant=warning][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-warning);--%NS%segment-highlight: var(--%NS%color-button-warning-highlight)}:is([data-segmented-variant=info][_nghost-%COMP%], [data-segmented-variant=success][_nghost-%COMP%], [data-segmented-variant=warning][_nghost-%COMP%], app-hint[data-segment-variant=info][_ngcontent-%COMP%], app-hint[data-segment-variant=success][_ngcontent-%COMP%], app-hint[data-segment-variant=warning][_ngcontent-%COMP%]){--%NS%segment-text: var(--%NS%color-button-on-bright);--%NS%segment-text-shadow: none}[data-segmented-variant=danger][_nghost-%COMP%], app-hint[data-segment-variant=danger][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-danger);--%NS%segment-highlight: var(--%NS%color-button-danger-highlight);--%NS%segment-text: var(--%NS%color-button-on-color)}[data-segmented-variant=dark][_nghost-%COMP%], app-hint[data-segment-variant=dark][_ngcontent-%COMP%]{--%NS%segment-color: var(--%NS%color-button-dark);--%NS%segment-highlight: var(--%NS%color-button-dark-highlight);--%NS%segment-text: var(--%NS%color-button-on-color)}fieldset[_ngcontent-%COMP%]{min-inline-size:0;margin:0;padding:0;border:0}.segments[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;inline-size:fit-content;max-inline-size:100%}label[_ngcontent-%COMP%]{position:relative;display:inline-flex;align-items:center;justify-content:center;min-block-size:var(--%NS%control-height);padding:.4rem .75rem;border:1px solid rgba(0,0,0,.1);border-block-end-color:#00000040;background-color:var(--%NS%segment-color);background-image:linear-gradient(to bottom,var(--%NS%segment-color),var(--%NS%segment-highlight));color:var(--%NS%segment-text);cursor:pointer;font-size:var(--%NS%text-sm);font-weight:600;line-height:1.2;text-align:center;text-shadow:var(--%NS%segment-text-shadow);box-shadow:inset 0 1px #fff3,0 1px 2px #0000000d}app-hint[_ngcontent-%COMP%] + app-hint[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{border-inline-start:0}app-hint[_ngcontent-%COMP%]:first-child label[_ngcontent-%COMP%]{border-start-start-radius:var(--%NS%radius-sm);border-end-start-radius:var(--%NS%radius-sm)}app-hint[_ngcontent-%COMP%]:last-child label[_ngcontent-%COMP%]{border-start-end-radius:var(--%NS%radius-sm);border-end-end-radius:var(--%NS%radius-sm)}input[_ngcontent-%COMP%]:checked + label[_ngcontent-%COMP%]{z-index:1;border-color:color-mix(in oklab,var(--%NS%segment-color),black 30%);background-color:color-mix(in oklab,var(--%NS%segment-color),black 14%);background-image:linear-gradient(to bottom,color-mix(in oklab,var(--%NS%segment-color),black 20%),color-mix(in oklab,var(--%NS%segment-color),black 8%));color:var(--%NS%segment-text);text-shadow:var(--%NS%segment-text-shadow);box-shadow:inset 0 3px 6px #0006,inset 0 1px 1px #00000040}app-hint[data-segment-variant=ghost][_ngcontent-%COMP%] label[_ngcontent-%COMP%]{--%NS%icon-color: currentColor;border-color:transparent;border-radius:var(--%NS%radius-sm);background:transparent;color:var(--%NS%color-muted);text-decoration:none;text-shadow:none;box-shadow:none;cursor:pointer}app-hint[data-segment-variant=ghost][_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + label[_ngcontent-%COMP%]{background:var(--%NS%color-panel);color:var(--%NS%color-ink);box-shadow:var(--%NS%shadow-panel);background:color-mix(in oklab,var(--%NS%color-panel),black 10%);box-shadow:inset 0 3px 6px #00000059,inset 0 1px 1px #0003}@media(hover:hover)and (pointer:fine){input[_ngcontent-%COMP%]:not(:checked):not(:disabled) + label[_ngcontent-%COMP%]:hover{background-image:linear-gradient(to bottom,var(--%NS%segment-highlight),var(--%NS%segment-color))}app-hint[data-segment-variant=ghost][_ngcontent-%COMP%] input[_ngcontent-%COMP%]:not(:checked):not(:disabled) + label[_ngcontent-%COMP%]:hover{background:color-mix(in oklab,var(--%NS%color-surface-sunken),transparent 35%);color:var(--%NS%color-ink)}}input[_ngcontent-%COMP%]:focus-visible + label[_ngcontent-%COMP%]{z-index:2;outline:2px solid var(--%NS%color-focus);outline-offset:-2px}fieldset[_ngcontent-%COMP%]:disabled label[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.65}[data-segmented-size=small][_nghost-%COMP%] label[_ngcontent-%COMP%]{min-block-size:2rem;padding:.25rem .5rem;font-size:var(--%NS%text-xs)}[data-segmented-size=large][_nghost-%COMP%] label[_ngcontent-%COMP%]{min-block-size:3rem;padding:.55rem 1rem;font-size:var(--%NS%text-base)}@media(forced-colors:active){input[_ngcontent-%COMP%]:checked + label[_ngcontent-%COMP%]{border-color:Highlight;background:Highlight;color:HighlightText}}`]})};export{O as t};
@@ -0,0 +1 @@
1
+ import{n as m,t as l}from"./chunk-BwCtja5l.js";import{$t as ZC,A as Gy,At as S_,C as F_,D as Fy,Dn as g,Dr as t_,E as Ft,Ir as wp,It as Us,Jr as zS,K as Ke$1,M as H_,Nr as vd,Rn as jS,Tn as fd,V as Iy,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,pr as qS,qn as ky,rn as Zw,rr as nv,tn as ZT,ut as O_,vt as Py,w as Fb,z as Ip,zn as j_}from"./chunk-BAHiFuUo.js";import{m as Ie,r as N,v as Dt}from"./main-LXYWXFW4.js";import{ct as Me,wi as wu}from"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{T as Ba}from"./chunk-D8Ui_APT.js";import{t as c}from"./chunk-Bh2Diab5.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import{t as p}from"./chunk-BHEFFEGN.js";import{t as h}from"./chunk-CCItYukO.js";import"./chunk-BzUDWIzm.js";import{t as P}from"./chunk-CkRw7h0_.js";import{t as E}from"./chunk-DhpMFMQw.js";import{t as l$1}from"./chunk-Cm2UNqwE.js";import{t as l$2}from"./chunk-C0dwIYf0.js";import"./chunk-CP-AnFGa.js";import"./chunk-Bit8ybhq.js";import"./chunk-DjewtV43.js";import"./chunk-DwSL7UNj.js";import"./chunk-CReShp-B.js";import{d as nr,h as yn,n as an}from"./chunk-CSkyOfSg.js";import{t as Fe}from"./chunk-CO_ECkiv.js";import"./chunk-CczD0yXn2.js";import"./chunk-B4KnJ14M2.js";import{n as b,t as Z}from"./chunk-DytjnC4n2.js";import"./chunk-CXHCUTDs2.js";import{i as U,n as B,r as Q,t as $}from"./chunk-B6trGhNK2.js";import{n as m$1,t as d}from"./chunk-cTGENC4T2.js";import{t as u}from"./chunk-CHUNlDss2.js";import{a as r,i as n}from"./chunk-C6M6lCrw2.js";import{t as N$1}from"./chunk-DVbkiKVh2.js";import{t as u$1}from"./chunk-bIBAi42v2.js";import{n as u$2,t as b$1}from"./chunk-BWBbQ7HE2.js";import{t as m$2}from"./chunk-mqeSFXPY2.js";import{t as Ae$1}from"./chunk-C_4qOSvi2.js";var Ne=()=>[`profile`,`status`,`version`];var We=()=>[`profile`,`createdAt`,`expiresAt`,`status`];var Oe=(a,i)=>({count:a,total:i});var Pe=()=>({dateStyle:`medium`,timeStyle:`short`});var Ve=(a,i)=>i.item.id;var Ae=(a,i)=>i.id;function De(a,i){if(a&1&&(Us(0,`a`,25),y_(1),fd()),a&2){let t=qS();Fy(`queryParams`,t.navigation.params()),ZC(),nv(t.i18n.t(`configurationWorkspace.newInvitation`))}}function He(a,i){if(a&1&&(Us(0,`a`,26),y_(1),fd()),a&2){let t=qS();ZC(),nv(t.i18n.t(`role.title`))}}function Be(a,i){if(a&1){let t=zS();Us(0,`p`,27),y_(1),fd(),Us(2,`button`,28),Gy(`click`,function(){Ip(t);return wp(qS().reload())}),y_(3),fd()}if(a&2){let t=qS();ZC(),nv(t.i18n.t(i)),ZC(),Fy(`disabled`,t.busy()||t.loading()),ZC(),vd(` `,t.i18n.t(`team.reload`),` `)}}function Re(a,i){if(a&1){let t=zS();Us(0,`app-filter-choice`,29),Gy(`committed`,function(l){Ip(t);let p=qS(),S=t_(19);return p.members.filter(l),wp(S.close())}),fd()}if(a&2){let t=qS();Fy(`label`,t.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,t.i18n.t(`listWorkspace.noChoices`))(`options`,t.members.filterOptions())(`value`,t.members.query().filter)(`disabled`,t.loading()||t.busy())}}function qe(a,i){if(a&1){let t=zS();Us(0,`div`,17)(1,`button`,30),Gy(`click`,function(){Ip(t);let l=qS(),p=t_(17);return l.members.filter(`all`),wp(p.focus())}),fd()()}if(a&2){let t=qS();ZC(),Fy(`label`,t.members.filterSummary())(`disabled`,t.loading()||t.busy())}}function Ue(a,i){if(a&1&&(Us(0,`option`,37),y_(1),fd()),a&2){let t=i.$implicit;Fy(`value`,`custom:`+t.id),ZC(),nv(t.name)}}function $e(a,i){if(a&1){let t=zS();Us(0,`button`,28),Gy(`click`,function(){Ip(t),qS();let l=S_(0);return wp(qS().applyProfile(l))}),y_(1),fd()}if(a&2){let t=qS(2);Fy(`disabled`,t.busy()||t.loading()),ZC(),vd(` `,t.i18n.t(`configurationWorkspace.applyProfile`),` `)}}function ze(a,i){if(a&1){let t=zS();Us(0,`button`,40),Gy(`click`,function(){Ip(t),qS();let l=S_(0);return wp(qS().update(l,l.profile,l.disabledAt===null))}),y_(1),fd()}if(a&2){qS();let t=S_(0),e=qS();Fy(`variant`,e.memberAccessVariant(t))(`disabled`,e.busy()||e.loading()),ZC(),vd(` `,e.i18n.t(t.disabledAt===null?`team.disable`:`team.enable`),` `)}}function je(a,i){if(a&1&&(lv(0),Us(1,`tr`)(2,`th`,31)(3,`div`,32),Py(4,`app-entity-icon`,33),Us(5,`span`,34),y_(6),fd()()(),Us(7,`td`)(8,`span`,34),y_(9),fd()(),Us(10,`td`)(11,`label`,35),y_(12),Us(13,`select`,36)(14,`option`,37),y_(15),fd(),Us(16,`option`,37),y_(17),fd(),Us(18,`option`,37),y_(19),fd(),Us(20,`option`,37),y_(21),fd(),LS(22,Ue,2,2,`option`,37,Ae),fd(),qT(),fd()(),Us(24,`td`),y_(25),fd(),Us(26,`td`)(27,`div`,17),Iy(28,$e,2,2,`button`,38)(29,ze,2,3,`button`,39),fd()()()),a&2){let t=i.$implicit,e=qS(),l=b_(t.item);ZC(4),Fy(`variant`,e.memberIconVariant(l)),ZC(),Fy(`appSearchHighlight`,e.members.match(t,`displayName`)),ZC(),nv(l.displayName),ZC(2),Fy(`appSearchHighlight`,e.members.match(t,`email`)),ZC(),nv(l.email),ZC(3),vd(``,e.i18n.t(`configurationWorkspace.memberProfile`),` `),ZC(),Fy(`formField`,e.profileForm[l.id]),ZT(),ZC(),Fy(`value`,`accountant`),ZC(),nv(e.i18n.t(`team.accountant`)),ZC(),Fy(`value`,`accounting-validator`),ZC(),vd(` `,e.i18n.t(`team.accountingValidator`),` `),ZC(),Fy(`value`,`accounting-reader`),ZC(),vd(` `,e.i18n.t(`team.accountingReader`),` `),ZC(),Fy(`value`,`collaborator`),ZC(),nv(e.i18n.t(`team.collaborator`)),ZC(),jS(e.data().roles),ZC(3),nv(e.i18n.t(l.disabledAt===null?`team.active`:`team.disabled`)),ZC(3),Fy(`appCan`,`user.update`),ZC(),Fy(`appCan`,`user.update`)}}function Ke(a,i){if(a&1&&(Us(0,`tr`)(1,`td`,41),y_(2),fd()()),a&2){let t=qS();ZC(2),nv(t.i18n.t(`team.empty`))}}function Ge(a,i){if(a&1&&(Us(0,`footer`,21)(1,`p`,42),y_(2),fd()()),a&2){let t=qS();ZC(2),vd(` `,t.i18n.plural(`adminPages.membersCount`,F_(1,Oe,t.members.results().length,t.data().members.length)),` `)}}function Je(a,i){if(a&1){let t=zS();Us(0,`app-filter-choice`,29),Gy(`committed`,function(l){Ip(t);let p=qS(),S=t_(49);return p.invitations.filter(l),wp(S.close())}),fd()}if(a&2){let t=qS();Fy(`label`,t.i18n.t(`listWorkspace.searchChoices`))(`emptyLabel`,t.i18n.t(`listWorkspace.noChoices`))(`options`,t.invitations.filterOptions())(`value`,t.invitations.query().filter)(`disabled`,t.loading()||t.busy())}}function Qe(a,i){if(a&1){let t=zS();Us(0,`div`,17)(1,`button`,30),Gy(`click`,function(){Ip(t);let l=qS(),p=t_(47);return l.invitations.filter(`all`),wp(p.focus())}),fd()()}if(a&2){let t=qS();ZC(),Fy(`label`,t.invitations.filterSummary())(`disabled`,t.loading()||t.busy())}}function Xe(a,i){if(a&1&&y_(0),a&2)vd(` `,qS(2).i18n.t(`team.accepted`),` `)}function Ye(a,i){if(a&1&&y_(0),a&2)vd(` `,qS(2).i18n.t(`team.cancelled`),` `)}function Ze(a,i){if(a&1&&y_(0),a&2)vd(` `,qS(2).i18n.t(`team.expired`),` `)}function et(a,i){if(a&1){let t=zS();Us(0,`button`,28),Gy(`click`,function(){Ip(t),qS(2);let l=S_(0);return wp(qS().cancel(l.id))}),y_(1),fd()}if(a&2){let t=qS(3);Fy(`disabled`,t.busy()||t.loading()),ZC(),vd(` `,t.i18n.t(`team.cancel`),` `)}}function tt(a,i){a&1&&Iy(0,et,2,2,`button`,38),a&2&&Fy(`appCan`,`user.create`)}function it(a,i){if(a&1&&(lv(0),Us(1,`tr`)(2,`th`,31)(3,`div`,32),Py(4,`app-entity-icon`,43),Us(5,`span`,34),y_(6),fd()()(),Us(7,`td`)(8,`span`,34),y_(9),fd()(),Us(10,`td`),y_(11),fd(),Us(12,`td`),y_(13),j_(14,`localizedDate`),fd(),Us(15,`td`),y_(16),j_(17,`localizedDate`),fd(),Us(18,`td`),OS(19,Xe,1,1)(20,Ye,1,1)(21,Ze,1,1)(22,tt,1,1,`button`,44),fd()()),a&2){let t=i.$implicit,e=qS(),l=b_(t.item);ZC(4),Fy(`variant`,e.invitationIconVariant(l)),ZC(),Fy(`appSearchHighlight`,e.invitations.match(t,`displayName`)),ZC(),nv(l.displayName),ZC(2),Fy(`appSearchHighlight`,e.invitations.match(t,`email`)),ZC(),nv(l.email),ZC(2),nv(e.profileLabel(l.profile)),ZC(2),vd(` `,H_(14,10,e.date(l.createdAt),e.i18n.language(),O_(18,Pe)),` `),ZC(3),vd(` `,H_(17,14,e.date(l.expiresAt),e.i18n.language(),O_(19,Pe)),` `),ZC(3),kS(l.acceptedAt!==null?19:l.cancelledAt!==null?20:l.expiresAt<=e.now()?21:22)}}function nt(a,i){if(a&1&&(Us(0,`tr`)(1,`td`,45),y_(2),fd()()),a&2){let t=qS();ZC(2),nv(t.i18n.t(`team.empty`))}}function at(a,i){if(a&1&&(Us(0,`footer`,21)(1,`p`,42),y_(2),fd()()),a&2){let t=qS();ZC(2),vd(` `,t.i18n.plural(`adminPages.invitationsCount`,F_(1,Oe,t.invitations.results().length,t.data().invitations.length)),` `)}}var Le=class a{authentication=g(E);memberIconVariant(i){return i.disabledAt===null?`success`:`default`}memberAccessVariant(i){return i.disabledAt===null?`danger`:`success`}invitationIconVariant(i){return i.acceptedAt!==null?`success`:i.cancelledAt!==null?`default`:i.expiresAt<=this.now()?`warning`:`info`}i18n=g(Ie);navigation=g(u$1);api=g(u$2);confirmation=g(P);destroyRef=g(pe);flash=g(m$2);data=Ke$1({members:[],invitations:[],roles:[]});members=N$1(Ft(()=>this.data().members),r);invitations=N$1(Ft(()=>this.data().invitations),n);memberFilterCount=Ft(()=>+(this.members.query().filter!==`all`));invitationFilterCount=Ft(()=>+(this.invitations.query().filter!==`all`));memberExport=Ft(()=>this.members.rows().map(i=>[i.profile,i.disabledAt===null?`active`:`disabled`,i.version]));invitationExport=Ft(()=>this.invitations.rows().map(i=>[i.profile,new Date(i.createdAt).toISOString(),new Date(i.expiresAt).toISOString(),i.acceptedAt!==null?`accepted`:i.cancelledAt!==null?`cancelled`:i.expiresAt<=this.now()?`expired`:`pending`]));busy=Ke$1(!1);loading=Ke$1(!0);error=Ke$1(void 0);errorOperation=Ke$1(`load`);errorMessage=Ft(()=>b$1(this.error(),this.errorOperation()));now=Ke$1(Date.now());profiles=Ke$1({});hasUnsavedChanges=Ft(()=>this.data().members.some(i=>this.profiles()[i.id]!==i.profile));profileForm=nr(this.profiles,i=>{an(i,()=>!this.authentication.can(`user.update`)||this.busy()||this.loading())});constructor(){Ol(()=>{this.load()})}async readTeam(){try{let i=await this.api.list();if(this.destroyRef.destroyed)return;if(i.success)return this.error.set(void 0),this.now.set(Date.now()),i.result;this.errorOperation.set(`load`),this.error.set(i.code)}catch{this.destroyRef.destroyed||(this.errorOperation.set(`load`),this.error.set(`team.error`))}}async load(){this.loading.set(!0);let i=await this.readTeam();i&&(this.data.set(i),this.profiles.set(Object.fromEntries(i.members.map(t=>[t.id,t.profile]))),this.profileForm().reset()),this.loading.set(!1)}async reload(){if(!(this.busy()||this.loading())){this.busy.set(!0);try{if(this.hasUnsavedChanges()&&!await this.confirmation.request(this.i18n.t(`team.reloadConfirm`))||this.destroyRef.destroyed)return;await this.load()}catch{this.destroyRef.destroyed||(this.errorOperation.set(`load`),this.error.set(`team.error`))}finally{this.busy.set(!1)}}}async cancel(i){if(!(this.busy()||this.loading())){this.busy.set(!0);try{if(!await this.confirmation.request(this.i18n.t(`team.confirmCancel`))||this.destroyRef.destroyed)return;let t=await this.api.cancel(i);if(this.destroyRef.destroyed)return;if(!t.success){this.errorOperation.set(`cancel`),this.error.set(t.code);return}let e=await this.readTeam();if(!e)return;this.data.update(l$3=>m(l({},l$3),{invitations:e.invitations})),this.showSaved()}catch{this.destroyRef.destroyed||(this.errorOperation.set(`cancel`),this.error.set(`team.error`))}finally{this.busy.set(!1)}}}async update(i,t,e){if(this.busy()||this.loading())return;let l$4=this.profiles()[i.id]===t;this.busy.set(!0);try{if(!await this.confirmation.request(this.i18n.t(`team.confirmUpdate`))||this.destroyRef.destroyed)return;let p=await this.api.update(i.id,{expectedVersion:i.version,profile:t,disabled:e});if(this.destroyRef.destroyed)return;if(!p.success){this.errorOperation.set(`update`),this.error.set(p.code);return}let S=await this.readTeam();if(!S)return;let L=S.members.find(M=>M.id===i.id);if(!L){this.errorOperation.set(`load`),this.error.set(`team.error`);return}this.data.update(M=>m(l({},M),{members:M.members.map(U=>U.id===i.id?L:U)})),l$4&&this.profileForm[i.id]().reset(L.profile),this.showSaved()}catch{this.destroyRef.destroyed||(this.errorOperation.set(`update`),this.error.set(`team.error`))}finally{this.busy.set(!1)}}async applyProfile(i){let t=wu.decodeUnknownOption(Ba)(this.profiles()[i.id]);Me.isSome(t)&&await this.update(i,t.value,i.disabledAt!==null)}showSaved(){this.flash.show(this.i18n.t(`team.saved`),`success`)}profileLabel(i){return i===`accountant`?this.i18n.t(`team.accountant`):i===`accounting-validator`?this.i18n.t(`team.accountingValidator`):i===`accounting-reader`?this.i18n.t(`team.accountingReader`):i===`collaborator`?this.i18n.t(`team.collaborator`):this.data().roles.find(({id:t})=>i===`custom:${t}`)?.name??i}date(i){return new Date(i)}canDeactivate(){return this.busy()||this.loading()?!1:!this.hasUnsavedChanges()||this.confirmation.request(this.i18n.t(`team.leave`))}beforeUnload(i){(this.busy()||this.hasUnsavedChanges())&&(i.preventDefault(),i.returnValue=``)}static ɵfac=function(t){return new(t||a)};static ɵcmp=Fb({type:a,selectors:[[`app-team`]],hostAttrs:[1,`page-container`],hostBindings:function(t,e){t&1&&Gy(`beforeunload`,function(p){return e.beforeUnload(p)},Zw)},features:[A_([d,u$1])],decls:74,vars:75,consts:[[`memberSearch`,``],[`memberMenu`,``],[`invitationSearch`,``],[`invitationMenu`,``],[`aria-labelledby`,`team-title`,1,`team-page`],[`id`,`team-title`],[1,`muted`],[`pageActions`,``,1,`spacer-x-3`],[`appLinkButton`,``,`icon`,`mail`,`variant`,`primary`,`routerLink`,`invitations/new`,3,`queryParams`,4,`appCan`],[`appLinkButton`,``,`icon`,`user`,`routerLink`,`roles`,4,`appCan`],[`appNotice`,``,`variant`,`info`],[`appListWorkspace`,``,`aria-labelledby`,`members-title`],[`id`,`members-title`],[`listSearch`,``,3,`valueChange`,`label`,`value`],[`listFilters`,``,3,`label`,`closeLabel`,`backLabel`,`activeCount`,`disabled`],[`appFilterPanel`,``,3,`label`,`summary`],[`listActions`,``,`filename`,`team-members.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[1,`spacer-x-3`],[`appDataTable`,``],[`scope`,`col`],[`appTableSort`,``,3,`click`,`label`,`direction`],[1,`list-summary`,`spacer-y-2`],[`appListWorkspace`,``,`aria-labelledby`,`invitations-title`],[`id`,`invitations-title`],[`listActions`,``,`filename`,`team-invitations.csv`,3,`columns`,`rows`,`label`,`emptyHint`,`pendingHint`,`pending`],[`appLinkButton`,``,`icon`,`mail`,`variant`,`primary`,`routerLink`,`invitations/new`,3,`queryParams`],[`appLinkButton`,``,`icon`,`user`,`routerLink`,`roles`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`],[3,`committed`,`label`,`emptyLabel`,`options`,`value`,`disabled`],[`appFilterChip`,``,3,`click`,`label`,`disabled`],[`scope`,`row`],[1,`entity-label`],[`icon`,`user`,3,`variant`],[3,`appSearchHighlight`],[1,`field`],[`appFilterSelect`,``,1,`select`,3,`formField`],[3,`value`],[`appButton`,``,`type`,`button`,3,`disabled`,`click`,4,`appCan`],[`appButton`,``,`type`,`button`,3,`variant`,`disabled`,`click`,4,`appCan`],[`appButton`,``,`type`,`button`,3,`click`,`variant`,`disabled`],[`colspan`,`5`],[`role`,`status`],[`icon`,`mail`,3,`variant`],[`appButton`,``,`type`,`button`,3,`disabled`],[`colspan`,`6`]],template:function(t,e){if(t&1&&(Us(0,`section`,4)(1,`app-page-header`)(2,`h1`,5),y_(3),fd(),Us(4,`p`,6),y_(5),fd(),Us(6,`div`,7),Iy(7,De,2,2,`a`,8)(8,He,2,1,`a`,9),fd()(),Us(9,`p`,10),y_(10),fd(),OS(11,Be,4,3),Us(12,`section`,11)(13,`h2`,12),y_(14),fd(),Us(15,`app-list-toolbar`)(16,`app-list-search`,13,0),Gy(`valueChange`,function(p){return e.members.search(p)}),fd(),Us(18,`app-filter-menu`,14,1),Iy(20,Re,1,5,`ng-template`,15),fd(),Py(21,`app-table-export`,16),fd(),OS(22,qe,2,2,`div`,17),Us(23,`div`,18)(24,`table`)(25,`thead`)(26,`tr`)(27,`th`,19)(28,`button`,20),Gy(`click`,function(){return e.members.sort(`name`)}),fd()(),Us(29,`th`,19)(30,`button`,20),Gy(`click`,function(){return e.members.sort(`email`)}),fd()(),Us(31,`th`,19)(32,`button`,20),Gy(`click`,function(){return e.members.sort(`profile`)}),fd()(),Us(33,`th`,19)(34,`button`,20),Gy(`click`,function(){return e.members.sort(`status`)}),fd()(),Us(35,`th`,19),y_(36),fd()()(),Us(37,`tbody`),LS(38,je,30,19,`tr`,null,Ve,!1,Ke,3,1,`tr`),fd()()(),OS(41,Ge,3,4,`footer`,21),fd(),Us(42,`section`,22)(43,`h2`,23),y_(44),fd(),Us(45,`app-list-toolbar`)(46,`app-list-search`,13,2),Gy(`valueChange`,function(p){return e.invitations.search(p)}),fd(),Us(48,`app-filter-menu`,14,3),Iy(50,Je,1,5,`ng-template`,15),fd(),Py(51,`app-table-export`,24),fd(),OS(52,Qe,2,2,`div`,17),Us(53,`div`,18)(54,`table`)(55,`thead`)(56,`tr`)(57,`th`,19)(58,`button`,20),Gy(`click`,function(){return e.invitations.sort(`name`)}),fd()(),Us(59,`th`,19)(60,`button`,20),Gy(`click`,function(){return e.invitations.sort(`email`)}),fd()(),Us(61,`th`,19)(62,`button`,20),Gy(`click`,function(){return e.invitations.sort(`profile`)}),fd()(),Us(63,`th`,19)(64,`button`,20),Gy(`click`,function(){return e.invitations.sort(`date`)}),fd()(),Us(65,`th`,19)(66,`button`,20),Gy(`click`,function(){return e.invitations.sort(`expires`)}),fd()(),Us(67,`th`,19),y_(68),fd()()(),Us(69,`tbody`),LS(70,it,23,20,`tr`,null,Ve,!1,nt,3,1,`tr`),fd()()(),OS(73,at,3,4,`footer`,21),fd()()),t&2){let l;ZC(3),nv(e.i18n.t(`team.title`)),ZC(2),nv(e.i18n.t(`team.intro`)),ZC(2),Fy(`appCan`,`user.create`),ZC(),Fy(`appCan`,`role.read`),ZC(2),nv(e.i18n.t(`team.profiles`)),ZC(),kS((l=e.errorMessage())?11:-1,l),ZC(3),nv(e.i18n.t(`team.members`)),ZC(2),Fy(`label`,e.i18n.t(`configurationWorkspace.searchMembers`))(`value`,e.members.query().q),ZC(2),Fy(`label`,e.i18n.t(`listWorkspace.filters`))(`closeLabel`,e.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,e.i18n.t(`listWorkspace.backFilters`))(`activeCount`,e.memberFilterCount())(`disabled`,e.loading()||e.busy()),ZC(2),Fy(`label`,e.i18n.t(`configurationWorkspace.status`))(`summary`,e.members.filterSummary()),ZC(),Fy(`columns`,O_(73,Ne))(`rows`,e.memberExport())(`label`,e.i18n.t(`listWorkspace.exportCsv`)+` — `+e.i18n.t(`configurationWorkspace.teamExportScope`))(`emptyHint`,e.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,e.i18n.t(`listWorkspace.exportPending`))(`pending`,e.loading()||e.busy()||e.error()!==void 0),ZC(),kS(e.memberFilterCount()?22:-1),ZC(5),ky(`aria-sort`,e.members.direction(`name`)),ZC(),Fy(`label`,e.i18n.t(`team.name`))(`direction`,e.members.direction(`name`)),ZC(),ky(`aria-sort`,e.members.direction(`email`)),ZC(),Fy(`label`,e.i18n.t(`team.email`))(`direction`,e.members.direction(`email`)),ZC(),ky(`aria-sort`,e.members.direction(`profile`)),ZC(),Fy(`label`,e.i18n.t(`team.profile`))(`direction`,e.members.direction(`profile`)),ZC(),ky(`aria-sort`,e.members.direction(`status`)),ZC(),Fy(`label`,e.i18n.t(`configurationWorkspace.status`))(`direction`,e.members.direction(`status`)),ZC(2),nv(e.i18n.t(`configurationWorkspace.actions`)),ZC(2),jS(e.members.results()),ZC(3),kS(e.loading()?-1:41),ZC(3),nv(e.i18n.t(`team.invitations`)),ZC(2),Fy(`label`,e.i18n.t(`configurationWorkspace.searchInvitations`))(`value`,e.invitations.query().q),ZC(2),Fy(`label`,e.i18n.t(`listWorkspace.filters`))(`closeLabel`,e.i18n.t(`listWorkspace.closeFilters`))(`backLabel`,e.i18n.t(`listWorkspace.backFilters`))(`activeCount`,e.invitationFilterCount())(`disabled`,e.loading()||e.busy()),ZC(2),Fy(`label`,e.i18n.t(`team.profile`))(`summary`,e.invitations.filterSummary()),ZC(),Fy(`columns`,O_(74,We))(`rows`,e.invitationExport())(`label`,e.i18n.t(`listWorkspace.exportCsv`)+` — `+e.i18n.t(`configurationWorkspace.teamExportScope`))(`emptyHint`,e.i18n.t(`listWorkspace.exportEmpty`))(`pendingHint`,e.i18n.t(`listWorkspace.exportPending`))(`pending`,e.loading()||e.busy()||e.error()!==void 0),ZC(),kS(e.invitationFilterCount()?52:-1),ZC(5),ky(`aria-sort`,e.invitations.direction(`name`)),ZC(),Fy(`label`,e.i18n.t(`team.name`))(`direction`,e.invitations.direction(`name`)),ZC(),ky(`aria-sort`,e.invitations.direction(`email`)),ZC(),Fy(`label`,e.i18n.t(`team.email`))(`direction`,e.invitations.direction(`email`)),ZC(),ky(`aria-sort`,e.invitations.direction(`profile`)),ZC(),Fy(`label`,e.i18n.t(`team.profile`))(`direction`,e.invitations.direction(`profile`)),ZC(),ky(`aria-sort`,e.invitations.direction(`date`)),ZC(),Fy(`label`,e.i18n.t(`configurationWorkspace.createdAt`))(`direction`,e.invitations.direction(`date`)),ZC(),ky(`aria-sort`,e.invitations.direction(`expires`)),ZC(),Fy(`label`,e.i18n.t(`team.expires`))(`direction`,e.invitations.direction(`expires`)),ZC(2),nv(e.i18n.t(`configurationWorkspace.status`)),ZC(2),jS(e.invitations.results()),ZC(3),kS(e.loading()?-1:73)}},dependencies:[Ae$1,l$1,yn,N,k,g$1,Dt,c,l$2,u,U,B,Q,Z,b,Fe,h,$,m$1,p],styles:[`.entity-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--%NS%space-2);min-inline-size:0}.entity-label[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:last-child{min-inline-size:0}[_nghost-%COMP%]{display:block}.team-page[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-6);padding:var(--%NS%page-header-y) var(--%NS%page-x)}.team-link[_ngcontent-%COMP%]{display:grid;gap:var(--%NS%space-4)}.team-link[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{justify-self:start}form[_ngcontent-%COMP%], label[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{display:grid;gap:.75rem}ul[_ngcontent-%COMP%]{list-style:none;padding:0}li[_ngcontent-%COMP%]{overflow-wrap:anywhere;display:grid;gap:var(--%NS%space-3);justify-items:start;padding:var(--%NS%panel-padding)}`]})};export{Le as Team};
@@ -0,0 +1 @@
1
+ import{$t as ZC,A as Gy,C as F_,D as Fy,Dn as g,E as Ft,Ir as wp,It as Us,Jr as zS,K as Ke,Nr as vd,Rn as jS,Tn as fd,Wn as kS,Wr as y_,X as LS,ft as Ol,ht as PS,l as A_,lt as OS,pr as qS,rr as nv,vt as Py,w as Fb,z as Ip}from"./chunk-BAHiFuUo.js";import{a as T,m as Ie,r as N,v as Dt,y as G}from"./main-LXYWXFW4.js";import{wi as wu}from"./chunk-BAe_07VM.js";import"./chunk-Dv9sNWWK.js";import{io as ck,ys as jT}from"./chunk-D8Ui_APT.js";import{t as g$1}from"./chunk-B56nz2lI.js";import{t as k}from"./chunk-IrDYxRzS.js";import"./chunk-DjewtV43.js";import{t as D}from"./chunk-BwFjLr9D2.js";import"./chunk-C6M6lCrw2.js";import"./chunk-DVbkiKVh2.js";import{a as q,i as f,t as L}from"./chunk-Qweefwro2.js";import{n as m,t as l}from"./chunk-DJwuZjJg2.js";import"./chunk-a58d-9ZM2.js";import{a as v,i as u,n as i,t as f$1}from"./chunk-D_X9J-dz2.js";var X=(n,c)=>[`/services`,n,`tests`,c];function Y(n,c){if(n&1&&Py(0,`app-tabs`,3),n&2){let e=qS();Fy(`label`,e.i18n.t(`configurationWorkspace.services`))(`tabs`,e.tabs())(`preserveQuery`,!0)(`preserveFragment`,!0)}}function Z(n,c){if(n&1&&(Us(0,`code`),y_(1),fd()),n&2){let e=c.$implicit;ZC(),nv(e)}}function ee(n,c){if(n&1&&(Us(0,`h2`),y_(1),fd(),Us(2,`dl`)(3,`dt`),y_(4),fd(),Us(5,`dd`),y_(6),fd(),Us(7,`dt`),y_(8),fd(),Us(9,`dd`),y_(10),fd(),Us(11,`dt`),y_(12),fd(),Us(13,`dd`),y_(14),fd()(),Us(15,`p`),y_(16),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(`emailTest.routing`)),ZC(3),nv(e.i18n.t(`emailTest.from`)),ZC(2),nv(e.addresses.from),ZC(2),nv(e.i18n.t(`emailTest.replyTo`)),ZC(2),nv(e.addresses.replyTo),ZC(2),nv(e.i18n.t(`emailTest.recipient`)),ZC(2),nv(e.addresses.recipient),ZC(2),nv(e.i18n.t(`emailTest.routingHint`))}}function te(n,c){if(n&1&&(Us(0,`dl`)(1,`dt`),y_(2),fd(),Us(3,`dd`),y_(4),fd(),Us(5,`dt`),y_(6),fd(),Us(7,`dd`),y_(8),fd()()),n&2){let e=c,d=qS(3);ZC(2),nv(d.i18n.t(`checkout.key`)),ZC(2),nv(d.i18n.t(d.keyLabel(e))),ZC(2),nv(d.i18n.t(`checkout.webhook`)),ZC(2),nv(d.i18n.t(d.webhookLabel(e)))}}function ne(n,c){if(n&1&&(Us(0,`p`,7),y_(1),fd(),OS(2,te,9,4,`dl`)),n&2){let e,d=qS(2);ZC(),nv(d.i18n.t(`checkout.safety`)),ZC(),kS((e=d.stripeConnection())?2:-1,e)}}function ie(n,c){if(n&1&&(Us(0,`p`,5),y_(1),fd()),n&2){let e=qS(2);ZC(),nv(e.i18n.t(`connections.pending`))}}function ae(n,c){if(n&1&&(Us(0,`a`,6),y_(1),fd()),n&2){let e=qS(2);Fy(`routerLink`,F_(3,X,e.provider,c))(`queryParams`,e.testParams()),ZC(),nv(e.i18n.t(`configurationWorkspace.testDetail`))}}function oe(n,c){if(n&1&&(Us(0,`p`,5),y_(1),fd(),Us(2,`dl`)(3,`dt`),y_(4),fd(),Us(5,`dd`),y_(6),fd(),Us(7,`dt`),y_(8),fd(),Us(9,`dd`),y_(10),fd()(),LS(11,Z,2,1,`code`,null,PS),OS(13,ee,17,8)(14,ne,3,2)(15,ie,2,1,`p`,5),OS(16,ae,2,6,`a`,6)),n&2){let e,d=c,l=qS();ZC(),nv(l.i18n.t(`configurationWorkspace.notVerified`)),ZC(3),nv(l.i18n.t(`connections.credentials`)),ZC(2),nv(l.i18n.t(l.credentialsLabel(d))),ZC(2),nv(l.i18n.t(`connections.mode`)),ZC(2),nv(l.i18n.t(l.modeLabel(d))),ZC(),jS(d.missingSecrets),ZC(2),kS(d.provider===`resend`?13:d.provider===`stripe`?14:15),ZC(3),kS((e=l.tabs().length>0&&l.returnRequest())?16:-1,e)}}function re(n,c){if(n&1){let e=zS();Us(0,`p`,8),y_(1),fd(),Us(2,`button`,9),Gy(`click`,function(){Ip(e);return wp(qS().load())}),y_(3),fd()}if(n&2){let e=qS();ZC(),nv(e.i18n.t(`connections.error`)),ZC(),Fy(`disabled`,e.loading()),ZC(),vd(` `,e.i18n.t(`connections.reload`),` `)}}function de(n,c){if(n&1&&(Us(0,`p`,4),y_(1),fd()),n&2){let e=qS();ZC(),nv(e.i18n.t(`connections.loading`))}}var J=class n{i18n=g(Ie);data=g(i);provider=wu.decodeUnknownSync(ck.fields.provider)(g(G).snapshot.data.provider);queryParams=T(g(G).queryParamMap,{requireSync:!0});testParams=Ft(()=>l(this.provider,this.queryParams()));tabs=Ft(()=>m(this.provider,this.i18n));current=Ft(()=>this.data.connections().find(c=>c.provider===this.provider));providerName=f$1;credentialsLabel=u;modeLabel=v;keyLabel=q;webhookLabel=L;addresses=jT;returnRequest=Ft(()=>this.queryParams().get(`request`));checkoutApi=g(f);stripeConnection=Ke(void 0);stripeLoading=Ke(!1);stripeError=Ke(!1);loading=Ft(()=>this.data.loading()||this.stripeLoading());error=Ft(()=>this.data.error()||this.stripeError());constructor(){Ol(()=>{this.load()})}async load(){await Promise.all([this.data.load(),this.loadStripeConnection()])}async loadStripeConnection(){if(this.provider===`stripe`){this.stripeLoading.set(!0),this.stripeError.set(!1);try{this.stripeConnection.set(await this.checkoutApi.connection())}catch{this.stripeError.set(!0)}finally{this.stripeLoading.set(!1)}}}static ɵfac=function(e){return new(e||n)};static ɵcmp=Fb({type:n,selectors:[[`app-provider-connection`]],hostAttrs:[1,`page-container`],features:[A_([i])],decls:12,vars:7,consts:[[1,`detail-page`,`form-page`],[`layout`,`stacked`],[`pageBack`,``,`routerLink`,`/services`],[3,`label`,`tabs`,`preserveQuery`,`preserveFragment`],[`role`,`status`],[`appNotice`,``],[`appLinkButton`,``,`variant`,`primary`,3,`routerLink`,`queryParams`],[`appNotice`,``,`variant`,`warning`],[`appNotice`,``,`variant`,`danger`,`role`,`alert`],[`appButton`,``,`type`,`button`,3,`click`,`disabled`]],template:function(e,d){if(e&1&&(Us(0,`section`,0)(1,`app-page-header`,1)(2,`a`,2),y_(3),fd(),Us(4,`h1`),y_(5),fd(),Us(6,`p`),y_(7),fd()(),OS(8,Y,1,4,`app-tabs`,3),OS(9,oe,17,7),OS(10,re,4,3),OS(11,de,2,1,`p`,4),fd()),e&2){let l;ZC(3),nv(d.i18n.t(`connections.back`)),ZC(2),nv(d.i18n.t(d.providerName(d.provider))),ZC(2),nv(d.i18n.t(`configurationWorkspace.providerSetup`)),ZC(),kS(d.tabs().length>0?8:-1),ZC(),kS((l=d.current())?9:-1,l),ZC(),kS(d.error()?10:-1),ZC(),kS(d.loading()?11:-1)}},dependencies:[N,k,Dt,g$1,D],styles:[`.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}}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] > section[_ngcontent-%COMP%]:not(.detail-page){padding:var(--%NS%space-6) var(--%NS%page-x)}section[_ngcontent-%COMP%]:not(.detail-page) > *[_ngcontent-%COMP%] + *[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-6)}h2[_ngcontent-%COMP%]{font-size:var(--%NS%text-xl)}h3[_ngcontent-%COMP%]{font-size:var(--%NS%text-lg)}p[_ngcontent-%COMP%]{text-wrap:pretty}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--%NS%space-4)}button[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{overflow-wrap:anywhere}button[_ngcontent-%COMP%]{white-space:normal}code[_ngcontent-%COMP%], dd[_ngcontent-%COMP%]{overflow-wrap:anywhere}dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);gap:var(--%NS%space-2) var(--%NS%space-4)}dt[_ngcontent-%COMP%]{font-weight:600}dd[_ngcontent-%COMP%]{margin:0}.ds-panel[_ngcontent-%COMP%]{padding:var(--%NS%space-4)}.ds-panel[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] + *[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-3)}@media(max-width:40rem){dl[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}dd[_ngcontent-%COMP%] + dt[_ngcontent-%COMP%]{margin-block-start:var(--%NS%space-2)}}p[_ngcontent-%COMP%]{max-inline-size:none}`]})};export{J as ProviderConnection};