@unidy.io/sdk 1.2.0-alpha9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/dist/cjs/_commonjsHelpers-CFO10eej.js +10 -0
  2. package/dist/cjs/_commonjsHelpers-CFO10eej.js.map +1 -0
  3. package/dist/cjs/app-globals-C-Wl5lPS.js +10 -0
  4. package/dist/cjs/app-globals-C-Wl5lPS.js.map +1 -0
  5. package/dist/cjs/{auth-store-DPmGKHZ2.js → auth-store-0vv3uOib.js} +4 -4
  6. package/dist/cjs/{auth-store-DPmGKHZ2.js.map → auth-store-0vv3uOib.js.map} +1 -1
  7. package/dist/cjs/component-DLxnZCW6.js +34 -0
  8. package/dist/cjs/component-DLxnZCW6.js.map +1 -0
  9. package/dist/cjs/component-utils-XXctnOM9.js +38 -0
  10. package/dist/cjs/component-utils-XXctnOM9.js.map +1 -0
  11. package/dist/cjs/de-BWF6Glzg.js +704 -0
  12. package/dist/cjs/de-BWF6Glzg.js.map +1 -0
  13. package/dist/cjs/en-GB-DhD5mdQw.js +119 -0
  14. package/dist/cjs/en-GB-DhD5mdQw.js.map +1 -0
  15. package/dist/cjs/{flash-store-gbSYhPAV.js → flash-store-CR6Umh1O.js} +3 -3
  16. package/dist/cjs/{flash-store-gbSYhPAV.js.map → flash-store-CR6Umh1O.js.map} +1 -1
  17. package/dist/cjs/fr-j2wwoj-A.js +577 -0
  18. package/dist/cjs/fr-j2wwoj-A.js.map +1 -0
  19. package/dist/cjs/has-slot-content-CfJbU4t-.js +37 -0
  20. package/dist/cjs/has-slot-content-CfJbU4t-.js.map +1 -0
  21. package/dist/cjs/{i18n-D5j_Zl-4.js → i18n-ClWrNmGh.js} +100 -4
  22. package/dist/cjs/{i18n-D5j_Zl-4.js.map → i18n-ClWrNmGh.js.map} +1 -1
  23. package/dist/cjs/{index-B325yXfO.js → index-2Fz3r5o0.js} +5 -41
  24. package/dist/cjs/index-2Fz3r5o0.js.map +1 -0
  25. package/dist/cjs/{index-yaeiYlfa.js → index-C6ZBKFYr.js} +3 -3
  26. package/dist/cjs/{index-yaeiYlfa.js.map → index-C6ZBKFYr.js.map} +1 -1
  27. package/dist/cjs/{index-BzPYBLYC.js → index-CpPKy1CZ.js} +1170 -1087
  28. package/dist/cjs/index-CpPKy1CZ.js.map +1 -0
  29. package/dist/cjs/index.cjs.js +24 -11
  30. package/dist/cjs/index.cjs.js.map +1 -1
  31. package/dist/cjs/loader.cjs.js +3 -3
  32. package/dist/cjs/{newsletter-helpers-hdDC5X-V.js → newsletter-helpers-BHvOI8M4.js} +46 -9
  33. package/dist/cjs/newsletter-helpers-BHvOI8M4.js.map +1 -0
  34. package/dist/cjs/{newsletter-store-CupsLgO9.js → newsletter-store-22Jswiqe.js} +5 -3
  35. package/dist/cjs/newsletter-store-22Jswiqe.js.map +1 -0
  36. package/dist/cjs/nl-BE-yKvOp1-G.js +542 -0
  37. package/dist/cjs/nl-BE-yKvOp1-G.js.map +1 -0
  38. package/dist/cjs/{profile-helpers-Bprrm-Xl.js → profile-helpers-BBpAqHjK.js} +4 -4
  39. package/dist/cjs/{profile-helpers-Bprrm-Xl.js.map → profile-helpers-BBpAqHjK.js.map} +1 -1
  40. package/dist/cjs/{profile-store-C_q-TuA_.js → profile-store-CQEQhPQD.js} +4 -4
  41. package/dist/cjs/{profile-store-C_q-TuA_.js.map → profile-store-CQEQhPQD.js.map} +1 -1
  42. package/dist/cjs/redirect-with-token-wupYX97S.js +37 -0
  43. package/dist/cjs/redirect-with-token-wupYX97S.js.map +1 -0
  44. package/dist/cjs/ro-CXq9d1lv.js +578 -0
  45. package/dist/cjs/ro-CXq9d1lv.js.map +1 -0
  46. package/dist/cjs/sdk.cjs.js +3 -3
  47. package/dist/cjs/sv-CMln4V33.js +597 -0
  48. package/dist/cjs/sv-CMln4V33.js.map +1 -0
  49. package/dist/cjs/u-conditional-render.cjs.entry.js +14 -14
  50. package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
  51. package/dist/cjs/u-config.cjs.entry.js +24 -11
  52. package/dist/cjs/u-config.entry.cjs.js.map +1 -1
  53. package/dist/cjs/u-email-field.cjs.entry.js +7 -7
  54. package/dist/cjs/u-error-message.cjs.entry.js +49 -22
  55. package/dist/cjs/u-error-message.entry.cjs.js.map +1 -1
  56. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
  57. package/dist/cjs/u-field_2.cjs.entry.js +124 -12
  58. package/dist/cjs/u-flash-message.cjs.entry.js +3 -3
  59. package/dist/cjs/u-full-profile.cjs.entry.js +6 -6
  60. package/dist/cjs/u-jump-to-service.cjs.entry.js +23 -44
  61. package/dist/cjs/u-jump-to-service.entry.cjs.js.map +1 -1
  62. package/dist/cjs/u-jump-to-unidy.cjs.entry.js +22 -43
  63. package/dist/cjs/u-jump-to-unidy.entry.cjs.js.map +1 -1
  64. package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -1
  65. package/dist/cjs/u-logout-button_2.cjs.entry.js +15 -22
  66. package/dist/cjs/u-magic-code-field.cjs.entry.js +8 -9
  67. package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
  68. package/dist/cjs/u-missing-field.cjs.entry.js +6 -5
  69. package/dist/cjs/u-missing-field.entry.cjs.js.map +1 -1
  70. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +16 -14
  71. package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
  72. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +11 -12
  73. package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
  74. package/dist/cjs/u-newsletter-consent-checkbox.cjs.entry.js +4 -4
  75. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +15 -20
  76. package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
  77. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +11 -12
  78. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
  79. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +10 -11
  80. package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
  81. package/dist/cjs/u-newsletter-root.cjs.entry.js +45 -22
  82. package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
  83. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +11 -12
  84. package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
  85. package/dist/cjs/u-pagination-button.cjs.entry.js +4 -4
  86. package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
  87. package/dist/cjs/u-pagination-page.cjs.entry.js +4 -4
  88. package/dist/cjs/u-pagination-page.entry.cjs.js.map +1 -1
  89. package/dist/cjs/u-passkey.cjs.entry.js +8 -9
  90. package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
  91. package/dist/cjs/u-password-field.cjs.entry.js +5 -5
  92. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  93. package/dist/cjs/u-profile_2.cjs.entry.js +31 -33
  94. package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
  95. package/dist/cjs/u-reset-password-button.cjs.entry.js +12 -15
  96. package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
  97. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +8 -9
  98. package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
  99. package/dist/cjs/u-signin-root.cjs.entry.js +6 -8
  100. package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -1
  101. package/dist/cjs/u-signin-step.cjs.entry.js +17 -21
  102. package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
  103. package/dist/cjs/u-social-login-button.cjs.entry.js +16 -15
  104. package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -1
  105. package/dist/cjs/u-spinner.cjs.entry.js +3 -3
  106. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  107. package/dist/cjs/u-ticketable-export.cjs.entry.js +76 -0
  108. package/dist/cjs/u-ticketable-export.entry.cjs.js.map +1 -0
  109. package/dist/cjs/u-ticketable-list-D3M8iA-g.js +3991 -0
  110. package/dist/cjs/u-ticketable-list-D3M8iA-g.js.map +1 -0
  111. package/dist/cjs/u-ticketable-list.cjs.entry.js +11 -6118
  112. package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
  113. package/dist/cjs/{unidy-store-BGnWn9pc.js → unidy-store-Bvnl24i9.js} +3 -3
  114. package/dist/cjs/{unidy-store-BGnWn9pc.js.map → unidy-store-Bvnl24i9.js.map} +1 -1
  115. package/dist/collection/api/base-service.js.map +1 -1
  116. package/dist/collection/api/client.js.map +1 -1
  117. package/dist/collection/api/index.js +6 -6
  118. package/dist/collection/api/index.js.map +1 -1
  119. package/dist/collection/api/standalone.js +88 -39
  120. package/dist/collection/api/standalone.js.map +1 -1
  121. package/dist/collection/auth/api/auth.js.map +1 -1
  122. package/dist/collection/auth/api/schemas.js +5 -5
  123. package/dist/collection/auth/api/schemas.js.map +1 -1
  124. package/dist/collection/auth/auth-helpers.js +7 -8
  125. package/dist/collection/auth/auth-helpers.js.map +1 -1
  126. package/dist/collection/auth/auth.js +1 -0
  127. package/dist/collection/auth/auth.js.map +1 -1
  128. package/dist/collection/auth/components/jump-to-service/jump-to-service.js +20 -40
  129. package/dist/collection/auth/components/jump-to-service/jump-to-service.js.map +1 -1
  130. package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js +20 -39
  131. package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js.map +1 -1
  132. package/dist/collection/auth/components/logout-button/logout-button.js +7 -11
  133. package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -1
  134. package/dist/collection/auth/components/missing-field/missing-field.js +25 -1
  135. package/dist/collection/auth/components/missing-field/missing-field.js.map +1 -1
  136. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +33 -7
  137. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
  138. package/dist/collection/auth/components/password-field/password-field.js +1 -1
  139. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js +6 -8
  140. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js.map +1 -1
  141. package/dist/collection/auth/components/signed-in/signed-in.js +2 -5
  142. package/dist/collection/auth/components/signed-in/signed-in.js.map +1 -1
  143. package/dist/collection/auth/components/signin-root/signin-root.js +2 -5
  144. package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -1
  145. package/dist/collection/auth/components/signin-step/signin-step.js +9 -13
  146. package/dist/collection/auth/components/signin-step/signin-step.js.map +1 -1
  147. package/dist/collection/auth/components/social-logins/social-login-button.css +1 -1
  148. package/dist/collection/auth/components/social-logins/social-login-button.js +11 -12
  149. package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -1
  150. package/dist/collection/auth/components/submit-button/auth-submit-button.js +10 -0
  151. package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -1
  152. package/dist/collection/collection-manifest.json +1 -0
  153. package/dist/collection/locales/de.json +16 -0
  154. package/dist/collection/locales/en.json +16 -0
  155. package/dist/collection/locales/fr.json +16 -0
  156. package/dist/collection/locales/it.json +16 -0
  157. package/dist/collection/locales/nl_be.json +16 -0
  158. package/dist/collection/locales/ro.json +16 -0
  159. package/dist/collection/logger.js +0 -37
  160. package/dist/collection/logger.js.map +1 -1
  161. package/dist/collection/newsletter/api/newsletters.js +19 -18
  162. package/dist/collection/newsletter/api/newsletters.js.map +1 -1
  163. package/dist/collection/newsletter/components/consent-checkbox/consent-checkbox.js +1 -1
  164. package/dist/collection/newsletter/components/logout-button/logout-button.js +6 -10
  165. package/dist/collection/newsletter/components/logout-button/logout-button.js.map +1 -1
  166. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js +1 -1
  167. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +65 -10
  168. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -1
  169. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +1 -1
  170. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js +1 -1
  171. package/dist/collection/newsletter/newsletter-helpers.js +39 -2
  172. package/dist/collection/newsletter/newsletter-helpers.js.map +1 -1
  173. package/dist/collection/newsletter/store/newsletter-store.js +2 -0
  174. package/dist/collection/newsletter/store/newsletter-store.js.map +1 -1
  175. package/dist/collection/profile/api/profile.js.map +1 -1
  176. package/dist/collection/profile/api/schemas.js +1 -1
  177. package/dist/collection/profile/api/schemas.js.map +1 -1
  178. package/dist/collection/profile/components/field/field.js +3 -1
  179. package/dist/collection/profile/components/field/field.js.map +1 -1
  180. package/dist/collection/profile/components/full-profile/full-profile.js +1 -1
  181. package/dist/collection/profile/components/raw-field/raw-field.js +40 -7
  182. package/dist/collection/profile/components/raw-field/raw-field.js.map +1 -1
  183. package/dist/collection/profile/store/profile-store.js +1 -1
  184. package/dist/collection/profile/store/profile-store.js.map +1 -1
  185. package/dist/collection/shared/base/component.js +28 -0
  186. package/dist/collection/shared/base/component.js.map +1 -0
  187. package/dist/collection/shared/base/has-slot-content.js +31 -0
  188. package/dist/collection/shared/base/has-slot-content.js.map +1 -0
  189. package/dist/collection/shared/component-utils.js +23 -27
  190. package/dist/collection/shared/component-utils.js.map +1 -1
  191. package/dist/collection/shared/components/conditional-render/conditional-render.js +4 -5
  192. package/dist/collection/shared/components/conditional-render/conditional-render.js.map +1 -1
  193. package/dist/collection/shared/components/config/config.js +18 -5
  194. package/dist/collection/shared/components/config/config.js.map +1 -1
  195. package/dist/collection/shared/components/email-field/email-field.js +1 -1
  196. package/dist/collection/shared/components/error-message/error-message.css +1 -1
  197. package/dist/collection/shared/components/error-message/error-message.js +44 -17
  198. package/dist/collection/shared/components/error-message/error-message.js.map +1 -1
  199. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  200. package/dist/collection/shared/components/spinner/spinner.js +1 -1
  201. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  202. package/dist/collection/shared/components/submit-button/submit-button.js +12 -23
  203. package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
  204. package/dist/collection/shared/context-utils.js +96 -0
  205. package/dist/collection/shared/context-utils.js.map +1 -0
  206. package/dist/collection/shared/utils/redirect-with-token.js +30 -0
  207. package/dist/collection/shared/utils/redirect-with-token.js.map +1 -0
  208. package/dist/collection/shared/utils/url-utils.js +25 -0
  209. package/dist/collection/shared/utils/url-utils.js.map +1 -0
  210. package/dist/collection/ticketable/api/schemas.js +10 -2
  211. package/dist/collection/ticketable/api/schemas.js.map +1 -1
  212. package/dist/collection/ticketable/api/subscriptions.js +22 -1
  213. package/dist/collection/ticketable/api/subscriptions.js.map +1 -1
  214. package/dist/collection/ticketable/api/tickets.js +22 -1
  215. package/dist/collection/ticketable/api/tickets.js.map +1 -1
  216. package/dist/collection/ticketable/components/pagination/pagination-button.js +3 -5
  217. package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
  218. package/dist/collection/ticketable/components/pagination/pagination-page.js +3 -5
  219. package/dist/collection/ticketable/components/pagination/pagination-page.js.map +1 -1
  220. package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js +175 -0
  221. package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js.map +1 -0
  222. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +163 -25
  223. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
  224. package/dist/collection/ticketable/index.js +1 -0
  225. package/dist/collection/ticketable/index.js.map +1 -1
  226. package/dist/components/_commonjsHelpers.js +8 -0
  227. package/dist/components/_commonjsHelpers.js.map +1 -0
  228. package/dist/components/component-utils.js +25 -28
  229. package/dist/components/component-utils.js.map +1 -1
  230. package/dist/components/component.js +33 -0
  231. package/dist/components/component.js.map +1 -0
  232. package/dist/components/de.js +702 -0
  233. package/dist/components/de.js.map +1 -0
  234. package/dist/components/en-GB.js +117 -0
  235. package/dist/components/en-GB.js.map +1 -0
  236. package/dist/components/field.js +3 -1
  237. package/dist/components/field.js.map +1 -1
  238. package/dist/components/fr.js +575 -0
  239. package/dist/components/fr.js.map +1 -0
  240. package/dist/components/has-slot-content.js +35 -0
  241. package/dist/components/has-slot-content.js.map +1 -0
  242. package/dist/components/i18n.js +96 -0
  243. package/dist/components/i18n.js.map +1 -1
  244. package/dist/components/index.js +11 -3
  245. package/dist/components/index.js.map +1 -1
  246. package/dist/components/index2.js +1158 -1083
  247. package/dist/components/index2.js.map +1 -1
  248. package/dist/components/logger.js +1 -39
  249. package/dist/components/logger.js.map +1 -1
  250. package/dist/components/newsletter-helpers.js +39 -2
  251. package/dist/components/newsletter-helpers.js.map +1 -1
  252. package/dist/components/newsletter-store.js +2 -0
  253. package/dist/components/newsletter-store.js.map +1 -1
  254. package/dist/components/nl-BE.js +540 -0
  255. package/dist/components/nl-BE.js.map +1 -0
  256. package/dist/components/profile-store.js +1 -1
  257. package/dist/components/profile-store.js.map +1 -1
  258. package/dist/components/raw-field.js +116 -7
  259. package/dist/components/raw-field.js.map +1 -1
  260. package/dist/components/redirect-with-token.js +35 -0
  261. package/dist/components/redirect-with-token.js.map +1 -0
  262. package/dist/components/ro.js +576 -0
  263. package/dist/components/ro.js.map +1 -0
  264. package/dist/components/spinner.js +2 -2
  265. package/dist/components/spinner.js.map +1 -1
  266. package/dist/components/submit-button.js +21 -24
  267. package/dist/components/submit-button.js.map +1 -1
  268. package/dist/components/sv.js +595 -0
  269. package/dist/components/sv.js.map +1 -0
  270. package/dist/components/u-conditional-render.js +5 -6
  271. package/dist/components/u-conditional-render.js.map +1 -1
  272. package/dist/components/u-config.js +16 -3
  273. package/dist/components/u-config.js.map +1 -1
  274. package/dist/components/u-email-field.js +1 -1
  275. package/dist/components/u-error-message.js +44 -19
  276. package/dist/components/u-error-message.js.map +1 -1
  277. package/dist/components/u-full-profile.js +1 -1
  278. package/dist/components/u-jump-to-service.js +16 -38
  279. package/dist/components/u-jump-to-service.js.map +1 -1
  280. package/dist/components/u-jump-to-unidy.js +16 -37
  281. package/dist/components/u-jump-to-unidy.js.map +1 -1
  282. package/dist/components/u-logout-button.js +5 -11
  283. package/dist/components/u-logout-button.js.map +1 -1
  284. package/dist/components/u-missing-field.js +5 -2
  285. package/dist/components/u-missing-field.js.map +1 -1
  286. package/dist/components/u-missing-fields-submit-button.js +10 -8
  287. package/dist/components/u-missing-fields-submit-button.js.map +1 -1
  288. package/dist/components/u-newsletter-checkbox.js +1 -1
  289. package/dist/components/u-newsletter-consent-checkbox.js +1 -1
  290. package/dist/components/u-newsletter-logout-button.js +6 -12
  291. package/dist/components/u-newsletter-logout-button.js.map +1 -1
  292. package/dist/components/u-newsletter-preference-checkbox.js +1 -1
  293. package/dist/components/u-newsletter-root.js +35 -12
  294. package/dist/components/u-newsletter-root.js.map +1 -1
  295. package/dist/components/u-newsletter-toggle-subscription-button.js +1 -1
  296. package/dist/components/u-pagination-button.js +3 -4
  297. package/dist/components/u-pagination-button.js.map +1 -1
  298. package/dist/components/u-pagination-page.js +3 -4
  299. package/dist/components/u-pagination-page.js.map +1 -1
  300. package/dist/components/u-reset-password-button.js +4 -8
  301. package/dist/components/u-reset-password-button.js.map +1 -1
  302. package/dist/components/u-signed-in.js +3 -6
  303. package/dist/components/u-signed-in.js.map +1 -1
  304. package/dist/components/u-signin-root.js +3 -6
  305. package/dist/components/u-signin-root.js.map +1 -1
  306. package/dist/components/u-signin-step.js +10 -14
  307. package/dist/components/u-signin-step.js.map +1 -1
  308. package/dist/components/u-social-login-button.js +13 -14
  309. package/dist/components/u-social-login-button.js.map +1 -1
  310. package/dist/components/u-ticketable-export.d.ts +11 -0
  311. package/dist/components/u-ticketable-export.js +93 -0
  312. package/dist/components/u-ticketable-export.js.map +1 -0
  313. package/dist/components/u-ticketable-list.js +256 -2396
  314. package/dist/components/u-ticketable-list.js.map +1 -1
  315. package/dist/esm/_commonjsHelpers-B85MJLTf.js +8 -0
  316. package/dist/esm/_commonjsHelpers-B85MJLTf.js.map +1 -0
  317. package/dist/esm/app-globals-J743qnJf.js +8 -0
  318. package/dist/esm/app-globals-J743qnJf.js.map +1 -0
  319. package/dist/esm/{auth-store-DBlGNGhq.js → auth-store-CSpEdi46.js} +4 -4
  320. package/dist/esm/{auth-store-DBlGNGhq.js.map → auth-store-CSpEdi46.js.map} +1 -1
  321. package/dist/esm/component-qfegGRWr.js +32 -0
  322. package/dist/esm/component-qfegGRWr.js.map +1 -0
  323. package/dist/esm/component-utils-WEof9bTg.js +36 -0
  324. package/dist/esm/component-utils-WEof9bTg.js.map +1 -0
  325. package/dist/esm/de-C6AnCqsA.js +702 -0
  326. package/dist/esm/de-C6AnCqsA.js.map +1 -0
  327. package/dist/esm/en-GB-DO63WPxt.js +117 -0
  328. package/dist/esm/en-GB-DO63WPxt.js.map +1 -0
  329. package/dist/esm/{flash-store-Df2YkLTB.js → flash-store-Dn1Bava8.js} +3 -3
  330. package/dist/esm/{flash-store-Df2YkLTB.js.map → flash-store-Dn1Bava8.js.map} +1 -1
  331. package/dist/esm/fr-C0oU6-EJ.js +575 -0
  332. package/dist/esm/fr-C0oU6-EJ.js.map +1 -0
  333. package/dist/esm/has-slot-content-DSMkJu9G.js +35 -0
  334. package/dist/esm/has-slot-content-DSMkJu9G.js.map +1 -0
  335. package/dist/esm/{i18n-Da7S9Oqf.js → i18n-ioyZxWsT.js} +100 -4
  336. package/dist/esm/{i18n-Da7S9Oqf.js.map → i18n-ioyZxWsT.js.map} +1 -1
  337. package/dist/esm/{index-FTKB5a1d.js → index-BsJDptgj.js} +4 -40
  338. package/dist/esm/index-BsJDptgj.js.map +1 -0
  339. package/dist/esm/{index-BnAYOYR5.js → index-C8kmD3tu.js} +3 -3
  340. package/dist/esm/{index-BnAYOYR5.js.map → index-C8kmD3tu.js.map} +1 -1
  341. package/dist/esm/{index-BVlbCQEX.js → index-kgGjfc-n.js} +1163 -1088
  342. package/dist/esm/index-kgGjfc-n.js.map +1 -0
  343. package/dist/esm/index.js +18 -12
  344. package/dist/esm/index.js.map +1 -1
  345. package/dist/esm/loader.js +4 -4
  346. package/dist/esm/{newsletter-helpers-fCpxzovf.js → newsletter-helpers-DoKGN_Kq.js} +46 -9
  347. package/dist/esm/newsletter-helpers-DoKGN_Kq.js.map +1 -0
  348. package/dist/esm/{newsletter-store-BB618FgS.js → newsletter-store-DpR85vaC.js} +5 -3
  349. package/dist/esm/newsletter-store-DpR85vaC.js.map +1 -0
  350. package/dist/esm/nl-BE-C8uPYb_H.js +540 -0
  351. package/dist/esm/nl-BE-C8uPYb_H.js.map +1 -0
  352. package/dist/esm/{profile-helpers-CXK2X6Ts.js → profile-helpers-BMJy0ei_.js} +4 -4
  353. package/dist/esm/{profile-helpers-CXK2X6Ts.js.map → profile-helpers-BMJy0ei_.js.map} +1 -1
  354. package/dist/esm/{profile-store-CHlSKuTY.js → profile-store-7wBS3gBH.js} +4 -4
  355. package/dist/esm/{profile-store-CHlSKuTY.js.map → profile-store-7wBS3gBH.js.map} +1 -1
  356. package/dist/esm/redirect-with-token-StCLJlSp.js +35 -0
  357. package/dist/esm/redirect-with-token-StCLJlSp.js.map +1 -0
  358. package/dist/esm/ro-BlDHz7d-.js +576 -0
  359. package/dist/esm/ro-BlDHz7d-.js.map +1 -0
  360. package/dist/esm/sdk.js +4 -4
  361. package/dist/esm/sv-B_Gq29K0.js +595 -0
  362. package/dist/esm/sv-B_Gq29K0.js.map +1 -0
  363. package/dist/esm/u-conditional-render.entry.js +14 -14
  364. package/dist/esm/u-conditional-render.entry.js.map +1 -1
  365. package/dist/esm/u-config.entry.js +24 -11
  366. package/dist/esm/u-config.entry.js.map +1 -1
  367. package/dist/esm/u-email-field.entry.js +7 -7
  368. package/dist/esm/u-error-message.entry.js +49 -22
  369. package/dist/esm/u-error-message.entry.js.map +1 -1
  370. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
  371. package/dist/esm/u-field_2.entry.js +124 -12
  372. package/dist/esm/u-flash-message.entry.js +3 -3
  373. package/dist/esm/u-full-profile.entry.js +6 -6
  374. package/dist/esm/u-jump-to-service.entry.js +23 -44
  375. package/dist/esm/u-jump-to-service.entry.js.map +1 -1
  376. package/dist/esm/u-jump-to-unidy.entry.js +22 -43
  377. package/dist/esm/u-jump-to-unidy.entry.js.map +1 -1
  378. package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -1
  379. package/dist/esm/u-logout-button_2.entry.js +15 -22
  380. package/dist/esm/u-magic-code-field.entry.js +8 -9
  381. package/dist/esm/u-magic-code-field.entry.js.map +1 -1
  382. package/dist/esm/u-missing-field.entry.js +6 -5
  383. package/dist/esm/u-missing-field.entry.js.map +1 -1
  384. package/dist/esm/u-missing-fields-submit-button.entry.js +16 -14
  385. package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
  386. package/dist/esm/u-newsletter-checkbox.entry.js +11 -12
  387. package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
  388. package/dist/esm/u-newsletter-consent-checkbox.entry.js +4 -4
  389. package/dist/esm/u-newsletter-logout-button.entry.js +15 -20
  390. package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
  391. package/dist/esm/u-newsletter-preference-checkbox.entry.js +11 -12
  392. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
  393. package/dist/esm/u-newsletter-resend-doi-button.entry.js +10 -11
  394. package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
  395. package/dist/esm/u-newsletter-root.entry.js +42 -19
  396. package/dist/esm/u-newsletter-root.entry.js.map +1 -1
  397. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +11 -12
  398. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
  399. package/dist/esm/u-pagination-button.entry.js +4 -4
  400. package/dist/esm/u-pagination-button.entry.js.map +1 -1
  401. package/dist/esm/u-pagination-page.entry.js +4 -4
  402. package/dist/esm/u-pagination-page.entry.js.map +1 -1
  403. package/dist/esm/u-passkey.entry.js +8 -9
  404. package/dist/esm/u-passkey.entry.js.map +1 -1
  405. package/dist/esm/u-password-field.entry.js +5 -5
  406. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  407. package/dist/esm/u-profile_2.entry.js +31 -33
  408. package/dist/esm/u-registration-button.entry.js +5 -5
  409. package/dist/esm/u-reset-password-button.entry.js +12 -15
  410. package/dist/esm/u-reset-password-button.entry.js.map +1 -1
  411. package/dist/esm/u-send-magic-code-button.entry.js +8 -9
  412. package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
  413. package/dist/esm/u-signin-root.entry.js +6 -8
  414. package/dist/esm/u-signin-root.entry.js.map +1 -1
  415. package/dist/esm/u-signin-step.entry.js +17 -21
  416. package/dist/esm/u-signin-step.entry.js.map +1 -1
  417. package/dist/esm/u-social-login-button.entry.js +16 -15
  418. package/dist/esm/u-social-login-button.entry.js.map +1 -1
  419. package/dist/esm/u-spinner.entry.js +3 -3
  420. package/dist/esm/u-spinner.entry.js.map +1 -1
  421. package/dist/esm/u-ticketable-export.entry.js +74 -0
  422. package/dist/esm/u-ticketable-export.entry.js.map +1 -0
  423. package/dist/esm/u-ticketable-list-D2p21JjR.js +3981 -0
  424. package/dist/esm/u-ticketable-list-D2p21JjR.js.map +1 -0
  425. package/dist/esm/u-ticketable-list.entry.js +10 -6121
  426. package/dist/esm/u-ticketable-list.entry.js.map +1 -1
  427. package/dist/esm/{unidy-store-Bg7IaIMd.js → unidy-store-B5Bf4Vit.js} +3 -3
  428. package/dist/esm/{unidy-store-Bg7IaIMd.js.map → unidy-store-B5Bf4Vit.js.map} +1 -1
  429. package/dist/sdk/index.esm.js +1 -1
  430. package/dist/sdk/index.esm.js.map +1 -1
  431. package/dist/sdk/locales/de.json +16 -0
  432. package/dist/sdk/locales/en.json +16 -0
  433. package/dist/sdk/locales/fr.json +16 -0
  434. package/dist/sdk/locales/it.json +16 -0
  435. package/dist/sdk/locales/nl_be.json +16 -0
  436. package/dist/sdk/locales/ro.json +16 -0
  437. package/dist/sdk/p-02dce5da.entry.js +2 -0
  438. package/dist/sdk/p-02dce5da.entry.js.map +1 -0
  439. package/dist/sdk/p-043c7643.entry.js +2 -0
  440. package/dist/sdk/p-043c7643.entry.js.map +1 -0
  441. package/dist/sdk/p-18c17747.entry.js +2 -0
  442. package/dist/sdk/p-18c17747.entry.js.map +1 -0
  443. package/dist/sdk/p-1a1c1af0.entry.js +2 -0
  444. package/dist/sdk/p-1a1c1af0.entry.js.map +1 -0
  445. package/dist/sdk/p-271781c7.entry.js +2 -0
  446. package/dist/sdk/{p-1a8973a6.entry.js.map → p-271781c7.entry.js.map} +1 -1
  447. package/dist/sdk/p-29473a55.entry.js +2 -0
  448. package/dist/sdk/p-29473a55.entry.js.map +1 -0
  449. package/dist/sdk/p-2a25d62e.entry.js +2 -0
  450. package/dist/sdk/p-2a25d62e.entry.js.map +1 -0
  451. package/dist/sdk/{p-C8lRzJEX.js → p-2bKltz_F.js} +2 -2
  452. package/dist/sdk/{p-C8lRzJEX.js.map → p-2bKltz_F.js.map} +1 -1
  453. package/dist/sdk/p-2cc3a00d.entry.js +2 -0
  454. package/dist/sdk/p-2cc3a00d.entry.js.map +1 -0
  455. package/dist/sdk/p-2f49e0cb.entry.js +2 -0
  456. package/dist/sdk/p-2f49e0cb.entry.js.map +1 -0
  457. package/dist/sdk/p-34f5d201.entry.js +2 -0
  458. package/dist/sdk/p-34f5d201.entry.js.map +1 -0
  459. package/dist/sdk/p-52c4bdd9.entry.js +2 -0
  460. package/dist/sdk/p-52c4bdd9.entry.js.map +1 -0
  461. package/dist/sdk/p-585a0efa.entry.js +2 -0
  462. package/dist/sdk/p-585a0efa.entry.js.map +1 -0
  463. package/dist/sdk/p-60675019.entry.js +2 -0
  464. package/dist/sdk/p-60675019.entry.js.map +1 -0
  465. package/dist/sdk/p-79ef9a70.entry.js +2 -0
  466. package/dist/sdk/p-79ef9a70.entry.js.map +1 -0
  467. package/dist/sdk/p-7d88e21c.entry.js +2 -0
  468. package/dist/sdk/p-7d88e21c.entry.js.map +1 -0
  469. package/dist/sdk/p-7eaf3468.entry.js +2 -0
  470. package/dist/sdk/p-7eaf3468.entry.js.map +1 -0
  471. package/dist/sdk/{p-88beb872.entry.js → p-8412762c.entry.js} +2 -2
  472. package/dist/sdk/p-8ea70c08.entry.js +2 -0
  473. package/dist/sdk/p-8ea70c08.entry.js.map +1 -0
  474. package/dist/sdk/p-946cdb0a.entry.js +2 -0
  475. package/dist/sdk/p-946cdb0a.entry.js.map +1 -0
  476. package/dist/sdk/p-94bb0217.entry.js +2 -0
  477. package/dist/sdk/p-94bb0217.entry.js.map +1 -0
  478. package/dist/sdk/{p-bcca06f1.entry.js → p-96860b09.entry.js} +2 -2
  479. package/dist/sdk/p-B1A6Nu24.js +2 -0
  480. package/dist/sdk/p-B1A6Nu24.js.map +1 -0
  481. package/dist/sdk/p-B85MJLTf.js +2 -0
  482. package/dist/sdk/p-B85MJLTf.js.map +1 -0
  483. package/dist/sdk/p-B8N6Bwsa.js +2 -0
  484. package/dist/sdk/{p-DCG3L43i.js.map → p-B8N6Bwsa.js.map} +1 -1
  485. package/dist/sdk/p-Ba5szISo.js +2 -0
  486. package/dist/sdk/p-Ba5szISo.js.map +1 -0
  487. package/dist/sdk/p-BsJDptgj.js +14 -0
  488. package/dist/sdk/p-BsJDptgj.js.map +1 -0
  489. package/dist/sdk/{p-bpXpOZY_.js → p-C0Mo15qt.js} +2 -2
  490. package/dist/sdk/{p-bpXpOZY_.js.map → p-C0Mo15qt.js.map} +1 -1
  491. package/dist/sdk/p-C10MAuCE.js +2 -0
  492. package/dist/sdk/p-C10MAuCE.js.map +1 -0
  493. package/dist/sdk/p-CTy6pQSg.js +2 -0
  494. package/dist/sdk/p-CTy6pQSg.js.map +1 -0
  495. package/dist/sdk/p-CW6kGAuQ.js +2 -0
  496. package/dist/sdk/p-CW6kGAuQ.js.map +1 -0
  497. package/dist/sdk/{p-DdMKVWx8.js → p-CbSP8My1.js} +2 -2
  498. package/dist/sdk/{p-DdMKVWx8.js.map → p-CbSP8My1.js.map} +1 -1
  499. package/dist/sdk/p-CbzzI4uW.js +2 -0
  500. package/dist/sdk/p-CbzzI4uW.js.map +1 -0
  501. package/dist/sdk/p-CgT6fZjb.js +2 -0
  502. package/dist/sdk/p-CgT6fZjb.js.map +1 -0
  503. package/dist/sdk/p-CuHZ3IkE.js +2 -0
  504. package/dist/sdk/p-CuHZ3IkE.js.map +1 -0
  505. package/dist/sdk/p-Cysk_vik.js +2 -0
  506. package/dist/sdk/p-Cysk_vik.js.map +1 -0
  507. package/dist/sdk/p-D0ut3waq.js +2 -0
  508. package/dist/sdk/p-D0ut3waq.js.map +1 -0
  509. package/dist/sdk/{p-BigbTrKk.js → p-D2Rf-QGm.js} +2 -2
  510. package/dist/sdk/{p-BigbTrKk.js.map → p-D2Rf-QGm.js.map} +1 -1
  511. package/dist/sdk/{p-6rqGeAfT.js → p-D9yFO_ID.js} +2 -2
  512. package/dist/sdk/{p-6rqGeAfT.js.map → p-D9yFO_ID.js.map} +1 -1
  513. package/dist/sdk/p-DD_5soRi.js +2 -0
  514. package/dist/sdk/p-DD_5soRi.js.map +1 -0
  515. package/dist/sdk/p-DHuvvagO.js +2 -0
  516. package/dist/sdk/p-DHuvvagO.js.map +1 -0
  517. package/dist/sdk/p-DSMkJu9G.js +2 -0
  518. package/dist/sdk/p-DSMkJu9G.js.map +1 -0
  519. package/dist/sdk/p-DcirMfca.js +2 -0
  520. package/dist/sdk/p-DcirMfca.js.map +1 -0
  521. package/dist/sdk/p-J0cv5IOA.js +2 -0
  522. package/dist/sdk/p-J0cv5IOA.js.map +1 -0
  523. package/dist/sdk/p-_5evboqW.js +2 -0
  524. package/dist/sdk/{p-DSktNM_k.js.map → p-_5evboqW.js.map} +1 -1
  525. package/dist/sdk/{p-7ee2f2ab.entry.js → p-ac3a6bbf.entry.js} +2 -2
  526. package/dist/sdk/p-b498bcdd.entry.js +2 -0
  527. package/dist/sdk/p-b498bcdd.entry.js.map +1 -0
  528. package/dist/sdk/p-b5dd5b4c.entry.js +2 -0
  529. package/dist/sdk/p-b5dd5b4c.entry.js.map +1 -0
  530. package/dist/sdk/{p-6b061b18.entry.js → p-b99588a8.entry.js} +2 -2
  531. package/dist/sdk/p-bf9c27a8.entry.js +2 -0
  532. package/dist/sdk/p-bf9c27a8.entry.js.map +1 -0
  533. package/dist/sdk/p-c10d9b8e.entry.js +2 -0
  534. package/dist/sdk/p-c10d9b8e.entry.js.map +1 -0
  535. package/dist/sdk/{p-10e20afd.entry.js → p-c2634439.entry.js} +2 -2
  536. package/dist/sdk/p-d6777395.entry.js +2 -0
  537. package/dist/sdk/p-d6777395.entry.js.map +1 -0
  538. package/dist/sdk/p-dbfe7b29.entry.js +2 -0
  539. package/dist/sdk/p-dbfe7b29.entry.js.map +1 -0
  540. package/dist/sdk/p-def4e874.entry.js +2 -0
  541. package/dist/sdk/p-def4e874.entry.js.map +1 -0
  542. package/dist/sdk/p-e872a012.entry.js +2 -0
  543. package/dist/sdk/p-e872a012.entry.js.map +1 -0
  544. package/dist/sdk/p-eaaf3989.entry.js +2 -0
  545. package/dist/sdk/p-eaaf3989.entry.js.map +1 -0
  546. package/dist/sdk/p-fd46b459.entry.js +2 -0
  547. package/dist/sdk/{p-830778eb.entry.js.map → p-fd46b459.entry.js.map} +1 -1
  548. package/dist/sdk/sdk.esm.js +1 -1
  549. package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
  550. package/dist/sdk/u-config.entry.esm.js.map +1 -1
  551. package/dist/sdk/u-error-message.entry.esm.js.map +1 -1
  552. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
  553. package/dist/sdk/u-jump-to-service.entry.esm.js.map +1 -1
  554. package/dist/sdk/u-jump-to-unidy.entry.esm.js.map +1 -1
  555. package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -1
  556. package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
  557. package/dist/sdk/u-missing-field.entry.esm.js.map +1 -1
  558. package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
  559. package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
  560. package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
  561. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
  562. package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -1
  563. package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -1
  564. package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -1
  565. package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -1
  566. package/dist/sdk/u-pagination-page.entry.esm.js.map +1 -1
  567. package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
  568. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  569. package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
  570. package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
  571. package/dist/sdk/u-signin-root.entry.esm.js.map +1 -1
  572. package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
  573. package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -1
  574. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  575. package/dist/sdk/u-ticketable-export.entry.esm.js.map +1 -0
  576. package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
  577. package/dist/types/api/client.d.ts +1 -1
  578. package/dist/types/api/index.d.ts +4 -4
  579. package/dist/types/api/standalone.d.ts +9 -9
  580. package/dist/types/auth/api/auth.d.ts +2 -3
  581. package/dist/types/auth/api/schemas.d.ts +19 -19
  582. package/dist/types/auth/auth-helpers.d.ts +1 -0
  583. package/dist/types/auth/components/jump-to-service/jump-to-service.d.ts +13 -5
  584. package/dist/types/auth/components/jump-to-unidy/jump-to-unidy.d.ts +13 -9
  585. package/dist/types/auth/components/logout-button/logout-button.d.ts +13 -4
  586. package/dist/types/auth/components/missing-field/missing-field.d.ts +1 -0
  587. package/dist/types/auth/components/missing-fields-submit-button/missing-fields-submit-button.d.ts +14 -2
  588. package/dist/types/auth/components/reset-pass-button/reset-pass-button.d.ts +13 -4
  589. package/dist/types/auth/components/social-logins/social-login-button.d.ts +11 -7
  590. package/dist/types/components.d.ts +73 -0
  591. package/dist/types/logger.d.ts +0 -34
  592. package/dist/types/newsletter/components/logout-button/logout-button.d.ts +13 -4
  593. package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +16 -2
  594. package/dist/types/newsletter/newsletter-helpers.d.ts +8 -2
  595. package/dist/types/newsletter/store/newsletter-store.d.ts +8 -1
  596. package/dist/types/profile/api/profile.d.ts +2 -2
  597. package/dist/types/profile/api/schemas.d.ts +21 -21
  598. package/dist/types/profile/components/raw-field/raw-field.d.ts +14 -2
  599. package/dist/types/shared/base/component.d.ts +46 -0
  600. package/dist/types/shared/base/has-slot-content.d.ts +10 -0
  601. package/dist/types/shared/component-utils.d.ts +20 -12
  602. package/dist/types/shared/components/conditional-render/conditional-render.d.ts +7 -2
  603. package/dist/types/shared/components/config/config.d.ts +7 -2
  604. package/dist/types/shared/components/error-message/error-message.d.ts +14 -2
  605. package/dist/types/shared/components/submit-button/submit-button.d.ts +13 -4
  606. package/dist/types/shared/context-utils.d.ts +73 -0
  607. package/dist/types/shared/utils/redirect-with-token.d.ts +21 -0
  608. package/dist/types/shared/utils/url-utils.d.ts +16 -0
  609. package/dist/types/ticketable/api/schemas.d.ts +16 -2
  610. package/dist/types/ticketable/api/subscriptions.d.ts +8 -3
  611. package/dist/types/ticketable/api/tickets.d.ts +8 -3
  612. package/dist/types/ticketable/components/pagination/pagination-button.d.ts +8 -4
  613. package/dist/types/ticketable/components/pagination/pagination-page.d.ts +8 -4
  614. package/dist/types/ticketable/components/ticketable-export/ticketable-export.d.ts +24 -0
  615. package/dist/types/ticketable/components/ticketable-list/ticketable-list.d.ts +10 -4
  616. package/dist/types/ticketable/index.d.ts +1 -0
  617. package/package.json +6 -2
  618. package/readme.md +248 -27
  619. package/dist/cjs/app-globals-hdkLqF51.js +0 -10
  620. package/dist/cjs/app-globals-hdkLqF51.js.map +0 -1
  621. package/dist/cjs/component-utils-bu3SY4dE.js +0 -42
  622. package/dist/cjs/component-utils-bu3SY4dE.js.map +0 -1
  623. package/dist/cjs/index-B325yXfO.js.map +0 -1
  624. package/dist/cjs/index-BzPYBLYC.js.map +0 -1
  625. package/dist/cjs/newsletter-helpers-hdDC5X-V.js.map +0 -1
  626. package/dist/cjs/newsletter-store-CupsLgO9.js.map +0 -1
  627. package/dist/cjs/pagination-store-zo48QpTm.js +0 -16
  628. package/dist/cjs/pagination-store-zo48QpTm.js.map +0 -1
  629. package/dist/components/pagination-store.js +0 -14
  630. package/dist/components/pagination-store.js.map +0 -1
  631. package/dist/esm/app-globals-iHhGdwBB.js +0 -8
  632. package/dist/esm/app-globals-iHhGdwBB.js.map +0 -1
  633. package/dist/esm/component-utils-BGq0leDV.js +0 -39
  634. package/dist/esm/component-utils-BGq0leDV.js.map +0 -1
  635. package/dist/esm/index-BVlbCQEX.js.map +0 -1
  636. package/dist/esm/index-FTKB5a1d.js.map +0 -1
  637. package/dist/esm/newsletter-helpers-fCpxzovf.js.map +0 -1
  638. package/dist/esm/newsletter-store-BB618FgS.js.map +0 -1
  639. package/dist/esm/pagination-store-DxmcQH8R.js +0 -14
  640. package/dist/esm/pagination-store-DxmcQH8R.js.map +0 -1
  641. package/dist/sdk/p-1a8973a6.entry.js +0 -2
  642. package/dist/sdk/p-35ad60ab.entry.js +0 -2
  643. package/dist/sdk/p-35ad60ab.entry.js.map +0 -1
  644. package/dist/sdk/p-3f352f38.entry.js +0 -2
  645. package/dist/sdk/p-3f352f38.entry.js.map +0 -1
  646. package/dist/sdk/p-468aaf62.entry.js +0 -2
  647. package/dist/sdk/p-468aaf62.entry.js.map +0 -1
  648. package/dist/sdk/p-4e2e6a13.entry.js +0 -2
  649. package/dist/sdk/p-4e2e6a13.entry.js.map +0 -1
  650. package/dist/sdk/p-57c8dc68.entry.js +0 -2
  651. package/dist/sdk/p-57c8dc68.entry.js.map +0 -1
  652. package/dist/sdk/p-594aec0c.entry.js +0 -2
  653. package/dist/sdk/p-594aec0c.entry.js.map +0 -1
  654. package/dist/sdk/p-60c8be64.entry.js +0 -2
  655. package/dist/sdk/p-60c8be64.entry.js.map +0 -1
  656. package/dist/sdk/p-760718d3.entry.js +0 -2
  657. package/dist/sdk/p-760718d3.entry.js.map +0 -1
  658. package/dist/sdk/p-77f541f3.entry.js +0 -2
  659. package/dist/sdk/p-77f541f3.entry.js.map +0 -1
  660. package/dist/sdk/p-830778eb.entry.js +0 -2
  661. package/dist/sdk/p-8839648e.entry.js +0 -2
  662. package/dist/sdk/p-8839648e.entry.js.map +0 -1
  663. package/dist/sdk/p-B6MYe-dh.js +0 -2
  664. package/dist/sdk/p-B6MYe-dh.js.map +0 -1
  665. package/dist/sdk/p-BGq0leDV.js +0 -2
  666. package/dist/sdk/p-BGq0leDV.js.map +0 -1
  667. package/dist/sdk/p-C_UZBwdm.js +0 -2
  668. package/dist/sdk/p-C_UZBwdm.js.map +0 -1
  669. package/dist/sdk/p-CbazSxaZ.js +0 -2
  670. package/dist/sdk/p-CbazSxaZ.js.map +0 -1
  671. package/dist/sdk/p-DCG3L43i.js +0 -2
  672. package/dist/sdk/p-DEUPZOH-.js +0 -2
  673. package/dist/sdk/p-DEUPZOH-.js.map +0 -1
  674. package/dist/sdk/p-DSktNM_k.js +0 -2
  675. package/dist/sdk/p-FTKB5a1d.js +0 -14
  676. package/dist/sdk/p-FTKB5a1d.js.map +0 -1
  677. package/dist/sdk/p-a7ffcff9.entry.js +0 -2
  678. package/dist/sdk/p-a7ffcff9.entry.js.map +0 -1
  679. package/dist/sdk/p-acaba1d5.entry.js +0 -2
  680. package/dist/sdk/p-acaba1d5.entry.js.map +0 -1
  681. package/dist/sdk/p-ae47a7a3.entry.js +0 -2
  682. package/dist/sdk/p-ae47a7a3.entry.js.map +0 -1
  683. package/dist/sdk/p-aec580e4.entry.js +0 -2
  684. package/dist/sdk/p-aec580e4.entry.js.map +0 -1
  685. package/dist/sdk/p-b63438ff.entry.js +0 -2
  686. package/dist/sdk/p-b63438ff.entry.js.map +0 -1
  687. package/dist/sdk/p-baaaa7f5.entry.js +0 -2
  688. package/dist/sdk/p-baaaa7f5.entry.js.map +0 -1
  689. package/dist/sdk/p-bba2da84.entry.js +0 -2
  690. package/dist/sdk/p-bba2da84.entry.js.map +0 -1
  691. package/dist/sdk/p-bc47f42b.entry.js +0 -2
  692. package/dist/sdk/p-bc47f42b.entry.js.map +0 -1
  693. package/dist/sdk/p-bd51e26f.entry.js +0 -2
  694. package/dist/sdk/p-bd51e26f.entry.js.map +0 -1
  695. package/dist/sdk/p-c3552f75.entry.js +0 -2
  696. package/dist/sdk/p-c3552f75.entry.js.map +0 -1
  697. package/dist/sdk/p-d9900482.entry.js +0 -2
  698. package/dist/sdk/p-d9900482.entry.js.map +0 -1
  699. package/dist/sdk/p-e6796c38.entry.js +0 -2
  700. package/dist/sdk/p-e6796c38.entry.js.map +0 -1
  701. package/dist/sdk/p-f272eb38.entry.js +0 -2
  702. package/dist/sdk/p-f272eb38.entry.js.map +0 -1
  703. package/dist/sdk/p-f4a47ef8.entry.js +0 -2
  704. package/dist/sdk/p-f4a47ef8.entry.js.map +0 -1
  705. package/dist/sdk/p-f608e64a.entry.js +0 -2
  706. package/dist/sdk/p-f608e64a.entry.js.map +0 -1
  707. package/dist/sdk/p-f762ac70.entry.js +0 -2
  708. package/dist/sdk/p-f762ac70.entry.js.map +0 -1
  709. package/dist/sdk/p-l6NinBiD.js +0 -2
  710. package/dist/sdk/p-l6NinBiD.js.map +0 -1
  711. /package/dist/sdk/{p-88beb872.entry.js.map → p-8412762c.entry.js.map} +0 -0
  712. /package/dist/sdk/{p-bcca06f1.entry.js.map → p-96860b09.entry.js.map} +0 -0
  713. /package/dist/sdk/{p-7ee2f2ab.entry.js.map → p-ac3a6bbf.entry.js.map} +0 -0
  714. /package/dist/sdk/{p-6b061b18.entry.js.map → p-b99588a8.entry.js.map} +0 -0
  715. /package/dist/sdk/{p-10e20afd.entry.js.map → p-c2634439.entry.js.map} +0 -0
