@unidy.io/sdk 1.2.0-alpha9 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_commonjsHelpers-CFO10eej.js +10 -0
- package/dist/cjs/_commonjsHelpers-CFO10eej.js.map +1 -0
- package/dist/cjs/app-globals-C-Wl5lPS.js +10 -0
- package/dist/cjs/app-globals-C-Wl5lPS.js.map +1 -0
- package/dist/cjs/{auth-store-DPmGKHZ2.js → auth-store-0vv3uOib.js} +4 -4
- package/dist/cjs/{auth-store-DPmGKHZ2.js.map → auth-store-0vv3uOib.js.map} +1 -1
- package/dist/cjs/component-DLxnZCW6.js +34 -0
- package/dist/cjs/component-DLxnZCW6.js.map +1 -0
- package/dist/cjs/component-utils-XXctnOM9.js +38 -0
- package/dist/cjs/component-utils-XXctnOM9.js.map +1 -0
- package/dist/cjs/de-BWF6Glzg.js +704 -0
- package/dist/cjs/de-BWF6Glzg.js.map +1 -0
- package/dist/cjs/en-GB-DhD5mdQw.js +119 -0
- package/dist/cjs/en-GB-DhD5mdQw.js.map +1 -0
- package/dist/cjs/{flash-store-gbSYhPAV.js → flash-store-CR6Umh1O.js} +3 -3
- package/dist/cjs/{flash-store-gbSYhPAV.js.map → flash-store-CR6Umh1O.js.map} +1 -1
- package/dist/cjs/fr-j2wwoj-A.js +577 -0
- package/dist/cjs/fr-j2wwoj-A.js.map +1 -0
- package/dist/cjs/has-slot-content-CfJbU4t-.js +37 -0
- package/dist/cjs/has-slot-content-CfJbU4t-.js.map +1 -0
- package/dist/cjs/{i18n-D5j_Zl-4.js → i18n-ClWrNmGh.js} +100 -4
- package/dist/cjs/{i18n-D5j_Zl-4.js.map → i18n-ClWrNmGh.js.map} +1 -1
- package/dist/cjs/{index-B325yXfO.js → index-2Fz3r5o0.js} +5 -41
- package/dist/cjs/index-2Fz3r5o0.js.map +1 -0
- package/dist/cjs/{index-yaeiYlfa.js → index-C6ZBKFYr.js} +3 -3
- package/dist/cjs/{index-yaeiYlfa.js.map → index-C6ZBKFYr.js.map} +1 -1
- package/dist/cjs/{index-BzPYBLYC.js → index-CpPKy1CZ.js} +1170 -1087
- package/dist/cjs/index-CpPKy1CZ.js.map +1 -0
- package/dist/cjs/index.cjs.js +24 -11
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{newsletter-helpers-hdDC5X-V.js → newsletter-helpers-BHvOI8M4.js} +46 -9
- package/dist/cjs/newsletter-helpers-BHvOI8M4.js.map +1 -0
- package/dist/cjs/{newsletter-store-CupsLgO9.js → newsletter-store-22Jswiqe.js} +5 -3
- package/dist/cjs/newsletter-store-22Jswiqe.js.map +1 -0
- package/dist/cjs/nl-BE-yKvOp1-G.js +542 -0
- package/dist/cjs/nl-BE-yKvOp1-G.js.map +1 -0
- package/dist/cjs/{profile-helpers-Bprrm-Xl.js → profile-helpers-BBpAqHjK.js} +4 -4
- package/dist/cjs/{profile-helpers-Bprrm-Xl.js.map → profile-helpers-BBpAqHjK.js.map} +1 -1
- package/dist/cjs/{profile-store-C_q-TuA_.js → profile-store-CQEQhPQD.js} +4 -4
- package/dist/cjs/{profile-store-C_q-TuA_.js.map → profile-store-CQEQhPQD.js.map} +1 -1
- package/dist/cjs/redirect-with-token-wupYX97S.js +37 -0
- package/dist/cjs/redirect-with-token-wupYX97S.js.map +1 -0
- package/dist/cjs/ro-CXq9d1lv.js +578 -0
- package/dist/cjs/ro-CXq9d1lv.js.map +1 -0
- package/dist/cjs/sdk.cjs.js +3 -3
- package/dist/cjs/sv-CMln4V33.js +597 -0
- package/dist/cjs/sv-CMln4V33.js.map +1 -0
- package/dist/cjs/u-conditional-render.cjs.entry.js +14 -14
- package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
- package/dist/cjs/u-config.cjs.entry.js +24 -11
- package/dist/cjs/u-config.entry.cjs.js.map +1 -1
- package/dist/cjs/u-email-field.cjs.entry.js +7 -7
- package/dist/cjs/u-error-message.cjs.entry.js +49 -22
- package/dist/cjs/u-error-message.entry.cjs.js.map +1 -1
- package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-field_2.cjs.entry.js +124 -12
- package/dist/cjs/u-flash-message.cjs.entry.js +3 -3
- package/dist/cjs/u-full-profile.cjs.entry.js +6 -6
- package/dist/cjs/u-jump-to-service.cjs.entry.js +23 -44
- package/dist/cjs/u-jump-to-service.entry.cjs.js.map +1 -1
- package/dist/cjs/u-jump-to-unidy.cjs.entry.js +22 -43
- package/dist/cjs/u-jump-to-unidy.entry.cjs.js.map +1 -1
- package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -1
- package/dist/cjs/u-logout-button_2.cjs.entry.js +15 -22
- package/dist/cjs/u-magic-code-field.cjs.entry.js +8 -9
- package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-missing-field.cjs.entry.js +6 -5
- package/dist/cjs/u-missing-field.entry.cjs.js.map +1 -1
- package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +16 -14
- 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-consent-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +15 -20
- 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 +10 -11
- package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-root.cjs.entry.js +45 -22
- package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +11 -12
- package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-button.cjs.entry.js +4 -4
- package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-pagination-page.cjs.entry.js +4 -4
- package/dist/cjs/u-pagination-page.entry.cjs.js.map +1 -1
- package/dist/cjs/u-passkey.cjs.entry.js +8 -9
- 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 +31 -33
- package/dist/cjs/u-registration-button.cjs.entry.js +5 -5
- package/dist/cjs/u-reset-password-button.cjs.entry.js +12 -15
- package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-send-magic-code-button.cjs.entry.js +8 -9
- package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-root.cjs.entry.js +6 -8
- package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -1
- package/dist/cjs/u-signin-step.cjs.entry.js +17 -21
- package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
- package/dist/cjs/u-social-login-button.cjs.entry.js +16 -15
- 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-export.cjs.entry.js +76 -0
- package/dist/cjs/u-ticketable-export.entry.cjs.js.map +1 -0
- package/dist/cjs/u-ticketable-list-D3M8iA-g.js +3991 -0
- package/dist/cjs/u-ticketable-list-D3M8iA-g.js.map +1 -0
- package/dist/cjs/u-ticketable-list.cjs.entry.js +11 -6118
- package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
- package/dist/cjs/{unidy-store-BGnWn9pc.js → unidy-store-Bvnl24i9.js} +3 -3
- package/dist/cjs/{unidy-store-BGnWn9pc.js.map → unidy-store-Bvnl24i9.js.map} +1 -1
- package/dist/collection/api/base-service.js.map +1 -1
- package/dist/collection/api/client.js.map +1 -1
- package/dist/collection/api/index.js +6 -6
- package/dist/collection/api/index.js.map +1 -1
- package/dist/collection/api/standalone.js +88 -39
- package/dist/collection/api/standalone.js.map +1 -1
- package/dist/collection/auth/api/auth.js.map +1 -1
- package/dist/collection/auth/api/schemas.js +5 -5
- package/dist/collection/auth/api/schemas.js.map +1 -1
- package/dist/collection/auth/auth-helpers.js +7 -8
- package/dist/collection/auth/auth-helpers.js.map +1 -1
- package/dist/collection/auth/auth.js +1 -0
- package/dist/collection/auth/auth.js.map +1 -1
- package/dist/collection/auth/components/jump-to-service/jump-to-service.js +20 -40
- package/dist/collection/auth/components/jump-to-service/jump-to-service.js.map +1 -1
- package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js +20 -39
- package/dist/collection/auth/components/jump-to-unidy/jump-to-unidy.js.map +1 -1
- package/dist/collection/auth/components/logout-button/logout-button.js +7 -11
- package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -1
- package/dist/collection/auth/components/missing-field/missing-field.js +25 -1
- package/dist/collection/auth/components/missing-field/missing-field.js.map +1 -1
- package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +33 -7
- 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/reset-pass-button/reset-pass-button.js +6 -8
- package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js.map +1 -1
- package/dist/collection/auth/components/signed-in/signed-in.js +2 -5
- package/dist/collection/auth/components/signed-in/signed-in.js.map +1 -1
- package/dist/collection/auth/components/signin-root/signin-root.js +2 -5
- package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -1
- package/dist/collection/auth/components/signin-step/signin-step.js +9 -13
- package/dist/collection/auth/components/signin-step/signin-step.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 -12
- 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 +10 -0
- package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/locales/de.json +16 -0
- package/dist/collection/locales/en.json +16 -0
- package/dist/collection/locales/fr.json +16 -0
- package/dist/collection/locales/it.json +16 -0
- package/dist/collection/locales/nl_be.json +16 -0
- package/dist/collection/locales/ro.json +16 -0
- package/dist/collection/logger.js +0 -37
- package/dist/collection/logger.js.map +1 -1
- package/dist/collection/newsletter/api/newsletters.js +19 -18
- package/dist/collection/newsletter/api/newsletters.js.map +1 -1
- package/dist/collection/newsletter/components/consent-checkbox/consent-checkbox.js +1 -1
- package/dist/collection/newsletter/components/logout-button/logout-button.js +6 -10
- package/dist/collection/newsletter/components/logout-button/logout-button.js.map +1 -1
- package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js +1 -1
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +65 -10
- package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -1
- package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +1 -1
- package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js +1 -1
- package/dist/collection/newsletter/newsletter-helpers.js +39 -2
- package/dist/collection/newsletter/newsletter-helpers.js.map +1 -1
- package/dist/collection/newsletter/store/newsletter-store.js +2 -0
- package/dist/collection/newsletter/store/newsletter-store.js.map +1 -1
- package/dist/collection/profile/api/profile.js.map +1 -1
- package/dist/collection/profile/api/schemas.js +1 -1
- package/dist/collection/profile/api/schemas.js.map +1 -1
- package/dist/collection/profile/components/field/field.js +3 -1
- package/dist/collection/profile/components/field/field.js.map +1 -1
- package/dist/collection/profile/components/full-profile/full-profile.js +1 -1
- package/dist/collection/profile/components/raw-field/raw-field.js +40 -7
- package/dist/collection/profile/components/raw-field/raw-field.js.map +1 -1
- package/dist/collection/profile/store/profile-store.js +1 -1
- package/dist/collection/profile/store/profile-store.js.map +1 -1
- package/dist/collection/shared/base/component.js +28 -0
- package/dist/collection/shared/base/component.js.map +1 -0
- package/dist/collection/shared/base/has-slot-content.js +31 -0
- package/dist/collection/shared/base/has-slot-content.js.map +1 -0
- package/dist/collection/shared/component-utils.js +23 -27
- package/dist/collection/shared/component-utils.js.map +1 -1
- package/dist/collection/shared/components/conditional-render/conditional-render.js +4 -5
- package/dist/collection/shared/components/conditional-render/conditional-render.js.map +1 -1
- package/dist/collection/shared/components/config/config.js +18 -5
- package/dist/collection/shared/components/config/config.js.map +1 -1
- package/dist/collection/shared/components/email-field/email-field.js +1 -1
- package/dist/collection/shared/components/error-message/error-message.css +1 -1
- package/dist/collection/shared/components/error-message/error-message.js +44 -17
- package/dist/collection/shared/components/error-message/error-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/submit-button/submit-button.css +1 -1
- package/dist/collection/shared/components/submit-button/submit-button.js +12 -23
- package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -1
- package/dist/collection/shared/context-utils.js +96 -0
- package/dist/collection/shared/context-utils.js.map +1 -0
- package/dist/collection/shared/utils/redirect-with-token.js +30 -0
- package/dist/collection/shared/utils/redirect-with-token.js.map +1 -0
- package/dist/collection/shared/utils/url-utils.js +25 -0
- package/dist/collection/shared/utils/url-utils.js.map +1 -0
- package/dist/collection/ticketable/api/schemas.js +10 -2
- package/dist/collection/ticketable/api/schemas.js.map +1 -1
- package/dist/collection/ticketable/api/subscriptions.js +22 -1
- package/dist/collection/ticketable/api/subscriptions.js.map +1 -1
- package/dist/collection/ticketable/api/tickets.js +22 -1
- package/dist/collection/ticketable/api/tickets.js.map +1 -1
- package/dist/collection/ticketable/components/pagination/pagination-button.js +3 -5
- package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -1
- package/dist/collection/ticketable/components/pagination/pagination-page.js +3 -5
- package/dist/collection/ticketable/components/pagination/pagination-page.js.map +1 -1
- package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js +175 -0
- package/dist/collection/ticketable/components/ticketable-export/ticketable-export.js.map +1 -0
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +163 -25
- package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
- package/dist/collection/ticketable/index.js +1 -0
- package/dist/collection/ticketable/index.js.map +1 -1
- package/dist/components/_commonjsHelpers.js +8 -0
- package/dist/components/_commonjsHelpers.js.map +1 -0
- package/dist/components/component-utils.js +25 -28
- package/dist/components/component-utils.js.map +1 -1
- package/dist/components/component.js +33 -0
- package/dist/components/component.js.map +1 -0
- package/dist/components/de.js +702 -0
- package/dist/components/de.js.map +1 -0
- package/dist/components/en-GB.js +117 -0
- package/dist/components/en-GB.js.map +1 -0
- package/dist/components/field.js +3 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/fr.js +575 -0
- package/dist/components/fr.js.map +1 -0
- package/dist/components/has-slot-content.js +35 -0
- package/dist/components/has-slot-content.js.map +1 -0
- package/dist/components/i18n.js +96 -0
- package/dist/components/i18n.js.map +1 -1
- package/dist/components/index.js +11 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +1158 -1083
- package/dist/components/index2.js.map +1 -1
- package/dist/components/logger.js +1 -39
- package/dist/components/logger.js.map +1 -1
- package/dist/components/newsletter-helpers.js +39 -2
- package/dist/components/newsletter-helpers.js.map +1 -1
- package/dist/components/newsletter-store.js +2 -0
- package/dist/components/newsletter-store.js.map +1 -1
- package/dist/components/nl-BE.js +540 -0
- package/dist/components/nl-BE.js.map +1 -0
- package/dist/components/profile-store.js +1 -1
- package/dist/components/profile-store.js.map +1 -1
- package/dist/components/raw-field.js +116 -7
- package/dist/components/raw-field.js.map +1 -1
- package/dist/components/redirect-with-token.js +35 -0
- package/dist/components/redirect-with-token.js.map +1 -0
- package/dist/components/ro.js +576 -0
- package/dist/components/ro.js.map +1 -0
- package/dist/components/spinner.js +2 -2
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/submit-button.js +21 -24
- package/dist/components/submit-button.js.map +1 -1
- package/dist/components/sv.js +595 -0
- package/dist/components/sv.js.map +1 -0
- package/dist/components/u-conditional-render.js +5 -6
- package/dist/components/u-conditional-render.js.map +1 -1
- package/dist/components/u-config.js +16 -3
- package/dist/components/u-config.js.map +1 -1
- package/dist/components/u-email-field.js +1 -1
- package/dist/components/u-error-message.js +44 -19
- package/dist/components/u-error-message.js.map +1 -1
- package/dist/components/u-full-profile.js +1 -1
- package/dist/components/u-jump-to-service.js +16 -38
- package/dist/components/u-jump-to-service.js.map +1 -1
- package/dist/components/u-jump-to-unidy.js +16 -37
- package/dist/components/u-jump-to-unidy.js.map +1 -1
- package/dist/components/u-logout-button.js +5 -11
- package/dist/components/u-logout-button.js.map +1 -1
- package/dist/components/u-missing-field.js +5 -2
- package/dist/components/u-missing-field.js.map +1 -1
- package/dist/components/u-missing-fields-submit-button.js +10 -8
- package/dist/components/u-missing-fields-submit-button.js.map +1 -1
- package/dist/components/u-newsletter-checkbox.js +1 -1
- package/dist/components/u-newsletter-consent-checkbox.js +1 -1
- package/dist/components/u-newsletter-logout-button.js +6 -12
- package/dist/components/u-newsletter-logout-button.js.map +1 -1
- package/dist/components/u-newsletter-preference-checkbox.js +1 -1
- package/dist/components/u-newsletter-root.js +35 -12
- package/dist/components/u-newsletter-root.js.map +1 -1
- package/dist/components/u-newsletter-toggle-subscription-button.js +1 -1
- package/dist/components/u-pagination-button.js +3 -4
- package/dist/components/u-pagination-button.js.map +1 -1
- package/dist/components/u-pagination-page.js +3 -4
- package/dist/components/u-pagination-page.js.map +1 -1
- package/dist/components/u-reset-password-button.js +4 -8
- package/dist/components/u-reset-password-button.js.map +1 -1
- package/dist/components/u-signed-in.js +3 -6
- package/dist/components/u-signed-in.js.map +1 -1
- package/dist/components/u-signin-root.js +3 -6
- package/dist/components/u-signin-root.js.map +1 -1
- package/dist/components/u-signin-step.js +10 -14
- package/dist/components/u-signin-step.js.map +1 -1
- package/dist/components/u-social-login-button.js +13 -14
- package/dist/components/u-social-login-button.js.map +1 -1
- package/dist/components/u-ticketable-export.d.ts +11 -0
- package/dist/components/u-ticketable-export.js +93 -0
- package/dist/components/u-ticketable-export.js.map +1 -0
- package/dist/components/u-ticketable-list.js +256 -2396
- package/dist/components/u-ticketable-list.js.map +1 -1
- package/dist/esm/_commonjsHelpers-B85MJLTf.js +8 -0
- package/dist/esm/_commonjsHelpers-B85MJLTf.js.map +1 -0
- package/dist/esm/app-globals-J743qnJf.js +8 -0
- package/dist/esm/app-globals-J743qnJf.js.map +1 -0
- package/dist/esm/{auth-store-DBlGNGhq.js → auth-store-CSpEdi46.js} +4 -4
- package/dist/esm/{auth-store-DBlGNGhq.js.map → auth-store-CSpEdi46.js.map} +1 -1
- package/dist/esm/component-qfegGRWr.js +32 -0
- package/dist/esm/component-qfegGRWr.js.map +1 -0
- package/dist/esm/component-utils-WEof9bTg.js +36 -0
- package/dist/esm/component-utils-WEof9bTg.js.map +1 -0
- package/dist/esm/de-C6AnCqsA.js +702 -0
- package/dist/esm/de-C6AnCqsA.js.map +1 -0
- package/dist/esm/en-GB-DO63WPxt.js +117 -0
- package/dist/esm/en-GB-DO63WPxt.js.map +1 -0
- package/dist/esm/{flash-store-Df2YkLTB.js → flash-store-Dn1Bava8.js} +3 -3
- package/dist/esm/{flash-store-Df2YkLTB.js.map → flash-store-Dn1Bava8.js.map} +1 -1
- package/dist/esm/fr-C0oU6-EJ.js +575 -0
- package/dist/esm/fr-C0oU6-EJ.js.map +1 -0
- package/dist/esm/has-slot-content-DSMkJu9G.js +35 -0
- package/dist/esm/has-slot-content-DSMkJu9G.js.map +1 -0
- package/dist/esm/{i18n-Da7S9Oqf.js → i18n-ioyZxWsT.js} +100 -4
- package/dist/esm/{i18n-Da7S9Oqf.js.map → i18n-ioyZxWsT.js.map} +1 -1
- package/dist/esm/{index-FTKB5a1d.js → index-BsJDptgj.js} +4 -40
- package/dist/esm/index-BsJDptgj.js.map +1 -0
- package/dist/esm/{index-BnAYOYR5.js → index-C8kmD3tu.js} +3 -3
- package/dist/esm/{index-BnAYOYR5.js.map → index-C8kmD3tu.js.map} +1 -1
- package/dist/esm/{index-BVlbCQEX.js → index-kgGjfc-n.js} +1163 -1088
- package/dist/esm/index-kgGjfc-n.js.map +1 -0
- package/dist/esm/index.js +18 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{newsletter-helpers-fCpxzovf.js → newsletter-helpers-DoKGN_Kq.js} +46 -9
- package/dist/esm/newsletter-helpers-DoKGN_Kq.js.map +1 -0
- package/dist/esm/{newsletter-store-BB618FgS.js → newsletter-store-DpR85vaC.js} +5 -3
- package/dist/esm/newsletter-store-DpR85vaC.js.map +1 -0
- package/dist/esm/nl-BE-C8uPYb_H.js +540 -0
- package/dist/esm/nl-BE-C8uPYb_H.js.map +1 -0
- package/dist/esm/{profile-helpers-CXK2X6Ts.js → profile-helpers-BMJy0ei_.js} +4 -4
- package/dist/esm/{profile-helpers-CXK2X6Ts.js.map → profile-helpers-BMJy0ei_.js.map} +1 -1
- package/dist/esm/{profile-store-CHlSKuTY.js → profile-store-7wBS3gBH.js} +4 -4
- package/dist/esm/{profile-store-CHlSKuTY.js.map → profile-store-7wBS3gBH.js.map} +1 -1
- package/dist/esm/redirect-with-token-StCLJlSp.js +35 -0
- package/dist/esm/redirect-with-token-StCLJlSp.js.map +1 -0
- package/dist/esm/ro-BlDHz7d-.js +576 -0
- package/dist/esm/ro-BlDHz7d-.js.map +1 -0
- package/dist/esm/sdk.js +4 -4
- package/dist/esm/sv-B_Gq29K0.js +595 -0
- package/dist/esm/sv-B_Gq29K0.js.map +1 -0
- package/dist/esm/u-conditional-render.entry.js +14 -14
- package/dist/esm/u-conditional-render.entry.js.map +1 -1
- package/dist/esm/u-config.entry.js +24 -11
- package/dist/esm/u-config.entry.js.map +1 -1
- package/dist/esm/u-email-field.entry.js +7 -7
- package/dist/esm/u-error-message.entry.js +49 -22
- package/dist/esm/u-error-message.entry.js.map +1 -1
- package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
- package/dist/esm/u-field_2.entry.js +124 -12
- package/dist/esm/u-flash-message.entry.js +3 -3
- package/dist/esm/u-full-profile.entry.js +6 -6
- package/dist/esm/u-jump-to-service.entry.js +23 -44
- package/dist/esm/u-jump-to-service.entry.js.map +1 -1
- package/dist/esm/u-jump-to-unidy.entry.js +22 -43
- package/dist/esm/u-jump-to-unidy.entry.js.map +1 -1
- package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -1
- package/dist/esm/u-logout-button_2.entry.js +15 -22
- package/dist/esm/u-magic-code-field.entry.js +8 -9
- package/dist/esm/u-magic-code-field.entry.js.map +1 -1
- package/dist/esm/u-missing-field.entry.js +6 -5
- package/dist/esm/u-missing-field.entry.js.map +1 -1
- package/dist/esm/u-missing-fields-submit-button.entry.js +16 -14
- 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-consent-checkbox.entry.js +4 -4
- package/dist/esm/u-newsletter-logout-button.entry.js +15 -20
- 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 +10 -11
- package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
- package/dist/esm/u-newsletter-root.entry.js +42 -19
- package/dist/esm/u-newsletter-root.entry.js.map +1 -1
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +11 -12
- package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-button.entry.js +4 -4
- package/dist/esm/u-pagination-button.entry.js.map +1 -1
- package/dist/esm/u-pagination-page.entry.js +4 -4
- package/dist/esm/u-pagination-page.entry.js.map +1 -1
- package/dist/esm/u-passkey.entry.js +8 -9
- 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 +31 -33
- package/dist/esm/u-registration-button.entry.js +5 -5
- package/dist/esm/u-reset-password-button.entry.js +12 -15
- package/dist/esm/u-reset-password-button.entry.js.map +1 -1
- package/dist/esm/u-send-magic-code-button.entry.js +8 -9
- package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
- package/dist/esm/u-signin-root.entry.js +6 -8
- package/dist/esm/u-signin-root.entry.js.map +1 -1
- package/dist/esm/u-signin-step.entry.js +17 -21
- package/dist/esm/u-signin-step.entry.js.map +1 -1
- package/dist/esm/u-social-login-button.entry.js +16 -15
- 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-export.entry.js +74 -0
- package/dist/esm/u-ticketable-export.entry.js.map +1 -0
- package/dist/esm/u-ticketable-list-D2p21JjR.js +3981 -0
- package/dist/esm/u-ticketable-list-D2p21JjR.js.map +1 -0
- package/dist/esm/u-ticketable-list.entry.js +10 -6121
- package/dist/esm/u-ticketable-list.entry.js.map +1 -1
- package/dist/esm/{unidy-store-Bg7IaIMd.js → unidy-store-B5Bf4Vit.js} +3 -3
- package/dist/esm/{unidy-store-Bg7IaIMd.js.map → unidy-store-B5Bf4Vit.js.map} +1 -1
- package/dist/sdk/index.esm.js +1 -1
- package/dist/sdk/index.esm.js.map +1 -1
- package/dist/sdk/locales/de.json +16 -0
- package/dist/sdk/locales/en.json +16 -0
- package/dist/sdk/locales/fr.json +16 -0
- package/dist/sdk/locales/it.json +16 -0
- package/dist/sdk/locales/nl_be.json +16 -0
- package/dist/sdk/locales/ro.json +16 -0
- package/dist/sdk/p-02dce5da.entry.js +2 -0
- package/dist/sdk/p-02dce5da.entry.js.map +1 -0
- package/dist/sdk/p-043c7643.entry.js +2 -0
- package/dist/sdk/p-043c7643.entry.js.map +1 -0
- package/dist/sdk/p-18c17747.entry.js +2 -0
- package/dist/sdk/p-18c17747.entry.js.map +1 -0
- package/dist/sdk/p-1a1c1af0.entry.js +2 -0
- package/dist/sdk/p-1a1c1af0.entry.js.map +1 -0
- package/dist/sdk/p-271781c7.entry.js +2 -0
- package/dist/sdk/{p-1a8973a6.entry.js.map → p-271781c7.entry.js.map} +1 -1
- package/dist/sdk/p-29473a55.entry.js +2 -0
- package/dist/sdk/p-29473a55.entry.js.map +1 -0
- package/dist/sdk/p-2a25d62e.entry.js +2 -0
- package/dist/sdk/p-2a25d62e.entry.js.map +1 -0
- package/dist/sdk/{p-C8lRzJEX.js → p-2bKltz_F.js} +2 -2
- package/dist/sdk/{p-C8lRzJEX.js.map → p-2bKltz_F.js.map} +1 -1
- package/dist/sdk/p-2cc3a00d.entry.js +2 -0
- package/dist/sdk/p-2cc3a00d.entry.js.map +1 -0
- package/dist/sdk/p-2f49e0cb.entry.js +2 -0
- package/dist/sdk/p-2f49e0cb.entry.js.map +1 -0
- package/dist/sdk/p-34f5d201.entry.js +2 -0
- package/dist/sdk/p-34f5d201.entry.js.map +1 -0
- package/dist/sdk/p-52c4bdd9.entry.js +2 -0
- package/dist/sdk/p-52c4bdd9.entry.js.map +1 -0
- package/dist/sdk/p-585a0efa.entry.js +2 -0
- package/dist/sdk/p-585a0efa.entry.js.map +1 -0
- package/dist/sdk/p-60675019.entry.js +2 -0
- package/dist/sdk/p-60675019.entry.js.map +1 -0
- package/dist/sdk/p-79ef9a70.entry.js +2 -0
- package/dist/sdk/p-79ef9a70.entry.js.map +1 -0
- package/dist/sdk/p-7d88e21c.entry.js +2 -0
- package/dist/sdk/p-7d88e21c.entry.js.map +1 -0
- package/dist/sdk/p-7eaf3468.entry.js +2 -0
- package/dist/sdk/p-7eaf3468.entry.js.map +1 -0
- package/dist/sdk/{p-88beb872.entry.js → p-8412762c.entry.js} +2 -2
- package/dist/sdk/p-8ea70c08.entry.js +2 -0
- package/dist/sdk/p-8ea70c08.entry.js.map +1 -0
- package/dist/sdk/p-946cdb0a.entry.js +2 -0
- package/dist/sdk/p-946cdb0a.entry.js.map +1 -0
- package/dist/sdk/p-94bb0217.entry.js +2 -0
- package/dist/sdk/p-94bb0217.entry.js.map +1 -0
- package/dist/sdk/{p-bcca06f1.entry.js → p-96860b09.entry.js} +2 -2
- package/dist/sdk/p-B1A6Nu24.js +2 -0
- package/dist/sdk/p-B1A6Nu24.js.map +1 -0
- package/dist/sdk/p-B85MJLTf.js +2 -0
- package/dist/sdk/p-B85MJLTf.js.map +1 -0
- package/dist/sdk/p-B8N6Bwsa.js +2 -0
- package/dist/sdk/{p-DCG3L43i.js.map → p-B8N6Bwsa.js.map} +1 -1
- package/dist/sdk/p-Ba5szISo.js +2 -0
- package/dist/sdk/p-Ba5szISo.js.map +1 -0
- package/dist/sdk/p-BsJDptgj.js +14 -0
- package/dist/sdk/p-BsJDptgj.js.map +1 -0
- package/dist/sdk/{p-bpXpOZY_.js → p-C0Mo15qt.js} +2 -2
- package/dist/sdk/{p-bpXpOZY_.js.map → p-C0Mo15qt.js.map} +1 -1
- package/dist/sdk/p-C10MAuCE.js +2 -0
- package/dist/sdk/p-C10MAuCE.js.map +1 -0
- package/dist/sdk/p-CTy6pQSg.js +2 -0
- package/dist/sdk/p-CTy6pQSg.js.map +1 -0
- package/dist/sdk/p-CW6kGAuQ.js +2 -0
- package/dist/sdk/p-CW6kGAuQ.js.map +1 -0
- package/dist/sdk/{p-DdMKVWx8.js → p-CbSP8My1.js} +2 -2
- package/dist/sdk/{p-DdMKVWx8.js.map → p-CbSP8My1.js.map} +1 -1
- package/dist/sdk/p-CbzzI4uW.js +2 -0
- package/dist/sdk/p-CbzzI4uW.js.map +1 -0
- package/dist/sdk/p-CgT6fZjb.js +2 -0
- package/dist/sdk/p-CgT6fZjb.js.map +1 -0
- package/dist/sdk/p-CuHZ3IkE.js +2 -0
- package/dist/sdk/p-CuHZ3IkE.js.map +1 -0
- package/dist/sdk/p-Cysk_vik.js +2 -0
- package/dist/sdk/p-Cysk_vik.js.map +1 -0
- package/dist/sdk/p-D0ut3waq.js +2 -0
- package/dist/sdk/p-D0ut3waq.js.map +1 -0
- package/dist/sdk/{p-BigbTrKk.js → p-D2Rf-QGm.js} +2 -2
- package/dist/sdk/{p-BigbTrKk.js.map → p-D2Rf-QGm.js.map} +1 -1
- package/dist/sdk/{p-6rqGeAfT.js → p-D9yFO_ID.js} +2 -2
- package/dist/sdk/{p-6rqGeAfT.js.map → p-D9yFO_ID.js.map} +1 -1
- package/dist/sdk/p-DD_5soRi.js +2 -0
- package/dist/sdk/p-DD_5soRi.js.map +1 -0
- package/dist/sdk/p-DHuvvagO.js +2 -0
- package/dist/sdk/p-DHuvvagO.js.map +1 -0
- package/dist/sdk/p-DSMkJu9G.js +2 -0
- package/dist/sdk/p-DSMkJu9G.js.map +1 -0
- package/dist/sdk/p-DcirMfca.js +2 -0
- package/dist/sdk/p-DcirMfca.js.map +1 -0
- package/dist/sdk/p-J0cv5IOA.js +2 -0
- package/dist/sdk/p-J0cv5IOA.js.map +1 -0
- package/dist/sdk/p-_5evboqW.js +2 -0
- package/dist/sdk/{p-DSktNM_k.js.map → p-_5evboqW.js.map} +1 -1
- package/dist/sdk/{p-7ee2f2ab.entry.js → p-ac3a6bbf.entry.js} +2 -2
- package/dist/sdk/p-b498bcdd.entry.js +2 -0
- package/dist/sdk/p-b498bcdd.entry.js.map +1 -0
- package/dist/sdk/p-b5dd5b4c.entry.js +2 -0
- package/dist/sdk/p-b5dd5b4c.entry.js.map +1 -0
- package/dist/sdk/{p-6b061b18.entry.js → p-b99588a8.entry.js} +2 -2
- package/dist/sdk/p-bf9c27a8.entry.js +2 -0
- package/dist/sdk/p-bf9c27a8.entry.js.map +1 -0
- package/dist/sdk/p-c10d9b8e.entry.js +2 -0
- package/dist/sdk/p-c10d9b8e.entry.js.map +1 -0
- package/dist/sdk/{p-10e20afd.entry.js → p-c2634439.entry.js} +2 -2
- package/dist/sdk/p-d6777395.entry.js +2 -0
- package/dist/sdk/p-d6777395.entry.js.map +1 -0
- package/dist/sdk/p-dbfe7b29.entry.js +2 -0
- package/dist/sdk/p-dbfe7b29.entry.js.map +1 -0
- package/dist/sdk/p-def4e874.entry.js +2 -0
- package/dist/sdk/p-def4e874.entry.js.map +1 -0
- package/dist/sdk/p-e872a012.entry.js +2 -0
- package/dist/sdk/p-e872a012.entry.js.map +1 -0
- package/dist/sdk/p-eaaf3989.entry.js +2 -0
- package/dist/sdk/p-eaaf3989.entry.js.map +1 -0
- package/dist/sdk/p-fd46b459.entry.js +2 -0
- package/dist/sdk/{p-830778eb.entry.js.map → p-fd46b459.entry.js.map} +1 -1
- package/dist/sdk/sdk.esm.js +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-error-message.entry.esm.js.map +1 -1
- package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-jump-to-service.entry.esm.js.map +1 -1
- package/dist/sdk/u-jump-to-unidy.entry.esm.js.map +1 -1
- package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -1
- package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
- package/dist/sdk/u-missing-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-pagination-page.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-export.entry.esm.js.map +1 -0
- package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
- package/dist/types/api/client.d.ts +1 -1
- package/dist/types/api/index.d.ts +4 -4
- package/dist/types/api/standalone.d.ts +9 -9
- package/dist/types/auth/api/auth.d.ts +2 -3
- package/dist/types/auth/api/schemas.d.ts +19 -19
- package/dist/types/auth/auth-helpers.d.ts +1 -0
- package/dist/types/auth/components/jump-to-service/jump-to-service.d.ts +13 -5
- package/dist/types/auth/components/jump-to-unidy/jump-to-unidy.d.ts +13 -9
- package/dist/types/auth/components/logout-button/logout-button.d.ts +13 -4
- package/dist/types/auth/components/missing-field/missing-field.d.ts +1 -0
- package/dist/types/auth/components/missing-fields-submit-button/missing-fields-submit-button.d.ts +14 -2
- package/dist/types/auth/components/reset-pass-button/reset-pass-button.d.ts +13 -4
- package/dist/types/auth/components/social-logins/social-login-button.d.ts +11 -7
- package/dist/types/components.d.ts +73 -0
- package/dist/types/logger.d.ts +0 -34
- package/dist/types/newsletter/components/logout-button/logout-button.d.ts +13 -4
- package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +16 -2
- package/dist/types/newsletter/newsletter-helpers.d.ts +8 -2
- package/dist/types/newsletter/store/newsletter-store.d.ts +8 -1
- package/dist/types/profile/api/profile.d.ts +2 -2
- package/dist/types/profile/api/schemas.d.ts +21 -21
- package/dist/types/profile/components/raw-field/raw-field.d.ts +14 -2
- package/dist/types/shared/base/component.d.ts +46 -0
- package/dist/types/shared/base/has-slot-content.d.ts +10 -0
- package/dist/types/shared/component-utils.d.ts +20 -12
- package/dist/types/shared/components/conditional-render/conditional-render.d.ts +7 -2
- package/dist/types/shared/components/config/config.d.ts +7 -2
- package/dist/types/shared/components/error-message/error-message.d.ts +14 -2
- package/dist/types/shared/components/submit-button/submit-button.d.ts +13 -4
- package/dist/types/shared/context-utils.d.ts +73 -0
- package/dist/types/shared/utils/redirect-with-token.d.ts +21 -0
- package/dist/types/shared/utils/url-utils.d.ts +16 -0
- package/dist/types/ticketable/api/schemas.d.ts +16 -2
- package/dist/types/ticketable/api/subscriptions.d.ts +8 -3
- package/dist/types/ticketable/api/tickets.d.ts +8 -3
- package/dist/types/ticketable/components/pagination/pagination-button.d.ts +8 -4
- package/dist/types/ticketable/components/pagination/pagination-page.d.ts +8 -4
- package/dist/types/ticketable/components/ticketable-export/ticketable-export.d.ts +24 -0
- package/dist/types/ticketable/components/ticketable-list/ticketable-list.d.ts +10 -4
- package/dist/types/ticketable/index.d.ts +1 -0
- package/package.json +6 -2
- package/readme.md +248 -27
- package/dist/cjs/app-globals-hdkLqF51.js +0 -10
- package/dist/cjs/app-globals-hdkLqF51.js.map +0 -1
- package/dist/cjs/component-utils-bu3SY4dE.js +0 -42
- package/dist/cjs/component-utils-bu3SY4dE.js.map +0 -1
- package/dist/cjs/index-B325yXfO.js.map +0 -1
- package/dist/cjs/index-BzPYBLYC.js.map +0 -1
- package/dist/cjs/newsletter-helpers-hdDC5X-V.js.map +0 -1
- package/dist/cjs/newsletter-store-CupsLgO9.js.map +0 -1
- package/dist/cjs/pagination-store-zo48QpTm.js +0 -16
- package/dist/cjs/pagination-store-zo48QpTm.js.map +0 -1
- package/dist/components/pagination-store.js +0 -14
- package/dist/components/pagination-store.js.map +0 -1
- package/dist/esm/app-globals-iHhGdwBB.js +0 -8
- package/dist/esm/app-globals-iHhGdwBB.js.map +0 -1
- package/dist/esm/component-utils-BGq0leDV.js +0 -39
- package/dist/esm/component-utils-BGq0leDV.js.map +0 -1
- package/dist/esm/index-BVlbCQEX.js.map +0 -1
- package/dist/esm/index-FTKB5a1d.js.map +0 -1
- package/dist/esm/newsletter-helpers-fCpxzovf.js.map +0 -1
- package/dist/esm/newsletter-store-BB618FgS.js.map +0 -1
- package/dist/esm/pagination-store-DxmcQH8R.js +0 -14
- package/dist/esm/pagination-store-DxmcQH8R.js.map +0 -1
- package/dist/sdk/p-1a8973a6.entry.js +0 -2
- package/dist/sdk/p-35ad60ab.entry.js +0 -2
- package/dist/sdk/p-35ad60ab.entry.js.map +0 -1
- package/dist/sdk/p-3f352f38.entry.js +0 -2
- package/dist/sdk/p-3f352f38.entry.js.map +0 -1
- package/dist/sdk/p-468aaf62.entry.js +0 -2
- package/dist/sdk/p-468aaf62.entry.js.map +0 -1
- package/dist/sdk/p-4e2e6a13.entry.js +0 -2
- package/dist/sdk/p-4e2e6a13.entry.js.map +0 -1
- package/dist/sdk/p-57c8dc68.entry.js +0 -2
- package/dist/sdk/p-57c8dc68.entry.js.map +0 -1
- package/dist/sdk/p-594aec0c.entry.js +0 -2
- package/dist/sdk/p-594aec0c.entry.js.map +0 -1
- package/dist/sdk/p-60c8be64.entry.js +0 -2
- package/dist/sdk/p-60c8be64.entry.js.map +0 -1
- package/dist/sdk/p-760718d3.entry.js +0 -2
- package/dist/sdk/p-760718d3.entry.js.map +0 -1
- package/dist/sdk/p-77f541f3.entry.js +0 -2
- package/dist/sdk/p-77f541f3.entry.js.map +0 -1
- package/dist/sdk/p-830778eb.entry.js +0 -2
- package/dist/sdk/p-8839648e.entry.js +0 -2
- package/dist/sdk/p-8839648e.entry.js.map +0 -1
- package/dist/sdk/p-B6MYe-dh.js +0 -2
- package/dist/sdk/p-B6MYe-dh.js.map +0 -1
- package/dist/sdk/p-BGq0leDV.js +0 -2
- package/dist/sdk/p-BGq0leDV.js.map +0 -1
- package/dist/sdk/p-C_UZBwdm.js +0 -2
- package/dist/sdk/p-C_UZBwdm.js.map +0 -1
- package/dist/sdk/p-CbazSxaZ.js +0 -2
- package/dist/sdk/p-CbazSxaZ.js.map +0 -1
- package/dist/sdk/p-DCG3L43i.js +0 -2
- package/dist/sdk/p-DEUPZOH-.js +0 -2
- package/dist/sdk/p-DEUPZOH-.js.map +0 -1
- package/dist/sdk/p-DSktNM_k.js +0 -2
- package/dist/sdk/p-FTKB5a1d.js +0 -14
- package/dist/sdk/p-FTKB5a1d.js.map +0 -1
- package/dist/sdk/p-a7ffcff9.entry.js +0 -2
- package/dist/sdk/p-a7ffcff9.entry.js.map +0 -1
- package/dist/sdk/p-acaba1d5.entry.js +0 -2
- package/dist/sdk/p-acaba1d5.entry.js.map +0 -1
- package/dist/sdk/p-ae47a7a3.entry.js +0 -2
- package/dist/sdk/p-ae47a7a3.entry.js.map +0 -1
- package/dist/sdk/p-aec580e4.entry.js +0 -2
- package/dist/sdk/p-aec580e4.entry.js.map +0 -1
- package/dist/sdk/p-b63438ff.entry.js +0 -2
- package/dist/sdk/p-b63438ff.entry.js.map +0 -1
- package/dist/sdk/p-baaaa7f5.entry.js +0 -2
- package/dist/sdk/p-baaaa7f5.entry.js.map +0 -1
- package/dist/sdk/p-bba2da84.entry.js +0 -2
- package/dist/sdk/p-bba2da84.entry.js.map +0 -1
- package/dist/sdk/p-bc47f42b.entry.js +0 -2
- package/dist/sdk/p-bc47f42b.entry.js.map +0 -1
- package/dist/sdk/p-bd51e26f.entry.js +0 -2
- package/dist/sdk/p-bd51e26f.entry.js.map +0 -1
- package/dist/sdk/p-c3552f75.entry.js +0 -2
- package/dist/sdk/p-c3552f75.entry.js.map +0 -1
- package/dist/sdk/p-d9900482.entry.js +0 -2
- package/dist/sdk/p-d9900482.entry.js.map +0 -1
- package/dist/sdk/p-e6796c38.entry.js +0 -2
- package/dist/sdk/p-e6796c38.entry.js.map +0 -1
- package/dist/sdk/p-f272eb38.entry.js +0 -2
- package/dist/sdk/p-f272eb38.entry.js.map +0 -1
- package/dist/sdk/p-f4a47ef8.entry.js +0 -2
- package/dist/sdk/p-f4a47ef8.entry.js.map +0 -1
- package/dist/sdk/p-f608e64a.entry.js +0 -2
- package/dist/sdk/p-f608e64a.entry.js.map +0 -1
- package/dist/sdk/p-f762ac70.entry.js +0 -2
- package/dist/sdk/p-f762ac70.entry.js.map +0 -1
- package/dist/sdk/p-l6NinBiD.js +0 -2
- package/dist/sdk/p-l6NinBiD.js.map +0 -1
- /package/dist/sdk/{p-88beb872.entry.js.map → p-8412762c.entry.js.map} +0 -0
- /package/dist/sdk/{p-bcca06f1.entry.js.map → p-96860b09.entry.js.map} +0 -0
- /package/dist/sdk/{p-7ee2f2ab.entry.js.map → p-ac3a6bbf.entry.js.map} +0 -0
- /package/dist/sdk/{p-6b061b18.entry.js.map → p-b99588a8.entry.js.map} +0 -0
- /package/dist/sdk/{p-10e20afd.entry.js.map → p-c2634439.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-jump-to-service.entry.esm.js","sources":["src/auth/components/jump-to-service/jump-to-service.tsx"],"sourcesContent":["import { Component, h, Prop, State
|
|
1
|
+
{"version":3,"file":"u-jump-to-service.entry.esm.js","sources":["src/auth/components/jump-to-service/jump-to-service.tsx"],"sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { slotFallbackText } from \"../../../shared/component-utils\";\nimport { redirectWithToken } from \"../../../shared/utils/redirect-with-token\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-jump-to-service\",\n shadow: false,\n})\nexport class JumpToService extends UnidyComponent(HasSlotContent) {\n /**\n * The OAuth Application ID (service ID) to jump to.\n * @example \"2\"\n */\n @Prop({ attribute: \"service-id\" }) serviceId!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n /**\n * Optional redirect URI for the OAuth flow.\n * Must match one of the application's allowed redirect URIs.\n */\n @Prop({ attribute: \"redirect-uri\" }) redirectUri?: string;\n\n /**\n * Comma-separated list of OAuth scopes to request.\n * Defaults to [\"openid\"] if not provided.\n * @example \"openid,profile\"\n */\n @Prop() scopes?: string;\n\n /**\n * If true, skips the OAuth authorization step (if already authorized once). Defaults to false.\n */\n @Prop({ attribute: \"skip-oauth-authorization\" }) skipOauthAuthorization = false;\n\n @State() loading = false;\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.serviceId) {\n console.error(\"[u-jump-to-service] service-id is required\");\n return;\n }\n\n const auth = await Auth.getInstance();\n if (!(await auth.isAuthenticated())) {\n console.error(\"[u-jump-to-service] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData?.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n const scopesArray = this.scopes?.split(\",\").map((s) => s.trim());\n\n const [error, token] = await client.auth.jumpToService(this.serviceId, {\n email: userData.email,\n redirect_uri: this.redirectUri,\n scopes: scopesArray,\n skip_oauth_authorization: this.skipOauthAuthorization,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n return;\n }\n\n redirectWithToken({\n token: token as string,\n newTab: this.newtab,\n extraParams: this.redirectUri ? { redirect_uri: this.redirectUri } : undefined,\n });\n } catch (error) {\n console.error(\"Error jumping to service:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n return !authState.authenticated || this.loading || !this.serviceId;\n }\n\n render() {\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {slotFallbackText(t(\"buttons.jump_to_service\"), { hasSlot: this.hasSlot, loading: this.loading })}\n </button>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;;;;;;;;;AAca,MAAA,aAAc,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;AAC/D;;;AAGG;AACgC,IAAA,SAAS;AAE5C;;AAEG;IACK,MAAM,GAAG,KAAK;AAEtB;;AAEG;IACgC,kBAAkB,GAAG,EAAE;AAE1D;;;AAGG;AACkC,IAAA,WAAW;AAEhD;;;;AAIG;AACK,IAAA,MAAM;AAEd;;AAEG;IAC8C,sBAAsB,GAAG,KAAK;IAEtE,OAAO,GAAG,KAAK;AAEhB,IAAA,WAAW,GAAG,OAAO,KAAY,KAAI;QAC3C,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC;YAC3D;;AAGF,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACnC,YAAA,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC;YACpF;;AAGF,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACtC,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;YACnE;;AAGF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,cAAc,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAEhE,YAAA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrE,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,YAAY,EAAE,IAAI,CAAC,WAAW;AAC9B,gBAAA,MAAM,EAAE,WAAW;gBACnB,wBAAwB,EAAE,IAAI,CAAC,sBAAsB;AACtD,aAAA,CAAC;YAEF,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;gBACjD;;AAGF,YAAA,iBAAiB,CAAC;AAChB,gBAAA,KAAK,EAAE,KAAe;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS;AAC/E,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;;gBACzC;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;AAExB,KAAC;IAEO,UAAU,GAAA;AAChB,QAAA,OAAO,CAACA,KAAS,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;;IAGpE,MAAM,GAAA;AACJ,QAAA,QACE,+DAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,WAAA,EAAY,QAAQ,EAC7H,EAAA,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAC1F;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-jump-to-unidy.entry.esm.js","sources":["src/auth/components/jump-to-unidy/jump-to-unidy.tsx"],"sourcesContent":["import { Component, h, Prop, State
|
|
1
|
+
{"version":3,"file":"u-jump-to-unidy.entry.esm.js","sources":["src/auth/components/jump-to-unidy/jump-to-unidy.tsx"],"sourcesContent":["import { Component, h, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { slotFallbackText } from \"../../../shared/component-utils\";\nimport { unidyState } from \"../../../shared/store/unidy-store\";\nimport { redirectWithToken } from \"../../../shared/utils/redirect-with-token\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-jump-to-unidy\",\n shadow: false,\n})\nexport class JumpToUnidy extends UnidyComponent(HasSlotContent) {\n /**\n * The Unidy path to redirect to. Must start with \"/\".\n * @example \"/subscriptions\"\n * @example \"/tickets\"\n */\n @Prop() path!: string;\n\n /**\n * If true, opens the URL in a new tab. Defaults to false.\n */\n @Prop() newtab = false;\n\n /**\n * If true, skips authentication and redirects directly to the Unidy path.\n * Useful for public pages like terms of service.\n */\n @Prop({ attribute: \"no-auth\" }) noAuth = false;\n\n /**\n * Custom CSS class name(s) to apply to the button element.\n */\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() loading = false;\n\n private isValidPath(): boolean {\n return !!this.path && this.path.startsWith(\"/\");\n }\n\n componentWillLoad() {\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path prop: \"${this.path}\". Path must be provided and start with \"/\".`);\n }\n }\n\n private handleClick = async (event: Event) => {\n event.preventDefault();\n\n if (!this.isValidPath()) {\n console.error(`[u-jump-to-unidy] Invalid path: \"${this.path}\". Path must be provided and start with \"/\".`);\n return;\n }\n\n // If no-auth mode, redirect directly to the path without authentication\n if (this.noAuth) {\n const finalUrl = new URL(this.path, unidyState.baseUrl).toString();\n if (this.newtab) {\n window.open(finalUrl, \"_blank\");\n } else {\n window.location.href = finalUrl;\n }\n return;\n }\n\n const auth = await Auth.getInstance();\n if (!(await auth.isAuthenticated())) {\n console.error(\"[u-jump-to-unidy] User is not authenticated. Please log in first.\");\n return;\n }\n\n const userData = await auth.userData();\n if (!userData?.email) {\n console.error(\"Failed to get user email from authentication token\");\n return;\n }\n\n this.loading = true;\n\n try {\n const client = getUnidyClient();\n const [error, token] = await client.auth.jumpToUnidy({\n email: userData.email,\n path: this.path,\n });\n\n if (error) {\n console.error(\"Failed to get jump token:\", error);\n return;\n }\n\n redirectWithToken({\n // @ts-expect-error - TOKEN IS A STRING, BUT we need to enable strict for it to work\n token,\n newTab: this.newtab,\n });\n } catch (error) {\n console.error(\"Error jumping to Unidy:\", error);\n } finally {\n this.loading = false;\n }\n };\n\n private isDisabled(): boolean {\n if (this.noAuth) {\n return this.loading || !this.isValidPath();\n }\n return !authState.authenticated || this.loading || !this.isValidPath();\n }\n\n render() {\n return (\n <button type=\"button\" disabled={this.isDisabled()} class={this.componentClassName} onClick={this.handleClick} aria-live=\"polite\">\n {slotFallbackText(t(\"buttons.jump_to_unidy\"), { hasSlot: this.hasSlot, loading: this.loading })}\n </button>\n );\n }\n}\n"],"names":["authState"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-logout-button.u-signed-in.entry.esm.js","sources":["src/auth/components/logout-button/logout-button.tsx","src/auth/components/signed-in/signed-in.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-logout-button.u-signed-in.entry.esm.js","sources":["src/auth/components/logout-button/logout-button.tsx","src/auth/components/signed-in/signed-in.tsx"],"sourcesContent":["import { Component, Event, type EventEmitter, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { Auth } from \"../../auth\";\n\n@Component({\n tag: \"u-logout-button\",\n shadow: false,\n})\nexport class LogoutButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() reloadOnSuccess = true;\n\n @Event() logout!: EventEmitter<void>;\n\n private handleLogout = async () => {\n const authInstance = await Auth.getInstance();\n\n const result = await authInstance.logout();\n\n if (result === true) {\n this.logout.emit();\n\n if (this.reloadOnSuccess) {\n window.location.reload();\n }\n }\n };\n\n render() {\n return (\n <button type=\"button\" class={this.componentClassName} onClick={this.handleLogout} aria-live=\"polite\">\n {this.hasSlot ? <slot /> : t(\"buttons.logout\")}\n </button>\n );\n }\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-signed-in\",\n shadow: false,\n})\nexport class SignedIn {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() not = false;\n\n render() {\n const shouldShow = this.not ? !authStore.state.authenticated : authStore.state.authenticated;\n\n return (\n <Host\n class={this.componentClassName}\n hidden={!shouldShow}\n style={{ display: shouldShow ? undefined : \"none\" }}\n aria-hidden={!shouldShow ? \"true\" : null}\n aria-live=\"polite\"\n >\n <slot />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAUa,MAAA,YAAa,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;;IAC3B,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAG,IAAI;AAErB,IAAA,MAAM;IAEP,YAAY,GAAG,YAAW;AAChC,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;AAE1C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAG9B,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,WAAA,EAAY,QAAQ,EAAA,EACjG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CACvC;;;;MC3BF,QAAQ,GAAA,MAAA;;;;IACgB,kBAAkB,GAAG,EAAE;IAClD,GAAG,GAAG,KAAK;IAEnB,MAAM,GAAA;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa;AAE5F,QAAA,QACE,CAAC,CAAA,IAAI,qDACH,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,MAAM,EAAE,CAAC,UAAU,EACnB,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,EAAE,EACtC,aAAA,EAAA,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI,eAC9B,QAAQ,EAAA,EAElB,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACH;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-magic-code-field.entry.esm.js","sources":["src/auth/components/magic-code-field/magic-code-field.css?tag=u-magic-code-field","src/auth/components/magic-code-field/magic-code-field.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-magic-code-field\",\n styleUrl: \"magic-code-field.css\",\n shadow: false,\n})\nexport class MagicCodeField {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() codeDigits: string[] = [\"\", \"\", \"\", \"\"];\n\n private inputRefs: HTMLInputElement[] = [];\n\n private handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement;\n const value = target.value.replace(/[^0-9]/g, \"\");\n const sanitizedDigit = value.slice(-1);\n target.value = sanitizedDigit;\n\n const newDigits = [...this.codeDigits];\n newDigits[index] = sanitizedDigit;\n this.codeDigits = newDigits;\n\n const fullCode = newDigits.join(\"\");\n\n if (value && index < 3) {\n const nextInput = this.inputRefs[index + 1];\n if (nextInput) {\n nextInput.focus();\n }\n }\n\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"Backspace\" && !this.codeDigits[index] && index > 0) {\n const prevInput = this.inputRefs[index - 1];\n if (prevInput) {\n prevInput.focus();\n }\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedData = event.clipboardData?.getData(\"text\") || \"\";\n const digits = pastedData\n .replace(/[^0-9]/g, \"\")\n .slice(0, 4)\n .split(\"\");\n\n while (digits.length < 4) {\n digits.push(\"\");\n }\n\n this.codeDigits = digits;\n\n const firstEmptyIndex = digits.findIndex((digit) => !digit);\n const targetIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : 3;\n if (this.inputRefs[targetIndex]) {\n this.inputRefs[targetIndex].focus();\n }\n\n const fullCode = digits.join(\"\");\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private authenticateWithCode = async (code: string) => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithMagicCode(code);\n };\n render() {\n if (authState.step !== \"magic-code\") {\n return null;\n }\n\n return (\n <div class={`u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}`}>\n {this.codeDigits.map((digit, index) => (\n <input\n // biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs\n key={index}\n ref={(el) => {\n if (el) this.inputRefs[index] = el;\n }}\n id={`digit-input-${index + 1}`}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n value={digit}\n disabled={authState.loading}\n onInput={(event) => this.handleInput(event, index)}\n onKeyDown={(event) => this.handleKeyDown(event, index)}\n onPaste={index === 0 ? this.handlePaste : undefined}\n aria-label={`Digit ${index + 1} of ${this.codeDigits.length}`}\n class=\"u:w-[50px] u:h-[50px] u:text-center u:text-lg u:border-2 u:border-solid u:border-slate-200 u:rounded-lg u:outline-none u:transition-colors u:duration-200\"\n part=\"digit-input\"\n />\n ))}\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-magic-code-field.entry.esm.js","sources":["src/auth/components/magic-code-field/magic-code-field.css?tag=u-magic-code-field","src/auth/components/magic-code-field/magic-code-field.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-magic-code-field\",\n styleUrl: \"magic-code-field.css\",\n shadow: false,\n})\nexport class MagicCodeField {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @State() codeDigits: string[] = [\"\", \"\", \"\", \"\"];\n\n private inputRefs: HTMLInputElement[] = [];\n\n private handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement;\n const value = target.value.replace(/[^0-9]/g, \"\");\n const sanitizedDigit = value.slice(-1);\n target.value = sanitizedDigit;\n\n const newDigits = [...this.codeDigits];\n newDigits[index] = sanitizedDigit;\n this.codeDigits = newDigits;\n\n const fullCode = newDigits.join(\"\");\n\n if (value && index < 3) {\n const nextInput = this.inputRefs[index + 1];\n if (nextInput) {\n nextInput.focus();\n }\n }\n\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"Backspace\" && !this.codeDigits[index] && index > 0) {\n const prevInput = this.inputRefs[index - 1];\n if (prevInput) {\n prevInput.focus();\n }\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedData = event.clipboardData?.getData(\"text\") || \"\";\n const digits = pastedData\n .replace(/[^0-9]/g, \"\")\n .slice(0, 4)\n .split(\"\");\n\n while (digits.length < 4) {\n digits.push(\"\");\n }\n\n this.codeDigits = digits;\n\n const firstEmptyIndex = digits.findIndex((digit) => !digit);\n const targetIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : 3;\n if (this.inputRefs[targetIndex]) {\n this.inputRefs[targetIndex].focus();\n }\n\n const fullCode = digits.join(\"\");\n if (fullCode.length === 4) {\n this.authenticateWithCode(fullCode);\n }\n };\n\n private authenticateWithCode = async (code: string) => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithMagicCode(code);\n };\n render() {\n if (authState.step !== \"magic-code\") {\n return null;\n }\n\n return (\n <div class={`u:flex u:gap-0.5 u:w-full u:justify-center ${this.componentClassName}`}>\n {this.codeDigits.map((digit, index) => (\n <input\n // biome-ignore lint/suspicious/noArrayIndexKey: digits are fixed position inputs\n key={index}\n ref={(el) => {\n if (el) this.inputRefs[index] = el;\n }}\n id={`digit-input-${index + 1}`}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n value={digit}\n disabled={authState.loading}\n onInput={(event) => this.handleInput(event, index)}\n onKeyDown={(event) => this.handleKeyDown(event, index)}\n onPaste={index === 0 ? this.handlePaste : undefined}\n aria-label={`Digit ${index + 1} of ${this.codeDigits.length}`}\n class=\"u:w-[50px] u:h-[50px] u:text-center u:text-lg u:border-2 u:border-solid u:border-slate-200 u:rounded-lg u:outline-none u:transition-colors u:duration-200\"\n part=\"digit-input\"\n />\n ))}\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-missing-field.entry.esm.js","sources":["src/auth/components/missing-field/missing-field.tsx"],"sourcesContent":["import { Component, Element, h } from \"@stencil/core\";\nimport { authState, missingFieldNames } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-field\",\n shadow: false,\n})\nexport class MissingField {\n @Element() el!: HTMLElement;\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n const fieldNames = missingFieldNames();\n\n return (\n <div class=\"missing-fields\">\n <form>\n {fieldNames.map((fieldName) => (\n <u-field key={fieldName} field={fieldName} renderDefaultLabel={true} />\n ))}\n </form>\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;MAOa,YAAY,GAAA,MAAA;;;;;
|
|
1
|
+
{"version":3,"file":"u-missing-field.entry.esm.js","sources":["src/auth/components/missing-field/missing-field.tsx"],"sourcesContent":["import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { authState, missingFieldNames } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-field\",\n shadow: false,\n})\nexport class MissingField {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n const fieldNames = missingFieldNames();\n\n return (\n <div class=\"missing-fields\">\n <form>\n {fieldNames.map((fieldName) => (\n <u-field key={fieldName} field={fieldName} renderDefaultLabel={true} class-name={this.componentClassName} />\n ))}\n </form>\n </div>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;MAOa,YAAY,GAAA,MAAA;;;;;AAEY,IAAA,kBAAkB;IAErD,MAAM,GAAA;AACJ,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;AAEpD,QAAA,MAAM,UAAU,GAAG,iBAAiB,EAAE;QAEtC,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,IAAA,EACG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,MACxB,CAAA,CAAA,SAAA,EAAA,EAAS,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,gBAAc,IAAI,CAAC,kBAAkB,EAAA,CAAI,CAC7G,CAAC,CACG,CACH;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-missing-fields-submit-button.entry.esm.js","sources":["src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-missing-fields-submit-button.entry.esm.js","sources":["src/auth/components/missing-fields-submit-button/missing-fields-submit-button.tsx"],"sourcesContent":["import { Component, h, Prop } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { t } from \"../../../i18n\";\nimport { buildPayload, validateRequiredFieldsUnchanged } from \"../../../profile/profile-helpers\";\nimport { state as profileState } from \"../../../profile/store/profile-store\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport type { TokenResponse } from \"../../api/auth\";\nimport { authState, authStore } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-missing-fields-submit-button\",\n shadow: false,\n})\nexport class MissingFieldsSubmitButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private async onSubmit() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const sid = authState.sid as string;\n\n const [error, response] = await getUnidyClient().auth.updateMissingFields({\n signInId: sid,\n payload: { user: updatedProfileData },\n });\n\n if (error) {\n profileState.loading = false;\n return;\n }\n\n const { jwt } = response as TokenResponse;\n profileState.loading = false;\n authStore.setToken(jwt);\n\n // Emit authEvent to allow modal-based logins to close after successful submission\n this.element.dispatchEvent(new CustomEvent(\"authEvent\", { detail: { jwt }, bubbles: true, composed: true }));\n }\n\n render() {\n if (authState.step !== \"missing-fields\") return null;\n\n return (\n <div>\n <button\n type=\"button\"\n onClick={() => this.onSubmit()}\n part=\"button\"\n class={this.componentClassName}\n disabled={(profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false}\n aria-live=\"polite\"\n >\n {profileState.loading ? <u-spinner /> : this.hasSlot ? <slot /> : t(\"buttons.submit\")}\n </button>\n </div>\n );\n }\n}\n"],"names":["profileState","authState"],"mappings":";;;;;;;;;;;;AAca,MAAA,yBAA0B,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;IACxC,kBAAkB,GAAG,EAAE;AAElD,IAAA,MAAM,QAAQ,GAAA;AACpB,QAAAA,KAAY,CAAC,OAAO,GAAG,IAAI;QAE3B,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAGA,KAAY;QAE7D,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AAC7D,YAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;QAGF,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAChE,QAAA,MAAM,GAAG,GAAGC,OAAS,CAAC,GAAa;AAEnC,QAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,cAAc,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACxE,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACtC,SAAA,CAAC;QAEF,IAAI,KAAK,EAAE;AACT,YAAAD,KAAY,CAAC,OAAO,GAAG,KAAK;YAC5B;;AAGF,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,QAAyB;AACzC,QAAAA,KAAY,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAA,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;;QAGvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;IAG9G,MAAM,GAAA;AACJ,QAAA,IAAIC,OAAS,CAAC,IAAI,KAAK,gBAAgB;AAAE,YAAA,OAAO,IAAI;QAEpD,QACE,CAAA,CAAA,KAAA,EAAA,IAAA,EACE,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC9B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,QAAQ,EAAE,CAACD,KAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAACA,KAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,KAAKA,KAAY,CAAC,UAAU,KAAK,KAAK,EACzG,WAAA,EAAA,QAAQ,IAEjBA,KAAY,CAAC,OAAO,GAAG,CAAa,CAAA,WAAA,EAAA,IAAA,CAAA,GAAG,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAC9E,CACL;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-checkbox.entry.esm.js","sources":["src/newsletter/components/newsletter-checkbox/newsletter-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-checkbox\",\n shadow: false,\n})\nexport class NewsletterCheckbox {\n @Prop() internalName!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n componentWillLoad() {\n if (this.checked && !this.isSubscribed) {\n const checkedNewsletters = newsletterStore.state.checkedNewsletters;\n if (!(this.internalName in checkedNewsletters)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...checkedNewsletters,\n [this.internalName]: [],\n });\n }\n }\n }\n\n private get isSubscribed(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName);\n }\n\n private get isChecked(): boolean {\n return this.isSubscribed || this.internalName in newsletterStore.state.checkedNewsletters;\n }\n\n private syncToStore(checked: boolean) {\n if (checked) {\n const prefs = newsletterStore.state.defaultPreferences[this.internalName];\n const defaultPrefs: string[] = prefs ? Array.from(prefs) : [];\n\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: defaultPrefs,\n });\n } else {\n const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;\n newsletterStore.set(\"checkedNewsletters\", rest);\n }\n }\n\n private handleChange = () => {\n if (this.isSubscribed) return;\n this.syncToStore(!this.isChecked);\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isSubscribed) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isSubscribed}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n />\n );\n }\n}\n"],"names":["NewsletterHelpers.isSubscribed"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-newsletter-checkbox.entry.esm.js","sources":["src/newsletter/components/newsletter-checkbox/newsletter-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-checkbox\",\n shadow: false,\n})\nexport class NewsletterCheckbox {\n @Prop() internalName!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n componentWillLoad() {\n if (this.checked && !this.isSubscribed) {\n const checkedNewsletters = newsletterStore.state.checkedNewsletters;\n if (!(this.internalName in checkedNewsletters)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...checkedNewsletters,\n [this.internalName]: [],\n });\n }\n }\n }\n\n private get isSubscribed(): boolean {\n return NewsletterHelpers.isSubscribed(this.internalName);\n }\n\n private get isChecked(): boolean {\n return this.isSubscribed || this.internalName in newsletterStore.state.checkedNewsletters;\n }\n\n private syncToStore(checked: boolean) {\n if (checked) {\n const prefs = newsletterStore.state.defaultPreferences[this.internalName];\n const defaultPrefs: string[] = prefs ? Array.from(prefs) : [];\n\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: defaultPrefs,\n });\n } else {\n const { [this.internalName]: _, ...rest } = newsletterStore.state.checkedNewsletters;\n newsletterStore.set(\"checkedNewsletters\", rest);\n }\n }\n\n private handleChange = () => {\n if (this.isSubscribed) return;\n this.syncToStore(!this.isChecked);\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isSubscribed) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isSubscribed}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n />\n );\n }\n}\n"],"names":["NewsletterHelpers.isSubscribed"],"mappings":";;;;;;;;;;;MAQa,kBAAkB,GAAA,MAAA;;;;AACrB,IAAA,YAAY;IACZ,OAAO,GAAG,KAAK;AACY,IAAA,kBAAkB;IAErD,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;YACnE,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,kBAAkB,CAAC,EAAE;AAC9C,gBAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,oBAAA,GAAG,kBAAkB;AACrB,oBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE;AACxB,iBAAA,CAAC;;;;AAKR,IAAA,IAAY,YAAY,GAAA;QACtB,OAAOA,YAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG1D,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,KAAK,CAAC,kBAAkB;;AAGnF,IAAA,WAAW,CAAC,OAAgB,EAAA;QAClC,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,YAAA,MAAM,YAAY,GAAa,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AAE7D,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE;AACxC,gBAAA,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AAC3C,gBAAA,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,aAAA,CAAC;;aACG;AACL,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;AACpF,YAAA,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;;;IAI3C,YAAY,GAAG,MAAK;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,KAAC;;AAID,IAAA,MAAM,MAAM,GAAA;QACV,IAAI,CAAC,YAAY,EAAE;;;IAKrB,MAAM,UAAU,CAAC,OAAgB,EAAA;QAC/B,IAAI,IAAI,CAAC,YAAY;YAAE;AACvB,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;;;IAI7B,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB,kBAChB,IAAI,CAAC,SAAS,EAAA,CAC5B;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-logout-button.entry.esm.js","sources":["src/newsletter/components/logout-button/logout-button.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-newsletter-logout-button.entry.esm.js","sources":["src/newsletter/components/logout-button/logout-button.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { newsletterLogout } from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-logout-button\",\n shadow: false,\n})\nexport class NewsletterLogoutButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private handleLogout = () => {\n newsletterLogout();\n Flash.success.addMessage(t(\"newsletter.success.logout\"));\n };\n\n render() {\n if (newsletterStore.state.preferenceToken === \"\" || newsletterStore.state.isAuthenticated) {\n return <Host style={{ display: \"none\" }} />;\n }\n\n return (\n <Host>\n <button\n type=\"button\"\n part=\"button\"\n class={this.componentClassName}\n onClick={this.handleLogout}\n aria-label=\"Logout\"\n aria-live=\"polite\"\n >\n {this.hasSlot ? <slot /> : t(\"newsletter.buttons.logout\")}\n </button>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYa,MAAA,sBAAuB,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;IACrC,kBAAkB,GAAG,EAAE;IAElD,YAAY,GAAG,MAAK;AAC1B,QAAA,gBAAgB,EAAE;QAClB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;AAC1D,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE;AACzF,YAAA,OAAO,CAAA,CAAC,IAAI,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,CAAI;;AAG7C,QAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAA,YAAA,EACf,QAAQ,EAAA,WAAA,EACT,QAAQ,EAEjB,EAAA,IAAI,CAAC,OAAO,GAAG,CAAA,CAAA,MAAA,EAAA,IAAA,CAAQ,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAClD,CACJ;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-preference-checkbox.entry.esm.js","sources":["src/newsletter/components/preference-checkbox/preference-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop, State } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type ExistingSubscription, newsletterStore, storeDefaultPreference } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-preference-checkbox\",\n shadow: false,\n})\nexport class NewsletterPreferenceCheckbox {\n @Prop() internalName!: string;\n @Prop() preferenceIdentifier!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n @State() loading = false;\n\n @State() existingSubscriptions: ExistingSubscription[] = [];\n @State() checkedPreferences: string[] = [];\n\n private storeUnsubscribe?: () => void;\n\n componentWillLoad() {\n this.subscribeToStore();\n this.initializeCheckedState();\n\n if (this.checked) {\n storeDefaultPreference(this.internalName, this.preferenceIdentifier);\n }\n }\n\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n }\n\n private subscribeToStore() {\n this.storeUnsubscribe = newsletterStore.onChange(\"existingSubscriptions\", (subscriptions) => {\n this.existingSubscriptions = subscriptions;\n });\n\n newsletterStore.onChange(\"checkedNewsletters\", (checkedNewsletters) => {\n this.checkedPreferences = checkedNewsletters[this.internalName] || [];\n });\n\n this.existingSubscriptions = newsletterStore.state.existingSubscriptions;\n this.checkedPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n }\n\n private initializeCheckedState() {\n if (NewsletterHelpers.isSubscribed(this.internalName)) {\n return;\n }\n\n if (this.checked) {\n this.syncToStore(true);\n }\n }\n\n private get subscription(): ExistingSubscription | undefined {\n return this.existingSubscriptions.find((sub) => sub.newsletter_internal_name === this.internalName);\n }\n\n private get isSubscribed(): boolean {\n return this.subscription !== undefined;\n }\n\n private get isConfirmed(): boolean {\n return this.subscription?.confirmed ?? false;\n }\n\n private get isDisabled(): boolean {\n return this.loading || (this.isSubscribed && !this.isConfirmed);\n }\n\n private get isChecked(): boolean {\n return this.checkedPreferences.includes(this.preferenceIdentifier);\n }\n\n private syncToStore(add: boolean) {\n const currentPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n\n if (add) {\n if (!currentPreferences.includes(this.preferenceIdentifier)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: [...currentPreferences, this.preferenceIdentifier],\n });\n }\n } else {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: currentPreferences.filter((p) => p !== this.preferenceIdentifier),\n });\n }\n }\n\n private async persistIfSubscribed() {\n if (this.isSubscribed && this.isConfirmed) {\n this.loading = true;\n await NewsletterHelpers.updateSubscriptionPreferences(this.internalName);\n this.loading = false;\n }\n }\n\n private handleChange = async () => {\n if (this.isDisabled) return;\n\n this.syncToStore(!this.isChecked);\n await this.persistIfSubscribed();\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n await this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isDisabled) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n await this.persistIfSubscribed();\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isDisabled}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n aria-busy={this.loading}\n aria-disabled={this.isDisabled}\n data-internal-name={this.internalName}\n data-preference-identifier={this.preferenceIdentifier}\n />\n );\n }\n}\n"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.updateSubscriptionPreferences"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-newsletter-preference-checkbox.entry.esm.js","sources":["src/newsletter/components/preference-checkbox/preference-checkbox.tsx"],"sourcesContent":["import { Component, h, Method, Prop, State } from \"@stencil/core\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type ExistingSubscription, newsletterStore, storeDefaultPreference } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-preference-checkbox\",\n shadow: false,\n})\nexport class NewsletterPreferenceCheckbox {\n @Prop() internalName!: string;\n @Prop() preferenceIdentifier!: string;\n @Prop() checked = false;\n @Prop({ attribute: \"class-name\" }) componentClassName?: string;\n\n @State() loading = false;\n\n @State() existingSubscriptions: ExistingSubscription[] = [];\n @State() checkedPreferences: string[] = [];\n\n private storeUnsubscribe?: () => void;\n\n componentWillLoad() {\n this.subscribeToStore();\n this.initializeCheckedState();\n\n if (this.checked) {\n storeDefaultPreference(this.internalName, this.preferenceIdentifier);\n }\n }\n\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n }\n\n private subscribeToStore() {\n this.storeUnsubscribe = newsletterStore.onChange(\"existingSubscriptions\", (subscriptions) => {\n this.existingSubscriptions = subscriptions;\n });\n\n newsletterStore.onChange(\"checkedNewsletters\", (checkedNewsletters) => {\n this.checkedPreferences = checkedNewsletters[this.internalName] || [];\n });\n\n this.existingSubscriptions = newsletterStore.state.existingSubscriptions;\n this.checkedPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n }\n\n private initializeCheckedState() {\n if (NewsletterHelpers.isSubscribed(this.internalName)) {\n return;\n }\n\n if (this.checked) {\n this.syncToStore(true);\n }\n }\n\n private get subscription(): ExistingSubscription | undefined {\n return this.existingSubscriptions.find((sub) => sub.newsletter_internal_name === this.internalName);\n }\n\n private get isSubscribed(): boolean {\n return this.subscription !== undefined;\n }\n\n private get isConfirmed(): boolean {\n return this.subscription?.confirmed ?? false;\n }\n\n private get isDisabled(): boolean {\n return this.loading || (this.isSubscribed && !this.isConfirmed);\n }\n\n private get isChecked(): boolean {\n return this.checkedPreferences.includes(this.preferenceIdentifier);\n }\n\n private syncToStore(add: boolean) {\n const currentPreferences = newsletterStore.state.checkedNewsletters[this.internalName] || [];\n\n if (add) {\n if (!currentPreferences.includes(this.preferenceIdentifier)) {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: [...currentPreferences, this.preferenceIdentifier],\n });\n }\n } else {\n newsletterStore.set(\"checkedNewsletters\", {\n ...newsletterStore.state.checkedNewsletters,\n [this.internalName]: currentPreferences.filter((p) => p !== this.preferenceIdentifier),\n });\n }\n }\n\n private async persistIfSubscribed() {\n if (this.isSubscribed && this.isConfirmed) {\n this.loading = true;\n await NewsletterHelpers.updateSubscriptionPreferences(this.internalName);\n this.loading = false;\n }\n }\n\n private handleChange = async () => {\n if (this.isDisabled) return;\n\n this.syncToStore(!this.isChecked);\n await this.persistIfSubscribed();\n };\n\n /** Public method to toggle the checkbox programmatically */\n @Method()\n async toggle() {\n await this.handleChange();\n }\n\n /** Public method to set the checkbox state programmatically */\n @Method()\n async setChecked(checked: boolean) {\n if (this.isDisabled) return;\n if (checked !== this.isChecked) {\n this.syncToStore(checked);\n await this.persistIfSubscribed();\n }\n }\n\n render() {\n return (\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.isDisabled}\n onChange={this.handleChange}\n class={this.componentClassName}\n aria-checked={this.isChecked}\n aria-busy={this.loading}\n aria-disabled={this.isDisabled}\n data-internal-name={this.internalName}\n data-preference-identifier={this.preferenceIdentifier}\n />\n );\n }\n}\n"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.updateSubscriptionPreferences"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-resend-doi-button.entry.esm.js","sources":["src/newsletter/components/resend-doi-button/resend-doi-button.css?tag=u-newsletter-resend-doi-button","src/newsletter/components/resend-doi-button/resend-doi-button.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\n\n@Component({\n tag: \"u-newsletter-resend-doi-button\",\n styleUrl: \"resend-doi-button.css\",\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"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed","NewsletterHelpers.resendDoi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-newsletter-resend-doi-button.entry.esm.js","sources":["src/newsletter/components/resend-doi-button/resend-doi-button.css?tag=u-newsletter-resend-doi-button","src/newsletter/components/resend-doi-button/resend-doi-button.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\n\n@Component({\n tag: \"u-newsletter-resend-doi-button\",\n styleUrl: \"resend-doi-button.css\",\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"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed","NewsletterHelpers.resendDoi"],"mappings":";;;;;;;;;;;AAAA,MAAM,kBAAkB,GAAG,ypNAAypN;;MCUvqN,yBAAyB,GAAA,MAAA;;;;AAC5B,IAAA,YAAY;IACe,kBAAkB,GAAG,EAAE;IAEjD,WAAW,GAAG,KAAK;AAE5B,IAAA,IAAY,UAAU,GAAA;AACpB,QAAA,OAAOA,YAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAACC,WAA6B,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGvG,WAAW,GAAG,YAAW;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,MAAM,OAAO,GAAG,MAAMC,SAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AACpE,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QAExB,IAAI,OAAO,EAAE;YACX,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;;aACrD;YACL,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;;AAEpE,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,IAAI;;AAGb,QAAA,QACE,cACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,WAAW,eACf,IAAI,CAAC,WAAW,EAAA,WAAA,EACjB,QAAQ,EAClB,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,kBAAkB,CAAA,uCAAA,CAAyC,EAEzE,EAAA,IAAI,CAAC,WAAW,GAAG,CAAa,CAAA,WAAA,EAAA,IAAA,CAAA,GAAG,CAAC,CAAC,+BAA+B,CAAC,CAC/D;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-root.entry.esm.js","sources":["src/newsletter/components/newsletter-root/newsletter-root.tsx"],"sourcesContent":["import { Component, Element, Host, h, Method, Prop } from \"@stencil/core\";\nimport { Auth } from \"../../../auth/auth\";\nimport { t } from \"../../../i18n\";\nimport { logger
|
|
1
|
+
{"version":3,"file":"u-newsletter-root.entry.esm.js","sources":["src/newsletter/components/newsletter-root/newsletter-root.tsx"],"sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, h, Method, Prop } from \"@stencil/core\";\nimport { Auth } from \"../../../auth/auth\";\nimport { t } from \"../../../i18n\";\nimport { logger } from \"../../../logger\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { waitForConfig } from \"../../../shared/store/unidy-store\";\nimport { clearUrlParam } from \"../../../shared/utils/url-utils\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { type NewsletterErrorIdentifier, newsletterStore, persist } from \"../../store/newsletter-store\";\nimport type { NewsletterButtonFor } from \"../submit-button/newsletter-submit-button\";\n\n@Component({\n tag: \"u-newsletter-root\",\n shadow: false,\n})\nexport class NewsletterRoot extends UnidyComponent() {\n @Element() el!: HTMLElement;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n @Event() uNewsletterSuccess!: EventEmitter<{ email: string; newsletters: string[] }>;\n @Event() uNewsletterError!: EventEmitter<{ email: string; error: string }>;\n\n getErrorText(errorIdentifier: NewsletterErrorIdentifier): string {\n return t(`newsletter.errors.${errorIdentifier}`) || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" });\n }\n\n async componentWillLoad() {\n const newsletterError = clearUrlParam(\"newsletter_error\");\n const preferenceToken = clearUrlParam(\"preference_token\");\n const email = clearUrlParam(\"email\");\n\n if (newsletterError) {\n Flash.error.addMessage(this.getErrorText(newsletterError as NewsletterErrorIdentifier));\n }\n\n if (preferenceToken && email) {\n newsletterStore.state.preferenceToken = preferenceToken;\n newsletterStore.state.email = email;\n\n persist(\"preferenceToken\");\n persist(\"email\");\n }\n\n const authInstance = await Auth.getInstance();\n const isAuthenticated = await authInstance.isAuthenticated();\n newsletterStore.state.isAuthenticated = isAuthenticated;\n\n if (isAuthenticated) {\n const userData = await authInstance.userData();\n\n if (userData) {\n newsletterStore.state.email = userData.email;\n }\n }\n\n await waitForConfig();\n await NewsletterHelpers.fetchSubscriptions();\n }\n\n @Method()\n async submit(forType?: NewsletterButtonFor) {\n const { email, checkedNewsletters, consentGiven, consentRequired } = newsletterStore.state;\n const newsletters = Object.keys(checkedNewsletters);\n\n // Check email first for better UX\n if (!email) {\n logger.error(\"Email is required\");\n Flash.error.addMessage(t(\"newsletter.errors.email_required\"));\n this.uNewsletterError.emit({ email: \"\", error: \"email_required\" });\n return;\n }\n\n if (forType === \"login\") {\n const result = await NewsletterHelpers.sendLoginEmail(email);\n if (result.success === true) {\n this.uNewsletterSuccess.emit({ email, newsletters: [] });\n } else if (result.success === false) {\n this.uNewsletterError.emit({ email, error: `login_${result.error}` });\n }\n return;\n }\n\n if (newsletters.length === 0) {\n logger.error(\"No newsletters selected: please select at least one newsletter\");\n this.uNewsletterError.emit({ email, error: \"no_newsletters_selected\" });\n return;\n }\n\n if (consentRequired && !consentGiven) {\n newsletterStore.state.errors = {\n ...newsletterStore.state.errors,\n consent: \"consent_required\",\n };\n this.uNewsletterError.emit({ email, error: \"consent_required\" });\n return;\n }\n\n const success = await NewsletterHelpers.createSubscriptions({ email });\n\n if (success) {\n this.uNewsletterSuccess.emit({ email, newsletters });\n } else {\n this.uNewsletterError.emit({ email, error: \"subscription_failed\" });\n }\n }\n\n render() {\n return (\n <Host class={this.componentClassName}>\n <slot />\n </Host>\n );\n }\n}\n"],"names":["NewsletterHelpers.fetchSubscriptions","NewsletterHelpers.sendLoginEmail","NewsletterHelpers.createSubscriptions"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-newsletter-toggle-subscription-button.entry.esm.js","sources":["src/newsletter/components/toggle-subscription-button/toggle-subscription-button.css?tag=u-newsletter-toggle-subscription-button","src/newsletter/components/toggle-subscription-button/toggle-subscription-button.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-toggle-subscription-button\",\n styleUrl: \"toggle-subscription-button.css\",\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"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.subscribeToNewsletter","NewsletterHelpers.deleteSubscription"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-newsletter-toggle-subscription-button.entry.esm.js","sources":["src/newsletter/components/toggle-subscription-button/toggle-subscription-button.css?tag=u-newsletter-toggle-subscription-button","src/newsletter/components/toggle-subscription-button/toggle-subscription-button.tsx"],"sourcesContent":["","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport * as NewsletterHelpers from \"../../newsletter-helpers\";\nimport { newsletterStore } from \"../../store/newsletter-store\";\n\n@Component({\n tag: \"u-newsletter-toggle-subscription-button\",\n styleUrl: \"toggle-subscription-button.css\",\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"],"names":["NewsletterHelpers.isSubscribed","NewsletterHelpers.subscribeToNewsletter","NewsletterHelpers.deleteSubscription"],"mappings":";;;;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,ypNAAypN;;MCWhrN,kCAAkC,GAAA,MAAA;;;;AACrC,IAAA,YAAY;IAEe,kBAAkB,GAAG,EAAE;IACb,kBAAkB,GAAG,EAAE;IACrB,oBAAoB,GAAG,EAAE;IAE/D,OAAO,GAAG,KAAK;AAExB,IAAA,IAAY,YAAY,GAAA;QACtB,OAAOA,YAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGlD,WAAW,GAAG,YAAW;QAC/B,IAAI,IAAI,CAAC,OAAO;YAAE;AAElB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;;aACzB;AACL,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE;;AAEhC,KAAC;IAEO,eAAe,GAAG,YAAW;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,KAAK;QAEvC,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;YAC7D;;AAGF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,MAAM,OAAO,GAAG,MAAMC,qBAAuC,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;AACvF,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QAEpB,IAAI,OAAO,EAAE;YACX,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;;AAE/D,KAAC;IAEO,iBAAiB,GAAG,YAAW;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,MAAM,OAAO,GAAG,MAAMC,kBAAoC,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7E,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QAEpB,IAAI,OAAO,EAAE;YACX,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;;aACrD;YACL,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;;AAErE,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;AACtC,QAAA,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB;QAEzF,QACE,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,EACX,WAAA,EAAA,IAAI,CAAC,OAAO,gBACX,YAAY,GAAG,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC,8BAA8B,CAAC,EAAA,WAAA,EACxF,QAAQ,EACD,iBAAA,EAAA,YAAY,EAC7B,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,kBAAkB,CAAA,CAAA,EAAI,cAAc,CAAyC,uCAAA,CAAA,CAAC,IAAI,EAAE,EAElG,EAAA,IAAI,CAAC,OAAO,GAAG,CAAA,CAAA,WAAA,EAAA,IAAA,CAAa,GAAG,YAAY,GAAG,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAC/G;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-pagination-button.entry.esm.js","sources":["src/ticketable/components/pagination/pagination-button.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-pagination-button.entry.esm.js","sources":["src/ticketable/components/pagination/pagination-button.tsx"],"sourcesContent":["import { Component, Host, h, Prop, State } from \"@stencil/core\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport type { PaginationStore } from \"../../store/pagination-store\";\n\n@Component({ tag: \"u-pagination-button\", shadow: false })\nexport class PaginationButton extends UnidyComponent() {\n @Prop() direction: \"prev\" | \"next\" = \"next\";\n @Prop() customClass?: string;\n\n @State() paginationMeta: PaginationMeta | null = null;\n\n private store: PaginationStore | null = null;\n private unsubscribe: (() => void) | null = null;\n\n componentWillLoad() {\n this.store = this.element.closest(\"u-ticketable-list\")?.store;\n if (!this.store) {\n this.logger.warn(\"TicketableList component not found\");\n return;\n }\n\n // Get initial state\n this.paginationMeta = this.store.state.paginationMeta;\n\n // Subscribe to store changes - watch for changes to paginationMeta\n this.unsubscribe = this.store.onChange(\"paginationMeta\", (value: PaginationMeta | null) => {\n this.paginationMeta = value;\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n private handleClick = () => {\n const parent = this.element.closest(\"u-ticketable-list\");\n if (!parent || !this.paginationMeta) {\n return;\n }\n\n const isPrev = this.direction === \"prev\";\n let newPage: number | null = null;\n\n if (isPrev && this.paginationMeta.prev !== null) {\n newPage = this.paginationMeta.prev;\n } else if (!isPrev && this.paginationMeta.next !== null) {\n newPage = this.paginationMeta.next;\n }\n\n if (newPage !== null) {\n parent.setAttribute(\"page\", String(newPage));\n }\n };\n\n render() {\n if (!this.store) {\n this.logger.warn(\"TicketableList component not found\");\n return null;\n }\n\n const isPrev = this.direction === \"prev\";\n const icon = isPrev ? \"←\" : \"→\";\n\n // Determine disabled state based on pagination meta\n const disabled = !this.paginationMeta || (isPrev ? this.paginationMeta.prev === null : this.paginationMeta.next === null);\n\n return (\n <Host>\n <button\n type=\"button\"\n onClick={this.handleClick}\n disabled={disabled}\n aria-label={isPrev ? \"Previous page\" : \"Next page\"}\n class={this.customClass}\n >\n <slot name=\"icon\">\n <span aria-hidden=\"true\">{icon}</span>\n </slot>\n </button>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;MAMa,gBAAiB,GAAA,cAAQ,cAAc,EAAE,CAAA;;;;;IAC5C,SAAS,GAAoB,MAAM;AACnC,IAAA,WAAW;IAEV,cAAc,GAA0B,IAAI;IAE7C,KAAK,GAA2B,IAAI;IACpC,WAAW,GAAwB,IAAI;IAE/C,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,KAAK;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;YACtD;;;QAIF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc;;AAGrD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAA4B,KAAI;AACxF,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC7B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,IAAI;;IAGd,WAAW,GAAG,MAAK;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACnC;;AAGF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM;QACxC,IAAI,OAAO,GAAkB,IAAI;QAEjC,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,EAAE;AAC/C,YAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI;;aAC7B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,EAAE;AACvD,YAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI;;AAGpC,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;;AAEhD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;AACtD,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM;QACxC,MAAM,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;;AAG/B,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,CAAC;AAEzH,QAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,MAAM,GAAG,eAAe,GAAG,WAAW,EAClD,KAAK,EAAE,IAAI,CAAC,WAAW,EAAA,EAEvB,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAA,EACf,CAAkB,CAAA,MAAA,EAAA,EAAA,aAAA,EAAA,MAAM,IAAE,IAAI,CAAQ,CACjC,CACA,CACJ;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-pagination-page.entry.esm.js","sources":["src/ticketable/components/pagination/pagination-page.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-pagination-page.entry.esm.js","sources":["src/ticketable/components/pagination/pagination-page.tsx"],"sourcesContent":["import { Component, Host, h, Prop, State } from \"@stencil/core\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport type { PaginationStore } from \"../../store/pagination-store\";\n\n@Component({ tag: \"u-pagination-page\", shadow: false })\nexport class PaginationPage extends UnidyComponent() {\n @Prop() customClass?: string;\n\n @State() paginationMeta: PaginationMeta | null = null;\n\n private store: PaginationStore | null = null;\n private unsubscribe: (() => void) | null = null;\n\n componentWillLoad() {\n this.store = this.element.closest(\"u-ticketable-list\")?.store;\n if (!this.store) {\n this.logger.warn(\"TicketableList component not found\");\n return;\n }\n\n // Get initial state\n this.paginationMeta = this.store.state.paginationMeta;\n\n // Subscribe to store changes - watch for changes to paginationMeta\n this.unsubscribe = this.store.onChange(\"paginationMeta\", (value: PaginationMeta | null) => {\n this.paginationMeta = value;\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n render() {\n if (!this.store) {\n this.logger.warn(\"TicketableList component not found\");\n return null;\n }\n\n if (!this.paginationMeta) {\n return null;\n }\n\n return (\n <Host>\n <span class={this.customClass}>\n Page {this.paginationMeta.page} of {this.paginationMeta.last}\n </span>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;MAMa,cAAe,GAAA,cAAQ,cAAc,EAAE,CAAA;;;;;AAC1C,IAAA,WAAW;IAEV,cAAc,GAA0B,IAAI;IAE7C,KAAK,GAA2B,IAAI;IACpC,WAAW,GAAwB,IAAI;IAE/C,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,KAAK;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;YACtD;;;QAIF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc;;AAGrD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAA4B,KAAI;AACxF,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC7B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,IAAI;;IAGtB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;AACtD,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,IAAI;;AAGb,QAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,IAAI,CAAC,WAAW,EAAA,WACrB,IAAI,CAAC,cAAc,CAAC,IAAI,UAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CACvD,CACF;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-passkey.entry.esm.js","sources":["src/auth/components/passkey/passkey.tsx"],"sourcesContent":["import { Component, Host, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-passkey\",\n shadow: false,\n})\nexport class Passkey {\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() ariaDescribedBy? = \"\";\n\n @State() isSupported = false;\n\n componentWillLoad() {\n // Check if WebAuthn is supported\n this.isSupported = typeof window !== \"undefined\" && !!window.PublicKeyCredential;\n }\n\n private handleClick = async () => {\n if (this.disabled || authState.loading || !this.isSupported) return;\n\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithPasskey();\n };\n\n render() {\n if (!authState.availableLoginOptions?.passkey) {\n return null;\n }\n\n if (!this.isSupported) {\n return null;\n }\n\n const isDisabled = this.disabled || authState.loading;\n const text = t(\"auth.passkey.button_text\", { defaultValue: \"Sign in with Passkey\" });\n const loadingText = t(\"auth.passkey.loading_text\", { defaultValue: \"Authenticating...\" });\n\n return (\n <Host>\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={this.handleClick}\n class={this.componentClassName}\n aria-live=\"polite\"\n aria-describedby={this.ariaDescribedBy || undefined}\n >\n {authState.loading ? loadingText : text}\n </button>\n </Host>\n );\n }\n}\n"],"names":["authState"],"mappings":"
|
|
1
|
+
{"version":3,"file":"u-passkey.entry.esm.js","sources":["src/auth/components/passkey/passkey.tsx"],"sourcesContent":["import { Component, Host, h, Prop, State } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-passkey\",\n shadow: false,\n})\nexport class Passkey {\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() ariaDescribedBy? = \"\";\n\n @State() isSupported = false;\n\n componentWillLoad() {\n // Check if WebAuthn is supported\n this.isSupported = typeof window !== \"undefined\" && !!window.PublicKeyCredential;\n }\n\n private handleClick = async () => {\n if (this.disabled || authState.loading || !this.isSupported) return;\n\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.authenticateWithPasskey();\n };\n\n render() {\n if (!authState.availableLoginOptions?.passkey) {\n return null;\n }\n\n if (!this.isSupported) {\n return null;\n }\n\n const isDisabled = this.disabled || authState.loading;\n const text = t(\"auth.passkey.button_text\", { defaultValue: \"Sign in with Passkey\" });\n const loadingText = t(\"auth.passkey.loading_text\", { defaultValue: \"Authenticating...\" });\n\n return (\n <Host>\n <button\n type=\"button\"\n disabled={isDisabled}\n onClick={this.handleClick}\n class={this.componentClassName}\n aria-live=\"polite\"\n aria-describedby={this.ariaDescribedBy || undefined}\n >\n {authState.loading ? loadingText : text}\n </button>\n </Host>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;;;;;MASa,OAAO,GAAA,MAAA;;;;IACV,QAAQ,GAAG,KAAK;IACW,kBAAkB,GAAG,EAAE;IAClD,eAAe,GAAI,EAAE;IAEpB,WAAW,GAAG,KAAK;IAE5B,iBAAiB,GAAA;;AAEf,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB;;IAG1E,WAAW,GAAG,YAAW;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAIA,KAAS,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;AAE7D,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE;AACtD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAACA,KAAS,CAAC,qBAAqB,EAAE,OAAO,EAAE;AAC7C,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,OAAO,IAAI;;QAGb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAIA,KAAS,CAAC,OAAO;AACrD,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACpF,QAAA,MAAM,WAAW,GAAG,CAAC,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAEzF,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,KAAK,EAAE,IAAI,CAAC,kBAAkB,EACpB,WAAA,EAAA,QAAQ,EACA,kBAAA,EAAA,IAAI,CAAC,eAAe,IAAI,SAAS,EAElD,EAAAA,KAAS,CAAC,OAAO,GAAG,WAAW,GAAG,IAAI,CAChC,CACJ;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-profile.u-submit-button.entry.esm.js","sources":["src/profile/components/profile/profile.tsx","src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Event, type EventEmitter, Host, h, Method, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { Auth } from \"../../../auth\";\nimport { onChange as authOnChange, authStore } from \"../../../auth/store/auth-store\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { onChange as unidyOnChange } from \"../../../shared/store/unidy-store\";\nimport { buildPayload, validateRequiredFieldsUnchanged } from \"../../profile-helpers\";\nimport type { ProfileRaw } from \"../../store/profile-store\";\nimport { onChange as profileOnChange, state as profileState } from \"../../store/profile-store\";\n\n@Component({\n tag: \"u-profile\",\n shadow: false,\n})\nexport class Profile {\n @Prop() profileId?: string;\n @Prop() initialData: string | Record<string, string> = \"\";\n\n @Event() uProfileSuccess!: EventEmitter<{ message: string; payload: ProfileRaw }>;\n @Event() uProfileError!: EventEmitter<{\n error: string;\n details: {\n fieldErrors?: Record<string, string>;\n httpStatus?: number;\n responseData?: unknown;\n };\n }>;\n\n @State() fetchingProfileData = false;\n\n constructor() {\n unidyOnChange(\"locale\", async (_locale) => {\n if (authStore.state.authenticated) await this.getTokenAndFetchProfile();\n });\n }\n\n async componentWillLoad() {\n if (this.initialData !== \"\") {\n profileState.data = typeof this.initialData === \"string\" ? JSON.parse(this.initialData) : this.initialData;\n } else {\n // Ensure auth is initialized before checking authenticated state\n await Auth.getInstance();\n\n if (authStore.state.authenticated) {\n await this.getTokenAndFetchProfile();\n }\n }\n\n profileState.loading = false;\n }\n\n async getTokenAndFetchProfile() {\n await this.fetchProfileData();\n }\n\n async fetchProfileData() {\n // avoid multiple requests\n if (this.fetchingProfileData) return;\n\n this.fetchingProfileData = true;\n try {\n const [error, data] = await getUnidyClient().profile.get();\n\n if (error) {\n Flash.error.addMessage(String(error));\n } else {\n Flash.clear(\"error\");\n profileState.configuration = JSON.parse(JSON.stringify(data)) as ProfileRaw;\n profileState.configUpdateSource = \"fetch\";\n profileState.errors = {};\n profileState.data = JSON.parse(JSON.stringify(data)) as ProfileRaw;\n }\n } catch (error) {\n Sentry.captureException(\"Failed to fetch profile data:\", error);\n Flash.error.addMessage(t(\"errors.failed_to_load_profile\"));\n } finally {\n this.fetchingProfileData = false;\n }\n }\n\n @Method()\n async submitProfile() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const [error, data, responseInfo] = await getUnidyClient().profile.update({ payload: updatedProfileData });\n\n if (error) {\n if (data && \"flatErrors\" in data) {\n profileState.errors = data.flatErrors as Record<string, string>;\n this.uProfileError.emit({\n error: \"profile_update_field_errors\",\n details: {\n fieldErrors: profileState.errors,\n httpStatus: responseInfo?.httpStatus,\n responseData: responseInfo?.responseData,\n },\n });\n } else {\n Flash.error.addMessage(String(error));\n this.uProfileError.emit({\n error: \"profile_update_failed\",\n details: {\n httpStatus: responseInfo?.httpStatus,\n responseData: responseInfo?.responseData,\n },\n });\n }\n profileState.loading = false;\n } else {\n profileState.loading = false;\n profileState.configuration = JSON.parse(JSON.stringify(data));\n profileState.configUpdateSource = \"submit\";\n profileState.errors = {};\n Flash.clear(\"error\");\n Flash.success.addMessage(t(\"profile.updated\"));\n this.uProfileSuccess.emit({ message: \"profile_updated_successfully\", payload: data as ProfileRaw });\n }\n }\n\n componentDidLoad() {\n profileOnChange(\"configuration\", (cfg) => {\n profileState.data = cfg as ProfileRaw;\n });\n\n authOnChange(\"token\", (newToken: string | null) => {\n const token = newToken ?? \"\";\n\n if (token) {\n this.fetchProfileData();\n }\n });\n }\n\n render() {\n if (authStore.state.authenticated) {\n return this.fetchingProfileData ? (\n <div>{t(\"loading\")}</div>\n ) : (\n <Host>\n <slot />\n </Host>\n );\n }\n\n return <h2>{t(\"profile.signInToView\")}</h2>;\n }\n}\n","import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\" | \"single-login\";\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"single-login\" && forProp === \"single-login\") {\n return authState.email === \"\" || authState.password === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.save_new_password\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n case \"single-login\":\n if (forProp === \"single-login\") {\n return t(\"auth.single-login.button_text\", { defaultValue: \"Sign In\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"single-login\") {\n return forProp === \"single-login\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","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 return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, Element, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton {\n @Element() el!: HTMLElement;\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n private hasSlot = false;\n\n async componentWillLoad() {\n // this needs to be evaluated on load, bc doing it on render will evaluate the generated dom for \"shadow: false\"\n // components and always return true on re-render\n this.hasSlot = hasSlotContent(this.el);\n\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.el, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n private getButtonContent() {\n const loading = this.isLoading();\n\n if (loading) {\n return <u-spinner />;\n }\n\n if (this.hasSlot) {\n return <slot />;\n }\n\n return this.getButtonText();\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n \"u:flex u:justify-center u:cursor-pointer u:disabled:opacity-50 u:disabled:cursor-not-allowed \",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{this.getButtonContent()}</button>;\n }\n}\n"],"names":["unidyOnChange","profileState","Sentry.captureException","profileOnChange","authOnChange","authState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"u-profile.u-submit-button.entry.esm.js","sources":["src/profile/components/profile/profile.tsx","src/auth/components/submit-button/auth-submit-button.ts","src/newsletter/components/submit-button/newsletter-submit-button.ts","src/profile/components/submit-button/profile-submit-button.ts","src/shared/components/submit-button/context.ts","src/shared/components/submit-button/submit-button.css?tag=u-submit-button","src/shared/components/submit-button/submit-button.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Event, type EventEmitter, Host, h, Method, Prop, State } from \"@stencil/core\";\nimport { getUnidyClient } from \"../../../api\";\nimport { Auth } from \"../../../auth\";\nimport { onChange as authOnChange, authStore } from \"../../../auth/store/auth-store\";\nimport { t } from \"../../../i18n\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { onChange as unidyOnChange } from \"../../../shared/store/unidy-store\";\nimport { buildPayload, validateRequiredFieldsUnchanged } from \"../../profile-helpers\";\nimport type { ProfileRaw } from \"../../store/profile-store\";\nimport { onChange as profileOnChange, state as profileState } from \"../../store/profile-store\";\n\n@Component({\n tag: \"u-profile\",\n shadow: false,\n})\nexport class Profile {\n @Prop() profileId?: string;\n @Prop() initialData: string | Record<string, string> = \"\";\n\n @Event() uProfileSuccess!: EventEmitter<{ message: string; payload: ProfileRaw }>;\n @Event() uProfileError!: EventEmitter<{\n error: string;\n details: {\n fieldErrors?: Record<string, string>;\n httpStatus?: number;\n responseData?: unknown;\n };\n }>;\n\n @State() fetchingProfileData = false;\n\n constructor() {\n unidyOnChange(\"locale\", async (_locale) => {\n if (authStore.state.authenticated) await this.getTokenAndFetchProfile();\n });\n }\n\n async componentWillLoad() {\n if (this.initialData !== \"\") {\n profileState.data = typeof this.initialData === \"string\" ? JSON.parse(this.initialData) : this.initialData;\n } else {\n // Ensure auth is initialized before checking authenticated state\n await Auth.getInstance();\n\n if (authStore.state.authenticated) {\n await this.getTokenAndFetchProfile();\n }\n }\n\n profileState.loading = false;\n }\n\n async getTokenAndFetchProfile() {\n await this.fetchProfileData();\n }\n\n async fetchProfileData() {\n // avoid multiple requests\n if (this.fetchingProfileData) return;\n\n this.fetchingProfileData = true;\n try {\n const [error, data] = await getUnidyClient().profile.get();\n\n if (error) {\n Flash.error.addMessage(String(error));\n } else {\n Flash.clear(\"error\");\n profileState.configuration = JSON.parse(JSON.stringify(data)) as ProfileRaw;\n profileState.configUpdateSource = \"fetch\";\n profileState.errors = {};\n profileState.data = JSON.parse(JSON.stringify(data)) as ProfileRaw;\n }\n } catch (error) {\n Sentry.captureException(\"Failed to fetch profile data:\", error);\n Flash.error.addMessage(t(\"errors.failed_to_load_profile\"));\n } finally {\n this.fetchingProfileData = false;\n }\n }\n\n @Method()\n async submitProfile() {\n profileState.loading = true;\n\n const { configuration, ...stateWithoutConfig } = profileState;\n\n if (!validateRequiredFieldsUnchanged(stateWithoutConfig.data)) {\n profileState.loading = false;\n return;\n }\n\n const updatedProfileData = buildPayload(stateWithoutConfig.data);\n const [error, data, responseInfo] = await getUnidyClient().profile.update({ payload: updatedProfileData });\n\n if (error) {\n if (data && \"flatErrors\" in data) {\n profileState.errors = data.flatErrors as Record<string, string>;\n this.uProfileError.emit({\n error: \"profile_update_field_errors\",\n details: {\n fieldErrors: profileState.errors,\n httpStatus: responseInfo?.httpStatus,\n responseData: responseInfo?.responseData,\n },\n });\n } else {\n Flash.error.addMessage(String(error));\n this.uProfileError.emit({\n error: \"profile_update_failed\",\n details: {\n httpStatus: responseInfo?.httpStatus,\n responseData: responseInfo?.responseData,\n },\n });\n }\n profileState.loading = false;\n } else {\n profileState.loading = false;\n profileState.configuration = JSON.parse(JSON.stringify(data));\n profileState.configUpdateSource = \"submit\";\n profileState.errors = {};\n Flash.clear(\"error\");\n Flash.success.addMessage(t(\"profile.updated\"));\n this.uProfileSuccess.emit({ message: \"profile_updated_successfully\", payload: data as ProfileRaw });\n }\n }\n\n componentDidLoad() {\n profileOnChange(\"configuration\", (cfg) => {\n profileState.data = cfg as ProfileRaw;\n });\n\n authOnChange(\"token\", (newToken: string | null) => {\n const token = newToken ?? \"\";\n\n if (token) {\n this.fetchProfileData();\n }\n });\n }\n\n render() {\n if (authStore.state.authenticated) {\n return this.fetchingProfileData ? (\n <div>{t(\"loading\")}</div>\n ) : (\n <Host>\n <slot />\n </Host>\n );\n }\n\n return <h2>{t(\"profile.signInToView\")}</h2>;\n }\n}\n","import { t } from \"../../../i18n\";\nimport type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { authState } from \"../../store/auth-store\";\nimport { getParentSigninStep } from \"../helpers\";\n\nexport type AuthButtonFor = \"email\" | \"password\" | \"resetPassword\" | \"single-login\";\n\nfunction getEmailInput(el: HTMLElement) {\n const signinRoot = el.closest(\"u-signin-root\") || el.closest(\"u-signin-step\");\n const emailField = signinRoot?.querySelector(\"u-email-field\");\n return emailField?.querySelector('input[type=\"email\"]') as HTMLInputElement | null;\n}\n\nexport const authContext: SubmitButtonContext<AuthButtonFor> = {\n handleClick: async (event: MouseEvent, el: HTMLElement, _forProp?: AuthButtonFor) => {\n event.preventDefault();\n\n const emailInput = getEmailInput(el);\n if (emailInput && !emailInput.checkValidity()) {\n emailInput.reportValidity();\n return;\n }\n\n await getParentSigninStep(el)?.submit();\n },\n\n isDisabled(forProp?: AuthButtonFor, disabled?: boolean): boolean {\n if (disabled || authState.loading) return true;\n\n if (authState.step === \"email\" && forProp === \"email\") {\n return authState.email === \"\";\n }\n\n if (authState.step === \"single-login\" && forProp === \"single-login\") {\n return authState.email === \"\" || authState.password === \"\";\n }\n\n if (authState.step === \"verification\" && forProp === \"password\") {\n return authState.password === \"\";\n }\n\n if (authState.step === \"reset-password\" && forProp === \"resetPassword\") {\n return !authState.resetPassword.newPassword || !authState.resetPassword.passwordConfirmation;\n }\n\n return false;\n },\n\n isLoading(): boolean {\n return authState.loading;\n },\n\n getButtonText(forProp?: AuthButtonFor, text?: string): string {\n if (text) return text;\n\n switch (authState.step) {\n case \"email\":\n return t(\"buttons.continue\");\n case \"verification\":\n if (forProp === \"password\") {\n return t(\"auth.password.button_text\", { defaultValue: \"Sign In with Password\" });\n }\n return t(\"buttons.submit\");\n case \"reset-password\":\n if (forProp === \"resetPassword\") {\n return t(\"auth.resetPassword.save_new_password\", { defaultValue: \"Set Password\" });\n }\n return t(\"buttons.submit\");\n case \"single-login\":\n if (forProp === \"single-login\") {\n return t(\"auth.single-login.button_text\", { defaultValue: \"Sign In\" });\n }\n return t(\"buttons.submit\");\n default:\n return t(\"buttons.submit\");\n }\n },\n\n shouldRender(forProp?: AuthButtonFor): boolean {\n if (!authState.availableLoginOptions?.password && forProp === \"password\") {\n return false;\n }\n\n if (authState.step === \"email\") {\n return forProp === \"email\";\n }\n\n if (authState.step === \"single-login\") {\n return forProp === \"single-login\";\n }\n\n if (authState.step === \"verification\") {\n return forProp === \"password\" && authState.magicCodeStep !== \"sent\";\n }\n\n if (authState.step === \"reset-password\") {\n return forProp === \"resetPassword\";\n }\n\n return false;\n },\n};\n","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 return false;\n },\n};\n","import type { SubmitButtonContext } from \"../../../shared/components/submit-button/context\";\nimport { state as profileState } from \"../../store/profile-store\";\n\nfunction getParentProfile(el: HTMLElement) {\n return el.closest(\"u-profile\") as HTMLUProfileElement | null;\n}\n\nexport const profileContext: SubmitButtonContext = {\n async handleClick(event: MouseEvent, el: HTMLElement, _forProp?: string) {\n event.preventDefault();\n await getParentProfile(el)?.submitProfile();\n },\n\n isDisabled(_forProp, disabled?: boolean): boolean {\n return disabled || (profileState.errors && Object.keys(profileState.errors).length > 0) || profileState.phoneValid === false;\n },\n\n isLoading(): boolean {\n return profileState.loading;\n },\n};\n","export interface SubmitButtonContext<ForContext = string> {\n init?(): Promise<void>;\n handleClick(event: MouseEvent, el: HTMLElement, forProp?: ForContext): Promise<void>;\n isDisabled(forProp?: ForContext, disabled?: boolean): boolean;\n isLoading(): boolean;\n getButtonText?(forProp?: ForContext, text?: string): string;\n shouldRender?(forProp?: ForContext): boolean;\n}\n\nexport const defaultContext: SubmitButtonContext = {\n async handleClick() {},\n\n isDisabled(_forProp, disabled = false): boolean {\n return disabled || false;\n },\n\n isLoading(): boolean {\n return false;\n },\n};\n","","import { Component, h, Prop } from \"@stencil/core\";\nimport { type AuthButtonFor, authContext } from \"../../../auth/components/submit-button/auth-submit-button\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterButtonFor, newsletterContext } from \"../../../newsletter/components/submit-button/newsletter-submit-button\";\nimport { profileContext } from \"../../../profile/components/submit-button/profile-submit-button\";\nimport { UnidyComponent } from \"../../base/component\";\nimport { HasSlotContent } from \"../../base/has-slot-content\";\nimport { slotFallbackText } from \"../../component-utils\";\nimport { defaultContext, type SubmitButtonContext } from \"./context\";\n\n@Component({\n tag: \"u-submit-button\",\n styleUrl: \"submit-button.css\",\n shadow: false,\n})\nexport class SubmitButton extends UnidyComponent(HasSlotContent) {\n @Prop() for?: AuthButtonFor | NewsletterButtonFor;\n @Prop() text?: string;\n @Prop() disabled = false;\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private context: \"auth\" | \"profile\" | \"newsletter\" = \"auth\";\n private contextModule: SubmitButtonContext = defaultContext;\n\n async componentWillLoad() {\n this.context = this.detectContext();\n\n switch (this.context) {\n case \"auth\":\n this.contextModule = authContext;\n break;\n case \"profile\":\n this.contextModule = profileContext;\n break;\n case \"newsletter\":\n this.contextModule = newsletterContext;\n break;\n default:\n this.contextModule = defaultContext;\n }\n }\n\n private detectContext(): \"auth\" | \"profile\" | \"newsletter\" {\n if (this.element.closest(\"u-signin-root\") || this.element.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.element.closest(\"u-profile\")) return \"profile\";\n\n if (this.element.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n throw new Error(\n \"No context found for submit button. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private handleClick = async (event: MouseEvent) => {\n await this.contextModule.handleClick(event, this.element, this.for);\n };\n\n private isDisabled(): boolean {\n return this.contextModule.isDisabled(this.for, this.disabled);\n }\n\n private isLoading(): boolean {\n return this.contextModule.isLoading();\n }\n\n private getButtonText(): string {\n if (this.contextModule.getButtonText) {\n return this.contextModule.getButtonText(this.for, this.text);\n }\n if (this.text) {\n return this.text;\n }\n\n return t(\"buttons.submit\");\n }\n\n render() {\n if (this.contextModule.shouldRender && !this.contextModule.shouldRender(this.for)) {\n return null;\n }\n\n const buttonClasses = [\n this.componentClassName,\n \"u:flex u:justify-center u:cursor-pointer u:disabled:opacity-50 u:disabled:cursor-not-allowed \",\n ].join(\" \");\n\n const buttonProps: Record<string, unknown> = {\n type: \"submit\",\n part: `${this.context}-submit-button`,\n disabled: this.isDisabled() || this.isLoading(),\n class: buttonClasses,\n onClick: this.handleClick,\n \"aria-live\": \"polite\",\n };\n\n return <button {...buttonProps}>{slotFallbackText(this.getButtonText(), { hasSlot: this.hasSlot, loading: this.isLoading() })}</button>;\n }\n}\n"],"names":["unidyOnChange","profileState","Sentry.captureException","profileOnChange","authOnChange","authState"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-reset-password-button.entry.esm.js","sources":["src/auth/components/reset-pass-button/reset-pass-button.tsx"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"u-reset-password-button.entry.esm.js","sources":["src/auth/components/reset-pass-button/reset-pass-button.tsx"],"sourcesContent":["import { Component, h, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { HasSlotContent } from \"../../../shared/base/has-slot-content\";\nimport { Flash } from \"../../../shared/store/flash-store\";\nimport { Auth } from \"../../auth\";\nimport { authState } from \"../../store/auth-store\";\n\n@Component({\n tag: \"u-reset-password-button\",\n shadow: false,\n})\nexport class ResetPasswordButton extends UnidyComponent(HasSlotContent) {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n\n private handleClick = async () => {\n const authInstance = await Auth.getInstance();\n\n await authInstance.helpers.sendResetPasswordEmail();\n\n if (authState.resetPassword.step === \"sent\") {\n const successMessage = t(\"auth.resetPassword.success_message\", {\n defaultValue: \"Password reset email sent. Please check your inbox.\",\n });\n\n Flash.success.addMessage(successMessage);\n }\n };\n\n private shouldRender(): boolean {\n if ([\"verification\", \"reset-password\"].includes(authState.step)) return true;\n\n if (authState.step === \"single-login\" && authState.sid !== null) return true;\n\n return false;\n }\n\n private getButtonText() {\n if (authState.step === \"verification\" && authState.availableLoginOptions && !authState.availableLoginOptions.password) {\n return t(\"auth.resetPassword.button_text_set\", { defaultValue: \"Set Password\" });\n }\n\n if (authState.step === \"reset-password\") {\n return t(\"auth.resetPassword.button_text_resend\", { defaultValue: \"Resend Password Reset Email\" });\n }\n\n return t(\"auth.resetPassword.button_text_reset\", { defaultValue: \"Reset Password\" });\n }\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n return (\n <button type=\"button\" onClick={this.handleClick} class={this.componentClassName}>\n {this.hasSlot ? <slot /> : this.getButtonText()}\n </button>\n );\n }\n}\n"],"names":["authState"],"mappings":";;;;;;;;;;;AAYa,MAAA,mBAAoB,GAAA,cAAQ,cAAc,CAAC,cAAc,CAAC,CAAA;;;;;IAClC,kBAAkB,GAAG,EAAE;IAElD,WAAW,GAAG,YAAW;AAC/B,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAE7C,QAAA,MAAM,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE;QAEnD,IAAIA,KAAS,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE;AAC3C,YAAA,MAAM,cAAc,GAAG,CAAC,CAAC,oCAAoC,EAAE;AAC7D,gBAAA,YAAY,EAAE,qDAAqD;AACpE,aAAA,CAAC;AAEF,YAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;;AAE5C,KAAC;IAEO,YAAY,GAAA;QAClB,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAACA,KAAS,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;QAE5E,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,IAAIA,KAAS,CAAC,GAAG,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;AAE5E,QAAA,OAAO,KAAK;;IAGN,aAAa,GAAA;AACnB,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,cAAc,IAAIA,KAAS,CAAC,qBAAqB,IAAI,CAACA,KAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YACrH,OAAO,CAAC,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;;AAGlF,QAAA,IAAIA,KAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,OAAO,CAAC,CAAC,uCAAuC,EAAE,EAAE,YAAY,EAAE,6BAA6B,EAAE,CAAC;;QAGpG,OAAO,CAAC,CAAC,sCAAsC,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;;IAEtF,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI;;QAGb,QACE,CAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC5E,EAAA,IAAI,CAAC,OAAO,GAAG,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,IAAI,CAAC,aAAa,EAAE,CACxC;;;;;;"}
|