@ebrains/components 0.6.0-alpha.0 → 0.7.0-alpha.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/color-primary-palette_6.cjs.entry.js +15 -15
- package/dist/cjs/components.cjs.js +2 -2
- package/dist/cjs/correct-use-of-colors.cjs.entry.js +2 -2
- package/dist/cjs/eds-accordion_22.cjs.entry.js +1959 -0
- package/dist/cjs/eds-alert.cjs.entry.js +1 -1
- package/dist/cjs/eds-app-root.cjs.entry.js +37 -0
- package/dist/cjs/eds-avatar_4.cjs.entry.js +180 -0
- package/dist/cjs/eds-breadcrumb.cjs.entry.js +4 -18
- package/dist/cjs/eds-card-generic.cjs.entry.js +92 -0
- package/dist/cjs/eds-card-project.cjs.entry.js +1 -1
- package/dist/cjs/eds-card-section.cjs.entry.js +39 -0
- package/dist/cjs/eds-card-tags.cjs.entry.js +1 -1
- package/dist/cjs/eds-card-tool.cjs.entry.js +1 -1
- package/dist/cjs/eds-card-wrapper.cjs.entry.js +1 -1
- package/dist/cjs/eds-code-block.cjs.entry.js +1 -1
- package/dist/cjs/eds-components-section.cjs.entry.js +2 -2
- package/dist/cjs/eds-cookies-preference.cjs.entry.js +2 -2
- package/dist/cjs/eds-docs-palettes.cjs.entry.js +2 -2
- package/dist/cjs/eds-docs-tokens.cjs.entry.js +2 -2
- package/dist/cjs/{eds-dropdown_2.cjs.entry.js → eds-dropdown.cjs.entry.js} +8 -41
- package/dist/cjs/eds-feedback.cjs.entry.js +66 -0
- package/dist/cjs/eds-form.cjs.entry.js +237 -254
- package/dist/cjs/eds-frame.cjs.entry.js +32 -32
- package/dist/cjs/eds-icon-arrow-diagonal.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-arrow-right.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-bluesky.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-chevron-down.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-chevron-left.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-chevron-right.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-chevron-up.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-close.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-copy.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-eu.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-facebook.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-gitlab.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-linkedin.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-loader.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-mastodon.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-menu.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-more.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-search.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-star.cjs.entry.js +18 -0
- package/dist/cjs/eds-icon-success.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-thumbs-down.cjs.entry.js +18 -0
- package/dist/cjs/eds-icon-thumbs-up.cjs.entry.js +18 -0
- package/dist/cjs/eds-icon-twitter.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-user.cjs.entry.js +2 -2
- package/dist/cjs/eds-icon-youtube.cjs.entry.js +2 -2
- package/dist/{components/keycloak.js → cjs/eds-login_2.cjs.entry.js} +144 -1
- package/dist/cjs/eds-logo-variations.cjs.entry.js +2 -2
- package/dist/cjs/eds-modal.cjs.entry.js +15 -3
- package/dist/cjs/eds-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/eds-rating.cjs.entry.js +31 -25
- package/dist/cjs/eds-section-core_2.cjs.entry.js +4 -4
- package/dist/cjs/eds-spinner.cjs.entry.js +54 -0
- package/dist/cjs/eds-steps.cjs.entry.js +9 -19
- package/dist/cjs/eds-svg-repository.cjs.entry.js +9 -3
- package/dist/cjs/eds-switch.cjs.entry.js +3 -3
- package/dist/cjs/eds-tabs.cjs.entry.js +10 -24
- package/dist/cjs/eds-timeline.cjs.entry.js +4 -22
- package/dist/cjs/eds-toast-manager.cjs.entry.js +46 -0
- package/dist/cjs/eds-toast.cjs.entry.js +76 -0
- package/dist/cjs/eds-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/eds-trl.cjs.entry.js +2 -2
- package/dist/cjs/eds-user.cjs.entry.js +9 -79
- package/dist/cjs/eds-vertical-stepper.cjs.entry.js +2 -2
- package/dist/cjs/formUtils-4315a99c.js +228 -0
- package/dist/cjs/incorrect-use-of-colors.cjs.entry.js +2 -2
- package/dist/cjs/{index-f08e4f5c.js → index-2f63169d.js} +51 -54
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/logo-space.cjs.entry.js +2 -2
- package/dist/cjs/logo-variations-horizontal_2.cjs.entry.js +3 -3
- package/dist/cjs/logo-wrong-usage.cjs.entry.js +2 -2
- package/dist/cjs/sharedUtils-8e287250.js +21 -0
- package/dist/cjs/star-942eee9f.js +7 -0
- package/dist/cjs/thumbs-down-714036b1.js +7 -0
- package/dist/cjs/thumbs-up-411babb8.js +8 -0
- package/dist/cjs/token-list_3.cjs.entry.js +4 -4
- package/dist/cjs/token-ratios.cjs.entry.js +2 -2
- package/dist/cjs/token-spacing.cjs.entry.js +2 -2
- package/dist/cjs/token-typography.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +10 -6
- package/dist/collection/components/eds-accordion/eds-accordion.js +7 -7
- package/dist/collection/components/eds-accordion/eds-accordion.stories.js +2 -2
- package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +3 -17
- package/dist/collection/components/eds-button/eds-button.css +1 -19
- package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +3 -15
- package/dist/collection/components/eds-dropdown/eds-dropdown.js +24 -2
- package/dist/collection/components/eds-form/eds-form.js +278 -268
- package/dist/collection/components/eds-form-v2/eds-form-v2.css +7153 -0
- package/dist/collection/components/eds-form-v2/eds-form-v2.js +405 -0
- package/dist/collection/components/eds-form-v2/eds-form-v2.stories.js +73 -0
- package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-down/eds-icon-chevron-down.js +1 -1
- package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-left/eds-icon-chevron-left.js +1 -1
- package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-right/eds-icon-chevron-right.js +1 -1
- package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-up/eds-icon-chevron-up.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-arrow-diagonal/eds-icon-arrow-diagonal.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-arrow-right/eds-icon-arrow-right.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-close/eds-icon-close.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-copy/eds-icon-copy.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-eu/eds-icon-eu.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-gitlab/eds-icon-gitlab.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-loader/eds-icon-loader.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-menu/eds-icon-menu.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-more/eds-icon-more.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-search/eds-icon-search.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-star/eds-icon-star.js +36 -0
- package/dist/collection/components/eds-icons/eds-icon-success/eds-icon-success.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-thumbs-down/eds-icon-thumbs-down.js +36 -0
- package/dist/collection/components/eds-icons/eds-icon-thumbs-up/eds-icon-thumbs-up.js +36 -0
- package/dist/collection/components/eds-icons/eds-icon-user/eds-icon-user.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-bluesky/eds-icon-bluesky.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-facebook/eds-icon-facebook.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-linkedin/eds-icon-linkedin.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-mastodon/eds-icon-mastodon.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-twitter/eds-icon-twitter.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-youtube/eds-icon-youtube.js +1 -1
- package/dist/collection/components/eds-img/eds-img.js +2 -2
- package/dist/collection/components/eds-input-elements/eds-input/eds-input.js +2 -2
- package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input-range/eds-input-range.js +2 -2
- package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.js +57 -9
- package/dist/collection/components/eds-input-elements/eds-input-select/eds-input-select.js +1 -1
- package/dist/collection/components/eds-input-field/eds-input-field.js +2 -2
- package/dist/collection/components/eds-link/eds-link.js +1 -1
- package/dist/collection/components/eds-logo/eds-logo.js +1 -1
- package/dist/collection/components/eds-modal/eds-modal.js +26 -2
- package/dist/collection/components/eds-pagination/eds-pagination.js +3 -3
- package/dist/collection/components/eds-progress-bar/eds-progress-bar.js +1 -1
- package/dist/collection/components/eds-rating/eds-rating.css +31 -74
- package/dist/collection/components/eds-rating/eds-rating.js +44 -56
- package/dist/collection/components/eds-rating/eds-rating.stories.js +18 -51
- package/dist/collection/components/eds-section/eds-section-core/eds-section-core.js +1 -1
- package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +2 -2
- package/dist/collection/components/eds-spinner/eds-spinner.css +17 -0
- package/dist/collection/components/eds-spinner/eds-spinner.js +166 -0
- package/dist/collection/components/eds-spinner/eds-spinner.stories.js +52 -0
- package/dist/collection/components/eds-steps/eds-steps.css +1 -1
- package/dist/collection/components/eds-steps/eds-steps.js +8 -18
- package/dist/collection/components/eds-steps/eds-vertical-stepper.js +1 -1
- package/dist/collection/components/eds-switch/eds-switch.css +57 -58
- package/dist/collection/components/eds-switch/eds-switch.js +2 -2
- package/dist/collection/components/eds-table/eds-table.js +11 -8
- package/dist/collection/components/eds-table/eds-table.stories.js +11 -6
- package/dist/collection/components/eds-tag/eds-tag.js +1 -1
- package/dist/collection/components/eds-timeline/eds-timeline.js +3 -21
- package/dist/collection/components/eds-tooltip/eds-tooltip.js +1 -1
- package/dist/collection/components/eds-trl/eds-trl.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/primary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/secondary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/support.js +1 -1
- package/dist/collection/eds-docs-ui/colors/gradient-palette/primary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/gradient-palette/secondary.js +7 -7
- package/dist/collection/eds-docs-ui/colors/gradient-palette/support.js +3 -3
- package/dist/collection/eds-docs-ui/colors/use-of-colors/correct-use-of-colors.js +1 -1
- package/dist/collection/eds-docs-ui/colors/use-of-colors/incorrect-use-of-colors.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-list/token-list.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-radii/token-radii.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-ratios/token-ratios.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-shadows/token-shadows.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-spacing/token-spacing.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-typography/token-typography.js +1 -1
- package/dist/collection/eds-docs-ui/eds-components-section/eds-components-section.js +1 -1
- package/dist/collection/eds-docs-ui/eds-docs-palettes/eds-docs-palettes.js +1 -1
- package/dist/collection/eds-docs-ui/eds-docs-tokens/eds-docs-tokens.js +1 -1
- package/dist/collection/eds-docs-ui/eds-frame/eds-frame.css +113 -0
- package/dist/collection/{components → eds-docs-ui}/eds-frame/eds-frame.js +47 -76
- package/dist/collection/eds-docs-ui/eds-frame/eds-frame.stories.js +52 -0
- package/dist/collection/eds-docs-ui/eds-logo-variations/eds-logo-variations.js +1 -1
- package/dist/collection/eds-docs-ui/eds-svg-repository/eds-svg-repository.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-space/logo-space.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-variations/horizontal/logo-variations-horizontal.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-variations/vertical/logo-variations-vertical.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-wrong-usage/logo-wrong-usage.js +1 -1
- package/dist/collection/shared-ui/eds-card-section/eds-card-section.js +3 -19
- package/dist/collection/shared-ui/eds-cookies-preference/eds-cookies-preference.js +1 -1
- package/dist/collection/shared-ui/eds-feedback/eds-feedback.css +155 -0
- package/dist/collection/shared-ui/eds-feedback/eds-feedback.js +191 -0
- package/dist/collection/shared-ui/eds-feedback/eds-feedback.stories.js +121 -0
- package/dist/collection/shared-ui/eds-footer/eds-footer.js +1 -1
- package/dist/collection/shared-ui/eds-fullscreen-menu/eds-fullscreen-menu.js +3 -28
- package/dist/collection/shared-ui/eds-header/eds-header.js +4 -20
- package/dist/collection/shared-ui/eds-header/eds-header.stories.js +1 -37
- package/dist/collection/shared-ui/eds-login/eds-login.js +34 -10
- package/dist/collection/{components → shared-ui}/eds-matomo-notice/eds-matomo-notice.js +32 -63
- package/dist/collection/{components → shared-ui}/eds-matomo-notice/eds-matomo-notice.stories.js +6 -4
- package/dist/collection/shared-ui/eds-social-networks/eds-social-networks.js +1 -1
- package/dist/collection/shared-ui/eds-splash-screen/eds-splash-screen.css +29 -0
- package/dist/collection/shared-ui/eds-splash-screen/eds-splash-screen.js +124 -0
- package/dist/collection/shared-ui/eds-splash-screen/eds-splash-screen.stories.js +23 -0
- package/dist/collection/shared-ui/eds-tabs/eds-tabs.css +7774 -0
- package/dist/collection/shared-ui/eds-tabs/eds-tabs.js +12 -25
- package/dist/collection/shared-ui/eds-tabs/eds-tabs.stories.js +17 -30
- package/dist/collection/shared-ui/eds-toast-manager/eds-toast-manager.js +4 -1
- package/dist/collection/shared-ui/eds-user/eds-user.js +17 -150
- package/dist/collection/shared-ui/eds-user/eds-user.stories.js +45 -0
- package/dist/collection/shared-ui/examples/eds-app-root/eds-app-root.js +39 -0
- package/dist/collection/utils/api.js +27 -0
- package/dist/collection/utils/eds-form/formUtils.js +95 -0
- package/dist/collection/utils/eds-form/formValidators.js +64 -0
- package/dist/collection/utils/eds-form/individualValidator.js +46 -0
- package/dist/collection/utils/eds-form/validateInput.js +23 -0
- package/dist/collection/utils/sharedUtils.js +17 -0
- package/dist/components/components.css +48 -72
- package/dist/components/components.esm.js +1 -1
- package/dist/components/correct-use-of-colors.js +1 -1
- package/dist/components/eds-accordion2.js +5 -5
- package/dist/components/{eds-navigator.d.ts → eds-app-root.d.ts} +4 -4
- package/dist/components/eds-app-root.js +89 -0
- package/dist/components/eds-breadcrumb.js +3 -17
- package/dist/components/eds-button2.js +1 -1
- package/dist/components/eds-card-generic2.js +3 -15
- package/dist/components/eds-card-section.js +3 -19
- package/dist/components/eds-components-section.js +1 -1
- package/dist/components/eds-cookies-preference.js +1 -1
- package/dist/components/eds-docs-palettes.js +1 -1
- package/dist/components/eds-docs-tokens.js +1 -1
- package/dist/components/eds-dropdown2.js +8 -3
- package/dist/components/{eds-user-modal.d.ts → eds-feedback.d.ts} +4 -4
- package/dist/components/eds-feedback.js +105 -0
- package/dist/components/eds-footer2.js +1 -1
- package/dist/components/{eds-tab.d.ts → eds-form-v2.d.ts} +4 -4
- package/dist/{esm/eds-accordion_13.entry.js → components/eds-form-v2.js} +276 -854
- package/dist/components/eds-form.js +240 -255
- package/dist/components/eds-frame.js +33 -34
- package/dist/components/eds-fullscreen-menu.js +3 -28
- package/dist/components/eds-header.js +4 -20
- package/dist/components/eds-icon-arrow-diagonal.js +1 -1
- package/dist/components/eds-icon-arrow-right.js +1 -1
- package/dist/components/eds-icon-bluesky.js +1 -1
- package/dist/components/eds-icon-chevron-down.js +1 -1
- package/dist/components/eds-icon-chevron-left.js +1 -1
- package/dist/components/eds-icon-chevron-right.js +1 -1
- package/dist/components/eds-icon-chevron-up.js +1 -1
- package/dist/components/eds-icon-close.js +1 -1
- package/dist/components/eds-icon-copy.js +1 -1
- package/dist/components/eds-icon-eu.js +1 -1
- package/dist/components/eds-icon-facebook.js +1 -1
- package/dist/components/eds-icon-gitlab.js +1 -1
- package/dist/components/eds-icon-linkedin.js +1 -1
- package/dist/components/eds-icon-loader.js +1 -1
- package/dist/components/eds-icon-mastodon.js +1 -1
- package/dist/components/eds-icon-menu.js +1 -1
- package/dist/components/eds-icon-more.js +1 -1
- package/dist/components/eds-icon-search.js +1 -1
- package/dist/components/{eds-tabs-content.d.ts → eds-icon-star.d.ts} +4 -4
- package/dist/components/eds-icon-star.js +33 -0
- package/dist/components/eds-icon-success.js +1 -1
- package/dist/components/eds-icon-thumbs-down.d.ts +11 -0
- package/dist/components/eds-icon-thumbs-down.js +33 -0
- package/dist/components/eds-icon-thumbs-up.d.ts +11 -0
- package/dist/components/eds-icon-thumbs-up.js +33 -0
- package/dist/components/eds-icon-twitter.js +1 -1
- package/dist/components/eds-icon-user.js +1 -1
- package/dist/components/eds-icon-youtube.js +1 -1
- package/dist/components/eds-img2.js +2 -2
- package/dist/components/eds-input-field2.js +2 -2
- package/dist/components/eds-input-footer2.js +1 -1
- package/dist/components/eds-input-label2.js +1 -1
- package/dist/components/eds-input-range2.js +2 -2
- package/dist/components/eds-input-search2.js +24 -9
- package/dist/components/eds-input-select2.js +1 -1
- package/dist/components/eds-input2.js +2 -2
- package/dist/components/eds-link2.js +1 -1
- package/dist/components/eds-login.js +1 -118
- package/dist/{cjs/keycloak-93fc0315.js → components/eds-login2.js} +128 -7
- package/dist/components/eds-logo-variations.js +1 -1
- package/dist/components/eds-logo2.js +1 -1
- package/dist/components/eds-matomo-notice2.js +16 -13
- package/dist/components/eds-modal.js +15 -3
- package/dist/components/eds-pagination2.js +2 -2
- package/dist/components/eds-progress-bar2.js +1 -1
- package/dist/components/eds-rating.js +1 -84
- package/dist/components/eds-rating2.js +91 -0
- package/dist/components/eds-section-core2.js +1 -1
- package/dist/components/eds-section-heading2.js +2 -2
- package/dist/components/eds-social-networks2.js +1 -1
- package/dist/components/eds-spinner.d.ts +11 -0
- package/dist/components/eds-spinner.js +6 -0
- package/dist/components/eds-spinner2.js +72 -0
- package/dist/components/eds-splash-screen.d.ts +11 -0
- package/dist/components/eds-splash-screen.js +6 -0
- package/dist/components/eds-splash-screen2.js +78 -0
- package/dist/components/eds-steps.js +8 -18
- package/dist/components/eds-svg-repository.js +8 -2
- package/dist/components/eds-switch.js +2 -2
- package/dist/components/eds-table2.js +11 -8
- package/dist/components/eds-tabs.js +12 -31
- package/dist/components/eds-tag2.js +1 -1
- package/dist/components/eds-timeline.js +3 -21
- package/dist/components/eds-toast-manager.js +1 -1
- package/dist/components/eds-tooltip.js +1 -1
- package/dist/components/eds-trl.js +1 -1
- package/dist/components/eds-user.js +23 -105
- package/dist/components/eds-vertical-stepper.js +1 -1
- package/dist/components/formUtils.js +223 -0
- package/dist/components/incorrect-use-of-colors.js +1 -1
- package/dist/components/logo-space.js +1 -1
- package/dist/components/logo-variations-horizontal2.js +1 -1
- package/dist/components/logo-variations-vertical2.js +1 -1
- package/dist/components/logo-wrong-usage.js +1 -1
- package/dist/components/p-033480b2.entry.js +1 -0
- package/dist/components/{p-89f600a3.entry.js → p-0443ac40.entry.js} +1 -1
- package/dist/components/{p-a2621d66.entry.js → p-066f6d27.entry.js} +1 -1
- package/dist/components/p-0e0106fc.entry.js +1 -0
- package/dist/components/p-117d180f.entry.js +1 -0
- package/dist/components/p-20e9ae7f.entry.js +1 -0
- package/dist/components/{p-a535838c.entry.js → p-2354daeb.entry.js} +1 -1
- package/dist/components/{p-5097066f.entry.js → p-2b31ca60.entry.js} +1 -1
- package/dist/components/p-3368cfd5.entry.js +1 -0
- package/dist/components/p-33c5b937.entry.js +1 -0
- package/dist/components/p-3af94671.entry.js +1 -0
- package/dist/components/{p-b1af5000.entry.js → p-43350dff.entry.js} +2 -2
- package/dist/components/p-43b3579a.entry.js +1 -0
- package/dist/components/p-467fe746.entry.js +1 -0
- package/dist/components/p-46a6042d.entry.js +1 -0
- package/dist/components/p-4a860d5b.entry.js +1 -0
- package/dist/components/p-4ac27fe7.entry.js +1 -0
- package/dist/components/p-4b2e6f03.entry.js +1 -0
- package/dist/components/{p-b50c8d49.entry.js → p-4cd69983.entry.js} +1 -1
- package/dist/components/p-5520a3b6.entry.js +1 -0
- package/dist/components/p-552b6a50.entry.js +1 -0
- package/dist/components/p-56b4e0fe.entry.js +1 -0
- package/dist/components/{p-f36f2aeb.entry.js → p-56ec190f.entry.js} +1 -1
- package/dist/components/p-5aff1ea0.entry.js +1 -0
- package/dist/components/p-5c12a0df.entry.js +1 -0
- package/dist/components/{p-5ff31f14.entry.js → p-5e2216ae.entry.js} +1 -1
- package/dist/components/p-5e63e8a5.entry.js +1 -0
- package/dist/components/p-60e7e745.entry.js +1 -0
- package/dist/components/p-62f2f274.entry.js +1 -0
- package/dist/components/p-6404e157.entry.js +1 -0
- package/dist/components/p-69c5074b.js +1 -0
- package/dist/components/p-6fd0c3b3.entry.js +1 -0
- package/dist/components/p-77cc7c02.entry.js +1 -0
- package/dist/components/p-79c14cf1.entry.js +1 -0
- package/dist/components/{p-c034c395.entry.js → p-7dd81017.entry.js} +1 -1
- package/dist/components/p-7e0dd5d8.entry.js +1 -0
- package/dist/components/p-80dba155.js +1 -0
- package/dist/components/{p-b860b4aa.entry.js → p-8154d013.entry.js} +1 -1
- package/dist/components/p-86eed1b7.entry.js +1 -0
- package/dist/components/{p-d56d9dda.entry.js → p-8b70a350.entry.js} +1 -1
- package/dist/components/p-8e548691.entry.js +1 -0
- package/dist/components/p-90503a64.entry.js +1 -0
- package/dist/components/p-90f85604.entry.js +1 -0
- package/dist/components/p-94698510.entry.js +1 -0
- package/dist/components/p-950ecb1c.entry.js +1 -0
- package/dist/components/p-9b9fba38.entry.js +1 -0
- package/dist/components/p-9dc879c9.entry.js +1 -0
- package/dist/components/{p-b1de9a6c.entry.js → p-9eb2e870.entry.js} +1 -1
- package/dist/components/p-9ebc84d6.entry.js +1 -0
- package/dist/components/p-a56f0579.entry.js +1 -0
- package/dist/components/{p-88751c8b.entry.js → p-a5c61d1c.entry.js} +1 -1
- package/dist/components/p-a6cd418e.entry.js +1 -0
- package/dist/components/p-a8dd1953.entry.js +1 -0
- package/dist/components/{p-045681d7.entry.js → p-a91ab66e.entry.js} +1 -1
- package/dist/components/p-ab292dd5.entry.js +1 -0
- package/dist/components/p-ad746789.entry.js +1 -0
- package/dist/components/p-b80a9020.entry.js +1 -0
- package/dist/components/p-b8ba7e5c.entry.js +1 -0
- package/dist/components/p-ba720bf3.js +1 -0
- package/dist/components/p-c06d4f14.entry.js +1 -0
- package/dist/components/p-c12d9350.entry.js +1 -0
- package/dist/components/p-c3dda942.entry.js +1 -0
- package/dist/components/p-c6b32753.entry.js +1 -0
- package/dist/components/p-c776b6f8.js +1 -0
- package/dist/components/p-c935aa46.entry.js +1 -0
- package/dist/components/{p-7a8b9de5.js → p-cccacbd3.js} +2 -2
- package/dist/components/p-dbcf1f0e.entry.js +1 -0
- package/dist/components/p-dcc08064.entry.js +1 -0
- package/dist/components/p-dcd4de1f.entry.js +1 -0
- package/dist/components/p-e2d5a487.js +1 -0
- package/dist/components/p-e64cd6f7.entry.js +1 -0
- package/dist/components/p-e9a533e0.entry.js +1 -0
- package/dist/components/p-eac63c82.entry.js +1 -0
- package/dist/components/p-f5959676.entry.js +1 -0
- package/dist/components/{p-fad10768.entry.js → p-f905ac92.entry.js} +1 -1
- package/dist/components/p-fba4080d.entry.js +1 -0
- package/dist/components/p-fc619588.entry.js +1 -0
- package/dist/components/p-fcc32210.entry.js +1 -0
- package/dist/components/{p-81942665.entry.js → p-ff7acb55.entry.js} +1 -1
- package/dist/components/primary.js +1 -1
- package/dist/components/primary2.js +1 -1
- package/dist/components/secondary.js +1 -1
- package/dist/components/secondary2.js +7 -7
- package/dist/components/sharedUtils.js +19 -0
- package/dist/components/star.js +5 -0
- package/dist/components/support.js +1 -1
- package/dist/components/support2.js +3 -3
- package/dist/components/thumbs-down.js +5 -0
- package/dist/components/thumbs-up.js +6 -0
- package/dist/components/token-list2.js +1 -1
- package/dist/components/token-radii2.js +1 -1
- package/dist/components/token-ratios.js +1 -1
- package/dist/components/token-shadows2.js +1 -1
- package/dist/components/token-spacing.js +1 -1
- package/dist/components/token-typography.js +1 -1
- package/dist/esm/color-primary-palette_6.entry.js +15 -15
- package/dist/esm/components.js +3 -3
- package/dist/esm/correct-use-of-colors.entry.js +2 -2
- package/dist/esm/eds-accordion_22.entry.js +1934 -0
- package/dist/esm/eds-alert.entry.js +1 -1
- package/dist/esm/eds-app-root.entry.js +33 -0
- package/dist/esm/eds-avatar_4.entry.js +173 -0
- package/dist/esm/eds-breadcrumb.entry.js +4 -18
- package/dist/esm/eds-card-generic.entry.js +88 -0
- package/dist/esm/eds-card-project.entry.js +1 -1
- package/dist/esm/eds-card-section.entry.js +35 -0
- package/dist/esm/eds-card-tags.entry.js +1 -1
- package/dist/esm/eds-card-tool.entry.js +1 -1
- package/dist/esm/eds-card-wrapper.entry.js +1 -1
- package/dist/esm/eds-code-block.entry.js +1 -1
- package/dist/esm/eds-components-section.entry.js +2 -2
- package/dist/esm/eds-cookies-preference.entry.js +2 -2
- package/dist/esm/eds-docs-palettes.entry.js +2 -2
- package/dist/esm/eds-docs-tokens.entry.js +2 -2
- package/dist/esm/{eds-dropdown_2.entry.js → eds-dropdown.entry.js} +9 -41
- package/dist/esm/eds-feedback.entry.js +62 -0
- package/dist/esm/eds-form.entry.js +237 -254
- package/dist/esm/eds-frame.entry.js +32 -32
- package/dist/esm/eds-icon-arrow-diagonal.entry.js +2 -2
- package/dist/esm/eds-icon-arrow-right.entry.js +2 -2
- package/dist/esm/eds-icon-bluesky.entry.js +2 -2
- package/dist/esm/eds-icon-chevron-down.entry.js +2 -2
- package/dist/esm/eds-icon-chevron-left.entry.js +2 -2
- package/dist/esm/eds-icon-chevron-right.entry.js +2 -2
- package/dist/esm/eds-icon-chevron-up.entry.js +2 -2
- package/dist/esm/eds-icon-close.entry.js +2 -2
- package/dist/esm/eds-icon-copy.entry.js +2 -2
- package/dist/esm/eds-icon-eu.entry.js +2 -2
- package/dist/esm/eds-icon-facebook.entry.js +2 -2
- package/dist/esm/eds-icon-gitlab.entry.js +2 -2
- package/dist/esm/eds-icon-linkedin.entry.js +2 -2
- package/dist/esm/eds-icon-loader.entry.js +2 -2
- package/dist/esm/eds-icon-mastodon.entry.js +2 -2
- package/dist/esm/eds-icon-menu.entry.js +2 -2
- package/dist/esm/eds-icon-more.entry.js +2 -2
- package/dist/esm/eds-icon-search.entry.js +2 -2
- package/dist/esm/eds-icon-star.entry.js +14 -0
- package/dist/esm/eds-icon-success.entry.js +2 -2
- package/dist/esm/eds-icon-thumbs-down.entry.js +14 -0
- package/dist/esm/eds-icon-thumbs-up.entry.js +14 -0
- package/dist/esm/eds-icon-twitter.entry.js +2 -2
- package/dist/esm/eds-icon-user.entry.js +2 -2
- package/dist/esm/eds-icon-youtube.entry.js +2 -2
- package/dist/esm/{keycloak-d502ec16.js → eds-login_2.entry.js} +139 -1
- package/dist/esm/eds-logo-variations.entry.js +2 -2
- package/dist/esm/eds-modal.entry.js +15 -3
- package/dist/esm/eds-progress-bar.entry.js +2 -2
- package/dist/esm/eds-rating.entry.js +31 -25
- package/dist/esm/eds-section-core_2.entry.js +4 -4
- package/dist/esm/eds-spinner.entry.js +50 -0
- package/dist/esm/eds-steps.entry.js +9 -19
- package/dist/esm/eds-svg-repository.entry.js +9 -3
- package/dist/esm/eds-switch.entry.js +3 -3
- package/dist/esm/eds-tabs.entry.js +10 -24
- package/dist/esm/eds-timeline.entry.js +4 -22
- package/dist/esm/eds-toast-manager.entry.js +42 -0
- package/dist/esm/eds-toast.entry.js +72 -0
- package/dist/esm/eds-tooltip.entry.js +2 -2
- package/dist/esm/eds-trl.entry.js +2 -2
- package/dist/esm/eds-user.entry.js +9 -79
- package/dist/esm/eds-vertical-stepper.entry.js +2 -2
- package/dist/esm/formUtils-ac68474d.js +223 -0
- package/dist/esm/incorrect-use-of-colors.entry.js +2 -2
- package/dist/esm/{index-e96badea.js → index-8a71b9a7.js} +51 -55
- package/dist/esm/loader.js +3 -3
- package/dist/esm/logo-space.entry.js +2 -2
- package/dist/esm/logo-variations-horizontal_2.entry.js +3 -3
- package/dist/esm/logo-wrong-usage.entry.js +2 -2
- package/dist/esm/sharedUtils-a550989c.js +19 -0
- package/dist/esm/star-0da9b5e9.js +5 -0
- package/dist/esm/thumbs-down-a18fd049.js +5 -0
- package/dist/esm/thumbs-up-c19a71bc.js +6 -0
- package/dist/esm/token-list_3.entry.js +4 -4
- package/dist/esm/token-ratios.entry.js +2 -2
- package/dist/esm/token-spacing.entry.js +2 -2
- package/dist/esm/token-typography.entry.js +2 -2
- package/dist/hydrate/index.js +1353 -1001
- package/dist/hydrate/index.mjs +1353 -1001
- package/dist/types/Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/svgs/src/lib/svgs.d.ts +4 -1
- package/dist/types/components/eds-accordion/eds-accordion.d.ts +3 -3
- package/dist/types/components/eds-dropdown/eds-dropdown.d.ts +5 -0
- package/dist/types/components/eds-form/eds-form.d.ts +52 -20
- package/dist/types/components/eds-form-v2/eds-form-v2.d.ts +99 -0
- package/dist/types/components/eds-form-v2/eds-form-v2.stories.d.ts +27 -0
- package/dist/types/components/eds-icons/eds-icon-star/eds-icon-star.d.ts +10 -0
- package/dist/types/components/eds-icons/eds-icon-thumbs-down/eds-icon-thumbs-down.d.ts +10 -0
- package/dist/types/components/eds-icons/eds-icon-thumbs-up/eds-icon-thumbs-up.d.ts +10 -0
- package/dist/types/components/eds-input-elements/eds-input-search/eds-input-search.d.ts +6 -1
- package/dist/types/components/eds-modal/eds-modal.d.ts +8 -0
- package/dist/types/components/eds-pagination/eds-pagination.d.ts +1 -1
- package/dist/types/components/eds-rating/eds-rating.d.ts +19 -11
- package/dist/types/components/eds-rating/eds-rating.stories.d.ts +13 -27
- package/dist/types/components/eds-spinner/eds-spinner.d.ts +27 -0
- package/dist/types/components/eds-spinner/eds-spinner.stories.d.ts +42 -0
- package/dist/types/components/eds-steps/eds-steps.d.ts +1 -1
- package/dist/types/components/eds-table/eds-table.stories.d.ts +6 -0
- package/dist/types/components.d.ts +610 -321
- package/dist/types/{components → eds-docs-ui}/eds-frame/eds-frame.d.ts +26 -6
- package/dist/types/{components → eds-docs-ui}/eds-frame/eds-frame.stories.d.ts +8 -13
- package/dist/types/shared-ui/eds-feedback/eds-feedback.d.ts +56 -0
- package/dist/types/shared-ui/eds-feedback/eds-feedback.stories.d.ts +77 -0
- package/dist/types/shared-ui/eds-header/eds-header.stories.d.ts +0 -28
- package/dist/types/shared-ui/eds-login/eds-login.d.ts +12 -1
- package/dist/types/{components → shared-ui}/eds-matomo-notice/eds-matomo-notice.d.ts +5 -12
- package/dist/types/{components → shared-ui}/eds-matomo-notice/eds-matomo-notice.stories.d.ts +2 -1
- package/dist/types/shared-ui/eds-splash-screen/eds-splash-screen.d.ts +31 -0
- package/dist/types/shared-ui/eds-splash-screen/eds-splash-screen.stories.d.ts +22 -0
- package/dist/types/shared-ui/eds-tabs/eds-tabs.d.ts +3 -3
- package/dist/types/shared-ui/eds-tabs/eds-tabs.stories.d.ts +5 -2
- package/dist/types/shared-ui/eds-toast-manager/eds-toast-manager.d.ts +3 -0
- package/dist/types/shared-ui/eds-user/eds-user.d.ts +12 -66
- package/dist/types/shared-ui/eds-user/eds-user.stories.d.ts +32 -0
- package/dist/types/shared-ui/examples/eds-app-root/eds-app-root.d.ts +9 -0
- package/dist/types/utils/api.d.ts +5 -0
- package/dist/types/utils/eds-form/formUtils.d.ts +38 -0
- package/dist/types/utils/eds-form/formValidators.d.ts +17 -0
- package/dist/types/utils/eds-form/individualValidator.d.ts +3 -0
- package/dist/types/utils/eds-form/validateInput.d.ts +10 -0
- package/dist/types/utils/sharedUtils.d.ts +1 -0
- package/package.json +3 -3
- package/dist/cjs/eds-accordion_13.cjs.entry.js +0 -911
- package/dist/cjs/eds-block-break.cjs.entry.js +0 -21
- package/dist/cjs/eds-footer.cjs.entry.js +0 -41
- package/dist/cjs/eds-fullscreen-menu.cjs.entry.js +0 -100
- package/dist/cjs/eds-header.cjs.entry.js +0 -97
- package/dist/cjs/eds-input_7.cjs.entry.js +0 -324
- package/dist/cjs/eds-link.cjs.entry.js +0 -214
- package/dist/cjs/eds-login.cjs.entry.js +0 -91
- package/dist/cjs/eds-logo.cjs.entry.js +0 -78
- package/dist/cjs/eds-navigator.cjs.entry.js +0 -43
- package/dist/cjs/eds-pagination_2.cjs.entry.js +0 -386
- package/dist/cjs/eds-social-networks.cjs.entry.js +0 -66
- package/dist/cjs/eds-tab.cjs.entry.js +0 -40
- package/dist/cjs/eds-tabs-content.cjs.entry.js +0 -133
- package/dist/collection/components/eds-frame/eds-frame.stories.js +0 -68
- package/dist/collection/components/eds-navigator/eds-navigator.js +0 -147
- package/dist/collection/components/eds-navigator/eds-navigator.stories.js +0 -101
- package/dist/collection/components/eds-tab/eds-tab.js +0 -109
- package/dist/collection/shared-ui/eds-tabs-content/eds-tabs-content.js +0 -194
- package/dist/collection/shared-ui/eds-tabs-content/eds-tabs-content.stories.js +0 -112
- package/dist/collection/shared-ui/eds-user-modal/eds-user-modal.js +0 -109
- package/dist/components/eds-navigator.js +0 -75
- package/dist/components/eds-tab.js +0 -6
- package/dist/components/eds-tab2.js +0 -55
- package/dist/components/eds-tabs-content.js +0 -159
- package/dist/components/eds-user-modal.js +0 -6
- package/dist/components/eds-user-modal2.js +0 -87
- package/dist/components/p-06299762.entry.js +0 -1
- package/dist/components/p-0a3b2576.entry.js +0 -1
- package/dist/components/p-0ab85eee.entry.js +0 -1
- package/dist/components/p-0e7bdd2c.entry.js +0 -1
- package/dist/components/p-10b81c47.entry.js +0 -1
- package/dist/components/p-1ae529f3.entry.js +0 -1
- package/dist/components/p-1ed3fdb7.entry.js +0 -1
- package/dist/components/p-21d42cf3.entry.js +0 -1
- package/dist/components/p-2831a9d5.entry.js +0 -1
- package/dist/components/p-2c00bd76.entry.js +0 -1
- package/dist/components/p-34a65e58.entry.js +0 -1
- package/dist/components/p-38d70586.entry.js +0 -1
- package/dist/components/p-3a7aa1eb.entry.js +0 -1
- package/dist/components/p-42d3c324.entry.js +0 -1
- package/dist/components/p-4a12a131.entry.js +0 -1
- package/dist/components/p-4b3fbd6d.entry.js +0 -1
- package/dist/components/p-4ea027ac.entry.js +0 -1
- package/dist/components/p-5980a142.entry.js +0 -1
- package/dist/components/p-599c7b97.entry.js +0 -1
- package/dist/components/p-5a2b8b6c.entry.js +0 -1
- package/dist/components/p-65703520.entry.js +0 -1
- package/dist/components/p-659ed449.entry.js +0 -1
- package/dist/components/p-6af40c33.entry.js +0 -1
- package/dist/components/p-6df9db15.entry.js +0 -1
- package/dist/components/p-759b2640.entry.js +0 -1
- package/dist/components/p-7b3b26b0.entry.js +0 -1
- package/dist/components/p-80a185ba.entry.js +0 -1
- package/dist/components/p-86fbc239.entry.js +0 -1
- package/dist/components/p-8c4a0fc9.entry.js +0 -1
- package/dist/components/p-8eab748d.js +0 -1
- package/dist/components/p-911d9b37.entry.js +0 -1
- package/dist/components/p-9579f9c2.entry.js +0 -1
- package/dist/components/p-96fe2267.entry.js +0 -1
- package/dist/components/p-9739def5.entry.js +0 -1
- package/dist/components/p-9b441a1f.entry.js +0 -1
- package/dist/components/p-a5b7d72d.entry.js +0 -1
- package/dist/components/p-a5d00633.entry.js +0 -1
- package/dist/components/p-a63bd0c9.entry.js +0 -1
- package/dist/components/p-a846dbca.entry.js +0 -1
- package/dist/components/p-a927a455.entry.js +0 -1
- package/dist/components/p-aec9b8e1.entry.js +0 -1
- package/dist/components/p-b3c1aef5.entry.js +0 -1
- package/dist/components/p-b60ed774.entry.js +0 -1
- package/dist/components/p-b67aafe7.entry.js +0 -1
- package/dist/components/p-b79999d5.entry.js +0 -1
- package/dist/components/p-b80457ed.entry.js +0 -1
- package/dist/components/p-bd43d83c.entry.js +0 -1
- package/dist/components/p-c5fa170d.entry.js +0 -1
- package/dist/components/p-c683be2c.entry.js +0 -1
- package/dist/components/p-d2a0b896.entry.js +0 -1
- package/dist/components/p-d5850ab3.entry.js +0 -1
- package/dist/components/p-de12396f.entry.js +0 -1
- package/dist/components/p-de2fbcfc.entry.js +0 -1
- package/dist/components/p-e2c250c5.entry.js +0 -1
- package/dist/components/p-e334f5bc.entry.js +0 -1
- package/dist/components/p-f1cd83da.entry.js +0 -1
- package/dist/components/p-f5dafbc8.entry.js +0 -1
- package/dist/components/p-f7493f41.entry.js +0 -1
- package/dist/components/p-fce25541.entry.js +0 -1
- package/dist/esm/eds-block-break.entry.js +0 -17
- package/dist/esm/eds-footer.entry.js +0 -37
- package/dist/esm/eds-fullscreen-menu.entry.js +0 -96
- package/dist/esm/eds-header.entry.js +0 -93
- package/dist/esm/eds-input_7.entry.js +0 -314
- package/dist/esm/eds-link.entry.js +0 -210
- package/dist/esm/eds-login.entry.js +0 -87
- package/dist/esm/eds-logo.entry.js +0 -74
- package/dist/esm/eds-navigator.entry.js +0 -39
- package/dist/esm/eds-pagination_2.entry.js +0 -381
- package/dist/esm/eds-social-networks.entry.js +0 -62
- package/dist/esm/eds-tab.entry.js +0 -36
- package/dist/esm/eds-tabs-content.entry.js +0 -129
- package/dist/types/components/eds-navigator/eds-navigator.d.ts +0 -42
- package/dist/types/components/eds-navigator/eds-navigator.stories.d.ts +0 -46
- package/dist/types/components/eds-tab/eds-tab.d.ts +0 -15
- package/dist/types/shared-ui/eds-tabs-content/eds-tabs-content.d.ts +0 -36
- package/dist/types/shared-ui/eds-tabs-content/eds-tabs-content.stories.d.ts +0 -16
- package/dist/types/shared-ui/eds-user-modal/eds-user-modal.d.ts +0 -47
- /package/dist/collection/{components → shared-ui}/eds-matomo-notice/eds-matomo-notice.css +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { sendAnalytics } from "../../utils/analytics";
|
|
2
2
|
import { h } from "@stencil/core";
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
|
+
import { parseData } from "../../utils/sharedUtils";
|
|
4
5
|
/**
|
|
5
6
|
* `EdsTabs` is a tabs component that renders a navigational tab bar.
|
|
6
7
|
* Each tab can be configured with various properties such as label, URL, active state, and more.
|
|
@@ -49,7 +50,7 @@ export class EdsTabs {
|
|
|
49
50
|
componentWillLoad() {
|
|
50
51
|
this.parseTabs();
|
|
51
52
|
this.setActiveIndex();
|
|
52
|
-
this.
|
|
53
|
+
this.tab.emit({ tabId: this.id, index: 0 });
|
|
53
54
|
}
|
|
54
55
|
/**
|
|
55
56
|
* Parses the `links` prop into an array of link objects.
|
|
@@ -64,22 +65,7 @@ export class EdsTabs {
|
|
|
64
65
|
* @returns {any[]} Array of parsed link objects
|
|
65
66
|
*/
|
|
66
67
|
parseTabs() {
|
|
67
|
-
|
|
68
|
-
this.parsedTabs = this.tabs;
|
|
69
|
-
}
|
|
70
|
-
else if (typeof this.tabs === 'string') {
|
|
71
|
-
try {
|
|
72
|
-
this.parsedTabs = JSON.parse(this.tabs);
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
//console.error('Error parsing tabs prop:', e);
|
|
76
|
-
this.parsedTabs = [];
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
// If the type is not an array or string, assume an empty array.
|
|
81
|
-
this.parsedTabs = [];
|
|
82
|
-
}
|
|
68
|
+
this.parsedTabs = parseData(this.tabs);
|
|
83
69
|
}
|
|
84
70
|
componentDidLoad() {
|
|
85
71
|
this.scrollToActiveTab();
|
|
@@ -118,7 +104,7 @@ export class EdsTabs {
|
|
|
118
104
|
// Update the active index and set all tabs' active state accordingly
|
|
119
105
|
this.activeIndex = index;
|
|
120
106
|
this.parsedTabs = this.parsedTabs.map((tab, tabIndex) => (Object.assign(Object.assign({}, tab), { active: tabIndex === index })));
|
|
121
|
-
this.
|
|
107
|
+
this.tab.emit({ tabId: this.id, index: index, name: tabLabel });
|
|
122
108
|
sendAnalytics({
|
|
123
109
|
category: 'ui-component',
|
|
124
110
|
tag: this.el.tagName.toLowerCase(),
|
|
@@ -127,13 +113,14 @@ export class EdsTabs {
|
|
|
127
113
|
});
|
|
128
114
|
}
|
|
129
115
|
render() {
|
|
130
|
-
return (h("div", { key: '
|
|
131
|
-
|
|
116
|
+
return (h("div", { key: '684231fc874298248db4aaf41f7845343b16ab3c', id: `${this.id}`, class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']" }, h("div", { key: '4083dc93dae192eb61b12a37864b1b12bdf048a6', class: "scroller-x overflow-x-auto max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28" }, h("nav", { key: '0d0a707908275bc2e95ebcb0ec07fb24f12664c2', ref: (el) => (this.tabContainer = el), class: "inline-flex", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
|
|
117
|
+
const TabComponent = tab.active ? 'span' : 'a';
|
|
132
118
|
const tabProps = this.getTabOptions(tab.active, index);
|
|
133
|
-
return (h(
|
|
119
|
+
return (h(TabComponent, Object.assign({}, tabProps, { "aria-label": tab.label, "aria-current": index === this.activeIndex, onClick: () => this.handleTabClick(index, tab.label) }), tab.label || tab.ariaLabel));
|
|
134
120
|
})))));
|
|
135
121
|
}
|
|
136
122
|
static get is() { return "eds-tabs"; }
|
|
123
|
+
static get encapsulation() { return "shadow"; }
|
|
137
124
|
static get originalStyleUrls() {
|
|
138
125
|
return {
|
|
139
126
|
"$": ["eds-tabs.css"]
|
|
@@ -185,8 +172,8 @@ export class EdsTabs {
|
|
|
185
172
|
"type": "string",
|
|
186
173
|
"mutable": false,
|
|
187
174
|
"complexType": {
|
|
188
|
-
"original": "string | { label: string; url: string; active: boolean; ariaLabel
|
|
189
|
-
"resolved": "string | { label: string; url: string; active: boolean; ariaLabel
|
|
175
|
+
"original": "string | { label: string; url: string; active: boolean; ariaLabel?: string }[]",
|
|
176
|
+
"resolved": "string | { label: string; url: string; active: boolean; ariaLabel?: string; }[]",
|
|
190
177
|
"references": {}
|
|
191
178
|
},
|
|
192
179
|
"required": false,
|
|
@@ -208,8 +195,8 @@ export class EdsTabs {
|
|
|
208
195
|
}
|
|
209
196
|
static get events() {
|
|
210
197
|
return [{
|
|
211
|
-
"method": "
|
|
212
|
-
"name": "
|
|
198
|
+
"method": "tab",
|
|
199
|
+
"name": "tab",
|
|
213
200
|
"bubbles": true,
|
|
214
201
|
"cancelable": true,
|
|
215
202
|
"composed": true,
|
|
@@ -3,17 +3,12 @@ export default {
|
|
|
3
3
|
component: 'eds-tabs',
|
|
4
4
|
argTypes: {
|
|
5
5
|
tabs: {
|
|
6
|
-
control: '
|
|
7
|
-
defaultValue:
|
|
8
|
-
{ label: 'Home', url: '#', active: true
|
|
9
|
-
{ label: 'Profile', url: '#', active: false
|
|
10
|
-
{
|
|
11
|
-
|
|
12
|
-
url: '#',
|
|
13
|
-
active: false,
|
|
14
|
-
ariaLabel: 'Settings Tab'
|
|
15
|
-
}
|
|
16
|
-
])
|
|
6
|
+
control: 'object',
|
|
7
|
+
defaultValue: [
|
|
8
|
+
{ label: 'Home', url: '#', active: true },
|
|
9
|
+
{ label: 'Profile', url: '#', active: false },
|
|
10
|
+
{ label: 'Settings', url: '#', active: false }
|
|
11
|
+
]
|
|
17
12
|
}
|
|
18
13
|
}
|
|
19
14
|
};
|
|
@@ -22,7 +17,7 @@ const Template = (args) => {
|
|
|
22
17
|
const container = document.createElement('div');
|
|
23
18
|
// Insert the eds-tabs element and an output element for dynamic updates.
|
|
24
19
|
container.innerHTML = `
|
|
25
|
-
<eds-tabs tabs='${args.tabs}'></eds-tabs>
|
|
20
|
+
<eds-tabs tabs='${JSON.stringify(args.tabs)}'></eds-tabs>
|
|
26
21
|
<p id="active-tab-output" style="margin-top: 16px; font-family: sans-serif; font-weight: bold;"></p>
|
|
27
22
|
`;
|
|
28
23
|
// Query the eds-tabs element and the output element after the content is rendered.
|
|
@@ -32,9 +27,9 @@ const Template = (args) => {
|
|
|
32
27
|
const output = container.querySelector('#active-tab-output');
|
|
33
28
|
if (edsTabs) {
|
|
34
29
|
// Listen for the "tabChange" event
|
|
35
|
-
edsTabs.addEventListener('
|
|
36
|
-
|
|
37
|
-
output.textContent = `Active Tab Index: ${
|
|
30
|
+
edsTabs.addEventListener('tab', (event) => {
|
|
31
|
+
const { index, name } = event.detail;
|
|
32
|
+
output.textContent = `Active Tab Index: ${index}, Tab Name: ${name}`;
|
|
38
33
|
});
|
|
39
34
|
}
|
|
40
35
|
}, 0);
|
|
@@ -42,26 +37,18 @@ const Template = (args) => {
|
|
|
42
37
|
};
|
|
43
38
|
export const Default = Template.bind({});
|
|
44
39
|
Default.args = {
|
|
45
|
-
tabs:
|
|
46
|
-
{ label: 'Home', url: '#', active: true
|
|
47
|
-
{ label: 'Profile', url: '#', active: false
|
|
48
|
-
{ label: 'Settings', url: '#', active: false
|
|
49
|
-
]
|
|
50
|
-
};
|
|
51
|
-
export const ProfileActive = Template.bind({});
|
|
52
|
-
ProfileActive.args = {
|
|
53
|
-
tabs: JSON.stringify([
|
|
54
|
-
{ label: 'Home', url: '#', active: false, ariaLabel: 'Home Tab' },
|
|
55
|
-
{ label: 'Profile', url: '#', active: true, ariaLabel: 'Profile Tab' },
|
|
56
|
-
{ label: 'Settings', url: '#', active: false, ariaLabel: 'Settings Tab' }
|
|
57
|
-
])
|
|
40
|
+
tabs: [
|
|
41
|
+
{ label: 'Home', url: '#', active: true },
|
|
42
|
+
{ label: 'Profile', url: '#', active: false },
|
|
43
|
+
{ label: 'Settings', url: '#', active: false }
|
|
44
|
+
]
|
|
58
45
|
};
|
|
59
46
|
export const CustomTabs = Template.bind({});
|
|
60
47
|
CustomTabs.args = {
|
|
61
|
-
tabs:
|
|
48
|
+
tabs: [
|
|
62
49
|
{ label: 'Dashboard', url: '#', active: true, ariaLabel: 'Dashboard Tab' },
|
|
63
50
|
{ label: 'Reports', url: '#', active: false, ariaLabel: 'Reports Tab' },
|
|
64
51
|
{ label: 'Analytics', url: '#', active: false, ariaLabel: 'Analytics Tab' },
|
|
65
52
|
{ label: 'Settings', url: '#', active: false, ariaLabel: 'Settings Tab' }
|
|
66
|
-
]
|
|
53
|
+
]
|
|
67
54
|
};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
import { toast } from "../../utils/toastManager";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
3
6
|
export class EdsToastManager {
|
|
4
7
|
constructor() {
|
|
5
8
|
this.toastId = 0;
|
|
@@ -28,7 +31,7 @@ export class EdsToastManager {
|
|
|
28
31
|
this.toasts = this.toasts.filter((t) => t.id !== id);
|
|
29
32
|
}
|
|
30
33
|
render() {
|
|
31
|
-
return (h("div", { key: '
|
|
34
|
+
return (h("div", { key: 'e01e6cf0931155f70153ba5de054c1174e364397', class: "toast-container" }, this.toasts.map((t) => (h("div", { key: t.id }, h("eds-toast", { message: t.message, intent: t.intent, onClick: () => this.removeToast(t.id) }))))));
|
|
32
35
|
}
|
|
33
36
|
static get is() { return "eds-toast-manager"; }
|
|
34
37
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,180 +1,47 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
|
-
import { isAuthenticated, getUser, login, logout, checkServerAvailability, initKeycloak } from "../../utils/keycloak";
|
|
3
|
-
import { toast } from "../../utils/toastManager";
|
|
4
2
|
/**
|
|
5
|
-
* `EdsUser` is a user
|
|
6
|
-
* the user's
|
|
7
|
-
* functionality, displays a user dropdown menu when authenticated, and emits
|
|
8
|
-
* authentication status changes.
|
|
3
|
+
* `EdsUser` is a user component for managing and displaying
|
|
4
|
+
* the user's auth information. Displays a user dropdown menu when authenticated.
|
|
9
5
|
*
|
|
10
|
-
* This component is ideal for embedding into any layout requiring
|
|
6
|
+
* This component is ideal for embedding into any layout requiring user authentication.
|
|
11
7
|
*/
|
|
12
8
|
export class EdsUser {
|
|
13
9
|
constructor() {
|
|
14
|
-
|
|
15
|
-
* Handles user login by invoking the Keycloak `login` function.
|
|
16
|
-
* Only triggers login if the user is not already authenticated.
|
|
17
|
-
*/
|
|
18
|
-
this.handleLogin = () => {
|
|
19
|
-
if (!this.authenticated) {
|
|
20
|
-
try {
|
|
21
|
-
login();
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
toast.show(error.message, 'error');
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Handles user logout by invoking the Keycloak `logout` function.
|
|
30
|
-
* Resets the `authenticated` state to `false` after logout.
|
|
31
|
-
*/
|
|
32
|
-
this.handleLogout = async () => {
|
|
33
|
-
try {
|
|
34
|
-
await logout();
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
toast.show(error.message, 'error');
|
|
38
|
-
}
|
|
39
|
-
this.authenticated = false;
|
|
40
|
-
this.user = null;
|
|
41
|
-
};
|
|
42
|
-
this.keycloakUrl = undefined;
|
|
43
|
-
this.keycloakRealm = undefined;
|
|
44
|
-
this.keycloakClientId = undefined;
|
|
45
|
-
this.user = null;
|
|
46
|
-
this.authenticated = false;
|
|
47
|
-
this.username = '';
|
|
48
|
-
this.serverAvailable = false;
|
|
10
|
+
this.user = undefined;
|
|
49
11
|
}
|
|
50
12
|
/**
|
|
51
13
|
* Lifecycle method that runs when the component is about to load.
|
|
52
14
|
* It initializes authentication by calling the `initAuth` method.
|
|
53
15
|
*/
|
|
54
|
-
async componentWillLoad() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
this.serverAvailable = await checkServerAvailability(`${this.keycloakUrl}/realms/${this.keycloakRealm}`);
|
|
62
|
-
if (!this.serverAvailable) {
|
|
63
|
-
toast.show('Keycloak server is unavailable.', 'error');
|
|
64
|
-
return; // Do not proceed further
|
|
65
|
-
}
|
|
66
|
-
await this.initAuth();
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Initializes the Keycloak authentication by configuring Keycloak with the provided props.
|
|
70
|
-
* Sets the `authenticated` state and `user` data if the user is authenticated.
|
|
71
|
-
* Emits `authStatusChanged` event with the authentication status.
|
|
72
|
-
*/
|
|
73
|
-
async initAuth() {
|
|
74
|
-
try {
|
|
75
|
-
await initKeycloak({
|
|
76
|
-
url: this.keycloakUrl,
|
|
77
|
-
realm: this.keycloakRealm,
|
|
78
|
-
clientId: this.keycloakClientId
|
|
79
|
-
}, true);
|
|
80
|
-
if (isAuthenticated()) {
|
|
81
|
-
this.user = getUser();
|
|
82
|
-
this.authenticated = true;
|
|
83
|
-
this.authStatusChanged.emit({
|
|
84
|
-
authenticated: this.authenticated,
|
|
85
|
-
user: this.user
|
|
86
|
-
}); // Emit auth status change
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
toast.show(error.message, 'error');
|
|
91
|
-
}
|
|
16
|
+
async componentWillLoad() { }
|
|
17
|
+
get initials() {
|
|
18
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
19
|
+
const initials = `${((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.given_name) === null || _b === void 0 ? void 0 : _b.charAt(0)) || ''}${((_d = (_c = this.user) === null || _c === void 0 ? void 0 : _c.family_name) === null || _d === void 0 ? void 0 : _d.charAt(0)) || ''}`.toUpperCase();
|
|
20
|
+
return initials || ((_g = (_f = (_e = this.user) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.charAt(0)) === null || _g === void 0 ? void 0 : _g.toUpperCase()) || '';
|
|
92
21
|
}
|
|
93
22
|
render() {
|
|
94
|
-
var _a;
|
|
95
|
-
return (h("div", { key: '
|
|
23
|
+
var _a, _b, _c, _d, _e, _f;
|
|
24
|
+
return (h("div", { key: '68bc37b43d006a35e088a647d41b2257fbef25a7', class: "block" }, h("div", { key: '3f4badcb645238de9ac8aaad78e1c132407f5b0d', class: "flex items-center" }, h("eds-dropdown", { key: '7f065f82c5845fd0ebc9c6b465ac56a695a99b77', label: `Welcome, ${(_a = this.user) === null || _a === void 0 ? void 0 : _a.preferred_username}`, intent: "tertiary", "aria-label": "User Menu", "dropdown-pos": "right", "dropdown-offset": "false", icon: "chevron-down", class: "text-default" }, h("div", { key: '2b1e9279c8d4feae16bf64c15837b61b945af447', class: "min-w-[280px] p-8" }, h("div", { key: 'efa9aef50bc1eb4961e53a89f6e07cc5ff78d67b', class: "flex gap-x-16 pb-16 border-b-2 border-softer" }, h("eds-avatar", { key: '2b78a6768ecb101138ab742d812d407e1b4fdd89', "first-name": (_b = this.user) === null || _b === void 0 ? void 0 : _b.given_name, "last-name": (_c = this.user) === null || _c === void 0 ? void 0 : _c.family_name, initials: this.initials, color: "grey", rounded: true, "initials-strong": true }), h("div", { key: 'd538dfe8df5e8af92fa204493b8b59b0d0e9f61a', class: "max-w-full" }, ((_d = this.user) === null || _d === void 0 ? void 0 : _d.name) && h("p", { key: 'a644c3cdda0ce7bf2f62438a3866692f4222efeb', class: "f-ui-01 text-default w-full text-ellipsis" }, this.user.name), ((_e = this.user) === null || _e === void 0 ? void 0 : _e.preferred_username) && (h("p", { key: '2a6cf5f0324d27ebdfd2b331e5f232c23e544ad5', class: "f-ui-03-light text-light mt-4" }, this.user.preferred_username)), ((_f = this.user) === null || _f === void 0 ? void 0 : _f.email) && h("p", { key: '02b9dd4f2999b68107eabc2c1e2a1bc3bb98f26a', class: "f-ui-03-light text-light mt-4" }, this.user.email))), h("div", { key: '3a68427dc603f0a3fb2652bfbea292eb718046dd', class: "text-default mt-16 flex w-full flex-col gap-y-8" }, h("div", { key: '3f3f617385efc57502794f78079b8486b6801425', class: "border-softer mb-10 border-b-2 pb-16" }, h("eds-link", { key: '62fbc143f710605c7d840277dc90054a1162831d', label: "My EBRAINS", "aria-label": "My EBRAINS", url: "https://www.ebrains.eu/dashboard", intent: "primary", "extra-class": "w-full", external: true })), h("eds-link", { key: 1, label: "Account Settings", url: "https://iam.ebrains.eu/auth/realms/hbp/account/", intent: "secondary", icon: "arrow-diagonal", external: true, "extra-class": "w-full" }), h("slot", { key: 'f48a4c872784b60e421fda6e48f67f4c85b101d7' })))))));
|
|
96
25
|
}
|
|
97
26
|
static get is() { return "eds-user"; }
|
|
98
27
|
static get properties() {
|
|
99
28
|
return {
|
|
100
|
-
"
|
|
101
|
-
"type": "
|
|
29
|
+
"user": {
|
|
30
|
+
"type": "unknown",
|
|
102
31
|
"mutable": false,
|
|
103
32
|
"complexType": {
|
|
104
|
-
"original": "string",
|
|
105
|
-
"resolved": "string",
|
|
33
|
+
"original": "{\n email: string;\n name: string;\n given_name: string;\n family_name: string;\n preferred_username: string;\n }",
|
|
34
|
+
"resolved": "{ email: string; name: string; given_name: string; family_name: string; preferred_username: string; }",
|
|
106
35
|
"references": {}
|
|
107
36
|
},
|
|
108
37
|
"required": false,
|
|
109
38
|
"optional": false,
|
|
110
39
|
"docs": {
|
|
111
40
|
"tags": [],
|
|
112
|
-
"text": "The
|
|
113
|
-
}
|
|
114
|
-
"attribute": "keycloak-url",
|
|
115
|
-
"reflect": false
|
|
116
|
-
},
|
|
117
|
-
"keycloakRealm": {
|
|
118
|
-
"type": "string",
|
|
119
|
-
"mutable": false,
|
|
120
|
-
"complexType": {
|
|
121
|
-
"original": "string",
|
|
122
|
-
"resolved": "string",
|
|
123
|
-
"references": {}
|
|
124
|
-
},
|
|
125
|
-
"required": false,
|
|
126
|
-
"optional": false,
|
|
127
|
-
"docs": {
|
|
128
|
-
"tags": [],
|
|
129
|
-
"text": "The Keycloak Realm.\nA realm in Keycloak is a space where you manage a set of users, roles,\ngroups, and credentials."
|
|
130
|
-
},
|
|
131
|
-
"attribute": "keycloak-realm",
|
|
132
|
-
"reflect": false
|
|
133
|
-
},
|
|
134
|
-
"keycloakClientId": {
|
|
135
|
-
"type": "string",
|
|
136
|
-
"mutable": false,
|
|
137
|
-
"complexType": {
|
|
138
|
-
"original": "string",
|
|
139
|
-
"resolved": "string",
|
|
140
|
-
"references": {}
|
|
141
|
-
},
|
|
142
|
-
"required": false,
|
|
143
|
-
"optional": false,
|
|
144
|
-
"docs": {
|
|
145
|
-
"tags": [],
|
|
146
|
-
"text": "The Keycloak Client ID.\nThe client ID represents the client application that Keycloak protects.\nIt's configured in the Keycloak admin console and used to identify the app\nrequesting authentication.\nExample: `my-client-app`"
|
|
147
|
-
},
|
|
148
|
-
"attribute": "keycloak-client-id",
|
|
149
|
-
"reflect": false
|
|
41
|
+
"text": "The user object containing user information."
|
|
42
|
+
}
|
|
150
43
|
}
|
|
151
44
|
};
|
|
152
45
|
}
|
|
153
|
-
static get states() {
|
|
154
|
-
return {
|
|
155
|
-
"user": {},
|
|
156
|
-
"authenticated": {},
|
|
157
|
-
"username": {},
|
|
158
|
-
"serverAvailable": {}
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
static get events() {
|
|
162
|
-
return [{
|
|
163
|
-
"method": "authStatusChanged",
|
|
164
|
-
"name": "authStatusChanged",
|
|
165
|
-
"bubbles": true,
|
|
166
|
-
"cancelable": true,
|
|
167
|
-
"composed": true,
|
|
168
|
-
"docs": {
|
|
169
|
-
"tags": [],
|
|
170
|
-
"text": "Event emitted when the authentication status changes.\nIt emits an object {authenticated, user} indicating the new authentication status and the user's information."
|
|
171
|
-
},
|
|
172
|
-
"complexType": {
|
|
173
|
-
"original": "{\n authenticated: boolean;\n user: any;\n }",
|
|
174
|
-
"resolved": "{ authenticated: boolean; user: any; }",
|
|
175
|
-
"references": {}
|
|
176
|
-
}
|
|
177
|
-
}];
|
|
178
|
-
}
|
|
179
46
|
static get elementRef() { return "hostEl"; }
|
|
180
47
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
title: 'Shared Ui/EdsUser',
|
|
3
|
+
component: 'eds-user',
|
|
4
|
+
argTypes: {
|
|
5
|
+
user: {
|
|
6
|
+
control: 'object',
|
|
7
|
+
description: 'User object containing authentication information'
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
args: {
|
|
11
|
+
user: {
|
|
12
|
+
given_name: 'John',
|
|
13
|
+
family_name: 'Doe',
|
|
14
|
+
preferred_username: 'johndoe',
|
|
15
|
+
name: 'John Doe',
|
|
16
|
+
email: 'john.doe@example.com'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export const Default = {
|
|
21
|
+
render: (args) => {
|
|
22
|
+
// Create a container element
|
|
23
|
+
const container = document.createElement('div');
|
|
24
|
+
container.innerHTML = `
|
|
25
|
+
<eds-header>
|
|
26
|
+
<div class="px-16">
|
|
27
|
+
<eds-user></eds-user>
|
|
28
|
+
</div>
|
|
29
|
+
</eds-header>
|
|
30
|
+
`;
|
|
31
|
+
// Grab the eds-user element and assign the user property
|
|
32
|
+
const edsUser = container.querySelector('eds-user');
|
|
33
|
+
edsUser.user = args.user;
|
|
34
|
+
return container;
|
|
35
|
+
},
|
|
36
|
+
args: {
|
|
37
|
+
user: {
|
|
38
|
+
given_name: 'John',
|
|
39
|
+
family_name: 'Doe',
|
|
40
|
+
preferred_username: 'johndoe',
|
|
41
|
+
name: 'John Doe',
|
|
42
|
+
email: 'john.doe@example.com'
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export class EdsAppRoot {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.isAuthenticated = false;
|
|
8
|
+
}
|
|
9
|
+
componentWillLoad() {
|
|
10
|
+
// Create a promise for the initKeycloak event.
|
|
11
|
+
const initKeycloakPromise = new Promise((resolve) => {
|
|
12
|
+
document.addEventListener('initKeycloak', (event) => {
|
|
13
|
+
//console.log('initKeycloak event received:', event.detail);
|
|
14
|
+
resolve(event.detail);
|
|
15
|
+
}, { once: true });
|
|
16
|
+
});
|
|
17
|
+
// Create a promise for the authStatusChanged event.
|
|
18
|
+
const authStatusPromise = new Promise((resolve) => {
|
|
19
|
+
document.addEventListener('authStatusChanged', (event) => {
|
|
20
|
+
var _a;
|
|
21
|
+
this.isAuthenticated = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.authenticated;
|
|
22
|
+
//console.log('authStatusChanged event received:', event.detail);
|
|
23
|
+
resolve(event.detail);
|
|
24
|
+
}, { once: true });
|
|
25
|
+
});
|
|
26
|
+
// Combine both promises. The splash screen will hide only when both have resolved.
|
|
27
|
+
this.combinedInitPromise = Promise.all([initKeycloakPromise, authStatusPromise]);
|
|
28
|
+
}
|
|
29
|
+
render() {
|
|
30
|
+
return (h("div", { key: 'f7ff644cea84bfc78190afcfa33f1f6d6c6de29a' }, h("eds-splash-screen", { key: '5e04f163eafe8f0d55394b8f508386bac013907e', inverse: true, initPromise: this.combinedInitPromise }), h("eds-login", { key: '94c9dc0546e48fe8f9e6fc17fde9dcbf75fbe3bc', "keycloak-url": "http://localhost:8080", "keycloak-realm": "nigeor-realm", "keycloak-client-id": "stencil-app" }), h("main", { key: '975cfb32924ecf0a4bb7d8f4788792eae500e166' }, this.isAuthenticated ? h("h1", null, "Welcome, authenticated user!") : h("h1", null, "Please log in."))));
|
|
31
|
+
}
|
|
32
|
+
static get is() { return "eds-app-root"; }
|
|
33
|
+
static get encapsulation() { return "shadow"; }
|
|
34
|
+
static get states() {
|
|
35
|
+
return {
|
|
36
|
+
"isAuthenticated": {}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// utils/api.ts
|
|
2
|
+
async function checkResponse(response) {
|
|
3
|
+
const data = await response.json().catch(() => ({}));
|
|
4
|
+
if (!response.ok) {
|
|
5
|
+
// Optionally, throw an error or return a structured error object.
|
|
6
|
+
//throw new Error(data.error || `HTTP error! Status: ${response.status}`);
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return data;
|
|
10
|
+
}
|
|
11
|
+
export async function get(url, options = {}) {
|
|
12
|
+
const response = await fetch(url, {
|
|
13
|
+
method: 'GET',
|
|
14
|
+
headers: options.headers
|
|
15
|
+
});
|
|
16
|
+
return checkResponse(response);
|
|
17
|
+
}
|
|
18
|
+
export async function post(url, body, options = {}) {
|
|
19
|
+
// If the body is FormData, omit the 'Content-Type' header so the browser sets it correctly.
|
|
20
|
+
const headers = body instanceof FormData ? options.headers || {} : Object.assign({ 'Content-Type': 'application/json' }, options.headers);
|
|
21
|
+
const response = await fetch(url, {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
headers,
|
|
24
|
+
body: body instanceof FormData ? body : JSON.stringify(body)
|
|
25
|
+
});
|
|
26
|
+
return checkResponse(response);
|
|
27
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { findFieldElement } from "./formValidators";
|
|
2
|
+
/**
|
|
3
|
+
* Updates state values based on draft data and, after a delay, updates the corresponding DOM inputs.
|
|
4
|
+
*/
|
|
5
|
+
export function getFormInitData({ initData, parsedFields, currentValues, formEl, isFieldVisible }) {
|
|
6
|
+
// Pass 1: Update state for all fields.
|
|
7
|
+
const updatedValues = Object.assign({}, currentValues);
|
|
8
|
+
parsedFields.forEach((field) => {
|
|
9
|
+
const value = initData[field.name];
|
|
10
|
+
if (value !== undefined) {
|
|
11
|
+
updatedValues[field.name] = value;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
// Pass 2: Delay DOM updates to ensure nested fields are rendered.
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
parsedFields.forEach((field) => {
|
|
17
|
+
// Only update if the field is visible.
|
|
18
|
+
if (isFieldVisible(field, updatedValues)) {
|
|
19
|
+
const value = initData[field.name];
|
|
20
|
+
if (value !== undefined) {
|
|
21
|
+
if (field.type === 'checkbox' || field.type === 'radio') {
|
|
22
|
+
// Query all eds-input-field components and update matching inputs.
|
|
23
|
+
const elements = Array.from(formEl.querySelectorAll('eds-input-field'));
|
|
24
|
+
elements.forEach((element) => {
|
|
25
|
+
if (element.shadowRoot) {
|
|
26
|
+
const inputs = Array.from(element.shadowRoot.querySelectorAll(`[name="${field.name}"]`));
|
|
27
|
+
// Convert stored comma-separated value into a trimmed array.
|
|
28
|
+
const valuesArray = value.split(',').map((v) => v.trim());
|
|
29
|
+
inputs.forEach((inputEl) => {
|
|
30
|
+
// eslint-disable-next-line
|
|
31
|
+
inputEl.checked = valuesArray.includes(inputEl.value);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// For non-checkbox/radio inputs, update the first matching element using findFieldElement.
|
|
38
|
+
const inputEl = findFieldElement(formEl, field.name);
|
|
39
|
+
if (inputEl) {
|
|
40
|
+
inputEl.value = value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}, 50); // A 50ms delay to allow re-render
|
|
47
|
+
return { updatedValues };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Updates state values based on draft data and, after a delay, updates the corresponding DOM inputs.
|
|
51
|
+
*/
|
|
52
|
+
export function getFormDraftData({ draftData, parsedFields, currentValues, formEl, isFieldVisible }) {
|
|
53
|
+
// Pass 1: Update state for all fields.
|
|
54
|
+
const updatedValues = Object.assign({}, currentValues);
|
|
55
|
+
parsedFields.forEach((field) => {
|
|
56
|
+
const value = draftData[field.name];
|
|
57
|
+
if (value !== undefined) {
|
|
58
|
+
updatedValues[field.name] = value;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// Pass 2: Delay DOM updates to ensure nested fields are rendered.
|
|
62
|
+
setTimeout(() => {
|
|
63
|
+
parsedFields.forEach((field) => {
|
|
64
|
+
// Only update if the field is visible.
|
|
65
|
+
if (isFieldVisible(field, updatedValues)) {
|
|
66
|
+
const value = draftData[field.name];
|
|
67
|
+
if (value !== undefined) {
|
|
68
|
+
if (field.type === 'checkbox' || field.type === 'radio') {
|
|
69
|
+
// Query all eds-input-field components and update matching inputs.
|
|
70
|
+
const elements = Array.from(formEl.querySelectorAll('eds-input-field'));
|
|
71
|
+
elements.forEach((element) => {
|
|
72
|
+
if (element.shadowRoot) {
|
|
73
|
+
const inputs = Array.from(element.shadowRoot.querySelectorAll(`[name="${field.name}"]`));
|
|
74
|
+
// Convert stored comma-separated value into a trimmed array.
|
|
75
|
+
const valuesArray = value.split(',').map((v) => v.trim());
|
|
76
|
+
inputs.forEach((inputEl) => {
|
|
77
|
+
// eslint-disable-next-line
|
|
78
|
+
inputEl.checked = valuesArray.includes(inputEl.value);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// For non-checkbox/radio inputs, update the first matching element using findFieldElement.
|
|
85
|
+
const inputEl = findFieldElement(formEl, field.name);
|
|
86
|
+
if (inputEl) {
|
|
87
|
+
inputEl.value = value;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}, 50); // A 50ms delay to allow re-render
|
|
94
|
+
return { updatedValues };
|
|
95
|
+
}
|