@@ -94,6 +94,22 @@
94
94
  "reset_token_expired": "Reset token has expired. Please request a new password reset email",
95
95
  "reset_token_missing": "Reset token is missing",
96
96
  "schema_validation_error": "Schema validation error",
97
+ "validation": {
98
+ "accepted": "must be accepted",
99
+ "blank": "can't be blank",
100
+ "empty": "can't be empty",
101
+ "even": "must be even",
102
+ "exclusion": "is reserved",
103
+ "in": "is not included in the list",
104
+ "inclusion": "is not included in the list",
105
+ "invalid": "is invalid",
106
+ "not_a_number": "is not a number",
107
+ "odd": "must be odd",
108
+ "present": "must be blank",
109
+ "taken": "has already been taken",
110
+ "too_long": "is too long",
111
+ "too_short": "is too short"
112
+ },
97
113
  "sign_in_expired": "Sign in expired",
98
114
  "sign_in_not_found": "Sign in not found",
99
115
  "sign_out_failed": "Failed to sign out, reason: {{reason}}",
@@ -92,6 +92,22 @@
92
92
  "reset_token_expired": "Le jeton de réinitialisation a expiré. Veuillez demander un nouvel e-mail de réinitialisation du mot de passe",
93
93
  "reset_token_missing": "Jeton de réinitialisation manquant",
