@designsystem-se/af 37.0.1 → 37.0.2-beta.1
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/components/digi-bar-chart.js +1 -1
- package/components/digi-button.js +1 -1
- package/components/digi-calendar-datepicker.js +4 -4
- package/components/digi-calendar-week-view.js +1 -1
- package/components/digi-calendar.js +1 -1
- package/components/digi-chart-line.js +1 -1
- package/components/digi-code-block.js +1 -1
- package/components/digi-code-example.js +3 -3
- package/components/digi-context-menu.js +1 -1
- package/components/digi-dialog.js +3 -3
- package/components/digi-expandable-faq-item.js +1 -1
- package/components/digi-footer.js +1 -1
- package/components/digi-form-category-filter.js +1 -1
- package/components/digi-form-checkbox.js +1 -1
- package/components/digi-form-error-list.js +3 -3
- package/components/digi-form-file-upload.js +1 -1
- package/components/digi-form-filter.js +3 -3
- package/components/digi-form-input-search.js +1 -1
- package/components/digi-form-receipt.js +1 -1
- package/components/digi-form-select-filter.js +3 -3
- package/components/digi-form-select.js +1 -1
- package/components/digi-header-avatar.js +1 -1
- package/components/digi-header-navigation.js +2 -2
- package/components/digi-header.js +5 -5
- package/components/digi-info-card-multi.js +1 -1
- package/components/digi-info-card.js +2 -2
- package/components/digi-link-internal.js +1 -1
- package/components/digi-logo.js +1 -1
- package/components/digi-navigation-pagination.js +2 -2
- package/components/digi-navigation-sidebar-button.js +1 -1
- package/components/digi-navigation-sidebar.js +1 -1
- package/components/digi-navigation-vertical-menu-item.js +1 -1
- package/components/digi-notification-alert.js +1 -1
- package/components/digi-notification-error-page.js +1 -1
- package/components/digi-progress-indicator.js +1 -1
- package/components/digi-quote.js +1 -1
- package/components/digi-tag.js +1 -1
- package/components/digi-title-logo.js +1 -1
- package/components/digi-tools-feedback.js +3 -3
- package/components/digi-tools-theme-provider.js +18 -5
- package/components/index.js +1 -1
- package/components/p-0139aa4e.js +66 -0
- package/components/{p-9466c4e0.js → p-117e7b18.js} +1 -1
- package/components/{p-f53eb01a.js → p-35dc20c4.js} +1 -1
- package/components/{p-7ff04204.js → p-6bc35478.js} +2 -2
- package/components/{p-44f143ea.js → p-7d3fb535.js} +2 -2
- package/components/p-a761b038.js +165 -0
- package/components/{p-2ac136a0.js → p-a79e144f.js} +1 -1
- package/components/p-ae129206.js +163 -0
- package/components/p-d7ef9cb1.js +13 -0
- package/components/{p-62a0008b.js → p-f5f26951.js} +2 -2
- package/custom-elements.json +4 -0
- package/dist/cjs/digi-arbetsformedlingen.cjs.js +1 -1
- package/dist/cjs/digi-button_83.cjs.entry.js +8198 -0
- package/dist/cjs/digi-calendar-week-view.cjs.entry.js +50 -51
- package/dist/cjs/{digi-code-block_3.cjs.entry.js → digi-code-block_2.cjs.entry.js} +2 -123
- package/dist/cjs/digi-code-example.cjs.entry.js +1 -1
- package/dist/cjs/digi-dialog.cjs.entry.js +3 -21
- package/dist/cjs/digi-form-error-list.cjs.entry.js +2 -20
- package/dist/cjs/digi-form-input-search.cjs.entry.js +6 -7
- package/dist/cjs/digi-form-receipt.cjs.entry.js +2 -20
- package/dist/cjs/digi-navigation-pagination.cjs.entry.js +2 -20
- package/dist/cjs/digi-notification-error-page.cjs.entry.js +2 -20
- package/dist/cjs/digi-quote.cjs.entry.js +1 -1
- package/dist/cjs/digi-tools-feedback.cjs.entry.js +3 -21
- package/dist/cjs/{form-input-type.enum-9c8ee12a.js → form-input-type.enum-1fb2180a.js} +14 -0
- package/dist/cjs/index-7a477838.js +4 -188
- package/dist/cjs/{index-ac8e01b4.js → index-acb7b350.js} +189 -19
- package/dist/cjs/index.cjs.js +196 -208
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{typography-variation.enum-118ff8e5.js → typography-variation.enum-d87d726d.js} +249 -0
- package/dist/collection/components/_button/button/button.css +10 -10
- package/dist/collection/components/_calendar/calendar/calendar.css +7 -2
- package/dist/collection/components/_calendar/calendar-datepicker/calendar-datepicker.css +355 -102
- package/dist/collection/components/_code/code-example/code-example.css +6 -0
- package/dist/collection/components/_dialog/dialog/dialog.css +1 -1
- package/dist/collection/components/_expandable/expandable-faq-item/expandable-faq-item.css +2 -2
- package/dist/collection/components/_form/form-checkbox/form-checkbox.css +355 -102
- package/dist/collection/components/_form/form-file-upload/form-file-upload.css +4 -3
- package/dist/collection/components/_form/form-filter/form-filter.css +1 -1
- package/dist/collection/components/_form/form-select/form-select.css +2 -2
- package/dist/collection/components/_form/form-select-filter/form-select-filter.css +2 -2
- package/dist/collection/components/_header/header/header.js +2 -2
- package/dist/collection/components/_header/header-avatar/header-avatar.css +354 -101
- package/dist/collection/components/_info-card/info-card/info-card.css +2 -2
- package/dist/collection/components/_info-card/info-card-multi/info-card-multi.css +1 -1
- package/dist/collection/components/_link/link-internal/link-internal.css +354 -101
- package/dist/collection/components/_navigation/navigation-vertical-menu-item/navigation-vertical-menu-item.css +3 -3
- package/dist/collection/components/_progress/progress-indicator/progress-indicator.css +4 -3
- package/dist/collection/components/_quote/quote/quote.css +2 -2
- package/dist/collection/components/_tools/tools-feedback/tools-feedback.css +1 -1
- package/dist/collection/components/_tools/tools-theme-provider/tools-theme-provider.css +113 -2
- package/dist/collection/components/_tools/tools-theme-provider/tools-theme-provider.js +43 -2
- package/dist/collection/components/_tools/tools-theme-provider/tools-theme-provider.theme.enum.js +5 -0
- package/dist/collection/design-tokens/components/_button.variables.scss +10 -10
- package/dist/collection/design-tokens/components/_calendar-datepicker.variables.scss +1 -1
- package/dist/collection/design-tokens/components/_calendar.variables.scss +3 -2
- package/dist/collection/design-tokens/components/_dialog.variables.scss +1 -1
- package/dist/collection/design-tokens/components/_expandable-faq-item.variables.scss +2 -2
- package/dist/collection/design-tokens/components/_form-checkbox.variables.scss +1 -1
- package/dist/collection/design-tokens/components/_form-file-upload.variables.scss +2 -0
- package/dist/collection/design-tokens/components/_form-filter.variables.scss +1 -1
- package/dist/collection/design-tokens/components/_form-select-filter.variables.scss +2 -2
- package/dist/collection/design-tokens/components/_form-select.variables.scss +2 -2
- package/dist/collection/design-tokens/components/_info-card-multi.variables.scss +1 -1
- package/dist/collection/design-tokens/components/_info-card.variables.scss +2 -2
- package/dist/collection/design-tokens/components/_navigation-vertical-menu-item.variables.scss +3 -3
- package/dist/collection/design-tokens/components/_quote.variables.scss +2 -2
- package/dist/collection/design-tokens/components/_tools-feedback.variables.scss +1 -1
- package/dist/collection/enums.js +1 -0
- package/dist/collection/styles/src/_alias.mixin.scss +278 -128
- package/dist/collection/styles/src/themes/_common.mixin.scss +7 -0
- package/dist/collection/styles/src/themes/_theme-af25.mixin.scss +147 -0
- package/dist/collection/styles/src/tokens-documentation/web-AF25.json +1406 -323
- package/dist/digi-arbetsformedlingen/design-tokens/components/_button.variables.scss +10 -10
- package/dist/digi-arbetsformedlingen/design-tokens/components/_calendar-datepicker.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/design-tokens/components/_calendar.variables.scss +3 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_dialog.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/design-tokens/components/_expandable-faq-item.variables.scss +2 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_form-checkbox.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/design-tokens/components/_form-file-upload.variables.scss +2 -0
- package/dist/digi-arbetsformedlingen/design-tokens/components/_form-filter.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/design-tokens/components/_form-select-filter.variables.scss +2 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_form-select.variables.scss +2 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_info-card-multi.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/design-tokens/components/_info-card.variables.scss +2 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_navigation-vertical-menu-item.variables.scss +3 -3
- package/dist/digi-arbetsformedlingen/design-tokens/components/_quote.variables.scss +2 -2
- package/dist/digi-arbetsformedlingen/design-tokens/components/_tools-feedback.variables.scss +1 -1
- package/dist/digi-arbetsformedlingen/digi-arbetsformedlingen.css +1 -1
- package/dist/digi-arbetsformedlingen/digi-arbetsformedlingen.esm.js +1 -1
- package/dist/digi-arbetsformedlingen/index.esm.js +1 -1
- package/dist/digi-arbetsformedlingen/p-09169f17.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-3066da42.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-64b65586.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-81bbd04c.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-82225661.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-8f775593.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-901a3527.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-920aee36.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-94a9a0f4.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-a105d9fe.js +1 -0
- package/dist/digi-arbetsformedlingen/p-a6009681.js +1 -0
- package/dist/digi-arbetsformedlingen/p-c64b4626.js +1 -0
- package/dist/digi-arbetsformedlingen/p-ec9e7c00.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-f601908d.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/p-f6edfd64.entry.js +1 -0
- package/dist/digi-arbetsformedlingen/styles/src/_alias.mixin.scss +278 -128
- package/dist/digi-arbetsformedlingen/styles/src/themes/_common.mixin.scss +7 -0
- package/dist/digi-arbetsformedlingen/styles/src/themes/_theme-af25.mixin.scss +147 -0
- package/dist/digi-arbetsformedlingen/styles/src/tokens-documentation/web-AF25.json +1406 -323
- package/dist/esm/digi-arbetsformedlingen.js +1 -1
- package/dist/esm/digi-button_83.entry.js +8112 -0
- package/dist/esm/digi-calendar-week-view.entry.js +1 -2
- package/dist/esm/{digi-code-block_3.entry.js → digi-code-block_2.entry.js} +4 -124
- package/dist/esm/digi-code-example.entry.js +1 -1
- package/dist/esm/digi-dialog.entry.js +3 -21
- package/dist/esm/digi-form-error-list.entry.js +2 -20
- package/dist/esm/digi-form-input-search.entry.js +1 -2
- package/dist/esm/digi-form-receipt.entry.js +2 -20
- package/dist/esm/digi-navigation-pagination.entry.js +2 -20
- package/dist/esm/digi-notification-error-page.entry.js +2 -20
- package/dist/esm/digi-quote.entry.js +1 -1
- package/dist/esm/digi-tools-feedback.entry.js +3 -21
- package/dist/esm/{form-input-type.enum-3da3db27.js → form-input-type.enum-a6bba983.js} +15 -1
- package/dist/esm/index-148a7577.js +4 -188
- package/dist/esm/{index-2fce392f.js → index-dc6b83f7.js} +170 -3
- package/dist/esm/index.js +2 -20
- package/dist/esm/loader.js +1 -1
- package/dist/esm/typography-variation.enum-c5257524.js +507 -0
- package/dist/types/components/_tools/tools-theme-provider/tools-theme-provider.d.ts +9 -0
- package/dist/types/components/_tools/tools-theme-provider/tools-theme-provider.theme.enum.d.ts +4 -0
- package/dist/types/components.d.ts +12 -0
- package/dist/types/enums.d.ts +1 -0
- package/hydrate/index.js +43 -24
- package/hydrate/index.mjs +43 -24
- package/package.json +1 -1
- package/components/p-4bad4fb0.js +0 -7
- package/components/p-b57677c1.js +0 -66
- package/components/p-e8fc33ed.js +0 -165
- package/components/p-ff4f4fb8.js +0 -163
- package/dist/cjs/digi-button_17.cjs.entry.js +0 -1120
- package/dist/cjs/digi-calendar-datepicker.cjs.entry.js +0 -2600
- package/dist/cjs/digi-calendar_2.cjs.entry.js +0 -464
- package/dist/cjs/digi-expandable-faq-item.cjs.entry.js +0 -97
- package/dist/cjs/digi-footer-card.cjs.entry.js +0 -29
- package/dist/cjs/digi-footer.cjs.entry.js +0 -75
- package/dist/cjs/digi-form-category-filter.cjs.entry.js +0 -121
- package/dist/cjs/digi-form-checkbox.cjs.entry.js +0 -127
- package/dist/cjs/digi-form-file-upload.cjs.entry.js +0 -589
- package/dist/cjs/digi-form-filter.cjs.entry.js +0 -248
- package/dist/cjs/digi-form-input.cjs.entry.js +0 -194
- package/dist/cjs/digi-form-label_3.cjs.entry.js +0 -129
- package/dist/cjs/digi-form-select-filter.cjs.entry.js +0 -565
- package/dist/cjs/digi-form-select_2.cjs.entry.js +0 -186
- package/dist/cjs/digi-icon-accessibility-universal.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-check-circle-solid_4.cjs.entry.js +0 -99
- package/dist/cjs/digi-icon-check.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-chevron-down.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-chevron-left_2.cjs.entry.js +0 -53
- package/dist/cjs/digi-icon-copy.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-envelope.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-external-link-alt_2.cjs.entry.js +0 -60
- package/dist/cjs/digi-icon-globe.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-list-ul_6.cjs.entry.js +0 -145
- package/dist/cjs/digi-icon-minus_2.cjs.entry.js +0 -53
- package/dist/cjs/digi-icon-notification-error_4.cjs.entry.js +0 -99
- package/dist/cjs/digi-icon-sign.cjs.entry.js +0 -30
- package/dist/cjs/digi-icon-spinner.cjs.entry.js +0 -31
- package/dist/cjs/digi-icon-validation-error_2.cjs.entry.js +0 -53
- package/dist/cjs/digi-info-card-multi-container.cjs.entry.js +0 -22
- package/dist/cjs/digi-info-card-multi.cjs.entry.js +0 -58
- package/dist/cjs/digi-info-card.cjs.entry.js +0 -79
- package/dist/cjs/digi-layout-columns.cjs.entry.js +0 -33
- package/dist/cjs/digi-link-button.cjs.entry.js +0 -66
- package/dist/cjs/digi-link-internal.cjs.entry.js +0 -37
- package/dist/cjs/digi-link.cjs.entry.js +0 -75
- package/dist/cjs/digi-logo.cjs.entry.js +0 -69
- package/dist/cjs/digi-navigation-vertical-menu-item.cjs.entry.js +0 -150
- package/dist/cjs/digi-navigation-vertical-menu.cjs.entry.js +0 -177
- package/dist/cjs/digi-notification-alert.cjs.entry.js +0 -113
- package/dist/cjs/digi-progress-indicator.cjs.entry.js +0 -137
- package/dist/cjs/digi-tag-media.cjs.entry.js +0 -47
- package/dist/cjs/digi-tools-theme-provider.cjs.entry.js +0 -28
- package/dist/cjs/digi-typography-heading-jumbo.cjs.entry.js +0 -38
- package/dist/cjs/digi-typography-preamble.cjs.entry.js +0 -20
- package/dist/cjs/digi-typography.cjs.entry.js +0 -26
- package/dist/cjs/digi-util-mutation-observer.cjs.entry.js +0 -64
- package/dist/cjs/expandable-faq-item-variation.enum-89427195.js +0 -18
- package/dist/cjs/footer-card-variation.enum-99555edc.js +0 -8
- package/dist/cjs/form-checkbox-variation.enum-d2ca879e.js +0 -19
- package/dist/cjs/form-file-upload-variation.enum-634cfae8.js +0 -24
- package/dist/cjs/form-input-search-variation.enum-e0e025b1.js +0 -15
- package/dist/cjs/form-input-variation.enum-c750520c.js +0 -29
- package/dist/cjs/form-select-variation.enum-528c1bf0.js +0 -16
- package/dist/cjs/form-validation-message-variation.enum-855ae0be.js +0 -8
- package/dist/cjs/index-cad91a90.js +0 -66
- package/dist/cjs/index-e8333bcc.js +0 -174
- package/dist/cjs/info-card-multi-type.enum-14746572.js +0 -8
- package/dist/cjs/info-card-variation.enum-64cef637.js +0 -24
- package/dist/cjs/layout-columns-variation.enum-65675649.js +0 -23
- package/dist/cjs/link-button-variation.enum-137785e3.js +0 -9
- package/dist/cjs/logo-variation.enum-607fadb4.js +0 -13
- package/dist/cjs/navigation-vertical-menu-variation.enum-c237edd3.js +0 -13
- package/dist/cjs/progress-indicator-variation.enum-7cf8e0e4.js +0 -13
- package/dist/cjs/tag-media-icon.enum-372563c5.js +0 -11
- package/dist/cjs/tools-theme-provider.brand.enum-bc855272.js +0 -7
- package/dist/cjs/typography-heading-jumbo-variation.enum-8677e099.js +0 -17
- package/dist/digi-arbetsformedlingen/p-029c4d40.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-0501a287.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-07303cb5.js +0 -1
- package/dist/digi-arbetsformedlingen/p-07985aef.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-0c77050e.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-0f6c0360.js +0 -1
- package/dist/digi-arbetsformedlingen/p-16f09f62.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-1f3345e9.js +0 -1
- package/dist/digi-arbetsformedlingen/p-1f956af8.js +0 -1
- package/dist/digi-arbetsformedlingen/p-2693c1d8.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-286973f2.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-290d1746.js +0 -1
- package/dist/digi-arbetsformedlingen/p-2a023831.js +0 -1
- package/dist/digi-arbetsformedlingen/p-2c698144.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-33349e7e.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-3a76bfde.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-3b20ec86.js +0 -1
- package/dist/digi-arbetsformedlingen/p-3c0c5222.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-3d7fff3c.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-3dafce70.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-41bc039f.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-443e9415.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-4841b4e1.js +0 -1
- package/dist/digi-arbetsformedlingen/p-4bad4fb0.js +0 -1
- package/dist/digi-arbetsformedlingen/p-4e36c467.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-51149879.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-51bfa2a9.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-57319a80.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-57a0cc63.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-583d40dc.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-5d3383f9.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-5eba5ec4.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-61385dc4.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-681e7beb.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-6bd60ab6.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-6d864e79.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7238fdb8.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7327f45d.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7888e12c.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-78c99e87.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7933b555.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7aacd45f.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7c116ffb.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-7e125c6e.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-8142cc73.js +0 -1
- package/dist/digi-arbetsformedlingen/p-814ca2ad.js +0 -1
- package/dist/digi-arbetsformedlingen/p-820e795b.js +0 -1
- package/dist/digi-arbetsformedlingen/p-82a89ca1.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-870c4f49.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-88b4d03a.js +0 -1
- package/dist/digi-arbetsformedlingen/p-8e1568c4.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-8e47ac34.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-905ccb30.js +0 -1
- package/dist/digi-arbetsformedlingen/p-93766b5e.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-96987381.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-9a6ea3b7.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-9b7f0707.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-9be9a291.js +0 -1
- package/dist/digi-arbetsformedlingen/p-9dd5d6c8.js +0 -1
- package/dist/digi-arbetsformedlingen/p-a2561b9e.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-a34dfc04.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-b4bef936.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-bd55807c.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-c29ab968.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-c461917d.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-c68bf2b3.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-c7949525.js +0 -1
- package/dist/digi-arbetsformedlingen/p-ccd617cc.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-d055d564.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-d1886fff.js +0 -1
- package/dist/digi-arbetsformedlingen/p-d5376b7c.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-d7aa8315.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-df3a8ec4.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-e9abb2b1.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-eada91bf.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-edcb61eb.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-ee88e3f1.js +0 -1
- package/dist/digi-arbetsformedlingen/p-eeca26b2.entry.js +0 -1
- package/dist/digi-arbetsformedlingen/p-f40f4b2a.js +0 -1
- package/dist/digi-arbetsformedlingen/p-f447b984.js +0 -1
- package/dist/digi-arbetsformedlingen/p-f94db846.entry.js +0 -1
- package/dist/esm/digi-button_17.entry.js +0 -1100
- package/dist/esm/digi-calendar-datepicker.entry.js +0 -2596
- package/dist/esm/digi-calendar_2.entry.js +0 -459
- package/dist/esm/digi-expandable-faq-item.entry.js +0 -93
- package/dist/esm/digi-footer-card.entry.js +0 -25
- package/dist/esm/digi-footer.entry.js +0 -71
- package/dist/esm/digi-form-category-filter.entry.js +0 -117
- package/dist/esm/digi-form-checkbox.entry.js +0 -123
- package/dist/esm/digi-form-file-upload.entry.js +0 -585
- package/dist/esm/digi-form-filter.entry.js +0 -244
- package/dist/esm/digi-form-input.entry.js +0 -190
- package/dist/esm/digi-form-label_3.entry.js +0 -123
- package/dist/esm/digi-form-select-filter.entry.js +0 -561
- package/dist/esm/digi-form-select_2.entry.js +0 -181
- package/dist/esm/digi-icon-accessibility-universal.entry.js +0 -26
- package/dist/esm/digi-icon-check-circle-solid_4.entry.js +0 -92
- package/dist/esm/digi-icon-check.entry.js +0 -26
- package/dist/esm/digi-icon-chevron-down.entry.js +0 -26
- package/dist/esm/digi-icon-chevron-left_2.entry.js +0 -48
- package/dist/esm/digi-icon-copy.entry.js +0 -26
- package/dist/esm/digi-icon-envelope.entry.js +0 -26
- package/dist/esm/digi-icon-external-link-alt_2.entry.js +0 -55
- package/dist/esm/digi-icon-globe.entry.js +0 -26
- package/dist/esm/digi-icon-list-ul_6.entry.js +0 -136
- package/dist/esm/digi-icon-minus_2.entry.js +0 -48
- package/dist/esm/digi-icon-notification-error_4.entry.js +0 -92
- package/dist/esm/digi-icon-sign.entry.js +0 -26
- package/dist/esm/digi-icon-spinner.entry.js +0 -27
- package/dist/esm/digi-icon-validation-error_2.entry.js +0 -48
- package/dist/esm/digi-info-card-multi-container.entry.js +0 -18
- package/dist/esm/digi-info-card-multi.entry.js +0 -54
- package/dist/esm/digi-info-card.entry.js +0 -75
- package/dist/esm/digi-layout-columns.entry.js +0 -29
- package/dist/esm/digi-link-button.entry.js +0 -62
- package/dist/esm/digi-link-internal.entry.js +0 -33
- package/dist/esm/digi-link.entry.js +0 -71
- package/dist/esm/digi-logo.entry.js +0 -65
- package/dist/esm/digi-navigation-vertical-menu-item.entry.js +0 -146
- package/dist/esm/digi-navigation-vertical-menu.entry.js +0 -173
- package/dist/esm/digi-notification-alert.entry.js +0 -109
- package/dist/esm/digi-progress-indicator.entry.js +0 -133
- package/dist/esm/digi-tag-media.entry.js +0 -43
- package/dist/esm/digi-tools-theme-provider.entry.js +0 -24
- package/dist/esm/digi-typography-heading-jumbo.entry.js +0 -34
- package/dist/esm/digi-typography-preamble.entry.js +0 -16
- package/dist/esm/digi-typography.entry.js +0 -22
- package/dist/esm/digi-util-mutation-observer.entry.js +0 -60
- package/dist/esm/expandable-faq-item-variation.enum-a8cb225b.js +0 -18
- package/dist/esm/footer-card-variation.enum-cc732148.js +0 -8
- package/dist/esm/form-checkbox-variation.enum-83e906fc.js +0 -19
- package/dist/esm/form-file-upload-variation.enum-9c49ec5e.js +0 -24
- package/dist/esm/form-input-search-variation.enum-6d8dc10a.js +0 -15
- package/dist/esm/form-input-variation.enum-64d9450f.js +0 -29
- package/dist/esm/form-select-variation.enum-f2f6098d.js +0 -16
- package/dist/esm/form-validation-message-variation.enum-bcef8a9d.js +0 -8
- package/dist/esm/index-5b6c95c6.js +0 -63
- package/dist/esm/index-8685f88d.js +0 -170
- package/dist/esm/info-card-multi-type.enum-07ee124f.js +0 -8
- package/dist/esm/info-card-variation.enum-2ccc52c1.js +0 -24
- package/dist/esm/layout-columns-variation.enum-34f7754e.js +0 -23
- package/dist/esm/link-button-variation.enum-84d4976f.js +0 -9
- package/dist/esm/logo-variation.enum-5b68b79f.js +0 -13
- package/dist/esm/navigation-vertical-menu-variation.enum-c30b0ea9.js +0 -13
- package/dist/esm/progress-indicator-variation.enum-b12ba50a.js +0 -13
- package/dist/esm/tag-media-icon.enum-fefa191c.js +0 -11
- package/dist/esm/tools-theme-provider.brand.enum-8c5a98c9.js +0 -7
- package/dist/esm/typography-heading-jumbo-variation.enum-eb737f1b.js +0 -17
- package/dist/esm/typography-variation.enum-23eeecd2.js +0 -258
|
@@ -1,585 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-148a7577.js';
|
|
2
|
-
import { _ as _t } from './text-8f88c0f6.js';
|
|
3
|
-
import { r as randomIdGenerator } from './randomIdGenerator.util-56406f2e.js';
|
|
4
|
-
import { b as FormFileUploadVariation, a as FormFileUploadValidation, F as FormFileUploadHeadingLevel } from './form-file-upload-variation.enum-9c49ec5e.js';
|
|
5
|
-
import { U as UtilBreakpointObserverBreakpoints } from './util-breakpoint-observer-breakpoints.enum-6d004731.js';
|
|
6
|
-
import { F as FormValidationMessageVariation } from './form-validation-message-variation.enum-bcef8a9d.js';
|
|
7
|
-
|
|
8
|
-
const formFileUploadCss = ".sc-digi-form-file-upload-h {\n --digi--form-file-upload--color--background--small--default: var(--digi--color--background--interactive--default--quaternary);\n --digi--form-file-upload--color--background--small--hover: var(--digi--color--background--interactive--hover--secondary);\n --digi--form-file-upload--color--background--medium--default: var(--digi--color--background--interactive--default--quaternary);\n --digi--form-file-upload--color--background--medium--hover: var(--digi--color--background--interactive--hover--secondary);\n --digi--form-file-upload--color--background--large--default: var(--digi--color--background--interactive--default--quaternary);\n --digi--form-file-upload--color--background--large--hover: var(--digi--color--background--interactive--hover--secondary);\n --digi--form-file-upload--color--border--small--default: var(--digi--color--border--interactive--default--on-input-nuance);\n --digi--form-file-upload--color--border--small--hover: var(--digi--color--border--interactive--hover--primary);\n --digi--form-file-upload--color--border--medium--default: var(--digi--color--border--interactive--default--on-input-nuance);\n --digi--form-file-upload--color--border--medium--hover: var(--digi--color--border--interactive--hover--primary);\n --digi--form-file-upload--color--border--large--default: var(--digi--color--border--interactive--default--on-input-nuance);\n --digi--form-file-upload--color--border--large--hover: var(--digi--color--border--interactive--hover--primary);\n --digi--form-file-upload--border-width--small--default: var(--digi--border-width--secondary);\n --digi--form-file-upload--border-width--small--hover: var(--digi--border-width--primary);\n --digi--form-file-upload--border-width--medium--default: var(--digi--border-width--secondary);\n --digi--form-file-upload--border-width--medium--hover: var(--digi--border-width--primary);\n --digi--form-file-upload--border-width--large--default: var(--digi--border-width--secondary);\n --digi--form-file-upload--border-width--large--hover: var(--digi--border-width--primary);\n --digi--form-file-upload--border-style--small--default: var(--digi--global--border-style--none);\n --digi--form-file-upload--border-style--medium--default: var(--digi--global--border-style--dashed);\n --digi--form-file-upload--border-style--large--default: var(--digi--global--border-style--dashed);\n --digi--form-file-upload--border-radius--small--default: var(--digi--border-radius--secondary);\n --digi--form-file-upload--border-radius--medium--default: var(--digi--border-radius--secondary);\n --digi--form-file-upload--border-radius--large--default: var(--digi--border-radius--secondary);\n --digi--form-file-upload--padding--small: var(--digi--gutter--medium) var(--digi--gutter--largest);\n --digi--form-file-upload--padding--medium: var(--digi--gutter--medium) var(--digi--gutter--medium) var(--digi--global--spacing--largest-2) var(--digi--gutter--medium);\n --digi--form-file-upload--padding--large: var(--digi--gutter--medium) var(--digi--gutter--medium) var(--digi--global--spacing--largest-2) var(--digi--gutter--medium);\n --digi--form-file-upload--font-size--small: var(--digi--global--typography--font-size--small);\n --digi--form-file-upload--font-size--medium: var(--digi--global--typography--font-size--base);\n --digi--form-file-upload--font-size--large: var(--digi--global--typography--font-size--large);\n --digi--form-file-upload--heading--font-family: var(--digi--global--typography--font-family--default);\n --digi--form-file-upload--heading--font-weight: var(--digi--typography--heading-4--font-weight--desktop);\n --digi--form-file-upload--heading--font-size: var(--digi--typography--heading-4--font-size--desktop);\n --digi--form-file-upload--heading--font-size--large: var(--digi--typography--heading-4--font-size--desktop-large);\n --digi--form-file-upload--font-family: var(--digi--global--typography--font-family--default);\n --digi--form-file-upload--font-weight: var(--digi--typography--form-file-upload--font-weight--desktop);\n --digi--form-file-upload--button-text--color--default: var(--digi--color--text--interactive--primary);\n --digi--form-file-upload--button-text--color--hover: var(--digi--color--text--interactive--primary);\n --digi--form-file-upload--padding--small--icon: var(--digi--global--spacing--smaller) var(--digi--global--spacing--smallest-2);\n --digi--form-file-upload--padding--medium--icon: var(--digi--global--spacing--base) var(--digi--global--spacing--smallest-2);\n --digi--form-file-upload--width--small: 132px;\n --digi--form-file-upload--width--medium: 304px;\n --digi--form-file-upload--width--large: inherit;\n --digi--form-file-upload--border--error: var(--digi--global--border-style--solid) solid;\n --digi--form-file-upload--border-color--error: var(--digi--color--border--interactive--validation--error);\n --digi--form-file-upload--border--error--width: var(--digi--border-width--secondary);\n --digi--form-file-upload--background--error: var(--digi--color--background--interactive--validation--error);\n container-type: inline-size;\n display: block;\n width: 100%;\n}\n.sc-digi-form-file-upload-h a.sc-digi-form-file-upload {\n font-weight: var(--digi--global--typography--font-weight--semibold);\n color: var(--digi--color--text--interactive--primary);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload.sc-digi-form-file-upload {\n font-family: var(--digi--global--typography--font-family--default);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload--small.sc-digi-form-file-upload {\n --COLOR--BACKGROUND--FILE-LIST: var(--digi--form-file-upload--color--background--small--default);\n --COLOR--BACKGROUND--DEFAULT: var(--digi--form-file-upload--color--background--small--default);\n --COLOR--BACKGROUND--HOVER: var(--digi--form-file-upload--color--background--small--hover);\n --COLOR--BORDER--DEFAULT: var(--digi--form-file-upload--color--border--small--default);\n --COLOR--BORDER--HOVER: var(--digi--form-file-upload--color--border--small--hover);\n --BORDER-STYLE--DEFAULT: var(--digi--form-file-upload--border-style--small--default);\n --BORDER-RADIUS--DEFAULT: var(--digi--form-file-upload--border-radius--small--default);\n --BORDER-WIDTH--DEFAULT: var(--digi--form-file-upload--border-width--small--default);\n --WIDTH: var(--digi--form-file-upload--width--small);\n --FONT-WEIGHT: var(--digi--form-file-upload--font-weight);\n --PADDING: var(--digi--form-file-upload--padding--small);\n --ICON--PADDING: var(--digi--form-file-upload--padding--small--icon);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload--medium.sc-digi-form-file-upload {\n --COLOR--BACKGROUND--FILE-LIST: var(--digi--form-file-upload--color--background--small--default);\n --COLOR--BACKGROUND--DEFAULT: var(--digi--form-file-upload--color--background--medium--default);\n --COLOR--BACKGROUND--HOVER: var(--digi--form-file-upload--color--background--medium--hover);\n --COLOR--BORDER--DEFAULT: var(--digi--form-file-upload--color--border--medium--default);\n --COLOR--BORDER--HOVER: var(--digi--form-file-upload--color--border--medium--hover);\n --BORDER-STYLE--DEFAULT: var(--digi--form-file-upload--border-style--medium--default);\n --BORDER-RADIUS--DEFAULT: var(--digi--form-file-upload--border-radius--medium--default);\n --BORDER-WIDTH--DEFAULT: var(--digi--form-file-upload--border-width--medium--default);\n --WIDTH: var(--digi--form-file-upload--width--medium);\n --FONT-WEIGHT: var(--digi--form-file-upload--font-weight);\n --PADDING: var(--digi--form-file-upload--padding--medium);\n --ICON--PADDING: var(--digi--form-file-upload--padding--medium--icon);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload--large.sc-digi-form-file-upload {\n --COLOR--BACKGROUND--FILE-LIST: var(--digi--form-file-upload--color--background--small--default);\n --COLOR--BACKGROUND--DEFAULT: var(--digi--form-file-upload--color--background--large--default);\n --COLOR--BACKGROUND--HOVER: var(--digi--form-file-upload--color--background--large--hover);\n --COLOR--BORDER--DEFAULT: var(--digi--form-file-upload--color--border--large--default);\n --COLOR--BORDER--HOVER: var(--digi--form-file-upload--color--border--large--hover);\n --BORDER-STYLE--DEFAULT: var(--digi--form-file-upload--border-style--large--default);\n --BORDER-RADIUS--DEFAULT: var(--digi--form-file-upload--border-radius--large--default);\n --BORDER-WIDTH--DEFAULT: var(--digi--form-file-upload--border-width--large--default);\n --WIDTH: var(--digi--form-file-upload--width--large);\n --FONT-WEIGHT: var(--digi--form-file-upload--font-weight);\n --PADDING: var(--digi--form-file-upload--padding--large);\n --ICON--PADDING: var(--digi--form-file-upload--padding--medium--icon);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload--has-errors.sc-digi-form-file-upload {\n --BORDER-STYLE--DEFAULT: var(--digi--form-file-upload--border--error);\n --COLOR--BORDER--DEFAULT: var(--digi--form-file-upload--border-color--error);\n --COLOR--BACKGROUND--HOVER: var(--digi--form-file-upload--border-color--error);\n --BORDER-WIDTH--DEFAULT: var(--digi--form-file-upload--border--error--width);\n --COLOR--BACKGROUND--DEFAULT: var(--digi--form-file-upload--background--error);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__spinner.sc-digi-form-file-upload {\n margin-right: 0.5rem;\n animation: animation__rotation 3s infinite linear;\n transform-origin: center;\n --digi--icon--height: 1rem;\n}\n@media (prefers-reduced-motion) {\n .sc-digi-form-file-upload-h .digi-form-file-upload__spinner.sc-digi-form-file-upload {\n animation: none;\n }\n}\n@keyframes animation__rotation {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__input.sc-digi-form-file-upload {\n display: none;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button.sc-digi-form-file-upload {\n margin: 0 0 auto 0.5rem;\n text-align: center;\n white-space: nowrap;\n background: none;\n border: none;\n cursor: pointer;\n font-weight: var(--digi--typography--button--font-weight--desktop);\n font-size: var(--digi--typography--body--font-size--desktop);\n color: var(--digi--form-file-upload--button-text--color--default);\n display: flex;\n align-items: center;\n font-family: var(--digi--global--typography--font-family--default);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button.sc-digi-form-file-upload:hover {\n color: var(--digi--form-file-upload--button-text--color--hover);\n text-decoration: underline;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button.sc-digi-form-file-upload:hover .digi-form-file-upload__button-icon.sc-digi-form-file-upload {\n --digi--icon--color: var(--digi--form-file-upload--button-text--color--hover);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button.sc-digi-form-file-upload:focus-visible {\n outline: 2px solid black;\n outline-offset: 2px;\n box-shadow: 0px 0px 0px 5px white;\n text-decoration: underline;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button-icon.sc-digi-form-file-upload {\n --digi--icon--height: 1.25rem;\n --digi--icon--width: 1.25rem;\n --digi--icon--color: var(--digi--color--text--interactive--primary);\n margin-left: 5px;\n padding: var(--ICON--PADDING);\n padding-right: 0;\n padding-left: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__button-icon.sc-digi-form-file-upload:hover {\n --digi--icon--color: var(--digi--form-file-upload--button-text--color--hover);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__upload-area.sc-digi-form-file-upload {\n border-color: var(--COLOR--BORDER--DEFAULT);\n border-radius: var(--BORDER-RADIUS--DEFAULT);\n border-width: var(--BORDER-WIDTH--DEFAULT);\n border-style: var(--BORDER-STYLE--DEFAULT);\n max-width: var(--WIDTH);\n margin: 0;\n display: flex;\n flex-direction: column;\n background-color: var(--COLOR--BACKGROUND--DEFAULT);\n align-items: center;\n padding: var(--PADDING);\n margin-bottom: var(--digi--gutter--medium);\n margin-top: var(--digi--gutter--button-block-small);\n position: relative;\n cursor: pointer;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__upload-area--hover.sc-digi-form-file-upload {\n border-color: var(--COLOR--BORDER--HOVER);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__upload-area-overlay.sc-digi-form-file-upload {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: var(--COLOR--BACKGROUND--HOVER);\n opacity: 0.1;\n top: 0;\n left: 0;\n z-index: 10;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__text-area.sc-digi-form-file-upload {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__text-area.sc-digi-form-file-upload .paper-clip.sc-digi-form-file-upload {\n padding-right: 0.5rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__files-list.sc-digi-form-file-upload {\n max-width: none;\n padding: 0;\n margin: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__files.sc-digi-form-file-upload {\n border-radius: var(--BORDER-RADIUS--DEFAULT);\n max-width: 100%;\n width: 100%;\n box-sizing: border-box;\n background-color: var(--COLOR--BACKGROUND--FILE-LIST);\n padding: var(--digi--gutter--largest-2) var(--digi--padding--large);\n margin-bottom: var(--digi--gutter--medium);\n margin-top: var(--digi--gutter--medium);\n padding-bottom: var(--digi--padding--smaller);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__files-heading.sc-digi-form-file-upload {\n font-family: var(--digi--form-file-upload--heading--font-family);\n font-size: var(--digi--typography--label--font-size--desktop);\n font-weight: var(--digi--form-file-upload--heading--font-weight);\n color: var(--digi--color--text--primary);\n margin: var(--digi--margin--small) 0 var(--digi--margin--medium) 0;\n display: block;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__files-heading--and-errors.sc-digi-form-file-upload {\n margin-top: var(--digi--margin--largest);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list-container.sc-digi-form-file-upload {\n display: flex;\n justify-content: space-between;\n padding-bottom: 0.75rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list-container.with-files.sc-digi-form-file-upload {\n border-bottom: var(--BORDER-WIDTH--DEFAULT) solid var(--digi--color--divider--primary);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list-container.sc-digi-form-file-upload .clear-button.sc-digi-form-file-upload {\n max-height: 1.5rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list-container.sc-digi-form-file-upload .clear-button.sc-digi-form-file-upload .clear-icon.sc-digi-form-file-upload {\n padding-right: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list.sc-digi-form-file-upload {\n margin: 0;\n padding: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list.sc-digi-form-file-upload li.sc-digi-form-file-upload {\n list-style: none;\n margin-bottom: 0.75rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error-list.sc-digi-form-file-upload li.sc-digi-form-file-upload:last-of-type {\n margin-bottom: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item.sc-digi-form-file-upload {\n margin: var(--digi--margin--small) 0;\n margin-bottom: var(--digi--margin--medium);\n width: 100%;\n box-sizing: border-box;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-container.sc-digi-form-file-upload {\n list-style-type: none;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-container.sc-digi-form-file-upload:nth-child(n+2) {\n border-top: var(--BORDER-WIDTH--DEFAULT) solid var(--digi--color--divider--primary);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pending-container.sc-digi-form-file-upload {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pending-container.sc-digi-form-file-upload .info-wrapper.sc-digi-form-file-upload {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n height: auto;\n min-width: 20%;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pending-container.sc-digi-form-file-upload .button-wrapper.sc-digi-form-file-upload {\n display: flex;\n min-width: 20%;\n justify-content: flex-end;\n align-items: center;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pending-container.sc-digi-form-file-upload p.sc-digi-form-file-upload {\n margin: auto var(--digi--margin--small) !important;\n font-weight: var(--digi--form-file-upload--font-weight);\n font-size: var(--digi--typography--body--font-size--desktop);\n white-space: nowrap;\n height: max-content;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pending-container.sc-digi-form-file-upload .digi-form-file-upload__button-abort.sc-digi-form-file-upload {\n margin: 0;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-and-thumbnail-container.sc-digi-form-file-upload {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n min-width: 20%;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-green-check.sc-digi-form-file-upload {\n width: 1.375rem;\n height: 1.375rem;\n display: flex;\n align-self: baseline;\n position: relative;\n top: 4px;\n left: 0px;\n margin-right: 4px;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-green-check.sc-digi-form-file-upload svg.sc-digi-form-file-upload {\n --digi--icon--height: 16px;\n --digi--icon--width: 16px;\n --digi--icon--color: var(--digi--color--icon--validation--success);\n background-color: var(--digi--color--background--primary);\n border-radius: 50%;\n align-self: flex-start;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-name.sc-digi-form-file-upload {\n width: 100%;\n margin: auto 0;\n font-weight: var(--digi--typography--button--font-weight--desktop);\n font-size: var(--digi--typography--body--font-size--desktop);\n height: max-content;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-name--thumbnail.sc-digi-form-file-upload {\n font-weight: var(--digi--typography--button--font-weight--desktop);\n font-size: var(--digi--typography--body--font-size--desktop);\n margin: auto 0 auto var(--digi--margin--small);\n color: var(--digi--form-file-upload--button-text--color--default);\n}\n@media (max-width: 500px) {\n .sc-digi-form-file-upload-h .digi-form-file-upload__item-name.sc-digi-form-file-upload {\n max-width: 17.5rem;\n }\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-name.sc-digi-form-file-upload:focus-visible {\n outline: 2px solid black;\n outline-offset: 2px;\n box-shadow: 0px 0px 0px 5px white;\n}\n@container (max-width: 620px) {\n .sc-digi-form-file-upload-h .digi-form-file-upload__item .digi-form-file-upload__item-name {\n max-width: 17.5rem;\n }\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container.sc-digi-form-file-upload {\n position: relative;\n display: flex;\n padding: 0;\n margin: 0;\n justify-content: space-between;\n align-items: center;\n overflow-wrap: break-word;\n gap: 32px;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container-inner.sc-digi-form-file-upload {\n display: flex;\n width: 100%;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container-figure.sc-digi-form-file-upload {\n margin: 0;\n align-self: flex-start;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container-figure.sc-digi-form-file-upload::after {\n position: absolute;\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle fill='%23FFF' cx='8' cy='8' r='6'/%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-8.925 4.236L13.01 6.3a.516.516 0 0 0 0-.73l-.73-.73a.516.516 0 0 0-.73 0L6.71 9.682l-2.26-2.26a.516.516 0 0 0-.73 0l-.73.73a.516.516 0 0 0 0 .73l3.355 3.355a.516.516 0 0 0 .73 0Z' fill='%23009322'/%3E%3C/g%3E%3C/svg%3E\");\n top: -6px;\n left: 24px;\n width: 18px;\n height: 18px;\n overflow: hidden;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container.sc-digi-form-file-upload .thumbnail.sc-digi-form-file-upload {\n width: 2rem;\n height: 2rem;\n object-fit: cover;\n flex-grow: 0;\n margin-right: 0.75rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-text-container.sc-digi-form-file-upload .hidden.sc-digi-form-file-upload {\n margin-left: var(--digi--margin--larger);\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pdf-preview-bis.sc-digi-form-file-upload {\n position: relative;\n top: 6px;\n left: 5px;\n margin-right: 1.25rem;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-pdf-preview-bis.sc-digi-form-file-upload::after {\n position: absolute;\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle fill='%23FFF' cx='8' cy='8' r='6'/%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-8.925 4.236L13.01 6.3a.516.516 0 0 0 0-.73l-.73-.73a.516.516 0 0 0-.73 0L6.71 9.682l-2.26-2.26a.516.516 0 0 0-.73 0l-.73.73a.516.516 0 0 0 0 .73l3.355 3.355a.516.516 0 0 0 .73 0Z' fill='%23009322'/%3E%3C/g%3E%3C/svg%3E\");\n top: -7px;\n left: 15px;\n width: 18px;\n height: 18px;\n overflow: hidden;\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__item-info.sc-digi-form-file-upload {\n width: 100%;\n}\n@container (max-width: 500px) {\n .sc-digi-form-file-upload-h .digi-form-file-upload__item .digi-form-file-upload__item span {\n margin-left: 0;\n margin-right: auto;\n }\n}\n.sc-digi-form-file-upload-h .digi-form-file-upload__error.sc-digi-form-file-upload {\n color: var(--digi--color--icon--validation--error);\n}\n.sc-digi-form-file-upload-h .visually-hidden.sc-digi-form-file-upload {\n border: 0;\n clip: rect(1px, 1px, 1px, 1px);\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n}\n@container (min-width: 500px) {\n .sc-digi-form-file-upload-h .hidden-desktop {\n display: none !important;\n }\n}\n@container (max-width: 499px) {\n .sc-digi-form-file-upload-h .hidden-mobile {\n display: none !important;\n }\n}";
|
|
9
|
-
const DigiFormFileUploadStyle0 = formFileUploadCss;
|
|
10
|
-
|
|
11
|
-
const FormFileUpload = class {
|
|
12
|
-
constructor(hostRef) {
|
|
13
|
-
registerInstance(this, hostRef);
|
|
14
|
-
this.afOnUploadFile = createEvent(this, "afOnUploadFile", 7);
|
|
15
|
-
this.afOnRemoveFile = createEvent(this, "afOnRemoveFile", 7);
|
|
16
|
-
this.afOnCancelFile = createEvent(this, "afOnCancelFile", 7);
|
|
17
|
-
this.afOnReady = createEvent(this, "afOnReady", 3);
|
|
18
|
-
this.afShowModal = createEvent(this, "afShowModal", 7);
|
|
19
|
-
this.toBase64 = (file) => new Promise((resolve, reject) => {
|
|
20
|
-
const reader = new FileReader();
|
|
21
|
-
reader.readAsDataURL(file);
|
|
22
|
-
reader.onload = () => {
|
|
23
|
-
const encoded = reader.result.toString().replace(/^data:(.*,)?/, '');
|
|
24
|
-
resolve(encoded);
|
|
25
|
-
};
|
|
26
|
-
reader.onerror = (error) => reject(error);
|
|
27
|
-
});
|
|
28
|
-
this._input = undefined;
|
|
29
|
-
this._fileList = undefined;
|
|
30
|
-
this._uploadButton = undefined;
|
|
31
|
-
this._srTextContainer = undefined;
|
|
32
|
-
this.files = [];
|
|
33
|
-
this.error = false;
|
|
34
|
-
this.errorMessages = [];
|
|
35
|
-
this.fileHover = false;
|
|
36
|
-
this.afLabel = _t.form.file_upload;
|
|
37
|
-
this.afLabelDescription = undefined;
|
|
38
|
-
this.afVariation = FormFileUploadVariation.SMALL;
|
|
39
|
-
this.afId = randomIdGenerator('digi-form-file-upload');
|
|
40
|
-
this.afFileTypes = undefined;
|
|
41
|
-
this.afFileMaxSize = 10;
|
|
42
|
-
this.afMaxFiles = undefined;
|
|
43
|
-
this.afName = undefined;
|
|
44
|
-
this.afUploadBtnText = undefined;
|
|
45
|
-
this.afRequired = undefined;
|
|
46
|
-
this.afRequiredText = undefined;
|
|
47
|
-
this.afAnnounceIfOptional = false;
|
|
48
|
-
this.afHeadingFiles = _t.form.file_uploaded_files;
|
|
49
|
-
this.afAnnounceIfOptionalText = undefined;
|
|
50
|
-
this.afFileMaxSizeText = undefined;
|
|
51
|
-
this.afShowThumbnail = false;
|
|
52
|
-
this.afEnablePreview = false;
|
|
53
|
-
this.afValidationText = undefined;
|
|
54
|
-
this.afValidation = FormFileUploadValidation.DISABLED;
|
|
55
|
-
this.afHeadingLevel = FormFileUploadHeadingLevel.H2;
|
|
56
|
-
this.afErrorMessageIsAlert = true;
|
|
57
|
-
}
|
|
58
|
-
afValidationTextChange() {
|
|
59
|
-
this.setValidationText();
|
|
60
|
-
}
|
|
61
|
-
get errorMessageIsAlert() {
|
|
62
|
-
return (this.afErrorMessageIsAlert !== false &&
|
|
63
|
-
this.afErrorMessageIsAlert !== 'false');
|
|
64
|
-
}
|
|
65
|
-
breakpointHandler(e) {
|
|
66
|
-
if (e.detail.value) {
|
|
67
|
-
if (e.detail.value === UtilBreakpointObserverBreakpoints.SMALL) {
|
|
68
|
-
this.afVariation = FormFileUploadVariation.SMALL;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.afVariation = this.aforiginalVariation;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Används för att skicka in en validerad fil tillbaks till komponenten. Förväntar sig att filen redan finns i komponenten med status "pending".
|
|
77
|
-
* @en Send a validated file to the component. Expects file to exist in component with status "pending".
|
|
78
|
-
*/
|
|
79
|
-
async afMValidateFile(file) {
|
|
80
|
-
if (!this.fileExistInFiles(file)) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
this.removeFileFromList(file['id']);
|
|
84
|
-
if (file['status'] !== 'error') {
|
|
85
|
-
/* Måste göra en kopia av filen för att komponenten ska rendera om sig.
|
|
86
|
-
* Annars kan den peka på samma referens och förstår inte att statusen har ändrats. */
|
|
87
|
-
const copiedFile = new File([file], file.name, { type: file.type });
|
|
88
|
-
copiedFile['id'] = file['id'];
|
|
89
|
-
copiedFile['status'] = file['status'];
|
|
90
|
-
copiedFile['base64'] = await this.toBase64(file);
|
|
91
|
-
this.files = [...this.files, copiedFile];
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
this.validateFile(file);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Få ut alla uppladdade filer
|
|
99
|
-
* @en Get all uploaded files
|
|
100
|
-
*/
|
|
101
|
-
async afMGetAllFiles() {
|
|
102
|
-
return this.files;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Hämta ut komponentens validitets-state och felmeddelanden
|
|
106
|
-
* @en Get component validity and error messages
|
|
107
|
-
*/
|
|
108
|
-
async afMGetValidationState() {
|
|
109
|
-
return { isValid: !this.error, errorMessages: this.errorMessages };
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Importera lista med filer utan att trigga uppladdningsevent. Ett objekt måste innehålla id, status och filen själv.
|
|
113
|
-
* @en Import array with files without triggering upload event. A file object needs to contain an id, status and the file itself.
|
|
114
|
-
*/
|
|
115
|
-
async afMImportFiles(files) {
|
|
116
|
-
if (files && files.length > 0) {
|
|
117
|
-
for (const importedFile of files) {
|
|
118
|
-
this.validateFile(importedFile);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
const filesThatArOK = this.errorMessages.length === 0 ? files : this.getFilesThatAreOK(files);
|
|
122
|
-
if (filesThatArOK.length === 0) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
this.files = this.files.concat(filesThatArOK);
|
|
126
|
-
}
|
|
127
|
-
async afMGetFormControlElement() {
|
|
128
|
-
return this._input;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Lyssnar på om fokus sätts på custom-elementet och propagerar ner det till själva input-elementet.
|
|
132
|
-
* @en Listens for when focus is set on the custom element and propagates it down to the actual input element.
|
|
133
|
-
*/
|
|
134
|
-
focusOnInput() {
|
|
135
|
-
this._input.focus();
|
|
136
|
-
}
|
|
137
|
-
componentWillLoad() {
|
|
138
|
-
this.aforiginalVariation = this.afVariation;
|
|
139
|
-
}
|
|
140
|
-
componentDidLoad() {
|
|
141
|
-
this.hostElement.setAttribute('tabindex', '-1');
|
|
142
|
-
this.afOnReady.emit();
|
|
143
|
-
/* Vid första renderingen så fungerar inte propertyn korrekt om vi inte kallar på setValidationText härifrån.
|
|
144
|
-
* Gissar att det är en tajmin-issue mellan prop och state, men hinner inte gräva i det mer nu. */
|
|
145
|
-
this.setValidationText();
|
|
146
|
-
}
|
|
147
|
-
get fileMaxSize() {
|
|
148
|
-
const MEGABYTE = 1048576;
|
|
149
|
-
return this.afFileMaxSize * MEGABYTE;
|
|
150
|
-
}
|
|
151
|
-
setValidationText() {
|
|
152
|
-
if (this.afValidationText && this.afValidationText.length > 0) {
|
|
153
|
-
let isDuplicated = false;
|
|
154
|
-
if (this.errorMessages.length > 0) {
|
|
155
|
-
this.errorMessages.forEach((error) => {
|
|
156
|
-
if (error.message === this.afValidationText) {
|
|
157
|
-
isDuplicated = true;
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
if (!isDuplicated) {
|
|
162
|
-
this.errorMessages.push({
|
|
163
|
-
fileName: '',
|
|
164
|
-
message: this.afValidationText
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
this.error = true;
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.resetErrors();
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
fileExistInFiles(fileToCheck) {
|
|
174
|
-
let exist = false;
|
|
175
|
-
if (this.files.length > 0) {
|
|
176
|
-
this.files.forEach((file) => {
|
|
177
|
-
if (file.name === fileToCheck.name) {
|
|
178
|
-
exist = true;
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
return exist;
|
|
183
|
-
}
|
|
184
|
-
checkAcceptedTypes(file) {
|
|
185
|
-
const acceptedTypes = this.afFileTypes.replace(/\s/g, '').split(',');
|
|
186
|
-
const fileMimeType = file.type;
|
|
187
|
-
const fileNameExtension = file.name
|
|
188
|
-
.split('.')
|
|
189
|
-
.slice(-1)
|
|
190
|
-
.map((item) => '.' + item.toLowerCase())
|
|
191
|
-
.toString();
|
|
192
|
-
return acceptedTypes.some((item) => {
|
|
193
|
-
// Checking against group of mime types
|
|
194
|
-
if (item.includes('/*')) {
|
|
195
|
-
const mimeTypeCategory = item.split('/').slice(0, 1).toString();
|
|
196
|
-
const fileMimeTypeCategory = fileMimeType
|
|
197
|
-
.split('/')
|
|
198
|
-
.slice(0, 1)
|
|
199
|
-
.toString();
|
|
200
|
-
return mimeTypeCategory == fileMimeTypeCategory;
|
|
201
|
-
}
|
|
202
|
-
// Checking against mimetype and extension
|
|
203
|
-
return (item === fileMimeType || item === fileNameExtension || item === '*');
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
resetErrors(handleFocus = false) {
|
|
207
|
-
this.error = false;
|
|
208
|
-
this._srTextContainer.textContent = '';
|
|
209
|
-
this.errorMessages = [];
|
|
210
|
-
/* Timeouten behövs för att state och element ska hinna renderas om innan fokus flyttas.
|
|
211
|
-
Vi märkte att det blir problem för hjälpmedel om den inte är på plats. */
|
|
212
|
-
if (handleFocus) {
|
|
213
|
-
setTimeout(() => {
|
|
214
|
-
this._uploadButton.focus();
|
|
215
|
-
}, 100);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
addErrorMessage(fileName, message) {
|
|
219
|
-
this.errorMessages.push({
|
|
220
|
-
fileName: fileName,
|
|
221
|
-
message: message
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
validateFileStatus(file) {
|
|
225
|
-
if (file['status'] &&
|
|
226
|
-
file['status'] === FormValidationMessageVariation.ERROR) {
|
|
227
|
-
const message = file['error']
|
|
228
|
-
? file['error']
|
|
229
|
-
: _t.form.file_error_unknown_error;
|
|
230
|
-
this.addErrorMessage(file.name, message);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
validateMaxSize(file) {
|
|
234
|
-
if (file.size > this.fileMaxSize) {
|
|
235
|
-
const message = this.afFileMaxSizeText
|
|
236
|
-
? this.afFileMaxSizeText
|
|
237
|
-
: _t.form.file_error_too_large(file.name, this.afFileMaxSize);
|
|
238
|
-
this.addErrorMessage(file.name, message);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
validateFileType(file) {
|
|
242
|
-
if (!this.checkAcceptedTypes(file)) {
|
|
243
|
-
this.addErrorMessage(file.name, _t.form.file_error_filetype_not_allowed(file.name, this.afFileTypes));
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
validateFile(file) {
|
|
247
|
-
this.validateIfFileIsAlreadyUploaded(file);
|
|
248
|
-
this.validateFileStatus(file);
|
|
249
|
-
this.validateMaxSize(file);
|
|
250
|
-
this.validateFileType(file);
|
|
251
|
-
this.error = this.errorMessages.length > 0;
|
|
252
|
-
}
|
|
253
|
-
onCancelFileHandler(e, id) {
|
|
254
|
-
e.preventDefault();
|
|
255
|
-
const fileFromList = this.removeFileFromList(id);
|
|
256
|
-
fileFromList['status'] = 'error';
|
|
257
|
-
fileFromList['error'] = _t.form.file_upload_canceled;
|
|
258
|
-
this.afOnCancelFile.emit(fileFromList);
|
|
259
|
-
}
|
|
260
|
-
removeFileFromList(id) {
|
|
261
|
-
const index = this.getIndexOfFile(id);
|
|
262
|
-
if (index === -1) {
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
const removedFile = this.files[index];
|
|
266
|
-
this.files = [
|
|
267
|
-
...this.files.slice(0, index),
|
|
268
|
-
...this.files.slice(index + 1)
|
|
269
|
-
];
|
|
270
|
-
return removedFile;
|
|
271
|
-
}
|
|
272
|
-
getIndexOfFile(id) {
|
|
273
|
-
const index = this.files.findIndex((file) => file['id'] == id);
|
|
274
|
-
return index;
|
|
275
|
-
}
|
|
276
|
-
getFilesThatAreOK(files) {
|
|
277
|
-
const validFiles = [];
|
|
278
|
-
files.forEach((file) => {
|
|
279
|
-
let isValid = true;
|
|
280
|
-
this.errorMessages.forEach((message) => {
|
|
281
|
-
if (message.fileName === file.name) {
|
|
282
|
-
isValid = false;
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
if (isValid) {
|
|
286
|
-
validFiles.push(file);
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
return validFiles;
|
|
290
|
-
}
|
|
291
|
-
validateIfFileIsAlreadyUploaded(file) {
|
|
292
|
-
for (const item of this.files) {
|
|
293
|
-
if (item.name === file.name) {
|
|
294
|
-
this.addErrorMessage(file.name, _t.form.file_error_exists(file.name));
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
handleFiles(e) {
|
|
299
|
-
var _a, _b;
|
|
300
|
-
this.resetErrors();
|
|
301
|
-
const fileList = e.dataTransfer ? (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files : (_b = e.target) === null || _b === void 0 ? void 0 : _b.files;
|
|
302
|
-
const filesToValidate = [];
|
|
303
|
-
Array.from(fileList).forEach((file) => {
|
|
304
|
-
filesToValidate.push(file);
|
|
305
|
-
});
|
|
306
|
-
if (!filesToValidate || filesToValidate.length === 0) {
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
const numberOfFiles = filesToValidate.length + this.files.length;
|
|
310
|
-
if (numberOfFiles > this.afMaxFiles) {
|
|
311
|
-
this.addErrorMessage('', _t.form.file_error_too_many);
|
|
312
|
-
this.error = true;
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
filesToValidate.forEach((file) => {
|
|
316
|
-
this.validateFile(file);
|
|
317
|
-
});
|
|
318
|
-
const filesThatArOK = this.errorMessages.length === 0
|
|
319
|
-
? filesToValidate
|
|
320
|
-
: this.getFilesThatAreOK(filesToValidate);
|
|
321
|
-
if (filesThatArOK.length === 0) {
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
const formData = new FormData();
|
|
325
|
-
filesThatArOK.forEach((file) => {
|
|
326
|
-
formData.append('file', file);
|
|
327
|
-
});
|
|
328
|
-
for (const obj of formData.entries()) {
|
|
329
|
-
this.addFileStatusAndEmitFiles(obj[1]);
|
|
330
|
-
}
|
|
331
|
-
this._input.value = '';
|
|
332
|
-
}
|
|
333
|
-
onButtonUploadFileHandler(e) {
|
|
334
|
-
e.preventDefault();
|
|
335
|
-
if (!e.target.files)
|
|
336
|
-
return;
|
|
337
|
-
this.handleFiles(e);
|
|
338
|
-
}
|
|
339
|
-
onRemoveFileHandler(e, id) {
|
|
340
|
-
e.preventDefault();
|
|
341
|
-
this.resetErrors();
|
|
342
|
-
const fileToRemove = this.removeFileFromList(id);
|
|
343
|
-
this.afOnRemoveFile.emit(fileToRemove);
|
|
344
|
-
this._input.value = '';
|
|
345
|
-
this.handleFocusAfterFileRemoved();
|
|
346
|
-
}
|
|
347
|
-
handleFocusAfterFileRemoved() {
|
|
348
|
-
/* Timeouten behövs för att state och element ska hinna renderas om innan fokus flyttas.
|
|
349
|
-
Vi märkte att det blir problem för hjälpmedel om den inte är på plats. */
|
|
350
|
-
setTimeout(() => {
|
|
351
|
-
if (this.files.length > 0) {
|
|
352
|
-
this._fileList.focus();
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
this._uploadButton.focus();
|
|
356
|
-
}
|
|
357
|
-
}, 100);
|
|
358
|
-
}
|
|
359
|
-
emitFile(file) {
|
|
360
|
-
const index = this.getIndexOfFile(file['id']);
|
|
361
|
-
if (this.afValidation === FormFileUploadValidation.ENABLED) {
|
|
362
|
-
this.afOnUploadFile.emit(this.files[index]);
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
this.files[index]['status'] = 'OK';
|
|
366
|
-
this.afOnUploadFile.emit(this.files[index]);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
async addFileStatusAndEmitFiles(file) {
|
|
370
|
-
file['id'] = randomIdGenerator('file');
|
|
371
|
-
file['status'] = 'pending';
|
|
372
|
-
file['base64'] = await this.toBase64(file);
|
|
373
|
-
this.files = [...this.files, file];
|
|
374
|
-
this.emitFile(file);
|
|
375
|
-
}
|
|
376
|
-
handleDrop(e) {
|
|
377
|
-
e.stopPropagation();
|
|
378
|
-
e.preventDefault();
|
|
379
|
-
this.fileHover = false;
|
|
380
|
-
if (e.dataTransfer.files) {
|
|
381
|
-
this.handleFiles(e);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
handleAllowDrop(e) {
|
|
385
|
-
if (this.afVariation === FormFileUploadVariation.SMALL)
|
|
386
|
-
return;
|
|
387
|
-
e.stopPropagation();
|
|
388
|
-
e.preventDefault();
|
|
389
|
-
}
|
|
390
|
-
handleOnDragEnterLeave(e) {
|
|
391
|
-
this.handleAllowDrop(e);
|
|
392
|
-
this.fileHover = !this.fileHover;
|
|
393
|
-
}
|
|
394
|
-
handleInputClick(e) {
|
|
395
|
-
e.stopPropagation();
|
|
396
|
-
this.afShowModal.emit();
|
|
397
|
-
this._input.click();
|
|
398
|
-
}
|
|
399
|
-
getFiletypeAndShortFileName(file) {
|
|
400
|
-
let fileType = null;
|
|
401
|
-
let fileName = file.name;
|
|
402
|
-
const fileExtension = fileName.split('.').pop();
|
|
403
|
-
const fileWithoutExtension = fileName.replace('.' + fileExtension, '');
|
|
404
|
-
const minChars = window.innerWidth < 769 ? 6 : fileName.length;
|
|
405
|
-
const maxChars = window.innerWidth < 769 ? 14 : fileName.length;
|
|
406
|
-
if (String(file['type']).split('/')[0] === 'image') {
|
|
407
|
-
fileType = 'image';
|
|
408
|
-
}
|
|
409
|
-
else if (String(file['type']).split('/')[1] === 'pdf') {
|
|
410
|
-
fileType = 'pdf';
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
fileType = 'default';
|
|
414
|
-
}
|
|
415
|
-
if (fileName.length > minChars) {
|
|
416
|
-
fileName =
|
|
417
|
-
fileWithoutExtension.substring(0, minChars) + '...' + fileExtension;
|
|
418
|
-
}
|
|
419
|
-
else if (fileName.length > maxChars) {
|
|
420
|
-
fileName = fileWithoutExtension.substring(0, 6) + '...' + fileExtension;
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
fileName = file.name;
|
|
424
|
-
}
|
|
425
|
-
return { type: fileType, name: fileName };
|
|
426
|
-
}
|
|
427
|
-
// If its a pdf or an image the file is opened on another tab, any other file formats are downloaded
|
|
428
|
-
async viewUploadedFile(e, file) {
|
|
429
|
-
e.preventDefault();
|
|
430
|
-
if (this.getFiletypeAndShortFileName(file).type === 'image') {
|
|
431
|
-
const w = window.open();
|
|
432
|
-
w.document.write(`<img src="data:${file['type']};base64,${file['base64']}" alt="${file.name}" />`);
|
|
433
|
-
w.document.title = file['name'];
|
|
434
|
-
}
|
|
435
|
-
else if (this.getFiletypeAndShortFileName(file).type === 'pdf') {
|
|
436
|
-
(async () => {
|
|
437
|
-
const pdfstr = await fetch(`data:application/pdf;base64,${file['base64']}`);
|
|
438
|
-
const blobFromFetch = await pdfstr.blob();
|
|
439
|
-
const blob = new Blob([blobFromFetch], { type: 'application/pdf' });
|
|
440
|
-
const blobUrl = URL.createObjectURL(blob);
|
|
441
|
-
setTimeout(() => {
|
|
442
|
-
window.open(blobUrl, '_blank');
|
|
443
|
-
}, 30);
|
|
444
|
-
})();
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
const fileURL = URL.createObjectURL(file);
|
|
448
|
-
const a = document.createElement('a');
|
|
449
|
-
a.href = fileURL;
|
|
450
|
-
a.target = '_blank';
|
|
451
|
-
a.download = file.name;
|
|
452
|
-
a.click();
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
get cssModifiers() {
|
|
456
|
-
return {
|
|
457
|
-
'digi-form-file-upload--small': this.afVariation == 'small',
|
|
458
|
-
'digi-form-file-upload--medium': this.afVariation == 'medium',
|
|
459
|
-
'digi-form-file-upload--large': this.afVariation == 'large',
|
|
460
|
-
'digi-form-file-upload--has-errors': this.errorMessages.length > 0
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
renderErrorMessage() {
|
|
464
|
-
if (!this.error) {
|
|
465
|
-
return;
|
|
466
|
-
}
|
|
467
|
-
this.readErrorMessagesToAssistiveTechnologies();
|
|
468
|
-
const showBorder = this.files.length > 0 ? 'with-files' : '';
|
|
469
|
-
return (h("div", { class: 'digi-form-file-upload__error-list-container ' + showBorder }, h("ul", { class: "digi-form-file-upload__error-list", "aria-hidden": "true" }, this.renderErrorMessages()), h("button", { type: "button", "aria-label": _t.form.file_upload_reset_errors_aria_label, class: "digi-form-file-upload__button clear-button hidden-mobile", onClick: () => {
|
|
470
|
-
this.resetErrors(true);
|
|
471
|
-
} }, h("span", null, _t.form.file_upload_reset_errors)), h("button", { type: "button", onClick: () => {
|
|
472
|
-
this.resetErrors(true);
|
|
473
|
-
}, class: "digi-form-file-upload__button clear-button hidden-desktop", "aria-label": _t.form.file_upload_reset_errors_aria_label }, h("digi-icon-x-button-outline", { class: "digi-form-file-upload__button-icon clear-icon", "aria-hidden": "true" }))));
|
|
474
|
-
}
|
|
475
|
-
readErrorMessagesToAssistiveTechnologies() {
|
|
476
|
-
this._srTextContainer.textContent = '';
|
|
477
|
-
const srTexts = this.errorMessages.map((error) => {
|
|
478
|
-
return error.message + ' ';
|
|
479
|
-
});
|
|
480
|
-
/* Timeouten behövs för att state och element ska hinna renderas om innan innehållet ändras.
|
|
481
|
-
Vi märkte att det blir problem för hjälpmedel om den inte är på plats. */
|
|
482
|
-
setTimeout(() => {
|
|
483
|
-
this._srTextContainer.textContent = srTexts.toString();
|
|
484
|
-
}, 200);
|
|
485
|
-
}
|
|
486
|
-
renderErrorMessages() {
|
|
487
|
-
return this.errorMessages.map((error) => {
|
|
488
|
-
return (h("li", null, h("digi-form-validation-message", { id: "digi-form-file-upload__error", class: "digi-form-file-upload__error", "af-variation": "error" }, error.message)));
|
|
489
|
-
});
|
|
490
|
-
}
|
|
491
|
-
renderPendingFile(file) {
|
|
492
|
-
return (h("div", { class: "digi-form-file-upload__item-pending-container" }, h("span", { class: "info-wrapper" }, h("digi-icon-spinner", { class: "digi-form-file-upload__spinner" }), h("span", { style: { margin: '0' } }, _t.form.file_upload_progress, " ", h("span", { class: "hidden-mobile" }, "|")), h("p", { class: "digi-form-file-upload__item-name-pending hidden-mobile" }, this.getFiletypeAndShortFileName(file).name)), h("span", { class: "button-wrapper" }, h("button", { type: "button", onClick: (e) => this.onCancelFileHandler(e, file['id']), class: "digi-form-file-upload__button digi-form-file-upload__button-abort hidden-mobile", "aria-label": _t.form.file_cancel_upload_long(file.name) }, _t.form.file_cancel_upload), h("button", { type: "button", onClick: (e) => this.onCancelFileHandler(e, file['id']), class: "digi-form-file-upload__button hidden-desktop", "aria-label": _t.form.file_cancel_upload_long(file.name) }, h("digi-icon-x-button-outline", { class: "digi-form-file-upload__button-icon", "aria-hidden": "true" })))));
|
|
493
|
-
}
|
|
494
|
-
renderImageThumbnail(file) {
|
|
495
|
-
if (this.afShowThumbnail) {
|
|
496
|
-
return (h("figure", { class: "digi-form-file-upload__item-text-container-figure", style: { margin: '0' } }, h("img", { "aria-hidden": "true", class: "thumbnail", src: `data:${file['type']};base64,${file['base64']}` }), h("figcaption", { class: "visually-hidden" }, "Miniatyr av ", file.name)));
|
|
497
|
-
}
|
|
498
|
-
return this.renderCheckmark();
|
|
499
|
-
}
|
|
500
|
-
renderCheckmark() {
|
|
501
|
-
return (h("span", { class: "digi-form-file-upload__item-green-check" }, h("digi-icon-check-circle-solid", null)));
|
|
502
|
-
}
|
|
503
|
-
renderPDFThumbnail(file) {
|
|
504
|
-
if (this.afShowThumbnail) {
|
|
505
|
-
return (h("span", { class: `${this.afShowThumbnail ? 'digi-form-file-upload__item-pdf-preview-bis' : null}`, "aria-label": file.name }, h("svg", { style: { scale: '1' }, width: "23.76", height: "32", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M22.888 6.124 17.696.88A2.955 2.955 0 0 0 15.6 0H2.97C1.33.006 0 1.35 0 3.006V29C0 30.657 1.33 32 2.97 32h17.82c1.64 0 2.97-1.343 2.97-3V8.249a3.03 3.03 0 0 0-.872-2.124Zm-2.34 1.88H15.84V3.25l4.709 4.756ZM2.97 29.002V3.006h9.9v6.498c0 .831.662 1.5 1.485 1.5h6.435v17.997H2.97Zm15.481-8.98c-.755-.75-2.908-.544-3.985-.406-1.064-.656-1.775-1.562-2.277-2.893.242-1.006.625-2.537.335-3.5-.26-1.637-2.34-1.474-2.636-.368-.273 1.006-.025 2.406.433 4.193-.619 1.493-1.54 3.499-2.19 4.649-1.238.643-2.909 1.637-3.156 2.887-.204.987 1.609 3.449 4.708-1.95 1.386-.462 2.896-1.031 4.233-1.256 1.17.637 2.537 1.062 3.452 1.062 1.578 0 1.733-1.762 1.083-2.418ZM6.194 24.883c.315-.856 1.516-1.844 1.88-2.187-1.175 1.893-1.88 2.23-1.88 2.187Zm5.049-11.91c.458 0 .414 2.005.111 2.549-.272-.869-.266-2.55-.111-2.55Zm-1.51 8.535c.6-1.056 1.114-2.312 1.528-3.418.514.944 1.17 1.7 1.863 2.219-1.287.268-2.407.818-3.391 1.2Zm8.143-.312s-.31.375-2.308-.488c2.172-.162 2.53.338 2.308.488Z", fill: "var(--digi--color--icon--cta)", "fill-rule": "evenodd" }))));
|
|
506
|
-
}
|
|
507
|
-
return this.renderCheckmark();
|
|
508
|
-
}
|
|
509
|
-
renderThumbnail(file) {
|
|
510
|
-
const fileType = this.getFiletypeAndShortFileName(file).type;
|
|
511
|
-
switch (fileType) {
|
|
512
|
-
case 'pdf':
|
|
513
|
-
return this.renderPDFThumbnail(file);
|
|
514
|
-
case 'image':
|
|
515
|
-
return this.renderImageThumbnail(file);
|
|
516
|
-
default:
|
|
517
|
-
return this.renderCheckmark();
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
renderFileName(file) {
|
|
521
|
-
if (this.afEnablePreview) {
|
|
522
|
-
return (h("a", { class: "digi-form-file-upload__item-name", href: "#", onClick: (e) => {
|
|
523
|
-
this.viewUploadedFile(e, file);
|
|
524
|
-
} }, file.name));
|
|
525
|
-
}
|
|
526
|
-
else {
|
|
527
|
-
return h("span", { class: "digi-form-file-upload__item-name" }, file.name);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
renderOKFile(file) {
|
|
531
|
-
return (h(Fragment, null, h("span", { class: "digi-form-file-upload__item-text-and-thumbnail-container" }, this.renderThumbnail(file), this.renderFileName(file)), h("button", { type: "button", onClick: (e) => this.onRemoveFileHandler(e, file['id']), class: "digi-form-file-upload__button digi-form-file-upload__button--mobile", "aria-label": _t.form.file_remove(file.name) }, h("span", { class: "hidden-mobile" }, _t.form.file_remove()), h("digi-icon-trash", { class: "digi-form-file-upload__button-icon hidden-desktop" }))));
|
|
532
|
-
}
|
|
533
|
-
renderFile(file) {
|
|
534
|
-
switch (file['status']) {
|
|
535
|
-
case 'pending':
|
|
536
|
-
return this.renderPendingFile(file);
|
|
537
|
-
default:
|
|
538
|
-
return this.renderOKFile(file);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
renderFiles() {
|
|
542
|
-
const filesMap = this.files.map((file, index) => {
|
|
543
|
-
{
|
|
544
|
-
return (h("li", { class: "digi-form-file-upload__item-container", key: 'file-' + index }, h("div", { class: "digi-form-file-upload__item" }, h("div", { class: "digi-form-file-upload__item-text-container" }, this.renderFile(file)))));
|
|
545
|
-
}
|
|
546
|
-
});
|
|
547
|
-
return filesMap;
|
|
548
|
-
}
|
|
549
|
-
renderFileContainer() {
|
|
550
|
-
if (this.files.length === 0) {
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
|
-
return (h(Fragment, null, h(this.afHeadingLevel, { class: {
|
|
554
|
-
'digi-form-file-upload__files-heading': true,
|
|
555
|
-
'digi-form-file-upload__files-heading--and-errors': this.error
|
|
556
|
-
} }, this.afHeadingFiles), h("ul", { class: "digi-form-file-upload__files-list", tabindex: -1, ref: (el) => {
|
|
557
|
-
this._fileList = el;
|
|
558
|
-
} }, this.renderFiles())));
|
|
559
|
-
}
|
|
560
|
-
render() {
|
|
561
|
-
return (h(Fragment, { key: 'fa66e9f8a9cc1ab9c0e850aaa7091612a40e3179' }, h("digi-util-breakpoint-observer", { key: 'e31966e4a3ac5ee7d17236d55b2fcba3a5e5b217', onAfOnChange: (e) => this.breakpointHandler(e) }), h("div", { key: '7def9fd833ee627f46af20ce59982e372c758289', class: Object.assign({ 'digi-form-file-upload': true }, this.cssModifiers) }, h("digi-form-label", { key: 'b7d36f50ec9a5fa413784ac31a7ef77771be2626', afFor: this.afId, afLabel: this.afLabel, afDescription: this.afLabelDescription, afRequired: this.afRequired, afAnnounceIfOptional: this.afAnnounceIfOptional, afRequiredText: this.afRequiredText, afAnnounceIfOptionalText: this.afAnnounceIfOptionalText }), h("div", { key: '15afcf3f1321dc6454094b6f7a5f1e6cf66758bd', class: {
|
|
562
|
-
'digi-form-file-upload__upload-area': true,
|
|
563
|
-
'digi-form-file-upload__upload-area--hover': this.fileHover
|
|
564
|
-
}, onDrop: (e) => this.handleDrop(e), onDragOver: (e) => this.handleAllowDrop(e), onDragEnter: (e) => this.handleOnDragEnterLeave(e), onDragLeave: (e) => this.handleOnDragEnterLeave(e), onClick: (e) => this.handleInputClick(e) }, this.fileHover &&
|
|
565
|
-
this.afVariation != FormFileUploadVariation.SMALL && (h("div", { key: '563d428c64e909dd45331c6dd3c20fd4196dd41b', class: "digi-form-file-upload__upload-area-overlay" })), h("div", { key: '1ebec5c26501773a1104f878380fcc0377a33010', class: "digi-form-file-upload__text-area" }, h("button", { key: '8a1c7c8bf8ccacb620a95ba0221742a6c436cf3c', type: "button", id: this.afId + '-button', ref: (el) => {
|
|
566
|
-
this._uploadButton = el;
|
|
567
|
-
}, onClick: (e) => this.handleInputClick(e), class: "digi-form-file-upload__button hidden_mobile", style: {
|
|
568
|
-
margin: '0'
|
|
569
|
-
} }, h("digi-icon-paperclip", { key: '1ae48109c0df78f412fd6c07742baaf6ef2d616c', "aria-hidden": "true", class: "digi-form-file-upload__button-icon paper-clip", slot: "icon" }), this.afUploadBtnText
|
|
570
|
-
? this.afUploadBtnText
|
|
571
|
-
: _t.form.file_choose), h("input", { key: '3370708299eb4f53f38cb15ae4fb9cb97b993bb9', ref: (el) => {
|
|
572
|
-
this._input = el;
|
|
573
|
-
}, onChange: (e) => this.onButtonUploadFileHandler(e), class: "digi-form-file-upload__input", multiple: true, type: "file", id: this.afId, accept: this.afFileTypes, name: this.afName ? this.afName : null, required: this.afRequired ? this.afRequired : null, onDrop: (e) => this.handleDrop(e), onDragOver: (e) => this.handleAllowDrop(e), "aria-errormessage": "digi-form-file-upload__error", "aria-describedBy": "digi-form-file-upload__error" }), h("span", { key: 'c4deee14a4318dc38368eeec5f5a3b51e0e79e27' }, this.afVariation !== FormFileUploadVariation.SMALL &&
|
|
574
|
-
_t.form.file_dropzone))), h("p", { key: '6553b8226f080d825eb276ce3f684a95ebeeb649', class: "visually-hidden", role: this.errorMessageIsAlert ? 'alert' : null, "aria-atomic": "true", ref: (el) => {
|
|
575
|
-
this._srTextContainer = el;
|
|
576
|
-
} }), (this.files.length > 0 || this.error) && (h("div", { key: 'c514dfcf95137b192fa490d6cb61e1b68ae82768', class: "digi-form-file-upload__files" }, this.renderErrorMessage(), this.renderFileContainer())))));
|
|
577
|
-
}
|
|
578
|
-
get hostElement() { return getElement(this); }
|
|
579
|
-
static get watchers() { return {
|
|
580
|
-
"afValidationText": ["afValidationTextChange"]
|
|
581
|
-
}; }
|
|
582
|
-
};
|
|
583
|
-
FormFileUpload.style = DigiFormFileUploadStyle0;
|
|
584
|
-
|
|
585
|
-
export { FormFileUpload as digi_form_file_upload };
|