@unidy.io/sdk 1.0.0 → 1.1.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.
- package/dist/cjs/app-globals-DSKjcXX_.js +10 -0
- package/dist/cjs/app-globals-DSKjcXX_.js.map +1 -0
- package/dist/cjs/{auth-COn3PdbX.js → auth-BVKZHhXz.js} +11 -14
- package/dist/cjs/{auth-COn3PdbX.js.map → auth-BVKZHhXz.js.map} +1 -1
- package/dist/cjs/{auth-store-BT2pDmTN.js → auth-store-DC9EVec8.js} +4 -4
- package/dist/cjs/{auth-store-BT2pDmTN.js.map → auth-store-DC9EVec8.js.map} +1 -1
- package/dist/cjs/{flash-store-Bz-eFpp2.js → flash-store-BuIBuQDx.js} +3 -3
- package/dist/cjs/{flash-store-Bz-eFpp2.js.map → flash-store-BuIBuQDx.js.map} +1 -1
- package/dist/cjs/{i18n-DNuyTvmJ.js → i18n-Xy1So-ba.js} +580 -26
- package/dist/cjs/i18n-Xy1So-ba.js.map +1 -0
- package/dist/cjs/index-B_N5xKgH.js +12025 -0
- package/dist/cjs/index-B_N5xKgH.js.map +1 -0
- package/dist/cjs/{index-JpRzPaSm.js → index-DLz3FT7T.js} +3 -3
- package/dist/cjs/{index-JpRzPaSm.js.map → index-DLz3FT7T.js.map} +1 -1
- package/dist/cjs/{index-CtJ5meJ7.js → index-DiUlebpf.js} +18 -17
- package/dist/cjs/index-DiUlebpf.js.map +1 -0
- package/dist/cjs/index.cjs.js +10 -11
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{newsletter-helpers-BINJr8bg.js → newsletter-helpers-DtXuIac8.js} +9 -8
- package/dist/cjs/{newsletter-helpers-BINJr8bg.js.map → newsletter-helpers-DtXuIac8.js.map} +1 -1
- package/dist/cjs/{newsletter-store-D_RRzlpH.js → newsletter-store-dhtu8ywO.js} +3 -3
- package/dist/cjs/{newsletter-store-D_RRzlpH.js.map → newsletter-store-dhtu8ywO.js.map} +1 -1
- package/dist/cjs/{pagination-store-TtGIma9Z.js → pagination-store-BEiW3MQd.js} +3 -3
- package/dist/cjs/{pagination-store-TtGIma9Z.js.map → pagination-store-BEiW3MQd.js.map} +1 -1
- package/dist/cjs/{submit-button-logic-rhAjEO33.js → profile-helpers-DrcTgN5n.js} +4 -4
- package/dist/cjs/profile-helpers-DrcTgN5n.js.map +1 -0
- package/dist/cjs/{profile-store-JiqaDLcK.js → profile-store-P_BcYkef.js} +3 -3
- package/dist/cjs/{profile-store-JiqaDLcK.js.map → profile-store-P_BcYkef.js.map} +1 -1
- package/dist/cjs/sdk.cjs.js +3 -4
- package/dist/cjs/sdk.cjs.js.map +1 -1
- package/dist/cjs/u-conditional-render.cjs.entry.js +11 -12
- package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
- package/dist/cjs/u-config.cjs.entry.js +11 -12
- package/dist/cjs/u-config.entry.cjs.js.map +1 -1
- package/dist/cjs/u-email-field.cjs.entry.js +9 -8
- package/dist/cjs/u-email-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-error-message.cjs.entry.js +6 -6
- package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-field_2.cjs.entry.js +13 -11
- package/dist/cjs/u-flash-message.cjs.entry.js +7 -7
- package/dist/cjs/u-flash-message.entry.cjs.js.map +1 -1
- package/dist/cjs/u-full-profile.cjs.entry.js +7 -7
- package/dist/cjs/u-full-profile.entry.cjs.js.map +1 -1
- package/dist/cjs/u-logout-button.cjs.entry.js +9 -10
- package/dist/cjs/u-logout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-magic-code-field.cjs.entry.js +13 -14
- package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-missing-field.cjs.entry.js +4 -4
- package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +10 -11
- package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +12 -13
- package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-root.cjs.entry.js +20 -14
- package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +12 -13
- package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-button.cjs.entry.js +1 -1
- package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-page.cjs.entry.js +1 -1
- package/dist/cjs/u-passkey.cjs.entry.js +9 -10
- package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
- package/dist/cjs/u-password-field.cjs.entry.js +5 -5
- package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-profile_2.cjs.entry.js +41 -61
- package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
- package/dist/cjs/u-reset-password-button.cjs.entry.js +9 -10
- package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-send-magic-code-button.cjs.entry.js +9 -10
- package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signed-in.cjs.entry.js +5 -5
- package/dist/cjs/u-signin-root.cjs.entry.js +4 -4
- package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-step.cjs.entry.js +9 -10
- package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-strategy.cjs.entry.js +4 -4
- package/dist/cjs/u-social-login-button.cjs.entry.js +18 -19
- package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-spinner.cjs.entry.js +3 -3
- package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
- package/dist/cjs/u-ticketable-list.cjs.entry.js +9 -10
- package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
- package/dist/cjs/{unidy-store-C1O0g41c.js → unidy-store-7AbWnZ6g.js} +3 -3
- package/dist/cjs/{unidy-store-C1O0g41c.js.map → unidy-store-7AbWnZ6g.js.map} +1 -1
- package/dist/collection/api/client.js +4 -2
- package/dist/collection/api/client.js.map +1 -1
- package/dist/collection/auth/api/auth.js +1 -1
- package/dist/collection/auth/api/auth.js.map +1 -1
- package/dist/collection/auth/components/magic-code-field/magic-code-field.css +1 -1
- package/dist/collection/auth/components/magic-code-field/magic-code-field.js +3 -3
- package/dist/collection/auth/components/magic-code-field/magic-code-field.js.map +1 -1
- package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +1 -1
- package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
- package/dist/collection/auth/components/password-field/password-field.js +1 -1
- package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -1
- package/dist/collection/auth/components/social-logins/social-login-button.css +1 -1
- package/dist/collection/auth/components/social-logins/social-login-button.js +11 -11
- package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -1
- package/dist/collection/auth/components/submit-button/auth-submit-button.js +2 -5
- package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -1
- package/dist/collection/auth/passkey-auth.js +1 -3
- package/dist/collection/auth/passkey-auth.js.map +1 -1
- package/dist/collection/globalScript.js +1 -0
- package/dist/collection/globalScript.js.map +1 -1
- package/dist/collection/i18n.js +10 -4
- package/dist/collection/i18n.js.map +1 -1
- package/dist/collection/locales/fr.json +131 -0
- package/dist/collection/locales/it.json +131 -0
- package/dist/collection/locales/nl_be.json +131 -0
- package/dist/collection/locales/ro.json +131 -0
- package/dist/collection/logger.js +25 -55
- package/dist/collection/logger.js.map +1 -1
- package/dist/collection/newsletter/api/newsletters.js +1 -1
- package/dist/collection/newsletter/api/newsletters.js.map +1 -1
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +25 -9
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -1
- package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.js +1 -1
- package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.js.map +1 -1
- package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js +6 -6
- package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js.map +1 -1
- package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js +1 -1
- package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js.map +1 -1
- package/dist/collection/profile/components/field/field.css +1 -1
- package/dist/collection/profile/components/field/field.js +7 -5
- package/dist/collection/profile/components/field/field.js.map +1 -1
- package/dist/collection/profile/components/full-profile/full-profile.css +1 -1
- package/dist/collection/profile/components/full-profile/full-profile.js +1 -1
- package/dist/collection/profile/components/full-profile/full-profile.js.map +1 -1
- package/dist/collection/profile/components/profile/profile.js +1 -1
- package/dist/collection/profile/components/profile/profile.js.map +1 -1
- package/dist/collection/profile/components/raw-input-fields/MultiSelect.js.map +1 -1
- package/dist/collection/profile/components/submit-button/profile-submit-button.js +2 -7
- package/dist/collection/profile/components/submit-button/profile-submit-button.js.map +1 -1
- package/dist/collection/{shared/components/u-fields-submit-button-logic/submit-button-logic.js → profile/profile-helpers.js} +3 -3
- package/dist/collection/profile/profile-helpers.js.map +1 -0
- package/dist/collection/sdk.css +2 -2
- package/dist/collection/shared/components/config/config.js +3 -3
- package/dist/collection/shared/components/config/config.js.map +1 -1
- package/dist/collection/shared/components/email-field/email-field.js +31 -5
- package/dist/collection/shared/components/email-field/email-field.js.map +1 -1
- package/dist/collection/shared/components/flash-message/flash-message.js +4 -4
- package/dist/collection/shared/components/flash-message/flash-message.js.map +1 -1
- package/dist/collection/shared/components/spinner/spinner.css +1 -1
- package/dist/collection/shared/components/spinner/spinner.js +1 -1
- package/dist/collection/shared/components/spinner/spinner.js.map +1 -1
- package/dist/collection/shared/components/submit-button/context.js +2 -3
- package/dist/collection/shared/components/submit-button/context.js.map +1 -1
- package/dist/collection/shared/components/submit-button/submit-button.js +16 -21
- package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
- package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +2 -2
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
- package/dist/components/auth.js +0 -2
- package/dist/components/auth.js.map +1 -1
- package/dist/components/field.js +8 -6
- package/dist/components/field.js.map +1 -1
- package/dist/components/i18n.js +576 -22
- package/dist/components/i18n.js.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +6 -4
- package/dist/components/index2.js.map +1 -1
- package/dist/components/logger.js +25 -55
- package/dist/components/logger.js.map +1 -1
- package/dist/components/newsletter-helpers.js +1 -1
- package/dist/components/{submit-button-logic.js → profile-helpers.js} +2 -2
- package/dist/components/profile-helpers.js.map +1 -0
- package/dist/components/profile.js +1 -1
- package/dist/components/profile.js.map +1 -1
- package/dist/components/raw-field.js.map +1 -1
- package/dist/components/spinner.js +2 -2
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/submit-button.js +28 -47
- package/dist/components/submit-button.js.map +1 -1
- package/dist/components/u-config.js +1 -1
- package/dist/components/u-config.js.map +1 -1
- package/dist/components/u-email-field.js +7 -5
- package/dist/components/u-email-field.js.map +1 -1
- package/dist/components/u-flash-message.js +4 -4
- package/dist/components/u-flash-message.js.map +1 -1
- package/dist/components/u-full-profile.js +2 -2
- package/dist/components/u-full-profile.js.map +1 -1
- package/dist/components/u-magic-code-field.js +4 -4
- package/dist/components/u-magic-code-field.js.map +1 -1
- package/dist/components/u-missing-fields-submit-button.js +1 -1
- package/dist/components/u-missing-fields-submit-button.js.map +1 -1
- package/dist/components/u-newsletter-resend-doi-button.js +1 -1
- package/dist/components/u-newsletter-resend-doi-button.js.map +1 -1
- package/dist/components/u-newsletter-root.js +14 -7
- package/dist/components/u-newsletter-root.js.map +1 -1
- package/dist/components/u-newsletter-toggle-subscription-button.js +2 -2
- package/dist/components/u-newsletter-toggle-subscription-button.js.map +1 -1
- package/dist/components/u-pagination-button.js.map +1 -1
- package/dist/components/u-signin-root.js.map +1 -1
- package/dist/components/u-social-login-button.js +12 -12
- package/dist/components/u-social-login-button.js.map +1 -1
- package/dist/components/u-ticketable-list.js +2 -2
- package/dist/components/u-ticketable-list.js.map +1 -1
- package/dist/esm/app-globals-CPU9ZcqZ.js +8 -0
- package/dist/esm/app-globals-CPU9ZcqZ.js.map +1 -0
- package/dist/esm/{auth-C6B1Fl8C.js → auth-DLKPv5Zm.js} +9 -12
- package/dist/esm/{auth-C6B1Fl8C.js.map → auth-DLKPv5Zm.js.map} +1 -1
- package/dist/esm/{auth-store-BXzAv0RK.js → auth-store-BMqUdTpC.js} +4 -4
- package/dist/esm/{auth-store-BXzAv0RK.js.map → auth-store-BMqUdTpC.js.map} +1 -1
- package/dist/esm/{flash-store-CF5vw4w-.js → flash-store-CEvWSG0c.js} +3 -3
- package/dist/esm/{flash-store-CF5vw4w-.js.map → flash-store-CEvWSG0c.js.map} +1 -1
- package/dist/esm/{i18n-CPEM4Hc_.js → i18n-BR-AGAnn.js} +580 -26
- package/dist/esm/i18n-BR-AGAnn.js.map +1 -0
- package/dist/esm/{index-CJnDmBjL.js → index-Bjp1XO-f.js} +3 -3
- package/dist/esm/{index-CJnDmBjL.js.map → index-Bjp1XO-f.js.map} +1 -1
- package/dist/esm/index-Ci3aTmzp.js +12007 -0
- package/dist/esm/index-Ci3aTmzp.js.map +1 -0
- package/dist/esm/{index-CmoCWXkx.js → index-DKaIwo59.js} +12 -11
- package/dist/esm/index-DKaIwo59.js.map +1 -0
- package/dist/esm/index.js +10 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +4 -5
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{newsletter-helpers-D9OpR1Yd.js → newsletter-helpers-VixG_zoB.js} +9 -9
- package/dist/esm/{newsletter-helpers-D9OpR1Yd.js.map → newsletter-helpers-VixG_zoB.js.map} +1 -1
- package/dist/esm/{newsletter-store-Bx1ysKBb.js → newsletter-store-BYmuLQg8.js} +3 -3
- package/dist/esm/{newsletter-store-Bx1ysKBb.js.map → newsletter-store-BYmuLQg8.js.map} +1 -1
- package/dist/esm/{pagination-store-B-ivWcjb.js → pagination-store-DzdJOp-n.js} +3 -3
- package/dist/esm/{pagination-store-B-ivWcjb.js.map → pagination-store-DzdJOp-n.js.map} +1 -1
- package/dist/esm/{submit-button-logic-CtMezaoG.js → profile-helpers-7onubaoR.js} +4 -4
- package/dist/esm/profile-helpers-7onubaoR.js.map +1 -0
- package/dist/esm/{profile-store-By-nqzr9.js → profile-store-RmZB2PTc.js} +3 -3
- package/dist/esm/{profile-store-By-nqzr9.js.map → profile-store-RmZB2PTc.js.map} +1 -1
- package/dist/esm/sdk.js +4 -5
- package/dist/esm/sdk.js.map +1 -1
- package/dist/esm/u-conditional-render.entry.js +11 -12
- package/dist/esm/u-conditional-render.entry.js.map +1 -1
- package/dist/esm/u-config.entry.js +10 -11
- package/dist/esm/u-config.entry.js.map +1 -1
- package/dist/esm/u-email-field.entry.js +9 -8
- package/dist/esm/u-email-field.entry.js.map +1 -1
- package/dist/esm/u-error-message.entry.js +6 -6
- package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
- package/dist/esm/u-field_2.entry.js +13 -11
- package/dist/esm/u-flash-message.entry.js +7 -7
- package/dist/esm/u-flash-message.entry.js.map +1 -1
- package/dist/esm/u-full-profile.entry.js +7 -7
- package/dist/esm/u-full-profile.entry.js.map +1 -1
- package/dist/esm/u-logout-button.entry.js +9 -10
- package/dist/esm/u-logout-button.entry.js.map +1 -1
- package/dist/esm/u-magic-code-field.entry.js +13 -14
- package/dist/esm/u-magic-code-field.entry.js.map +1 -1
- package/dist/esm/u-missing-field.entry.js +4 -4
- package/dist/esm/u-missing-fields-submit-button.entry.js +8 -9
- package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-checkbox.entry.js +11 -12
- package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
- package/dist/esm/u-newsletter-logout-button.entry.js +11 -12
- package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-preference-checkbox.entry.js +11 -12
- package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
- package/dist/esm/u-newsletter-resend-doi-button.entry.js +12 -13
- package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-root.entry.js +20 -14
- package/dist/esm/u-newsletter-root.entry.js.map +1 -1
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +12 -13
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-button.entry.js +1 -1
- package/dist/esm/u-pagination-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-page.entry.js +1 -1
- package/dist/esm/u-passkey.entry.js +9 -10
- package/dist/esm/u-passkey.entry.js.map +1 -1
- package/dist/esm/u-password-field.entry.js +5 -5
- package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
- package/dist/esm/u-profile_2.entry.js +38 -58
- package/dist/esm/u-registration-button.entry.js +5 -5
- package/dist/esm/u-reset-password-button.entry.js +9 -10
- package/dist/esm/u-reset-password-button.entry.js.map +1 -1
- package/dist/esm/u-send-magic-code-button.entry.js +9 -10
- package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
- package/dist/esm/u-signed-in.entry.js +5 -5
- package/dist/esm/u-signin-root.entry.js +4 -4
- package/dist/esm/u-signin-root.entry.js.map +1 -1
- package/dist/esm/u-signin-step.entry.js +9 -10
- package/dist/esm/u-signin-step.entry.js.map +1 -1
- package/dist/esm/u-signin-strategy.entry.js +4 -4
- package/dist/esm/u-social-login-button.entry.js +17 -18
- package/dist/esm/u-social-login-button.entry.js.map +1 -1
- package/dist/esm/u-spinner.entry.js +3 -3
- package/dist/esm/u-spinner.entry.js.map +1 -1
- package/dist/esm/u-ticketable-list.entry.js +9 -10
- package/dist/esm/u-ticketable-list.entry.js.map +1 -1
- package/dist/esm/{unidy-store-C2nKKukb.js → unidy-store-BldTAtO0.js} +3 -3
- package/dist/esm/{unidy-store-C2nKKukb.js.map → unidy-store-BldTAtO0.js.map} +1 -1
- package/dist/sdk/index.esm.js +1 -1
- package/dist/sdk/index.esm.js.map +1 -1
- package/dist/sdk/loader.esm.js.map +1 -1
- package/dist/sdk/locales/fr.json +131 -0
- package/dist/sdk/locales/it.json +131 -0
- package/dist/sdk/locales/nl_be.json +131 -0
- package/dist/sdk/locales/ro.json +131 -0
- package/dist/sdk/p-0b47e1be.entry.js +2 -0
- package/dist/sdk/p-0b47e1be.entry.js.map +1 -0
- package/dist/sdk/p-20240b02.entry.js +2 -0
- package/dist/sdk/p-20240b02.entry.js.map +1 -0
- package/dist/sdk/p-2da4497a.entry.js +2 -0
- package/dist/sdk/{p-4b63a37a.entry.js.map → p-2da4497a.entry.js.map} +1 -1
- package/dist/sdk/p-36433853.entry.js +2 -0
- package/dist/sdk/p-36433853.entry.js.map +1 -0
- package/dist/sdk/p-431ec460.entry.js +2 -0
- package/dist/sdk/p-431ec460.entry.js.map +1 -0
- package/dist/sdk/{p-08ddbde8.entry.js → p-5da49d00.entry.js} +2 -2
- package/dist/sdk/p-67096601.entry.js +2 -0
- package/dist/sdk/p-67096601.entry.js.map +1 -0
- package/dist/sdk/{p-63ff8516.entry.js → p-6893d167.entry.js} +2 -2
- package/dist/sdk/p-7068661a.entry.js +2 -0
- package/dist/sdk/p-7068661a.entry.js.map +1 -0
- package/dist/sdk/p-72dc8aa9.entry.js +2 -0
- package/dist/sdk/p-72dc8aa9.entry.js.map +1 -0
- package/dist/sdk/{p-c2098f5e.entry.js → p-73c2ec89.entry.js} +2 -2
- package/dist/sdk/p-745742f1.entry.js +2 -0
- package/dist/sdk/p-7a7c0db2.entry.js +2 -0
- package/dist/sdk/p-7a7c0db2.entry.js.map +1 -0
- package/dist/sdk/p-7d6dc110.entry.js +2 -0
- package/dist/sdk/{p-adff35b8.entry.js.map → p-7d6dc110.entry.js.map} +1 -1
- package/dist/sdk/{p-5d859a51.entry.js → p-8d787494.entry.js} +2 -2
- package/dist/sdk/p-94dde7e5.entry.js +2 -0
- package/dist/sdk/p-94dde7e5.entry.js.map +1 -0
- package/dist/sdk/p-97d8ae02.entry.js +2 -0
- package/dist/sdk/p-97d8ae02.entry.js.map +1 -0
- package/dist/sdk/p-9c396daf.entry.js +2 -0
- package/dist/sdk/p-9c396daf.entry.js.map +1 -0
- package/dist/sdk/p-9da4dd6d.entry.js +2 -0
- package/dist/sdk/p-9da4dd6d.entry.js.map +1 -0
- package/dist/sdk/{p-ClhmT9TC.js → p-BZ1kW_eK.js} +2 -2
- package/dist/sdk/{p-ClhmT9TC.js.map → p-BZ1kW_eK.js.map} +1 -1
- package/dist/sdk/p-BlOjABPD.js +2 -0
- package/dist/sdk/{p-DBjPNcZQ.js.map → p-BlOjABPD.js.map} +1 -1
- package/dist/sdk/{p-BvjIpzI-.js → p-C0feI0p8.js} +2 -2
- package/dist/sdk/{p-BvjIpzI-.js.map → p-C0feI0p8.js.map} +1 -1
- package/dist/sdk/{p-BGi6Sl8y.js → p-CDtLILSR.js} +2 -2
- package/dist/sdk/{p-BGi6Sl8y.js.map → p-CDtLILSR.js.map} +1 -1
- package/dist/sdk/p-CFiZLMAA.js +2 -0
- package/dist/sdk/p-CFiZLMAA.js.map +1 -0
- package/dist/sdk/p-CR1oWC4S.js +2 -0
- package/dist/sdk/p-CR1oWC4S.js.map +1 -0
- package/dist/sdk/p-Ce8zGAi1.js +2 -0
- package/dist/sdk/{p-BeGO8MZ-.js.map → p-Ce8zGAi1.js.map} +1 -1
- package/dist/sdk/p-Ci3aTmzp.js +3 -0
- package/dist/sdk/p-Ci3aTmzp.js.map +1 -0
- package/dist/sdk/p-D4B6Zkq_.js +2 -0
- package/dist/sdk/p-D4B6Zkq_.js.map +1 -0
- package/dist/sdk/p-D8RGdjD3.js +2 -0
- package/dist/sdk/{p-CPMAxeLD.js.map → p-D8RGdjD3.js.map} +1 -1
- package/dist/sdk/p-DGqadgLO.js +2 -0
- package/dist/sdk/{p-D6-66bay.js.map → p-DGqadgLO.js.map} +1 -1
- package/dist/sdk/{p-DNP3fccV.js → p-DSwwVdp1.js} +2 -2
- package/dist/sdk/{p-DNP3fccV.js.map → p-DSwwVdp1.js.map} +1 -1
- package/dist/sdk/{p-BLUKsznD.js → p-DYtgart8.js} +2 -2
- package/dist/sdk/{p-BLUKsznD.js.map → p-DYtgart8.js.map} +1 -1
- package/dist/sdk/p-add92871.entry.js +2 -0
- package/dist/sdk/p-add92871.entry.js.map +1 -0
- package/dist/sdk/{p-2ddce950.entry.js → p-bb5ae222.entry.js} +2 -2
- package/dist/sdk/p-bbbec3d4.entry.js +2 -0
- package/dist/sdk/{p-35cc6db7.entry.js.map → p-bbbec3d4.entry.js.map} +1 -1
- package/dist/sdk/p-c2b6c674.entry.js +2 -0
- package/dist/sdk/p-c2b6c674.entry.js.map +1 -0
- package/dist/sdk/p-c2fba7c8.entry.js +2 -0
- package/dist/sdk/{p-C-vcnxdk.js → p-cOfRiRUO.js} +2 -2
- package/dist/sdk/{p-C-vcnxdk.js.map → p-cOfRiRUO.js.map} +1 -1
- package/dist/sdk/p-cba5d81e.entry.js +2 -0
- package/dist/sdk/p-cba5d81e.entry.js.map +1 -0
- package/dist/sdk/p-cd516902.entry.js +2 -0
- package/dist/sdk/p-cd516902.entry.js.map +1 -0
- package/dist/sdk/p-d2c6179a.entry.js +2 -0
- package/dist/sdk/p-d2c6179a.entry.js.map +1 -0
- package/dist/sdk/{p-2f8f53ed.entry.js → p-dcd4e8f0.entry.js} +2 -2
- package/dist/sdk/p-de931f46.entry.js +2 -0
- package/dist/sdk/p-de931f46.entry.js.map +1 -0
- package/dist/sdk/p-e0ba330c.entry.js +2 -0
- package/dist/sdk/p-e0ba330c.entry.js.map +1 -0
- package/dist/sdk/p-e363a33c.entry.js +2 -0
- package/dist/sdk/p-e363a33c.entry.js.map +1 -0
- package/dist/sdk/p-fc51c88d.entry.js +2 -0
- package/dist/sdk/p-fc51c88d.entry.js.map +1 -0
- package/dist/sdk/sdk.css +2 -2
- package/dist/sdk/sdk.esm.js +1 -1
- package/dist/sdk/sdk.esm.js.map +1 -1
- package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
- package/dist/sdk/u-config.entry.esm.js.map +1 -1
- package/dist/sdk/u-email-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-flash-message.entry.esm.js.map +1 -1
- package/dist/sdk/u-full-profile.entry.esm.js.map +1 -1
- package/dist/sdk/u-logout-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -1
- package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
- package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-signin-root.entry.esm.js.map +1 -1
- package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
- package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -1
- package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
- package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
- package/dist/types/auth/components/submit-button/auth-submit-button.d.ts +1 -6
- package/dist/types/components.d.ts +7 -3
- package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +3 -2
- package/dist/types/newsletter/components/submit-button/newsletter-submit-button.d.ts +2 -6
- package/dist/types/profile/components/submit-button/profile-submit-button.d.ts +0 -3
- package/dist/types/{shared/components/u-fields-submit-button-logic/submit-button-logic.d.ts → profile/profile-helpers.d.ts} +1 -1
- package/dist/types/shared/components/email-field/email-field.d.ts +2 -0
- package/dist/types/shared/components/submit-button/context.d.ts +5 -6
- package/dist/types/shared/components/submit-button/submit-button.d.ts +2 -1
- package/package.json +12 -5
- package/readme.md +2 -1
- package/dist/cjs/app-globals-CBeI09cT.js +0 -5867
- package/dist/cjs/app-globals-CBeI09cT.js.map +0 -1
- package/dist/cjs/exports-BTNx1-cN.js +0 -4174
- package/dist/cjs/exports-BTNx1-cN.js.map +0 -1
- package/dist/cjs/i18n-DNuyTvmJ.js.map +0 -1
- package/dist/cjs/index-BSf3Eyrg.js +0 -2094
- package/dist/cjs/index-BSf3Eyrg.js.map +0 -1
- package/dist/cjs/index-CtJ5meJ7.js.map +0 -1
- package/dist/cjs/submit-button-logic-rhAjEO33.js.map +0 -1
- package/dist/collection/shared/components/u-fields-submit-button-logic/submit-button-logic.js.map +0 -1
- package/dist/components/submit-button-logic.js.map +0 -1
- package/dist/esm/app-globals-DAqFb8zM.js +0 -5865
- package/dist/esm/app-globals-DAqFb8zM.js.map +0 -1
- package/dist/esm/exports-D7pzDSGS.js +0 -4106
- package/dist/esm/exports-D7pzDSGS.js.map +0 -1
- package/dist/esm/i18n-CPEM4Hc_.js.map +0 -1
- package/dist/esm/index-BF13Y4es.js +0 -2078
- package/dist/esm/index-BF13Y4es.js.map +0 -1
- package/dist/esm/index-CmoCWXkx.js.map +0 -1
- package/dist/esm/submit-button-logic-CtMezaoG.js.map +0 -1
- package/dist/sdk/p-0ac36431.entry.js +0 -2
- package/dist/sdk/p-0bb59d95.entry.js +0 -2
- package/dist/sdk/p-1888fa34.entry.js +0 -2
- package/dist/sdk/p-1888fa34.entry.js.map +0 -1
- package/dist/sdk/p-206eaf1a.entry.js +0 -2
- package/dist/sdk/p-206eaf1a.entry.js.map +0 -1
- package/dist/sdk/p-219c8df7.entry.js +0 -2
- package/dist/sdk/p-219c8df7.entry.js.map +0 -1
- package/dist/sdk/p-266ceb9b.entry.js +0 -2
- package/dist/sdk/p-266ceb9b.entry.js.map +0 -1
- package/dist/sdk/p-2c01382e.entry.js +0 -2
- package/dist/sdk/p-2c01382e.entry.js.map +0 -1
- package/dist/sdk/p-339cb94f.entry.js +0 -2
- package/dist/sdk/p-339cb94f.entry.js.map +0 -1
- package/dist/sdk/p-35cc6db7.entry.js +0 -2
- package/dist/sdk/p-40d9f876.entry.js +0 -2
- package/dist/sdk/p-40d9f876.entry.js.map +0 -1
- package/dist/sdk/p-4b63a37a.entry.js +0 -2
- package/dist/sdk/p-4df06d55.entry.js +0 -2
- package/dist/sdk/p-4df06d55.entry.js.map +0 -1
- package/dist/sdk/p-71d3863b.entry.js +0 -2
- package/dist/sdk/p-71d3863b.entry.js.map +0 -1
- package/dist/sdk/p-85e072ef.entry.js +0 -2
- package/dist/sdk/p-85e072ef.entry.js.map +0 -1
- package/dist/sdk/p-87a0b0f0.entry.js +0 -2
- package/dist/sdk/p-87a0b0f0.entry.js.map +0 -1
- package/dist/sdk/p-8969d1ab.entry.js +0 -2
- package/dist/sdk/p-8969d1ab.entry.js.map +0 -1
- package/dist/sdk/p-8970a077.entry.js +0 -2
- package/dist/sdk/p-8970a077.entry.js.map +0 -1
- package/dist/sdk/p-BF13Y4es.js +0 -3
- package/dist/sdk/p-BF13Y4es.js.map +0 -1
- package/dist/sdk/p-BeGO8MZ-.js +0 -2
- package/dist/sdk/p-BsVyUZ6I.js +0 -2
- package/dist/sdk/p-BsVyUZ6I.js.map +0 -1
- package/dist/sdk/p-CPMAxeLD.js +0 -2
- package/dist/sdk/p-D6-66bay.js +0 -2
- package/dist/sdk/p-D7pzDSGS.js +0 -2
- package/dist/sdk/p-D7pzDSGS.js.map +0 -1
- package/dist/sdk/p-DBjPNcZQ.js +0 -2
- package/dist/sdk/p-KnO0pPVa.js +0 -2
- package/dist/sdk/p-KnO0pPVa.js.map +0 -1
- package/dist/sdk/p-PfzIdrPb.js +0 -2
- package/dist/sdk/p-PfzIdrPb.js.map +0 -1
- package/dist/sdk/p-aab36768.entry.js +0 -2
- package/dist/sdk/p-aab36768.entry.js.map +0 -1
- package/dist/sdk/p-adff35b8.entry.js +0 -2
- package/dist/sdk/p-b39d7b93.entry.js +0 -2
- package/dist/sdk/p-b39d7b93.entry.js.map +0 -1
- package/dist/sdk/p-b3a64589.entry.js +0 -2
- package/dist/sdk/p-b3a64589.entry.js.map +0 -1
- package/dist/sdk/p-b5012f17.entry.js +0 -2
- package/dist/sdk/p-b5012f17.entry.js.map +0 -1
- package/dist/sdk/p-c723d85a.entry.js +0 -2
- package/dist/sdk/p-c723d85a.entry.js.map +0 -1
- package/dist/sdk/p-dab61f77.entry.js +0 -2
- package/dist/sdk/p-dab61f77.entry.js.map +0 -1
- package/dist/sdk/p-ec255573.entry.js +0 -2
- package/dist/sdk/p-ec255573.entry.js.map +0 -1
- package/dist/sdk/p-f38f9c60.entry.js +0 -2
- package/dist/sdk/p-f38f9c60.entry.js.map +0 -1
- /package/dist/sdk/{p-08ddbde8.entry.js.map → p-5da49d00.entry.js.map} +0 -0
- /package/dist/sdk/{p-63ff8516.entry.js.map → p-6893d167.entry.js.map} +0 -0
- /package/dist/sdk/{p-c2098f5e.entry.js.map → p-73c2ec89.entry.js.map} +0 -0
- /package/dist/sdk/{p-0bb59d95.entry.js.map → p-745742f1.entry.js.map} +0 -0
- /package/dist/sdk/{p-5d859a51.entry.js.map → p-8d787494.entry.js.map} +0 -0
- /package/dist/sdk/{p-2ddce950.entry.js.map → p-bb5ae222.entry.js.map} +0 -0
- /package/dist/sdk/{p-0ac36431.entry.js.map → p-c2fba7c8.entry.js.map} +0 -0
- /package/dist/sdk/{p-2f8f53ed.entry.js.map → p-dcd4e8f0.entry.js.map} +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"auth": {
|
|
3
|
+
"email": {
|
|
4
|
+
"placeholder": "Introduceți adresa dvs. de e-mail"
|
|
5
|
+
},
|
|
6
|
+
"magicCode": {
|
|
7
|
+
"already_sent_text": "Cod magic trimis deja la adresa dvs. de e-mail",
|
|
8
|
+
"button_text": "Trimite cod magic",
|
|
9
|
+
"resend": {
|
|
10
|
+
"button_text": "Trimite din nou codul magic"
|
|
11
|
+
},
|
|
12
|
+
"sending_text": "Se trimite..."
|
|
13
|
+
},
|
|
14
|
+
"passkey": {
|
|
15
|
+
"button_text": "Conectați-vă cu cheie de acces",
|
|
16
|
+
"loading_text": "Autentificare..."
|
|
17
|
+
},
|
|
18
|
+
"password": {
|
|
19
|
+
"button_text": "Conectați-vă cu parolă",
|
|
20
|
+
"confirmation": {
|
|
21
|
+
"placeholder": "Confirmați parola"
|
|
22
|
+
},
|
|
23
|
+
"placeholder": "Introduceți parola"
|
|
24
|
+
},
|
|
25
|
+
"resetPassword": {
|
|
26
|
+
"button_text_resend": "Retrimite e-mail pentru resetarea parolei",
|
|
27
|
+
"button_text_reset": "Resetează parola",
|
|
28
|
+
"button_text_set": "Salvează parola",
|
|
29
|
+
"success_message": "E-mail pentru resetarea parolei trimis. Vă rugăm să verificați inbox-ul"
|
|
30
|
+
},
|
|
31
|
+
"single-login": {
|
|
32
|
+
"button_text": "Conectare"
|
|
33
|
+
},
|
|
34
|
+
"socialLogin": {
|
|
35
|
+
"button_text": "Continuă cu {{provider}}"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"buttons": {
|
|
39
|
+
"close": "Închide",
|
|
40
|
+
"continue": "Continuă",
|
|
41
|
+
"logout": "Deconectare",
|
|
42
|
+
"registration": "Înregistrează cont nou",
|
|
43
|
+
"sign_in": "Conectare",
|
|
44
|
+
"submit": "Trimite"
|
|
45
|
+
},
|
|
46
|
+
"errors": {
|
|
47
|
+
"account_locked": "Cont blocat",
|
|
48
|
+
"account_not_found": "Cont negăsit",
|
|
49
|
+
"authentication_failed": "Autentificare eșuată",
|
|
50
|
+
"bad_request": "Cerere invalidă",
|
|
51
|
+
"connection_failed": "Nu se poate conecta la serverul Unidy",
|
|
52
|
+
"expired": "Expirat",
|
|
53
|
+
"failed_to_load_profile": "Încărcarea datelor profilului a eșuat. Vă rugăm să verificați configurația",
|
|
54
|
+
"invalid_id_token": "Token ID invalid",
|
|
55
|
+
"invalid_passkey": "Cheie de acces invalidă",
|
|
56
|
+
"invalid_password": "Parolă invalidă",
|
|
57
|
+
"invalid_refresh_token": "Token de reîmprospătare invalid",
|
|
58
|
+
"invalid_required_fields_payload": "Payload invalid pentru câmpurile obligatorii",
|
|
59
|
+
"invalid_reset_token": "Token de resetare invalid. Vă rugăm să solicitați un nou e-mail pentru resetarea parolei",
|
|
60
|
+
"invalid_response_format": "Format de răspuns invalid",
|
|
61
|
+
"magic_code_is_missing": "Cod magic lipsă",
|
|
62
|
+
"magic_code_recently_created": "Cod magic creat recent",
|
|
63
|
+
"missing_id_token": "Token ID lipsă",
|
|
64
|
+
"missing_refresh_token": "Niciun token de reîmprospătare prezent",
|
|
65
|
+
"missing_required_fields": "Câmpuri obligatorii lipsă",
|
|
66
|
+
"no_sign_in_id": "Niciun ID de conectare disponibil",
|
|
67
|
+
"not_valid": "Invalid",
|
|
68
|
+
"passkey_cancelled": "Autentificare cu cheie de acces anulată",
|
|
69
|
+
"passkey_error": "A apărut o eroare necunoscută a cheii de acces",
|
|
70
|
+
"passkey_invalid_state": "Stare invalidă a cheii de acces",
|
|
71
|
+
"passkey_not_supported": "Cheie de acces nesuportată",
|
|
72
|
+
"passkey_security_error": "Eroare de securitate a cheii de acces",
|
|
73
|
+
"password_not_set": "Parola nu este setată",
|
|
74
|
+
"password_required": "Parola este obligatorie",
|
|
75
|
+
"password_requirements": {
|
|
76
|
+
"is too short (minimum is 6 characters)": "Parola este prea scurtă (minimum 6 caractere)",
|
|
77
|
+
"min_length": "Lungimea minimă este de 6 caractere",
|
|
78
|
+
"mixed_case": "Trebuie să conțină atât litere mari, cât și litere mici",
|
|
79
|
+
"number": "Trebuie să conțină o cifră",
|
|
80
|
+
"symbol": "Trebuie să conțină un simbol"
|
|
81
|
+
},
|
|
82
|
+
"passwords_do_not_match": "Parolele nu se potrivesc",
|
|
83
|
+
"prefix": "EROARE: ",
|
|
84
|
+
"refresh_failed": "Reîmprospătarea token-ului a eșuat. Vă rugăm să vă conectați din nou",
|
|
85
|
+
"refresh_token_revoked": "Token de reîmprospătare revocat",
|
|
86
|
+
"required_field": "{{field}} este obligatoriu",
|
|
87
|
+
"reset_password_already_sent": "Resetare parolă deja trimisă",
|
|
88
|
+
"reset_token_expired": "Token-ul de resetare a expirat. Vă rugăm să solicitați un nou e-mail pentru resetarea parolei",
|
|
89
|
+
"reset_token_missing": "Token de resetare lipsă",
|
|
90
|
+
"schema_validation_error": "Eroare de validare a schemei",
|
|
91
|
+
"sign_in_expired": "Conectare expirată",
|
|
92
|
+
"sign_in_not_found": "Conectare negăsită",
|
|
93
|
+
"sign_out_failed": "Deconectare eșuată, motiv: {{reason}}",
|
|
94
|
+
"unknown": "A apărut o eroare necunoscută",
|
|
95
|
+
"used": "Folosit",
|
|
96
|
+
"verification_failed": "Verificare eșuată"
|
|
97
|
+
},
|
|
98
|
+
"loading": "Se încarcă...",
|
|
99
|
+
"newsletter": {
|
|
100
|
+
"buttons": {
|
|
101
|
+
"logout": "x",
|
|
102
|
+
"resend_doi": "Retrimite confirmarea",
|
|
103
|
+
"subscribe": "Abonare",
|
|
104
|
+
"unsubscribe": "Dezabonare"
|
|
105
|
+
},
|
|
106
|
+
"errors": {
|
|
107
|
+
"already_subscribed": "Deja abonat",
|
|
108
|
+
"email_required": "Vă rugăm să introduceți adresa dvs. de e-mail",
|
|
109
|
+
"invalid_email": "Adresă de e-mail invalidă",
|
|
110
|
+
"newsletter_not_found": "Newsletter negăsit",
|
|
111
|
+
"preferences_not_found": "Preferință negăsită",
|
|
112
|
+
"rate_limit_exceeded": "Limita de rată depășită. Vă rugăm să încercați din nou mai târziu",
|
|
113
|
+
"unauthorized": "Sesiunea dvs. a expirat. Vă rugăm să vă conectați din nou",
|
|
114
|
+
"unconfirmed": "E-mailul dvs. nu este confirmat pentru acest newsletter",
|
|
115
|
+
"unsubscribe_failed": "Dezabonare eșuată",
|
|
116
|
+
"invalid_preference_token": "Token de preferință invalid. Introduceți adresa dvs. de e-mail pentru a primi un link nou."
|
|
117
|
+
},
|
|
118
|
+
"success": {
|
|
119
|
+
"doi_sent": "E-mail de confirmare trimis la adresa dvs. de e-mail",
|
|
120
|
+
"login_email_sent": "Am trimis un link pentru a vă gestiona abonamentul existent la adresa dvs. de e-mail",
|
|
121
|
+
"logout": "V-ați deconectat cu succes",
|
|
122
|
+
"preferences_updated": "Preferințele dvs. au fost actualizate cu succes",
|
|
123
|
+
"subscribe": "V-ați abonat cu succes",
|
|
124
|
+
"unsubscribe": "V-ați dezabonat cu succes"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"profile": {
|
|
128
|
+
"signInToView": "Vă rugăm să vă conectați pentru a vă vedea profilul",
|
|
129
|
+
"updated": "Profilul a fost actualizat"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -26,40 +26,20 @@ const canLog = (level) => LOG_LEVELS[getLogLevel()] >= LOG_LEVELS[level];
|
|
|
26
26
|
const log = (level, prefix, ...args) => {
|
|
27
27
|
if (canLog(level)) {
|
|
28
28
|
const prefixedArgs = prefix ? [`[${prefix}]`, ...args] : args;
|
|
29
|
-
|
|
30
|
-
case "error":
|
|
31
|
-
console.error(...prefixedArgs);
|
|
32
|
-
break;
|
|
33
|
-
case "warn":
|
|
34
|
-
console.warn(...prefixedArgs);
|
|
35
|
-
break;
|
|
36
|
-
case "info":
|
|
37
|
-
console.info(...prefixedArgs);
|
|
38
|
-
break;
|
|
39
|
-
case "debug":
|
|
40
|
-
console.debug(...prefixedArgs);
|
|
41
|
-
break;
|
|
42
|
-
case "trace":
|
|
43
|
-
console.trace(...prefixedArgs);
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
29
|
+
console[level](...prefixedArgs);
|
|
46
30
|
}
|
|
47
31
|
};
|
|
32
|
+
const LOG_METHODS = ["error", "warn", "info", "debug", "trace"];
|
|
48
33
|
/**
|
|
49
34
|
* Creates a logger instance with a specific prefix (typically class/component name)
|
|
50
35
|
*/
|
|
51
|
-
export const createLogger = (prefix) =>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
// biome-ignore lint/suspicious/noExplicitAny: See above
|
|
59
|
-
debug: (...args) => log("debug", prefix, ...args),
|
|
60
|
-
// biome-ignore lint/suspicious/noExplicitAny: See above
|
|
61
|
-
trace: (...args) => log("trace", prefix, ...args),
|
|
62
|
-
});
|
|
36
|
+
export const createLogger = (prefix) => {
|
|
37
|
+
return LOG_METHODS.reduce((logger, level) => {
|
|
38
|
+
// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
|
|
39
|
+
logger[level] = (...args) => log(level, prefix, ...args);
|
|
40
|
+
return logger;
|
|
41
|
+
}, {});
|
|
42
|
+
};
|
|
63
43
|
/**
|
|
64
44
|
* Stencil mixin factory that adds a logger property to the component.
|
|
65
45
|
* The logger automatically uses the component's class name as the prefix.
|
|
@@ -97,40 +77,30 @@ export const loggerFactory = (Base = Object) => {
|
|
|
97
77
|
*/
|
|
98
78
|
export const UnidyComponent = Mixin(loggerFactory);
|
|
99
79
|
// Global logger for non-class contexts (backwards compatibility)
|
|
100
|
-
export const logger =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
// biome-ignore lint/suspicious/noExplicitAny: See above
|
|
108
|
-
debug: (...args) => log("debug", "", ...args),
|
|
109
|
-
// biome-ignore lint/suspicious/noExplicitAny: See above
|
|
110
|
-
trace: (...args) => log("trace", "", ...args),
|
|
80
|
+
export const logger = createLogger("");
|
|
81
|
+
// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
|
|
82
|
+
const formatI18nMessage = (args) => {
|
|
83
|
+
const [caller_action, ...messages] = args;
|
|
84
|
+
const [caller, action] = caller_action.split(": ");
|
|
85
|
+
const message = typeof messages[0] === "object" ? action : `${action}: ${messages.join(" ")}`;
|
|
86
|
+
return { prefix: caller || "i18next", message };
|
|
111
87
|
};
|
|
112
88
|
export const i18nLogger = {
|
|
113
89
|
type: "logger",
|
|
114
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
90
|
+
// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
|
|
115
91
|
error: (args) => {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
const message = typeof messages[0] === "object" ? action : `${action}: ${messages.join(" ")}`;
|
|
119
|
-
log("error", caller || "i18next", message);
|
|
92
|
+
const { prefix, message } = formatI18nMessage(args);
|
|
93
|
+
log("error", prefix, message);
|
|
120
94
|
},
|
|
121
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
95
|
+
// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
|
|
122
96
|
warn: (args) => {
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
const message = typeof messages[0] === "object" ? action : `${action}: ${messages.join(" ")}`;
|
|
126
|
-
log("warn", caller || "i18next", message);
|
|
97
|
+
const { prefix, message } = formatI18nMessage(args);
|
|
98
|
+
log("warn", prefix, message);
|
|
127
99
|
},
|
|
128
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
100
|
+
// biome-ignore lint/suspicious/noExplicitAny: External interfaces require the use of any in this case
|
|
129
101
|
log: (args) => {
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
const message = typeof messages[0] === "object" ? action : `${action}: ${messages.join(" ")}`;
|
|
133
|
-
log("info", caller || "i18next", message);
|
|
102
|
+
const { prefix, message } = formatI18nMessage(args);
|
|
103
|
+
log("info", prefix, message);
|
|
134
104
|
},
|
|
135
105
|
};
|
|
136
106
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LoggerModule } from \"i18next\";\nimport { Mixin, type MixedInCtor } from \"@stencil/core\";\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 switch (level) {\n case \"error\":\n console.error(...prefixedArgs);\n break;\n case \"warn\":\n console.warn(...prefixedArgs);\n break;\n case \"info\":\n console.info(...prefixedArgs);\n break;\n case \"debug\":\n console.debug(...prefixedArgs);\n break;\n case \"trace\":\n console.trace(...prefixedArgs);\n break;\n }\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\n/**\n * Creates a logger instance with a specific prefix (typically class/component name)\n */\nexport const createLogger = (prefix: string): Logger => ({\n // biome-ignore lint/suspicious/noExplicitAny: See above\n error: (...args: any[]) => log(\"error\", prefix, ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n warn: (...args: any[]) => log(\"warn\", prefix, ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n info: (...args: any[]) => log(\"info\", prefix, ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n debug: (...args: any[]) => log(\"debug\", prefix, ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n trace: (...args: any[]) => log(\"trace\", prefix, ...args),\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: Logger = {\n // biome-ignore lint/suspicious/noExplicitAny: See above\n error: (...args: any[]) => log(\"error\", \"\", ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n warn: (...args: any[]) => log(\"warn\", \"\", ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n info: (...args: any[]) => log(\"info\", \"\", ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n debug: (...args: any[]) => log(\"debug\", \"\", ...args),\n // biome-ignore lint/suspicious/noExplicitAny: See above\n trace: (...args: any[]) => log(\"trace\", \"\", ...args),\n};\n\nexport const i18nLogger: LoggerModule = {\n type: \"logger\",\n // biome-ignore lint/suspicious/noExplicitAny: See above\n error: (args: any[]) => {\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 log(\"error\", caller || \"i18next\", message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: See above\n warn: (args: any[]) => {\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 log(\"warn\", caller || \"i18next\", message);\n },\n // biome-ignore lint/suspicious/noExplicitAny: See above\n log: (args: any[]) => {\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 log(\"info\", caller || \"i18next\", message);\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AAUxD,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAE3C,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,WAAW,GAAG,GAAa,EAAE;IACjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAQ,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAc,IAAI,iBAAiB,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAe,EAAE,EAAE;IACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAEnF,sGAAsG;AACtG,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,MAAc,EAAE,GAAG,IAAW,EAAE,EAAE;IAC9D,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAeF,MAAM,WAAW,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;IACrD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC1C,sGAAsG;QACtG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAY,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF;;;GAGG;AACH,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAwB,OAAU,MAAa,EAAE,EAAE;IAC9E,MAAM,WAAY,SAAQ,IAAI;QAC5B,gBAAgB;QAChB,QAAQ,GAAkB,IAAI,CAAC;QAE/B,IAAI,MAAM;YACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;KACF;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAEnD,iEAAiE;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AAEvC,sGAAsG;AACtG,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAuC,EAAE;IAC7E,MAAM,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,QAAQ;IACd,sGAAsG;IACtG,KAAK,EAAE,CAAC,IAAW,EAAE,EAAE;QACrB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,sGAAsG;IACtG,IAAI,EAAE,CAAC,IAAW,EAAE,EAAE;QACpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,sGAAsG;IACtG,GAAG,EAAE,CAAC,IAAW,EAAE,EAAE;QACnB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC","sourcesContent":["import type { LoggerModule } from \"i18next\";\nimport { Mixin, type MixedInCtor } from \"@stencil/core\";\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod/mini\";\nimport type { ApiClient, ApiResponse } from \"../../api\";\nimport EventEmitter from \"eventemitter3\";\nimport { createLogger } from \"../../logger\";\n\nconst NewsletterSubscriptionSchema = z.object({\n id: z.number(),\n email: z.string(),\n newsletter_internal_name: z.string(),\n preference_identifiers: z.array(z.string()),\n preference_token: z.string(),\n confirmed_at: z.union([z.string(), z.null()]),\n});\n\nconst NewsletterSubscriptionErrorSchema = z.object({\n error_identifier: z.string(),\n error_details: z.optional(z.record(z.string(), z.array(z.string()))),\n meta: z.object({\n newsletter_internal_name: z.string(),\n }),\n});\n\nconst CreateSubscriptionsResponseSchema = z.object({\n results: z.array(NewsletterSubscriptionSchema),\n errors: z.array(NewsletterSubscriptionErrorSchema),\n});\n\nconst AdditionalFieldsSchema = z.object({\n first_name: z.optional(z.union([z.string(), z.null()])),\n last_name: z.optional(z.union([z.string(), z.null()])),\n salutation: z.optional(z.union([z.literal(\"mr\"), z.literal(\"mrs\"), z.literal(\"mx\"), z.null()])),\n phone_number: z.optional(z.union([z.string(), z.null()])),\n date_of_birth: z.optional(z.union([z.string(), z.null()])),\n company_name: z.optional(z.union([z.string(), z.null()])),\n address_line_1: z.optional(z.union([z.string(), z.null()])),\n address_line_2: z.optional(z.union([z.string(), z.null()])),\n city: z.optional(z.union([z.string(), z.null()])),\n postal_code: z.optional(z.union([z.string(), z.null()])),\n country_code: z.optional(z.union([z.string(), z.null()])),\n preferred_language: z.optional(z.union([z.string(), z.null()])),\n custom_attributes: z.optional(z.union([z.record(z.string(), z.unknown()), z.null()])),\n});\n\nconst CreateSubscriptionsPayloadSchema = z.object({\n email: z.string(),\n additional_fields: z.optional(AdditionalFieldsSchema),\n newsletter_subscriptions: z.array(\n z.object({\n newsletter_internal_name: z.string(),\n preference_identifiers: z.optional(z.array(z.string())),\n }),\n ),\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst UpdateSubscriptionPayloadSchema = z.object({\n preference_identifiers: z.array(z.string()),\n});\n\nconst LoginEmailPayloadSchema = z.object({\n email: z.string(),\n redirect_uri: z.string(),\n});\n\nconst ResendDoiPayloadSchema = z.object({\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst PreferenceSchema = z.object({\n id: z.number(),\n name: z.string(),\n description: z.union([z.string(), z.null()]),\n plugin_identifier: z.union([z.string(), z.null()]),\n position: z.number(),\n default: z.boolean(),\n hidden: z.boolean(),\n});\n\nconst PreferenceGroupSchema = z.object({\n id: z.number(),\n name: z.string(),\n position: z.number(),\n flat: z.boolean(),\n preferences: z.array(PreferenceSchema),\n});\n\nconst NewsletterSchema = z.object({\n id: z.number(),\n internal_name: z.string(),\n default: z.boolean(),\n position: z.number(),\n opt_in_type: z.string(),\n title: z.string(),\n description: z.union([z.string(), z.null()]),\n created_at: z.string(),\n updated_at: z.string(),\n preference_groups: z.array(PreferenceGroupSchema),\n});\n\nconst NewslettersResponseSchema = z.object({\n newsletters: z.array(NewsletterSchema),\n});\n\nexport type NewsletterSubscription = z.infer<typeof NewsletterSubscriptionSchema>;\nexport type NewsletterSubscriptionError = z.infer<typeof NewsletterSubscriptionErrorSchema>;\nexport type CreateSubscriptionsResponse = z.infer<typeof CreateSubscriptionsResponseSchema>;\nexport type CreateSubscriptionsPayload = z.infer<typeof CreateSubscriptionsPayloadSchema>;\nexport type AdditionalFields = z.infer<typeof AdditionalFieldsSchema>;\nexport type UpdateSubscriptionPayload = z.infer<typeof UpdateSubscriptionPayloadSchema>;\nexport type LoginEmailPayload = z.infer<typeof LoginEmailPayloadSchema>;\nexport type ResendDoiPayload = z.infer<typeof ResendDoiPayloadSchema>;\nexport type Newsletter = z.infer<typeof NewsletterSchema>;\nexport type NewslettersResponse = z.infer<typeof NewslettersResponseSchema>;\nexport type Preference = z.infer<typeof PreferenceSchema>;\nexport type PreferenceGroup = z.infer<typeof PreferenceGroupSchema>;\n\nexport type SubscriptionAuthOptions = {\n idToken?: string;\n preferenceToken?: string;\n};\n\nexport type CreateSubscriptionsResult =\n | [\"schema_validation_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"rate_limit_exceeded\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"unauthorized\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"newsletter_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"network_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"server_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"error\", ApiResponse<CreateSubscriptionsResponse>]\n | [null, ApiResponse<CreateSubscriptionsResponse>];\n\nexport class NewsletterService extends EventEmitter {\n private client: ApiClient;\n private logger = createLogger(\"NewsletterService\");\n\n constructor(client: ApiClient) {\n super();\n this.client = client;\n }\n\n private buildAuthHeaders(auth?: SubscriptionAuthOptions): HeadersInit | undefined {\n if (!auth) return undefined;\n\n const headers: Record<string, string> = {};\n if (auth.idToken) {\n headers[\"X-ID-Token\"] = auth.idToken;\n }\n if (auth.preferenceToken) {\n headers[\"X-Preference-Token\"] = auth.preferenceToken;\n }\n return Object.keys(headers).length > 0 ? headers : undefined;\n }\n\n async createSubscriptions(payload: CreateSubscriptionsPayload, auth?: SubscriptionAuthOptions): Promise<CreateSubscriptionsResult> {\n CreateSubscriptionsPayloadSchema.parse(payload);\n\n const response = await this.client.post<CreateSubscriptionsResponse>(\n \"/api/sdk/v1/newsletters/newsletter_subscription\",\n payload,\n this.buildAuthHeaders(auth),\n );\n\n switch (response.status) {\n case 401:\n this.emit(\"unauthorized\", response);\n return [\"unauthorized\", response];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n this.emit(\"rate_limit_exceeded\", response);\n return [\"rate_limit_exceeded\", response];\n case 500:\n Sentry.captureException(response);\n return [\"server_error\", response];\n case 0:\n return [\"network_error\", response];\n default:\n if (response.data) {\n try {\n const validatedData = CreateSubscriptionsResponseSchema.parse(response.data);\n\n if (validatedData.errors.length > 0) {\n this.emit(\"newsletter_error\", response);\n return [\"newsletter_error\", response];\n }\n\n return [null, response];\n } catch (validationError) {\n return [\"schema_validation_error\", response];\n }\n }\n\n return [\"error\", response];\n }\n }\n\n async listSubscriptions(auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription[]>> {\n return this.client.get<NewsletterSubscription[]>(\"/api/sdk/v1/newsletters/newsletter_subscription\", this.buildAuthHeaders(auth));\n }\n\n async getSubscription(internalName: string, auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription>> {\n return this.client.get<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async updateSubscription(\n internalName: string,\n payload: UpdateSubscriptionPayload,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<NewsletterSubscription>> {\n UpdateSubscriptionPayloadSchema.parse(payload);\n\n return this.client.patch<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async deleteSubscription(\n internalName: string,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<{ new_preference_token: string } | null>> {\n return this.client.delete<{ new_preference_token: string } | null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async resendDoi(internalName: string, payload: ResendDoiPayload, auth: SubscriptionAuthOptions): Promise<ApiResponse<null>> {\n ResendDoiPayloadSchema.parse(payload);\n\n return this.client.post<null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async sendLoginEmail(payload: LoginEmailPayload): Promise<ApiResponse<null>> {\n LoginEmailPayloadSchema.parse(payload);\n\n return this.client.post<null>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n }\n\n async listNewsletters(): Promise<ApiResponse<NewslettersResponse>> {\n return this.client.get<NewslettersResponse>(\"/api/sdk/v1/newsletters\");\n }\n\n async getNewsletter(internalName: string): Promise<ApiResponse<Newsletter>> {\n return this.client.get<Newsletter>(`/api/sdk/v1/newsletters/${internalName}`);\n }\n\n onError(\n callback: (errors: z.infer<typeof NewsletterSubscriptionErrorSchema>[]) => void,\n errorIdentifier?: \"unconfirmed\" | \"already_subscribed\" | \"invalid_email\",\n ): void {\n this.on(\"newsletter_error\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (!response.data?.errors) {\n return;\n }\n\n const errors = errorIdentifier\n ? response.data.errors.filter(\n (error: {\n error_identifier: string;\n }) => error.error_identifier === errorIdentifier,\n )\n : response.data.errors;\n\n if (errors.length > 0) {\n callback(errors);\n }\n });\n }\n\n onRateLimitError(callback: () => void): void {\n this.on(\"rate_limit_exceeded\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (response.status === 429) {\n callback();\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE;IACpC,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE;KACrC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/F,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACtF,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACrD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAC/B,CAAC,CAAC,MAAM,CAAC;QACP,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE;QACpC,sBAAsB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KACxD,CAAC,CACH;IACD,8BAA8B,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,8BAA8B,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACvC,CAAC,CAAC;AA8BH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACzC,MAAM,CAAY;IAClB,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAEnD,YAAY,MAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,gBAAgB,CAAC,IAA8B;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAmC,EAAE,IAA8B;QAC3F,gCAAgC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iDAAiD,EACjD,OAAO,EACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAC5B,CAAC;QAEF,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACpC,KAAK,GAAG;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAC3C,KAAK,GAAG;gBACN,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAClC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACpC,KAAK,CAAC;gBACJ,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YACrC;gBACE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,iCAAiC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAE7E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;4BACxC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;wBACxC,CAAC;wBAED,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1B,CAAC;oBAAC,OAAO,gBAAgB,EAAE,CAAC;wBAC1B,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAA6B;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAA2B,iDAAiD,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnI,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,IAA6B;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,2BAA2B,YAAY,0BAA0B,EACjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,YAAoB,EACpB,OAAkC,EAClC,IAA6B;QAE7B,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CACtB,2BAA2B,YAAY,0BAA0B,EACjE,OAAO,EACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,YAAoB,EACpB,IAA6B;QAE7B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,2BAA2B,YAAY,0BAA0B,EACjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB,EAAE,OAAyB,EAAE,IAA6B;QAC5F,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,2BAA2B,YAAY,qCAAqC,EAC5E,OAAO,EACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA0B;QAC7C,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,6DAA6D,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsB,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAa,2BAA2B,YAAY,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,CACL,QAA+E,EAC/E,eAAwE;QAExE,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAkD,EAAE,EAAE;YACjF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,eAAe;gBAC5B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAmC,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,eAAe,CAAC;gBAClH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,QAAoB;QACnC,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,QAAkD,EAAE,EAAE;YACpF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod/mini\";\nimport type { ApiClient, ApiResponse } from \"../../api\";\nimport EventEmitter from \"eventemitter3\";\nimport { createLogger } from \"../../logger\";\n\nconst NewsletterSubscriptionSchema = z.object({\n id: z.number(),\n email: z.string(),\n newsletter_internal_name: z.string(),\n preference_identifiers: z.array(z.string()),\n preference_token: z.string(),\n confirmed_at: z.union([z.string(), z.null()]),\n});\n\nconst NewsletterSubscriptionErrorSchema = z.object({\n error_identifier: z.string(),\n error_details: z.optional(z.record(z.string(), z.array(z.string()))),\n meta: z.object({\n newsletter_internal_name: z.string(),\n }),\n});\n\nconst CreateSubscriptionsResponseSchema = z.object({\n results: z.array(NewsletterSubscriptionSchema),\n errors: z.array(NewsletterSubscriptionErrorSchema),\n});\n\nconst AdditionalFieldsSchema = z.object({\n first_name: z.optional(z.union([z.string(), z.null()])),\n last_name: z.optional(z.union([z.string(), z.null()])),\n salutation: z.optional(z.union([z.literal(\"mr\"), z.literal(\"mrs\"), z.literal(\"mx\"), z.null()])),\n phone_number: z.optional(z.union([z.string(), z.null()])),\n date_of_birth: z.optional(z.union([z.string(), z.null()])),\n company_name: z.optional(z.union([z.string(), z.null()])),\n address_line_1: z.optional(z.union([z.string(), z.null()])),\n address_line_2: z.optional(z.union([z.string(), z.null()])),\n city: z.optional(z.union([z.string(), z.null()])),\n postal_code: z.optional(z.union([z.string(), z.null()])),\n country_code: z.optional(z.union([z.string(), z.null()])),\n preferred_language: z.optional(z.union([z.string(), z.null()])),\n custom_attributes: z.optional(z.union([z.record(z.string(), z.unknown()), z.null()])),\n});\n\nconst CreateSubscriptionsPayloadSchema = z.object({\n email: z.string(),\n additional_fields: z.optional(AdditionalFieldsSchema),\n newsletter_subscriptions: z.array(\n z.object({\n newsletter_internal_name: z.string(),\n preference_identifiers: z.optional(z.array(z.string())),\n }),\n ),\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst UpdateSubscriptionPayloadSchema = z.object({\n preference_identifiers: z.array(z.string()),\n});\n\nconst LoginEmailPayloadSchema = z.object({\n email: z.string(),\n redirect_uri: z.string(),\n});\n\nconst ResendDoiPayloadSchema = z.object({\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst PreferenceSchema = z.object({\n id: z.number(),\n name: z.string(),\n description: z.union([z.string(), z.null()]),\n plugin_identifier: z.union([z.string(), z.null()]),\n position: z.number(),\n default: z.boolean(),\n hidden: z.boolean(),\n});\n\nconst PreferenceGroupSchema = z.object({\n id: z.number(),\n name: z.string(),\n position: z.number(),\n flat: z.boolean(),\n preferences: z.array(PreferenceSchema),\n});\n\nconst NewsletterSchema = z.object({\n id: z.number(),\n internal_name: z.string(),\n default: z.boolean(),\n position: z.number(),\n opt_in_type: z.string(),\n title: z.string(),\n description: z.union([z.string(), z.null()]),\n created_at: z.string(),\n updated_at: z.string(),\n preference_groups: z.array(PreferenceGroupSchema),\n});\n\nconst NewslettersResponseSchema = z.object({\n newsletters: z.array(NewsletterSchema),\n});\n\nexport type NewsletterSubscription = z.infer<typeof NewsletterSubscriptionSchema>;\nexport type NewsletterSubscriptionError = z.infer<typeof NewsletterSubscriptionErrorSchema>;\nexport type CreateSubscriptionsResponse = z.infer<typeof CreateSubscriptionsResponseSchema>;\nexport type CreateSubscriptionsPayload = z.infer<typeof CreateSubscriptionsPayloadSchema>;\nexport type AdditionalFields = z.infer<typeof AdditionalFieldsSchema>;\nexport type UpdateSubscriptionPayload = z.infer<typeof UpdateSubscriptionPayloadSchema>;\nexport type LoginEmailPayload = z.infer<typeof LoginEmailPayloadSchema>;\nexport type ResendDoiPayload = z.infer<typeof ResendDoiPayloadSchema>;\nexport type Newsletter = z.infer<typeof NewsletterSchema>;\nexport type NewslettersResponse = z.infer<typeof NewslettersResponseSchema>;\nexport type Preference = z.infer<typeof PreferenceSchema>;\nexport type PreferenceGroup = z.infer<typeof PreferenceGroupSchema>;\n\nexport type SubscriptionAuthOptions = {\n idToken?: string;\n preferenceToken?: string;\n};\n\nexport type CreateSubscriptionsResult =\n | [\"schema_validation_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"rate_limit_exceeded\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"unauthorized\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"newsletter_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"network_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"server_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"error\", ApiResponse<CreateSubscriptionsResponse>]\n | [null, ApiResponse<CreateSubscriptionsResponse>];\n\nexport class NewsletterService extends EventEmitter {\n private client: ApiClient;\n private logger = createLogger(\"NewsletterService\");\n\n constructor(client: ApiClient) {\n super();\n this.client = client;\n }\n\n private buildAuthHeaders(auth?: SubscriptionAuthOptions): HeadersInit | undefined {\n if (!auth) return undefined;\n\n const headers: Record<string, string> = {};\n if (auth.idToken) {\n headers[\"X-ID-Token\"] = auth.idToken;\n }\n if (auth.preferenceToken) {\n headers[\"X-Preference-Token\"] = auth.preferenceToken;\n }\n return Object.keys(headers).length > 0 ? headers : undefined;\n }\n\n async createSubscriptions(payload: CreateSubscriptionsPayload, auth?: SubscriptionAuthOptions): Promise<CreateSubscriptionsResult> {\n CreateSubscriptionsPayloadSchema.parse(payload);\n\n const response = await this.client.post<CreateSubscriptionsResponse>(\n \"/api/sdk/v1/newsletters/newsletter_subscription\",\n payload,\n this.buildAuthHeaders(auth),\n );\n\n switch (response.status) {\n case 401:\n this.emit(\"unauthorized\", response);\n return [\"unauthorized\", response];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n this.emit(\"rate_limit_exceeded\", response);\n return [\"rate_limit_exceeded\", response];\n case 500:\n Sentry.captureException(response);\n return [\"server_error\", response];\n case 0:\n return [\"network_error\", response];\n default:\n if (response.data) {\n try {\n const validatedData = CreateSubscriptionsResponseSchema.parse(response.data);\n\n if (validatedData.errors.length > 0) {\n this.emit(\"newsletter_error\", response);\n return [\"newsletter_error\", response];\n }\n\n return [null, response];\n } catch (_validationError) {\n return [\"schema_validation_error\", response];\n }\n }\n\n return [\"error\", response];\n }\n }\n\n async listSubscriptions(auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription[]>> {\n return this.client.get<NewsletterSubscription[]>(\"/api/sdk/v1/newsletters/newsletter_subscription\", this.buildAuthHeaders(auth));\n }\n\n async getSubscription(internalName: string, auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription>> {\n return this.client.get<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async updateSubscription(\n internalName: string,\n payload: UpdateSubscriptionPayload,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<NewsletterSubscription>> {\n UpdateSubscriptionPayloadSchema.parse(payload);\n\n return this.client.patch<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async deleteSubscription(\n internalName: string,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<{ new_preference_token: string } | null>> {\n return this.client.delete<{ new_preference_token: string } | null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async resendDoi(internalName: string, payload: ResendDoiPayload, auth: SubscriptionAuthOptions): Promise<ApiResponse<null>> {\n ResendDoiPayloadSchema.parse(payload);\n\n return this.client.post<null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async sendLoginEmail(payload: LoginEmailPayload): Promise<ApiResponse<null>> {\n LoginEmailPayloadSchema.parse(payload);\n\n return this.client.post<null>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n }\n\n async listNewsletters(): Promise<ApiResponse<NewslettersResponse>> {\n return this.client.get<NewslettersResponse>(\"/api/sdk/v1/newsletters\");\n }\n\n async getNewsletter(internalName: string): Promise<ApiResponse<Newsletter>> {\n return this.client.get<Newsletter>(`/api/sdk/v1/newsletters/${internalName}`);\n }\n\n onError(\n callback: (errors: z.infer<typeof NewsletterSubscriptionErrorSchema>[]) => void,\n errorIdentifier?: \"unconfirmed\" | \"already_subscribed\" | \"invalid_email\",\n ): void {\n this.on(\"newsletter_error\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (!response.data?.errors) {\n return;\n }\n\n const errors = errorIdentifier\n ? response.data.errors.filter((error: { error_identifier: string }) => error.error_identifier === errorIdentifier)\n : response.data.errors;\n\n if (errors.length > 0) {\n callback(errors);\n }\n });\n }\n\n onRateLimitError(callback: () => void): void {\n this.on(\"rate_limit_exceeded\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (response.status === 429) {\n callback();\n }\n });\n }\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
-
import { newsletterStore, persist } from "../../store/newsletter-store";
|
|
3
|
-
import * as NewsletterHelpers from "../../newsletter-helpers";
|
|
4
|
-
import { clearUrlParam } from "../../../shared/component-utils";
|
|
5
|
-
import { waitForConfig } from "../../../shared/store/unidy-store";
|
|
6
|
-
import { t } from "../../../i18n";
|
|
7
2
|
import { Auth } from "../../../auth/auth";
|
|
3
|
+
import { t } from "../../../i18n";
|
|
8
4
|
import { logger, UnidyComponent } from "../../../logger";
|
|
5
|
+
import { clearUrlParam } from "../../../shared/component-utils";
|
|
9
6
|
import { Flash } from "../../../shared/store/flash-store";
|
|
7
|
+
import { waitForConfig } from "../../../shared/store/unidy-store";
|
|
8
|
+
import * as NewsletterHelpers from "../../newsletter-helpers";
|
|
9
|
+
import { newsletterStore, persist } from "../../store/newsletter-store";
|
|
10
10
|
export class NewsletterRoot extends UnidyComponent {
|
|
11
11
|
constructor() {
|
|
12
12
|
super();
|
|
@@ -41,8 +41,15 @@ export class NewsletterRoot extends UnidyComponent {
|
|
|
41
41
|
await waitForConfig();
|
|
42
42
|
await NewsletterHelpers.fetchSubscriptions();
|
|
43
43
|
}
|
|
44
|
-
async submit() {
|
|
44
|
+
async submit(forType) {
|
|
45
45
|
const { email, checkedNewsletters } = newsletterStore.state;
|
|
46
|
+
if (forType === "login") {
|
|
47
|
+
if (!email) {
|
|
48
|
+
logger.error("Email is required for login");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
return await NewsletterHelpers.sendLoginEmail(email);
|
|
52
|
+
}
|
|
46
53
|
if (Object.keys(checkedNewsletters).length === 0) {
|
|
47
54
|
logger.error("No newsletters selected: please select at least one newsletter");
|
|
48
55
|
return;
|
|
@@ -50,7 +57,7 @@ export class NewsletterRoot extends UnidyComponent {
|
|
|
50
57
|
await NewsletterHelpers.createSubscriptions({ email });
|
|
51
58
|
}
|
|
52
59
|
render() {
|
|
53
|
-
return (h(Host, { key: '
|
|
60
|
+
return (h(Host, { key: 'cf821d06d0f6bd88ddb141d8d32f238e8688b5bf', class: this.componentClassName }, h("slot", { key: '9c316c3ba2faf49f9b66bc49420f33943121ae12' })));
|
|
54
61
|
}
|
|
55
62
|
static get is() { return "u-newsletter-root"; }
|
|
56
63
|
static get properties() {
|
|
@@ -81,12 +88,21 @@ export class NewsletterRoot extends UnidyComponent {
|
|
|
81
88
|
return {
|
|
82
89
|
"submit": {
|
|
83
90
|
"complexType": {
|
|
84
|
-
"signature": "() => Promise<void>",
|
|
85
|
-
"parameters": [
|
|
91
|
+
"signature": "(forType?: NewsletterButtonFor) => Promise<void>",
|
|
92
|
+
"parameters": [{
|
|
93
|
+
"name": "forType",
|
|
94
|
+
"type": "\"login\" | \"create\"",
|
|
95
|
+
"docs": ""
|
|
96
|
+
}],
|
|
86
97
|
"references": {
|
|
87
98
|
"Promise": {
|
|
88
99
|
"location": "global",
|
|
89
100
|
"id": "global::Promise"
|
|
101
|
+
},
|
|
102
|
+
"NewsletterButtonFor": {
|
|
103
|
+
"location": "import",
|
|
104
|
+
"path": "../submit-button/newsletter-submit-button",
|
|
105
|
+
"id": "src/newsletter/components/submit-button/newsletter-submit-button.ts::NewsletterButtonFor"
|
|
90
106
|
}
|
|
91
107
|
},
|
|
92
108
|
"return": "Promise<void>"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newsletter-root.js","sourceRoot":"","sources":["../../../../src/newsletter/components/newsletter-root/newsletter-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,
|
|
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 } = newsletterStore.state;\n\n if (forType === \"login\") {\n if (!email) {\n logger.error(\"Email is required for login\");\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 await NewsletterHelpers.createSubscriptions({ email });\n }\n\n render() {\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -24,7 +24,7 @@ export class NewsletterResendDoiButton {
|
|
|
24
24
|
if (!this.shouldShow) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
return (h("button", { type: "button", onClick: this.handleClick, disabled: this.isResending, "aria-busy": this.isResending, "aria-live": "polite", class: `${this.componentClassName} flex items-center justify-center` }, this.isResending ? h("u-spinner", null) : t("newsletter.buttons.resend_doi")));
|
|
27
|
+
return (h("button", { type: "button", onClick: this.handleClick, disabled: this.isResending, "aria-busy": this.isResending, "aria-live": "polite", class: `${this.componentClassName} u:flex u:items-center u:justify-center` }, this.isResending ? h("u-spinner", null) : t("newsletter.buttons.resend_doi")));
|
|
28
28
|
}
|
|
29
29
|
static get is() { return "u-newsletter-resend-doi-button"; }
|
|
30
30
|
static get properties() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resend-doi-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/resend-doi-button/resend-doi-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAM1D,MAAM,OAAO,yBAAyB;IAC5B,YAAY,CAAU;IACK,kBAAkB,GAAG,EAAE,CAAC;IAElD,WAAW,GAAG,KAAK,CAAC;IAE7B,IAAY,UAAU;QACpB,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChH,CAAC;IAEO,WAAW,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,WAAW,eACf,IAAI,CAAC,WAAW,eACjB,QAAQ,EAClB,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"resend-doi-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/resend-doi-button/resend-doi-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAM1D,MAAM,OAAO,yBAAyB;IAC5B,YAAY,CAAU;IACK,kBAAkB,GAAG,EAAE,CAAC;IAElD,WAAW,GAAG,KAAK,CAAC;IAE7B,IAAY,UAAU;QACpB,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChH,CAAC;IAEO,WAAW,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,WAAW,eACf,IAAI,CAAC,WAAW,eACjB,QAAQ,EAClB,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,yCAAyC,IAEzE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAa,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAC/D,CACV,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { Flash } from \"../../../shared/store/flash-store\";\n\n@Component({\n tag: \"u-newsletter-resend-doi-button\",\n shadow: false,\n})\nexport class NewsletterResendDoiButton {\n @Prop() internalName!: string;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() isResending = false;\n\n private get shouldShow(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName) && !NewsletterHelpers.isConfirmed(this.internalName);\n }\n\n private handleClick = async () => {\n this.isResending = true;\n const success = await NewsletterHelpers.resendDoi(this.internalName);\n this.isResending = false;\n\n if (success) {\n Flash.success.addMessage(t(\"newsletter.success.doi_sent\"));\n } else {\n Flash.error.addMessage(t(\"newsletter.errors.resend_doi_failed\"));\n }\n };\n\n render() {\n if (!this.shouldShow) {\n return null;\n }\n\n return (\n <button\n type=\"button\"\n onClick={this.handleClick}\n disabled={this.isResending}\n aria-busy={this.isResending}\n aria-live=\"polite\"\n class={`${this.componentClassName} u:flex u:items-center u:justify-center`}\n >\n {this.isResending ? <u-spinner /> : t(\"newsletter.buttons.resend_doi\")}\n </button>\n );\n }\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { newsletterStore } from "../../store/newsletter-store";
|
|
2
2
|
import { getParentNewsletterRoot } from "../helpers";
|
|
3
|
-
export const NewsletterSubmitButton = (_props, children) => {
|
|
4
|
-
return children;
|
|
5
|
-
};
|
|
6
3
|
export const newsletterContext = {
|
|
7
|
-
handleClick: async (event, el) => {
|
|
4
|
+
handleClick: async (event, el, forProp) => {
|
|
8
5
|
event.preventDefault();
|
|
9
|
-
return await getParentNewsletterRoot(el)?.submit();
|
|
6
|
+
return await getParentNewsletterRoot(el)?.submit(forProp);
|
|
10
7
|
},
|
|
11
|
-
isDisabled(
|
|
8
|
+
isDisabled(forProp, disabled) {
|
|
9
|
+
if (forProp === "login") {
|
|
10
|
+
return disabled || !newsletterStore.state.email;
|
|
11
|
+
}
|
|
12
12
|
return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;
|
|
13
13
|
},
|
|
14
14
|
isLoading() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newsletter-submit-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/submit-button/newsletter-submit-button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"newsletter-submit-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/submit-button/newsletter-submit-button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,CAAC,MAAM,iBAAiB,GAA6C;IACzE,WAAW,EAAE,KAAK,EAAE,KAAiB,EAAE,EAAe,EAAE,OAA6B,EAAE,EAAE;QACvF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,MAAM,uBAAuB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU,CAAC,OAAO,EAAE,QAAkB;QACpC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAClD,CAAC;QAED,OAAO,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACxH,CAAC;IAED,SAAS;QACP,gDAAgD;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC","sourcesContent":["import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport { getParentNewsletterRoot } from \"../helpers\";\n\nexport type NewsletterButtonFor = \"login\" | \"create\";\n\nexport const newsletterContext: SubmitButtonContext<NewsletterButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, forProp?: NewsletterButtonFor) => {\n event.preventDefault();\n return await getParentNewsletterRoot(el)?.submit(forProp);\n },\n\n isDisabled(forProp, disabled?: boolean): boolean {\n if (forProp === \"login\") {\n return disabled || !newsletterStore.state.email;\n }\n\n return disabled || !newsletterStore.state.email || Object.keys(newsletterStore.state.checkedNewsletters).length === 0;\n },\n\n isLoading(): boolean {\n // newsletter sdk doesn't have loading state yet\n return false;\n },\n};\n"]}
|
|
@@ -49,7 +49,7 @@ export class ToggleNewsletterSubscriptionButton {
|
|
|
49
49
|
render() {
|
|
50
50
|
const isSubscribed = this.isSubscribed;
|
|
51
51
|
const stateClassName = isSubscribed ? this.unsubscribeClassName : this.subscribeClassName;
|
|
52
|
-
return (h("button", { key: '
|
|
52
|
+
return (h("button", { key: '76b7f2de7c121586c04e70f30002ce65da5cce7e', type: "button", onClick: this.handleClick, disabled: this.loading, "aria-busy": this.loading, "aria-label": isSubscribed ? t("newsletter.buttons.unsubscribe") : t("newsletter.buttons.subscribe"), "aria-live": "polite", "data-subscribed": isSubscribed, class: `${this.componentClassName} ${stateClassName} u:flex u:items-center u:justify-center`.trim() }, this.loading ? h("u-spinner", null) : isSubscribed ? t("newsletter.buttons.unsubscribe") : t("newsletter.buttons.subscribe")));
|
|
53
53
|
}
|
|
54
54
|
static get is() { return "u-newsletter-toggle-subscription-button"; }
|
|
55
55
|
static get properties() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-subscription-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/toggle-subscription-button/toggle-subscription-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAM1D,MAAM,OAAO,kCAAkC;IACrC,YAAY,CAAU;IAEK,kBAAkB,GAAG,EAAE,CAAC;IACd,kBAAkB,GAAG,EAAE,CAAC;IACtB,oBAAoB,GAAG,EAAE,CAAC;IAEhE,OAAO,GAAG,KAAK,CAAC;IAEzB,IAAY,YAAY;QACtB,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAEO,WAAW,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEM,eAAe,GAAG,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;QAExC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC;IAEM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAE1F,OAAO,CACL,+DACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,eACX,IAAI,CAAC,OAAO,gBACX,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,eACxF,QAAQ,qBACD,YAAY,EAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"toggle-subscription-button.js","sourceRoot":"","sources":["../../../../src/newsletter/components/toggle-subscription-button/toggle-subscription-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { Flash } from \"../../../shared/store/flash-store\";\n\n@Component({\n tag: \"u-newsletter-toggle-subscription-button\",\n shadow: false,\n})\nexport class ToggleNewsletterSubscriptionButton {\n @Prop() internalName!: string;\n\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop({ attribute: \"subscribe-class-name\" }) subscribeClassName = \"\";\n @Prop({ attribute: \"unsubscribe-class-name\" }) unsubscribeClassName = \"\";\n\n @State() loading = false;\n\n private get isSubscribed(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName);\n }\n\n private handleClick = async () => {\n if (this.loading) return;\n\n if (this.isSubscribed) {\n await this.handleUnsubscribe();\n } else {\n await this.handleSubscribe();\n }\n };\n\n private handleSubscribe = async () => {\n const { email } = newsletterStore.state;\n\n if (!email) {\n Flash.error.addMessage(t(\"newsletter.errors.email_required\"));\n return;\n }\n\n this.loading = true;\n const success = await NewsletterHelpers.subscribeToNewsletter(this.internalName, email);\n this.loading = false;\n\n if (success) {\n Flash.success.addMessage(t(\"newsletter.success.subscribe\"));\n }\n };\n\n private handleUnsubscribe = async () => {\n this.loading = true;\n const success = await NewsletterHelpers.deleteSubscription(this.internalName);\n this.loading = false;\n\n if (success) {\n Flash.info.addMessage(t(\"newsletter.success.unsubscribe\"));\n } else {\n Flash.error.addMessage(t(\"newsletter.errors.unsubscribe_failed\"));\n }\n };\n\n render() {\n const isSubscribed = this.isSubscribed;\n const stateClassName = isSubscribed ? this.unsubscribeClassName : this.subscribeClassName;\n\n return (\n <button\n type=\"button\"\n onClick={this.handleClick}\n disabled={this.loading}\n aria-busy={this.loading}\n aria-label={isSubscribed ? t(\"newsletter.buttons.unsubscribe\") : t(\"newsletter.buttons.subscribe\")}\n aria-live=\"polite\"\n data-subscribed={isSubscribed}\n class={`${this.componentClassName} ${stateClassName} u:flex u:items-center u:justify-center`.trim()}\n >\n {this.loading ? <u-spinner /> : isSubscribed ? t(\"newsletter.buttons.unsubscribe\") : t(\"newsletter.buttons.subscribe\")}\n </button>\n );\n }\n}\n"]}
|