94
94
  "schema_validation_error": "Erreur de validation du schéma",
95
+ "validation": {
96
+ "accepted": "doit être accepté",
97
+ "blank": "ne peut pas être vide",
98
+ "empty": "ne peut pas être vide",
99
+ "even": "doit être pair",
100
+ "exclusion": "est réservé",
101
+ "in": "n'est pas inclus dans la liste",
102
+ "inclusion": "n'est pas inclus dans la liste",
103
+ "invalid": "n'est pas valide",
104
+ "not_a_number": "n'est pas un nombre",
105
+ "odd": "doit être impair",
106
+ "present": "doit être vide",
107
+ "taken": "est déjà pris",
108
+ "too_long": "est trop long",
109
+ "too_short": "est trop court"
110
+ },
95
111
  "sign_in_expired": "Connexion expirée",
96
112
  "sign_in_not_found": "Connexion introuvable",
97
113
  "sign_out_failed": "Échec de la déconnexion, raison : {{reason}}",
@@ -92,6 +92,22 @@
92
92
  "reset_token_expired": "Il token di reimpostazione è scaduto. Richiedi una nuova email di reimpostazione password",
93
93
  "reset_token_missing": "Token di reimpostazione mancante",
94
94
  "schema_validation_error": "Errore di validazione dello schema",
