@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,29 +1,81 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import { format } from "date-fns/format";
|
|
3
|
-
import { de } from "date-fns/locale/de";
|
|
4
|
-
import { enUS } from "date-fns/locale/en-US";
|
|
5
|
-
import { fr } from "date-fns/locale/fr";
|
|
6
|
-
import { nlBE } from "date-fns/locale/nl-BE";
|
|
7
|
-
import { ro } from "date-fns/locale/ro";
|
|
8
3
|
import { getUnidyClient } from "../../../api";
|
|
9
4
|
import { Auth } from "../../../auth";
|
|
5
|
+
import { onChange as authOnChange } from "../../../auth/store/auth-store";
|
|
10
6
|
import { t } from "../../../i18n";
|
|
11
|
-
import { UnidyComponent } from "../../../
|
|
7
|
+
import { UnidyComponent } from "../../../shared/base/component";
|
|
12
8
|
import { unidyState, waitForConfig } from "../../../shared/store/unidy-store";
|
|
13
|
-
import { createPaginationStore } from "../../store/pagination-store";
|
|
14
9
|
import { createSkeletonLoader, replaceTextNodesWithSkeletons } from "./skeleton-helpers";
|
|
15
|
-
const LOCALES = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
const LOCALES = {};
|
|
11
|
+
/**
|
|
12
|
+
* Extracts a nested value from an object using a path string.
|
|
13
|
+
* Supports dot notation for object properties and bracket notation for arrays.
|
|
14
|
+
* Paths must use dot notation throughout, e.g., "metadata.foo.bar.[1]"
|
|
15
|
+
* Examples:
|
|
16
|
+
* - "metadata.foo.bar" -> item.metadata.foo.bar
|
|
17
|
+
* - "metadata.foo.bar.[1]" -> item.metadata.foo.bar[1]
|
|
18
|
+
* - "wallet_export.[0].address" -> item.wallet_export[0].address
|
|
19
|
+
*/
|
|
20
|
+
// biome-ignore lint/suspicious/noExplicitAny: Dynamic nested property access requires any
|
|
21
|
+
function getNestedValue(obj, path) {
|
|
22
|
+
if (!path || !obj)
|
|
23
|
+
return undefined;
|
|
24
|
+
// Split by dots and process each part
|
|
25
|
+
const parts = path.split(".").filter(Boolean);
|
|
26
|
+
let result = obj;
|
|
27
|
+
for (const part of parts) {
|
|
28
|
+
if (result == null)
|
|
29
|
+
return undefined;
|
|
30
|
+
// Check if this part is an array index like "[1]"
|
|
31
|
+
if (part.startsWith("[") && part.endsWith("]")) {
|
|
32
|
+
const indexStr = part.slice(1, -1);
|
|
33
|
+
const index = /^\d+$/.test(indexStr) ? Number.parseInt(indexStr, 10) : indexStr;
|
|
34
|
+
result = result[index];
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
result = result[part];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (typeof result === "object" && result != null) {
|
|
41
|
+
return JSON.stringify(result);
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
async function loadLocales() {
|
|
46
|
+
// TODO: This should be pulled into a shared component
|
|
47
|
+
await Promise.all([
|
|
48
|
+
!LOCALES.en &&
|
|
49
|
+
import("date-fns/locale/en-GB").then((module) => {
|
|
50
|
+
LOCALES.en = module.enGB;
|
|
51
|
+
}),
|
|
52
|
+
!LOCALES.de &&
|
|
53
|
+
import("date-fns/locale/de").then((module) => {
|
|
54
|
+
LOCALES.de = module.de;
|
|
55
|
+
}),
|
|
56
|
+
!LOCALES.fr &&
|
|
57
|
+
import("date-fns/locale/fr").then((module) => {
|
|
58
|
+
LOCALES.fr = module.fr;
|
|
59
|
+
}),
|
|
60
|
+
!LOCALES.nl_be &&
|
|
61
|
+
import("date-fns/locale/nl-BE").then((module) => {
|
|
62
|
+
LOCALES.nl_be = module.nlBE;
|
|
63
|
+
}),
|
|
64
|
+
!LOCALES.ro &&
|
|
65
|
+
import("date-fns/locale/ro").then((module) => {
|
|
66
|
+
LOCALES.ro = module.ro;
|
|
67
|
+
}),
|
|
68
|
+
!LOCALES.sv &&
|
|
69
|
+
import("date-fns/locale/sv").then((module) => {
|
|
70
|
+
LOCALES.sv = module.sv;
|
|
71
|
+
}),
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
export class TicketableList extends UnidyComponent() {
|
|
23
75
|
constructor() {
|
|
24
76
|
super();
|
|
25
77
|
}
|
|
26
|
-
|
|
78
|
+
unsubscribeAuth;
|
|
27
79
|
// TODO: move into a generic store, since we'll have this kind of fetching all over the app (also implement SWR and other things inside of it)
|
|
28
80
|
items = [];
|
|
29
81
|
loading = true;
|
|
@@ -46,7 +98,10 @@ export class TicketableList extends UnidyComponent {
|
|
|
46
98
|
uTicketableListSuccess;
|
|
47
99
|
uTicketableListError;
|
|
48
100
|
async componentWillLoad() {
|
|
49
|
-
|
|
101
|
+
await waitForConfig();
|
|
102
|
+
loadLocales().catch((err) => {
|
|
103
|
+
console.error("[u-ticketable-list] Failed to load locales, falling back to 'en'", err);
|
|
104
|
+
});
|
|
50
105
|
}
|
|
51
106
|
async componentDidLoad() {
|
|
52
107
|
this.logger.trace("start componentDidLoad");
|
|
@@ -60,6 +115,16 @@ export class TicketableList extends UnidyComponent {
|
|
|
60
115
|
else {
|
|
61
116
|
this.logger.debug("user is not authenticated, skipping data load");
|
|
62
117
|
}
|
|
118
|
+
// Listen for auth changes to refresh data when user logs in
|
|
119
|
+
this.unsubscribeAuth = authOnChange("token", (newToken) => {
|
|
120
|
+
if (newToken) {
|
|
121
|
+
this.logger.debug("auth token changed, refreshing data");
|
|
122
|
+
this.loadData();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
disconnectedCallback() {
|
|
127
|
+
this.unsubscribeAuth?.();
|
|
63
128
|
}
|
|
64
129
|
async loadData() {
|
|
65
130
|
this.loading = true;
|
|
@@ -75,6 +140,20 @@ export class TicketableList extends UnidyComponent {
|
|
|
75
140
|
this.uTicketableListError.emit({ error: this.error });
|
|
76
141
|
return;
|
|
77
142
|
}
|
|
143
|
+
// TODO: Add a simple shared way of doing this
|
|
144
|
+
const auth = await Auth.getInstance();
|
|
145
|
+
if (!auth) {
|
|
146
|
+
this.error = "[u-ticketable-list] Auth instance not found";
|
|
147
|
+
this.loading = false;
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// TODO: Handle auth on change THAT SHOULD EXIST ON THE AUTH INSTANCE
|
|
151
|
+
const idToken = await auth.getToken();
|
|
152
|
+
if (typeof idToken !== "string") {
|
|
153
|
+
this.error = "[u-ticketable-list] Failed to get ID token";
|
|
154
|
+
this.loading = false;
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
78
157
|
try {
|
|
79
158
|
const unidyClient = await getUnidyClient();
|
|
80
159
|
// Parse filter string into typed args using URLSearchParams (treats ; as separator)
|
|
@@ -146,9 +225,12 @@ export class TicketableList extends UnidyComponent {
|
|
|
146
225
|
return [attr, "#"];
|
|
147
226
|
}
|
|
148
227
|
let value = attr.value;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
228
|
+
// Find all template strings like {{path}} and replace them with nested values
|
|
229
|
+
const templateRegex = /\{\{([^}]+)\}\}/g;
|
|
230
|
+
value = value.replace(templateRegex, (match, path) => {
|
|
231
|
+
const nestedValue = getNestedValue(item, path.trim());
|
|
232
|
+
return nestedValue != null ? String(nestedValue) : match;
|
|
233
|
+
});
|
|
152
234
|
return [attr, value];
|
|
153
235
|
})) {
|
|
154
236
|
elem.setAttribute(unidyAttr.name.replace("unidy-attr-", ""), newValue);
|
|
@@ -166,18 +248,23 @@ export class TicketableList extends UnidyComponent {
|
|
|
166
248
|
const key = valueEl.getAttribute("name");
|
|
167
249
|
if (!key)
|
|
168
250
|
continue;
|
|
169
|
-
const value = item
|
|
251
|
+
const value = getNestedValue(item, key);
|
|
170
252
|
const formatAttr = valueEl.getAttribute("format");
|
|
171
253
|
const dateFormatAttr = valueEl.getAttribute("date-format");
|
|
172
254
|
let finalValue;
|
|
173
255
|
if (typeof value === "object" && value instanceof Date) {
|
|
174
|
-
finalValue = format(value, dateFormatAttr || "yyyy-MM-dd", { locale: LOCALES[unidyState.locale] ||
|
|
256
|
+
finalValue = format(value, dateFormatAttr || "yyyy-MM-dd", { locale: LOCALES[unidyState.locale] || LOCALES.en });
|
|
175
257
|
}
|
|
176
258
|
else if (typeof value === "number" && key === "price") {
|
|
177
259
|
finalValue = new Intl.NumberFormat(unidyState.locale, { style: "currency", currency: item.currency || "EUR" }).format(value);
|
|
178
260
|
}
|
|
179
261
|
else if (typeof value === "number") {
|
|
180
|
-
|
|
262
|
+
if (Number.isInteger(value)) {
|
|
263
|
+
finalValue = value.toString();
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
finalValue = value.toFixed(2);
|
|
267
|
+
}
|
|
181
268
|
}
|
|
182
269
|
else if (value != null) {
|
|
183
270
|
finalValue = String(value);
|
|
@@ -191,6 +278,58 @@ export class TicketableList extends UnidyComponent {
|
|
|
191
278
|
valueEl.textContent = finalValue;
|
|
192
279
|
}
|
|
193
280
|
}
|
|
281
|
+
// Process ticketable-conditional elements
|
|
282
|
+
// Shows/hides content based on item property values.
|
|
283
|
+
// Example:
|
|
284
|
+
// <ticketable-conditional when="metadata.vip">
|
|
285
|
+
// <span class="vip-badge">VIP</span>
|
|
286
|
+
// </ticketable-conditional>
|
|
287
|
+
// The children are rendered only if the "when" property is truthy.
|
|
288
|
+
// Convert to array to avoid issues when modifying the DOM
|
|
289
|
+
const conditionalElements = Array.from(fragment.querySelectorAll("ticketable-conditional"));
|
|
290
|
+
for (const conditionalEl of conditionalElements) {
|
|
291
|
+
const whenAttr = conditionalEl.getAttribute("when");
|
|
292
|
+
if (!whenAttr) {
|
|
293
|
+
// If no 'when' attribute, remove the element
|
|
294
|
+
conditionalEl.remove();
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
if (isSkeleton) {
|
|
298
|
+
// For skeleton state, remove conditionals
|
|
299
|
+
conditionalEl.remove();
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
// Check if the item property is truthy
|
|
303
|
+
const value = getNestedValue(item, whenAttr);
|
|
304
|
+
const isTruthy = Boolean(value);
|
|
305
|
+
if (isTruthy) {
|
|
306
|
+
// Replace the conditional element with its children
|
|
307
|
+
const parent = conditionalEl.parentNode;
|
|
308
|
+
if (parent) {
|
|
309
|
+
// Move all children before the conditional element
|
|
310
|
+
while (conditionalEl.firstChild) {
|
|
311
|
+
parent.insertBefore(conditionalEl.firstChild, conditionalEl);
|
|
312
|
+
}
|
|
313
|
+
// Remove the conditional element
|
|
314
|
+
parent.removeChild(conditionalEl);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
// Remove the conditional element and its children
|
|
319
|
+
conditionalEl.remove();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
// Set ticketable context on export buttons
|
|
323
|
+
for (const exportEl of fragment.querySelectorAll("u-ticketable-export")) {
|
|
324
|
+
if (item) {
|
|
325
|
+
exportEl.setAttribute("data-ticketable-id", item.id);
|
|
326
|
+
exportEl.setAttribute("data-ticketable-type", this.ticketableType);
|
|
327
|
+
exportEl.setAttribute("exportable", item.exportable_to_wallet ? "true" : "false");
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
exportEl.setAttribute("exportable", "false");
|
|
331
|
+
}
|
|
332
|
+
}
|
|
194
333
|
return fragment;
|
|
195
334
|
}
|
|
196
335
|
componentDidUpdate() {
|
|
@@ -480,7 +619,7 @@ export class TicketableList extends UnidyComponent {
|
|
|
480
619
|
},
|
|
481
620
|
"complexType": {
|
|
482
621
|
"original": "{\n ticketableType: \"ticket\" | \"subscription\";\n items: Subscription[] | Ticket[];\n paginationMeta: PaginationMeta | null;\n }",
|
|
483
|
-
"resolved": "{ ticketableType: \"subscription\" | \"ticket\"; items: { id: string; title: string; text: string; state: string; reference: string; created_at: Date; updated_at: Date; price: number; user_id: string; subscription_category_id: string; payment_frequency?: string; metadata?: Record<string, unknown>; wallet_export?: Record<string, unknown>; payment_state?: string; currency?: string; button_cta_url?: string; starts_at?: Date; ends_at?: Date; next_payment_at?: Date; }[] | { id: string; title: string; reference: string; state: string; starts_at: Date; created_at: Date; updated_at: Date; price: number; user_id: string; ticket_category_id: string; text?: string; metadata?: Record<string, unknown>; wallet_export?: Record<string, unknown>; payment_state?: string; button_cta_url?: string; info_banner?: string; seating?: string; venue?: string; currency?: string; ends_at?: Date; }[]; paginationMeta: { count: number; page: number; limit: number; last: number; prev?: number; next?: number; }; }",
|
|
622
|
+
"resolved": "{ ticketableType: \"subscription\" | \"ticket\"; items: { id: string; title: string; text: string; exportable_to_wallet: boolean; state: string; reference: string; created_at: Date; updated_at: Date; price: number; user_id: string; subscription_category_id: string; payment_frequency?: string; metadata?: Record<string, unknown>; wallet_export?: Record<string, unknown>; payment_state?: string; currency?: string; button_cta_url?: string; starts_at?: Date; ends_at?: Date; next_payment_at?: Date; }[] | { id: string; title: string; reference: string; exportable_to_wallet: boolean; state: string; starts_at: Date; created_at: Date; updated_at: Date; price: number; user_id: string; ticket_category_id: string; text?: string; metadata?: Record<string, unknown>; wallet_export?: Record<string, unknown>; payment_state?: string; button_cta_url?: string; info_banner?: string; seating?: string; venue?: string; currency?: string; ends_at?: Date; }[]; paginationMeta: { count: number; page: number; limit: number; last: number; prev?: number; next?: number; }; }",
|
|
484
623
|
"references": {
|
|
485
624
|
"Subscription": {
|
|
486
625
|
"location": "import",
|
|
@@ -516,7 +655,6 @@ export class TicketableList extends UnidyComponent {
|
|
|
516
655
|
}
|
|
517
656
|
}];
|
|
518
657
|
}
|
|
519
|
-
static get elementRef() { return "element"; }
|
|
520
658
|
static get watchers() {
|
|
521
659
|
return [{
|
|
522
660
|
"propName": "page",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticketable-list.js","sourceRoot":"","sources":["../../../../src/ticketable/components/ticketable-list/ticketable-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, h, Prop, State, Watch } from \"@stencil/core\";\nimport type { Locale } from \"date-fns\";\nimport { format } from \"date-fns/format\";\nimport { de } from \"date-fns/locale/de\";\nimport { enUS } from \"date-fns/locale/en-US\";\nimport { fr } from \"date-fns/locale/fr\";\nimport { nlBE } from \"date-fns/locale/nl-BE\";\nimport { ro } from \"date-fns/locale/ro\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { getUnidyClient } from \"../../../api\";\nimport { Auth } from \"../../../auth\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../logger\";\nimport { unidyState, waitForConfig } from \"../../../shared/store/unidy-store\";\nimport type { Subscription } from \"../../api/subscriptions\";\nimport type { Ticket } from \"../../api/tickets\";\nimport { createPaginationStore, type PaginationStore } from \"../../store/pagination-store\";\nimport { createSkeletonLoader, replaceTextNodesWithSkeletons } from \"./skeleton-helpers\";\n\nconst LOCALES: Record<string, Locale> = {\n \"en-US\": enUS,\n de: de,\n fr: fr,\n \"nl-BE\": nlBE,\n ro: ro,\n};\n\n@Component({ tag: \"u-ticketable-list\", shadow: false })\nexport class TicketableList extends UnidyComponent {\n @Element() element: HTMLElement;\n\n // TODO: move into a generic store, since we'll have this kind of fetching all over the app (also implement SWR and other things inside of it)\n @State() items: Subscription[] | Ticket[] = [];\n @State() loading = true;\n @State() error: string | null = null;\n @Prop() paginationMeta: PaginationMeta | null = null;\n\n @Prop() target?: string;\n @Prop() containerClass?: string;\n\n // TODO: add a component that can override this\n @Prop({ mutable: true }) filter = \"\";\n\n // TODO: Add pagination component to override all of this\n @Prop({ mutable: true }) limit = 10;\n @Prop({ mutable: true }) page = 1;\n\n @Prop() skeletonCount?: number;\n @Prop() skeletonAllText?: boolean = false;\n @Prop() ticketableType!: \"ticket\" | \"subscription\";\n\n @Watch(\"page\")\n @Watch(\"limit\")\n @Watch(\"filter\")\n async fetchData() {\n await this.loadData();\n }\n\n @Prop() store: PaginationStore | null = null;\n\n @Event() uTicketableListSuccess!: EventEmitter<{\n ticketableType: \"ticket\" | \"subscription\";\n items: Subscription[] | Ticket[];\n paginationMeta: PaginationMeta | null;\n }>;\n\n @Event() uTicketableListError!: EventEmitter<{\n ticketableType?: \"ticket\" | \"subscription\";\n error: string;\n }>;\n\n async componentWillLoad() {\n this.store = createPaginationStore();\n }\n\n async componentDidLoad() {\n this.logger.trace(\"start componentDidLoad\");\n await waitForConfig();\n this.logger.trace(\"UnidyConfig loaded, start to load data\");\n\n const authInstance = await Auth.getInstance();\n\n if (await authInstance.isAuthenticated()) {\n await this.loadData();\n this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);\n } else {\n this.logger.debug(\"user is not authenticated, skipping data load\");\n }\n }\n\n private async loadData() {\n this.loading = true;\n\n if (!this.ticketableType) {\n this.error = \"[u-ticketable-list] ticketable-type attribute is required\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n if (this.ticketableType !== \"ticket\" && this.ticketableType !== \"subscription\") {\n this.error = `[u-ticketable-list] Invalid ticketable-type: ${this.ticketableType}. Must be 'ticket' or 'subscription'`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n try {\n const unidyClient = await getUnidyClient();\n\n // Parse filter string into typed args using URLSearchParams (treats ; as separator)\n const filterArgs: Record<string, string> = Object.fromEntries(\n new URLSearchParams((this.filter || \"\").replace(/;/g, \"&\")).entries(),\n );\n\n // Common args for both services\n const commonArgs = {\n page: this.page,\n perPage: this.limit,\n state: filterArgs.state,\n paymentState: filterArgs.payment_state,\n orderBy: filterArgs.order_by as \"starts_at\" | \"ends_at\" | \"reference\" | \"created_at\" | undefined,\n orderDirection: filterArgs.order_direction as \"asc\" | \"desc\" | undefined,\n serviceId: filterArgs.service_id ? Number(filterArgs.service_id) : undefined,\n };\n\n // Call the appropriate service with type-safe args\n const [error, data] =\n this.ticketableType === \"ticket\"\n ? await unidyClient.tickets.list({\n ...commonArgs,\n ticketCategoryId: filterArgs.ticket_category_id,\n })\n : await unidyClient.subscriptions.list({\n ...commonArgs,\n subscriptionCategoryId: filterArgs.subscription_category_id,\n });\n\n if (error !== null || !data || !(\"results\" in data)) {\n this.error = this.getTranslatedError(error);\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n this.items = data.results;\n this.paginationMeta = data.meta;\n\n // Update the store with pagination data\n if (this.store) {\n this.store.state.paginationMeta = data.meta;\n }\n\n this.loading = false;\n\n this.uTicketableListSuccess.emit({ ticketableType: this.ticketableType, items: this.items, paginationMeta: this.paginationMeta });\n } catch (err) {\n this.error = err instanceof Error ? err.message : \"[u-ticketable-list] An error occurred\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n }\n }\n\n private getTranslatedError(error: string | null): string {\n if (!error) {\n return t(\"ticketable.errors.fetch_failed\", { defaultValue: \"Failed to load data\" });\n }\n\n const errorMessages: Record<string, string> = {\n connection_failed: t(\"errors.connection_failed\", { defaultValue: \"Connection failed. Please check your internet connection.\" }),\n schema_validation_error: t(\"errors.schema_validation\", { defaultValue: \"Invalid data received from server.\" }),\n internal_error: t(\"errors.internal\", { defaultValue: \"An internal error occurred.\" }),\n missing_id_token: t(\"errors.unauthorized\", { defaultValue: \"You must be logged in to view this content.\" }),\n unauthorized: t(\"errors.unauthorized\", { defaultValue: \"You are not authorized to view this content.\" }),\n server_error: t(\"errors.server\", { defaultValue: \"A server error occurred. Please try again later.\" }),\n invalid_response: t(\"errors.invalid_response\", { defaultValue: \"Invalid response from server.\" }),\n };\n\n return errorMessages[error] || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred.\" });\n }\n\n private renderFragment(template: HTMLTemplateElement, item?: Subscription | Ticket): DocumentFragment {\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n const isSkeleton = !item;\n\n for (const elem of fragment.querySelectorAll(\"[unidy-attr]\")) {\n for (const [unidyAttr, newValue] of Array.from(elem.attributes)\n .filter((attr) => attr.name.startsWith(\"unidy-attr-\"))\n .map((attr) => {\n if (isSkeleton) {\n return [attr, \"#\"] as const;\n }\n\n let value = attr.value;\n for (const [key, val] of Object.entries(item)) {\n value = value.replaceAll(`{{${key}}}`, val as string);\n }\n\n return [attr, value] as const;\n })) {\n elem.setAttribute(unidyAttr.name.replace(\"unidy-attr-\", \"\"), newValue);\n elem.removeAttribute(unidyAttr.name);\n }\n }\n\n if (isSkeleton && this.skeletonAllText) {\n replaceTextNodesWithSkeletons(fragment);\n }\n\n for (const valueEl of fragment.querySelectorAll(\"ticketable-value\")) {\n if (isSkeleton) {\n valueEl.innerHTML = createSkeletonLoader(\"Sample Text\");\n } else {\n const key = valueEl.getAttribute(\"name\");\n if (!key) continue;\n const value = item[key];\n const formatAttr = valueEl.getAttribute(\"format\");\n const dateFormatAttr = valueEl.getAttribute(\"date-format\");\n\n let finalValue: string;\n\n if (typeof value === \"object\" && value instanceof Date) {\n finalValue = format(value, dateFormatAttr || \"yyyy-MM-dd\", { locale: LOCALES[unidyState.locale] || de });\n } else if (typeof value === \"number\" && key === \"price\") {\n finalValue = new Intl.NumberFormat(unidyState.locale, { style: \"currency\", currency: item.currency || \"EUR\" }).format(value);\n } else if (typeof value === \"number\") {\n finalValue = value.toFixed(2);\n } else if (value != null) {\n finalValue = String(value);\n } else {\n finalValue = valueEl.getAttribute(\"default\") || \"\";\n }\n\n if (formatAttr) {\n finalValue = formatAttr.replaceAll(\"{{value}}\", finalValue);\n }\n\n valueEl.textContent = finalValue;\n }\n }\n\n return fragment;\n }\n\n componentDidUpdate() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n componentDidRender() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n private renderToTarget() {\n const template = this.element.querySelector(\"template\");\n if (!template) return;\n\n const targetElement = document.querySelector(this.target);\n if (!targetElement) {\n this.logger.warn(\"targetElement not found\");\n return;\n }\n\n // Clear existing content\n targetElement.innerHTML = \"\";\n this.renderContent(targetElement, template);\n }\n\n private renderContent(target: Element, template: HTMLTemplateElement) {\n if (this.loading) {\n // Use skeletonCount if provided, otherwise use limit\n const skeletonCount = this.skeletonCount || this.limit;\n for (const _item of Array.from({ length: skeletonCount })) {\n target.appendChild(this.renderFragment(template));\n }\n } else if (!this.error) {\n for (const item of this.items) {\n target.appendChild(this.renderFragment(template, item));\n }\n } else {\n this.logger.error(`failed to load content: ${this.error}`);\n target.innerHTML = `<h1>${t(\"errors.prefix\")} ${this.error}</h1>`;\n }\n }\n\n render() {\n if (this.error) {\n this.logger.error(`can't render content: ${this.error}`);\n return (\n <h1>\n {t(\"errors.prefix\")} {this.error}\n </h1>\n );\n }\n\n const template = this.element.querySelector(\"template\");\n if (!template) {\n this.logger.error(\"template not found\");\n return <h1>No template found - fix config</h1>;\n }\n\n if (this.target) {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n\n const element = document.createElement(\"div\");\n this.renderContent(element, template);\n\n return (\n <Host>\n <div class={this.containerClass} innerHTML={element.innerHTML} />\n <slot name=\"pagination\" />\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ticketable-list.js","sourceRoot":"","sources":["../../../../src/ticketable/components/ticketable-list/ticketable-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, type EventEmitter, Host, h, Prop, State, Watch } from \"@stencil/core\";\nimport type { Locale } from \"date-fns\";\nimport { format } from \"date-fns/format\";\nimport type { PaginationMeta } from \"../../../api\";\nimport { getUnidyClient } from \"../../../api\";\nimport { Auth } from \"../../../auth\";\nimport { onChange as authOnChange } from \"../../../auth/store/auth-store\";\nimport { t } from \"../../../i18n\";\nimport { UnidyComponent } from \"../../../shared/base/component\";\nimport { unidyState, waitForConfig } from \"../../../shared/store/unidy-store\";\nimport type { Subscription } from \"../../api/subscriptions\";\nimport type { Ticket } from \"../../api/tickets\";\nimport type { PaginationStore } from \"../../store/pagination-store\";\nimport { createSkeletonLoader, replaceTextNodesWithSkeletons } from \"./skeleton-helpers\";\n\nconst LOCALES: Record<string, Locale> = {};\n\n/**\n * Extracts a nested value from an object using a path string.\n * Supports dot notation for object properties and bracket notation for arrays.\n * Paths must use dot notation throughout, e.g., \"metadata.foo.bar.[1]\"\n * Examples:\n * - \"metadata.foo.bar\" -> item.metadata.foo.bar\n * - \"metadata.foo.bar.[1]\" -> item.metadata.foo.bar[1]\n * - \"wallet_export.[0].address\" -> item.wallet_export[0].address\n */\n// biome-ignore lint/suspicious/noExplicitAny: Dynamic nested property access requires any\nfunction getNestedValue(obj: any, path: string): any {\n if (!path || !obj) return undefined;\n\n // Split by dots and process each part\n const parts = path.split(\".\").filter(Boolean);\n let result = obj;\n\n for (const part of parts) {\n if (result == null) return undefined;\n\n // Check if this part is an array index like \"[1]\"\n if (part.startsWith(\"[\") && part.endsWith(\"]\")) {\n const indexStr = part.slice(1, -1);\n const index = /^\\d+$/.test(indexStr) ? Number.parseInt(indexStr, 10) : indexStr;\n result = result[index];\n } else {\n result = result[part];\n }\n }\n\n if (typeof result === \"object\" && result != null) {\n return JSON.stringify(result);\n }\n\n return result;\n}\n\nasync function loadLocales() {\n // TODO: This should be pulled into a shared component\n await Promise.all([\n !LOCALES.en &&\n import(\"date-fns/locale/en-GB\").then((module) => {\n LOCALES.en = module.enGB;\n }),\n !LOCALES.de &&\n import(\"date-fns/locale/de\").then((module) => {\n LOCALES.de = module.de;\n }),\n !LOCALES.fr &&\n import(\"date-fns/locale/fr\").then((module) => {\n LOCALES.fr = module.fr;\n }),\n !LOCALES.nl_be &&\n import(\"date-fns/locale/nl-BE\").then((module) => {\n LOCALES.nl_be = module.nlBE;\n }),\n !LOCALES.ro &&\n import(\"date-fns/locale/ro\").then((module) => {\n LOCALES.ro = module.ro;\n }),\n !LOCALES.sv &&\n import(\"date-fns/locale/sv\").then((module) => {\n LOCALES.sv = module.sv;\n }),\n ]);\n}\n\n@Component({ tag: \"u-ticketable-list\", shadow: false })\nexport class TicketableList extends UnidyComponent() {\n private unsubscribeAuth?: () => void;\n\n // TODO: move into a generic store, since we'll have this kind of fetching all over the app (also implement SWR and other things inside of it)\n @State() items: Subscription[] | Ticket[] = [];\n @State() loading = true;\n @State() error: string | null = null;\n @Prop() paginationMeta: PaginationMeta | null = null;\n\n @Prop() target?: string;\n @Prop() containerClass?: string;\n\n // TODO: add a component that can override this\n @Prop({ mutable: true }) filter = \"\";\n\n // TODO: Add pagination component to override all of this\n @Prop({ mutable: true }) limit = 10;\n @Prop({ mutable: true }) page = 1;\n\n @Prop() skeletonCount?: number;\n @Prop() skeletonAllText?: boolean = false;\n @Prop() ticketableType!: \"ticket\" | \"subscription\";\n\n @Watch(\"page\")\n @Watch(\"limit\")\n @Watch(\"filter\")\n async fetchData() {\n await this.loadData();\n }\n\n @Prop() store: PaginationStore | null = null;\n\n @Event() uTicketableListSuccess!: EventEmitter<{\n ticketableType: \"ticket\" | \"subscription\";\n items: Subscription[] | Ticket[];\n paginationMeta: PaginationMeta | null;\n }>;\n\n @Event() uTicketableListError!: EventEmitter<{\n ticketableType?: \"ticket\" | \"subscription\";\n error: string;\n }>;\n\n async componentWillLoad() {\n await waitForConfig();\n loadLocales().catch((err) => {\n console.error(\"[u-ticketable-list] Failed to load locales, falling back to 'en'\", err);\n });\n }\n\n async componentDidLoad() {\n this.logger.trace(\"start componentDidLoad\");\n await waitForConfig();\n this.logger.trace(\"UnidyConfig loaded, start to load data\");\n\n const authInstance = await Auth.getInstance();\n\n if (await authInstance.isAuthenticated()) {\n await this.loadData();\n this.logger.debug(`data loaded, items: ${this.items}, paginationMeta: ${this.paginationMeta}`);\n } else {\n this.logger.debug(\"user is not authenticated, skipping data load\");\n }\n\n // Listen for auth changes to refresh data when user logs in\n this.unsubscribeAuth = authOnChange(\"token\", (newToken: string | null) => {\n if (newToken) {\n this.logger.debug(\"auth token changed, refreshing data\");\n this.loadData();\n }\n });\n }\n\n disconnectedCallback() {\n this.unsubscribeAuth?.();\n }\n\n private async loadData() {\n this.loading = true;\n\n if (!this.ticketableType) {\n this.error = \"[u-ticketable-list] ticketable-type attribute is required\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n if (this.ticketableType !== \"ticket\" && this.ticketableType !== \"subscription\") {\n this.error = `[u-ticketable-list] Invalid ticketable-type: ${this.ticketableType}. Must be 'ticket' or 'subscription'`;\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n // TODO: Add a simple shared way of doing this\n const auth = await Auth.getInstance();\n if (!auth) {\n this.error = \"[u-ticketable-list] Auth instance not found\";\n this.loading = false;\n return;\n }\n\n // TODO: Handle auth on change THAT SHOULD EXIST ON THE AUTH INSTANCE\n\n const idToken = await auth.getToken();\n if (typeof idToken !== \"string\") {\n this.error = \"[u-ticketable-list] Failed to get ID token\";\n this.loading = false;\n return;\n }\n\n try {\n const unidyClient = await getUnidyClient();\n\n // Parse filter string into typed args using URLSearchParams (treats ; as separator)\n const filterArgs: Record<string, string> = Object.fromEntries(new URLSearchParams((this.filter || \"\").replace(/;/g, \"&\")).entries());\n\n // Common args for both services\n const commonArgs = {\n page: this.page,\n perPage: this.limit,\n state: filterArgs.state,\n paymentState: filterArgs.payment_state,\n orderBy: filterArgs.order_by as \"starts_at\" | \"ends_at\" | \"reference\" | \"created_at\" | undefined,\n orderDirection: filterArgs.order_direction as \"asc\" | \"desc\" | undefined,\n serviceId: filterArgs.service_id ? Number(filterArgs.service_id) : undefined,\n };\n\n // Call the appropriate service with type-safe args\n const [error, data] =\n this.ticketableType === \"ticket\"\n ? await unidyClient.tickets.list({\n ...commonArgs,\n ticketCategoryId: filterArgs.ticket_category_id,\n })\n : await unidyClient.subscriptions.list({\n ...commonArgs,\n subscriptionCategoryId: filterArgs.subscription_category_id,\n });\n\n if (error !== null || !data || !(\"results\" in data)) {\n this.error = this.getTranslatedError(error);\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n return;\n }\n\n this.items = data.results;\n this.paginationMeta = data.meta;\n\n // Update the store with pagination data\n if (this.store) {\n this.store.state.paginationMeta = data.meta;\n }\n\n this.loading = false;\n\n this.uTicketableListSuccess.emit({ ticketableType: this.ticketableType, items: this.items, paginationMeta: this.paginationMeta });\n } catch (err) {\n this.error = err instanceof Error ? err.message : \"[u-ticketable-list] An error occurred\";\n this.loading = false;\n this.uTicketableListError.emit({ error: this.error });\n }\n }\n\n private getTranslatedError(error: string | null): string {\n if (!error) {\n return t(\"ticketable.errors.fetch_failed\", { defaultValue: \"Failed to load data\" });\n }\n\n const errorMessages: Record<string, string> = {\n connection_failed: t(\"errors.connection_failed\", { defaultValue: \"Connection failed. Please check your internet connection.\" }),\n schema_validation_error: t(\"errors.schema_validation\", { defaultValue: \"Invalid data received from server.\" }),\n internal_error: t(\"errors.internal\", { defaultValue: \"An internal error occurred.\" }),\n missing_id_token: t(\"errors.unauthorized\", { defaultValue: \"You must be logged in to view this content.\" }),\n unauthorized: t(\"errors.unauthorized\", { defaultValue: \"You are not authorized to view this content.\" }),\n server_error: t(\"errors.server\", { defaultValue: \"A server error occurred. Please try again later.\" }),\n invalid_response: t(\"errors.invalid_response\", { defaultValue: \"Invalid response from server.\" }),\n };\n\n return errorMessages[error] || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred.\" });\n }\n\n private renderFragment(template: HTMLTemplateElement, item?: Subscription | Ticket): DocumentFragment {\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n const isSkeleton = !item;\n\n for (const elem of fragment.querySelectorAll(\"[unidy-attr]\")) {\n for (const [unidyAttr, newValue] of Array.from(elem.attributes)\n .filter((attr) => attr.name.startsWith(\"unidy-attr-\"))\n .map((attr) => {\n if (isSkeleton) {\n return [attr, \"#\"] as const;\n }\n\n let value = attr.value;\n // Find all template strings like {{path}} and replace them with nested values\n const templateRegex = /\\{\\{([^}]+)\\}\\}/g;\n value = value.replace(templateRegex, (match, path) => {\n const nestedValue = getNestedValue(item, path.trim());\n return nestedValue != null ? String(nestedValue) : match;\n });\n\n return [attr, value] as const;\n })) {\n elem.setAttribute(unidyAttr.name.replace(\"unidy-attr-\", \"\"), newValue);\n elem.removeAttribute(unidyAttr.name);\n }\n }\n\n if (isSkeleton && this.skeletonAllText) {\n replaceTextNodesWithSkeletons(fragment);\n }\n\n for (const valueEl of fragment.querySelectorAll(\"ticketable-value\")) {\n if (isSkeleton) {\n valueEl.innerHTML = createSkeletonLoader(\"Sample Text\");\n } else {\n const key = valueEl.getAttribute(\"name\");\n if (!key) continue;\n const value = getNestedValue(item, key);\n const formatAttr = valueEl.getAttribute(\"format\");\n const dateFormatAttr = valueEl.getAttribute(\"date-format\");\n\n let finalValue: string;\n\n if (typeof value === \"object\" && value instanceof Date) {\n finalValue = format(value, dateFormatAttr || \"yyyy-MM-dd\", { locale: LOCALES[unidyState.locale] || LOCALES.en });\n } else if (typeof value === \"number\" && key === \"price\") {\n finalValue = new Intl.NumberFormat(unidyState.locale, { style: \"currency\", currency: item.currency || \"EUR\" }).format(value);\n } else if (typeof value === \"number\") {\n if (Number.isInteger(value)) {\n finalValue = value.toString();\n } else {\n finalValue = value.toFixed(2);\n }\n } else if (value != null) {\n finalValue = String(value);\n } else {\n finalValue = valueEl.getAttribute(\"default\") || \"\";\n }\n\n if (formatAttr) {\n finalValue = formatAttr.replaceAll(\"{{value}}\", finalValue);\n }\n\n valueEl.textContent = finalValue;\n }\n }\n\n // Process ticketable-conditional elements\n // Shows/hides content based on item property values.\n // Example:\n // <ticketable-conditional when=\"metadata.vip\">\n // <span class=\"vip-badge\">VIP</span>\n // </ticketable-conditional>\n // The children are rendered only if the \"when\" property is truthy.\n // Convert to array to avoid issues when modifying the DOM\n const conditionalElements = Array.from(fragment.querySelectorAll(\"ticketable-conditional\"));\n for (const conditionalEl of conditionalElements) {\n const whenAttr = conditionalEl.getAttribute(\"when\");\n if (!whenAttr) {\n // If no 'when' attribute, remove the element\n conditionalEl.remove();\n continue;\n }\n\n if (isSkeleton) {\n // For skeleton state, remove conditionals\n conditionalEl.remove();\n continue;\n }\n\n // Check if the item property is truthy\n const value = getNestedValue(item, whenAttr);\n const isTruthy = Boolean(value);\n\n if (isTruthy) {\n // Replace the conditional element with its children\n const parent = conditionalEl.parentNode;\n if (parent) {\n // Move all children before the conditional element\n while (conditionalEl.firstChild) {\n parent.insertBefore(conditionalEl.firstChild, conditionalEl);\n }\n // Remove the conditional element\n parent.removeChild(conditionalEl);\n }\n } else {\n // Remove the conditional element and its children\n conditionalEl.remove();\n }\n }\n\n // Set ticketable context on export buttons\n for (const exportEl of fragment.querySelectorAll(\"u-ticketable-export\")) {\n if (item) {\n exportEl.setAttribute(\"data-ticketable-id\", item.id);\n exportEl.setAttribute(\"data-ticketable-type\", this.ticketableType);\n exportEl.setAttribute(\"exportable\", item.exportable_to_wallet ? \"true\" : \"false\");\n } else {\n exportEl.setAttribute(\"exportable\", \"false\");\n }\n }\n\n return fragment;\n }\n\n componentDidUpdate() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n componentDidRender() {\n if (this.target) {\n requestAnimationFrame(() => this.renderToTarget());\n }\n }\n\n private renderToTarget() {\n const template = this.element.querySelector(\"template\");\n if (!template) return;\n\n const targetElement = document.querySelector(this.target);\n if (!targetElement) {\n this.logger.warn(\"targetElement not found\");\n return;\n }\n\n // Clear existing content\n targetElement.innerHTML = \"\";\n this.renderContent(targetElement, template);\n }\n\n private renderContent(target: Element, template: HTMLTemplateElement) {\n if (this.loading) {\n // Use skeletonCount if provided, otherwise use limit\n const skeletonCount = this.skeletonCount || this.limit;\n for (const _item of Array.from({ length: skeletonCount })) {\n target.appendChild(this.renderFragment(template));\n }\n } else if (!this.error) {\n for (const item of this.items) {\n target.appendChild(this.renderFragment(template, item));\n }\n } else {\n this.logger.error(`failed to load content: ${this.error}`);\n target.innerHTML = `<h1>${t(\"errors.prefix\")} ${this.error}</h1>`;\n }\n }\n\n render() {\n if (this.error) {\n this.logger.error(`can't render content: ${this.error}`);\n return (\n <h1>\n {t(\"errors.prefix\")} {this.error}\n </h1>\n );\n }\n\n const template = this.element.querySelector(\"template\");\n if (!template) {\n this.logger.error(\"template not found\");\n return <h1>No template found - fix config</h1>;\n }\n\n if (this.target) {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n\n const element = document.createElement(\"div\");\n this.renderContent(element, template);\n\n return (\n <Host>\n <div class={this.containerClass} innerHTML={element.innerHTML} />\n <slot name=\"pagination\" />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* DO NOT use this file to export your components. Instead, use the recommended approaches
|
|
8
8
|
* to consume components of this package as outlined in the `README.md`.
|
|
9
9
|
*/
|
|
10
|
+
export * from "./api/schemas";
|
|
10
11
|
export * from "./api/subscriptions";
|
|
11
12
|
export * from "./api/tickets";
|
|
12
13
|
export * from "./store/pagination-store";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ticketable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC","sourcesContent":["/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\nexport * from \"./api/subscriptions\";\nexport * from \"./api/tickets\";\nexport * from \"./store/pagination-store\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ticketable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC","sourcesContent":["/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\nexport * from \"./api/schemas\";\nexport * from \"./api/subscriptions\";\nexport * from \"./api/tickets\";\nexport * from \"./store/pagination-store\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function getDefaultExportFromCjs (x) {
|
|
2
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export { getDefaultExportFromCjs as g };
|
|
6
|
+
//# sourceMappingURL=_commonjsHelpers.js.map
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=_commonjsHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"_commonjsHelpers.js","mappings":";;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -1,39 +1,36 @@
|
|
|
1
|
+
import { h, Fragment } from '@stencil/core/internal/client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* IMPORTANT: (for shadow: false components)
|
|
6
|
-
* You MUST call this in `componentWillLoad()` and cache the result in an instance property.
|
|
7
|
-
* After the first render, `element.childNodes` will contain both user-provided slot content
|
|
8
|
-
* AND the component's rendered internal elements (like <button>), causing false positives.
|
|
4
|
+
* Returns slot fallback content with proper loading handling for shadow: false components.
|
|
5
|
+
* When there's slot content, we must always render the <slot /> element to capture it,
|
|
6
|
+
* otherwise the slotted content will be visible even during loading state.
|
|
9
7
|
*
|
|
10
|
-
*
|
|
8
|
+
* @param fallbackText - The default text to display when there's no slot content
|
|
9
|
+
* @param options - Options object containing hasSlot and loading state
|
|
10
|
+
* @returns JSX content for the slot fallback
|
|
11
11
|
*
|
|
12
|
-
* @
|
|
13
|
-
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* render() {
|
|
15
|
+
* return (
|
|
16
|
+
* <button>
|
|
17
|
+
* {slotFallbackText(t("buttons.submit"), { hasSlot: this.hasSlot, loading: this.isLoading() })}
|
|
18
|
+
* </button>
|
|
19
|
+
* );
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
14
22
|
*/
|
|
15
|
-
function
|
|
16
|
-
if (
|
|
17
|
-
return
|
|
18
|
-
for (const child of Array.from(element.childNodes)) {
|
|
19
|
-
if (child.nodeType === Node.ELEMENT_NODE)
|
|
20
|
-
return true;
|
|
21
|
-
if (child.nodeType === Node.TEXT_NODE && child.textContent?.trim())
|
|
22
|
-
return true;
|
|
23
|
+
function slotFallbackText(fallbackText, { hasSlot, loading = false }) {
|
|
24
|
+
if (hasSlot) {
|
|
25
|
+
return (h(Fragment, null, loading && h("u-spinner", { key: "spinner" }), h("span", { key: "slot", style: { display: loading ? "none" : "contents" } }, h("slot", null))));
|
|
23
26
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function clearUrlParam(param) {
|
|
27
|
-
const url = new URL(window.location.href);
|
|
28
|
-
const value = url.searchParams.get(param);
|
|
29
|
-
if (value) {
|
|
30
|
-
url.searchParams.delete(param);
|
|
31
|
-
window.history.replaceState(null, "", url.toString());
|
|
27
|
+
if (loading) {
|
|
28
|
+
return h("u-spinner", null);
|
|
32
29
|
}
|
|
33
|
-
return
|
|
30
|
+
return fallbackText;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
export {
|
|
33
|
+
export { slotFallbackText as s };
|
|
37
34
|
//# sourceMappingURL=component-utils.js.map
|
|
38
35
|
|
|
39
36
|
//# sourceMappingURL=component-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"component-utils.js","mappings":"
|
|
1
|
+
{"file":"component-utils.js","mappings":";;AAEA;;;;;;;;;;;;;;;;;;;AAmBG;AACG,SAAU,gBAAgB,CAAC,YAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,EAA2C,EAAA;IAC1H,IAAI,OAAO,EAAE;QACX,QACE,EAAC,QAAQ,EAAA,IAAA,EACN,OAAO,IAAI,CAAA,CAAA,WAAA,EAAA,EAAW,GAAG,EAAC,SAAS,EAAG,CAAA,EACvC,CAAA,CAAA,MAAA,EAAA,EAAM,GAAG,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,EAAE,EAAA,EAChE,CAAQ,CAAA,MAAA,EAAA,IAAA,CAAA,CACH,CACE;;IAIf,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,oBAAa;;AAGtB,IAAA,OAAO,YAAY;AACrB;;;;","names":[],"sources":["src/shared/component-utils.tsx"],"sourcesContent":["import { Fragment, h } from \"@stencil/core\";\n\n/**\n * Returns slot fallback content with proper loading handling for shadow: false components.\n * When there's slot content, we must always render the <slot /> element to capture it,\n * otherwise the slotted content will be visible even during loading state.\n *\n * @param fallbackText - The default text to display when there's no slot content\n * @param options - Options object containing hasSlot and loading state\n * @returns JSX content for the slot fallback\n *\n * @example\n * ```tsx\n * render() {\n * return (\n * <button>\n * {slotFallbackText(t(\"buttons.submit\"), { hasSlot: this.hasSlot, loading: this.isLoading() })}\n * </button>\n * );\n * }\n * ```\n */\nexport function slotFallbackText(fallbackText: string, { hasSlot, loading = false }: { hasSlot: boolean; loading?: boolean }) {\n if (hasSlot) {\n return (\n <Fragment>\n {loading && <u-spinner key=\"spinner\" />}\n <span key=\"slot\" style={{ display: loading ? \"none\" : \"contents\" }}>\n <slot />\n </span>\n </Fragment>\n );\n }\n\n if (loading) {\n return <u-spinner />;\n }\n\n return fallbackText;\n}\n"],"version":3}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Mixin, getElement } from '@stencil/core/internal/client';
|
|
2
|
+
import { c as createLogger } from './logger.js';
|
|
3
|
+
|
|
4
|
+
const loggerFactory = (Base) => {
|
|
5
|
+
class LoggerMixin extends Base {
|
|
6
|
+
/** @internal */
|
|
7
|
+
__logger = null;
|
|
8
|
+
get logger() {
|
|
9
|
+
if (!this.__logger) {
|
|
10
|
+
this.__logger = createLogger(this.element.localName);
|
|
11
|
+
}
|
|
12
|
+
return this.__logger;
|
|
13
|
+
}
|
|
14
|
+
get element() {
|
|
15
|
+
return getElement(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return LoggerMixin;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Base class factory for Unidy Stencil components that provides logging functionality
|
|
22
|
+
* and allows composing additional mixins.
|
|
23
|
+
* Components extending this class get a `this.logger` property that automatically prefixes log messages with the component's class name.
|
|
24
|
+
* Components extending this class get a `this.element` property that automatically returns the component's host element.
|
|
25
|
+
*/
|
|
26
|
+
const UnidyComponent = (...mixins) => {
|
|
27
|
+
return Mixin(loggerFactory, ...mixins);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { UnidyComponent as U };
|
|
31
|
+
//# sourceMappingURL=component.js.map
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"component.js","mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAwB,IAAO,KAAI;IAC9D,MAAM,oBAAoB,IAAI,CAAA;;QAE5B,QAAQ,GAAkB,IAAI;AAE9B,QAAA,IAAI,MAAM,GAAA;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;;YAEtD,OAAO,IAAI,CAAC,QAAQ;;AAGtB,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC;;AAE1B;AACD,IAAA,OAAO,WAAW;AACpB,CAAC;AAID;;;;;AAKG;MACU,cAAc,GAAG,CAAmD,GAAG,MAAS,KAAI;AAC/F,IAAA,OAAO,KAAK,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC;AACxC;;;;","names":[],"sources":["src/shared/base/component.tsx"],"sourcesContent":["import { getElement, type MixedInCtor, Mixin } from \"@stencil/core\";\nimport { createLogger, type Logger } from \"../../logger\";\n\nexport const loggerFactory = <B extends MixedInCtor>(Base: B) => {\n class LoggerMixin extends Base {\n /** @internal */\n __logger: Logger | null = null;\n\n get logger(): Logger {\n if (!this.__logger) {\n this.__logger = createLogger(this.element.localName);\n }\n return this.__logger;\n }\n\n get element() {\n return getElement(this);\n }\n }\n return LoggerMixin;\n};\n\nexport type BaseComponentType = ReturnType<typeof loggerFactory>;\n\n/**\n * Base class factory for Unidy Stencil components that provides logging functionality\n * and allows composing additional mixins.\n * Components extending this class get a `this.logger` property that automatically prefixes log messages with the component's class name.\n * Components extending this class get a `this.element` property that automatically returns the component's host element.\n */\nexport const UnidyComponent = <T extends ((base: MixedInCtor) => MixedInCtor)[]>(...mixins: T) => {\n return Mixin(loggerFactory, ...mixins);\n};\n"],"version":3}
|