95
+ "validation": {
96
+ "accepted": "deve essere accettato",
97
+ "blank": "non può essere vuoto",
98
+ "empty": "non può essere vuoto",
99
+ "even": "deve essere pari",
100
+ "exclusion": "è riservato",
101
+ "in": "non è incluso nella lista",
102
+ "inclusion": "non è incluso nella lista",
103
+ "invalid": "non è valido",
104
+ "not_a_number": "non è un numero",
105
+ "odd": "deve essere dispari",
106
+ "present": "deve essere vuoto",
107
+ "taken": "è già stato preso",
108
+ "too_long": "è troppo lungo",
109
+ "too_short": "è troppo corto"
110
+ },
95
111
  "sign_in_expired": "Accesso scaduto",
96
112
  "sign_in_not_found": "Accesso non trovato",
97
113
  "sign_out_failed": "Uscita fallita, motivo: {{reason}}",
@@ -92,6 +92,22 @@
92
92
  "reset_token_expired": "Reset-token is verlopen. Vraag een nieuwe e-mail voor wachtwoordherstel aan",
93
93
  "reset_token_missing": "Reset-token ontbreekt",
94
94
  "schema_validation_error": "Schema-validatiefout",
95
+ "validation": {
96
+ "accepted": "moet worden geaccepteerd",
97
+ "blank": "mag niet leeg zijn",
98
+ "empty": "mag niet leeg zijn",
99
+ "even": "moet even zijn",
100
+ "exclusion": "is gereserveerd",
101
+ "in": "staat niet in de lijst",
102
+ "inclusion": "staat niet in de lijst",
103
+ "invalid": "is ongeldig",
104
+ "not_a_number": "is geen nummer",
105
+ "odd": "moet oneven zijn",
106
+ "present": "moet leeg zijn",
107
+ "taken": "is al in gebruik",
108
+ "too_long": "is te lang",
109
+ "too_short": "is te kort"
110
+ },
95
111
  "sign_in_expired": "Aanmelding verlopen",
96
112
  "sign_in_not_found": "Aanmelding niet gevonden",
97
113
  "sign_out_failed": "Afmelden mislukt, reden: {{reason}}",
@@ -92,6 +92,22 @@
92
92
  "reset_token_expired": "Token-ul de resetare a expirat. Vă rugăm să solicitați un nou e-mail pentru resetarea parolei",
93
93
  "reset_token_missing": "Token de resetare lipsă",
94
94
  "schema_validation_error": "Eroare de validare a schemei",
95
+ "validation": {
96
+ "accepted": "trebuie acceptat",
97
+ "blank": "nu poate fi gol",
98
+ "empty": "nu poate fi gol",
99
+ "even": "trebuie să fie par",
100
+ "exclusion": "este rezervat",
101
+ "in": "nu este inclus în listă",
102
+ "inclusion": "nu este inclus în listă",
103
+ "invalid": "nu este valid",
104
+ "not_a_number": "nu este un număr",
105
+ "odd": "trebuie să fie impar",
106
+ "present": "trebuie să fie gol",
107
+ "taken": "este deja luat",
108
+ "too_long": "este prea lung",
109
+ "too_short": "este prea scurt"
110
+ },
95
111
  "sign_in_expired": "Conectare expirată",
96
112
  "sign_in_not_found": "Conectare negăsită",
97
113
  "sign_out_failed": "Deconectare eșuată, motiv: {{reason}}",
@@ -1,4 +1,3 @@
1
- import { Mixin } from "@stencil/core";
2
1
  const DEFAULT_LOG_LEVEL = "info";
3
2
  const LOG_LEVELS = {
4
3
  trace: 4,
@@ -40,42 +39,6 @@ export const createLogger = (prefix) => {
40
39
  return logger;
41
40
  }, {});
42
41
  };
43
- /**
44
- * Stencil mixin factory that adds a logger property to the component.
45
- * The logger automatically uses the component's class name as the prefix.
46
- */
47
- // biome-ignore lint/suspicious/noExplicitAny: if we have no Base we have to invent one
48
- export const loggerFactory = (Base = Object) => {
49
- class LoggerMixin extends Base {
50
- /** @internal */
51
- __logger = null;
52
- get logger() {
53
- if (!this.__logger) {
54
- this.__logger = createLogger(this.constructor.name);
55
- }
56
- return this.__logger;
57
- }
58
- }
59
- return LoggerMixin;
60
- };
61
- /**
62
- * Base class for Unidy Stencil components that provides logging functionality.
63
- * Components extending this class get a `this.logger` property that automatically
64
- * prefixes log messages with the component's class name.
65
- *
66
- * @example
67
- * ```tsx
68
- * import { UnidyComponent } from '../logger';
69
- *
70
- * @Component({ tag: 'my-component' })
71
- * export class MyComponent extends UnidyComponent {
72
- * componentDidLoad() {
73
- * this.logger.debug('Component loaded');
74
- * }
75
- * }
76
- * ```
77
- */
78
- export const UnidyComponent = Mixin(loggerFactory);
79
42
  // Global logger for non-class contexts (backwards compatibility)
80
43
  export const logger = createLogger("");
81
44
  // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { type MixedInCtor, Mixin } from \"@stencil/core\";\nimport type { LoggerModule } from \"i18next\";\n\ndeclare global {\n interface Window {\n setLogLevel: (level: LogLevel) => void;\n }\n}\n\ntype LogLevel = \"error\" | \"warn\" | \"info\" | \"debug\" | \"trace\";\n\nconst DEFAULT_LOG_LEVEL: LogLevel = \"info\";\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n trace: 4,\n debug: 3,\n info: 2,\n warn: 1,\n error: 0,\n};\n\nconst getLogLevel = (): LogLevel => {\n if (typeof window === \"undefined\") {\n return DEFAULT_LOG_LEVEL;\n }\n return (localStorage.getItem(\"unidy_log_level\") as LogLevel) || DEFAULT_LOG_LEVEL;\n};\n\nconst setLogLevel = (level: LogLevel) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(\"unidy_log_level\", level);\n }\n};\n\nif (typeof window !== \"undefined\") {\n window.setLogLevel = setLogLevel;\n}\n\nconst canLog = (level: LogLevel) => LOG_LEVELS[getLogLevel()] >= LOG_LEVELS[level];\n\n// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\nconst log = (level: LogLevel, prefix: string, ...args: any[]) => {\n if (canLog(level)) {\n const prefixedArgs = prefix ? [`[${prefix}]`, ...args] : args;\n console[level](...prefixedArgs);\n }\n};\n\nexport interface Logger {\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n error: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n warn: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n info: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n debug: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n trace: (...args: any[]) => void;\n}\n\nconst LOG_METHODS: LogLevel[] = [\"error\", \"warn\", \"info\", \"debug\", \"trace\"];\n\n/**\n * Creates a logger instance with a specific prefix (typically class/component name)\n */\nexport const createLogger = (prefix: string): Logger => {\n return LOG_METHODS.reduce((logger, level) => {\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n logger[level] = (...args: any[]) => log(level, prefix, ...args);\n return logger;\n }, {} as Logger);\n};\n\n/**\n * Stencil mixin factory that adds a logger property to the component.\n * The logger automatically uses the component's class name as the prefix.\n */\n// biome-ignore lint/suspicious/noExplicitAny: if we have no Base we have to invent one\nexport const loggerFactory = <B extends MixedInCtor>(Base: B = Object as any) => {\n class LoggerMixin extends Base {\n /** @internal */\n __logger: Logger | null = null;\n\n get logger(): Logger {\n if (!this.__logger) {\n this.__logger = createLogger(this.constructor.name);\n }\n return this.__logger;\n }\n }\n return LoggerMixin;\n};\n\n/**\n * Base class for Unidy Stencil components that provides logging functionality.\n * Components extending this class get a `this.logger` property that automatically\n * prefixes log messages with the component's class name.\n *\n * @example\n * ```tsx\n * import { UnidyComponent } from '../logger';\n *\n * @Component({ tag: 'my-component' })\n * export class MyComponent extends UnidyComponent {\n * componentDidLoad() {\n * this.logger.debug('Component loaded');\n * }\n * }\n * ```\n */\nexport const UnidyComponent = Mixin(loggerFactory);\n\n// Global logger for non-class contexts (backwards compatibility)\nexport const logger = createLogger(\"\");\n\n// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\nconst formatI18nMessage = (args: any[]): { prefix: string; message: string } => {\n const [caller_action, ...messages] = args;\n const [caller, action] = caller_action.split(\": \");\n const message = typeof messages[0] === \"object\" ? action : `${action}: ${messages.join(\" \")}`;\n return { prefix: caller || \"i18next\", message };\n};\n\nexport const i18nLogger: LoggerModule = {\n type: \"logger\",\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n error: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"error\", prefix, message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n warn: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"warn\", prefix, message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n log: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"info\", prefix, message);\n },\n};\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LoggerModule } from \"i18next\";\n\ndeclare global {\n interface Window {\n setLogLevel: (level: LogLevel) => void;\n }\n}\n\ntype LogLevel = \"error\" | \"warn\" | \"info\" | \"debug\" | \"trace\";\n\nconst DEFAULT_LOG_LEVEL: LogLevel = \"info\";\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n trace: 4,\n debug: 3,\n info: 2,\n warn: 1,\n error: 0,\n};\n\nconst getLogLevel = (): LogLevel => {\n if (typeof window === \"undefined\") {\n return DEFAULT_LOG_LEVEL;\n }\n return (localStorage.getItem(\"unidy_log_level\") as LogLevel) || DEFAULT_LOG_LEVEL;\n};\n\nconst setLogLevel = (level: LogLevel) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(\"unidy_log_level\", level);\n }\n};\n\nif (typeof window !== \"undefined\") {\n window.setLogLevel = setLogLevel;\n}\n\nconst canLog = (level: LogLevel) => LOG_LEVELS[getLogLevel()] >= LOG_LEVELS[level];\n\n// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\nconst log = (level: LogLevel, prefix: string, ...args: any[]) => {\n if (canLog(level)) {\n const prefixedArgs = prefix ? [`[${prefix}]`, ...args] : args;\n console[level](...prefixedArgs);\n }\n};\n\nexport interface Logger {\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n error: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n warn: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n info: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n debug: (...args: any[]) => void;\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n trace: (...args: any[]) => void;\n}\n\nconst LOG_METHODS: LogLevel[] = [\"error\", \"warn\", \"info\", \"debug\", \"trace\"];\n\n/**\n * Creates a logger instance with a specific prefix (typically class/component name)\n */\nexport const createLogger = (prefix: string): Logger => {\n return LOG_METHODS.reduce((logger, level) => {\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n logger[level] = (...args: any[]) => log(level, prefix, ...args);\n return logger;\n }, {} as Logger);\n};\n\n// Global logger for non-class contexts (backwards compatibility)\nexport const logger = createLogger(\"\");\n\n// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\nconst formatI18nMessage = (args: any[]): { prefix: string; message: string } => {\n const [caller_action, ...messages] = args;\n const [caller, action] = caller_action.split(\": \");\n const message = typeof messages[0] === \"object\" ? action : `${action}: ${messages.join(\" \")}`;\n return { prefix: caller || \"i18next\", message };\n};\n\nexport const i18nLogger: LoggerModule = {\n type: \"logger\",\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n error: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"error\", prefix, message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n warn: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"warn\", prefix, message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case\n log: (args: any[]) => {\n const { prefix, message } = formatI18nMessage(args);\n log(\"info\", prefix, message);\n },\n};\n"]}
@@ -25,27 +25,28 @@ export class NewsletterService extends BaseService {
25
25
  const headers = await this.buildNewsletterAuthHeaders(options);
26
26
  const response = await this.client.post("/api/sdk/v1/newsletters/newsletter_subscription", payload, headers);
27
27
  return this.handleResponse(response, () => {
28
- if (!response.success) {
29
- const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
30
- const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
31
- switch (response.status) {
32
- case 401:
33
- return ["unauthorized", error];
34
- case 429:
35
- this.logger.warn("Rate limit exceeded");
36
- return ["rate_limit_exceeded", error];
37
- case 500:
38
- this.errorReporter.captureException(response);
39
- return ["server_error", error];
40
- default:
41
- return ["server_error", error];
28
+ // Both success and 422 return CreateSubscriptionsResponse
29
+ if (response.success || response.status === 422) {
30
+ const data = CreateSubscriptionsResponseSchema.parse(response.data);
31
+ if (data.errors.length > 0) {
32
+ return ["newsletter_error", data];
42
33
  }
34
+ return [null, data];
43
35
  }
44
- const data = CreateSubscriptionsResponseSchema.parse(response.data);
45
- if (data.errors.length > 0) {
46
- return ["newsletter_error", data];
36
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
37
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
38
+ switch (response.status) {
39
+ case 401:
40
+ return ["unauthorized", error];
41
+ case 429:
42
+ this.logger.warn("Rate limit exceeded");
43
+ return ["rate_limit_exceeded", error];
44
+ case 500:
45
+ this.errorReporter.captureException(response);
46
+ return ["server_error", error];
47
+ default:
48
+ return ["server_error", error];
47
49
  }
48
- return [null, data];
49
50
  });
50
51
  }
51
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"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","sourcesContent":["import * as z from \"zod\";\nimport {\n type ApiClientInterface,\n BaseService,\n type CommonErrors,\n type Options,\n type Payload,\n type ServiceDependencies,\n} from \"../../api/base-service\";\nimport {\n type CreateSubscriptionsPayload,\n CreateSubscriptionsPayloadSchema,\n type CreateSubscriptionsResponse,\n CreateSubscriptionsResponseSchema,\n DeleteSubscriptionResponseSchema,\n type LoginEmailPayload,\n LoginEmailPayloadSchema,\n type Newsletter,\n type NewsletterErrorResponse,\n NewsletterErrorResponseSchema,\n NewsletterSchema,\n type NewsletterSubscription,\n NewsletterSubscriptionSchema,\n type NewslettersResponse,\n NewslettersResponseSchema,\n type ResendDoiPayload,\n ResendDoiPayloadSchema,\n type UpdateSubscriptionPayload,\n UpdateSubscriptionPayloadSchema,\n} from \"./schemas\";\n\n// Re-export types for external use\nexport type {\n AdditionalFields,\n CreateSubscriptionsPayload,\n CreateSubscriptionsResponse,\n LoginEmailPayload,\n Newsletter,\n NewsletterErrorResponse,\n NewsletterSubscription,\n NewsletterSubscriptionError,\n NewslettersResponse,\n Preference,\n PreferenceGroup,\n ResendDoiPayload,\n UpdateSubscriptionPayload,\n} from \"./schemas\";\n\n// Options type for newsletter methods (only preferenceToken can be passed per-call)\nexport type NewsletterOptions = { preferenceToken: string };\n\n// Argument types for unified interface\nexport type NewsletterCreateArgs = Payload<CreateSubscriptionsPayload> & Options<NewsletterOptions>;\nexport type NewsletterListArgs = Options<NewsletterOptions>;\nexport type NewsletterGetArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterUpdateArgs = { internalName: string } & Payload<UpdateSubscriptionPayload> & Options<NewsletterOptions>;\nexport type NewsletterDeleteArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterResendDoiArgs = { internalName: string } & Payload<ResendDoiPayload> & Options<NewsletterOptions>;\nexport type NewsletterSendLoginEmailArgs = Payload<LoginEmailPayload>;\nexport type NewsletterGetByNameArgs = { internalName: string };\n\n// Result types using tuples\nexport type NewsletterCreateResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [\"newsletter_error\", CreateSubscriptionsResponse]\n | [null, CreateSubscriptionsResponse];\n\nexport type NewsletterListResult =\n | CommonErrors\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription[]];\n\nexport type NewsletterGetResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterUpdateResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterDeleteResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"unprocessable_entity\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, { new_preference_token: string } | null];\n\nexport type NewsletterResendDoiResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"already_confirmed\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterSendLoginEmailResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"not_found\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterListAllResult = CommonErrors | [\"server_error\", null] | [null, NewslettersResponse];\n\nexport type NewsletterGetByNameResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, Newsletter];\n\nexport class NewsletterService extends BaseService {\n constructor(client: ApiClientInterface, deps?: ServiceDependencies) {\n super(client, \"NewsletterService\", deps);\n }\n\n private async buildNewsletterAuthHeaders(options?: Partial<NewsletterOptions>): Promise<HeadersInit | undefined> {\n const idToken = await this.getIdToken();\n return this.buildAuthHeaders({\n \"X-ID-Token\": idToken ?? undefined,\n \"X-Preference-Token\": options?.preferenceToken,\n });\n }\n\n /**\n * Create newsletter subscriptions for a user\n */\n async create(args: NewsletterCreateArgs): Promise<NewsletterCreateResult> {\n const { payload, options } = args;\n const validatedPayload = CreateSubscriptionsPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for create\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", payload, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n switch (response.status) {\n case 401:\n return [\"unauthorized\", error];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n return [\"rate_limit_exceeded\", error];\n case 500:\n this.errorReporter.captureException(response);\n return [\"server_error\", error];\n default:\n return [\"server_error\", error];\n }\n }\n\n const data = CreateSubscriptionsResponseSchema.parse(response.data);\n if (data.errors.length > 0) {\n return [\"newsletter_error\", data];\n }\n return [null, data];\n });\n }\n\n /**\n * List all subscriptions for the authenticated user\n */\n async list(args?: NewsletterListArgs): Promise<NewsletterListResult> {\n const headers = await this.buildNewsletterAuthHeaders(args?.options);\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = z.array(NewsletterSubscriptionSchema).parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a specific subscription by newsletter internal name\n */\n async get(args: NewsletterGetArgs): Promise<NewsletterGetResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Update a subscription's preferences\n */\n async update(args: NewsletterUpdateArgs): Promise<NewsletterUpdateResult> {\n const { internalName, payload, options } = args;\n const validatedPayload = UpdateSubscriptionPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for update\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.patch<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, payload, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Delete a subscription\n */\n async delete(args: NewsletterDeleteArgs): Promise<NewsletterDeleteResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.delete<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n if (response.status === 422) {\n return [\"unprocessable_entity\", error];\n }\n return [\"server_error\", error];\n }\n\n if (response.status === 204) {\n return [null, null];\n }\n\n const data = DeleteSubscriptionResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Resend double opt-in confirmation email\n */\n async resendDoi(args: NewsletterResendDoiArgs): Promise<NewsletterResendDoiResult> {\n const { internalName, payload, options } = args;\n const validatedPayload = ResendDoiPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for resendDoi\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n headers,\n );\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n if (error.error_identifier === \"already_confirmed\") {\n return [\"already_confirmed\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * Send a login email for newsletter management\n */\n async sendLoginEmail(args: NewsletterSendLoginEmailArgs): Promise<NewsletterSendLoginEmailResult> {\n const { payload } = args;\n const validatedPayload = LoginEmailPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for sendLoginEmail\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 429) {\n return [\"rate_limit_exceeded\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * List all available newsletters\n */\n async listAll(): Promise<NewsletterListAllResult> {\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters\");\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n return [\"server_error\", null];\n }\n\n const data = NewslettersResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a newsletter by its internal name\n */\n async getByName(args: NewsletterGetByNameArgs): Promise<NewsletterGetByNameResult> {\n const { internalName } = args;\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}`);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSchema.parse(response.data);\n return [null, data];\n });\n }\n}\n"]}
1
+ {"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"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","sourcesContent":["import * as z from \"zod\";\nimport {\n type ApiClientInterface,\n BaseService,\n type CommonErrors,\n type Options,\n type Payload,\n type ServiceDependencies,\n} from \"../../api/base-service\";\nimport {\n type CreateSubscriptionsPayload,\n CreateSubscriptionsPayloadSchema,\n type CreateSubscriptionsResponse,\n CreateSubscriptionsResponseSchema,\n DeleteSubscriptionResponseSchema,\n type LoginEmailPayload,\n LoginEmailPayloadSchema,\n type Newsletter,\n type NewsletterErrorResponse,\n NewsletterErrorResponseSchema,\n NewsletterSchema,\n type NewsletterSubscription,\n NewsletterSubscriptionSchema,\n type NewslettersResponse,\n NewslettersResponseSchema,\n type ResendDoiPayload,\n ResendDoiPayloadSchema,\n type UpdateSubscriptionPayload,\n UpdateSubscriptionPayloadSchema,\n} from \"./schemas\";\n\n// Re-export types for external use\nexport type {\n AdditionalFields,\n CreateSubscriptionsPayload,\n CreateSubscriptionsResponse,\n LoginEmailPayload,\n Newsletter,\n NewsletterErrorResponse,\n NewsletterSubscription,\n NewsletterSubscriptionError,\n NewslettersResponse,\n Preference,\n PreferenceGroup,\n ResendDoiPayload,\n UpdateSubscriptionPayload,\n} from \"./schemas\";\n\n// Options type for newsletter methods (only preferenceToken can be passed per-call)\nexport type NewsletterOptions = { preferenceToken: string };\n\n// Argument types for unified interface\nexport type NewsletterCreateArgs = Payload<CreateSubscriptionsPayload> & Options<NewsletterOptions>;\nexport type NewsletterListArgs = Options<NewsletterOptions>;\nexport type NewsletterGetArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterUpdateArgs = { internalName: string } & Payload<UpdateSubscriptionPayload> & Options<NewsletterOptions>;\nexport type NewsletterDeleteArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterResendDoiArgs = { internalName: string } & Payload<ResendDoiPayload> & Options<NewsletterOptions>;\nexport type NewsletterSendLoginEmailArgs = Payload<LoginEmailPayload>;\nexport type NewsletterGetByNameArgs = { internalName: string };\n\n// Result types using tuples\nexport type NewsletterCreateResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [\"newsletter_error\", CreateSubscriptionsResponse]\n | [null, CreateSubscriptionsResponse];\n\nexport type NewsletterListResult =\n | CommonErrors\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription[]];\n\nexport type NewsletterGetResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterUpdateResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterDeleteResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"unprocessable_entity\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, { new_preference_token: string } | null];\n\nexport type NewsletterResendDoiResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"already_confirmed\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterSendLoginEmailResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"not_found\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterListAllResult = CommonErrors | [\"server_error\", null] | [null, NewslettersResponse];\n\nexport type NewsletterGetByNameResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, Newsletter];\n\nexport class NewsletterService extends BaseService {\n constructor(client: ApiClientInterface, deps?: ServiceDependencies) {\n super(client, \"NewsletterService\", deps);\n }\n\n private async buildNewsletterAuthHeaders(options?: Partial<NewsletterOptions>): Promise<HeadersInit | undefined> {\n const idToken = await this.getIdToken();\n return this.buildAuthHeaders({\n \"X-ID-Token\": idToken ?? undefined,\n \"X-Preference-Token\": options?.preferenceToken,\n });\n }\n\n /**\n * Create newsletter subscriptions for a user\n */\n async create(args: NewsletterCreateArgs): Promise<NewsletterCreateResult> {\n const { payload, options } = args;\n const validatedPayload = CreateSubscriptionsPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for create\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", payload, headers);\n\n return this.handleResponse(response, () => {\n // Both success and 422 return CreateSubscriptionsResponse\n if (response.success || response.status === 422) {\n const data = CreateSubscriptionsResponseSchema.parse(response.data);\n if (data.errors.length > 0) {\n return [\"newsletter_error\", data];\n }\n return [null, data];\n }\n\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n switch (response.status) {\n case 401:\n return [\"unauthorized\", error];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n return [\"rate_limit_exceeded\", error];\n case 500:\n this.errorReporter.captureException(response);\n return [\"server_error\", error];\n default:\n return [\"server_error\", error];\n }\n });\n }\n\n /**\n * List all subscriptions for the authenticated user\n */\n async list(args?: NewsletterListArgs): Promise<NewsletterListResult> {\n const headers = await this.buildNewsletterAuthHeaders(args?.options);\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = z.array(NewsletterSubscriptionSchema).parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a specific subscription by newsletter internal name\n */\n async get(args: NewsletterGetArgs): Promise<NewsletterGetResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Update a subscription's preferences\n */\n async update(args: NewsletterUpdateArgs): Promise<NewsletterUpdateResult> {\n const { internalName, payload, options } = args;\n const validatedPayload = UpdateSubscriptionPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for update\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.patch<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, payload, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Delete a subscription\n */\n async delete(args: NewsletterDeleteArgs): Promise<NewsletterDeleteResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.delete<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n if (response.status === 422) {\n return [\"unprocessable_entity\", error];\n }\n return [\"server_error\", error];\n }\n\n if (response.status === 204) {\n return [null, null];\n }\n\n const data = DeleteSubscriptionResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Resend double opt-in confirmation email\n */\n async resendDoi(args: NewsletterResendDoiArgs): Promise<NewsletterResendDoiResult> {\n const { internalName, payload, options } = args;\n const validatedPayload = ResendDoiPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for resendDoi\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n headers,\n );\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n if (error.error_identifier === \"already_confirmed\") {\n return [\"already_confirmed\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * Send a login email for newsletter management\n */\n async sendLoginEmail(args: NewsletterSendLoginEmailArgs): Promise<NewsletterSendLoginEmailResult> {\n const { payload } = args;\n const validatedPayload = LoginEmailPayloadSchema.safeParse(payload);\n if (!validatedPayload.success) {\n this.logger.error(\"Invalid payload for sendLoginEmail\", validatedPayload.error);\n return [\"schema_validation_error\", { error_identifier: \"schema_validation_error\", errors: [String(validatedPayload.error)] }];\n }\n\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 429) {\n return [\"rate_limit_exceeded\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * List all available newsletters\n */\n async listAll(): Promise<NewsletterListAllResult> {\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters\");\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n return [\"server_error\", null];\n }\n\n const data = NewslettersResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a newsletter by its internal name\n */\n async getByName(args: NewsletterGetByNameArgs): Promise<NewsletterGetByNameResult> {\n const { internalName } = args;\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}`);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSchema.parse(response.data);\n return [null, data];\n });\n }\n}\n"]}
@@ -33,7 +33,7 @@ export class NewsletterConsentCheckbox {
33
33
  }
34
34
  }
35
35
  render() {
36
- return (h("input", { key: 'd33f894b0346dbe2b1950461a7136affd4791b84', type: "checkbox", checked: this.isChecked, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-required": "true", "data-consent-checkbox": true }));
36
+ return (h("input", { key: 'fb9e26bb1076beeaaa4e0fae41611f0a8d2a5443', type: "checkbox", checked: this.isChecked, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-required": "true", "data-consent-checkbox": true }));
37
37
  }
38
38
  static get is() { return "u-newsletter-consent-checkbox"; }
39
39
  static get properties() {
@@ -1,18 +1,15 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { t } from "../../../i18n";
3
- import { hasSlotContent } from "../../../shared/component-utils";
3
+ import { UnidyComponent } from "../../../shared/base/component";
4
+ import { HasSlotContent } from "../../../shared/base/has-slot-content";
4
5
  import { Flash } from "../../../shared/store/flash-store";
5
6
  import { newsletterLogout } from "../../newsletter-helpers";
6
7
  import { newsletterStore } from "../../store/newsletter-store";
7
- export class LogoutButton {
8
- el;
9
- componentClassName = "";
10
- hasSlot = false;
11
- async componentWillLoad() {
12
- // this needs to be evaluated on load, bc doing it on render will evaluate the generated dom for "shadow: false"
13
- // components and always return true on re-render
14
- this.hasSlot = hasSlotContent(this.el);
8
+ export class NewsletterLogoutButton extends UnidyComponent(HasSlotContent) {
9
+ constructor() {
10
+ super();
15
11
  }
12
+ componentClassName = "";
16
13
  handleLogout = () => {
17
14
  newsletterLogout();
18
15
  Flash.success.addMessage(t("newsletter.success.logout"));
@@ -48,6 +45,5 @@ export class LogoutButton {
48
45
  }
49
46
  };
50
47
  }
51
- static get elementRef() { return "el"; }
52
48
  }
53
49
  //# sourceMappingURL=logout-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/logout-button/logout-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D,MAAM,OAAO,YAAY;IACZ,EAAE,CAAe;IAEO,kBAAkB,GAAG,EAAE,CAAC;IAEnD,OAAO,GAAG,KAAK,CAAC;IAExB,KAAK,CAAC,iBAAiB;QACrB,gHAAgH;QAChH,iDAAiD;QACjD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,YAAY,GAAG,GAAG,EAAE;QAC1B,gBAAgB,EAAE,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM;QACJ,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1F,OAAO,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAAC;QAC9C,CAAC;QAED,OAAO,CACL,EAAC,IAAI;YACH,cACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,OAAO,EAAE,IAAI,CAAC,YAAY,gBACf,QAAQ,eACT,QAAQ,IAEjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAClD,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { hasSlotContent } from \"../../../shared/component-utils\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { newsletterLogout } from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-logout-button\",\n shadow: false,\n})\nexport class LogoutButton {\n @Element() el!: HTMLElement;\n\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private hasSlot = false;\n\n async componentWillLoad() {\n // this needs to be evaluated on load, bc doing it on render will evaluate the generated dom for \"shadow: false\"\n // components and always return true on re-render\n this.hasSlot = hasSlotContent(this.el);\n }\n\n private handleLogout = () => {\n newsletterLogout();\n Flash.success.addMessage(t(\"newsletter.success.logout\"));\n };\n\n render() {\n if (newsletterStore.state.preferenceToken === \"\" || newsletterStore.state.isAuthenticated) {\n return <Host style={{ display: \"none\" }} />;\n }\n\n return (\n <Host>\n <button\n type=\"button\"\n part=\"button\"\n class={this.componentClassName}\n onClick={this.handleLogout}\n aria-label=\"Logout\"\n aria-live=\"polite\"\n >\n {this.hasSlot ? <slot /> : t(\"newsletter.buttons.logout\")}\n </button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"logout-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/logout-button/logout-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D,MAAM,OAAO,sBAAuB,SAAQ,cAAc,CAAC,cAAc,CAAC;;;;IACrC,kBAAkB,GAAG,EAAE,CAAC;IAEnD,YAAY,GAAG,GAAG,EAAE;QAC1B,gBAAgB,EAAE,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM;QACJ,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1F,OAAO,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAAC;QAC9C,CAAC;QAED,OAAO,CACL,EAAC,IAAI;YACH,cACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,OAAO,EAAE,IAAI,CAAC,YAAY,gBACf,QAAQ,eACT,QAAQ,IAEjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAClD,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { newsletterLogout } from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-logout-button\",\n shadow: false,\n})\nexport class NewsletterLogoutButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private handleLogout = () => {\n newsletterLogout();\n Flash.success.addMessage(t(\"newsletter.success.logout\"));\n };\n\n render() {\n if (newsletterStore.state.preferenceToken === \"\" || newsletterStore.state.isAuthenticated) {\n return <Host style={{ display: \"none\" }} />;\n }\n\n return (\n <Host>\n <button\n type=\"button\"\n part=\"button\"\n class={this.componentClassName}\n onClick={this.handleLogout}\n aria-label=\"Logout\"\n aria-live=\"polite\"\n >\n {this.hasSlot ? <slot /> : t(\"newsletter.buttons.logout\")}\n </button>\n </Host>\n );\n }\n}\n"]}
@@ -54,7 +54,7 @@ export class NewsletterCheckbox {
54
54
  }
55
55
  }
56
56
  render() {
57
- return (h("input", { key: '0d4f42a4a111d473a2d2841b07b8876dd506c281', type: "checkbox", checked: this.isChecked, disabled: this.isSubscribed, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked }));
57
+ return (h("input", { key: '0668abd8d616058256067a022ca778fbf056bd77', type: "checkbox", checked: this.isChecked, disabled: this.isSubscribed, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked }));
58
58
  }
59
59
  static get is() { return "u-newsletter-checkbox"; }
60
60
  static get properties() {
@@ -1,18 +1,21 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { Auth } from "../../../auth/auth";
3
3
  import { t } from "../../../i18n";
4
- import { logger, UnidyComponent } from "../../../logger";
5
- import { clearUrlParam } from "../../../shared/component-utils";
4
+ import { logger } from "../../../logger";
5
+ import { UnidyComponent } from "../../../shared/base/component";
6
6
  import { Flash } from "../../../shared/store/flash-store";
7
7
  import { waitForConfig } from "../../../shared/store/unidy-store";
8
+ import { clearUrlParam } from "../../../shared/utils/url-utils";
8
9
  import * as NewsletterHelpers from "../../newsletter-helpers";
9
10
  import { newsletterStore, persist } from "../../store/newsletter-store";
10
- export class NewsletterRoot extends UnidyComponent {
11
+ export class NewsletterRoot extends UnidyComponent() {
11
12
  constructor() {
12
13
  super();
13
14
  }
14
15
  el;
15
16
  componentClassName = "";
17
+ uNewsletterSuccess;
18
+ uNewsletterError;
16
19
  getErrorText(errorIdentifier) {
17
20
  return t(`newsletter.errors.${errorIdentifier}`) || t("errors.unknown", { defaultValue: "An unknown error occurred" });
18
21
  }
@@ -43,15 +46,27 @@ export class NewsletterRoot extends UnidyComponent {
43
46
  }
44
47
  async submit(forType) {
45
48
  const { email, checkedNewsletters, consentGiven, consentRequired } = newsletterStore.state;
49
+ const newsletters = Object.keys(checkedNewsletters);
50
+ // Check email first for better UX
51
+ if (!email) {
52
+ logger.error("Email is required");
53
+ Flash.error.addMessage(t("newsletter.errors.email_required"));
54
+ this.uNewsletterError.emit({ email: "", error: "email_required" });
55
+ return;
56
+ }
46
57
  if (forType === "login") {
47
- if (!email) {
48
- Flash.error.addMessage(t("newsletter.errors.email_required"));
49
- return;
58
+ const result = await NewsletterHelpers.sendLoginEmail(email);
59
+ if (result.success === true) {
60
+ this.uNewsletterSuccess.emit({ email, newsletters: [] });
61
+ }
62
+ else if (result.success === false) {
63
+ this.uNewsletterError.emit({ email, error: `login_${result.error}` });
50
64
  }
51
- return await NewsletterHelpers.sendLoginEmail(email);
65
+ return;
52
66
  }
53
- if (Object.keys(checkedNewsletters).length === 0) {
67
+ if (newsletters.length === 0) {
54
68
  logger.error("No newsletters selected: please select at least one newsletter");
69
+ this.uNewsletterError.emit({ email, error: "no_newsletters_selected" });
55
70
  return;
56
71
  }
57
72
  if (consentRequired && !consentGiven) {
@@ -59,12 +74,19 @@ export class NewsletterRoot extends UnidyComponent {
59
74
  ...newsletterStore.state.errors,
60
75
  consent: "consent_required",
61
76
  };
77
+ this.uNewsletterError.emit({ email, error: "consent_required" });
62
78
  return;
63
79
  }
64
- await NewsletterHelpers.createSubscriptions({ email });
80
+ const success = await NewsletterHelpers.createSubscriptions({ email });
81
+ if (success) {
82
+ this.uNewsletterSuccess.emit({ email, newsletters });
83
+ }
84
+ else {
85
+ this.uNewsletterError.emit({ email, error: "subscription_failed" });
86
+ }
65
87
  }
66
88
  render() {
67
- return (h(Host, { key: '31362460dbae86cb9429b0aaa041b997513892fa', class: this.componentClassName }, h("slot", { key: 'bb5372a3727dabb72f66553f59797e300bee4ce1' })));
89
+ return (h(Host, { key: '483b39da680aa800e612307c964151c823efa9e1', class: this.componentClassName }, h("slot", { key: '4272bd4109f92fc5c49ad7e8b245ad5382000519' })));
68
90
  }
69
91
  static get is() { return "u-newsletter-root"; }
70
92
  static get properties() {
@@ -91,6 +113,39 @@ export class NewsletterRoot extends UnidyComponent {
91
113
  }
92
114
  };
93
115
  }
116
+ static get events() {
117
+ return [{
118
+ "method": "uNewsletterSuccess",
119
+ "name": "uNewsletterSuccess",
120
+ "bubbles": true,
121
+ "cancelable": true,
122
+ "composed": true,
123
+ "docs": {
124
+ "tags": [],
125
+ "text": ""
126
+ },
127
+ "complexType": {
128
+ "original": "{ email: string; newsletters: string[] }",
129
+ "resolved": "{ email: string; newsletters: string[]; }",
130
+ "references": {}
131
+ }
132
+ }, {
133
+ "method": "uNewsletterError",
134
+ "name": "uNewsletterError",
135
+ "bubbles": true,
136
+ "cancelable": true,
137
+ "composed": true,
138
+ "docs": {
139
+ "tags": [],
140
+ "text": ""
141
+ },
142
+ "complexType": {
143
+ "original": "{ email: string; error: string }",
144
+ "resolved": "{ email: string; error: string; }",
145
+ "references": {}
146
+ }
147
+ }];
148
+ }
94
149
  static get methods() {
95
150
  return {
96
151
  "submit": {
@@ -1 +1 @@
1
- {"version":3,"file":"newsletter-root.js","sourceRoot":"","sources":["../../../../src/newsletter/components/newsletter-root/newsletter-root.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, h, Method, Prop } from \"@stencil/core\";\nimport { Auth } from \"../../../auth/auth\";\nimport { t } from \"../../../i18n\";\nimport { logger, UnidyComponent } from \"../../../logger\";\nimport { clearUrlParam } from \"../../../shared/component-utils\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { waitForConfig } from \"../../../shared/store/unidy-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type NewsletterErrorIdentifier, newsletterStore, persist } from \"../../store/newsletter-store\";\nimport type { NewsletterButtonFor } from \"../submit-button/newsletter-submit-button\";\n\n@Component({\n tag: \"u-newsletter-root\",\n shadow: false,\n})\nexport class NewsletterRoot extends UnidyComponent {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n getErrorText(errorIdentifier: NewsletterErrorIdentifier): string {\n return t(`newsletter.errors.${errorIdentifier}`) || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" });\n }\n\n async componentWillLoad() {\n const newsletterError = clearUrlParam(\"newsletter_error\");\n const preferenceToken = clearUrlParam(\"preference_token\");\n const email = clearUrlParam(\"email\");\n\n if (newsletterError) {\n Flash.error.addMessage(this.getErrorText(newsletterError as NewsletterErrorIdentifier));\n }\n\n if (preferenceToken && email) {\n newsletterStore.state.preferenceToken = preferenceToken;\n newsletterStore.state.email = email;\n\n persist(\"preferenceToken\");\n persist(\"email\");\n }\n\n const authInstance = await Auth.getInstance();\n const isAuthenticated = await authInstance.isAuthenticated();\n newsletterStore.state.isAuthenticated = isAuthenticated;\n\n if (isAuthenticated) {\n const userData = await authInstance.userData();\n\n if (userData) {\n newsletterStore.state.email = userData.email;\n }\n }\n\n await waitForConfig();\n await NewsletterHelpers.fetchSubscriptions();\n }\n\n @Method()\n async submit(forType?: NewsletterButtonFor) {\n const { email, checkedNewsletters, consentGiven, consentRequired } = newsletterStore.state;\n\n if (forType === \"login\") {\n if (!email) {\n Flash.error.addMessage(t(\"newsletter.errors.email_required\"));\n return;\n }\n return await NewsletterHelpers.sendLoginEmail(email);\n }\n\n if (Object.keys(checkedNewsletters).length === 0) {\n logger.error(\"No newsletters selected: please select at least one newsletter\");\n return;\n }\n\n if (consentRequired && !consentGiven) {\n newsletterStore.state.errors = {\n ...newsletterStore.state.errors,\n consent: \"consent_required\",\n };\n\n return;\n }\n\n await NewsletterHelpers.createSubscriptions({ email });\n }\n\n render() {\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"newsletter-root.js","sourceRoot":"","sources":["../../../../src/newsletter/components/newsletter-root/newsletter-root.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, h, Method, Prop } from \"@stencil/core\";\nimport { Auth } from \"../../../auth/auth\";\nimport { t } from \"../../../i18n\";\nimport { logger } from \"../../../logger\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { waitForConfig } from \"../../../shared/store/unidy-store\";\nimport { clearUrlParam } from \"../../../shared/utils/url-utils\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type NewsletterErrorIdentifier, newsletterStore, persist } from \"../../store/newsletter-store\";\nimport type { NewsletterButtonFor } from \"../submit-button/newsletter-submit-button\";\n\n@Component({\n tag: \"u-newsletter-root\",\n shadow: false,\n})\nexport class NewsletterRoot extends UnidyComponent() {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @Event() uNewsletterSuccess!: EventEmitter<{ email: string; newsletters: string[] }>;\n @Event() uNewsletterError!: EventEmitter<{ email: string; error: string }>;\n\n getErrorText(errorIdentifier: NewsletterErrorIdentifier): string {\n return t(`newsletter.errors.${errorIdentifier}`) || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" });\n }\n\n async componentWillLoad() {\n const newsletterError = clearUrlParam(\"newsletter_error\");\n const preferenceToken = clearUrlParam(\"preference_token\");\n const email = clearUrlParam(\"email\");\n\n if (newsletterError) {\n Flash.error.addMessage(this.getErrorText(newsletterError as NewsletterErrorIdentifier));\n }\n\n if (preferenceToken && email) {\n newsletterStore.state.preferenceToken = preferenceToken;\n newsletterStore.state.email = email;\n\n persist(\"preferenceToken\");\n persist(\"email\");\n }\n\n const authInstance = await Auth.getInstance();\n const isAuthenticated = await authInstance.isAuthenticated();\n newsletterStore.state.isAuthenticated = isAuthenticated;\n\n if (isAuthenticated) {\n const userData = await authInstance.userData();\n\n if (userData) {\n newsletterStore.state.email = userData.email;\n }\n }\n\n await waitForConfig();\n await NewsletterHelpers.fetchSubscriptions();\n }\n\n @Method()\n async submit(forType?: NewsletterButtonFor) {\n const { email, checkedNewsletters, consentGiven, consentRequired } = newsletterStore.state;\n const newsletters = Object.keys(checkedNewsletters);\n\n // Check email first for better UX\n if (!email) {\n logger.error(\"Email is required\");\n Flash.error.addMessage(t(\"newsletter.errors.email_required\"));\n this.uNewsletterError.emit({ email: \"\", error: \"email_required\" });\n return;\n }\n\n if (forType === \"login\") {\n const result = await NewsletterHelpers.sendLoginEmail(email);\n if (result.success === true) {\n this.uNewsletterSuccess.emit({ email, newsletters: [] });\n } else if (result.success === false) {\n this.uNewsletterError.emit({ email, error: `login_${result.error}` });\n }\n return;\n }\n\n if (newsletters.length === 0) {\n logger.error(\"No newsletters selected: please select at least one newsletter\");\n this.uNewsletterError.emit({ email, error: \"no_newsletters_selected\" });\n return;\n }\n\n if (consentRequired && !consentGiven) {\n newsletterStore.state.errors = {\n ...newsletterStore.state.errors,\n consent: \"consent_required\",\n };\n this.uNewsletterError.emit({ email, error: \"consent_required\" });\n return;\n }\n\n const success = await NewsletterHelpers.createSubscriptions({ email });\n\n if (success) {\n this.uNewsletterSuccess.emit({ email, newsletters });\n } else {\n this.uNewsletterError.emit({ email, error: \"subscription_failed\" });\n }\n }\n\n render() {\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"]}
@@ -97,7 +97,7 @@ export class NewsletterPreferenceCheckbox {
97
97
  }
98
98
  }
99
99
  render() {
100
- return (h("input", { key: '8de9f048b6c3b786c08dd601881fbe68503402ee', type: "checkbox", checked: this.isChecked, disabled: this.isDisabled, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-busy": this.loading, "aria-disabled": this.isDisabled, "data-internal-name": this.internalName, "data-preference-identifier": this.preferenceIdentifier }));
100
+ return (h("input", { key: '7160b9aeb9d1b9e4c17dede29adf0b48bf4a1c06', type: "checkbox", checked: this.isChecked, disabled: this.isDisabled, onChange: this.handleChange, class: this.componentClassName, "aria-checked": this.isChecked, "aria-busy": this.loading, "aria-disabled": this.isDisabled, "data-internal-name": this.internalName, "data-preference-identifier": this.preferenceIdentifier }));
101
101
  }
102
102
  static get is() { return "u-newsletter-preference-checkbox"; }
103
103
  static get properties() {