@duetds/components 4.31.0 → 4.33.2
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/hydrate/index.js +1895 -77
- package/lib/cjs/{dom-e89ebf90.js → dom-c850c8d7.js} +1 -1
- package/lib/cjs/duet-alert.cjs.entry.js +2 -2
- package/lib/cjs/duet-badge.cjs.entry.js +1 -1
- package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
- package/lib/cjs/duet-caption_4.cjs.entry.js +17 -10
- package/lib/cjs/duet-card.cjs.entry.js +5 -5
- package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
- package/lib/cjs/duet-choice_2.cjs.entry.js +53 -24
- package/lib/cjs/duet-collapsible.cjs.entry.js +4 -449
- package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
- package/lib/cjs/duet-date-picker.cjs.entry.js +7 -7
- package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-editable-table-button.cjs.entry.js +89 -0
- package/lib/cjs/duet-editable-table_4.cjs.entry.js +1445 -0
- package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
- package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
- package/lib/cjs/duet-footer.cjs.entry.js +2 -2
- package/lib/cjs/duet-grid_2.cjs.entry.js +69 -4
- package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
- package/lib/cjs/duet-hero.cjs.entry.js +2 -2
- package/lib/cjs/duet-icon.cjs.entry.js +5 -13
- package/lib/cjs/duet-input_2.cjs.entry.js +6 -6
- package/lib/cjs/duet-layout.cjs.entry.js +1 -1
- package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-modal.cjs.entry.js +3 -3
- package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
- package/lib/cjs/duet-progress.cjs.entry.js +75 -0
- package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
- package/lib/cjs/duet-select.cjs.entry.js +5 -5
- package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-tab_2.cjs.entry.js +3 -3
- package/lib/cjs/duet-textarea.cjs.entry.js +5 -5
- package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
- package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
- package/lib/cjs/duet-tray.cjs.entry.js +3 -3
- package/lib/cjs/duet-upload-aria-status.cjs.entry.js +100 -0
- package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
- package/lib/cjs/duet.cjs.js +4 -4
- package/lib/cjs/{focus-utils-bd331feb.js → focus-utils-27c696bb.js} +1 -1
- package/lib/cjs/{index-113c2add.js → index-18b0f43a.js} +91 -77
- package/lib/cjs/{language-utils-48b8860b.js → language-utils-aa282901.js} +6 -2
- package/lib/cjs/loader.cjs.js +3 -3
- package/lib/cjs/{shadow-css-0c8c175b.js → shadow-css-e3edeed1.js} +9 -10
- package/lib/cjs/{token-utils-13e5d13e.js → token-utils-63a9c8dc.js} +1 -1
- package/lib/cjs/tokens-8596cece.js +459 -0
- package/lib/cjs/{tokens.module-53b3bd92.js → tokens.module-6b2df1c2.js} +2 -0
- package/lib/cjs/{watch-options-3877c082.js → watch-options-d88afac0.js} +29 -6
- package/lib/collection/collection-manifest.json +17 -3
- package/lib/collection/components/duet-alert/duet-alert.js +4 -4
- package/lib/collection/components/duet-button/duet-button.js +10 -10
- package/lib/collection/components/duet-card/duet-card.css +20 -0
- package/lib/collection/components/duet-card/duet-card.js +4 -1
- package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
- package/lib/collection/components/duet-choice/duet-choice.css +16 -3
- package/lib/collection/components/duet-choice/duet-choice.js +117 -33
- package/lib/collection/components/duet-choice-group/duet-choice-group.js +4 -4
- package/lib/collection/components/duet-date-picker/duet-date-picker.js +16 -16
- package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +32 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +218 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +36 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +203 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +13 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table.css +16 -0
- package/lib/collection/components/duet-editable-table/duet-editable-table.js +348 -0
- package/lib/collection/components/duet-footer/duet-footer.js +10 -10
- package/lib/collection/components/duet-grid/duet-grid.js +74 -6
- package/lib/collection/components/duet-grid-item/duet-grid-item.js +4 -4
- package/lib/collection/components/duet-header/duet-header.js +16 -16
- package/lib/collection/components/duet-heading/duet-heading.css +3 -0
- package/lib/collection/components/duet-heading/duet-heading.js +7 -6
- package/lib/collection/components/duet-hero/duet-hero.js +8 -8
- package/lib/collection/components/duet-icon/icon-utils.js +5 -8
- package/lib/collection/components/duet-input/duet-input.css +15 -0
- package/lib/collection/components/duet-input/duet-input.js +4 -4
- package/lib/collection/components/duet-link/duet-link.js +8 -8
- package/lib/collection/components/duet-logo/duet-logo.js +4 -4
- package/lib/collection/components/duet-modal/duet-modal.js +8 -8
- package/lib/collection/components/duet-notification/duet-notification.js +8 -8
- package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +8 -8
- package/lib/collection/components/duet-number-input/duet-number-input.js +20 -20
- package/lib/collection/components/duet-paragraph/duet-paragraph.css +6 -0
- package/lib/collection/components/duet-paragraph/duet-paragraph.js +34 -3
- package/lib/collection/components/duet-progress/duet-progress.css +103 -0
- package/lib/collection/components/duet-progress/duet-progress.js +240 -0
- package/lib/collection/components/duet-radio/duet-radio.js +6 -6
- package/lib/collection/components/duet-select/duet-select.css +15 -0
- package/lib/collection/components/duet-select/duet-select.js +3 -3
- package/lib/collection/components/duet-step/duet-step.js +8 -8
- package/lib/collection/components/duet-tab-group/duet-tab-group.css +2 -2
- package/lib/collection/components/duet-tab-group/duet-tab-group.js +10 -10
- package/lib/collection/components/duet-textarea/duet-textarea.css +19 -0
- package/lib/collection/components/duet-textarea/duet-textarea.js +5 -4
- package/lib/collection/components/duet-tooltip/duet-tooltip.js +14 -14
- package/lib/collection/components/duet-tray/duet-tray.js +12 -12
- package/lib/collection/components/duet-upload/duet-upload.css +64 -0
- package/lib/collection/components/duet-upload/duet-upload.js +1863 -0
- package/lib/collection/components/duet-upload/errorcodes.utils.js +32 -0
- package/lib/collection/components/duet-upload/mock.helpers.js +91 -0
- package/lib/collection/components/duet-upload/upload-editable-item-error.js +16 -0
- package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +8 -0
- package/lib/collection/components/duet-upload/upload-editable-item-success.js +30 -0
- package/lib/collection/components/duet-upload/upload-validators.js +93 -0
- package/lib/collection/components/duet-upload/upload.helpers.js +13 -0
- package/lib/collection/components/duet-upload/xhr.helpers.js +30 -0
- package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +217 -0
- package/lib/collection/utils/js-utils.js +12 -0
- package/lib/collection/utils/language-utils.js +6 -3
- package/lib/collection/utils/watch-options.js +35 -6
- package/lib/custom-elements-bundle/index.d.ts +36 -0
- package/lib/custom-elements-bundle/index.js +2014 -322
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-60ab57d4.entry.js → p-042ec8b1.entry.js} +1 -1
- package/lib/duet/{p-bcae23fc.system.entry.js → p-0435b54a.system.entry.js} +1 -1
- package/lib/duet/{p-dc85d2a4.entry.js → p-04b3e682.entry.js} +1 -1
- package/lib/duet/p-0ac2e60d.system.entry.js +4 -0
- package/lib/duet/p-0d22396e.system.js +16 -0
- package/lib/duet/p-1082d9f2.system.entry.js +4 -0
- package/lib/duet/p-12721178.js +4 -0
- package/lib/duet/{p-7d080785.system.entry.js → p-12fc4849.system.entry.js} +1 -1
- package/lib/duet/{p-c4737f88.entry.js → p-15fae689.entry.js} +1 -1
- package/lib/duet/p-1ad58142.entry.js +4 -0
- package/lib/duet/{p-c5f10483.system.entry.js → p-1c7d7cdd.system.entry.js} +1 -1
- package/lib/duet/p-1cf8dbc7.system.js +4 -0
- package/lib/duet/p-1dcbd837.system.entry.js +4 -0
- package/lib/duet/{p-fdecaf46.entry.js → p-1ecddc1d.entry.js} +1 -1
- package/lib/duet/p-2764f081.js +4 -0
- package/lib/duet/p-2b4bd1b2.system.entry.js +4 -0
- package/lib/duet/p-2d8e0faa.system.entry.js +4 -0
- package/lib/duet/{p-453955cc.system.entry.js → p-33538e90.system.entry.js} +1 -1
- package/lib/duet/{p-b1b8e510.entry.js → p-3364cfd2.entry.js} +1 -1
- package/lib/duet/p-350cea4e.system.entry.js +4 -0
- package/lib/duet/{p-bd9a7d8f.js → p-35a3794e.js} +0 -0
- package/lib/duet/p-39e9d638.entry.js +4 -0
- package/lib/duet/{p-1e7222c2.entry.js → p-3a7e519e.entry.js} +1 -1
- package/lib/duet/{p-9ce1baab.system.entry.js → p-3bcf2054.system.entry.js} +1 -1
- package/lib/duet/{p-322d1c38.js → p-3c1971d8.js} +1 -1
- package/lib/duet/{p-ef45cfe9.system.entry.js → p-3cad13af.system.entry.js} +1 -1
- package/lib/duet/p-408e8cdb.system.js +4 -0
- package/lib/duet/p-4a14da52.entry.js +4 -0
- package/lib/duet/{p-f96c4093.system.entry.js → p-4e17a6cb.system.entry.js} +1 -1
- package/lib/duet/{p-fbd83d67.entry.js → p-50b796eb.entry.js} +1 -1
- package/lib/duet/{p-22f56356.system.entry.js → p-5727cd82.system.entry.js} +1 -1
- package/lib/duet/{p-9c94be45.entry.js → p-582f3a2c.entry.js} +1 -1
- package/lib/duet/{p-e39471b6.entry.js → p-5b9621e2.entry.js} +1 -1
- package/lib/duet/{p-3e1ef509.system.entry.js → p-5f79eff8.system.entry.js} +1 -1
- package/lib/duet/{p-95626e7e.system.entry.js → p-60e721aa.system.entry.js} +1 -1
- package/lib/duet/{p-b03a46b6.entry.js → p-60ef3d05.entry.js} +1 -1
- package/lib/duet/{p-57ea2576.system.js → p-61fc3872.system.js} +1 -1
- package/lib/duet/{p-1cd7177f.entry.js → p-637df820.entry.js} +1 -1
- package/lib/duet/{p-07263910.system.entry.js → p-6402041d.system.entry.js} +1 -1
- package/lib/duet/p-64c0aa2a.entry.js +4 -0
- package/lib/duet/{p-28b67b94.entry.js → p-65451003.entry.js} +1 -1
- package/lib/duet/{p-1bfbc988.entry.js → p-659d6cb7.entry.js} +1 -1
- package/lib/duet/{p-91fa68a5.js → p-66fdebc5.js} +1 -1
- package/lib/duet/p-6708db8a.entry.js +4 -0
- package/lib/duet/{p-e08b8909.entry.js → p-68635a1c.entry.js} +1 -1
- package/lib/duet/p-6e363557.system.js +4 -0
- package/lib/duet/p-70fafc98.system.js +4 -0
- package/lib/duet/p-720a36f2.entry.js +4 -0
- package/lib/duet/{p-f53c8019.entry.js → p-72629304.entry.js} +1 -1
- package/lib/duet/p-75a104e3.entry.js +4 -0
- package/lib/duet/{p-02ad46a0.system.entry.js → p-75e5d4d1.system.entry.js} +1 -1
- package/lib/duet/{p-33cf6ed1.entry.js → p-7ab0bad8.entry.js} +1 -1
- package/lib/duet/{p-e834c8d5.system.entry.js → p-7ceaf4ef.system.entry.js} +1 -1
- package/lib/duet/{p-a1d12e94.system.entry.js → p-7f8cce41.system.entry.js} +1 -1
- package/lib/duet/{p-6d2da245.entry.js → p-7fed7f57.entry.js} +1 -1
- package/lib/duet/p-8143f3de.js +4 -0
- package/lib/duet/p-8c2f14d8.system.entry.js +4 -0
- package/lib/duet/{p-4670a654.entry.js → p-8c730326.entry.js} +1 -1
- package/lib/duet/{p-de093c16.entry.js → p-9125ed25.entry.js} +1 -1
- package/lib/duet/p-933c2774.system.entry.js +4 -0
- package/lib/duet/{p-b7e50cfa.entry.js → p-9584411c.entry.js} +1 -1
- package/lib/duet/p-987edcd0.js +15 -0
- package/lib/duet/p-9930e52e.entry.js +4 -0
- package/lib/duet/p-9a09ac2b.system.entry.js +4 -0
- package/lib/duet/{p-64109493.entry.js → p-a09ddd8f.entry.js} +1 -1
- package/lib/duet/{p-504dbf8f.system.entry.js → p-a2b2fa13.system.entry.js} +1 -1
- package/lib/duet/{p-2826f987.js → p-ad07f399.js} +1 -1
- package/lib/duet/{p-605bc214.system.entry.js → p-b1ad7a52.system.entry.js} +1 -1
- package/lib/duet/{p-f0b1850a.system.entry.js → p-b5dc29b8.system.entry.js} +1 -1
- package/lib/duet/p-ba6214be.entry.js +4 -0
- package/lib/duet/{p-92d38668.system.entry.js → p-be349a3d.system.entry.js} +1 -1
- package/lib/duet/{p-56e172f5.system.entry.js → p-c0f3f60f.system.entry.js} +1 -1
- package/lib/duet/{p-fd98468a.system.js → p-c18a599e.system.js} +0 -0
- package/lib/duet/p-c3c95a34.system.entry.js +4 -0
- package/lib/duet/{p-d4b4bfa6.entry.js → p-c506017d.entry.js} +1 -1
- package/lib/duet/p-c74cecf2.system.entry.js +4 -0
- package/lib/duet/p-c9a11360.entry.js +4 -0
- package/lib/duet/p-cd21755b.entry.js +4 -0
- package/lib/duet/p-cd597d62.system.entry.js +4 -0
- package/lib/duet/p-cff461b6.entry.js +4 -0
- package/lib/duet/{p-7b6db837.system.entry.js → p-d0fb19f7.system.entry.js} +1 -1
- package/lib/duet/{p-69a5dc6b.entry.js → p-d1dfa30e.entry.js} +1 -1
- package/lib/duet/{p-1cec5a70.system.entry.js → p-d4e706ac.system.entry.js} +1 -1
- package/lib/duet/{p-8cb47a70.system.entry.js → p-d5e2bb48.system.entry.js} +1 -1
- package/lib/duet/p-dd79932a.entry.js +4 -0
- package/lib/duet/p-dd9b8fcb.system.entry.js +4 -0
- package/lib/duet/p-ddb6344c.system.js +4 -0
- package/lib/duet/{p-47645ea8.system.entry.js → p-de43620d.system.entry.js} +1 -1
- package/lib/duet/p-e038da47.system.entry.js +4 -0
- package/lib/duet/p-eb55ccd2.system.js +4 -0
- package/lib/duet/p-ebc4e334.js +4 -0
- package/lib/duet/{p-5fc7e1f7.system.entry.js → p-f37ffb6f.system.entry.js} +1 -1
- package/lib/duet/p-f8744611.entry.js +4 -0
- package/lib/duet/p-fa99eaa4.system.js +4 -0
- package/lib/duet/{p-746655ba.entry.js → p-fd00b025.entry.js} +1 -1
- package/lib/esm/{dom-21034390.js → dom-58cd15f6.js} +1 -1
- package/lib/esm/duet-alert.entry.js +2 -2
- package/lib/esm/duet-badge.entry.js +1 -1
- package/lib/esm/duet-button_2.entry.js +4 -4
- package/lib/esm/duet-caption_4.entry.js +17 -10
- package/lib/esm/duet-card.entry.js +5 -5
- package/lib/esm/duet-checkbox.entry.js +2 -2
- package/lib/esm/duet-choice_2.entry.js +54 -25
- package/lib/esm/duet-collapsible.entry.js +3 -448
- package/lib/esm/duet-cookie-consent.entry.js +1 -1
- package/lib/esm/duet-date-picker.entry.js +7 -7
- package/lib/esm/duet-divider_2.entry.js +1 -1
- package/lib/esm/duet-editable-table-button.entry.js +85 -0
- package/lib/esm/duet-editable-table_4.entry.js +1438 -0
- package/lib/esm/duet-empty-state.entry.js +1 -1
- package/lib/esm/duet-fieldset.entry.js +1 -1
- package/lib/esm/duet-footer.entry.js +2 -2
- package/lib/esm/duet-grid_2.entry.js +69 -4
- package/lib/esm/duet-header_2.entry.js +3 -3
- package/lib/esm/duet-hero.entry.js +2 -2
- package/lib/esm/duet-icon.entry.js +5 -13
- package/lib/esm/duet-input_2.entry.js +6 -6
- package/lib/esm/duet-layout.entry.js +1 -1
- package/lib/esm/duet-list_2.entry.js +2 -2
- package/lib/esm/duet-modal.entry.js +3 -3
- package/lib/esm/duet-notification_2.entry.js +2 -2
- package/lib/esm/duet-number-input.entry.js +2 -2
- package/lib/esm/duet-progress.entry.js +71 -0
- package/lib/esm/duet-radio_2.entry.js +2 -2
- package/lib/esm/duet-range-slider.entry.js +2 -2
- package/lib/esm/duet-select.entry.js +5 -5
- package/lib/esm/duet-step_2.entry.js +1 -1
- package/lib/esm/duet-tab_2.entry.js +3 -3
- package/lib/esm/duet-textarea.entry.js +5 -5
- package/lib/esm/duet-toggle.entry.js +1 -1
- package/lib/esm/duet-tooltip.entry.js +2 -2
- package/lib/esm/duet-tray.entry.js +3 -3
- package/lib/esm/duet-upload-aria-status.entry.js +96 -0
- package/lib/esm/duet-visually-hidden.entry.js +1 -1
- package/lib/esm/duet.js +4 -4
- package/lib/esm/{focus-utils-1995e5a9.js → focus-utils-c1fa24c4.js} +1 -1
- package/lib/esm/{index-6e246691.js → index-05e43a37.js} +91 -78
- package/lib/esm/{language-utils-d5c38f65.js → language-utils-344d894c.js} +6 -3
- package/lib/esm/loader.js +3 -3
- package/lib/esm/{shadow-css-31e2d504.js → shadow-css-7c726abb.js} +9 -10
- package/lib/esm/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
- package/lib/esm/tokens-e110dc89.js +453 -0
- package/lib/esm/{tokens.module-edb66c04.js → tokens.module-49cbf963.js} +3 -1
- package/lib/esm/watch-options-dd55bce8.js +57 -0
- package/lib/esm-es5/{dom-21034390.js → dom-58cd15f6.js} +0 -0
- package/lib/esm-es5/duet-alert.entry.js +1 -1
- package/lib/esm-es5/duet-badge.entry.js +1 -1
- package/lib/esm-es5/duet-button_2.entry.js +1 -1
- package/lib/esm-es5/duet-caption_4.entry.js +2 -2
- package/lib/esm-es5/duet-card.entry.js +1 -1
- package/lib/esm-es5/duet-checkbox.entry.js +1 -1
- package/lib/esm-es5/duet-choice_2.entry.js +1 -1
- package/lib/esm-es5/duet-collapsible.entry.js +2 -2
- package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
- package/lib/esm-es5/duet-date-picker.entry.js +1 -1
- package/lib/esm-es5/duet-divider_2.entry.js +1 -1
- package/lib/esm-es5/duet-editable-table-button.entry.js +4 -0
- package/lib/esm-es5/duet-editable-table_4.entry.js +4 -0
- package/lib/esm-es5/duet-empty-state.entry.js +1 -1
- package/lib/esm-es5/duet-fieldset.entry.js +1 -1
- package/lib/esm-es5/duet-footer.entry.js +1 -1
- package/lib/esm-es5/duet-grid_2.entry.js +2 -2
- package/lib/esm-es5/duet-header_2.entry.js +1 -1
- package/lib/esm-es5/duet-hero.entry.js +1 -1
- package/lib/esm-es5/duet-icon.entry.js +2 -2
- package/lib/esm-es5/duet-input_2.entry.js +1 -1
- package/lib/esm-es5/duet-layout.entry.js +1 -1
- package/lib/esm-es5/duet-list_2.entry.js +1 -1
- package/lib/esm-es5/duet-modal.entry.js +1 -1
- package/lib/esm-es5/duet-notification_2.entry.js +1 -1
- package/lib/esm-es5/duet-number-input.entry.js +1 -1
- package/lib/esm-es5/duet-progress.entry.js +4 -0
- package/lib/esm-es5/duet-radio_2.entry.js +1 -1
- package/lib/esm-es5/duet-range-slider.entry.js +1 -1
- package/lib/esm-es5/duet-select.entry.js +1 -1
- package/lib/esm-es5/duet-step_2.entry.js +1 -1
- package/lib/esm-es5/duet-tab_2.entry.js +2 -2
- package/lib/esm-es5/duet-textarea.entry.js +1 -1
- package/lib/esm-es5/duet-toggle.entry.js +1 -1
- package/lib/esm-es5/duet-tooltip.entry.js +1 -1
- package/lib/esm-es5/duet-tray.entry.js +1 -1
- package/lib/esm-es5/duet-upload-aria-status.entry.js +4 -0
- package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
- package/lib/esm-es5/duet.js +1 -1
- package/lib/esm-es5/{focus-utils-1995e5a9.js → focus-utils-c1fa24c4.js} +1 -1
- package/lib/esm-es5/index-05e43a37.js +4 -0
- package/lib/esm-es5/{language-utils-d5c38f65.js → language-utils-344d894c.js} +1 -1
- package/lib/esm-es5/loader.js +1 -1
- package/lib/esm-es5/shadow-css-7c726abb.js +15 -0
- package/lib/esm-es5/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
- package/lib/esm-es5/tokens-e110dc89.js +4 -0
- package/lib/esm-es5/tokens.module-49cbf963.js +4 -0
- package/lib/esm-es5/watch-options-dd55bce8.js +4 -0
- package/lib/html.html-data.json +427 -10
- package/lib/types/components/duet-choice/duet-choice.d.ts +23 -4
- package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -5
- package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +72 -0
- package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +72 -0
- package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +7 -0
- package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +84 -0
- package/lib/types/components/duet-grid/duet-grid.d.ts +17 -2
- package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
- package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +9 -1
- package/lib/types/components/duet-progress/duet-progress.d.ts +64 -0
- package/lib/types/components/duet-upload/duet-upload.d.ts +404 -0
- package/lib/types/components/duet-upload/errorcodes.utils.d.ts +8 -0
- package/lib/types/components/duet-upload/mock.helpers.d.ts +2 -0
- package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +7 -0
- package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +7 -0
- package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +8 -0
- package/lib/types/components/duet-upload/upload-validators.d.ts +12 -0
- package/lib/types/components/duet-upload/upload.helpers.d.ts +1 -0
- package/lib/types/components/duet-upload/xhr.helpers.d.ts +18 -0
- package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +49 -0
- package/lib/types/components.d.ts +791 -21
- package/lib/types/utils/js-utils.d.ts +1 -0
- package/lib/types/utils/language-utils.d.ts +5 -1
- package/lib/types/utils/watch-options.d.ts +2 -0
- package/package.json +6 -6
- package/lib/cjs/duet-table.cjs.entry.js +0 -132
- package/lib/duet/p-0058512b.js +0 -4
- package/lib/duet/p-0224db45.entry.js +0 -4
- package/lib/duet/p-15c15c6a.js +0 -15
- package/lib/duet/p-202bbd70.entry.js +0 -4
- package/lib/duet/p-33426ddc.entry.js +0 -4
- package/lib/duet/p-3d3f773d.system.entry.js +0 -4
- package/lib/duet/p-3f78a826.system.js +0 -4
- package/lib/duet/p-418b2ce7.system.js +0 -4
- package/lib/duet/p-43e39d98.system.js +0 -4
- package/lib/duet/p-44ffb960.entry.js +0 -4
- package/lib/duet/p-5230ee3c.system.entry.js +0 -4
- package/lib/duet/p-5aa0d34d.entry.js +0 -4
- package/lib/duet/p-6a230911.system.entry.js +0 -4
- package/lib/duet/p-6a356ab1.system.js +0 -4
- package/lib/duet/p-6a760b8a.entry.js +0 -4
- package/lib/duet/p-712e7dde.system.entry.js +0 -4
- package/lib/duet/p-82dc2e0b.entry.js +0 -4
- package/lib/duet/p-8c8e82aa.system.js +0 -4
- package/lib/duet/p-8c980350.system.entry.js +0 -4
- package/lib/duet/p-8f03c3eb.entry.js +0 -4
- package/lib/duet/p-96808a2e.system.entry.js +0 -4
- package/lib/duet/p-96c103b2.system.entry.js +0 -4
- package/lib/duet/p-9a89ec39.js +0 -4
- package/lib/duet/p-9ff25646.entry.js +0 -4
- package/lib/duet/p-b694cbf5.system.js +0 -4
- package/lib/duet/p-b82927b0.system.entry.js +0 -4
- package/lib/duet/p-ba205dca.entry.js +0 -4
- package/lib/duet/p-be19c57b.system.entry.js +0 -4
- package/lib/duet/p-c5beceed.js +0 -4
- package/lib/duet/p-d35fd913.system.entry.js +0 -4
- package/lib/duet/p-d7623eb8.system.entry.js +0 -4
- package/lib/duet/p-de842863.entry.js +0 -4
- package/lib/duet/p-e58ca7af.system.js +0 -16
- package/lib/esm/duet-table.entry.js +0 -128
- package/lib/esm/watch-options-de55ea78.js +0 -35
- package/lib/esm-es5/duet-table.entry.js +0 -4
- package/lib/esm-es5/index-6e246691.js +0 -4
- package/lib/esm-es5/shadow-css-31e2d504.js +0 -15
- package/lib/esm-es5/tokens.module-edb66c04.js +0 -4
- package/lib/esm-es5/watch-options-de55ea78.js +0 -4
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Built with Duet Design System
|
|
3
3
|
*/
|
|
4
4
|
const NAMESPACE = 'duet';
|
|
5
|
+
const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.5"};
|
|
5
6
|
|
|
6
7
|
let scopeId;
|
|
7
8
|
let contentRef;
|
|
@@ -13,6 +14,8 @@ let isSvgMode = false;
|
|
|
13
14
|
let queuePending = false;
|
|
14
15
|
const win = typeof window !== 'undefined' ? window : {};
|
|
15
16
|
const doc = win.document || { head: {} };
|
|
17
|
+
const H = (win.HTMLElement || class {
|
|
18
|
+
});
|
|
16
19
|
const plt = {
|
|
17
20
|
$flags$: 0,
|
|
18
21
|
$resourcesUrl$: '',
|
|
@@ -391,7 +394,6 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
|
391
394
|
// Workaround for Safari, moving the <input> caret when re-assigning the same valued
|
|
392
395
|
if (memberName === 'list') {
|
|
393
396
|
isProp = false;
|
|
394
|
-
// tslint:disable-next-line: triple-equals
|
|
395
397
|
}
|
|
396
398
|
else if (oldValue == null || elm[memberName] != n) {
|
|
397
399
|
elm[memberName] = n;
|
|
@@ -1091,6 +1093,9 @@ const dispatchHooks = (hostRef, isInitialLoad) => {
|
|
|
1091
1093
|
promise = safeCall(instance, 'componentWillLoad');
|
|
1092
1094
|
}
|
|
1093
1095
|
}
|
|
1096
|
+
{
|
|
1097
|
+
promise = then(promise, () => safeCall(instance, 'componentWillRender'));
|
|
1098
|
+
}
|
|
1094
1099
|
endSchedule();
|
|
1095
1100
|
return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));
|
|
1096
1101
|
};
|
|
@@ -1318,14 +1323,14 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1318
1323
|
prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
|
|
1319
1324
|
plt.jmp(() => {
|
|
1320
1325
|
const propName = attrNameToPropName.get(attrName);
|
|
1321
|
-
// In a
|
|
1326
|
+
// In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
|
|
1322
1327
|
// in the case where an attribute was set inline.
|
|
1323
1328
|
// ```html
|
|
1324
1329
|
// <my-component some-attribute="some-value"></my-component>
|
|
1325
1330
|
// ```
|
|
1326
1331
|
//
|
|
1327
|
-
// There is an edge case where a developer sets the attribute inline on a custom element and then
|
|
1328
|
-
// changes it before it has been upgraded as shown below:
|
|
1332
|
+
// There is an edge case where a developer sets the attribute inline on a custom element and then
|
|
1333
|
+
// programmatically changes it before it has been upgraded as shown below:
|
|
1329
1334
|
//
|
|
1330
1335
|
// ```html
|
|
1331
1336
|
// <!-- this component has _not_ been upgraded yet -->
|
|
@@ -1335,13 +1340,13 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1335
1340
|
// el = document.querySelector("#test");
|
|
1336
1341
|
// el.someAttribute = "another-value";
|
|
1337
1342
|
// // upgrade component
|
|
1338
|
-
//
|
|
1343
|
+
// customElements.define('my-component', MyComponent);
|
|
1339
1344
|
// </script>
|
|
1340
1345
|
// ```
|
|
1341
1346
|
// In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
|
|
1342
1347
|
// will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
|
|
1343
1348
|
// to the value that was set inline i.e. "some-value" from above example. When
|
|
1344
|
-
// the connectedCallback attempts to unshadow it will use "some-value" as the
|
|
1349
|
+
// the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
|
|
1345
1350
|
//
|
|
1346
1351
|
// The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
|
|
1347
1352
|
// by connectedCallback as this attributeChangedCallback will not fire.
|
|
@@ -1355,6 +1360,14 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1355
1360
|
newValue = this[propName];
|
|
1356
1361
|
delete this[propName];
|
|
1357
1362
|
}
|
|
1363
|
+
else if (prototype.hasOwnProperty(propName) &&
|
|
1364
|
+
typeof this[propName] === 'number' &&
|
|
1365
|
+
this[propName] == newValue) {
|
|
1366
|
+
// if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native
|
|
1367
|
+
// APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in
|
|
1368
|
+
// `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
|
|
1369
|
+
return;
|
|
1370
|
+
}
|
|
1358
1371
|
this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
|
|
1359
1372
|
});
|
|
1360
1373
|
};
|
|
@@ -1404,7 +1417,7 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
|
|
|
1404
1417
|
const ancestorComponent = hostRef.$ancestorComponent$;
|
|
1405
1418
|
const schedule = () => scheduleUpdate(hostRef, true);
|
|
1406
1419
|
if (ancestorComponent && ancestorComponent['s-rc']) {
|
|
1407
|
-
// this is the
|
|
1420
|
+
// this is the initial load and this component it has an ancestor component
|
|
1408
1421
|
// but the ancestor component has NOT fired its will update lifecycle yet
|
|
1409
1422
|
// so let's just cool our jets and wait for the ancestor to continue first
|
|
1410
1423
|
// this will get fired off when the ancestor component
|
|
@@ -1532,18 +1545,23 @@ const proxyCustomElement = (Cstr, compactMeta) => {
|
|
|
1532
1545
|
originalDisconnectedCallback.call(this);
|
|
1533
1546
|
}
|
|
1534
1547
|
},
|
|
1548
|
+
__attachShadow() {
|
|
1549
|
+
if (supportsShadow) {
|
|
1550
|
+
{
|
|
1551
|
+
this.attachShadow({
|
|
1552
|
+
mode: 'open',
|
|
1553
|
+
delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
|
|
1554
|
+
});
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
else {
|
|
1558
|
+
this.shadowRoot = this;
|
|
1559
|
+
}
|
|
1560
|
+
},
|
|
1535
1561
|
});
|
|
1536
1562
|
Cstr.is = cmpMeta.$tagName$;
|
|
1537
1563
|
return proxyComponent(Cstr, cmpMeta);
|
|
1538
1564
|
};
|
|
1539
|
-
const attachShadow = (el) => {
|
|
1540
|
-
if (supportsShadow) {
|
|
1541
|
-
el.attachShadow({ mode: 'open' });
|
|
1542
|
-
}
|
|
1543
|
-
else {
|
|
1544
|
-
el.shadowRoot = el;
|
|
1545
|
-
}
|
|
1546
|
-
};
|
|
1547
1565
|
const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
|
|
1548
1566
|
const setPlatformOptions = (opts) => Object.assign(plt, opts);
|
|
1549
1567
|
const Fragment = (_, children) => children;
|
|
@@ -1738,6 +1756,9 @@ const getLocale = (lang) => {
|
|
|
1738
1756
|
}
|
|
1739
1757
|
throw new Error(`Locale for "${lang}" not found`);
|
|
1740
1758
|
};
|
|
1759
|
+
/**
|
|
1760
|
+
* Takes any json object that is passed and/or htmlencoded and converts it to proper json
|
|
1761
|
+
*/
|
|
1741
1762
|
const sanitizeString = (string) => {
|
|
1742
1763
|
const argIsString = typeof string === "string";
|
|
1743
1764
|
if (argIsString) {
|
|
@@ -1745,7 +1766,7 @@ const sanitizeString = (string) => {
|
|
|
1745
1766
|
return JSON.parse(convertHtmlQuotes(string));
|
|
1746
1767
|
}
|
|
1747
1768
|
catch (e) {
|
|
1748
|
-
console.log("
|
|
1769
|
+
console.log("sanitizeString received a string, that didnt parse to json object", string, e);
|
|
1749
1770
|
}
|
|
1750
1771
|
}
|
|
1751
1772
|
return string;
|
|
@@ -1757,7 +1778,7 @@ const sanitizeString = (string) => {
|
|
|
1757
1778
|
* @param {object} langObject - {fi: "finnish", sv: "swedish", en: "english"} | string will get JSON.parsed
|
|
1758
1779
|
* @param {boolean} languageOverride = false - in case you want to override the actual language set in html tag
|
|
1759
1780
|
* @default {object} {locale: "fi-FI", money: "€"}
|
|
1760
|
-
* @returns {(string|Object)} given example contains {fi:"something"} and
|
|
1781
|
+
* @returns {(string|Object)} given example contains {fi:"something"} and language===fi this will return "something"
|
|
1761
1782
|
*/
|
|
1762
1783
|
const getLocaleString = (langObject, languageOverride) => {
|
|
1763
1784
|
const obj = sanitizeString(langObject);
|
|
@@ -1777,11 +1798,11 @@ const inheritGlobalTheme = (component) => {
|
|
|
1777
1798
|
|
|
1778
1799
|
const duetAlertCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;max-height:999px;border-radius:4px;transition:opacity 300ms ease, visibility 300ms ease, transform 300ms ease, max-height 300ms ease}:host(:focus){outline:0}:host(.user-is-tabbing:focus){border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva:focus){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}:host(.duet-alert-is-dismissed){max-height:0;visibility:hidden;opacity:0;transform:scale(0.98)}:host(.duet-alert-is-dismissed) .duet-alert{margin:0 !important}.duet-alert{margin-bottom:16px !important;position:relative;width:100%;padding:16px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25;color:#00294d;background:#f2f8fb;border:1px solid #0077b3;border-radius:4px;transition:margin 100ms 300ms ease}.duet-alert.duet-p-0{padding:0 !important}.duet-alert.duet-m-0{margin:0 !important}.duet-alert.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;background:#f3f4f5;border-color:#171c3a}.duet-alert.warning{background:#fffbf4;border-color:#f7b228}.duet-alert.warning.duet-theme-turva{background:#fffaf3;border-color:#faa40f}.duet-alert.danger{background:#fdf4f7;border-color:#de2362}.duet-alert.danger.duet-theme-turva{background:#fdf4f3;border-color:#e02a0d}.duet-alert.success{background:#f2f9f7;border-color:#00875a}.duet-alert.success.duet-theme-turva{background:#f3f9f6;border-color:#08874e}.duet-alert-dismiss{position:absolute;top:2px;right:2px}.duet-alert-container{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 auto !important}.duet-alert-container span{width:100%}.duet-alert-has-icon .duet-alert-container{margin-top:2px !important}.duet-alert-icon{display:inline-block;align-self:center;width:20px;min-width:20px;height:20px;margin:0 16px 0 0 !important}.duet-alert-icon duet-icon{width:20px;height:20px}.duet-alert-is-dismissible{padding:16px 48px 16px 16px;text-align:left}.duet-alert-is-dismissible .duet-alert-container{text-align:left}";
|
|
1779
1800
|
|
|
1780
|
-
let DuetAlert$1 = class extends
|
|
1801
|
+
let DuetAlert$1 = class extends H {
|
|
1781
1802
|
constructor() {
|
|
1782
1803
|
super();
|
|
1783
1804
|
this.__registerHost();
|
|
1784
|
-
|
|
1805
|
+
this.__attachShadow();
|
|
1785
1806
|
this.duetDismiss = createEvent$2(this, "duetDismiss", 7);
|
|
1786
1807
|
/**
|
|
1787
1808
|
* Theme of the card.
|
|
@@ -1877,11 +1898,11 @@ let DuetAlert$1 = class extends HTMLElement {
|
|
|
1877
1898
|
|
|
1878
1899
|
const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.duet-badge{width:100%;padding:4.4444444444px 12px 5.4444444444px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.75rem;font-style:normal;font-weight:600;line-height:1.25;color:#00294d;text-align:center;word-break:break-word;vertical-align:middle;background:#e6f1f7;border-radius:20rem}.duet-badge.duet-p-0{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700;color:#171c3a;background:#e8e8eb}.duet-badge.warning{background:#fef3df}.duet-badge.warning.duet-theme-turva{background:#fef1db}.duet-badge.danger{background:#fce9ef}.duet-badge.danger.duet-theme-turva{background:#fceae7}.duet-badge.success{background:#e6f3ef}.duet-badge.success.duet-theme-turva{background:#e6f3ed}";
|
|
1879
1900
|
|
|
1880
|
-
let DuetBadge$1 = class extends
|
|
1901
|
+
let DuetBadge$1 = class extends H {
|
|
1881
1902
|
constructor() {
|
|
1882
1903
|
super();
|
|
1883
1904
|
this.__registerHost();
|
|
1884
|
-
|
|
1905
|
+
this.__attachShadow();
|
|
1885
1906
|
/**
|
|
1886
1907
|
* Theme of the badge.
|
|
1887
1908
|
*/
|
|
@@ -2036,6 +2057,7 @@ const sizeTappableSquare = "48px";
|
|
|
2036
2057
|
const sizeIconXSmall = "16px";
|
|
2037
2058
|
const sizeIconXxxSmall = "7px";
|
|
2038
2059
|
const sizeButtonBorder = "2px";
|
|
2060
|
+
const sizeButtonTinyBorder = "1px";
|
|
2039
2061
|
const sizeIconMedium = "24px";
|
|
2040
2062
|
const sizeIconSmall = "20px";
|
|
2041
2063
|
const opacity85 = "0.85";
|
|
@@ -2185,6 +2207,7 @@ const tokens$2 = /*#__PURE__*/Object.freeze({
|
|
|
2185
2207
|
sizeIconXSmall: sizeIconXSmall,
|
|
2186
2208
|
sizeIconXxxSmall: sizeIconXxxSmall,
|
|
2187
2209
|
sizeButtonBorder: sizeButtonBorder,
|
|
2210
|
+
sizeButtonTinyBorder: sizeButtonTinyBorder,
|
|
2188
2211
|
sizeIconMedium: sizeIconMedium,
|
|
2189
2212
|
sizeIconSmall: sizeIconSmall,
|
|
2190
2213
|
opacity85: opacity85,
|
|
@@ -2242,11 +2265,11 @@ function getColorByName(name) {
|
|
|
2242
2265
|
|
|
2243
2266
|
const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
|
|
2244
2267
|
|
|
2245
|
-
let DuetButton$1 = class extends
|
|
2268
|
+
let DuetButton$1 = class extends H {
|
|
2246
2269
|
constructor() {
|
|
2247
2270
|
super();
|
|
2248
2271
|
this.__registerHost();
|
|
2249
|
-
|
|
2272
|
+
this.__attachShadow();
|
|
2250
2273
|
this.duetFocus = createEvent$2(this, "duetFocus", 7);
|
|
2251
2274
|
this.duetBlur = createEvent$2(this, "duetBlur", 7);
|
|
2252
2275
|
/**
|
|
@@ -2477,11 +2500,11 @@ let DuetButton$1 = class extends HTMLElement {
|
|
|
2477
2500
|
|
|
2478
2501
|
const duetCaptionCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:flex;flex:0 0 100%;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#657787;vertical-align:top}:host.duet-p-0{padding:0 !important}:host.duet-m-0{margin:0 !important}:host(.duet-caption-small){font-size:0.875rem;line-height:1.25}:host(.duet-theme-turva){font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}:host(.duet-caption-selected){color:#0077b3}:host(.duet-caption-selected.duet-theme-turva){color:#171c3a}:host(.duet-m-0){margin:0 !important}";
|
|
2479
2502
|
|
|
2480
|
-
let DuetCaption$1 = class extends
|
|
2503
|
+
let DuetCaption$1 = class extends H {
|
|
2481
2504
|
constructor() {
|
|
2482
2505
|
super();
|
|
2483
2506
|
this.__registerHost();
|
|
2484
|
-
|
|
2507
|
+
this.__attachShadow();
|
|
2485
2508
|
/**
|
|
2486
2509
|
* Theme of the caption.
|
|
2487
2510
|
*/
|
|
@@ -2541,13 +2564,13 @@ const isQuestionKey = (e) => e.key === "?";
|
|
|
2541
2564
|
const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
|
|
2542
2565
|
const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
|
|
2543
2566
|
|
|
2544
|
-
const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}.duet-card{padding:20px !important;position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){.duet-card{padding:28px !important}}.duet-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}.duet-card.info.duet-theme-turva{background:rgba(23, 28, 58, 0.035) !important}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}.duet-card-heading[role=button]{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}.duet-card-heading[role=button]:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading[role=button]:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0 0 20px !important;margin:0 0 20px}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.duet-theme-turva .duet-card-footer{background:#f5f5f7}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:12px 0 !important;margin:20px 0 0}.duet-card-content{width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;margin:0 0 20px}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transition:none;transform:translateY(1px)}";
|
|
2567
|
+
const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}.duet-card{padding:20px !important;position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){.duet-card{padding:28px !important}}.duet-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}.duet-card.info.duet-theme-turva{background:rgba(23, 28, 58, 0.035) !important}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){.duet-card-secondary-heading--inline{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}.duet-card-heading[role=button]{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}.duet-card-heading[role=button]:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading[role=button]:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0 0 20px !important;margin:0 0 20px}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.duet-theme-turva .duet-card-footer{background:#f5f5f7}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:12px 0 !important;margin:20px 0 0}.duet-card-content{width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;margin:0 0 20px}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transition:none;transform:translateY(1px)}";
|
|
2545
2568
|
|
|
2546
|
-
let DuetCard$1 = class extends
|
|
2569
|
+
let DuetCard$1 = class extends H {
|
|
2547
2570
|
constructor() {
|
|
2548
2571
|
super();
|
|
2549
2572
|
this.__registerHost();
|
|
2550
|
-
|
|
2573
|
+
this.__attachShadow();
|
|
2551
2574
|
this.duetToggle = createEvent$2(this, "duetToggle", 7);
|
|
2552
2575
|
this.cardId = createID("DuetCard");
|
|
2553
2576
|
/**
|
|
@@ -2635,7 +2658,7 @@ let DuetCard$1 = class extends HTMLElement {
|
|
|
2635
2658
|
onKeyDown: this.handleKeyDown,
|
|
2636
2659
|
}
|
|
2637
2660
|
: {};
|
|
2638
|
-
return (h$1(HeadingTag, Object.assign({ class: "duet-card-heading" }, headingProps), h$1("div", { class: "duet-card-heading-grid" }, this.icon && (h$1(Fragment, null, h$1("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h$1("duet-spacer", { direction: "horizontal", size: "small" }))), h$1("div", { class: "duet-card-heading-text" }, this.heading), this.collapsible && (h$1(Fragment, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("duet-icon", { class: "duet-card-caret", icon: actionArrowUp.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && h$1("div", { class: "duet-card-secondary-heading" }, this.secondaryHeading)));
|
|
2661
|
+
return (h$1(HeadingTag, Object.assign({ class: "duet-card-heading" }, headingProps), h$1("div", { class: "duet-card-heading-grid" }, this.icon && (h$1(Fragment, null, h$1("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h$1("duet-spacer", { direction: "horizontal", size: "small" }))), h$1("div", { class: "duet-card-heading-text" }, this.heading), this.secondaryHeading && (h$1(Fragment, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h$1(Fragment, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("duet-icon", { class: "duet-card-caret", icon: actionArrowUp.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading))));
|
|
2639
2662
|
}
|
|
2640
2663
|
/**
|
|
2641
2664
|
* Sets focus on the specified `duet-card`. Use this method instead of the global
|
|
@@ -2673,9 +2696,9 @@ let DuetCard$1 = class extends HTMLElement {
|
|
|
2673
2696
|
static get style() { return duetCardCss; }
|
|
2674
2697
|
};
|
|
2675
2698
|
|
|
2676
|
-
const duetCheckboxCss = "*.sc-duet-checkbox,*.sc-duet-checkbox::after,*.sc-duet-checkbox::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-checkbox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-checkbox-h:last-child,.sc-duet-checkbox-h:last-of-type{margin-right:0 !important}.sc-duet-checkbox-h:last-
|
|
2699
|
+
const duetCheckboxCss = "*.sc-duet-checkbox,*.sc-duet-checkbox::after,*.sc-duet-checkbox::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-checkbox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-checkbox-h:last-child,.sc-duet-checkbox-h:last-of-type{margin-right:0 !important}.sc-duet-checkbox-h:last-child:not(:only-child){margin-bottom:0 !important}.duet-m-0.sc-duet-checkbox-h{margin:0 !important}.duet-label.sc-duet-checkbox{position:relative;z-index:100;display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;vertical-align:top;cursor:pointer;background:transparent;transition:300ms ease}.duet-theme-turva.sc-duet-checkbox .duet-label.sc-duet-checkbox{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-label.sc-duet-checkbox span.sc-duet-checkbox{display:inline-block;width:calc(100% - 32px);font-size:1rem;font-weight:400;vertical-align:top}.duet-checkbox-container.sc-duet-checkbox{position:relative;width:100%;height:100%}.duet-checkbox.sc-duet-checkbox{padding:14px !important;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;cursor:pointer;opacity:0}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{z-index:100;display:inline-block;width:20px;height:20px;margin:2px 10px 1px 1px;vertical-align:top;content:\"\";background:white;border:1px solid #00294d;border-radius:4px}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#00294d;border:1px solid #00294d}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#171c3a;border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox{position:static}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::after{position:absolute;top:6px;left:5px;z-index:200;width:12px;height:12px;pointer-events:none;content:\"\";background:transparent url(\"data:image/svg+xml,%3Csvg%20fill%3D%27white%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M23.374.287a1.5%2C1.5%2C0%2C0%2C0-2.093.345L7.246%2C20.2%2C2.561%2C15.511A1.5%2C1.5%2C0%2C1%2C0%2C.439%2C17.632l5.935%2C5.934a1.525%2C1.525%2C0%2C0%2C0%2C2.279-.186l15.066-21A1.5%2C1.5%2C0%2C0%2C0%2C23.374.287Z%27%20%2F%3E%3C%2Fsvg%3E\") no-repeat 0 0;background-size:100% auto}.duet-checkbox[disabled].sc-duet-checkbox{cursor:default}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#747475}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfd2d4}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfcfd1}.duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#657787;border:1px solid #657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#747475;border-color:#747475}.duet-label-hidden.sc-duet-checkbox .duet-label.sc-duet-checkbox span.sc-duet-checkbox{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
2677
2700
|
|
|
2678
|
-
let DuetCheckbox$1 = class extends
|
|
2701
|
+
let DuetCheckbox$1 = class extends H {
|
|
2679
2702
|
constructor() {
|
|
2680
2703
|
super();
|
|
2681
2704
|
this.__registerHost();
|
|
@@ -2781,18 +2804,165 @@ let DuetCheckbox$1 = class extends HTMLElement {
|
|
|
2781
2804
|
|
|
2782
2805
|
var messagingInfo={"title":"messaging-info","tags":"messaging info information circle","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M13.5 17.25A2.252 2.252 0 0 1 11.25 15v-3.75h-.75a.75.75 0 0 1 0-1.5h.75c.827 0 1.5.673 1.5 1.5V15c0 .414.336.75.75.75h.75a.75.75 0 0 1 0 1.5z\"/><circle cx=\"11.625\" cy=\"7.125\" r=\"1.125\"/><path d=\"M12 24C5.383 24 0 18.617 0 12S5.383 0 12 0s12 5.383 12 12-5.383 12-12 12zm0-22.5C6.21 1.5 1.5 6.21 1.5 12S6.21 22.5 12 22.5 22.5 17.79 22.5 12 17.79 1.5 12 1.5z\"/></svg>"};
|
|
2783
2806
|
|
|
2784
|
-
const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px 48px 20px 16px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-right:110px;border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.has-icon.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-left:48px}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:absolute;top:17.7777777778px;right:16px;width:20px;height:20px;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:absolute;top:50%;left:16px;transform:translateY(-50%)}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;display:none;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;justify-content:center;width:57.6px;padding-top:18px;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom:0;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:100%;height:100%;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
|
|
2807
|
+
const isComplexType = (o) => {
|
|
2808
|
+
// https://jsperf.com/typeof-fn-object/5
|
|
2809
|
+
o = typeof o;
|
|
2810
|
+
return o === 'object' || o === 'function';
|
|
2811
|
+
};
|
|
2812
|
+
/**
|
|
2813
|
+
* Production h() function based on Preact by
|
|
2814
|
+
* Jason Miller (@developit)
|
|
2815
|
+
* Licensed under the MIT License
|
|
2816
|
+
* https://github.com/developit/preact/blob/master/LICENSE
|
|
2817
|
+
*
|
|
2818
|
+
* Modified for Stencil's compiler and vdom
|
|
2819
|
+
*/
|
|
2820
|
+
// const stack: any[] = [];
|
|
2821
|
+
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;
|
|
2822
|
+
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
|
|
2823
|
+
const h = (nodeName, vnodeData, ...children) => {
|
|
2824
|
+
let child = null;
|
|
2825
|
+
let key = null;
|
|
2826
|
+
let slotName = null;
|
|
2827
|
+
let simple = false;
|
|
2828
|
+
let lastSimple = false;
|
|
2829
|
+
let vNodeChildren = [];
|
|
2830
|
+
const walk = (c) => {
|
|
2831
|
+
for (let i = 0; i < c.length; i++) {
|
|
2832
|
+
child = c[i];
|
|
2833
|
+
if (Array.isArray(child)) {
|
|
2834
|
+
walk(child);
|
|
2835
|
+
}
|
|
2836
|
+
else if (child != null && typeof child !== 'boolean') {
|
|
2837
|
+
if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {
|
|
2838
|
+
child = String(child);
|
|
2839
|
+
}
|
|
2840
|
+
if (simple && lastSimple) {
|
|
2841
|
+
// If the previous child was simple (string), we merge both
|
|
2842
|
+
vNodeChildren[vNodeChildren.length - 1].$text$ += child;
|
|
2843
|
+
}
|
|
2844
|
+
else {
|
|
2845
|
+
// Append a new vNode, if it's text, we create a text vNode
|
|
2846
|
+
vNodeChildren.push(simple ? newVNode(null, child) : child);
|
|
2847
|
+
}
|
|
2848
|
+
lastSimple = simple;
|
|
2849
|
+
}
|
|
2850
|
+
}
|
|
2851
|
+
};
|
|
2852
|
+
walk(children);
|
|
2853
|
+
if (vnodeData) {
|
|
2854
|
+
// normalize class / classname attributes
|
|
2855
|
+
if (vnodeData.key) {
|
|
2856
|
+
key = vnodeData.key;
|
|
2857
|
+
}
|
|
2858
|
+
if (vnodeData.name) {
|
|
2859
|
+
slotName = vnodeData.name;
|
|
2860
|
+
}
|
|
2861
|
+
{
|
|
2862
|
+
const classData = vnodeData.className || vnodeData.class;
|
|
2863
|
+
if (classData) {
|
|
2864
|
+
vnodeData.class =
|
|
2865
|
+
typeof classData !== 'object'
|
|
2866
|
+
? classData
|
|
2867
|
+
: Object.keys(classData)
|
|
2868
|
+
.filter((k) => classData[k])
|
|
2869
|
+
.join(' ');
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2872
|
+
}
|
|
2873
|
+
if (typeof nodeName === 'function') {
|
|
2874
|
+
// nodeName is a functional component
|
|
2875
|
+
return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);
|
|
2876
|
+
}
|
|
2877
|
+
const vnode = newVNode(nodeName, null);
|
|
2878
|
+
vnode.$attrs$ = vnodeData;
|
|
2879
|
+
if (vNodeChildren.length > 0) {
|
|
2880
|
+
vnode.$children$ = vNodeChildren;
|
|
2881
|
+
}
|
|
2882
|
+
{
|
|
2883
|
+
vnode.$key$ = key;
|
|
2884
|
+
}
|
|
2885
|
+
{
|
|
2886
|
+
vnode.$name$ = slotName;
|
|
2887
|
+
}
|
|
2888
|
+
return vnode;
|
|
2889
|
+
};
|
|
2890
|
+
const newVNode = (tag, text) => {
|
|
2891
|
+
const vnode = {
|
|
2892
|
+
$flags$: 0,
|
|
2893
|
+
$tag$: tag,
|
|
2894
|
+
$text$: text,
|
|
2895
|
+
$elm$: null,
|
|
2896
|
+
$children$: null,
|
|
2897
|
+
};
|
|
2898
|
+
{
|
|
2899
|
+
vnode.$attrs$ = null;
|
|
2900
|
+
}
|
|
2901
|
+
{
|
|
2902
|
+
vnode.$key$ = null;
|
|
2903
|
+
}
|
|
2904
|
+
{
|
|
2905
|
+
vnode.$name$ = null;
|
|
2906
|
+
}
|
|
2907
|
+
return vnode;
|
|
2908
|
+
};
|
|
2909
|
+
const vdomFnUtils = {
|
|
2910
|
+
forEach: (children, cb) => children.map(convertToPublic).forEach(cb),
|
|
2911
|
+
map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),
|
|
2912
|
+
};
|
|
2913
|
+
const convertToPublic = (node) => ({
|
|
2914
|
+
vattrs: node.$attrs$,
|
|
2915
|
+
vchildren: node.$children$,
|
|
2916
|
+
vkey: node.$key$,
|
|
2917
|
+
vname: node.$name$,
|
|
2918
|
+
vtag: node.$tag$,
|
|
2919
|
+
vtext: node.$text$,
|
|
2920
|
+
});
|
|
2921
|
+
const convertToPrivate = (node) => {
|
|
2922
|
+
if (typeof node.vtag === 'function') {
|
|
2923
|
+
const vnodeData = Object.assign({}, node.vattrs);
|
|
2924
|
+
if (node.vkey) {
|
|
2925
|
+
vnodeData.key = node.vkey;
|
|
2926
|
+
}
|
|
2927
|
+
if (node.vname) {
|
|
2928
|
+
vnodeData.name = node.vname;
|
|
2929
|
+
}
|
|
2930
|
+
return h(node.vtag, vnodeData, ...(node.vchildren || []));
|
|
2931
|
+
}
|
|
2932
|
+
const vnode = newVNode(node.vtag, node.vtext);
|
|
2933
|
+
vnode.$attrs$ = node.vattrs;
|
|
2934
|
+
vnode.$children$ = node.vchildren;
|
|
2935
|
+
vnode.$key$ = node.vkey;
|
|
2936
|
+
vnode.$name$ = node.vname;
|
|
2937
|
+
return vnode;
|
|
2938
|
+
};
|
|
2939
|
+
|
|
2940
|
+
const focusElement = (element) => {
|
|
2941
|
+
if ("setFocus" in element) {
|
|
2942
|
+
element.setFocus();
|
|
2943
|
+
}
|
|
2944
|
+
else {
|
|
2945
|
+
element.focus();
|
|
2946
|
+
}
|
|
2947
|
+
};
|
|
2948
|
+
const FocusGuard = ({ moveFocusTo }) => {
|
|
2949
|
+
return h("div", { class: "duet-focus-guard", "aria-hidden": "true", tabIndex: 0, onFocus: () => focusElement(moveFocusTo) });
|
|
2950
|
+
};
|
|
2951
|
+
|
|
2952
|
+
const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px 48px 20px 16px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-right:110px;border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.has-icon.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-left:48px}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:absolute;top:17.7777777778px;right:16px;width:20px;height:20px;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:absolute;top:50%;left:16px;transform:translateY(-50%)}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-section-hidden.sc-duet-choice{display:none}.duet-choice-card-info.duet-choice-card-collapsed.sc-duet-choice,.duet-choice-card-collapsed.duet-choice-card-collapsible.sc-duet-choice{position:relative;width:auto;padding:0 !important;background:unset !important;border:0;border-radius:0}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;justify-content:center;width:57.6px;padding-top:18px;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom:0;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:auto;height:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
|
|
2785
2953
|
|
|
2786
|
-
let DuetChoice$1 = class extends
|
|
2954
|
+
let DuetChoice$1 = class extends H {
|
|
2787
2955
|
constructor() {
|
|
2788
2956
|
super();
|
|
2789
2957
|
this.__registerHost();
|
|
2790
2958
|
this.duetChange = createEvent$2(this, "duetChange", 7);
|
|
2791
2959
|
this.duetFocus = createEvent$2(this, "duetFocus", 7);
|
|
2792
2960
|
this.duetBlur = createEvent$2(this, "duetBlur", 7);
|
|
2961
|
+
this.hasHeader = false;
|
|
2793
2962
|
this.choiceId = createID("DuetChoice");
|
|
2794
|
-
this.
|
|
2795
|
-
this.
|
|
2963
|
+
this.expandId = createID("DuetChoiceExpand");
|
|
2964
|
+
this.headerId = createID("DuetChoiceHeader");
|
|
2965
|
+
this.infoButtonId = createID("DuetChoiceInfoButton");
|
|
2796
2966
|
/**
|
|
2797
2967
|
* State() variables
|
|
2798
2968
|
* Inlined decorator, alphabetical order.
|
|
@@ -2870,6 +3040,24 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2870
3040
|
* browser from displaying its own validation errors.
|
|
2871
3041
|
*/
|
|
2872
3042
|
this.required = false;
|
|
3043
|
+
/**
|
|
3044
|
+
* Placeholder defaults
|
|
3045
|
+
* @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
|
|
3046
|
+
*/
|
|
3047
|
+
this.infoLabelDefaults = {
|
|
3048
|
+
fi: "Lisätietoja",
|
|
3049
|
+
en: "More information about",
|
|
3050
|
+
sv: "Mera information om",
|
|
3051
|
+
};
|
|
3052
|
+
/**
|
|
3053
|
+
* Hint text to display before the user types into the date picker input.
|
|
3054
|
+
* @default {
|
|
3055
|
+
* fi: "Lisätietoja",
|
|
3056
|
+
* en: "More information about",
|
|
3057
|
+
* sv: "Mera information om",
|
|
3058
|
+
* }
|
|
3059
|
+
*/
|
|
3060
|
+
this.infoLabel = getLocaleString(this.infoLabelDefaults, getLanguage());
|
|
2873
3061
|
this.onMouseEnter = () => {
|
|
2874
3062
|
this.isHovering = true;
|
|
2875
3063
|
};
|
|
@@ -2877,7 +3065,6 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2877
3065
|
this.isHovering = false;
|
|
2878
3066
|
};
|
|
2879
3067
|
this.onClick = (ev) => {
|
|
2880
|
-
this.setFocus();
|
|
2881
3068
|
this.toggleChecked(ev);
|
|
2882
3069
|
};
|
|
2883
3070
|
this.handleKeyDown = (ev) => {
|
|
@@ -2885,7 +3072,7 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2885
3072
|
this.toggleChecked(ev);
|
|
2886
3073
|
}
|
|
2887
3074
|
if (isQuestionKey(ev) && this.hasInfo) {
|
|
2888
|
-
this.toggleInfo(
|
|
3075
|
+
this.toggleInfo();
|
|
2889
3076
|
}
|
|
2890
3077
|
};
|
|
2891
3078
|
this.onChange = () => {
|
|
@@ -2919,8 +3106,6 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2919
3106
|
if (this.disabled || this.groupDisabled) {
|
|
2920
3107
|
return;
|
|
2921
3108
|
}
|
|
2922
|
-
ev.stopPropagation();
|
|
2923
|
-
ev.preventDefault();
|
|
2924
3109
|
this.isInfoOpen = false;
|
|
2925
3110
|
// if it's a radio button and it's already checked
|
|
2926
3111
|
// we shouldn't fire an event, so exit early
|
|
@@ -2934,10 +3119,10 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2934
3119
|
value: this.value,
|
|
2935
3120
|
component: "duet-choice",
|
|
2936
3121
|
});
|
|
2937
|
-
};
|
|
2938
|
-
this.toggleInfo = ev => {
|
|
2939
|
-
ev.stopPropagation();
|
|
2940
3122
|
ev.preventDefault();
|
|
3123
|
+
ev.stopPropagation();
|
|
3124
|
+
};
|
|
3125
|
+
this.toggleInfo = () => {
|
|
2941
3126
|
this.isInfoOpen = !this.isInfoOpen;
|
|
2942
3127
|
};
|
|
2943
3128
|
}
|
|
@@ -2947,6 +3132,7 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2947
3132
|
componentWillLoad() {
|
|
2948
3133
|
inheritGlobalTheme(this);
|
|
2949
3134
|
this.hasInfo = !!this.element.querySelector("[slot='info']");
|
|
3135
|
+
this.hasHeader = !!this.element.querySelector('[slot="header"]');
|
|
2950
3136
|
this.hasAdditional = !!this.element.querySelector("[slot='additional']");
|
|
2951
3137
|
}
|
|
2952
3138
|
/**
|
|
@@ -2960,15 +3146,18 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2960
3146
|
// @ts-ignore
|
|
2961
3147
|
const isTargetContainedInHost = this.element.contains(ev === null || ev === void 0 ? void 0 : ev.relatedTarget) || false;
|
|
2962
3148
|
if (!isTargetContainedInHost) {
|
|
2963
|
-
this.toggleInfo(
|
|
3149
|
+
this.toggleInfo();
|
|
2964
3150
|
}
|
|
2965
3151
|
}
|
|
2966
3152
|
}
|
|
2967
3153
|
handleHostKeyDown() {
|
|
2968
3154
|
this.isKeyDown = true;
|
|
2969
3155
|
}
|
|
2970
|
-
handleHostKeyUp() {
|
|
3156
|
+
handleHostKeyUp(ev) {
|
|
2971
3157
|
this.isKeyDown = false;
|
|
3158
|
+
if (isEscapeKey(ev) && this.isInfoOpen) {
|
|
3159
|
+
this.toggleInfo();
|
|
3160
|
+
}
|
|
2972
3161
|
}
|
|
2973
3162
|
/**
|
|
2974
3163
|
* Sets focus on the specified `duet-choice`. Use this method instead of the global
|
|
@@ -2981,11 +3170,13 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2981
3170
|
if (this.accessibleDescribedBy) {
|
|
2982
3171
|
return this.accessibleDescribedBy;
|
|
2983
3172
|
}
|
|
2984
|
-
if (this.collapsible) {
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
3173
|
+
if (this.collapsible || this.hasInfo) {
|
|
3174
|
+
if (this.hasHeader) {
|
|
3175
|
+
return this.headerId;
|
|
3176
|
+
}
|
|
3177
|
+
else {
|
|
3178
|
+
return this.expandId;
|
|
3179
|
+
}
|
|
2989
3180
|
}
|
|
2990
3181
|
return null;
|
|
2991
3182
|
}
|
|
@@ -2994,6 +3185,7 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
2994
3185
|
return {
|
|
2995
3186
|
"duet-choice-card-info": true,
|
|
2996
3187
|
"duet-choice-card-info-expanded": this.isInfoOpen,
|
|
3188
|
+
"duet-choice-card-collapsed": !this.isInfoOpen,
|
|
2997
3189
|
"duet-theme-turva": this.theme === "turva",
|
|
2998
3190
|
};
|
|
2999
3191
|
}
|
|
@@ -3001,6 +3193,7 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
3001
3193
|
return {
|
|
3002
3194
|
"duet-choice-card-collapsible": true,
|
|
3003
3195
|
"duet-choice-card-collapsible-expanded": this.checked,
|
|
3196
|
+
"duet-choice-card-collapsed": !this.checked,
|
|
3004
3197
|
"duet-choice-card-collapsible-disabled": this.disabled || this.groupDisabled ? true : false,
|
|
3005
3198
|
"duet-theme-turva": this.theme === "turva",
|
|
3006
3199
|
};
|
|
@@ -3032,28 +3225,53 @@ let DuetChoice$1 = class extends HTMLElement {
|
|
|
3032
3225
|
info: this.isInfoOpen,
|
|
3033
3226
|
collapsible: this.collapsible,
|
|
3034
3227
|
"duet-p-0": this.padding === "none",
|
|
3035
|
-
} }, h$1("input", {
|
|
3228
|
+
} }, h$1("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), h$1("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (h$1("div", { class: "duet-choice-card-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.label, this.caption && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("slot", { name: "additional" }))), h$1("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && h$1("div", { class: "duet-checkmark" })))), this.hasInfo && !this.collapsible && (h$1("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
|
|
3036
3229
|
"duet-choice-info-toggle": true,
|
|
3037
3230
|
"duet-theme-turva": this.theme === "turva",
|
|
3038
|
-
}, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-controls": this.
|
|
3231
|
+
}, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, "aria-flowto": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button" }, h$1("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), h$1("div", { class: "duet-choice-info-icon" }, h$1("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (h$1("div", { class: this.getClassNames(), id: this.expandId }, h$1("span", { class: {
|
|
3232
|
+
"duet-choice-section-visible": this.collapsible ? this.checked : this.isInfoOpen,
|
|
3233
|
+
"duet-choice-section-hidden": this.collapsible ? !this.checked : !this.isInfoOpen,
|
|
3234
|
+
} }, h$1("span", { id: this.headerId }, h$1("slot", { name: "header" })), this.hasInfo ? (h$1("span", null, h$1("span", { "aria-relevant": "all", "aria-atomic": "true", "aria-live": this.isInfoOpen ? "polite" : "off" }, h$1("slot", { name: "info" })), h$1("slot", null))) : (h$1("span", null, h$1("slot", null)))), this.isInfoOpen && h$1(FocusGuard, { moveFocusTo: this.infoButtonEl }))) : null));
|
|
3039
3235
|
}
|
|
3040
3236
|
get element() { return this; }
|
|
3041
3237
|
static get style() { return duetChoiceCss; }
|
|
3042
3238
|
};
|
|
3043
3239
|
|
|
3044
|
-
const
|
|
3240
|
+
const watchFor = (containerEl, tagName, onChange, changeHandler, options = {
|
|
3241
|
+
childList: true,
|
|
3242
|
+
subtree: true,
|
|
3243
|
+
}) => {
|
|
3045
3244
|
let mutation;
|
|
3046
3245
|
if (typeof MutationObserver !== "undefined") {
|
|
3047
3246
|
mutation = new MutationObserver(mutationList => {
|
|
3048
|
-
onChange(
|
|
3049
|
-
});
|
|
3050
|
-
mutation.observe(containerEl, {
|
|
3051
|
-
childList: true,
|
|
3052
|
-
subtree: true,
|
|
3247
|
+
onChange(changeHandler(mutationList, tagName));
|
|
3053
3248
|
});
|
|
3249
|
+
mutation.observe(containerEl, options);
|
|
3054
3250
|
}
|
|
3055
3251
|
return mutation;
|
|
3056
3252
|
};
|
|
3253
|
+
const watchForOptions = (containerEl, tagName, onChange) => {
|
|
3254
|
+
return watchFor(containerEl, tagName, onChange, getSelectedOption);
|
|
3255
|
+
};
|
|
3256
|
+
const watchForElement = (containerEl, tagName, onChange) => {
|
|
3257
|
+
return watchFor(containerEl, tagName, onChange, getElementItem, {
|
|
3258
|
+
childList: true,
|
|
3259
|
+
subtree: true,
|
|
3260
|
+
});
|
|
3261
|
+
};
|
|
3262
|
+
const getElementItem = (mutationList) => {
|
|
3263
|
+
let addedNode = false;
|
|
3264
|
+
let removedNode = false;
|
|
3265
|
+
mutationList.forEach(mut => {
|
|
3266
|
+
if (mut.addedNodes.length) {
|
|
3267
|
+
addedNode = true;
|
|
3268
|
+
}
|
|
3269
|
+
if (mut.removedNodes.length) {
|
|
3270
|
+
removedNode = true;
|
|
3271
|
+
}
|
|
3272
|
+
});
|
|
3273
|
+
return { addedNode, removedNode, mutationList };
|
|
3274
|
+
};
|
|
3057
3275
|
const getSelectedOption = (mutationList, tagName) => {
|
|
3058
3276
|
let newOption;
|
|
3059
3277
|
mutationList.forEach(mut => {
|
|
@@ -3074,7 +3292,7 @@ const findCheckedOption = (el, tagName) => {
|
|
|
3074
3292
|
|
|
3075
3293
|
const duetChoiceGroupCss = "*.sc-duet-choice-group,*.sc-duet-choice-group::after,*.sc-duet-choice-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:block}@media (min-width: 48em){.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:flex;margin-bottom:0}}.horizontal.sc-duet-choice-group-h .duet-choice-group.duet-no-stacking.sc-duet-choice-group{display:flex}.duet-choice-group.sc-duet-choice-group{position:relative;width:100%;margin-bottom:-12px}";
|
|
3076
3294
|
|
|
3077
|
-
let DuetChoiceGroup$1 = class extends
|
|
3295
|
+
let DuetChoiceGroup$1 = class extends H {
|
|
3078
3296
|
constructor() {
|
|
3079
3297
|
super();
|
|
3080
3298
|
this.__registerHost();
|
|
@@ -3105,11 +3323,11 @@ let DuetChoiceGroup$1 = class extends HTMLElement {
|
|
|
3105
3323
|
/**
|
|
3106
3324
|
* Additional caption to show inside the label of the choice group.
|
|
3107
3325
|
*/
|
|
3108
|
-
this.caption =
|
|
3326
|
+
this.caption = undefined;
|
|
3109
3327
|
/**
|
|
3110
3328
|
* Tooltip to display next to the label of the choice group.
|
|
3111
3329
|
*/
|
|
3112
|
-
this.tooltip =
|
|
3330
|
+
this.tooltip = undefined;
|
|
3113
3331
|
/**
|
|
3114
3332
|
* With direction setting you can force the tooltip to always open towards left
|
|
3115
3333
|
* or right instead of automatically determining the direction.
|
|
@@ -3340,6 +3558,7 @@ const size_tappable_square = "48px";
|
|
|
3340
3558
|
const size_icon_x_small = "16px";
|
|
3341
3559
|
const size_icon_xxx_small = "7px";
|
|
3342
3560
|
const size_button_border = "2px";
|
|
3561
|
+
const size_button_tiny_border = "1px";
|
|
3343
3562
|
const size_icon_medium = "24px";
|
|
3344
3563
|
const size_icon_small = "20px";
|
|
3345
3564
|
const opacity_85 = "0.85";
|
|
@@ -3487,6 +3706,7 @@ const tokens = {
|
|
|
3487
3706
|
size_icon_x_small: size_icon_x_small,
|
|
3488
3707
|
size_icon_xxx_small: size_icon_xxx_small,
|
|
3489
3708
|
size_button_border: size_button_border,
|
|
3709
|
+
size_button_tiny_border: size_button_tiny_border,
|
|
3490
3710
|
size_icon_medium: size_icon_medium,
|
|
3491
3711
|
size_icon_small: size_icon_small,
|
|
3492
3712
|
opacity_85: opacity_85,
|
|
@@ -3637,6 +3857,7 @@ const tokens$1 = /*#__PURE__*/Object.freeze({
|
|
|
3637
3857
|
size_icon_x_small: size_icon_x_small,
|
|
3638
3858
|
size_icon_xxx_small: size_icon_xxx_small,
|
|
3639
3859
|
size_button_border: size_button_border,
|
|
3860
|
+
size_button_tiny_border: size_button_tiny_border,
|
|
3640
3861
|
size_icon_medium: size_icon_medium,
|
|
3641
3862
|
size_icon_small: size_icon_small,
|
|
3642
3863
|
opacity_85: opacity_85,
|
|
@@ -3673,11 +3894,11 @@ const tokens$1 = /*#__PURE__*/Object.freeze({
|
|
|
3673
3894
|
|
|
3674
3895
|
const duetCollapsibleCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:#00294d}:host(.duet-theme-turva){font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}:host(.duet-m-0){margin:0 !important}.duet-collapsible-content{display:none;padding-left:18px;margin-top:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}@media (max-width: 35.9375em){.duet-collapsible-content{font-size:0.875rem}}.duet-collapsible-content.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}:host([open]) .duet-collapsible-content{display:block}.duet-collapsible-heading{-webkit-user-select:none;user-select:none;display:flex;align-items:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:#00294d;cursor:pointer;border-radius:4px}.duet-collapsible-heading.duet-collapsible-normal-weight{font-weight:400}.duet-collapsible-heading.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-collapsible-heading .duet-collapsible-heading-content{flex:1}.duet-collapsible-heading:focus{outline:0}:host(.user-is-tabbing) .duet-collapsible-heading:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva) .duet-collapsible-heading:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-collapsible-heading-icon{margin-right:8px !important;display:flex;align-items:center;justify-content:center;color:#00294d;transition:transform 300ms ease}.duet-collapsible-heading-icon:last-child,.duet-collapsible-heading-icon:last-of-type{margin-right:0 !important}[aria-expanded=true] .duet-collapsible-heading-icon{transform:rotate(180deg)}";
|
|
3675
3896
|
|
|
3676
|
-
let DuetCollapsible$1 = class extends
|
|
3897
|
+
let DuetCollapsible$1 = class extends H {
|
|
3677
3898
|
constructor() {
|
|
3678
3899
|
super();
|
|
3679
3900
|
this.__registerHost();
|
|
3680
|
-
|
|
3901
|
+
this.__attachShadow();
|
|
3681
3902
|
this.duetToggle = createEvent$2(this, "duetToggle", 7);
|
|
3682
3903
|
this.id = createID("DuetCollapsible");
|
|
3683
3904
|
/**
|
|
@@ -3801,11 +4022,11 @@ let DuetCollapsible$1 = class extends HTMLElement {
|
|
|
3801
4022
|
|
|
3802
4023
|
const duetCookieConsentCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:fixed;right:0;bottom:0;left:0;z-index:950;display:block;width:100%;box-shadow:0 2px 20px 0 rgba(0, 0, 0, 0.2)}@media (min-width: 48em){:host{right:28px;bottom:28px;left:auto;width:25rem}}:host(:focus){outline:0}:host(.user-is-tabbing:focus){border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva:focus){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-cookie-consent{padding:20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;color:white !important;background-color:rgba(0, 21, 39, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent{background:rgba(0, 21, 39, 0.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.duet-cookie-consent.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background-color:rgba(12, 14, 29, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent.duet-theme-turva{background:rgba(12, 14, 29, 0.8)}}@media (min-width: 48em){.duet-cookie-consent{padding:20px;border-radius:4px}}.duet-cookie-consent-content{display:flex;align-items:center;max-width:1110px;margin:0 auto}.duet-cookie-consent-content .expand{flex:1}::slotted(a){font-weight:600;color:white !important;text-decoration:underline;white-space:nowrap}::slotted(a[target=_blank]){padding-right:16px;background:url(\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjUgMmExLjUgMS41IDAgMDEuMTQgM0gzLjc1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE0LjVjMCAuMzguMjguNy42NS43NGwuMS4wMWgxNC41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi02Ljg5YTEuNSAxLjUgMCAwMTMgMHY2Ljg5QTMuNzUgMy43NSAwIDAxMTguMjUgMjRIMy43NUEzLjc1IDMuNzUgMCAwMTAgMjAuMjVWNS43NUEzLjc1IDMuNzUgMCAwMTMuNzUgMnptMTItMmMuNzggMCAxLjQyLjYgMS41IDEuMzZWNy41YTEuNSAxLjUgMCAwMS0zIC4xNFY1LjEybC01LjQ0IDUuNDRhMS41IDEuNSAwIDAxLTIuMjItMmwuMS0uMTJMMTguODggM0gxNi41QTEuNSAxLjUgMCAwMTE1IDEuNjRWMS41YzAtLjc4LjYtMS40MiAxLjM2LTEuNWguMTR6Ii8+PC9zdmc+\") no-repeat right 50%;background-size:12px 10px}::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva ::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
|
|
3803
4024
|
|
|
3804
|
-
let DuetCookieConsent$1 = class extends
|
|
4025
|
+
let DuetCookieConsent$1 = class extends H {
|
|
3805
4026
|
constructor() {
|
|
3806
4027
|
super();
|
|
3807
4028
|
this.__registerHost();
|
|
3808
|
-
|
|
4029
|
+
this.__attachShadow();
|
|
3809
4030
|
this.duetCookieConsent = createEvent$2(this, "duetCookieConsent", 7);
|
|
3810
4031
|
/**
|
|
3811
4032
|
* Adds accessible label for the cookie consent ok button.
|
|
@@ -3837,151 +4058,6 @@ let DuetCookieConsent$1 = class extends HTMLElement {
|
|
|
3837
4058
|
static get style() { return duetCookieConsentCss; }
|
|
3838
4059
|
};
|
|
3839
4060
|
|
|
3840
|
-
const isComplexType = (o) => {
|
|
3841
|
-
// https://jsperf.com/typeof-fn-object/5
|
|
3842
|
-
o = typeof o;
|
|
3843
|
-
return o === 'object' || o === 'function';
|
|
3844
|
-
};
|
|
3845
|
-
/**
|
|
3846
|
-
* Production h() function based on Preact by
|
|
3847
|
-
* Jason Miller (@developit)
|
|
3848
|
-
* Licensed under the MIT License
|
|
3849
|
-
* https://github.com/developit/preact/blob/master/LICENSE
|
|
3850
|
-
*
|
|
3851
|
-
* Modified for Stencil's compiler and vdom
|
|
3852
|
-
*/
|
|
3853
|
-
// const stack: any[] = [];
|
|
3854
|
-
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;
|
|
3855
|
-
// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
|
|
3856
|
-
const h = (nodeName, vnodeData, ...children) => {
|
|
3857
|
-
let child = null;
|
|
3858
|
-
let key = null;
|
|
3859
|
-
let slotName = null;
|
|
3860
|
-
let simple = false;
|
|
3861
|
-
let lastSimple = false;
|
|
3862
|
-
let vNodeChildren = [];
|
|
3863
|
-
const walk = (c) => {
|
|
3864
|
-
for (let i = 0; i < c.length; i++) {
|
|
3865
|
-
child = c[i];
|
|
3866
|
-
if (Array.isArray(child)) {
|
|
3867
|
-
walk(child);
|
|
3868
|
-
}
|
|
3869
|
-
else if (child != null && typeof child !== 'boolean') {
|
|
3870
|
-
if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {
|
|
3871
|
-
child = String(child);
|
|
3872
|
-
}
|
|
3873
|
-
if (simple && lastSimple) {
|
|
3874
|
-
// If the previous child was simple (string), we merge both
|
|
3875
|
-
vNodeChildren[vNodeChildren.length - 1].$text$ += child;
|
|
3876
|
-
}
|
|
3877
|
-
else {
|
|
3878
|
-
// Append a new vNode, if it's text, we create a text vNode
|
|
3879
|
-
vNodeChildren.push(simple ? newVNode(null, child) : child);
|
|
3880
|
-
}
|
|
3881
|
-
lastSimple = simple;
|
|
3882
|
-
}
|
|
3883
|
-
}
|
|
3884
|
-
};
|
|
3885
|
-
walk(children);
|
|
3886
|
-
if (vnodeData) {
|
|
3887
|
-
// normalize class / classname attributes
|
|
3888
|
-
if (vnodeData.key) {
|
|
3889
|
-
key = vnodeData.key;
|
|
3890
|
-
}
|
|
3891
|
-
if (vnodeData.name) {
|
|
3892
|
-
slotName = vnodeData.name;
|
|
3893
|
-
}
|
|
3894
|
-
{
|
|
3895
|
-
const classData = vnodeData.className || vnodeData.class;
|
|
3896
|
-
if (classData) {
|
|
3897
|
-
vnodeData.class =
|
|
3898
|
-
typeof classData !== 'object'
|
|
3899
|
-
? classData
|
|
3900
|
-
: Object.keys(classData)
|
|
3901
|
-
.filter((k) => classData[k])
|
|
3902
|
-
.join(' ');
|
|
3903
|
-
}
|
|
3904
|
-
}
|
|
3905
|
-
}
|
|
3906
|
-
if (typeof nodeName === 'function') {
|
|
3907
|
-
// nodeName is a functional component
|
|
3908
|
-
return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);
|
|
3909
|
-
}
|
|
3910
|
-
const vnode = newVNode(nodeName, null);
|
|
3911
|
-
vnode.$attrs$ = vnodeData;
|
|
3912
|
-
if (vNodeChildren.length > 0) {
|
|
3913
|
-
vnode.$children$ = vNodeChildren;
|
|
3914
|
-
}
|
|
3915
|
-
{
|
|
3916
|
-
vnode.$key$ = key;
|
|
3917
|
-
}
|
|
3918
|
-
{
|
|
3919
|
-
vnode.$name$ = slotName;
|
|
3920
|
-
}
|
|
3921
|
-
return vnode;
|
|
3922
|
-
};
|
|
3923
|
-
const newVNode = (tag, text) => {
|
|
3924
|
-
const vnode = {
|
|
3925
|
-
$flags$: 0,
|
|
3926
|
-
$tag$: tag,
|
|
3927
|
-
$text$: text,
|
|
3928
|
-
$elm$: null,
|
|
3929
|
-
$children$: null,
|
|
3930
|
-
};
|
|
3931
|
-
{
|
|
3932
|
-
vnode.$attrs$ = null;
|
|
3933
|
-
}
|
|
3934
|
-
{
|
|
3935
|
-
vnode.$key$ = null;
|
|
3936
|
-
}
|
|
3937
|
-
{
|
|
3938
|
-
vnode.$name$ = null;
|
|
3939
|
-
}
|
|
3940
|
-
return vnode;
|
|
3941
|
-
};
|
|
3942
|
-
const vdomFnUtils = {
|
|
3943
|
-
forEach: (children, cb) => children.map(convertToPublic).forEach(cb),
|
|
3944
|
-
map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),
|
|
3945
|
-
};
|
|
3946
|
-
const convertToPublic = (node) => ({
|
|
3947
|
-
vattrs: node.$attrs$,
|
|
3948
|
-
vchildren: node.$children$,
|
|
3949
|
-
vkey: node.$key$,
|
|
3950
|
-
vname: node.$name$,
|
|
3951
|
-
vtag: node.$tag$,
|
|
3952
|
-
vtext: node.$text$,
|
|
3953
|
-
});
|
|
3954
|
-
const convertToPrivate = (node) => {
|
|
3955
|
-
if (typeof node.vtag === 'function') {
|
|
3956
|
-
const vnodeData = Object.assign({}, node.vattrs);
|
|
3957
|
-
if (node.vkey) {
|
|
3958
|
-
vnodeData.key = node.vkey;
|
|
3959
|
-
}
|
|
3960
|
-
if (node.vname) {
|
|
3961
|
-
vnodeData.name = node.vname;
|
|
3962
|
-
}
|
|
3963
|
-
return h(node.vtag, vnodeData, ...(node.vchildren || []));
|
|
3964
|
-
}
|
|
3965
|
-
const vnode = newVNode(node.vtag, node.vtext);
|
|
3966
|
-
vnode.$attrs$ = node.vattrs;
|
|
3967
|
-
vnode.$children$ = node.vchildren;
|
|
3968
|
-
vnode.$key$ = node.vkey;
|
|
3969
|
-
vnode.$name$ = node.vname;
|
|
3970
|
-
return vnode;
|
|
3971
|
-
};
|
|
3972
|
-
|
|
3973
|
-
const focusElement = (element) => {
|
|
3974
|
-
if ("setFocus" in element) {
|
|
3975
|
-
element.setFocus();
|
|
3976
|
-
}
|
|
3977
|
-
else {
|
|
3978
|
-
element.focus();
|
|
3979
|
-
}
|
|
3980
|
-
};
|
|
3981
|
-
const FocusGuard = ({ moveFocusTo }) => {
|
|
3982
|
-
return h("div", { class: "duet-focus-guard", "aria-hidden": "true", tabIndex: 0, onFocus: () => focusElement(moveFocusTo) });
|
|
3983
|
-
};
|
|
3984
|
-
|
|
3985
4061
|
const formatOptionsShort = { day: "numeric", month: "long" };
|
|
3986
4062
|
const formatOptionsLong = { day: "numeric", month: "long", year: "numeric" };
|
|
3987
4063
|
const i18n$2 = {
|
|
@@ -4374,7 +4450,7 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
|
|
|
4374
4450
|
|
|
4375
4451
|
const duetDatePickerCss = "*.sc-duet-date-picker,*.sc-duet-date-picker::after,*.sc-duet-date-picker::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-date-picker-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;position:relative;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:top}.sc-duet-date-picker-h:last-child,.sc-duet-date-picker-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-date-picker-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-date-picker-h{width:100% !important}.duet-m-0.sc-duet-date-picker-h{margin:0 !important}.duet-date.sc-duet-date-picker{position:relative;width:100%}.duet-date.sc-duet-date-picker button.sc-duet-date-picker,.duet-date-dialog.sc-duet-date-picker button.sc-duet-date-picker{max-width:initial !important;min-height:initial !important;padding:0 !important;margin:0 !important;transition:initial}.duet-date-button.sc-duet-date-picker{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;display:flex;align-items:center;justify-content:center;width:48px;height:calc(100% - 2px);color:#00294d;cursor:pointer;background:transparent !important;border-left:1px solid #cfd2d4 !important;border-radius:0 4px 4px 0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker{color:#171c3a;border-color:#cfcfd1}.duet-date-button.sc-duet-date-picker::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(207, 210, 212, 0.2) 0%, rgba(207, 210, 212, 0.2) 1px, rgba(207, 210, 212, 0.1) 1px, rgba(207, 210, 212, 0) 100%)}.duet-date-button.sc-duet-date-picker:disabled{pointer-events:none;cursor:default;background:#f5f8fa !important;border:0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:disabled{background:#f5f5f7 !important}.duet-date-button.sc-duet-date-picker:disabled::before{display:none}.duet-date-button.sc-duet-date-picker:disabled duet-icon.sc-duet-date-picker{opacity:0.4}.duet-date-button.sc-duet-date-picker duet-icon.sc-duet-date-picker{transform:translateY(-1px)}.duet-date-button.sc-duet-date-picker:active duet-icon.sc-duet-date-picker{transform:translateY(0)}.duet-date-button.sc-duet-date-picker:focus{color:#0077b3;border-color:transparent;outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:focus{color:#171c3a;box-shadow:0 0 0 2px #171c3a}.duet-date-dialog.sc-duet-date-picker{position:absolute;top:100%;left:0;z-index:900;display:flex;width:100%;visibility:hidden;opacity:0;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right}@media (min-width: 36em){.duet-date-dialog.left.sc-duet-date-picker{right:0;left:auto;width:auto}}@media (max-width: 35.9375em){.duet-date-dialog.sc-duet-date-picker{position:fixed;top:0;right:0;bottom:0;background:rgba(0, 41, 77, 0.75);transition:opacity 400ms ease, visibility 400ms ease;transform:translateZ(0);transform-origin:bottom center}.duet-date-dialog.duet-theme-turva.sc-duet-date-picker{background:rgba(23, 28, 58, 0.75)}}.duet-date-dialog.active.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(0)}@media (min-width: 36em){.duet-date-dialog.error.sc-duet-date-picker{top:calc(100% - 28px);margin-top:4px}}.duet-date-dialog-wrapper.sc-duet-date-picker{position:relative;z-index:600;width:100%;min-width:290px;max-width:310px;padding:16px 16px 20px;margin-top:8px;margin-left:auto;background:white;border:1px solid #e1e3e6;border-radius:4px;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);transform:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{border-color:#e4e4e6}@media (max-width: 35.9375em){.duet-date-dialog-wrapper.sc-duet-date-picker{position:absolute;bottom:0;left:0;z-index:900;max-width:none;min-height:25em;padding:0 8% 20px;margin:0;visibility:hidden;border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;opacity:0;transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;transform:translateZ(0) translateY(100%)}.active.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:translateZ(0) translateY(0)}}.duet-date-table.sc-duet-date-picker{width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25;color:#00294d;text-align:center;border-spacing:0;border-collapse:collapse}.duet-date-table.duet-theme-turva.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-date-table.sc-duet-date-picker th.sc-duet-date-picker{padding-bottom:8px;font-size:0.75rem;font-weight:600;line-height:1.25;text-decoration:none;text-transform:uppercase;letter-spacing:1px}.duet-date-table.sc-duet-date-picker .duet-date-table-cell.sc-duet-date-picker{text-align:center}.duet-date-table-button.sc-duet-date-picker{position:relative;z-index:100;display:inline-block !important;width:36.9230769231px !important;height:36.9230769231px !important;min-height:initial !important;padding:0 !important;margin:0 !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25 !important;color:#00294d !important;text-align:center;vertical-align:initial !important;cursor:pointer;background:transparent !important;border-radius:50% !important;transition:initial !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;color:#171c3a !important}.duet-date-table-button.sc-duet-date-picker:hover{background:#e6f2f8 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:hover{background:#f9e6ea !important}.duet-date-table-button.today.sc-duet-date-picker{z-index:200;color:#004d80 !important;background:#f3f9fc !important;box-shadow:0 0 0 1px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.today.sc-duet-date-picker{color:#940925 !important;background:#fcf3f4 !important;box-shadow:0 0 0 1px #c60c30 !important}.duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#0077b3 !important;outline:0}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#c60c30 !important}.duet-date-table-button.sc-duet-date-picker:active{z-index:200;color:white !important;background:#0077b3 !important;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:active{color:white !important;background:#c60c30 !important;box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.sc-duet-date-picker:focus{z-index:200;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.disabled.sc-duet-date-picker{color:#909599 !important;cursor:default;background:transparent !important;box-shadow:none !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.disabled.sc-duet-date-picker{color:#747475 !important;background:transparent !important;box-shadow:none !important}.duet-date-table-button.outside.sc-duet-date-picker{color:#909599 !important;pointer-events:none;cursor:default;background:#f5f8fa !important;box-shadow:none;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.outside.sc-duet-date-picker{color:#747475;background:#f5f5f7;box-shadow:none}.duet-date-dialog-header.sc-duet-date-picker{margin-bottom:16px !important;display:flex;align-items:center;justify-content:space-between;width:100%}.duet-date-dialog-buttons.sc-duet-date-picker{white-space:nowrap}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{color:#171c3a;background:#f5f5f7}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker duet-icon.sc-duet-date-picker{display:block}@media (max-width: 35.9375em){.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{width:40px;height:40px}}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:not(:disabled):hover{background:#e9e9eb !important}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:active:focus{background:#ddddde}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:disabled{color:#747475;background:#f5f5f7}.duet-date-dialog-select.sc-duet-date-picker{position:relative;display:inline-flex;margin-top:4px}.duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{position:relative;z-index:1;display:flex;align-items:center;width:100%;padding:0 8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:600;line-height:1.25;color:#00294d;pointer-events:none;border-radius:4px}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-date-dialog-select.sc-duet-date-picker span.sc-duet-date-picker{margin-right:4px}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;font-size:1rem;cursor:pointer;opacity:0}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #171c3a}.duet-date-dialog-mobile-header.sc-duet-date-picker{position:relative;display:flex;align-items:center;justify-content:space-between;width:120%;padding:12px 20px;margin-bottom:20px;margin-left:-10%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #cfd2d4}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker{position:absolute;top:-8px;right:-8px;width:auto;padding:0;margin:0;overflow:visible;border:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-mobile-header.sc-duet-date-picker{border-color:#cfcfd1}.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:inline-block;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:none}}.duet-date-picker-close.sc-duet-date-picker{display:flex;align-items:center;justify-content:center;width:24px;height:24px !important;padding:0 !important;color:#00294d !important;cursor:pointer;background:#f5f8fa !important;border-radius:50%;-webkit-appearance:none;appearance:none}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker{opacity:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f8fa !important}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:focus{outline:none;box-shadow:0 0 0 2px #0077b3}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker:focus{opacity:1}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a}";
|
|
4376
4452
|
|
|
4377
|
-
let DuetDatePicker$1 = class extends
|
|
4453
|
+
let DuetDatePicker$1 = class extends H {
|
|
4378
4454
|
constructor() {
|
|
4379
4455
|
super();
|
|
4380
4456
|
this.__registerHost();
|
|
@@ -4415,14 +4491,14 @@ let DuetDatePicker$1 = class extends HTMLElement {
|
|
|
4415
4491
|
*/
|
|
4416
4492
|
this.margin = "auto";
|
|
4417
4493
|
/**
|
|
4418
|
-
* The currently active language. This setting changes the month/year/day
|
|
4494
|
+
* The currently active language. This setting changes the month/year/day.
|
|
4419
4495
|
* names and button labels as well as all screen reader labels.
|
|
4420
|
-
* @deprecated this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing
|
|
4496
|
+
* @deprecated this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing.
|
|
4421
4497
|
* @default "fi"
|
|
4422
4498
|
*/
|
|
4423
4499
|
this.language = getLanguage();
|
|
4424
4500
|
/**
|
|
4425
|
-
* Placeholder defaults
|
|
4501
|
+
* Placeholder defaults.
|
|
4426
4502
|
* @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
|
|
4427
4503
|
*/
|
|
4428
4504
|
this.placeholderDefaults = {
|
|
@@ -4485,7 +4561,7 @@ let DuetDatePicker$1 = class extends HTMLElement {
|
|
|
4485
4561
|
*/
|
|
4486
4562
|
this.min = "";
|
|
4487
4563
|
/**
|
|
4488
|
-
* Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD
|
|
4564
|
+
* Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.
|
|
4489
4565
|
* This setting can be used alone or together with the min property.
|
|
4490
4566
|
*/
|
|
4491
4567
|
this.max = "";
|
|
@@ -4782,11 +4858,11 @@ let DuetDatePicker$1 = class extends HTMLElement {
|
|
|
4782
4858
|
|
|
4783
4859
|
const duetDividerCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-divider{-webkit-user-select:none;user-select:none;display:block;width:100%;height:1px;margin-top:36px !important;margin-bottom:28px;background:#e1e3e6}.duet-divider.duet-p-0{padding:0 !important}.duet-divider.duet-m-0{margin:0 !important}.duet-divider.duet-m-s{margin-bottom:16px !important;margin-top:0 !important}.duet-divider.duet-theme-turva{background:#e4e4e6}";
|
|
4784
4860
|
|
|
4785
|
-
let DuetDivider$1 = class extends
|
|
4861
|
+
let DuetDivider$1 = class extends H {
|
|
4786
4862
|
constructor() {
|
|
4787
4863
|
super();
|
|
4788
4864
|
this.__registerHost();
|
|
4789
|
-
|
|
4865
|
+
this.__attachShadow();
|
|
4790
4866
|
/**
|
|
4791
4867
|
* Theme of the divider.
|
|
4792
4868
|
*/
|
|
@@ -4818,13 +4894,301 @@ let DuetDivider$1 = class extends HTMLElement {
|
|
|
4818
4894
|
static get style() { return duetDividerCss; }
|
|
4819
4895
|
};
|
|
4820
4896
|
|
|
4897
|
+
const debounce = (func, timeout = 50) => {
|
|
4898
|
+
let timer;
|
|
4899
|
+
return (...args) => {
|
|
4900
|
+
clearTimeout(timer);
|
|
4901
|
+
timer = setTimeout(() => {
|
|
4902
|
+
func.apply(undefined, args);
|
|
4903
|
+
}, timeout);
|
|
4904
|
+
};
|
|
4905
|
+
};
|
|
4906
|
+
|
|
4907
|
+
const duetEditableTableCss = "duet-editable-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-editable-table-header tr .duet-editable-table-header-hidden{padding:0 !important;font-size:0;border-bottom:0}";
|
|
4908
|
+
|
|
4909
|
+
let DuetEditableTable$1 = class extends H {
|
|
4910
|
+
constructor() {
|
|
4911
|
+
super();
|
|
4912
|
+
this.__registerHost();
|
|
4913
|
+
this.__attachShadow();
|
|
4914
|
+
/**
|
|
4915
|
+
* State() variables
|
|
4916
|
+
* @internal
|
|
4917
|
+
*/
|
|
4918
|
+
this.tick = Date.now();
|
|
4919
|
+
/**
|
|
4920
|
+
* Map of items that contain list of things.
|
|
4921
|
+
*/
|
|
4922
|
+
this.items = new Map();
|
|
4923
|
+
/**
|
|
4924
|
+
* Array of internationalized defaults for the default groups labels.
|
|
4925
|
+
*/
|
|
4926
|
+
this.groupsLabelDefaults = {
|
|
4927
|
+
fi: "Kaikki",
|
|
4928
|
+
en: "All items",
|
|
4929
|
+
sv: "Alla objekt",
|
|
4930
|
+
};
|
|
4931
|
+
/**
|
|
4932
|
+
* Array of internationalized defaults for the default action labels.
|
|
4933
|
+
*/
|
|
4934
|
+
this.actionLabelDefaults = {
|
|
4935
|
+
fi: "Toiminnot",
|
|
4936
|
+
en: "Actions",
|
|
4937
|
+
sv: "Handlingar",
|
|
4938
|
+
};
|
|
4939
|
+
/**
|
|
4940
|
+
* Array of group names that you want the editable table to display (can be used to hide or show groups depending on conditions).
|
|
4941
|
+
* @default { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults }.
|
|
4942
|
+
* @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}].
|
|
4943
|
+
*/
|
|
4944
|
+
this.groups = [
|
|
4945
|
+
{ id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults },
|
|
4946
|
+
];
|
|
4947
|
+
/**
|
|
4948
|
+
* Array of actions that are mapped via the map variable to the various groups defined in group.
|
|
4949
|
+
* @default undefined
|
|
4950
|
+
* @example [{
|
|
4951
|
+
variation: "default",
|
|
4952
|
+
icon: "action-edit-2",
|
|
4953
|
+
id: "edit",
|
|
4954
|
+
map: ["success"],
|
|
4955
|
+
label: {
|
|
4956
|
+
fi: " Label",
|
|
4957
|
+
en: " Label",
|
|
4958
|
+
sv: " Label",
|
|
4959
|
+
}
|
|
4960
|
+
}]
|
|
4961
|
+
*/
|
|
4962
|
+
this.actions = undefined;
|
|
4963
|
+
/**
|
|
4964
|
+
* Shows or hides the table labels.
|
|
4965
|
+
*/
|
|
4966
|
+
this.hideGroups = false;
|
|
4967
|
+
/**
|
|
4968
|
+
* Exposes the aria role for optimizing accessibility.
|
|
4969
|
+
*/
|
|
4970
|
+
this.accessibleRole = undefined;
|
|
4971
|
+
/**
|
|
4972
|
+
* Private methods.
|
|
4973
|
+
*/
|
|
4974
|
+
this.kick = debounce(() => {
|
|
4975
|
+
this.tick = Date.now();
|
|
4976
|
+
}, 100); // will trigger re-render
|
|
4977
|
+
this.filterMap = needle => {
|
|
4978
|
+
if (needle === "all") {
|
|
4979
|
+
return Array.from(this.items);
|
|
4980
|
+
}
|
|
4981
|
+
return Array.from(this.items).filter(item => needle === item[1].group);
|
|
4982
|
+
};
|
|
4983
|
+
}
|
|
4984
|
+
/**
|
|
4985
|
+
* Component lifecycle events.
|
|
4986
|
+
*/
|
|
4987
|
+
componentWillLoad() {
|
|
4988
|
+
if (typeof this.groups === "string") {
|
|
4989
|
+
this.internalGroupArray = sanitizeString(this.groups);
|
|
4990
|
+
}
|
|
4991
|
+
else {
|
|
4992
|
+
this.internalGroupArray = this.groups;
|
|
4993
|
+
}
|
|
4994
|
+
if (typeof this.actions === "string") {
|
|
4995
|
+
this.internalActionsArray = sanitizeString(this.actions);
|
|
4996
|
+
}
|
|
4997
|
+
else {
|
|
4998
|
+
this.internalActionsArray = this.actions;
|
|
4999
|
+
}
|
|
5000
|
+
inheritGlobalTheme(this);
|
|
5001
|
+
}
|
|
5002
|
+
/**
|
|
5003
|
+
* Method to force an update of a tabular data array.
|
|
5004
|
+
* when called the method will rerender the entire tabular structure.
|
|
5005
|
+
*/
|
|
5006
|
+
async updateTable(passedItems = undefined) {
|
|
5007
|
+
this.items = new Map(passedItems || this.items);
|
|
5008
|
+
this.kick();
|
|
5009
|
+
}
|
|
5010
|
+
render() {
|
|
5011
|
+
return (h$1(Host, { class: {
|
|
5012
|
+
"duet-theme-turva": this.theme === "turva",
|
|
5013
|
+
} }, this.internalGroupArray.map(group => {
|
|
5014
|
+
const currentGroup = this.filterMap(group.id);
|
|
5015
|
+
if (!currentGroup.length) {
|
|
5016
|
+
return;
|
|
5017
|
+
}
|
|
5018
|
+
return (h$1("duet-table", { variation: "plain", breakpoint: "none", role: "", margin: this.hideGroups ? "none" : "auto" }, h$1("table", { class: "duet-editable-table", "aria-role": this.accessibleRole }, h$1("thead", { class: "duet-editable-table-header" }, h$1("tr", null, h$1("th", { class: {
|
|
5019
|
+
"duet-editable-table-header-hidden": this.hideGroups,
|
|
5020
|
+
} }, !this.hideGroups ? (getLocaleString(group.label)) : (h$1("duet-visually-hidden", null, getLocaleString(group.label)))), h$1("th", { class: {
|
|
5021
|
+
"duet-editable-table-header-hidden": this.hideGroups,
|
|
5022
|
+
} }, h$1("duet-visually-hidden", null, group.actionLabel
|
|
5023
|
+
? getLocaleString(group.actionLabel)
|
|
5024
|
+
: getLocaleString(this.actionLabelDefaults))))), h$1("tbody", null, currentGroup.map(dataAsArray => {
|
|
5025
|
+
const [key, value] = dataAsArray;
|
|
5026
|
+
return (h$1("duet-editable-table-item", { keyName: key, data: Object.assign({}, value), groupId: group.id, part: group.id, actions: this.internalActionsArray }));
|
|
5027
|
+
})))));
|
|
5028
|
+
})));
|
|
5029
|
+
}
|
|
5030
|
+
get element() { return this; }
|
|
5031
|
+
static get style() { return duetEditableTableCss; }
|
|
5032
|
+
};
|
|
5033
|
+
|
|
5034
|
+
const duetEditableTableButtonCss = "*.sc-duet-editable-table-button,*.sc-duet-editable-table-button::after,*.sc-duet-editable-table-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-editable-table-button-h button.sc-duet-editable-table-button{display:flex;align-content:space-between;justify-content:center;min-width:32px;max-width:32px;height:100%;min-height:32px;max-height:32px;padding:0;margin:0;cursor:pointer !important;background-color:transparent;border:1px solid;border-radius:50%}.sc-duet-editable-table-button-h button.sc-duet-editable-table-button duet-icon.sc-duet-editable-table-button{align-self:center}";
|
|
5035
|
+
|
|
5036
|
+
let DuetEditableTableButton$1 = class extends H {
|
|
5037
|
+
constructor() {
|
|
5038
|
+
super();
|
|
5039
|
+
this.__registerHost();
|
|
5040
|
+
this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
|
|
5041
|
+
this.isHovering = false;
|
|
5042
|
+
/**
|
|
5043
|
+
* Theme of the empty state component.
|
|
5044
|
+
*/
|
|
5045
|
+
this.theme = "";
|
|
5046
|
+
/**
|
|
5047
|
+
* action items passed from host component
|
|
5048
|
+
* @internal
|
|
5049
|
+
*/
|
|
5050
|
+
this.actions = undefined;
|
|
5051
|
+
/**
|
|
5052
|
+
* uid that gets passed along when the action is emitted
|
|
5053
|
+
* @internal
|
|
5054
|
+
*/
|
|
5055
|
+
this.uid = "";
|
|
5056
|
+
/**
|
|
5057
|
+
* group associated with action
|
|
5058
|
+
* @internal
|
|
5059
|
+
*/
|
|
5060
|
+
this.group = "";
|
|
5061
|
+
/**
|
|
5062
|
+
* key of the item in the map
|
|
5063
|
+
* @internal
|
|
5064
|
+
*/
|
|
5065
|
+
this.keyName = "";
|
|
5066
|
+
this.onMouseEnter = () => {
|
|
5067
|
+
this.isHovering = true;
|
|
5068
|
+
};
|
|
5069
|
+
this.onMouseLeave = () => {
|
|
5070
|
+
this.isHovering = false;
|
|
5071
|
+
};
|
|
5072
|
+
}
|
|
5073
|
+
/**
|
|
5074
|
+
/**
|
|
5075
|
+
* Component lifecycle events.
|
|
5076
|
+
*/
|
|
5077
|
+
componentWillLoad() {
|
|
5078
|
+
inheritGlobalTheme(this);
|
|
5079
|
+
}
|
|
5080
|
+
/**
|
|
5081
|
+
/**
|
|
5082
|
+
* private functions
|
|
5083
|
+
*/
|
|
5084
|
+
emitActionEvent(ev) {
|
|
5085
|
+
this.duetEditableItemAction.emit({
|
|
5086
|
+
originalEvent: ev,
|
|
5087
|
+
uid: this.uid,
|
|
5088
|
+
group: this.group,
|
|
5089
|
+
action: this.actions.id,
|
|
5090
|
+
keyName: this.keyName,
|
|
5091
|
+
component: "duet-editable-table-item",
|
|
5092
|
+
});
|
|
5093
|
+
}
|
|
5094
|
+
/**
|
|
5095
|
+
* render() function
|
|
5096
|
+
* Always the last one in the class.
|
|
5097
|
+
*/
|
|
5098
|
+
render() {
|
|
5099
|
+
return (h$1("button", { style: {
|
|
5100
|
+
"border-color": this.isHovering
|
|
5101
|
+
? getColorByName(this.actions.color_hover)
|
|
5102
|
+
: getColorByName(this.actions.color),
|
|
5103
|
+
}, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, role: "menuitem", class: "duet-editable-table-actions-items-button", "aria-label": this.actions.label ? getLocaleString(this.actions.label) : undefined, onClick: ev => this.emitActionEvent(ev) }, h$1("duet-icon", { class: "duet-editable-table-actions-items-icon", size: "x-small", name: this.actions.icon, color: this.isHovering ? this.actions.color_hover : this.actions.color, margin: "none" })));
|
|
5104
|
+
}
|
|
5105
|
+
get el() { return this; }
|
|
5106
|
+
static get style() { return duetEditableTableButtonCss; }
|
|
5107
|
+
};
|
|
5108
|
+
|
|
5109
|
+
//simple functional component that renders the data in the table
|
|
5110
|
+
const TableData = ({ data, groupId }, _children) => {
|
|
5111
|
+
if (typeof data === "string") {
|
|
5112
|
+
return h("td", { innerHTML: data, class: "duet-editable-table-content", part: `${groupId}content` });
|
|
5113
|
+
}
|
|
5114
|
+
else {
|
|
5115
|
+
return (h("td", { class: "duet-editable-table-content", part: `${groupId}content` }, data));
|
|
5116
|
+
}
|
|
5117
|
+
};
|
|
5118
|
+
|
|
5119
|
+
const duetEditableTableItemCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{display:table-row;height:32px}.duet-editable-table-content,.duet-editable-table-actions{height:32px;padding:12px 0;vertical-align:middle;break-word:break-all;border-bottom:1px solid #e1e3e6}.duet-editable-table-actions-items{display:flex;justify-content:flex-end}.duet-editable-table-actions-items duet-editable-table-button{padding-left:8px}.duet-editable-table .editable-item-small{font-size:0.75rem;font-weight:400}";
|
|
5120
|
+
|
|
5121
|
+
let DuetEditableTableItem$1 = class extends H {
|
|
5122
|
+
constructor() {
|
|
5123
|
+
super();
|
|
5124
|
+
this.__registerHost();
|
|
5125
|
+
this.__attachShadow();
|
|
5126
|
+
this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
|
|
5127
|
+
this.isHovering = false;
|
|
5128
|
+
/**
|
|
5129
|
+
* Theme of the empty state component.
|
|
5130
|
+
*/
|
|
5131
|
+
this.theme = "";
|
|
5132
|
+
/**
|
|
5133
|
+
* Actions that can be performed on the element
|
|
5134
|
+
*/
|
|
5135
|
+
this.actions = undefined;
|
|
5136
|
+
/**
|
|
5137
|
+
* GroupId used to pierce the shadowdom - gets concatenated with "content & actions" and used as part="groupIDcontent/actions" to pierce the content/Action item
|
|
5138
|
+
* @internal
|
|
5139
|
+
*/
|
|
5140
|
+
this.groupId = "";
|
|
5141
|
+
/**
|
|
5142
|
+
* Key used to identify item, when running actions
|
|
5143
|
+
*/
|
|
5144
|
+
this.keyName = "";
|
|
5145
|
+
/**
|
|
5146
|
+
* Object of data itemsused to render the entire row
|
|
5147
|
+
*/
|
|
5148
|
+
this.data = undefined;
|
|
5149
|
+
}
|
|
5150
|
+
watchPropHandler(_newValue, _oldValue) {
|
|
5151
|
+
// console.log("The new value of activated is: ", _newValue)
|
|
5152
|
+
}
|
|
5153
|
+
/**
|
|
5154
|
+
/**
|
|
5155
|
+
* Component lifecycle events.
|
|
5156
|
+
*/
|
|
5157
|
+
componentWillLoad() {
|
|
5158
|
+
inheritGlobalTheme(this);
|
|
5159
|
+
}
|
|
5160
|
+
/**
|
|
5161
|
+
/**
|
|
5162
|
+
* private functions
|
|
5163
|
+
*/
|
|
5164
|
+
/**
|
|
5165
|
+
* render() function
|
|
5166
|
+
* Always the last one in the class.
|
|
5167
|
+
*/
|
|
5168
|
+
render() {
|
|
5169
|
+
return (h$1(Host, { role: "row" }, h$1(TableData, { data: this.data.item, groupId: this.groupId }), h$1("td", { class: "duet-editable-table-actions" }, h$1("div", { class: "duet-editable-table-actions-items", part: `${this.groupId}actions` }, this.actions.map(result => {
|
|
5170
|
+
const { map = undefined } = result;
|
|
5171
|
+
// if map has been specified, only show the current action if groupID matches the map array
|
|
5172
|
+
if (map && !map.includes(this.groupId)) {
|
|
5173
|
+
return;
|
|
5174
|
+
}
|
|
5175
|
+
return (h$1("duet-editable-table-button", { keyName: this.keyName, group: this.data.group, uid: this.data.uid, actions: result, theme: this.theme }));
|
|
5176
|
+
})))));
|
|
5177
|
+
}
|
|
5178
|
+
get el() { return this; }
|
|
5179
|
+
static get watchers() { return {
|
|
5180
|
+
"data": ["watchPropHandler"]
|
|
5181
|
+
}; }
|
|
5182
|
+
static get style() { return duetEditableTableItemCss; }
|
|
5183
|
+
};
|
|
5184
|
+
|
|
4821
5185
|
const duetEmptyStateCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;height:100%}.duet-empty-state{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%;padding:48px;color:#00294d;text-align:center;background:#f5f8fa;border-radius:4px}.duet-empty-state.duet-theme-turva{color:#171c3a;background:#f5f5f7}";
|
|
4822
5186
|
|
|
4823
|
-
let DuetEmptyState$1 = class extends
|
|
5187
|
+
let DuetEmptyState$1 = class extends H {
|
|
4824
5188
|
constructor() {
|
|
4825
5189
|
super();
|
|
4826
5190
|
this.__registerHost();
|
|
4827
|
-
|
|
5191
|
+
this.__attachShadow();
|
|
4828
5192
|
/**
|
|
4829
5193
|
* Theme of the empty state component.
|
|
4830
5194
|
*/
|
|
@@ -4860,11 +5224,11 @@ let DuetEmptyState$1 = class extends HTMLElement {
|
|
|
4860
5224
|
|
|
4861
5225
|
const duetFieldsetCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:12px !important;display:block;width:100%}:host(.duet-m-0){margin:0 !important}fieldset{border:0}legend{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-legend-wrapper{position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:#00294d;text-align:left;background:transparent}.duet-theme-turva .duet-legend-wrapper{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-fieldset-label{margin-bottom:12px !important;margin-top:8px}.duet-legend-has-caption .duet-fieldset-label{margin-bottom:6px !important}.duet-legend-has-tooltip .duet-fieldset-label{padding-right:36px}@media (min-width: 48em){.duet-legend-has-tooltip .duet-fieldset-label{margin-bottom:3px !important;padding-right:0}}@media (min-width: 48em){.duet-legend-has-tooltip.duet-legend-has-caption .duet-fieldset-label{margin-bottom:-3px !important}}.duet-fieldset-caption{margin-bottom:12px !important}.duet-fieldset-help{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#de2362;border-radius:4px}.duet-fieldset-help span{display:block;margin-top:12px}.duet-theme-turva .duet-fieldset-help{color:#e02a0d}::slotted(duet-tooltip){position:absolute;top:4px;right:0}@media (min-width: 48em){::slotted(duet-tooltip){position:relative;right:auto}}.duet-legend-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
4862
5226
|
|
|
4863
|
-
let DuetFieldset$1 = class extends
|
|
5227
|
+
let DuetFieldset$1 = class extends H {
|
|
4864
5228
|
constructor() {
|
|
4865
5229
|
super();
|
|
4866
5230
|
this.__registerHost();
|
|
4867
|
-
|
|
5231
|
+
this.__attachShadow();
|
|
4868
5232
|
this.errorId = createID("DuetError");
|
|
4869
5233
|
this.labelId = createID("DuetLabel");
|
|
4870
5234
|
this.hasTooltip = false;
|
|
@@ -4928,11 +5292,11 @@ const createEvent$1 = (ev, data) => ({
|
|
|
4928
5292
|
data,
|
|
4929
5293
|
originalEvent: ev,
|
|
4930
5294
|
});
|
|
4931
|
-
let DuetFooter$1 = class extends
|
|
5295
|
+
let DuetFooter$1 = class extends H {
|
|
4932
5296
|
constructor() {
|
|
4933
5297
|
super();
|
|
4934
5298
|
this.__registerHost();
|
|
4935
|
-
|
|
5299
|
+
this.__attachShadow();
|
|
4936
5300
|
this.duetChange = createEvent$2(this, "duetChange", 3);
|
|
4937
5301
|
this.duetLogoClick = createEvent$2(this, "duetLogoClick", 7);
|
|
4938
5302
|
this.duetMenuClick = createEvent$2(this, "duetMenuClick", 7);
|
|
@@ -5049,10 +5413,16 @@ const duetGridCss = ".sc-duet-grid-h{box-sizing:border-box;padding:0;margin:0;ba
|
|
|
5049
5413
|
function isGridItem(element) {
|
|
5050
5414
|
return element.tagName.toLowerCase() === "duet-grid-item";
|
|
5051
5415
|
}
|
|
5052
|
-
let DuetGrid$1 = class extends
|
|
5416
|
+
let DuetGrid$1 = class extends H {
|
|
5053
5417
|
constructor() {
|
|
5054
5418
|
super();
|
|
5055
5419
|
this.__registerHost();
|
|
5420
|
+
this.mql = [
|
|
5421
|
+
window.matchMedia(media_query_large.replace(/'/g, "")),
|
|
5422
|
+
window.matchMedia(media_query_medium.replace(/'/g, "")),
|
|
5423
|
+
window.matchMedia(media_query_small.replace(/'/g, "")),
|
|
5424
|
+
];
|
|
5425
|
+
this.distributeFormElement = false;
|
|
5056
5426
|
/**
|
|
5057
5427
|
* Enable or disable the automatic responsive behaviour of the grid component.
|
|
5058
5428
|
* Setting this option to "true" makes sure that contents are stacked vertically
|
|
@@ -5069,7 +5439,9 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5069
5439
|
*/
|
|
5070
5440
|
this.direction = "horizontal";
|
|
5071
5441
|
/**
|
|
5072
|
-
* Adjusts the vertical alignment of the grid items
|
|
5442
|
+
* Adjusts the vertical alignment of the grid items, if set to "form_distribute"
|
|
5443
|
+
* the grid will try to calculate correct paddings for any duet-input fields inside duet-grid-items,
|
|
5444
|
+
* so that they align even when displaying errors.
|
|
5073
5445
|
*/
|
|
5074
5446
|
this.alignment = "top";
|
|
5075
5447
|
/**
|
|
@@ -5081,14 +5453,39 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5081
5453
|
*/
|
|
5082
5454
|
this.mobile = "";
|
|
5083
5455
|
}
|
|
5456
|
+
/**
|
|
5457
|
+
* Private functions
|
|
5458
|
+
*/
|
|
5459
|
+
/**
|
|
5460
|
+
* Returns the element height including margins
|
|
5461
|
+
* @param element - element
|
|
5462
|
+
* @returns {number}
|
|
5463
|
+
*/
|
|
5464
|
+
outerHeight(element) {
|
|
5465
|
+
const height = element.offsetHeight, style = window.getComputedStyle(element);
|
|
5466
|
+
return ["top", "bottom"]
|
|
5467
|
+
.map(side => parseInt(style[`margin-${side}`]))
|
|
5468
|
+
.reduce((total, side) => total + side, height);
|
|
5469
|
+
}
|
|
5084
5470
|
/**
|
|
5085
5471
|
* Component lifecycle events.
|
|
5086
5472
|
*/
|
|
5087
5473
|
async connectedCallback() {
|
|
5088
5474
|
const el = this.element;
|
|
5475
|
+
this.distributeFormElement = this.alignment === "form_distribute";
|
|
5089
5476
|
this.mutationO = watchForOptions(el, "duet-grid-item", () => {
|
|
5090
5477
|
this.updateGridItems();
|
|
5091
5478
|
});
|
|
5479
|
+
// the next two functions are used to watch for changes in the grid items, and are process intensive - so only run when needed
|
|
5480
|
+
if (this.distributeFormElement) {
|
|
5481
|
+
this.mutation1 = watchForElement(el, "duet-input", () => {
|
|
5482
|
+
this.updateGridItemsWithInputFields();
|
|
5483
|
+
});
|
|
5484
|
+
// listen for potential mediaquery changes and reset layout
|
|
5485
|
+
for (let i = 0; i < this.mql.length; i++) {
|
|
5486
|
+
this.mql[i].addEventListener("change", this.updateGridItemsWithInputFields.bind(this));
|
|
5487
|
+
}
|
|
5488
|
+
}
|
|
5092
5489
|
this.updateGridItems();
|
|
5093
5490
|
}
|
|
5094
5491
|
disconnectedCallback() {
|
|
@@ -5096,6 +5493,14 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5096
5493
|
this.mutationO.disconnect();
|
|
5097
5494
|
this.mutationO = undefined;
|
|
5098
5495
|
}
|
|
5496
|
+
if (this.mutation1) {
|
|
5497
|
+
this.mutation1.disconnect();
|
|
5498
|
+
this.mutation1 = undefined;
|
|
5499
|
+
}
|
|
5500
|
+
// listen for potential mediaquery changes and reset layout
|
|
5501
|
+
for (let i = 0; i < this.mql.length; i++) {
|
|
5502
|
+
this.mql[i].removeEventListener("change", this.updateGridItemsWithInputFields.bind(this));
|
|
5503
|
+
}
|
|
5099
5504
|
}
|
|
5100
5505
|
/**
|
|
5101
5506
|
* Local methods
|
|
@@ -5107,6 +5512,29 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5107
5512
|
item.breakpoint = this.breakpoint;
|
|
5108
5513
|
});
|
|
5109
5514
|
}
|
|
5515
|
+
async updateGridItemsWithInputFields() {
|
|
5516
|
+
const items = Array.from(this.element.children).filter(isGridItem);
|
|
5517
|
+
// if layout changes to columns instead of row, remove all padding
|
|
5518
|
+
const hasColumnLayout = window ? window.getComputedStyle(this.element).flexDirection === "column" : false;
|
|
5519
|
+
let maxHeight = 0;
|
|
5520
|
+
const sizes = [];
|
|
5521
|
+
items.forEach(item => {
|
|
5522
|
+
const inputErrorDom = item.querySelector("span.duet-input-error");
|
|
5523
|
+
const height = inputErrorDom ? this.outerHeight(inputErrorDom) : 0;
|
|
5524
|
+
sizes.push(height);
|
|
5525
|
+
});
|
|
5526
|
+
maxHeight = Math.max(...sizes);
|
|
5527
|
+
items.forEach(item => {
|
|
5528
|
+
const inputErrorDom = item.querySelector("span.duet-input-error");
|
|
5529
|
+
const height = inputErrorDom ? this.outerHeight(inputErrorDom) : 0;
|
|
5530
|
+
if (height < maxHeight && !hasColumnLayout) {
|
|
5531
|
+
item.setAttribute("style", `padding-bottom: ${maxHeight - height}px;`);
|
|
5532
|
+
}
|
|
5533
|
+
else if (height === maxHeight || hasColumnLayout) {
|
|
5534
|
+
item.setAttribute("style", `padding-bottom: 0px;`);
|
|
5535
|
+
}
|
|
5536
|
+
});
|
|
5537
|
+
}
|
|
5110
5538
|
/**
|
|
5111
5539
|
* render() function
|
|
5112
5540
|
* Always the last one in the class.
|
|
@@ -5116,7 +5544,7 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5116
5544
|
"duet-grid": true,
|
|
5117
5545
|
"duet-no-stacking": !this.responsive,
|
|
5118
5546
|
"duet-grid-align-top": this.alignment === "top",
|
|
5119
|
-
"duet-grid-align-bottom": this.alignment === "bottom",
|
|
5547
|
+
"duet-grid-align-bottom": this.alignment === "bottom" || this.alignment === "form_distribute",
|
|
5120
5548
|
"duet-grid-align-center": this.alignment === "center",
|
|
5121
5549
|
"duet-grid-align-stretch": this.alignment === "stretch",
|
|
5122
5550
|
"duet-grid-align-baseline": this.alignment === "baseline",
|
|
@@ -5146,7 +5574,7 @@ let DuetGrid$1 = class extends HTMLElement {
|
|
|
5146
5574
|
|
|
5147
5575
|
const duetGridItemCss = ".sc-duet-grid-item-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;min-width:0;max-width:100%;flex:0 0 auto;padding-right:8px;padding-left:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d}.sc-duet-grid-item-h:first-child,.sc-duet-grid-item-h:first-of-type{padding-left:0}.sc-duet-grid-item-h:last-child,.sc-duet-grid-item-h:last-of-type{padding-right:0}@media (max-width: 35.9375em){.duet-grid-item-responsive.sc-duet-grid-item-h{width:100% !important;min-width:0 !important;max-width:100% !important;padding-right:0;padding-left:0}}@media screen and (max-width: 47.9375em){.duet-grid-item-br-medium.sc-duet-grid-item-h{width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 47.9375em){.duet-grid-item-responsive.duet-grid-item-br-medium.sc-duet-grid-item-h{padding-right:0;padding-left:0}}@media screen and (max-width: 64em){.duet-grid-item-br-x-large.sc-duet-grid-item-h{width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 64em){.duet-grid-item-responsive.duet-grid-item-br-x-large.sc-duet-grid-item-h{padding-right:0;padding-left:0}}.duet-grid-item-fill.sc-duet-grid-item-h{flex:1 1 auto;width:100%}.duet-theme-turva.sc-duet-grid-item-h{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-m-0.sc-duet-grid-item-h{padding:0 !important;margin:0 !important}";
|
|
5148
5576
|
|
|
5149
|
-
let DuetGridItem$1 = class extends
|
|
5577
|
+
let DuetGridItem$1 = class extends H {
|
|
5150
5578
|
constructor() {
|
|
5151
5579
|
super();
|
|
5152
5580
|
this.__registerHost();
|
|
@@ -5399,11 +5827,11 @@ const createEvent = (ev, data) => ({
|
|
|
5399
5827
|
data,
|
|
5400
5828
|
originalEvent: ev,
|
|
5401
5829
|
});
|
|
5402
|
-
let DuetHeader$1 = class extends
|
|
5830
|
+
let DuetHeader$1 = class extends H {
|
|
5403
5831
|
constructor() {
|
|
5404
5832
|
super();
|
|
5405
5833
|
this.__registerHost();
|
|
5406
|
-
|
|
5834
|
+
this.__attachShadow();
|
|
5407
5835
|
this.duetChange = createEvent$2(this, "duetChange", 3);
|
|
5408
5836
|
this.duetSessionClick = createEvent$2(this, "duetSessionClick", 7);
|
|
5409
5837
|
this.duetUserClick = createEvent$2(this, "duetUserClick", 7);
|
|
@@ -5805,13 +6233,13 @@ let DuetHeader$1 = class extends HTMLElement {
|
|
|
5805
6233
|
static get style() { return duetHeaderCss; }
|
|
5806
6234
|
};
|
|
5807
6235
|
|
|
5808
|
-
const duetHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-heading{margin-bottom:16px !important;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;text-decoration:none;letter-spacing:-0.01rem;word-break:break-word}@media (min-width: 36em){.duet-heading{margin-bottom:20px !important}}.duet-heading.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:italic;font-weight:700;color:#171c3a}.duet-heading.duet-heading-border{padding-bottom:20px;border-bottom:1px solid #e1e3e6}.duet-heading.duet-heading-hyphenate{-webkit-hyphens:auto;hyphens:auto}.duet-heading.h0{font-size:9.4vw}.duet-heading.h0.duet-p-0{padding:0 !important}.duet-heading.h0.duet-m-0{margin:0 !important}@media (max-width: 31.914893617rem){.duet-heading.h0{font-size:3rem}}@media (min-width: 47.8723404255rem){.duet-heading.h0{font-size:4.5rem}}@media (max-width: 22.5em){.duet-heading.h0{font-size:2.25rem}}.duet-heading.h1{font-size:7vw}.duet-heading.h1.duet-p-0{padding:0 !important}.duet-heading.h1.duet-m-0{margin:0 !important}@media (max-width: 32.1428571429rem){.duet-heading.h1{font-size:2.25rem}}@media (min-width: 42.8571428571rem){.duet-heading.h1{font-size:3rem}}@media (max-width: 22.5em){.duet-heading.h1{font-size:1.5rem}}.duet-heading.h2{font-size:5.8vw}.duet-heading.h2.duet-p-0{padding:0 !important}.duet-heading.h2.duet-m-0{margin:0 !important}@media (max-width: 25.8620689655rem){.duet-heading.h2{font-size:1.5rem}}@media (min-width: 38.7931034483rem){.duet-heading.h2{font-size:2.25rem}}@media (max-width: 22.5em){.duet-heading.h2{font-size:1.375rem}}.duet-heading.h3{margin-bottom:12px !important;font-size:4.2vw}.duet-heading.h3.duet-p-0{padding:0 !important}.duet-heading.h3.duet-m-0{margin:0 !important}@media (max-width: 29.7619047619rem){.duet-heading.h3{font-size:1.25rem}}@media (min-width: 35.7142857143rem){.duet-heading.h3{font-size:1.5rem}}.duet-heading.h3.duet-theme-turva{font-style:normal}.duet-heading.h3.duet-heading-border{padding-bottom:20px}.duet-heading.h4{margin-bottom:8px !important;font-size:4vw;letter-spacing:0}.duet-heading.h4.duet-p-0{padding:0 !important}.duet-heading.h4.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h4{font-size:1.1rem}}@media (min-width: 31.25rem){.duet-heading.h4{font-size:1.25rem}}.duet-heading.h4.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h4.duet-heading-border{padding-bottom:20px}.duet-heading.h5{margin-bottom:8px !important;font-size:4vw;font-weight:600;letter-spacing:0}.duet-heading.h5.duet-p-0{padding:0 !important}.duet-heading.h5.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h5{font-size:1.1rem}}@media (min-width: 28.4090909091rem){.duet-heading.h5{font-size:1.1363636364rem}}.duet-heading.h5.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h5.duet-heading-border{padding-bottom:16px}.duet-heading.h6{margin-bottom:8px !important;font-size:1rem;font-weight:600;letter-spacing:0}.duet-heading.h6.duet-p-0{padding:0 !important}.duet-heading.h6.duet-m-0{margin:0 !important}.duet-heading.h6.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h6.duet-heading-border{padding-bottom:16px}.duet-heading.duet-semibold,.duet-heading.duet-theme-turva.duet-semibold{font-style:normal !important;font-weight:600 !important}";
|
|
6236
|
+
const duetHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-heading{margin-bottom:16px !important;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;text-decoration:none;letter-spacing:-0.01rem;word-break:break-word}@media (min-width: 36em){.duet-heading{margin-bottom:20px !important}}.duet-heading.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:italic;font-weight:700;color:#171c3a}.duet-heading.duet-heading-border{padding-bottom:20px;border-bottom:1px solid #e1e3e6}.duet-heading.duet-heading-border.duet-heading-border-solid{border-bottom-color:#657787}.duet-heading.duet-heading-hyphenate{-webkit-hyphens:auto;hyphens:auto}.duet-heading.h0{font-size:9.4vw}.duet-heading.h0.duet-p-0{padding:0 !important}.duet-heading.h0.duet-m-0{margin:0 !important}@media (max-width: 31.914893617rem){.duet-heading.h0{font-size:3rem}}@media (min-width: 47.8723404255rem){.duet-heading.h0{font-size:4.5rem}}@media (max-width: 22.5em){.duet-heading.h0{font-size:2.25rem}}.duet-heading.h1{font-size:7vw}.duet-heading.h1.duet-p-0{padding:0 !important}.duet-heading.h1.duet-m-0{margin:0 !important}@media (max-width: 32.1428571429rem){.duet-heading.h1{font-size:2.25rem}}@media (min-width: 42.8571428571rem){.duet-heading.h1{font-size:3rem}}@media (max-width: 22.5em){.duet-heading.h1{font-size:1.5rem}}.duet-heading.h2{font-size:5.8vw}.duet-heading.h2.duet-p-0{padding:0 !important}.duet-heading.h2.duet-m-0{margin:0 !important}@media (max-width: 25.8620689655rem){.duet-heading.h2{font-size:1.5rem}}@media (min-width: 38.7931034483rem){.duet-heading.h2{font-size:2.25rem}}@media (max-width: 22.5em){.duet-heading.h2{font-size:1.375rem}}.duet-heading.h3{margin-bottom:12px !important;font-size:4.2vw}.duet-heading.h3.duet-p-0{padding:0 !important}.duet-heading.h3.duet-m-0{margin:0 !important}@media (max-width: 29.7619047619rem){.duet-heading.h3{font-size:1.25rem}}@media (min-width: 35.7142857143rem){.duet-heading.h3{font-size:1.5rem}}.duet-heading.h3.duet-theme-turva{font-style:normal}.duet-heading.h3.duet-heading-border{padding-bottom:20px}.duet-heading.h4{margin-bottom:8px !important;font-size:4vw;letter-spacing:0}.duet-heading.h4.duet-p-0{padding:0 !important}.duet-heading.h4.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h4{font-size:1.1rem}}@media (min-width: 31.25rem){.duet-heading.h4{font-size:1.25rem}}.duet-heading.h4.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h4.duet-heading-border{padding-bottom:20px}.duet-heading.h5{margin-bottom:8px !important;font-size:4vw;font-weight:600;letter-spacing:0}.duet-heading.h5.duet-p-0{padding:0 !important}.duet-heading.h5.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h5{font-size:1.1rem}}@media (min-width: 28.4090909091rem){.duet-heading.h5{font-size:1.1363636364rem}}.duet-heading.h5.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h5.duet-heading-border{padding-bottom:16px}.duet-heading.h6{margin-bottom:8px !important;font-size:1rem;font-weight:600;letter-spacing:0}.duet-heading.h6.duet-p-0{padding:0 !important}.duet-heading.h6.duet-m-0{margin:0 !important}.duet-heading.h6.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h6.duet-heading-border{padding-bottom:16px}.duet-heading.duet-semibold,.duet-heading.duet-theme-turva.duet-semibold{font-style:normal !important;font-weight:600 !important}";
|
|
5809
6237
|
|
|
5810
|
-
let DuetHeading$1 = class extends
|
|
6238
|
+
let DuetHeading$1 = class extends H {
|
|
5811
6239
|
constructor() {
|
|
5812
6240
|
super();
|
|
5813
6241
|
this.__registerHost();
|
|
5814
|
-
|
|
6242
|
+
this.__attachShadow();
|
|
5815
6243
|
/**
|
|
5816
6244
|
* The actual heading level used in the HTML markup.
|
|
5817
6245
|
*/
|
|
@@ -5821,7 +6249,7 @@ let DuetHeading$1 = class extends HTMLElement {
|
|
|
5821
6249
|
*/
|
|
5822
6250
|
this.margin = "auto";
|
|
5823
6251
|
/**
|
|
5824
|
-
* Enable or disable the border underneath the heading
|
|
6252
|
+
* Enable or disable the border underneath the heading, solid will darken the border
|
|
5825
6253
|
*/
|
|
5826
6254
|
this.border = false;
|
|
5827
6255
|
/**
|
|
@@ -5858,7 +6286,8 @@ let DuetHeading$1 = class extends HTMLElement {
|
|
|
5858
6286
|
const color = getColorByName(this.color);
|
|
5859
6287
|
return (h$1(TagName, { class: {
|
|
5860
6288
|
"duet-heading": true,
|
|
5861
|
-
"duet-heading-border": this.border,
|
|
6289
|
+
"duet-heading-border": this.border !== false,
|
|
6290
|
+
"duet-heading-border-solid": this.border === "solid",
|
|
5862
6291
|
"duet-semibold": this.weight === "semibold",
|
|
5863
6292
|
"duet-heading-hyphenate": this.hyphenate,
|
|
5864
6293
|
"duet-m-0": this.margin === "none",
|
|
@@ -5872,11 +6301,11 @@ let DuetHeading$1 = class extends HTMLElement {
|
|
|
5872
6301
|
|
|
5873
6302
|
const duetHeroCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-hero{position:relative;display:block;width:100%;padding:48px 28px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;text-decoration:none;text-shadow:none;text-transform:none;background:#00294d}.duet-hero.duet-p-0{padding:0 !important}.duet-hero.duet-m-0{margin:0 !important}.duet-hero.duet-hero-text-center{text-align:center !important}.duet-hero.duet-hero-light{padding-bottom:0 !important}@media (min-width: 62em){.duet-hero.duet-hero-light{padding-bottom:28px !important}}.duet-hero.duet-hero-with-image{padding-bottom:20px !important;margin-bottom:-36px}@media (min-width: 48em){.duet-hero.duet-hero-with-image{padding-bottom:28px !important}}@media (min-width: 62em){.duet-hero.duet-hero-with-image{padding-bottom:36px !important;margin-bottom:-20px}}.duet-hero.duet-hero-light,.duet-hero.duet-hero-with-image{color:#00294d;background-color:white;background-image:linear-gradient(#f3f9fc, #f9fcfe)}.duet-hero.duet-hero-light::before,.duet-hero.duet-hero-with-image::before{position:absolute;top:100%;left:0;z-index:-1;width:100%;height:400px;content:\"\";background-image:linear-gradient(#f9fcfe, white)}.duet-hero.duet-hero-light.duet-theme-turva,.duet-hero.duet-hero-with-image.duet-theme-turva{color:#171c3a;background-image:linear-gradient(#f5f5f7, #fafafb)}.duet-hero.duet-hero-light.duet-theme-turva::before,.duet-hero.duet-hero-with-image.duet-theme-turva::before{background-image:linear-gradient(#fafafb, white)}.duet-hero.duet-hero-gray{color:#00294d;background:#f5f8fa}.duet-hero.duet-hero-gray.duet-theme-turva{background:#f5f5f7}@media (min-width: 62em){.duet-hero.duet-hero-gray .duet-hero-text{display:inline-block;vertical-align:top}.duet-hero.duet-hero-gray .duet-hero-icon+.duet-hero-text{margin-left:28px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-actions{padding-bottom:65.4545454545px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-back{padding-top:72px}}.duet-hero.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:#c60c30}@media (min-width: 62em){.duet-hero{min-height:290px;padding:111.6px 56px;overflow:visible}}.duet-hero-icon{display:inline-block;vertical-align:top}@media (min-width: 62em){.duet-hero-icon{margin-top:-8px}}@media (min-width: 62em){.duet-hero-heading{margin-top:12px}}@media (min-width: 62em){.duet-hero-heading-has-pre{margin-top:0}}.duet-hero-wrapper{position:relative;width:100%;max-width:1110px;margin:0 auto;text-align:center}.duet-hero-left-align .duet-hero-wrapper{text-align:left}.duet-hero-with-image .duet-hero-wrapper{position:static}@media (min-width: 62em){.duet-hero-wrapper{text-align:left}}.duet-hero-text{max-width:50rem;margin:0 auto}.duet-hero-text-center .duet-hero-text{text-align:center !important}@media (min-width: 48em){.duet-hero-text{width:80%}.duet-hero-left-align .duet-hero-text{margin:0}}@media (min-width: 62em){.duet-hero-text{width:52%;max-width:none;margin-top:-10px;margin-left:0}.duet-hero-text-center .duet-hero-text{margin-left:auto}}.duet-hero:not(.duet-hero-with-image) .duet-hero-image{width:100%;max-width:400px;height:0;padding-bottom:50%;margin:28px auto 0;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}@media (min-width: 36em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{padding-bottom:40%}}@media (min-width: 48em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:420px;padding-bottom:34%}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:540px}}@media (min-width: 62em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{position:absolute;top:50%;right:0;padding-bottom:30%;margin:0;transform:translateY(-50%)}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-60px;padding-bottom:26%}.duet-hero-gray .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}@media (min-width: 62em){.duet-hero-gray:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}.duet-hero-image-wrapper{position:relative;width:80%;height:0;padding-bottom:80%;margin:-30px auto 36px;overflow:hidden;border-radius:28%;box-shadow:0 0 20px rgba(255, 255, 255, 0.5);transform:rotate(10deg)}.duet-theme-turva .duet-hero-image-wrapper{padding-bottom:68%;border-radius:44% 47% 38% 54%;transform:none}@media screen and (min-width: 440px){.duet-hero-image-wrapper{width:300px;padding-bottom:300px}.duet-theme-turva .duet-hero-image-wrapper{width:80%;padding-bottom:68%}}@media (min-width: 62em){.duet-hero-image-wrapper{position:absolute;top:-60px;right:-50px;width:470px;padding-bottom:470px;margin:0}.duet-theme-turva .duet-hero-image-wrapper{top:-40px;right:-80px;width:536px;padding-bottom:470px}}@media (min-width: 76.25em){.duet-hero-image-wrapper{top:-70px;right:-60px;width:600px;padding-bottom:600px}.duet-theme-turva .duet-hero-image-wrapper{top:-70px;right:-60px;width:650px;padding-bottom:600px}}@media screen and (min-width: 1450px){.duet-hero-image-wrapper{top:-70px;right:25px}.duet-theme-turva .duet-hero-image-wrapper{right:0}}.duet-hero-image-wrapper .duet-hero-image{position:absolute;top:-5%;left:-5%;width:110%;height:110%;background-repeat:no-repeat;background-position:50% 50%;background-size:cover;transform:rotate(-10deg)}.duet-theme-turva .duet-hero-image-wrapper .duet-hero-image{top:0;left:0;width:100%;height:100%;transform:none}.duet-hero-image-mask{position:relative;margin:-48px auto 0;overflow:hidden}@media (min-width: 62em){.duet-hero-image-mask{position:absolute;top:0;right:0;width:470px;height:460px;margin:0}}@media (min-width: 76.25em){.duet-hero-image-mask{width:650px;height:580px}}@media screen and (min-width: 1450px){.duet-hero-image-mask{right:50%;transform:translateX(110%)}.duet-theme-turva .duet-hero-image-mask{transform:translateX(108%)}}duet-heading+duet-button{margin-top:12px !important}.duet-hero-links{width:calc(100% + 56px);margin-top:48px;margin-left:-28px}.duet-hero-minimal .duet-hero-links{margin-top:28px}@media (min-width: 36em){.duet-hero-links{margin-top:72px}.duet-hero-minimal .duet-hero-links{margin-top:28px}}@media (min-width: 62em){.duet-hero-links{width:auto;margin:36px 0 0}.duet-hero-minimal .duet-hero-links{margin-top:28px}}.duet-hero-link{display:flex;align-items:center;width:100%;padding:16px 16px 8px;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.25;color:#0077b3;text-align:left;text-decoration:none;border-bottom:1px solid #e1e3e6;transition:background-color 300ms ease}.duet-hero-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-hero-link:focus,.duet-hero-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-hero-link:hover,.duet-hero-link:hover .duet-hero-action-arrow{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-hero-link:hover,.duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow{color:#940925 !important}.duet-theme-turva .duet-hero-link{color:#c60c30}@media (min-width: 36em){.duet-hero-link{padding:16px 16px 16px 28px}}@media (min-width: 62em){.duet-hero-link{display:inline-flex;width:auto;max-width:350px;padding:0;margin:0 28px 16px 0;border:0;border-radius:4px}}.duet-hero-link:hover{background:rgba(0, 0, 0, 0.02)}@media (min-width: 62em){.duet-hero-link:hover{background:transparent}}.duet-hero-link:first-of-type{border-top:1px solid #e1e3e6}@media (min-width: 62em){.duet-hero-link:first-of-type{margin-top:0;border:0}}.duet-hero-link:last-of-type{margin-bottom:-48px}@media (min-width: 62em){.duet-hero-link:last-of-type{margin-right:0;margin-bottom:0}}.duet-hero-link span{margin-top:-8px}@media (min-width: 36em){.duet-hero-link span{margin:0}}.duet-hero-action-icon{margin-right:8px}@media (min-width: 36em){.duet-hero-action-icon{margin-right:12px}}.duet-hero-action-arrow{margin:0 0 0 8px;color:#0077b3}@media (max-width: 35.9375em){.duet-hero-action-arrow{margin-top:-9px}}.duet-theme-turva .duet-hero-action-arrow{color:#c60c30}.duet-hero-back{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center}.duet-hero-left-align .duet-hero-back{align-items:self-start;justify-content:flex-start}@media (min-width: 36em){.duet-hero-back{margin-bottom:36px !important}.duet-hero-minimal .duet-hero-back{margin-bottom:28px !important}}@media (min-width: 62em){.duet-hero-back{display:block}}.duet-hero-pre{display:inline-block;width:auto;margin-right:8px}.duet-hero-pre+duet-heading{margin-top:0 !important}";
|
|
5874
6303
|
|
|
5875
|
-
let DuetHero$1 = class extends
|
|
6304
|
+
let DuetHero$1 = class extends H {
|
|
5876
6305
|
constructor() {
|
|
5877
6306
|
super();
|
|
5878
6307
|
this.__registerHost();
|
|
5879
|
-
|
|
6308
|
+
this.__attachShadow();
|
|
5880
6309
|
this.duetClick = createEvent$2(this, "duetClick", 7);
|
|
5881
6310
|
this.duetAnalytics = createEvent$2(this, "duetAnalytics", 7);
|
|
5882
6311
|
/**
|
|
@@ -6115,16 +6544,8 @@ const isValid = (elm) => {
|
|
|
6115
6544
|
};
|
|
6116
6545
|
const buildIconUrl = (iconName) => {
|
|
6117
6546
|
// under normal operations the Icons should always be loaded from the CDN
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
const localURI = `http://0.0.0.0:3334/icons/lib/assets/${iconName}.svg`;
|
|
6121
|
-
const host = window.location.hostname;
|
|
6122
|
-
const re = /(localhost|loca\.lt|127\.0\.0\.1|0\.0\.0\.0)/i;
|
|
6123
|
-
if (host.match(re)) {
|
|
6124
|
-
return localURI;
|
|
6125
|
-
}
|
|
6126
|
-
else {
|
|
6127
|
-
return cdnURI;
|
|
6547
|
+
{
|
|
6548
|
+
return `${Env.cdnURIProd}/icons/${Env.duetIconVersion}/lib/assets/${iconName}.svg`;
|
|
6128
6549
|
}
|
|
6129
6550
|
};
|
|
6130
6551
|
const iconCache = {};
|
|
@@ -6159,11 +6580,11 @@ function fetchIconByUrl(url) {
|
|
|
6159
6580
|
|
|
6160
6581
|
const duetIconCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:inline-block;width:auto;max-width:100%;color:inherit;-webkit-tap-highlight-color:transparent}@media (max-width: 35.9375em){:host(.duet-icon-has-outline){margin-bottom:0 !important}}@media (max-width: 35.9375em){:host(.duet-icon-has-background){margin-bottom:0 !important}}:host(.duet-m-0){margin:0 !important}@media (max-width: 35.9375em){:host(.duet-m-0){margin:0 !important}}.duet-icon{-webkit-user-select:none;user-select:none;width:100%;height:100%;transform-origin:top center}.duet-icon.duet-icon-has-outline{padding:12px;border-style:solid;border-width:1px;border-radius:50%}@media (max-width: 35.9375em){.duet-icon.duet-icon-has-outline{outline:1px solid transparent;transform:scale(0.8)}}.duet-icon.duet-icon-has-background{padding:16px;color:white;border-radius:50%}@media (max-width: 35.9375em){.duet-icon.duet-icon-has-background{outline:1px solid transparent;transform:scale(0.8)}}.duet-icon.duet-icon-has-background.duet-theme-turva,.duet-icon.duet-icon-has-background.duet-theme-default{color:white}.duet-icon.duet-icon-has-background.xxx-small .duet-icon-svg,.duet-icon.duet-icon-has-outline.xxx-small .duet-icon-svg{width:10px;height:10px}.duet-icon.duet-icon-has-background.xx-small .duet-icon-svg,.duet-icon.duet-icon-has-outline.xx-small .duet-icon-svg{width:16px;height:16px}@media (max-width: 35.9375em){.duet-icon.duet-icon-not-responsive{transform:scale(1) !important}}.duet-icon.duet-theme-default{color:#0077b3}.duet-icon.duet-theme-turva{color:#c60c30}.duet-icon.auto .duet-icon-svg{width:100%;height:100%}.duet-icon.xxx-small .duet-icon-svg{width:7px;height:7px}.duet-icon.duet-icon-has-background.xxx-small{padding:6px}.duet-icon.duet-icon-has-outline.xxx-small{padding:4px}.duet-icon.xx-small .duet-icon-svg{width:10px;height:10px}.duet-icon.duet-icon-has-background.xx-small{padding:8px}.duet-icon.duet-icon-has-outline.xx-small{padding:7px}.duet-icon.x-small .duet-icon-svg{width:16px;height:16px}.duet-icon.duet-icon-has-outline.x-small{padding:10px}.duet-icon.duet-icon-has-background.x-small{padding:12px}.duet-icon.small .duet-icon-svg{width:20px;height:20px}.duet-icon.duet-icon-has-background.small{padding:14px}.duet-icon.large .duet-icon-svg{width:30px;height:30px}.duet-icon.x-large .duet-icon-svg{width:36px;height:36px}.duet-icon.xx-large .duet-icon-svg{width:48px;height:48px}.duet-icon.xxx-large .duet-icon-svg{width:48px;height:48px}@media (min-width: 48em){.duet-icon.xxx-large .duet-icon-svg{width:72px;height:72px}}.duet-icon .duet-icon-svg{display:block;width:24px;min-width:100%;height:24px;font-size:0}.duet-icon svg{width:100%;min-width:100%;fill:currentColor}";
|
|
6161
6582
|
|
|
6162
|
-
let DuetIcon$1 = class extends
|
|
6583
|
+
let DuetIcon$1 = class extends H {
|
|
6163
6584
|
constructor() {
|
|
6164
6585
|
super();
|
|
6165
6586
|
this.__registerHost();
|
|
6166
|
-
|
|
6587
|
+
this.__attachShadow();
|
|
6167
6588
|
/**
|
|
6168
6589
|
* Theme of the icon. This setting will be overridden when you set the color
|
|
6169
6590
|
* property
|
|
@@ -6319,13 +6740,13 @@ function cleanValue(input, regex) {
|
|
|
6319
6740
|
return newValue;
|
|
6320
6741
|
}
|
|
6321
6742
|
|
|
6322
|
-
const duetInputCss = "*.sc-duet-input,*.sc-duet-input::after,*.sc-duet-input::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-input-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:bottom}.sc-duet-input-h:last-child,.sc-duet-input-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-input-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-input-h{width:100% !important}.duet-m-0.sc-duet-input-h{margin:0 !important}duet-tooltip.sc-duet-input{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-input{position:relative;top:4px;right:auto}}duet-caption.sc-duet-input:not(:last-of-type){margin-bottom:0}.duet-input-icon.sc-duet-input{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-input .duet-input-icon.sc-duet-input{color:#171c3a}.duet-input-container.sc-duet-input{position:relative;width:100%;height:100%}.duet-input.sc-duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:#00294d !important;cursor:initial !important;background:white !important;background-clip:initial !important;border:1px solid #909599 !important;border-radius:4px !important;box-shadow:initial !important;transition:box-shadow 150ms ease, border 150ms ease !important}.duet-input.is-number.sc-duet-input{padding-right:112px !important}.duet-input.is-date.sc-duet-input{padding-right:64px !important}.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#de2362 !important}.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#e02a0d !important}.has-icon.sc-duet-input .duet-input.sc-duet-input{padding-right:48px !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#747475 !important}.duet-input.sc-duet-input::-ms-clear{display:none}.duet-input.sc-duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input.sc-duet-input::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-webkit-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-input.sc-duet-input::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-moz-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfcfd1}.duet-input.sc-duet-input:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:-ms-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfcfd1}.duet-input[disabled].sc-duet-input{color:#00294d !important;cursor:text !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-input .duet-input[disabled].sc-duet-input{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #909599 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #747475 !important}.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus{border-color:#0077b3 !important;outline:0;box-shadow:0 0 0 1px #0077b3 !important;transition:none}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus{border-color:#171c3a !important;box-shadow:0 0 0 1px #171c3a !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#171c3a}.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#0077b3}.duet-input[type=search].sc-duet-input:not(:placeholder-shown):focus+.duet-input-icon.sc-duet-input{display:none}.duet-input.sc-duet-input:not(:focus):not(:hover):invalid{box-shadow:none !important}.duet-input[type=number].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=number].sc-duet-input::-webkit-outer-spin-button,.duet-input[type=time].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=time].sc-duet-input::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input.sc-duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help.sc-duet-input{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-input-help.sc-duet-input span.sc-duet-input{display:block;margin-top:8px}.duet-theme-turva.sc-duet-input .duet-input-help.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#e02a0d}.duet-label-hidden.sc-duet-input duet-label.sc-duet-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-input-relative.sc-duet-input{position:relative;width:100%}";
|
|
6743
|
+
const duetInputCss = "*.sc-duet-input,*.sc-duet-input::after,*.sc-duet-input::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-input-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:bottom}.sc-duet-input-h:last-child,.sc-duet-input-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-input-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-input-h{width:100% !important}.duet-m-0.sc-duet-input-h{margin:0 !important}duet-tooltip.sc-duet-input{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-input{position:relative;top:4px;right:auto}}duet-caption.sc-duet-input:not(:last-of-type){margin-bottom:0}.duet-input-placeholder.sc-duet-input{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-input-icon.sc-duet-input{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-input .duet-input-icon.sc-duet-input{color:#171c3a}.duet-input-container.sc-duet-input{position:relative;width:100%;height:100%}.duet-input.sc-duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:#00294d !important;cursor:initial !important;background:white !important;background-clip:initial !important;border:1px solid #909599 !important;border-radius:4px !important;box-shadow:initial !important;transition:box-shadow 150ms ease, border 150ms ease !important}.duet-input.is-number.sc-duet-input{padding-right:112px !important}.duet-input.is-date.sc-duet-input{padding-right:64px !important}.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#de2362 !important}.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#e02a0d !important}.has-icon.sc-duet-input .duet-input.sc-duet-input{padding-right:48px !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#747475 !important}.duet-input.sc-duet-input::-ms-clear{display:none}.duet-input.sc-duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input.sc-duet-input::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-webkit-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-input.sc-duet-input::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-moz-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfcfd1}.duet-input.sc-duet-input:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:-ms-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfcfd1}.duet-input[disabled].sc-duet-input{color:#00294d !important;cursor:text !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-input .duet-input[disabled].sc-duet-input{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #909599 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #747475 !important}.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus{border-color:#0077b3 !important;outline:0;box-shadow:0 0 0 1px #0077b3 !important;transition:none}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus{border-color:#171c3a !important;box-shadow:0 0 0 1px #171c3a !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#171c3a}.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#0077b3}.duet-input[type=search].sc-duet-input:not(:placeholder-shown):focus+.duet-input-icon.sc-duet-input{display:none}.duet-input.sc-duet-input:not(:focus):not(:hover):invalid{box-shadow:none !important}.duet-input[type=number].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=number].sc-duet-input::-webkit-outer-spin-button,.duet-input[type=time].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=time].sc-duet-input::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input.sc-duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help.sc-duet-input{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-input-help.sc-duet-input span.sc-duet-input{display:block;margin-top:8px}.duet-theme-turva.sc-duet-input .duet-input-help.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#e02a0d}.duet-label-hidden.sc-duet-input duet-label.sc-duet-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-input-relative.sc-duet-input{position:relative;width:100%}";
|
|
6323
6744
|
|
|
6324
6745
|
const icons = {
|
|
6325
6746
|
search: formSearch,
|
|
6326
6747
|
email: formEmail,
|
|
6327
6748
|
};
|
|
6328
|
-
let DuetInput$1 = class extends
|
|
6749
|
+
let DuetInput$1 = class extends H {
|
|
6329
6750
|
constructor() {
|
|
6330
6751
|
super();
|
|
6331
6752
|
this.__registerHost();
|
|
@@ -6460,7 +6881,7 @@ let DuetInput$1 = class extends HTMLElement {
|
|
|
6460
6881
|
// (in webkit based browsers settings value trigger cursor position and will set it to EndOfText)
|
|
6461
6882
|
restoreCursor();
|
|
6462
6883
|
}
|
|
6463
|
-
this.isCaptionVisible = !!
|
|
6884
|
+
this.isCaptionVisible = !!this.caption;
|
|
6464
6885
|
const emitEvent = () => this.duetChange.emit({
|
|
6465
6886
|
value: this.value,
|
|
6466
6887
|
component: "duet-input",
|
|
@@ -6479,7 +6900,7 @@ let DuetInput$1 = class extends HTMLElement {
|
|
|
6479
6900
|
componentWillLoad() {
|
|
6480
6901
|
inheritGlobalTheme(this);
|
|
6481
6902
|
this.disallowedPatternChange();
|
|
6482
|
-
this.isCaptionVisible = !!
|
|
6903
|
+
this.isCaptionVisible = !!this.caption;
|
|
6483
6904
|
}
|
|
6484
6905
|
/**
|
|
6485
6906
|
* Sets focus on the specified `duet-input`. Use this method instead of the global
|
|
@@ -6514,12 +6935,12 @@ let DuetInput$1 = class extends HTMLElement {
|
|
|
6514
6935
|
"duet-input-top-caption-shown": this.isCaptionVisible,
|
|
6515
6936
|
"has-icon": !!this.icon || (this.type !== "text" && this.type !== "tel" && this.type !== "password"),
|
|
6516
6937
|
"has-error": !!this.error,
|
|
6517
|
-
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId,
|
|
6938
|
+
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h$1("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h$1("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.type, class: {
|
|
6518
6939
|
"duet-input": true,
|
|
6519
6940
|
disabled: this.disabled,
|
|
6520
6941
|
"is-number": this.component === "number",
|
|
6521
6942
|
"is-date": this.component === "date",
|
|
6522
|
-
}, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), h$1("slot", null)), h$1("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span",
|
|
6943
|
+
}, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), h$1("slot", null)), h$1("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", { class: "duet-input-error" }, this.error)))));
|
|
6523
6944
|
}
|
|
6524
6945
|
get element() { return this; }
|
|
6525
6946
|
static get watchers() { return {
|
|
@@ -6531,7 +6952,7 @@ let DuetInput$1 = class extends HTMLElement {
|
|
|
6531
6952
|
|
|
6532
6953
|
const duetLabelCss = "*.sc-duet-label,*.sc-duet-label::after,*.sc-duet-label::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-label-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:12px !important;position:relative;z-index:100;display:inline-flex;width:auto;margin-top:8px !important;line-height:1.25;cursor:default}.duet-p-0.sc-duet-label-h{padding:0 !important}.duet-m-0.sc-duet-label-h{margin:0 !important}.duet-m-0.sc-duet-label-h{margin-bottom:0 !important}.duet-small-margin.sc-duet-label-h{margin-top:8px !important;margin-bottom:4px !important}.duet-has-tooltip.sc-duet-label-h{padding-right:48px}@media (min-width: 48em){.duet-has-tooltip.sc-duet-label-h{padding-right:0}}label.sc-duet-label{margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600 !important;line-height:1.25;color:#00294d;text-align:left;word-break:break-word}label.sc-duet-label span.sc-duet-label{font-size:1rem;font-weight:600 !important;word-break:break-word}.duet-label-small.sc-duet-label-h label.sc-duet-label{font-size:0.875rem}.duet-label-small.sc-duet-label-h label.sc-duet-label span.sc-duet-label{font-size:0.875rem}.duet-theme-turva.sc-duet-label-h label.sc-duet-label{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}";
|
|
6533
6954
|
|
|
6534
|
-
let DuetLabel$1 = class extends
|
|
6955
|
+
let DuetLabel$1 = class extends H {
|
|
6535
6956
|
constructor() {
|
|
6536
6957
|
super();
|
|
6537
6958
|
this.__registerHost();
|
|
@@ -6577,11 +6998,11 @@ function isInternetExplorer() {
|
|
|
6577
6998
|
|
|
6578
6999
|
const duetLayoutCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex:1 0 auto;width:100%}:host(.duet-middle){display:flex}:host(.duet-middle) .duet-layout{padding:36px 28px !important}@media (min-width: 36em){:host(.duet-middle) .duet-layout{padding:48px 36px !important}}@media (min-width: 62em){:host(.duet-middle) .duet-layout{padding:56px !important}}:host(.duet-ie){height:100%}:host(.duet-middle.duet-ie){height:auto}.duet-layout{position:relative;padding:0 16px;margin:48px auto 36px}@media (min-width: 36em){.duet-layout{margin-top:72px}}.duet-layout.duet-layout-has-top{margin-top:0}.duet-layout.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout.duet-center{display:flex;align-items:center;justify-content:center;width:100%;max-width:888px}@media (min-width: 36em){.duet-layout.duet-center{padding:0 48px}}@media (min-width: 48em){.duet-layout.duet-center{padding:0 72px}}@media (min-width: 62em){.duet-layout.duet-center{width:100%}}@media (min-width: 36em){.duet-layout{padding:0 28px}}@media (min-width: 62em){.duet-layout{display:flex;flex-direction:row;padding:0 56px;margin-bottom:48px}}@media (min-width: 76.25em){.duet-layout{max-width:1110px;padding:0}}.duet-main,.duet-sidebar,.duet-layout-top,.duet-layout-bottom{display:block;width:100%}.duet-layout-top{position:relative;display:block;width:100%;margin:72px auto 0}.duet-layout-top.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout-top .duet-layout-top-wrapper{padding:0 20px;margin:0 auto}@media (min-width: 36em){.duet-layout-top .duet-layout-top-wrapper{padding:0 28px}}@media (min-width: 62em){.duet-layout-top .duet-layout-top-wrapper{padding:0 56px}}@media (min-width: 76.25em){.duet-layout-top .duet-layout-top-wrapper{max-width:1110px;padding:0}}.duet-center .duet-layout-top-wrapper{max-width:888px}@media (min-width: 36em){.duet-center .duet-layout-top-wrapper{padding:0 48px}}@media (min-width: 48em){.duet-center .duet-layout-top-wrapper{padding:0 72px}}@media (min-width: 62em){.duet-main{min-width:600px;margin:0 auto}.has-sidebar .duet-main{max-width:734px;margin-right:20px}}@media (min-width: 62em){.duet-sidebar{min-width:256px;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container{width:auto;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container.has-tabs{margin-top:89px}}@media (min-width: 62em){.duet-sidebar-container.sticky{position:sticky}.duet-sidebar-container.sticky.with-links{top:calc(3rem + 20px)}.duet-sidebar-container.sticky.without-links{top:calc(4rem + 20px)}}";
|
|
6579
7000
|
|
|
6580
|
-
let DuetLayout$1 = class extends
|
|
7001
|
+
let DuetLayout$1 = class extends H {
|
|
6581
7002
|
constructor() {
|
|
6582
7003
|
super();
|
|
6583
7004
|
this.__registerHost();
|
|
6584
|
-
|
|
7005
|
+
this.__attachShadow();
|
|
6585
7006
|
/**
|
|
6586
7007
|
* Own Properties.
|
|
6587
7008
|
*/
|
|
@@ -6654,11 +7075,11 @@ let DuetLayout$1 = class extends HTMLElement {
|
|
|
6654
7075
|
|
|
6655
7076
|
const duetLinkCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline}.duet-link{display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;border-radius:4px;transition:300ms ease}.duet-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-link:focus,.duet-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-link.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}.duet-link:hover{color:#004d80;text-decoration:none}.duet-link:hover.duet-theme-turva{color:#940925}.duet-link:active{opacity:0.75;transition:none}.duet-link-external{margin-left:4px}";
|
|
6656
7077
|
|
|
6657
|
-
let DuetLink$1 = class extends
|
|
7078
|
+
let DuetLink$1 = class extends H {
|
|
6658
7079
|
constructor() {
|
|
6659
7080
|
super();
|
|
6660
7081
|
this.__registerHost();
|
|
6661
|
-
|
|
7082
|
+
this.__attachShadow();
|
|
6662
7083
|
/**
|
|
6663
7084
|
* The currently active language. This setting changes the external link
|
|
6664
7085
|
* accessible label to match the chosen language.
|
|
@@ -6719,11 +7140,11 @@ let DuetLink$1 = class extends HTMLElement {
|
|
|
6719
7140
|
|
|
6720
7141
|
const duetListCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-list-component{margin-bottom:16px !important;width:100%}.duet-list-component.duet-p-0{padding:0 !important}.duet-list-component.duet-m-0{margin:0 !important}";
|
|
6721
7142
|
|
|
6722
|
-
let DuetList$1 = class extends
|
|
7143
|
+
let DuetList$1 = class extends H {
|
|
6723
7144
|
constructor() {
|
|
6724
7145
|
super();
|
|
6725
7146
|
this.__registerHost();
|
|
6726
|
-
|
|
7147
|
+
this.__attachShadow();
|
|
6727
7148
|
/**
|
|
6728
7149
|
* Theme of the list.
|
|
6729
7150
|
*/
|
|
@@ -6823,11 +7244,11 @@ let DuetList$1 = class extends HTMLElement {
|
|
|
6823
7244
|
|
|
6824
7245
|
const duetListItemCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:flex;flex-flow:row;width:100%;overflow:visible;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d}@media (max-width: 35.9375em){:host{flex-wrap:wrap}}:host dt,:host dd{-webkit-hyphens:auto;hyphens:auto;text-align:left;word-break:break-all;word-break:break-word;margin-inline-start:0}@media (max-width: 35.9375em){:host dt,:host dd{flex:inherit;flex-basis:100% !important;width:100%;padding-bottom:4px !important}}:host dt{padding:16px !important;font-weight:600}@media (max-width: 35.9375em){:host dt{padding-bottom:4px !important}}.duet-theme-turva :host dt{font-weight:700}:host dd{padding:16px !important;margin-left:auto;text-align:left}@media (max-width: 35.9375em){:host dd{padding-top:0 !important}}:host(:not(.duet-list-striped)) dt{padding:8px !important;padding-left:0 !important}@media (max-width: 35.9375em){:host(:not(.duet-list-striped)) dt{padding-bottom:4px !important}}:host(:not(.duet-list-striped)) dd{padding:8px !important;padding-left:0 !important}@media (max-width: 35.9375em){:host(:not(.duet-list-striped)) dd{padding-top:0 !important}}:host(.duet-theme-turva){font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}:host(.duet-list-striped:nth-child(odd)) dt,:host(.duet-list-striped:nth-child(odd)) dd{background:#f5f8fa}:host(.duet-list-striped.duet-theme-turva:nth-child(odd)) dt,:host(.duet-list-striped.duet-theme-turva:nth-child(odd)) dd{background:#f5f5f7}:host(.duet-list-width-30) dt{flex-basis:33%}:host(.duet-list-width-30) dd{flex-basis:67%}:host(.duet-list-width-50) dt{flex-basis:47%}:host(.duet-list-width-50) dd{flex-basis:53%}:host(.duet-list-width-70) dt{flex-basis:65%}:host(.duet-list-width-70) dd{flex-basis:35%}:host(.duet-p-0) dt,:host(.duet-p-0) dd{padding-top:0 !important;padding-bottom:4px !important}@media (max-width: 35.9375em){:host(.duet-list-mobile-center) dt,:host(.duet-list-mobile-center) dd{text-align:center}}@media (max-width: 61.9375em){:host(.duet-list-breakpoint-large){flex-wrap:wrap}:host(.duet-list-breakpoint-large) dt,:host(.duet-list-breakpoint-large) dd{flex:inherit;flex-basis:100% !important;width:100%;padding-bottom:4px !important}:host(.duet-list-breakpoint-large) dd{padding-top:0 !important}}:host(.duet-list-breakpoint-large.duet-list-striped) dd{padding-bottom:16px !important}@media (max-width: 61.9375em){:host(.duet-list-breakpoint-large.duet-list-mobile-center) dt,:host(.duet-list-breakpoint-large.duet-list-mobile-center) dd{text-align:center !important}}";
|
|
6825
7246
|
|
|
6826
|
-
let DuetListItem$1 = class extends
|
|
7247
|
+
let DuetListItem$1 = class extends H {
|
|
6827
7248
|
constructor() {
|
|
6828
7249
|
super();
|
|
6829
7250
|
this.__registerHost();
|
|
6830
|
-
|
|
7251
|
+
this.__attachShadow();
|
|
6831
7252
|
}
|
|
6832
7253
|
/**
|
|
6833
7254
|
* render() function
|
|
@@ -6868,11 +7289,11 @@ const DefaultLogo = ({ inverse, logoId, language }) => {
|
|
|
6868
7289
|
const { title, path, viewBox } = i18n[language];
|
|
6869
7290
|
return (h$1("svg", { role: "img", xmlns: "http://www.w3.org/2000/svg", fill: logoColor, "aria-labelledby": logoId, viewBox: viewBox }, h$1("title", { id: logoId }, title), h$1("path", { d: path })));
|
|
6870
7291
|
};
|
|
6871
|
-
let DuetLogo$1 = class extends
|
|
7292
|
+
let DuetLogo$1 = class extends H {
|
|
6872
7293
|
constructor() {
|
|
6873
7294
|
super();
|
|
6874
7295
|
this.__registerHost();
|
|
6875
|
-
|
|
7296
|
+
this.__attachShadow();
|
|
6876
7297
|
/**
|
|
6877
7298
|
* Own Properties.
|
|
6878
7299
|
*/
|
|
@@ -6943,11 +7364,11 @@ const duetModalCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margi
|
|
|
6943
7364
|
// iOS has otherwise problems moving the focus from modal back to the original element.
|
|
6944
7365
|
// This issue is similar to what we’ve seen in Duet Date Picker + iOS VoiceOver.
|
|
6945
7366
|
const TRANSITION_MS = 600;
|
|
6946
|
-
let DuetModal$1 = class extends
|
|
7367
|
+
let DuetModal$1 = class extends H {
|
|
6947
7368
|
constructor() {
|
|
6948
7369
|
super();
|
|
6949
7370
|
this.__registerHost();
|
|
6950
|
-
|
|
7371
|
+
this.__attachShadow();
|
|
6951
7372
|
this.duetOpen = createEvent$2(this, "duetOpen", 7);
|
|
6952
7373
|
this.duetClose = createEvent$2(this, "duetClose", 7);
|
|
6953
7374
|
this.duetBeforeClose = createEvent$2(this, "duetBeforeClose", 7);
|
|
@@ -7166,11 +7587,11 @@ let DuetModal$1 = class extends HTMLElement {
|
|
|
7166
7587
|
|
|
7167
7588
|
const duetNotificationCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-notification{display:block;padding:16px;color:#00294d;cursor:pointer;border-bottom:1px solid #e1e3e6;transition:300ms ease}:host(:last-of-type) .duet-notification{border-bottom:0}.duet-notification.duet-theme-turva{color:#171c3a;border-bottom-color:#e4e4e6}.duet-notification.duet-notification-highlight{font-weight:600;background:#f3f9fc}.duet-notification.duet-notification-highlight.duet-theme-turva{background:#fcf3f4}@media (min-width: 62em){.duet-notification:hover{background:#f3f9fc}.duet-notification:hover.duet-theme-turva{background:#fcf3f4}}.duet-notification a{text-decoration:none}.duet-notification a:focus{outline:0}:host(.user-is-tabbing) .duet-notification:focus-within{z-index:1;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-notification:focus-within.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-notification-container{position:relative;display:flex}.duet-notification-badge-container{position:relative;width:16px}.duet-notification-badge{position:absolute;top:6px;left:-2px;width:8px;height:8px;background:#0077b3;border-radius:50%}.duet-theme-turva .duet-notification-badge{background:#c60c30}.duet-notification-content{flex:1}.duet-notification-date{position:absolute;top:2px;right:0;width:96px;font-size:0.75rem;font-weight:600;line-height:1.25;color:#657787;text-align:right;text-transform:uppercase}@media (max-width: 35.9375em){.duet-notification-date{width:auto}}.duet-theme-turva .duet-notification-date{color:#444445}::slotted(duet-heading){padding-right:80px !important}::slotted(duet-paragraph){margin-bottom:2px !important}";
|
|
7168
7589
|
|
|
7169
|
-
let DuetNotification$1 = class extends
|
|
7590
|
+
let DuetNotification$1 = class extends H {
|
|
7170
7591
|
constructor() {
|
|
7171
7592
|
super();
|
|
7172
7593
|
this.__registerHost();
|
|
7173
|
-
|
|
7594
|
+
this.__attachShadow();
|
|
7174
7595
|
/**
|
|
7175
7596
|
* The currently active language.
|
|
7176
7597
|
* Used for announcing unread notifications to screen readers.
|
|
@@ -7241,11 +7662,11 @@ let DuetNotification$1 = class extends HTMLElement {
|
|
|
7241
7662
|
const duetNotificationDrawerCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-drawer{position:relative}@media (min-width: 62em){.duet-drawer{display:inline-block}}.duet-drawer-toggle{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:48px;color:#00294d;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px solid #e1e3e6;border-radius:0;-webkit-appearance:none;appearance:none}@media (min-width: 62em){.duet-drawer-toggle{z-index:200;width:auto;max-width:200px;padding:0 30px 0 12px;overflow:hidden;font-size:0.875rem;line-height:4rem;background-color:white;border:0;border-radius:4px;transition:border 300ms ease}}.duet-theme-turva .duet-drawer-toggle{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}.duet-drawer-toggle:active{opacity:0.75}.duet-drawer-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-drawer-toggle:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-drawer-toggle:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-drawer-toggle:hover{color:#004d80}.duet-theme-turva .duet-drawer-toggle:hover{color:#444445}.duet-drawer-toggle::after{display:none !important}@media (min-width: 62em){.duet-drawer-toggle::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}.duet-theme-turva .duet-drawer-toggle::after{background:#c60c30}}.duet-drawer-toggle[aria-expanded=true],.duet-drawer-toggle[aria-expanded=true]:hover{color:#004d80;border-bottom:1px solid #f5f8fa;border-radius:0}.duet-theme-turva .duet-drawer-toggle[aria-expanded=true],.duet-theme-turva .duet-drawer-toggle[aria-expanded=true]:hover{color:#444445;border-color:#f5f5f7}@media (min-width: 62em){.duet-drawer-toggle[aria-expanded=true],.duet-drawer-toggle[aria-expanded=true]:hover{border:0}.duet-drawer-toggle[aria-expanded=true]::after,.duet-drawer-toggle[aria-expanded=true]:hover::after{left:0;width:100%;transform:translateY(0)}}.duet-drawer-icon{position:relative;display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){.duet-drawer-icon{margin-right:8px}}.duet-drawer-label{line-height:1}.duet-drawer-caret{position:absolute;top:50%;right:20px;display:flex;width:10px;height:10px;margin-left:8px;line-height:normal;pointer-events:none;transition:300ms ease;transform:translateY(-50%);transform-origin:50% 50%}@media (min-width: 62em){.duet-drawer-caret{right:16px;width:7px;height:7px}}.duet-drawer-caret duet-icon{width:10px}.duet-drawer-toggle[aria-expanded=true] .duet-drawer-caret{transform:translateY(-50%) rotate(180deg)}.duet-drawer-badge{position:absolute;top:0;right:0;display:inline-block;width:6px;height:6px;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}.duet-theme-turva .duet-drawer-badge{background:#faa40f}.duet-drawer-content{display:none;background-color:#f5f8fa;border-bottom:1px solid #e1e3e6}.duet-drawer-content:focus{outline:0}.duet-theme-turva .duet-drawer-content{background-color:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){.duet-drawer-content{position:absolute;top:100%;z-index:600;display:block;width:450px;max-height:420px;padding-left:0;overflow-y:auto;visibility:hidden;background-color:white;border:1px solid #e1e3e6;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:300ms ease;transform:scale(0.95) translateZ(0) translateY(-10px);transform-origin:50% 0;scrollbar-width:none}.duet-drawer-content::-webkit-scrollbar{display:none}.duet-theme-turva .duet-drawer-content{background-color:white}.duet-drawer-content.duet-drawer-left{right:0}.duet-drawer-content.duet-drawer-right{left:0}}.duet-drawer-content.duet-drawer-open{display:block}@media (min-width: 62em){.duet-drawer-content.duet-drawer-open{visibility:visible;opacity:1;transform:scale(1) translateZ(0) translateY(0)}}";
|
|
7242
7663
|
|
|
7243
7664
|
const ESC_KEY = 27;
|
|
7244
|
-
let DuetNotificationDrawer$1 = class extends
|
|
7665
|
+
let DuetNotificationDrawer$1 = class extends H {
|
|
7245
7666
|
constructor() {
|
|
7246
7667
|
super();
|
|
7247
7668
|
this.__registerHost();
|
|
7248
|
-
|
|
7669
|
+
this.__attachShadow();
|
|
7249
7670
|
/**
|
|
7250
7671
|
* State() variables
|
|
7251
7672
|
* Inlined decorator, alphabetical order.
|
|
@@ -7405,7 +7826,7 @@ const clamp = (val, min, max) => Math.min(Math.max(val, min), max);
|
|
|
7405
7826
|
|
|
7406
7827
|
const duetNumberInputCss = "*.sc-duet-number-input,*.sc-duet-number-input::after,*.sc-duet-number-input::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-number-input-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;line-height:1.25;text-align:left;vertical-align:bottom}.sc-duet-number-input-h:last-child,.sc-duet-number-input-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-number-input-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-number-input-h{width:100% !important}.duet-m-0.sc-duet-number-input-h{margin:0 !important}.duet-number-container.sc-duet-number-input{position:relative;width:100%}.duet-number-buttons.sc-duet-number-input{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;width:96px;height:calc(100% - 2px)}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input{position:relative;display:inline-flex;align-items:center;justify-content:center;width:50%;height:100%;text-align:center;cursor:pointer;background:transparent;-webkit-appearance:none;appearance:none}.duet-number-buttons.sc-duet-number-input .duet-number-button[aria-disabled=true].sc-duet-number-input,.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:disabled{pointer-events:none}.duet-number-buttons.sc-duet-number-input .duet-number-button[aria-disabled=true].sc-duet-number-input duet-icon.sc-duet-number-input,.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:disabled duet-icon.sc-duet-number-input{opacity:0.4}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:active duet-icon.sc-duet-number-input{transform:translateY(1px)}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:focus{outline:0}.user-is-tabbing.sc-duet-number-input-h .duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:focus{z-index:2;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .user-is-tabbing.sc-duet-number-input-h .duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:focus{box-shadow:0 0 0 2px #171c3a}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:first-of-type{border-left:1px solid #cfd2d4}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:first-of-type::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(207, 210, 212, 0.2) 0%, rgba(207, 210, 212, 0.2) 1px, rgba(207, 210, 212, 0.1) 1px, rgba(207, 210, 212, 0) 100%)}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:last-of-type{border-top-right-radius:4px;border-bottom-right-radius:4px}.duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:last-of-type::before{position:absolute;top:20%;left:0;width:1px;height:60%;content:\"\";background:#e1e3e6}.duet-theme-turva.sc-duet-number-input-h .duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:first-of-type::before{background:linear-gradient(to left, rgba(207, 207, 209, 0.2) 0%, rgba(207, 207, 209, 0.2) 1px, rgba(207, 207, 209, 0.1) 1px, rgba(207, 207, 209, 0) 100%)}.duet-theme-turva.sc-duet-number-input-h .duet-number-buttons.sc-duet-number-input .duet-number-button.sc-duet-number-input:last-of-type::before{background:#e4e4e6}";
|
|
7407
7828
|
|
|
7408
|
-
let DuetNumberInput$1 = class extends
|
|
7829
|
+
let DuetNumberInput$1 = class extends H {
|
|
7409
7830
|
constructor() {
|
|
7410
7831
|
super();
|
|
7411
7832
|
this.__registerHost();
|
|
@@ -7734,15 +8155,15 @@ let DuetNumberInput$1 = class extends HTMLElement {
|
|
|
7734
8155
|
static get style() { return duetNumberInputCss; }
|
|
7735
8156
|
};
|
|
7736
8157
|
|
|
7737
|
-
const duetParagraphCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-paragraph{margin-bottom:16px !important;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}.duet-paragraph.duet-p-0{padding:0 !important}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-paragraph.duet-paragraph-small{font-size:0.875rem}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.intro{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){.duet-paragraph.intro{font-size:1rem}}@media (min-width: 46.2962962963rem){.duet-paragraph.intro{font-size:1.25rem}}.duet-paragraph.intro.duet-m-0{margin:0 !important}::slotted(a){font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;transition:300ms ease}::slotted(a).duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}::slotted(a):hover{color:#004d80;text-decoration:none}::slotted(a):hover.duet-theme-turva{color:#940925}::slotted(a):active{opacity:0.75;transition:none}";
|
|
8158
|
+
const duetParagraphCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-paragraph{margin-bottom:16px !important;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}.duet-paragraph.duet-p-0{padding:0 !important}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-paragraph.duet-paragraph-small{font-size:0.875rem}.duet-paragraph.duet-paragraph-semi-bold{font-weight:600}.duet-paragraph.duet-paragraph-bold{font-weight:700}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.intro{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){.duet-paragraph.intro{font-size:1rem}}@media (min-width: 46.2962962963rem){.duet-paragraph.intro{font-size:1.25rem}}.duet-paragraph.intro.duet-m-0{margin:0 !important}::slotted(a){font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;transition:300ms ease}::slotted(a).duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}::slotted(a):hover{color:#004d80;text-decoration:none}::slotted(a):hover.duet-theme-turva{color:#940925}::slotted(a):active{opacity:0.75;transition:none}";
|
|
7738
8159
|
|
|
7739
|
-
let DuetParagraph$1 = class extends
|
|
8160
|
+
let DuetParagraph$1 = class extends H {
|
|
7740
8161
|
constructor() {
|
|
7741
8162
|
super();
|
|
7742
8163
|
this.__registerHost();
|
|
7743
|
-
|
|
8164
|
+
this.__attachShadow();
|
|
7744
8165
|
/**
|
|
7745
|
-
* Theme of the
|
|
8166
|
+
* Theme of the paragraph.
|
|
7746
8167
|
*/
|
|
7747
8168
|
this.theme = "";
|
|
7748
8169
|
/**
|
|
@@ -7753,6 +8174,10 @@ let DuetParagraph$1 = class extends HTMLElement {
|
|
|
7753
8174
|
* Controls the size of the paragraph.
|
|
7754
8175
|
*/
|
|
7755
8176
|
this.size = "medium";
|
|
8177
|
+
/**
|
|
8178
|
+
* Controls the Font-Weight of the paragraph.
|
|
8179
|
+
*/
|
|
8180
|
+
this.weight = undefined;
|
|
7756
8181
|
/**
|
|
7757
8182
|
* Style variation of the paragraph.
|
|
7758
8183
|
*/
|
|
@@ -7778,18 +8203,82 @@ let DuetParagraph$1 = class extends HTMLElement {
|
|
|
7778
8203
|
return (h$1("p", { class: {
|
|
7779
8204
|
"duet-paragraph": true,
|
|
7780
8205
|
"duet-paragraph-small": this.size === "small",
|
|
8206
|
+
"duet-paragraph-semi-bold": this.weight === "semi-bold",
|
|
8207
|
+
"duet-paragraph-bold": this.weight === "bold",
|
|
7781
8208
|
"duet-m-0": this.margin === "none",
|
|
7782
8209
|
[this.variation]: true,
|
|
7783
8210
|
"duet-theme-turva": this.theme === "turva",
|
|
7784
|
-
}, style: { color } }, h$1("slot", null)));
|
|
8211
|
+
}, style: { color }, part: "duet-paragraph" }, h$1("slot", null)));
|
|
7785
8212
|
}
|
|
7786
8213
|
get element() { return this; }
|
|
7787
8214
|
static get style() { return duetParagraphCss; }
|
|
7788
8215
|
};
|
|
7789
8216
|
|
|
8217
|
+
const duetProgressCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:inherit}.duet-progress{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;min-height:1px;}.duet-progress .progress-bar{position:relative;display:block;width:100%;height:inherit;min-height:1px;background-color:#f3f9fc;border-radius:0;box-shadow:none}.duet-theme-turva .duet-progress .progress-bar{background-color:#fcf3f4}.duet-progress .progress-bar>span{display:block;height:inherit;text-indent:-9999px;background-color:#0077b3;border-radius:0}.duet-theme-turva .duet-progress .progress-bar>span{background-color:#c60c30}.duet-progress progress[value]{display:flex;width:100%;height:inherit;min-height:1px;color:#0077b3;border:0 none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.duet-theme-turva .duet-progress progress[value]{color:#c60c30}.duet-progress progress[value]::-webkit-progress-bar{background-color:#f3f9fc;border-radius:0}.duet-theme-turva .duet-progress progress[value]::-webkit-progress-bar{background-color:#fcf3f4}.duet-progress progress[value]::-webkit-progress-value{background-color:#0077b3;background-size:35px 20px, 100% 100%, 100% 100%;border-radius:0;-webkit-animation:animate-stripes 5s linear infinite;animation:animate-stripes 5s linear infinite}.duet-theme-turva .duet-progress progress[value]::-webkit-progress-value{background-color:#c60c30}.duet-progress progress[value] ::-moz-progress-bar{background-color:#f3f9fc}.duet-theme-turva .duet-progress progress[value] ::-moz-progress-bar{background-color:#fcf3f4}";
|
|
8218
|
+
|
|
8219
|
+
let DuetProgress$1 = class extends H {
|
|
8220
|
+
constructor() {
|
|
8221
|
+
super();
|
|
8222
|
+
this.__registerHost();
|
|
8223
|
+
/**
|
|
8224
|
+
* Own Properties
|
|
8225
|
+
*/
|
|
8226
|
+
this.progressId = createID("DuetProgress");
|
|
8227
|
+
this.progressLabelId = createID("DuetProgressLabel");
|
|
8228
|
+
/**
|
|
8229
|
+
* Defaults for accessibleLabel
|
|
8230
|
+
*/
|
|
8231
|
+
this.accessibleLabelUploadDefaults = {
|
|
8232
|
+
fi: ["lähetys valmis", "lähetys käynnissä"],
|
|
8233
|
+
sv: ["Uppladdningen är klar", "Uppladdning pågår"],
|
|
8234
|
+
en: ["upload completed", "upload in progress"],
|
|
8235
|
+
};
|
|
8236
|
+
/**
|
|
8237
|
+
* Adds accessible label for upload in progress and upload complete states
|
|
8238
|
+
* @default {fi: ["lähetys valmis", "lähetys käynnissä"],sv: ["Uppladdningen är klar", "Uppladdning pågår"], en: ["completed", "in progress"]}
|
|
8239
|
+
*/
|
|
8240
|
+
this.accessibleLabelUpload = getLocaleString(this.accessibleLabelUploadDefaults);
|
|
8241
|
+
/**
|
|
8242
|
+
* Progress of the bar, a value from 0-100
|
|
8243
|
+
*/
|
|
8244
|
+
this.progress = 0;
|
|
8245
|
+
/**
|
|
8246
|
+
* Height of progressbar
|
|
8247
|
+
*/
|
|
8248
|
+
this.height = "10px";
|
|
8249
|
+
/**
|
|
8250
|
+
* Theme of the input.
|
|
8251
|
+
*/
|
|
8252
|
+
this.theme = "";
|
|
8253
|
+
}
|
|
8254
|
+
/**
|
|
8255
|
+
* Component lifecycle events.
|
|
8256
|
+
*/
|
|
8257
|
+
componentWillLoad() {
|
|
8258
|
+
inheritGlobalTheme(this);
|
|
8259
|
+
}
|
|
8260
|
+
/**
|
|
8261
|
+
* render() function
|
|
8262
|
+
* Always the last one in the class.
|
|
8263
|
+
*/
|
|
8264
|
+
render() {
|
|
8265
|
+
return (h$1(Host, null, h$1("div", { "aria-live": this.accessibleLabel ? "polite" : "off", "aria-hidden": this.accessibleLabel ? "false" : "true", "aria-atomic": "true", style: {
|
|
8266
|
+
height: this.height,
|
|
8267
|
+
}, id: this.progressId, class: {
|
|
8268
|
+
"duet-progress": true,
|
|
8269
|
+
"duet-progress-done": this.progress === 100,
|
|
8270
|
+
"duet-progress-start": this.progress === 0,
|
|
8271
|
+
"duet-progress-inprogress": this.progress < 99 && this.progress !== 0,
|
|
8272
|
+
"duet-theme-turva": this.theme === "turva",
|
|
8273
|
+
} }, h$1("duet-visually-hidden", null, h$1("label", { htmlFor: this.progressLabelId }, this.progress !== 0 && (h$1("span", null, this.accessibleLabel, ", ", this.accessibleLabelUpload[this.progress < 99 ? 1 : 0])))), this.caption && (h$1("div", { class: "duet-progress-caption" }, h$1("span", null, this.caption))), h$1("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" }, h$1("div", { class: "progress-bar" }, h$1("span", { style: { width: `${this.progress}%;` } }, "Progress: ", this.progress, "%"))))));
|
|
8274
|
+
}
|
|
8275
|
+
get element() { return this; }
|
|
8276
|
+
static get style() { return duetProgressCss; }
|
|
8277
|
+
};
|
|
8278
|
+
|
|
7790
8279
|
const duetRadioCss = "*.sc-duet-radio,*.sc-duet-radio::after,*.sc-duet-radio::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-radio-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:28px !important;margin-bottom:12px !important;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-radio-h:last-child,.sc-duet-radio-h:last-of-type{margin-right:0 !important}.vertical.sc-duet-radio-h{margin-right:0 !important}.horizontal.sc-duet-radio-h{margin-bottom:0 !important;width:auto}.horizontal.sc-duet-radio-h .duet-label.sc-duet-radio span.sc-duet-radio{max-width:100%}@media (min-width: 48em){.horizontal-responsive.sc-duet-radio-h{margin-right:28px !important;margin-bottom:0 !important;width:auto}.horizontal-responsive.sc-duet-radio-h:last-child,.horizontal-responsive.sc-duet-radio-h:last-of-type{margin-right:0 !important}.horizontal-responsive.sc-duet-radio-h .duet-label.sc-duet-radio span.sc-duet-radio{max-width:100%}}.duet-m-0.sc-duet-radio-h{margin:0 !important}.sc-duet-radio-h:last-child:not(:only-child){margin-right:0 !important;margin-bottom:0 !important}.duet-label.sc-duet-radio{position:relative;z-index:100;display:flex;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;cursor:pointer;background:transparent}.duet-theme-turva.sc-duet-radio .duet-label.sc-duet-radio{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-label.sc-duet-radio span.sc-duet-radio{flex-grow:1;font-size:1rem}.duet-label-hidden.sc-duet-radio .duet-label.sc-duet-radio{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-radio-container.sc-duet-radio{position:relative;width:100%;height:100%}.duet-radio.sc-duet-radio{padding:14px !important;position:absolute;top:0;left:0;z-index:200;width:100%;height:100%;cursor:pointer;opacity:0}.duet-radio.sc-duet-radio+label.sc-duet-radio::before{z-index:100;flex-shrink:0;width:20px;height:20px;margin:2px 10px 1px 1px;content:\"\";background:white;border:1px solid #00294d;border-radius:50%}.duet-theme-turva.sc-duet-radio .duet-radio.sc-duet-radio+label.sc-duet-radio::before{border-color:#171c3a}.duet-radio.sc-duet-radio:focus+label.sc-duet-radio::before{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva.sc-duet-radio .duet-radio.sc-duet-radio:focus+label.sc-duet-radio::before{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-radio.sc-duet-radio:checked+label.sc-duet-radio::after{position:absolute;top:6px;left:5px;z-index:200;flex-shrink:0;width:12px;height:12px;content:\"\";background:#00294d;border-radius:50%}.duet-theme-turva.sc-duet-radio .duet-radio.sc-duet-radio:checked+label.sc-duet-radio::after{background:#171c3a}.duet-radio[disabled].sc-duet-radio{cursor:default}.duet-radio[disabled].sc-duet-radio+label.sc-duet-radio{color:#657787}.duet-theme-turva.sc-duet-radio .duet-radio[disabled].sc-duet-radio+label.sc-duet-radio{color:#747475}.duet-radio[disabled].sc-duet-radio+label.sc-duet-radio::before{border-color:#cfd2d4}.duet-theme-turva.sc-duet-radio .duet-radio[disabled].sc-duet-radio+label.sc-duet-radio::before{border-color:#cfcfd1}.duet-radio[disabled].sc-duet-radio:checked+label.sc-duet-radio::before{border:1px solid #657787}.duet-radio[disabled].sc-duet-radio:checked+label.sc-duet-radio::after{background:#657787}.duet-theme-turva.sc-duet-radio .duet-radio[disabled].sc-duet-radio:checked+label.sc-duet-radio::after{background:#747475;border-color:#747475}";
|
|
7791
8280
|
|
|
7792
|
-
let DuetRadio$1 = class extends
|
|
8281
|
+
let DuetRadio$1 = class extends H {
|
|
7793
8282
|
constructor() {
|
|
7794
8283
|
super();
|
|
7795
8284
|
this.__registerHost();
|
|
@@ -7896,7 +8385,7 @@ let DuetRadio$1 = class extends HTMLElement {
|
|
|
7896
8385
|
|
|
7897
8386
|
const duetRadioGroupCss = "*.sc-duet-radio-group,*.sc-duet-radio-group::after,*.sc-duet-radio-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-radio-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.horizontal.sc-duet-radio-group-h .duet-radio-group.sc-duet-radio-group{display:block}@media (min-width: 48em){.horizontal.sc-duet-radio-group-h .duet-radio-group.sc-duet-radio-group{display:flex}}.horizontal.sc-duet-radio-group-h .duet-radio-group.duet-no-stacking.sc-duet-radio-group{display:flex}.deut-radio-group.sc-duet-radio-group{width:100%}";
|
|
7898
8387
|
|
|
7899
|
-
let DuetRadioGroup$1 = class extends
|
|
8388
|
+
let DuetRadioGroup$1 = class extends H {
|
|
7900
8389
|
constructor() {
|
|
7901
8390
|
super();
|
|
7902
8391
|
this.__registerHost();
|
|
@@ -8054,7 +8543,7 @@ const colors = {
|
|
|
8054
8543
|
inactive: colorGray,
|
|
8055
8544
|
},
|
|
8056
8545
|
};
|
|
8057
|
-
let DuetRangeSlider$1 = class extends
|
|
8546
|
+
let DuetRangeSlider$1 = class extends H {
|
|
8058
8547
|
constructor() {
|
|
8059
8548
|
super();
|
|
8060
8549
|
this.__registerHost();
|
|
@@ -8197,7 +8686,7 @@ let DuetRangeSlider$1 = class extends HTMLElement {
|
|
|
8197
8686
|
static get style() { return duetRangeSliderCss; }
|
|
8198
8687
|
};
|
|
8199
8688
|
|
|
8200
|
-
const duetSelectCss = "@charset \"UTF-8\";*.sc-duet-select,*.sc-duet-select::after,*.sc-duet-select::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-select-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;max-width:100%;vertical-align:bottom}.sc-duet-select-h:last-child,.sc-duet-select-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-select-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-select-h{width:100% !important}}.duet-m-0.sc-duet-select-h{margin:0 !important}duet-tooltip.sc-duet-select{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-select{position:relative;top:4px;right:auto}}.duet-select-container.sc-duet-select{position:relative;width:100%}.duet-select-wrapper.sc-duet-select{position:relative;width:100%;padding:15px 14px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select::after{content:\" \"}.duet-select-wrapper.sc-duet-select select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;width:100%;height:100%;padding:0;margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;cursor:pointer;border:0;outline:none;opacity:0}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#909599;box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#747475;box-shadow:0 0 0 1px #747475}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#171c3a}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#0077b3}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select{cursor:default !important}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#00294d !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:block;width:100%;min-width:8rem;padding:12px 14px !important;padding-right:48px !important;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.5;color:#00294d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#de2362 !important}.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#e02a0d !important}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.duet-select.sc-duet-select svg.sc-duet-select{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select svg.sc-duet-select{color:#171c3a}.duet-select-help.sc-duet-select{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-select-help.sc-duet-select span.sc-duet-select{display:block;margin-top:8px}.duet-theme-turva.sc-duet-select .duet-select-help.sc-duet-select{color:#747475}.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#e02a0d}.duet-label-hidden.sc-duet-select duet-label.sc-duet-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
8689
|
+
const duetSelectCss = "@charset \"UTF-8\";*.sc-duet-select,*.sc-duet-select::after,*.sc-duet-select::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-select-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;max-width:100%;vertical-align:bottom}.sc-duet-select-h:last-child,.sc-duet-select-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-select-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-select-h{width:100% !important}}.duet-m-0.sc-duet-select-h{margin:0 !important}duet-tooltip.sc-duet-select{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-select{position:relative;top:4px;right:auto}}.duet-select-placeholder.sc-duet-select{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-select-container.sc-duet-select{position:relative;width:100%}.duet-select-wrapper.sc-duet-select{position:relative;width:100%;padding:15px 14px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select::after{content:\" \"}.duet-select-wrapper.sc-duet-select select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;width:100%;height:100%;padding:0;margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;cursor:pointer;border:0;outline:none;opacity:0}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#909599;box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#747475;box-shadow:0 0 0 1px #747475}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#171c3a}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#0077b3}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select{cursor:default !important}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#00294d !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:block;width:100%;min-width:8rem;padding:12px 14px !important;padding-right:48px !important;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.5;color:#00294d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#de2362 !important}.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#e02a0d !important}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.duet-select.sc-duet-select svg.sc-duet-select{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select svg.sc-duet-select{color:#171c3a}.duet-select-help.sc-duet-select{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-select-help.sc-duet-select span.sc-duet-select{display:block;margin-top:8px}.duet-theme-turva.sc-duet-select .duet-select-help.sc-duet-select{color:#747475}.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#e02a0d}.duet-label-hidden.sc-duet-select duet-label.sc-duet-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
8201
8690
|
|
|
8202
8691
|
function isOptionGroup(item) {
|
|
8203
8692
|
return "options" in item;
|
|
@@ -8213,7 +8702,7 @@ function findOptionByValue(items, value) {
|
|
|
8213
8702
|
}
|
|
8214
8703
|
}
|
|
8215
8704
|
}
|
|
8216
|
-
let DuetSelect$1 = class extends
|
|
8705
|
+
let DuetSelect$1 = class extends H {
|
|
8217
8706
|
constructor() {
|
|
8218
8707
|
super();
|
|
8219
8708
|
this.__registerHost();
|
|
@@ -8320,14 +8809,14 @@ let DuetSelect$1 = class extends HTMLElement {
|
|
|
8320
8809
|
if (this.nativeSelect) {
|
|
8321
8810
|
this.nativeSelect.value = this.value;
|
|
8322
8811
|
}
|
|
8323
|
-
this.isCaptionVisible = !!
|
|
8812
|
+
this.isCaptionVisible = !!this.caption;
|
|
8324
8813
|
}
|
|
8325
8814
|
/**
|
|
8326
8815
|
* Component lifecycle events.
|
|
8327
8816
|
*/
|
|
8328
8817
|
componentWillLoad() {
|
|
8329
8818
|
inheritGlobalTheme(this);
|
|
8330
|
-
this.isCaptionVisible = !!
|
|
8819
|
+
this.isCaptionVisible = !!this.caption;
|
|
8331
8820
|
this.refresh();
|
|
8332
8821
|
}
|
|
8333
8822
|
/**
|
|
@@ -8370,7 +8859,7 @@ let DuetSelect$1 = class extends HTMLElement {
|
|
|
8370
8859
|
"duet-theme-turva": this.theme === "turva",
|
|
8371
8860
|
"duet-input-top-caption-shown": this.isCaptionVisible,
|
|
8372
8861
|
"has-error": !!this.error,
|
|
8373
|
-
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, size: "small" }, this.placeholder)), h$1("
|
|
8862
|
+
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h$1("div", { class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), h$1("select", { ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required, "aria-describedby": this.accessibleDescribedBy }, this.placeholder && (h$1("option", { disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (h$1("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
|
|
8374
8863
|
return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
|
|
8375
8864
|
}))), h$1("div", { class: "duet-select", "aria-hidden": "true" }, h$1("span", { key: this.value }, this.getSelectedItemLabel()), h$1("svg", { role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h$1("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" })))), h$1("span", { class: "duet-select-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", null, this.error)))));
|
|
8376
8865
|
}
|
|
@@ -8384,11 +8873,11 @@ let DuetSelect$1 = class extends HTMLElement {
|
|
|
8384
8873
|
|
|
8385
8874
|
const duetSpacerCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:12px;min-width:12px;height:12px}@media (min-width: 36em){:host{width:16px;min-width:16px;height:16px}}:host(.duet-spacer-horizontal){display:inline-block;height:100% !important}:host(.duet-spacer-horizontal.xx-small){width:4px;min-width:4px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.xx-small){width:4px;min-width:4px}}:host(.duet-spacer-horizontal.x-small){width:4px;min-width:4px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.x-small){width:8px;min-width:8px}}:host(.duet-spacer-horizontal.small){width:8px;min-width:8px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.small){width:12px;min-width:12px}}:host(.duet-spacer-horizontal.medium){height:100%}:host(.duet-spacer-horizontal.large){width:16px;min-width:16px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.large){width:20px;min-width:20px}}:host(.duet-spacer-horizontal.x-large){width:20px;min-width:20px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.x-large){width:28px;min-width:28px}}:host(.duet-spacer-horizontal.xx-large){width:28px;min-width:28px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.xx-large){width:36px;min-width:36px}}:host(.duet-spacer-horizontal.xxx-large){width:36px;min-width:36px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.xxx-large){width:48px;min-width:48px}}:host(.duet-spacer-horizontal.xxxx-large){width:48px;min-width:48px;height:100%}@media (min-width: 36em){:host(.duet-spacer-horizontal.xxxx-large){width:72px;min-width:72px}}:host(.duet-spacer-vertical.xx-small){width:100%;height:4px;min-height:4px}:host(.duet-spacer-vertical.x-small){width:100%;height:4px;min-height:4px}@media (min-width: 36em){:host(.duet-spacer-vertical.x-small){height:8px;min-height:8px}}:host(.duet-spacer-vertical.small){width:100%;height:8px;min-height:8px}@media (min-width: 36em){:host(.duet-spacer-vertical.small){height:12px;min-height:12px}}:host(.duet-spacer-vertical.medium){width:100%}:host(.duet-spacer-vertical.large){width:100%;height:16px;min-height:16px}@media (min-width: 36em){:host(.duet-spacer-vertical.large){height:20px;min-height:20px}}:host(.duet-spacer-vertical.x-large){width:100%;height:20px;min-height:20px}@media (min-width: 36em){:host(.duet-spacer-vertical.x-large){height:28px;min-height:28px}}:host(.duet-spacer-vertical.xx-large){width:100%;height:28px;min-height:28px}@media (min-width: 36em){:host(.duet-spacer-vertical.xx-large){height:36px;min-height:36px}}:host(.duet-spacer-vertical.xxx-large){width:100%;height:36px;min-height:36px}@media (min-width: 36em){:host(.duet-spacer-vertical.xxx-large){height:48px;min-height:48px}}:host(.duet-spacer-vertical.xxxx-large){width:100%;height:48px;min-height:48px}@media (min-width: 36em){:host(.duet-spacer-vertical.xxxx-large){height:72px;min-height:72px}}:host(.duet-spacer-xx-small){display:none}@media (max-width: 22.5em){:host(.duet-spacer-xx-small){display:block}}:host(.duet-spacer-x-small){display:none}@media (max-width: 35.9375em){:host(.duet-spacer-x-small){display:block}}:host(.duet-spacer-small){display:none}@media (min-width: 36em){:host(.duet-spacer-small){display:block}}:host(.duet-spacer-medium){display:none}@media (min-width: 48em){:host(.duet-spacer-medium){display:block}}:host(.duet-spacer-large){display:none}@media (min-width: 62em){:host(.duet-spacer-large){display:block}}:host(.duet-spacer-x-large){display:none}@media (min-width: 64.0625em){:host(.duet-spacer-x-large){display:block}}:host(.duet-spacer-xx-large){display:none}@media (min-width: 76.25em){:host(.duet-spacer-xx-large){display:block}}";
|
|
8386
8875
|
|
|
8387
|
-
let DuetSpacer$1 = class extends
|
|
8876
|
+
let DuetSpacer$1 = class extends H {
|
|
8388
8877
|
constructor() {
|
|
8389
8878
|
super();
|
|
8390
8879
|
this.__registerHost();
|
|
8391
|
-
|
|
8880
|
+
this.__attachShadow();
|
|
8392
8881
|
/**
|
|
8393
8882
|
* Size variation of the spacer. Can be any of the spacing tokens.
|
|
8394
8883
|
*/
|
|
@@ -8426,11 +8915,11 @@ let DuetSpacer$1 = class extends HTMLElement {
|
|
|
8426
8915
|
|
|
8427
8916
|
const duetSpinnerCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute;top:50%;left:50%;z-index:800;max-width:100%}:host(.duet-theme-default) .duet-spinner{color:#0077b3 !important}:host(.duet-theme-turva) .duet-spinner{color:#c60c30 !important}:host(.duet-custom-color){color:inherit}*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-spinner{-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%;z-index:800;width:24px;height:24px;color:#0077b3;border:2px solid transparent;border-left:2px solid currentColor;border-radius:50%;transform:translateZ(0) translateX(-50%) translateY(-50%);transform-origin:0% 0%;animation:duetRotate 0.6s linear infinite}.duet-spinner::after{position:absolute;top:50%;left:50%;z-index:200;box-sizing:content-box;width:100%;height:100%;overflow:hidden;content:\"\";border:2px solid currentColor;border-radius:50%;opacity:0.3;transform:translateZ(0) translateX(-50%) translateY(-50%);transform-origin:0% 0%}.duet-spinner.medium{width:36px;height:36px;border-width:4px}.duet-spinner.medium::after{border-width:4px}.duet-spinner.large{width:72px;height:72px;border-width:8px}.duet-spinner.large::after{border-width:8px}@keyframes duetRotate{0%{transform:translateZ(0) rotate(0deg) translateX(-50%) translateY(-50%)}100%{transform:translateZ(0) rotate(360deg) translateX(-50%) translateY(-50%)}}";
|
|
8428
8917
|
|
|
8429
|
-
let DuetSpinner$1 = class extends
|
|
8918
|
+
let DuetSpinner$1 = class extends H {
|
|
8430
8919
|
constructor() {
|
|
8431
8920
|
super();
|
|
8432
8921
|
this.__registerHost();
|
|
8433
|
-
|
|
8922
|
+
this.__attachShadow();
|
|
8434
8923
|
/**
|
|
8435
8924
|
* Color of the spinner, as a design token entered in camelCase or kebab-case.
|
|
8436
8925
|
* Example: "color-primary". This property can also be set to "currentColor"
|
|
@@ -8477,7 +8966,7 @@ var actionEdit2={"title":"action-edit-2","tags":"action edit 2 pen pencil","svg"
|
|
|
8477
8966
|
|
|
8478
8967
|
const duetStepCss = "*.sc-duet-step,*.sc-duet-step::after,*.sc-duet-step::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-step-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}.duet-step.sc-duet-step{padding:20px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;background:white;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-step.duet-theme-turva.sc-duet-step{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-step.rounded-top.sc-duet-step{border-top-left-radius:4px;border-top-right-radius:4px}.duet-step.rounded-bottom.sc-duet-step{margin-bottom:20px !important;border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-step.rounded-bottom.sc-duet-step{margin-bottom:0 !important}}@media (min-width: 36em){.duet-step.sc-duet-step{padding:0 20px 0 0 !important;margin:0 !important;font-size:1.25rem;box-shadow:none !important}}.duet-step-heading.sc-duet-step{display:flex;align-items:center;border-radius:4px}.duet-step-heading[aria-disabled=false].sc-duet-step{cursor:pointer}.duet-step-heading.sc-duet-step:focus{outline:0}.duet-step-heading.sc-duet-step:active{opacity:0.75}.user-is-tabbing.sc-duet-step-h .duet-step-heading.sc-duet-step:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.sc-duet-step-h .duet-theme-turva.sc-duet-step .duet-step-heading.sc-duet-step:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.is-complete.sc-duet-step .duet-step-heading.sc-duet-step:hover .duet-step-counter.sc-duet-step,.is-disabled.sc-duet-step .duet-step-heading.sc-duet-step:hover .duet-step-counter.sc-duet-step{background-color:#005f8f}.duet-theme-turva.is-complete.sc-duet-step .duet-step-heading.sc-duet-step:hover .duet-step-counter.sc-duet-step,.duet-theme-turva.is-disabled.sc-duet-step .duet-step-heading.sc-duet-step:hover .duet-step-counter.sc-duet-step{background-color:#9e0a26}.is-current.sc-duet-step .duet-step-heading.sc-duet-step{margin-bottom:20px}@media (min-width: 36em){.duet-step-heading.sc-duet-step{margin-top:8px;margin-bottom:8px !important}.sc-duet-step-h:first-of-type .duet-step-heading.sc-duet-step{margin-top:0}.sc-duet-step-h:last-of-type .duet-step-heading.sc-duet-step{margin-bottom:0 !important}}.duet-step-counter.sc-duet-step{-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;line-height:30px;color:white;text-align:center;border-radius:50%;transition:background-color 300ms ease}@media (min-width: 36em){.duet-step-counter.sc-duet-step{width:40px;height:40px;line-height:40px}}.is-complete.sc-duet-step .duet-step-counter.sc-duet-step,.is-current.sc-duet-step .duet-step-counter.sc-duet-step,.is-disabled.sc-duet-step .duet-step-counter.sc-duet-step{background-color:#0077b3}.duet-theme-turva.is-complete.sc-duet-step .duet-step-counter.sc-duet-step,.duet-theme-turva.is-current.sc-duet-step .duet-step-counter.sc-duet-step,.duet-theme-turva.is-disabled.sc-duet-step .duet-step-counter.sc-duet-step{background-color:#c60c30}.is-incomplete.sc-duet-step .duet-step-counter.sc-duet-step{background-color:#657787}.duet-theme-turva.is-incomplete.sc-duet-step .duet-step-counter.sc-duet-step{background-color:#747475}.duet-step-icon.sc-duet-step{display:flex;align-items:center;justify-content:center;width:16px;height:16px}@media (min-width: 36em){.duet-step-icon.sc-duet-step{width:20px;height:20px}}.duet-step-icon.sc-duet-step duet-icon.sc-duet-step{width:16px;height:16px}@media (min-width: 36em){.duet-step-icon.sc-duet-step duet-icon.sc-duet-step{width:20px;height:20px}}@media (min-width: 36em){.duet-step-content-wrapper.sc-duet-step{min-height:20px;padding-left:40px;margin-left:19px;border-left:2px solid #e1e3e6}.duet-theme-turva.sc-duet-step .duet-step-content-wrapper.sc-duet-step{border-color:#e4e4e6}.sc-duet-step-h:last-of-type .duet-step-content-wrapper.sc-duet-step{min-height:0;border:transparent}}.duet-step-content.sc-duet-step{display:none;padding-bottom:16px}@media (min-width: 36em){.duet-step-content.sc-duet-step{padding-bottom:28px}}.is-current.sc-duet-step .duet-step-content.sc-duet-step{display:block}.duet-step-heading-slot.sc-duet-step{display:none;margin-top:2px}@media (min-width: 48em){.duet-step-heading-slot.sc-duet-step{display:block}}";
|
|
8479
8968
|
|
|
8480
|
-
let DuetStep$1 = class extends
|
|
8969
|
+
let DuetStep$1 = class extends H {
|
|
8481
8970
|
constructor() {
|
|
8482
8971
|
super();
|
|
8483
8972
|
this.__registerHost();
|
|
@@ -8585,11 +9074,11 @@ function groupBy(prop, items) {
|
|
|
8585
9074
|
|
|
8586
9075
|
const duetStepperCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:block;width:100%}:host(.duet-m-0){margin:0 !important}.duet-stepper{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}@media (min-width: 36em){.duet-stepper{padding:28px !important;padding-top:36px !important;padding-bottom:36px !important;background:white;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}}";
|
|
8587
9076
|
|
|
8588
|
-
let DuetStepper$1 = class extends
|
|
9077
|
+
let DuetStepper$1 = class extends H {
|
|
8589
9078
|
constructor() {
|
|
8590
9079
|
super();
|
|
8591
9080
|
this.__registerHost();
|
|
8592
|
-
|
|
9081
|
+
this.__attachShadow();
|
|
8593
9082
|
this.duetStepChange = createEvent$2(this, "duetStepChange", 7);
|
|
8594
9083
|
/**
|
|
8595
9084
|
* Theme of the component.
|
|
@@ -8702,7 +9191,7 @@ let DuetStepper$1 = class extends HTMLElement {
|
|
|
8702
9191
|
|
|
8703
9192
|
const duetTabCss = ".sc-duet-tab-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-tab.sc-duet-tab{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:none;width:100%}.duet-tab.selected.sc-duet-tab{display:block}";
|
|
8704
9193
|
|
|
8705
|
-
let DuetTab$1 = class extends
|
|
9194
|
+
let DuetTab$1 = class extends H {
|
|
8706
9195
|
constructor() {
|
|
8707
9196
|
super();
|
|
8708
9197
|
this.__registerHost();
|
|
@@ -8719,9 +9208,9 @@ let DuetTab$1 = class extends HTMLElement {
|
|
|
8719
9208
|
static get style() { return duetTabCss; }
|
|
8720
9209
|
};
|
|
8721
9210
|
|
|
8722
|
-
const duetTabGroupCss = "*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:block}}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:#e4e4e6 !important}@media (min-width: 36em){duet-select.sc-duet-tab-group{display:none !important}}.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d !important;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-style:solid;border-radius:0;transition:150ms ease}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#e4e4e6}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:#909599}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:#747475 !important}.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:white !important;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:white !important;background-color:#
|
|
9211
|
+
const duetTabGroupCss = "*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:block}}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:#e4e4e6 !important}@media (min-width: 36em){duet-select.sc-duet-tab-group{display:none !important}}.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d !important;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-style:solid;border-radius:0;transition:150ms ease}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#e4e4e6}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:#909599}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:#747475 !important}.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:white !important;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:white !important;background-color:#171c3a;border-color:#171c3a !important}.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;border:0;border-radius:0;transition:none}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#0077b3 !important;background:white;border-bottom:3px solid #0077b3}.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#c60c30 !important;border-bottom-color:#c60c30 !important}.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}";
|
|
8723
9212
|
|
|
8724
|
-
let DuetTabGroup$1 = class extends
|
|
9213
|
+
let DuetTabGroup$1 = class extends H {
|
|
8725
9214
|
constructor() {
|
|
8726
9215
|
super();
|
|
8727
9216
|
this.__registerHost();
|
|
@@ -8920,7 +9409,7 @@ const stickyTopValues = {
|
|
|
8920
9409
|
"with-links": parseFloat(sizeNavigation) * 16,
|
|
8921
9410
|
"without-links": parseFloat(sizeHeader) * 16,
|
|
8922
9411
|
};
|
|
8923
|
-
let DuetTable$1 = class extends
|
|
9412
|
+
let DuetTable$1 = class extends H {
|
|
8924
9413
|
constructor() {
|
|
8925
9414
|
super();
|
|
8926
9415
|
this.__registerHost();
|
|
@@ -9020,7 +9509,7 @@ let DuetTable$1 = class extends HTMLElement {
|
|
|
9020
9509
|
static get style() { return duetTableCss; }
|
|
9021
9510
|
};
|
|
9022
9511
|
|
|
9023
|
-
const duetTextareaCss = "*.sc-duet-textarea,*.sc-duet-textarea::after,*.sc-duet-textarea::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-textarea-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:block;width:100%;max-width:100%;text-align:left}.sc-duet-textarea-h:last-child,.sc-duet-textarea-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-textarea-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-textarea-h{width:100% !important}}.duet-m-0.sc-duet-textarea-h{margin:0 !important}duet-tooltip.sc-duet-textarea{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-textarea{position:relative;top:4px;right:auto}}.duet-textarea-container.sc-duet-textarea{position:relative;width:100%;height:100%}.duet-textarea-container.sc-duet-textarea .duet-input-top-caption.sc-duet-textarea{display:none}.duet-textarea-container.duet-input-top-caption-shown.sc-duet-textarea .duet-input-top-caption.sc-duet-textarea{display:flex !important}.duet-textarea.sc-duet-textarea{padding:15px !important;position:relative;z-index:100;display:block;width:100%;min-width:8rem;min-height:160px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;resize:vertical;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea{border-color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea{border-color:#e02a0d !important}.duet-textarea.sc-duet-textarea::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea::-webkit-input-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-textarea.sc-duet-textarea::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea::-moz-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus::-moz-placeholder{color:#cfcfd1}.duet-textarea.sc-duet-textarea:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:-ms-input-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus:-ms-input-placeholder{color:#cfcfd1}.duet-textarea[disabled].sc-duet-textarea{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important}.duet-theme-turva.sc-duet-textarea .duet-textarea[disabled].sc-duet-textarea{color:#747475 !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important}.duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #747475}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-textarea.sc-duet-textarea:focus{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{box-shadow:0 0 0 1px #e02a0d}.duet-textarea.sc-duet-textarea:not(:focus):not(:hover):invalid{box-shadow:none}.duet-textarea-help.sc-duet-textarea{font-size:0.875rem;line-height:1.25}.duet-textarea-help.sc-duet-textarea span.sc-duet-textarea{display:block;margin-top:8px}.has-error.sc-duet-textarea .duet-textarea-help.sc-duet-textarea{color:#de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea-help.sc-duet-textarea{color:#e02a0d}.duet-label-hidden.sc-duet-textarea duet-label.sc-duet-textarea{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-character-count.sc-duet-textarea{display:block;margin:8px 0 0 auto}";
|
|
9512
|
+
const duetTextareaCss = "*.sc-duet-textarea,*.sc-duet-textarea::after,*.sc-duet-textarea::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-textarea-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:block;width:100%;max-width:100%;text-align:left}.sc-duet-textarea-h:last-child,.sc-duet-textarea-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-textarea-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-textarea-h{width:100% !important}}.duet-m-0.sc-duet-textarea-h{margin:0 !important}duet-tooltip.sc-duet-textarea{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-textarea{position:relative;top:4px;right:auto}}.duet-textarea-container.sc-duet-textarea{position:relative;width:100%;height:100%}.duet-textarea-container.sc-duet-textarea .duet-input-top-caption.sc-duet-textarea{display:none}.duet-textarea-container.duet-input-top-caption-shown.sc-duet-textarea .duet-input-top-caption.sc-duet-textarea{display:flex !important}.duet-textarea-wrapper.sc-duet-textarea{position:relative}.duet-textarea-placeholder.sc-duet-textarea{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-textarea.sc-duet-textarea{padding:15px !important;position:relative;z-index:100;display:block;width:100%;min-width:8rem;min-height:160px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;resize:vertical;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea{border-color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea{border-color:#e02a0d !important}.duet-textarea.sc-duet-textarea::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea::-webkit-input-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-textarea.sc-duet-textarea::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea::-moz-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus::-moz-placeholder{color:#cfcfd1}.duet-textarea.sc-duet-textarea:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:-ms-input-placeholder{color:#747475}.duet-textarea.sc-duet-textarea:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus:-ms-input-placeholder{color:#cfcfd1}.duet-textarea[disabled].sc-duet-textarea{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important}.duet-theme-turva.sc-duet-textarea .duet-textarea[disabled].sc-duet-textarea{color:#747475 !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important}.duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #747475}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-textarea.sc-duet-textarea:focus{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea.sc-duet-textarea:focus{box-shadow:0 0 0 1px #e02a0d}.duet-textarea.sc-duet-textarea:not(:focus):not(:hover):invalid{box-shadow:none}.duet-textarea-help.sc-duet-textarea{font-size:0.875rem;line-height:1.25}.duet-textarea-help.sc-duet-textarea span.sc-duet-textarea{display:block;margin-top:8px}.has-error.sc-duet-textarea .duet-textarea-help.sc-duet-textarea{color:#de2362}.duet-theme-turva.has-error.sc-duet-textarea .duet-textarea-help.sc-duet-textarea{color:#e02a0d}.duet-label-hidden.sc-duet-textarea duet-label.sc-duet-textarea{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-character-count.sc-duet-textarea{display:block;margin:8px 0 0 auto}";
|
|
9024
9513
|
|
|
9025
9514
|
const CharacterCount = ({ value, maxlength, label, theme }) => {
|
|
9026
9515
|
if (maxlength == null) {
|
|
@@ -9031,7 +9520,7 @@ const CharacterCount = ({ value, maxlength, label, theme }) => {
|
|
|
9031
9520
|
const isApproachingLimit = remainder / maxlength <= 0.1; // <= 10% chars remaining
|
|
9032
9521
|
return (h$1("div", { class: "duet-character-count" }, h$1("duet-caption", { margin: "none", theme: theme, size: "small" }, h$1("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", class: "duet-textarea-counter-remaining" }, isApproachingLimit && `${remainder} ${label}`), h$1("span", { "aria-hidden": "true" }, length, "/", maxlength))));
|
|
9033
9522
|
};
|
|
9034
|
-
let DuetTextarea$1 = class extends
|
|
9523
|
+
let DuetTextarea$1 = class extends H {
|
|
9035
9524
|
constructor() {
|
|
9036
9525
|
super();
|
|
9037
9526
|
this.__registerHost();
|
|
@@ -9122,7 +9611,7 @@ let DuetTextarea$1 = class extends HTMLElement {
|
|
|
9122
9611
|
cleanValue(this.nativeInput, this.disallowPatternRegex);
|
|
9123
9612
|
}
|
|
9124
9613
|
this.value = this.nativeInput.value;
|
|
9125
|
-
this.isCaptionVisible = !!
|
|
9614
|
+
this.isCaptionVisible = !!this.caption;
|
|
9126
9615
|
this.duetInput.emit({
|
|
9127
9616
|
originalEvent: ev,
|
|
9128
9617
|
value: this.value,
|
|
@@ -9161,7 +9650,7 @@ let DuetTextarea$1 = class extends HTMLElement {
|
|
|
9161
9650
|
componentWillLoad() {
|
|
9162
9651
|
inheritGlobalTheme(this);
|
|
9163
9652
|
this.disallowedPatternChange();
|
|
9164
|
-
this.isCaptionVisible = !!
|
|
9653
|
+
this.isCaptionVisible = !!this.caption;
|
|
9165
9654
|
if (this.counter && this.maxlength == null) {
|
|
9166
9655
|
console.warn("[DUET WARNING]: counter will only take effect if maxlength is set");
|
|
9167
9656
|
}
|
|
@@ -9195,7 +9684,7 @@ let DuetTextarea$1 = class extends HTMLElement {
|
|
|
9195
9684
|
"duet-label-hidden": this.labelHidden,
|
|
9196
9685
|
"duet-input-top-caption-shown": this.isCaptionVisible,
|
|
9197
9686
|
"has-error": !!this.error,
|
|
9198
|
-
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, size: "small" }, this.placeholder)), h$1("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier }), h$1("duet-grid", { alignment: "stretch" }, h$1("duet-grid-item", { margin: "none", fill: true }, h$1("div", { class: "duet-textarea-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", null, this.error))), h$1("duet-grid-item", { margin: "none", class: "duet-character-count-caption" }, this.counter && (h$1(CharacterCount, { theme: this.theme, value: this.value, maxlength: this.maxlength, label: this.counterLabel })))))));
|
|
9687
|
+
} }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h$1("div", { class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), h$1("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), h$1("duet-grid", { alignment: "stretch" }, h$1("duet-grid-item", { margin: "none", fill: true }, h$1("div", { class: "duet-textarea-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", null, this.error))), h$1("duet-grid-item", { margin: "none", class: "duet-character-count-caption" }, this.counter && (h$1(CharacterCount, { theme: this.theme, value: this.value, maxlength: this.maxlength, label: this.counterLabel })))))));
|
|
9199
9688
|
}
|
|
9200
9689
|
get element() { return this; }
|
|
9201
9690
|
static get watchers() { return {
|
|
@@ -9206,7 +9695,7 @@ let DuetTextarea$1 = class extends HTMLElement {
|
|
|
9206
9695
|
|
|
9207
9696
|
const duetToggleCss = "*.sc-duet-toggle,*.sc-duet-toggle::after,*.sc-duet-toggle::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-toggle-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;-webkit-user-select:none;user-select:none;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-toggle-h:last-child,.sc-duet-toggle-h:last-of-type{margin-right:0 !important}.duet-m-0.sc-duet-toggle-h{margin:0 !important}duet-label.sc-duet-toggle{display:block !important;width:100% !important}.duet-switch.sc-duet-toggle{position:relative;display:block;width:48px;height:28px}.duet-switch.sc-duet-toggle input.sc-duet-toggle{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-switch.sc-duet-toggle input.sc-duet-toggle:checked+.duet-slider.sc-duet-toggle{background-color:#0077b3;box-shadow:none}.duet-theme-turva.sc-duet-toggle .duet-switch.sc-duet-toggle input.sc-duet-toggle:checked+.duet-slider.sc-duet-toggle{background-color:#c60c30}.duet-switch.sc-duet-toggle input.sc-duet-toggle:checked+.duet-slider.sc-duet-toggle::before{background-color:white;box-shadow:none;transform:translateX(20px)}.duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled+.duet-slider.sc-duet-toggle{cursor:default}.duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:not(:checked)+.duet-slider.sc-duet-toggle{box-shadow:inset 0 0 0 1px #cfd2d4}.duet-theme-turva.sc-duet-toggle .duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:not(:checked)+.duet-slider.sc-duet-toggle{box-shadow:inset 0 0 0 1px #cfcfd1}.duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:not(:checked)+.duet-slider.sc-duet-toggle::before{background:#cfd2d4}.duet-theme-turva.sc-duet-toggle .duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:not(:checked)+.duet-slider.sc-duet-toggle::before{background:#cfcfd1}.duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:checked+.duet-slider.sc-duet-toggle{background:#cfd2d4}.duet-theme-turva.sc-duet-toggle .duet-switch.sc-duet-toggle input.sc-duet-toggle:disabled:checked+.duet-slider.sc-duet-toggle{background:#cfcfd1}.user-is-tabbing.sc-duet-toggle-h .duet-switch.sc-duet-toggle input.sc-duet-toggle:focus+.duet-slider.sc-duet-toggle{box-shadow:0 0 0 1px white, 0 0 0 3px rgba(0, 119, 179, 0.75)}.user-is-tabbing.sc-duet-toggle-h .duet-theme-turva.sc-duet-toggle .duet-switch.sc-duet-toggle input.sc-duet-toggle:focus+.duet-slider.sc-duet-toggle{box-shadow:0 0 0 1px white, 0 0 0 3px #171c3a}.duet-slider.sc-duet-toggle{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background-color:white;border-radius:20px;box-shadow:inset 0 0 0 1px #00294d;transition:background-color 300ms ease}.duet-theme-turva.sc-duet-toggle .duet-slider.sc-duet-toggle{box-shadow:inset 0 0 0 1px #171c3a}.duet-slider.sc-duet-toggle::before{position:absolute;bottom:4px;left:4px;width:20px;height:20px;content:\"\";background-color:#00294d;border-radius:50%;transition:300ms ease}.duet-theme-turva.sc-duet-toggle .duet-slider.sc-duet-toggle::before{background-color:#171c3a}";
|
|
9208
9697
|
|
|
9209
|
-
let DuetToggle$1 = class extends
|
|
9698
|
+
let DuetToggle$1 = class extends H {
|
|
9210
9699
|
constructor() {
|
|
9211
9700
|
super();
|
|
9212
9701
|
this.__registerHost();
|
|
@@ -9295,11 +9784,11 @@ let DuetToggle$1 = class extends HTMLElement {
|
|
|
9295
9784
|
|
|
9296
9785
|
const duetTooltipCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;z-index:200;display:inline-flex;width:auto;margin-top:-16px !important;margin-left:-3px !important;-webkit-tap-highlight-color:transparent}.duet-tooltip{position:absolute;right:-21px;bottom:100%;z-index:950;display:block;width:282px;min-height:48px;max-height:340px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#00294d;visibility:hidden;background:white;border:1px solid #e1e3e6;border-radius:4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.07);opacity:0;transition:300ms ease;transform:scale(0.9) translateZ(0) translateY(20px);transform-origin:100% 100%}.duet-tooltip.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6;box-shadow:0 2px 10px 0 rgba(117, 117, 117, 0.13)}.duet-tooltip::after{position:absolute;right:22px;bottom:-20px;z-index:200;width:0;height:0;content:\"\";border:10px solid transparent;border-top:10px solid white}.duet-tooltip::before{position:absolute;right:21px;bottom:-22px;z-index:100;width:0;height:0;content:\"\";border:11px solid transparent;border-top:11px solid #e1e3e6}.duet-theme-turva .duet-tooltip::before{border-top:11px solid #e4e4e6}.duet-tooltip.duet-tooltip-down{top:100%;bottom:auto;transform:scale(0.9) translateZ(0) translateY(-20px);transform-origin:100% 0}.duet-tooltip.duet-tooltip-down::after{top:-20px;bottom:auto;border:10px solid transparent;border-bottom:10px solid white}.duet-tooltip.duet-tooltip-down::before{top:-22px;bottom:auto;border:11px solid transparent;border-bottom:11px solid #e1e3e6}.duet-theme-turva .duet-tooltip.duet-tooltip-down::before{border-bottom:11px solid #e4e4e6}.duet-tooltip.duet-tooltip-left{right:-21px !important;transform-origin:100% 100% !important}.duet-tooltip.duet-tooltip-left::after{right:22px !important;transform:none !important}.duet-tooltip.duet-tooltip-left::before{right:21px !important;transform:none !important}.duet-tooltip.duet-tooltip-right{right:auto !important;left:-9px !important;transform-origin:100% 100% !important}.duet-tooltip.duet-tooltip-right::after{right:auto !important;left:22px !important;transform:none !important}.duet-tooltip.duet-tooltip-right::before{right:auto !important;left:21px !important;transform:none !important}.duet-tooltip.duet-tooltip-has-label{right:auto !important;left:0;width:282px !important;transform-origin:0 0 !important}.duet-tooltip.duet-tooltip-has-label::after{right:auto !important;left:1px !important;transform:none !important}.duet-tooltip.duet-tooltip-has-label::before{right:auto !important;left:0 !important;transform:none !important}.duet-tooltip.duet-tooltip-active{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(-8px)}.duet-tooltip.duet-tooltip-active.duet-tooltip-down{transform:scale(1.0001) translateZ(0) translateY(8px)}.duet-tooltip-button{z-index:100;display:inline-block;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 !important;margin-right:-12px;line-height:normal !important;color:#0077b3;white-space:nowrap;cursor:pointer;background:transparent !important;border-radius:4px}.duet-tooltip-button.duet-theme-turva{color:#c60c30}.duet-tooltip-button:hover{color:#004d80}.duet-tooltip-button:hover.duet-theme-turva{color:#940925}.duet-tooltip-button:focus{background:transparent !important;outline:0}:host(.user-is-tabbing) .duet-tooltip-button:focus{background:transparent !important;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}:host(.user-is-tabbing) .duet-tooltip-button.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}.duet-tooltip-button svg{width:20px;height:20px;pointer-events:none}.duet-tooltip-button-has-label{margin-right:0}.duet-tooltip-scrollable{padding:20px !important;width:100%;max-height:250px;padding-right:25px !important;overflow-y:auto;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;-webkit-overflow-scrolling:touch}.duet-tooltip-scrollable:focus{outline:none}:host(.user-is-tabbing) .duet-tooltip-scrollable:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-tooltip-scrollable:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-tooltip-scrollable::-webkit-scrollbar{width:4px}.duet-tooltip-scrollable::-webkit-scrollbar-track{border-radius:4px}.duet-tooltip-scrollable::-webkit-scrollbar-thumb{background:#e1e3e6;border-radius:4px}.duet-theme-turva .duet-tooltip-scrollable::-webkit-scrollbar-thumb{background:#e4e4e6}.duet-tooltip-label{position:relative;z-index:100;display:inline-block;max-width:calc(100% - 30px);margin-left:12px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;text-align:left;white-space:normal;vertical-align:top}.duet-theme-turva .duet-tooltip-label{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-tooltip-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;min-height:0 !important;padding:0 !important;margin:0 !important;line-height:normal;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;-webkit-appearance:none;appearance:none}.duet-tooltip-close:focus{outline:none;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .duet-tooltip-close:focus{color:#171c3a;box-shadow:0 0 0 2px #171c3a}@media (min-width: 48em){.duet-tooltip.duet-mq-medium{right:-148px;width:320px;transform-origin:50% 100%}.duet-tooltip.duet-mq-medium::after{right:50%;transform:translateX(50%)}.duet-tooltip.duet-mq-medium::before{right:50%;transform:translateX(50%)}.duet-tooltip.duet-mq-medium.duet-tooltip-down{transform-origin:50% 0}}@media (min-width: 62em){.duet-tooltip.duet-mq-large{right:-148px;width:320px;transform-origin:50% 100%}.duet-tooltip.duet-mq-large::after{right:50%;transform:translateX(50%)}.duet-tooltip.duet-mq-large::before{right:50%;transform:translateX(50%)}.duet-tooltip.duet-mq-large.duet-tooltip-down{transform-origin:50% 0}}";
|
|
9297
9786
|
|
|
9298
|
-
let DuetTooltip$1 = class extends
|
|
9787
|
+
let DuetTooltip$1 = class extends H {
|
|
9299
9788
|
constructor() {
|
|
9300
9789
|
super();
|
|
9301
9790
|
this.__registerHost();
|
|
9302
|
-
|
|
9791
|
+
this.__attachShadow();
|
|
9303
9792
|
/**
|
|
9304
9793
|
* Own Properties.
|
|
9305
9794
|
*/
|
|
@@ -9522,11 +10011,11 @@ let DuetTooltip$1 = class extends HTMLElement {
|
|
|
9522
10011
|
const duetTrayCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-tray{position:fixed;top:4rem;right:0;left:0;z-index:399;display:flex;flex-direction:column;max-height:calc(100% - 8rem);padding:16px 20px 16px 24px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;visibility:hidden;background:#f3f9fc;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);opacity:0;transition:opacity 600ms ease, visibility 600ms ease, transform 600ms ease;transform:translateY(-4rem)}@media (min-width: 62em){.duet-tray{padding:16px 36px}}@media (min-width: 106.25em){.duet-tray{padding:16px 52px 16px 60px}}.duet-tray:focus{outline:0}:host(.user-is-tabbing) .duet-tray:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-tray.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-tray.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;background:#f5f5f7;border-color:#e4e4e6}.duet-tray.duet-tray-is-active{visibility:visible;opacity:1;transform:translateY(0)}.duet-tray.duet-tray-is-hidden{visibility:hidden;opacity:0;transform:translateY(-4rem)}@media (min-width: 62em){.duet-tray.duet-tray-is-responsive{display:none !important}}.duet-tray.duet-tray-is-expandable{padding-right:66px}@media (min-width: 62em){.duet-tray.duet-tray-is-expandable{padding-right:78px}}@media (min-width: 106.25em){.duet-tray.duet-tray-is-expandable{padding-right:94px}}.duet-tray-expandable{position:relative;z-index:100;width:calc(100% + 46px);max-height:0;overflow-y:auto;visibility:hidden;opacity:0;transition:opacity 600ms ease, visibility 600ms ease, max-height 600ms ease;scrollbar-width:none}.duet-tray-expandable::-webkit-scrollbar{display:none}.duet-tray-expandable.active{max-height:500px;visibility:visible;opacity:1}.duet-tray-expandable-content{width:100%;margin-top:16px;border-top:1px solid #e1e3e6}.duet-theme-turva .duet-tray-expandable-content{border-color:#e4e4e6}.duet-tray-button{-webkit-user-select:none;user-select:none;padding:20px !important;position:absolute;top:-2px;right:0;z-index:200;color:#00294d;text-align:center;cursor:pointer;border-radius:4px;transition:transform 300ms ease;-webkit-tap-highlight-color:transparent}@media (min-width: 62em){.duet-tray-button{margin-right:16px}}@media (min-width: 106.25em){.duet-tray-button{margin-right:36px}}.duet-theme-turva .duet-tray-button{color:#171c3a}.duet-tray-button.duet-tray-is-expanded{transform:rotate(-180deg)}.duet-tray-button:focus{outline:0}:host(.user-is-tabbing) .duet-tray-button:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-tray-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-tray-button:active{box-shadow:none;opacity:0.75}";
|
|
9523
10012
|
|
|
9524
10013
|
const topOffset = parseFloat(sizeHeader) * 2 * 16; // convert rem -> px
|
|
9525
|
-
let DuetTray$1 = class extends
|
|
10014
|
+
let DuetTray$1 = class extends H {
|
|
9526
10015
|
constructor() {
|
|
9527
10016
|
super();
|
|
9528
10017
|
this.__registerHost();
|
|
9529
|
-
|
|
10018
|
+
this.__attachShadow();
|
|
9530
10019
|
/**
|
|
9531
10020
|
* Own Properties.
|
|
9532
10021
|
*/
|
|
@@ -9644,13 +10133,1205 @@ let DuetTray$1 = class extends HTMLElement {
|
|
|
9644
10133
|
static get style() { return duetTrayCss; }
|
|
9645
10134
|
};
|
|
9646
10135
|
|
|
10136
|
+
const errorCodes = [
|
|
10137
|
+
{
|
|
10138
|
+
type: "default",
|
|
10139
|
+
system_message: "unknown error",
|
|
10140
|
+
message: {
|
|
10141
|
+
fi: "Tapahtui tuntematon virhe, ole hyvä ja yritä uudelleen.",
|
|
10142
|
+
sv: "Ett okänt fel uppstod, försök igen.",
|
|
10143
|
+
en: "An unknown error occured, please try again."
|
|
10144
|
+
}
|
|
10145
|
+
},
|
|
10146
|
+
{
|
|
10147
|
+
type: "400",
|
|
10148
|
+
system_message: "Bad Request: The server could not understand the request due to invalid syntax.",
|
|
10149
|
+
message: {
|
|
10150
|
+
fi: "Tiedostoa ei hyväksytty.",
|
|
10151
|
+
sv: "Servern avvisade din fil.",
|
|
10152
|
+
en: "The server rejected your file."
|
|
10153
|
+
}
|
|
10154
|
+
},
|
|
10155
|
+
{
|
|
10156
|
+
type: "401",
|
|
10157
|
+
system_message: "Not Authenticated: The client must authenticate itself to get the requested response...",
|
|
10158
|
+
message: {
|
|
10159
|
+
fi: "Vain kirjautunut käyttäjä voi lähettää tiedostoja.",
|
|
10160
|
+
sv: "Du måste vara inloggad för att ladda upp filer.",
|
|
10161
|
+
en: "You need to be logged in to upload files."
|
|
10162
|
+
}
|
|
10163
|
+
},
|
|
10164
|
+
{
|
|
10165
|
+
type: "403",
|
|
10166
|
+
system_message: "No Access: The client does not have access rights to the content.",
|
|
10167
|
+
message: {
|
|
10168
|
+
fi: "Ei oikeuksia lähettää tiedostoja.",
|
|
10169
|
+
sv: "Du har inte rätt åtkomsträttigheter för att ladda upp filer.",
|
|
10170
|
+
en: "You do not have the correct access rights to upload files."
|
|
10171
|
+
}
|
|
10172
|
+
},
|
|
10173
|
+
{
|
|
10174
|
+
type: "413",
|
|
10175
|
+
system_message: "Payload too large",
|
|
10176
|
+
message: {
|
|
10177
|
+
fi: "Tiedosto oli liian vastaanotettavaksi.",
|
|
10178
|
+
sv: "Filen var för stor för servern att hantera.",
|
|
10179
|
+
en: "The file was to large for the server to handle."
|
|
10180
|
+
}
|
|
10181
|
+
},
|
|
10182
|
+
{
|
|
10183
|
+
type: "415",
|
|
10184
|
+
system_message: "Unsupported media type",
|
|
10185
|
+
message: {
|
|
10186
|
+
fi: "Tiedoston tyyppi oli väärä.",
|
|
10187
|
+
sv: "Servern avvisade filen eftersom den hade fel typ.",
|
|
10188
|
+
en: "The server rejected the file because it had the wrong type."
|
|
10189
|
+
}
|
|
10190
|
+
},
|
|
10191
|
+
{
|
|
10192
|
+
type: "429",
|
|
10193
|
+
system_message: "Too many request from same address",
|
|
10194
|
+
message: {
|
|
10195
|
+
fi: "Liian monta yritystä, ole hyvä ja yritä myöhemmin uudelleen.",
|
|
10196
|
+
sv: "Servern har fått många förfrågningar från dig, försök igen senare.",
|
|
10197
|
+
en: "The server has received to many request from you, please try again later."
|
|
10198
|
+
}
|
|
10199
|
+
},
|
|
10200
|
+
{
|
|
10201
|
+
type: "500",
|
|
10202
|
+
system_message: "Internal Server Error",
|
|
10203
|
+
message: {
|
|
10204
|
+
fi: "Palvelin ilmoitti tuntemattomasta virheestä ja lataus epäonnistui.",
|
|
10205
|
+
sv: "Servern rapporterade ett okänt fel och uppladdningen misslyckades.",
|
|
10206
|
+
en: "The server reported an unknown error and the upload failed."
|
|
10207
|
+
}
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
type: "duet-upload-100",
|
|
10211
|
+
system_message: "File extension not allowed",
|
|
10212
|
+
message: {
|
|
10213
|
+
fi: "Tiedoston tyyppi ei ole sallittu.",
|
|
10214
|
+
sv: "Du kan inte ladda upp filer av den type.",
|
|
10215
|
+
en: "You cannot upload files with that extension."
|
|
10216
|
+
}
|
|
10217
|
+
},
|
|
10218
|
+
{
|
|
10219
|
+
type: "duet-upload-001",
|
|
10220
|
+
system_message: "File transfer failed",
|
|
10221
|
+
message: {
|
|
10222
|
+
fi: "Tiedoston lähetys keskeytyi, ole hyvä ja yritä uudelleen.",
|
|
10223
|
+
sv: "Din anslutning till servern avbröts, försök igen.",
|
|
10224
|
+
en: "Your connection to the server was interrupted, try again."
|
|
10225
|
+
}
|
|
10226
|
+
},
|
|
10227
|
+
{
|
|
10228
|
+
type: "duet-upload-101",
|
|
10229
|
+
system_message: "File mimetype not allowed",
|
|
10230
|
+
message: {
|
|
10231
|
+
fi: "Tiedoston tyyppi ei ole sallittu.",
|
|
10232
|
+
sv: "Du kan inte ladda upp filer av den typ.",
|
|
10233
|
+
en: "You cannot upload files of that type."
|
|
10234
|
+
}
|
|
10235
|
+
},
|
|
10236
|
+
{
|
|
10237
|
+
type: "duet-upload-201",
|
|
10238
|
+
system_message: "File is too large",
|
|
10239
|
+
message: {
|
|
10240
|
+
fi: "Tiedosto on liian iso.",
|
|
10241
|
+
sv: "Filen är större än tillåtet.",
|
|
10242
|
+
en: "The file is larger than permitted."
|
|
10243
|
+
}
|
|
10244
|
+
},
|
|
10245
|
+
{
|
|
10246
|
+
type: "duet-upload-202",
|
|
10247
|
+
system_message: "The combined size of all files is too large",
|
|
10248
|
+
message: {
|
|
10249
|
+
fi: "Tiedostojen yhteenlaskettu koko on liian iso.",
|
|
10250
|
+
sv: "Du har nått den maximala kombinerade filstorleken.",
|
|
10251
|
+
en: "You have reached the maximum combined filesize."
|
|
10252
|
+
}
|
|
10253
|
+
},
|
|
10254
|
+
{
|
|
10255
|
+
type: "duet-upload-301",
|
|
10256
|
+
system_message: "The maximum file limit has been reached",
|
|
10257
|
+
message: {
|
|
10258
|
+
fi: "Liitteiden maksimimäärä saavutettu.",
|
|
10259
|
+
sv: "Maximalt antal bilagor har uppnåtts.",
|
|
10260
|
+
en: "Maximum number of attachments reached."
|
|
10261
|
+
}
|
|
10262
|
+
}
|
|
10263
|
+
];
|
|
10264
|
+
|
|
10265
|
+
const getError = (code) => {
|
|
10266
|
+
let error = {
|
|
10267
|
+
type: undefined,
|
|
10268
|
+
system_message: undefined,
|
|
10269
|
+
message: undefined,
|
|
10270
|
+
};
|
|
10271
|
+
error = errorCodes.filter(errorItem => {
|
|
10272
|
+
// the == is intentional we may be comparing numbers to strings - and that is ok here
|
|
10273
|
+
return errorItem.type == code;
|
|
10274
|
+
})[0];
|
|
10275
|
+
if (!error) {
|
|
10276
|
+
error = errorCodes.filter(errorItem => {
|
|
10277
|
+
return errorItem.type === "default";
|
|
10278
|
+
})[0];
|
|
10279
|
+
}
|
|
10280
|
+
return error;
|
|
10281
|
+
};
|
|
10282
|
+
const getI18nError = (errorCode) => {
|
|
10283
|
+
const errorFromJson = getError(errorCode);
|
|
10284
|
+
const i18String = getLocaleString(errorFromJson.message);
|
|
10285
|
+
if (i18String === "" || !i18String) {
|
|
10286
|
+
return errorFromJson.system_message;
|
|
10287
|
+
}
|
|
10288
|
+
else {
|
|
10289
|
+
return i18String;
|
|
10290
|
+
}
|
|
10291
|
+
};
|
|
10292
|
+
|
|
10293
|
+
const ErrorItem = ({ data }) => {
|
|
10294
|
+
const { item, error } = data;
|
|
10295
|
+
const { name } = item;
|
|
10296
|
+
const { type } = error;
|
|
10297
|
+
return (h("span", { class: "duet-upload-item-error", role: "status" },
|
|
10298
|
+
h("duet-paragraph", { class: "duet-upload-item-name", color: "danger", margin: "none", weight: "semi-bold" },
|
|
10299
|
+
h("duet-icon", { margin: "none", size: "xx-small", name: "messaging-attachment" }),
|
|
10300
|
+
" ",
|
|
10301
|
+
name),
|
|
10302
|
+
h("duet-paragraph", { class: "duet-upload-item-error-label", size: "small", margin: "none", color: "danger" }, getI18nError(type))));
|
|
10303
|
+
};
|
|
10304
|
+
|
|
10305
|
+
const ProgressItem = ({ progress, name }) => (h("span", null,
|
|
10306
|
+
h("duet-paragraph", { color: "secondary", margin: "none", size: "small" }, name),
|
|
10307
|
+
h("duet-spacer", { size: "xx-small" }),
|
|
10308
|
+
h("duet-progress", { progress: Math.ceil(progress), "aria-hidden": true })));
|
|
10309
|
+
|
|
10310
|
+
const formatBytes = (bytes, decimals = 2) => {
|
|
10311
|
+
if (bytes === 0) {
|
|
10312
|
+
return "0 Bytes";
|
|
10313
|
+
}
|
|
10314
|
+
const k = 1024;
|
|
10315
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
10316
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
10317
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
10318
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
|
|
10319
|
+
};
|
|
10320
|
+
|
|
10321
|
+
const SuccessItem = ({ data, showLinks }) => {
|
|
10322
|
+
const { item, size, uploaded, url, meta } = data;
|
|
10323
|
+
const { name } = item;
|
|
10324
|
+
const ContentName = (h("span", { class: "duet-upload-item-name" },
|
|
10325
|
+
h("duet-icon", { margin: "none", size: "xx-small", name: "messaging-attachment" }),
|
|
10326
|
+
h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
|
|
10327
|
+
name));
|
|
10328
|
+
const SizeText = (h("span", { class: "duet-upload-item-size", style: { fontSize: "14px", fontWeight: "400" } },
|
|
10329
|
+
"(",
|
|
10330
|
+
formatBytes(size),
|
|
10331
|
+
")"));
|
|
10332
|
+
const FilenameLine = uploaded && url && showLinks ? (h("duet-paragraph", { color: "secondary", margin: "none", weight: "semi-bold" },
|
|
10333
|
+
h("duet-link", { url: url, external: true }, ContentName),
|
|
10334
|
+
h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
|
|
10335
|
+
SizeText)) : (h("duet-paragraph", { color: "secondary", margin: "none", weight: "semi-bold" },
|
|
10336
|
+
ContentName,
|
|
10337
|
+
h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
|
|
10338
|
+
SizeText));
|
|
10339
|
+
const Badges = meta && meta.badges ? (h("span", null,
|
|
10340
|
+
h("duet-spacer", { size: "xx-small" }),
|
|
10341
|
+
meta.badges.map(badgeText => (h("duet-badge", { color: "primary" }, badgeText))))) : undefined;
|
|
10342
|
+
return (h("span", { class: "duet-upload-item-success" },
|
|
10343
|
+
h("div", null, FilenameLine),
|
|
10344
|
+
Badges));
|
|
10345
|
+
};
|
|
10346
|
+
|
|
10347
|
+
const validateFileExtension = (name, allowedExtensions) => {
|
|
10348
|
+
if (!allowedExtensions) {
|
|
10349
|
+
return true;
|
|
10350
|
+
}
|
|
10351
|
+
const ext = name.split(".");
|
|
10352
|
+
const validExtension = allowedExtensions.split(",");
|
|
10353
|
+
const extension = ext[ext.length - 1];
|
|
10354
|
+
return validExtension.includes(extension);
|
|
10355
|
+
};
|
|
10356
|
+
const validateFileMime = (type, allowedMimetypes) => {
|
|
10357
|
+
if (!allowedMimetypes || !type) {
|
|
10358
|
+
return true;
|
|
10359
|
+
}
|
|
10360
|
+
const validMimeTypes = allowedMimetypes.split(",");
|
|
10361
|
+
let valid = false;
|
|
10362
|
+
validMimeTypes.forEach(mimeType => {
|
|
10363
|
+
const allowedTypes = mimeType.split("/");
|
|
10364
|
+
const fileType = type.split("/");
|
|
10365
|
+
if (allowedTypes[0] === fileType[0] && (allowedTypes[1] === fileType[1] || allowedTypes[1] === "*")) {
|
|
10366
|
+
valid = true;
|
|
10367
|
+
}
|
|
10368
|
+
});
|
|
10369
|
+
return valid;
|
|
10370
|
+
};
|
|
10371
|
+
const validateFileSize = (size, maxBytes) => {
|
|
10372
|
+
if (!maxBytes || !size) {
|
|
10373
|
+
return true;
|
|
10374
|
+
}
|
|
10375
|
+
return maxBytes >= size;
|
|
10376
|
+
};
|
|
10377
|
+
const validateFile = (item, validators) => {
|
|
10378
|
+
const { allowedMimetypes, allowedExtensions, maxBytes } = validators;
|
|
10379
|
+
let valid = false;
|
|
10380
|
+
let errorMessage = getError("default");
|
|
10381
|
+
if (item) {
|
|
10382
|
+
const { name, type, size } = item;
|
|
10383
|
+
const mime = validateFileMime(type, allowedMimetypes);
|
|
10384
|
+
const ext = validateFileExtension(name, allowedExtensions);
|
|
10385
|
+
const bytes = validateFileSize(size, maxBytes);
|
|
10386
|
+
if (!mime) {
|
|
10387
|
+
errorMessage = getError("duet-upload-101");
|
|
10388
|
+
}
|
|
10389
|
+
if (!ext) {
|
|
10390
|
+
errorMessage = getError("duet-upload-100");
|
|
10391
|
+
}
|
|
10392
|
+
if (!bytes) {
|
|
10393
|
+
errorMessage = getError("duet-upload-201");
|
|
10394
|
+
}
|
|
10395
|
+
valid = mime && ext && bytes;
|
|
10396
|
+
}
|
|
10397
|
+
else {
|
|
10398
|
+
valid = false;
|
|
10399
|
+
}
|
|
10400
|
+
return {
|
|
10401
|
+
valid,
|
|
10402
|
+
errorMessage: valid ? undefined : getLocaleString(errorMessage.message),
|
|
10403
|
+
errorSystem: valid ? undefined : errorMessage.system_message,
|
|
10404
|
+
errorType: valid ? undefined : errorMessage.type,
|
|
10405
|
+
};
|
|
10406
|
+
};
|
|
10407
|
+
const validateTotalSizeIsAboveMax = (filelist, maxTotalBytes) => {
|
|
10408
|
+
let total = 0;
|
|
10409
|
+
if (maxTotalBytes) {
|
|
10410
|
+
filelist.forEach(item => {
|
|
10411
|
+
if (item.valid && item.size) {
|
|
10412
|
+
total += item.size;
|
|
10413
|
+
}
|
|
10414
|
+
});
|
|
10415
|
+
if (total < maxTotalBytes) {
|
|
10416
|
+
return true;
|
|
10417
|
+
}
|
|
10418
|
+
}
|
|
10419
|
+
return false;
|
|
10420
|
+
};
|
|
10421
|
+
const validateTotalAmountIsAboveMax = (filelist, maxFiles) => {
|
|
10422
|
+
let total = 0;
|
|
10423
|
+
if (maxFiles) {
|
|
10424
|
+
filelist.forEach(item => {
|
|
10425
|
+
if (item.valid) {
|
|
10426
|
+
total++;
|
|
10427
|
+
}
|
|
10428
|
+
});
|
|
10429
|
+
if (total > maxFiles) {
|
|
10430
|
+
return true;
|
|
10431
|
+
}
|
|
10432
|
+
}
|
|
10433
|
+
return false;
|
|
10434
|
+
};
|
|
10435
|
+
|
|
10436
|
+
const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress }) => {
|
|
10437
|
+
const { type = "POST", xhr, uri, argument = null, headers = null } = options;
|
|
10438
|
+
xhr.open(type, `${uri}${argument || ""}`, true);
|
|
10439
|
+
const { data, name } = payload;
|
|
10440
|
+
// headers must be added after open
|
|
10441
|
+
if (headers) {
|
|
10442
|
+
Object.keys(headers).forEach(key => {
|
|
10443
|
+
xhr.setRequestHeader(key, headers[key]);
|
|
10444
|
+
});
|
|
10445
|
+
}
|
|
10446
|
+
if (type === "POST") {
|
|
10447
|
+
xhr.onreadystatechange = () => {
|
|
10448
|
+
// Call a function when the state changes.
|
|
10449
|
+
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status >= 200 && xhr.status < 300) {
|
|
10450
|
+
// Request finished without errors
|
|
10451
|
+
onSuccess(xhr, name, xhr.status);
|
|
10452
|
+
}
|
|
10453
|
+
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status >= 300 && xhr.status < 999) {
|
|
10454
|
+
// Request finished with errors
|
|
10455
|
+
onFailure(xhr, name, xhr.status);
|
|
10456
|
+
}
|
|
10457
|
+
};
|
|
10458
|
+
onProgress(name);
|
|
10459
|
+
}
|
|
10460
|
+
xhr.send(data);
|
|
10461
|
+
return xhr;
|
|
10462
|
+
};
|
|
10463
|
+
|
|
10464
|
+
const duetUploadCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=header]){margin-bottom:16px}::slotted([slot=fileheader]){margin:16px 0 0 0}::slotted([slot=filefooter]){margin-top:16px}.duet-upload{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-upload-item-size{font-size:0.75rem;font-weight:400}.duet-upload-filelist{margin-bottom:25px}.duet-upload-filelist-empty{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}";
|
|
10465
|
+
|
|
10466
|
+
let DuetUpload$1 = class extends H {
|
|
10467
|
+
constructor() {
|
|
10468
|
+
super();
|
|
10469
|
+
this.__registerHost();
|
|
10470
|
+
this.__attachShadow();
|
|
10471
|
+
this.duetChange = createEvent$2(this, "duetChange", 3);
|
|
10472
|
+
this.duetBlur = createEvent$2(this, "duetBlur", 7);
|
|
10473
|
+
this.duetFocus = createEvent$2(this, "duetFocus", 7);
|
|
10474
|
+
this.duetDone = createEvent$2(this, "duetDone", 3);
|
|
10475
|
+
this.duetState = createEvent$2(this, "duetState", 3);
|
|
10476
|
+
this.duetDelete = createEvent$2(this, "duetDelete", 3);
|
|
10477
|
+
this.duetCancel = createEvent$2(this, "duetCancel", 3);
|
|
10478
|
+
this.duetProgress = createEvent$2(this, "duetProgress", 3);
|
|
10479
|
+
this.duetUpload = createEvent$2(this, "duetUpload", 3);
|
|
10480
|
+
/**
|
|
10481
|
+
* Own Properties
|
|
10482
|
+
*/
|
|
10483
|
+
this.buttonId = createID("DuetButton");
|
|
10484
|
+
this.labelId = createID("DuetLabel");
|
|
10485
|
+
this.uploadId = createID("DuetUpload");
|
|
10486
|
+
this.editableTableId = createID("DuetEditableTable");
|
|
10487
|
+
this.filesInProgress = new Map();
|
|
10488
|
+
this.fileMaxReached = false;
|
|
10489
|
+
this.bytesMaxReached = false;
|
|
10490
|
+
this.internalStatusMessageLabel = undefined;
|
|
10491
|
+
/**
|
|
10492
|
+
* Properties
|
|
10493
|
+
*/
|
|
10494
|
+
this.DefaultGroups = {
|
|
10495
|
+
inprogress: "inprogress",
|
|
10496
|
+
success: "success",
|
|
10497
|
+
failure: "failure",
|
|
10498
|
+
};
|
|
10499
|
+
/**
|
|
10500
|
+
* State() variables
|
|
10501
|
+
*/
|
|
10502
|
+
this.tick = Date.now();
|
|
10503
|
+
/**
|
|
10504
|
+
* If external is set to true, the upload component will not actually upload the files, but only keep states
|
|
10505
|
+
* it will be up to you to handle the upload and return progress information to the upload-component
|
|
10506
|
+
*/
|
|
10507
|
+
this.external = false;
|
|
10508
|
+
/**
|
|
10509
|
+
* If set the upload component will not display an upload button, you will have to create one yourself
|
|
10510
|
+
* and call the exposed method startUpload
|
|
10511
|
+
*/
|
|
10512
|
+
this.hideButton = false;
|
|
10513
|
+
/**
|
|
10514
|
+
* Default actions added to the internally used duet-editable-table
|
|
10515
|
+
*/
|
|
10516
|
+
this.actions = [
|
|
10517
|
+
{
|
|
10518
|
+
icon: "action-delete",
|
|
10519
|
+
color: "color-danger",
|
|
10520
|
+
color_hover: "category-home",
|
|
10521
|
+
id: "delete",
|
|
10522
|
+
map: ["success", "failure"],
|
|
10523
|
+
label: {
|
|
10524
|
+
fi: "Poista tiedosto",
|
|
10525
|
+
en: "Poista tiedosto",
|
|
10526
|
+
sv: "Ta bort filen",
|
|
10527
|
+
},
|
|
10528
|
+
},
|
|
10529
|
+
{
|
|
10530
|
+
icon: "navigation-close",
|
|
10531
|
+
color: "primary",
|
|
10532
|
+
color_hover: "category-home",
|
|
10533
|
+
id: "cancel",
|
|
10534
|
+
map: ["inprogress"],
|
|
10535
|
+
label: {
|
|
10536
|
+
fi: "Keskeytä lähetys",
|
|
10537
|
+
en: "Cancel the upload",
|
|
10538
|
+
sv: "Stop överföringen",
|
|
10539
|
+
},
|
|
10540
|
+
},
|
|
10541
|
+
];
|
|
10542
|
+
/**
|
|
10543
|
+
* If enabled the editable-table will display links on successfully uploaded items,
|
|
10544
|
+
* this requires the server can respond with link URIs in the correct format
|
|
10545
|
+
* and that the files are accessible to the user
|
|
10546
|
+
*/
|
|
10547
|
+
this.showLinks = false;
|
|
10548
|
+
/**
|
|
10549
|
+
* Property to change the aria upload progress text read aloud by screenreaders
|
|
10550
|
+
* @default {
|
|
10551
|
+
* fi: {
|
|
10552
|
+
* inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
|
|
10553
|
+
* inProgressWithErrors:
|
|
10554
|
+
* "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
|
|
10555
|
+
* done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
|
|
10556
|
+
* doneWithErrors:
|
|
10557
|
+
* "Lähetys valmis, {filesUploaded} tiedostoa on lähetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
|
|
10558
|
+
* files: "tiedostot",
|
|
10559
|
+
* file: "tiedosto",
|
|
10560
|
+
* },
|
|
10561
|
+
* sv: {
|
|
10562
|
+
* inProgress: "Adding {filesUploaded} of {filesTotal}",
|
|
10563
|
+
* inProgressWithErrors:
|
|
10564
|
+
* "Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades",
|
|
10565
|
+
* done: "Alla {filesTotal} har lagts till",
|
|
10566
|
+
* doneWithErrors: "Handling slutförd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades",
|
|
10567
|
+
* files: "filer",
|
|
10568
|
+
* file: "fil",
|
|
10569
|
+
* },
|
|
10570
|
+
* en: {
|
|
10571
|
+
* inProgress: "Adding {filesUploaded} of {filesTotal}",
|
|
10572
|
+
* inProgressWithErrors:
|
|
10573
|
+
* "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
|
|
10574
|
+
* done: "All {filesTotal} added successfully",
|
|
10575
|
+
* doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
|
|
10576
|
+
* files: "tiedostoa",
|
|
10577
|
+
* file: "tiedosto",
|
|
10578
|
+
* },
|
|
10579
|
+
* }
|
|
10580
|
+
*/
|
|
10581
|
+
this.statusLabelDefaults = {
|
|
10582
|
+
fi: {
|
|
10583
|
+
inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
|
|
10584
|
+
inProgressWithErrors: "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
|
|
10585
|
+
done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
|
|
10586
|
+
doneWithErrors: "Lähetys valmis, {filesUploaded} tiedostoa on lähetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
|
|
10587
|
+
files: "tiedostot",
|
|
10588
|
+
file: "tiedosto",
|
|
10589
|
+
},
|
|
10590
|
+
sv: {
|
|
10591
|
+
inProgress: "Adding {filesUploaded} of {filesTotal}",
|
|
10592
|
+
inProgressWithErrors: "Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades",
|
|
10593
|
+
done: "Alla {filesTotal} har lagts till",
|
|
10594
|
+
doneWithErrors: "Handling slutförd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades",
|
|
10595
|
+
files: "filer",
|
|
10596
|
+
file: "fil",
|
|
10597
|
+
},
|
|
10598
|
+
en: {
|
|
10599
|
+
inProgress: "Adding {filesUploaded} of {filesTotal}",
|
|
10600
|
+
inProgressWithErrors: "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
|
|
10601
|
+
done: "All {filesTotal} added successfully",
|
|
10602
|
+
doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
|
|
10603
|
+
files: "tiedostoa",
|
|
10604
|
+
file: "tiedosto",
|
|
10605
|
+
},
|
|
10606
|
+
};
|
|
10607
|
+
/**
|
|
10608
|
+
* Strings used for the status aria-label
|
|
10609
|
+
*/
|
|
10610
|
+
this.statusMessageLabel = getLocaleString(this.statusLabelDefaults);
|
|
10611
|
+
/**
|
|
10612
|
+
* Property to change button label defaults on the component.
|
|
10613
|
+
* @default {
|
|
10614
|
+
fi: "Lisää liite",
|
|
10615
|
+
sv: "Lägg till en bilaga",
|
|
10616
|
+
en: "Add an attachment",
|
|
10617
|
+
}
|
|
10618
|
+
*/
|
|
10619
|
+
this.buttonLabelDefaults = {
|
|
10620
|
+
fi: "Lisää liite",
|
|
10621
|
+
sv: "Lägg till en bilaga",
|
|
10622
|
+
en: "Add an attachment",
|
|
10623
|
+
};
|
|
10624
|
+
/**
|
|
10625
|
+
* Label of button
|
|
10626
|
+
* @default { fi: "Lisää liite", sv: "Lägg till en bilaga", en: "Add an attachment" }
|
|
10627
|
+
*/
|
|
10628
|
+
this.buttonLabel = getLocaleString(this.buttonLabelDefaults);
|
|
10629
|
+
/**
|
|
10630
|
+
* accessible aria-Label of button
|
|
10631
|
+
*/
|
|
10632
|
+
this.accessibleButtonLabel = undefined;
|
|
10633
|
+
/**
|
|
10634
|
+
* Theme of the input.
|
|
10635
|
+
*/
|
|
10636
|
+
this.theme = "";
|
|
10637
|
+
/**
|
|
10638
|
+
* Makes the input component disabled. This prevents users from being able to
|
|
10639
|
+
* interact with the upload component, and conveys its inactive state to assistive technologies.
|
|
10640
|
+
*/
|
|
10641
|
+
this.disabled = false;
|
|
10642
|
+
/**
|
|
10643
|
+
* Controls the margin of the component.
|
|
10644
|
+
*/
|
|
10645
|
+
this.margin = "auto";
|
|
10646
|
+
/**
|
|
10647
|
+
* Set whether the input is required or not. Please note that this is necessary for
|
|
10648
|
+
* accessible inputs when the user is required to fill them. When using this property
|
|
10649
|
+
* you need to also set “novalidate” attribute to your form element to prevent
|
|
10650
|
+
* browser from displaying its own validation errors.
|
|
10651
|
+
*/
|
|
10652
|
+
this.required = false;
|
|
10653
|
+
/**
|
|
10654
|
+
* Visually hides the groups labels in the editable table list used to display the list of files
|
|
10655
|
+
*/
|
|
10656
|
+
this.hideGroups = false;
|
|
10657
|
+
/**
|
|
10658
|
+
* Map of string that contain list of uploaded files.
|
|
10659
|
+
*/
|
|
10660
|
+
this.files = new Map();
|
|
10661
|
+
/**
|
|
10662
|
+
* Property to read if the internally used editable-table contains errors or not
|
|
10663
|
+
*/
|
|
10664
|
+
this.valid = !this.required;
|
|
10665
|
+
/**
|
|
10666
|
+
* Property to change labelDefaults defaults on the component.
|
|
10667
|
+
* normally you would handle these strings on an application level and override @label when needed
|
|
10668
|
+
* @default { fi: "Lisää liite",sv: "Lägg till en bilaga",en: "Add attachments"}
|
|
10669
|
+
*/
|
|
10670
|
+
this.labelDefaults = {
|
|
10671
|
+
fi: "Lisää liite",
|
|
10672
|
+
sv: "Lägg till en bilaga",
|
|
10673
|
+
en: "Add attachments",
|
|
10674
|
+
};
|
|
10675
|
+
/**
|
|
10676
|
+
* Label for the input.
|
|
10677
|
+
* @default { fi: "Lisää liite",sv: "Lägg till en bilaga",en: "Add attachments"}
|
|
10678
|
+
*/
|
|
10679
|
+
this.label = getLocaleString(this.labelDefaults);
|
|
10680
|
+
/**
|
|
10681
|
+
* Property to change descriptionDefaults defaults on the component.
|
|
10682
|
+
* @default {
|
|
10683
|
+
fi: "Voit liittää {filetypes}-muotoisia tiedostoja sekä yleisimpiä videotiedostoja. Voit lähettää {maxbytes} verran tiedostoja yhdellä kertaa, ja lisätä enintään {maxfiles} liitettä kerrallaan.",
|
|
10684
|
+
sv: "Du kan bifoga filer i flg. formater {filetypes} samt de vanligaste videofilerna. Du kan ladda upp {maxbytes} filer åt gången och lägga till upp till {maxfiles} bilagor åt gången.",
|
|
10685
|
+
en: "You may attach the following filetypes: {filetypes} - as well as the most common video files. You can upload {maxbytes} of files at a time, and add up to {maxfiles} attachments at a time.",
|
|
10686
|
+
}
|
|
10687
|
+
*/
|
|
10688
|
+
this.descriptionDefaults = {
|
|
10689
|
+
fi: "Voit liittää {filetypes}-muotoisia tiedostoja sekä yleisimpiä videotiedostoja. Voit lähettää {maxbytes} verran tiedostoja yhdellä kertaa, ja lisätä enintään {maxfiles} liitettä kerrallaan.",
|
|
10690
|
+
sv: "Du kan bifoga filer i flg. formater {filetypes} samt de vanligaste videofilerna. Du kan ladda upp {maxbytes} filer åt gången och lägga till upp till {maxfiles} bilagor åt gången.",
|
|
10691
|
+
en: "You may attach the following filetypes: {filetypes} - as well as the most common video files. You can upload {maxbytes} of files at a time, and add up to {maxfiles} attachments at a time.",
|
|
10692
|
+
};
|
|
10693
|
+
/**
|
|
10694
|
+
* Description for the upload component.
|
|
10695
|
+
* @default {
|
|
10696
|
+
fi: "Voit liittää {filetypes}-muotoisia tiedostoja sekä yleisimpiä videotiedostoja. Voit lähettää {maxbytes} verran tiedostoja yhdellä kertaa, ja lisätä enintään {maxfiles} liitettä kerrallaan.",
|
|
10697
|
+
sv: "Du kan bifoga filer i flg. formater {filetypes} samt de vanligaste videofilerna. Du kan ladda upp {maxbytes} filer åt gången och lägga till upp till {maxfiles} bilagor åt gången.",
|
|
10698
|
+
en: "You may attach the following filetypes: {filetypes} - as well as the most common video files. You can upload {maxbytes} of files at a time, and add up to {maxfiles} attachments at a time.",
|
|
10699
|
+
}
|
|
10700
|
+
*/
|
|
10701
|
+
this.description = getLocaleString(this.descriptionDefaults);
|
|
10702
|
+
/**
|
|
10703
|
+
* Defaults for the filelist's empty state.
|
|
10704
|
+
* @default {
|
|
10705
|
+
fi: "Ei vielä lisättyjä tiedostoja.",
|
|
10706
|
+
sv: "Inga filer har lagts till ännu.",
|
|
10707
|
+
en: "No files added yet.",
|
|
10708
|
+
}
|
|
10709
|
+
*/
|
|
10710
|
+
this.fileListEmptyDefaults = {
|
|
10711
|
+
fi: "Ei vielä lisättyjä tiedostoja.",
|
|
10712
|
+
sv: "Inga filer har lagts till ännu.",
|
|
10713
|
+
en: "No files added yet.",
|
|
10714
|
+
};
|
|
10715
|
+
/**
|
|
10716
|
+
* Label for the filelist's empty state.
|
|
10717
|
+
* @default { fi: "Ei vielä lisättyjä tiedostoja.",sv: "Inga filer har lagts till ännu.",en: "No files added yet."}
|
|
10718
|
+
*/
|
|
10719
|
+
this.fileListEmpty = getLocaleString(this.fileListEmptyDefaults);
|
|
10720
|
+
/**
|
|
10721
|
+
* Display the input in error state along with an error message.
|
|
10722
|
+
*/
|
|
10723
|
+
this.error = "";
|
|
10724
|
+
/**
|
|
10725
|
+
* Use maxBytes to specify the maximum size in Bytes of a file that can be uploaded.
|
|
10726
|
+
*/
|
|
10727
|
+
this.maxBytes = 200000000;
|
|
10728
|
+
/**
|
|
10729
|
+
* Use maxBytesTotal to specify the maximum size in Bytes of All files combined that can be uploaded.
|
|
10730
|
+
*/
|
|
10731
|
+
this.maxBytesTotal = undefined;
|
|
10732
|
+
/**
|
|
10733
|
+
* Use maxFiles to specify the maximum amount of files that can be uploaded
|
|
10734
|
+
*/
|
|
10735
|
+
this.maxFiles = 99;
|
|
10736
|
+
/**
|
|
10737
|
+
* A string of commaseperated file type values that are allowed
|
|
10738
|
+
* @example: .pdf,.doc,.docx
|
|
10739
|
+
*/
|
|
10740
|
+
this.allowedExtensions = "all";
|
|
10741
|
+
/**
|
|
10742
|
+
* A string of commaseperated mime type values that are allowed
|
|
10743
|
+
* @example: image/*,application/msword,
|
|
10744
|
+
*/
|
|
10745
|
+
this.allowedMimetypes = "*";
|
|
10746
|
+
/**
|
|
10747
|
+
* Use multiple to allow the user to select multiple files when uploading
|
|
10748
|
+
*/
|
|
10749
|
+
this.multiple = true;
|
|
10750
|
+
/**
|
|
10751
|
+
* Use limitSelection to enforce the value in allowedExtension & allowedMimetypes when selecting files,
|
|
10752
|
+
* by default this is off, setting this to true will limit the users choices to what has been explicitly set
|
|
10753
|
+
*/
|
|
10754
|
+
this.limitSelection = false;
|
|
10755
|
+
/**
|
|
10756
|
+
* Private functions
|
|
10757
|
+
*/
|
|
10758
|
+
this.listenForActionEvents = () => {
|
|
10759
|
+
this.element.addEventListener("duetEditableItemAction", (e) => {
|
|
10760
|
+
const detail = e.detail;
|
|
10761
|
+
const { action, keyName, originalEvent } = detail;
|
|
10762
|
+
switch (action) {
|
|
10763
|
+
case "delete":
|
|
10764
|
+
this.onDelete(keyName, originalEvent);
|
|
10765
|
+
break;
|
|
10766
|
+
case "cancel":
|
|
10767
|
+
this.onCancel(keyName, originalEvent);
|
|
10768
|
+
break;
|
|
10769
|
+
// code block
|
|
10770
|
+
}
|
|
10771
|
+
});
|
|
10772
|
+
};
|
|
10773
|
+
this.verifyValidity = () => {
|
|
10774
|
+
const { invalid, valid } = this.getFilesAsArray();
|
|
10775
|
+
const oldValid = this.valid;
|
|
10776
|
+
this.valid = invalid.length === 0 && valid.length !== 0;
|
|
10777
|
+
if (this.valid !== oldValid) {
|
|
10778
|
+
this.duetState.emit({
|
|
10779
|
+
originalEvent: undefined,
|
|
10780
|
+
data: { valid: this.valid, from: "componentWillRender" },
|
|
10781
|
+
component: "duet-upload",
|
|
10782
|
+
});
|
|
10783
|
+
}
|
|
10784
|
+
};
|
|
10785
|
+
this.getGroupFromItemData = (item) => {
|
|
10786
|
+
if (item.valid && item.progress === 100) {
|
|
10787
|
+
// if the item has a group, move the file to that group instead
|
|
10788
|
+
// of into the standard success group
|
|
10789
|
+
if (item.group) {
|
|
10790
|
+
return item.group;
|
|
10791
|
+
}
|
|
10792
|
+
return this.DefaultGroups.success;
|
|
10793
|
+
}
|
|
10794
|
+
else if (item.progress > 0 && item.progress !== 100) {
|
|
10795
|
+
return this.DefaultGroups.inprogress;
|
|
10796
|
+
}
|
|
10797
|
+
else if (!item.valid) {
|
|
10798
|
+
return this.DefaultGroups.failure;
|
|
10799
|
+
}
|
|
10800
|
+
else if (item.group) {
|
|
10801
|
+
return item.group;
|
|
10802
|
+
}
|
|
10803
|
+
else {
|
|
10804
|
+
return "none";
|
|
10805
|
+
}
|
|
10806
|
+
};
|
|
10807
|
+
this.getItemHTMLFromItemData = (data, group) => {
|
|
10808
|
+
if (group === this.DefaultGroups.success) {
|
|
10809
|
+
return h$1(SuccessItem, { data: data, showLinks: this.showLinks });
|
|
10810
|
+
}
|
|
10811
|
+
else if (group === this.DefaultGroups.inprogress) {
|
|
10812
|
+
return h$1(ProgressItem, { progress: data.progress, name: data.item.name });
|
|
10813
|
+
}
|
|
10814
|
+
else if (group === this.DefaultGroups.failure) {
|
|
10815
|
+
return h$1(ErrorItem, { data: data });
|
|
10816
|
+
}
|
|
10817
|
+
else if (data.group) {
|
|
10818
|
+
return data.html;
|
|
10819
|
+
}
|
|
10820
|
+
else {
|
|
10821
|
+
return "none";
|
|
10822
|
+
}
|
|
10823
|
+
};
|
|
10824
|
+
this.convertToDuetEditableTableItems = () => {
|
|
10825
|
+
// we're always recreating the map - in order to force an update down stream.
|
|
10826
|
+
const itemData = new Map();
|
|
10827
|
+
//walk the files Map and convert to DuetEditableTableItemData
|
|
10828
|
+
this.files.forEach((data, key, _originalMap) => {
|
|
10829
|
+
const group = this.getGroupFromItemData(data);
|
|
10830
|
+
const item = this.getItemHTMLFromItemData(data, group);
|
|
10831
|
+
itemData.set(key, {
|
|
10832
|
+
uid: data.uid,
|
|
10833
|
+
item,
|
|
10834
|
+
group,
|
|
10835
|
+
});
|
|
10836
|
+
});
|
|
10837
|
+
return itemData;
|
|
10838
|
+
};
|
|
10839
|
+
this.kick = debounce(() => {
|
|
10840
|
+
this.tick = Date.now();
|
|
10841
|
+
}, 30); // will trigger re-render
|
|
10842
|
+
this.genHashName = () => Date.now().toString(36) + Math.random();
|
|
10843
|
+
this.updateValueInMap = (item, key, value, kick = true) => {
|
|
10844
|
+
const fileItem = this.files.get(item);
|
|
10845
|
+
fileItem[key] = value;
|
|
10846
|
+
this.files.set(item, fileItem);
|
|
10847
|
+
if (kick) {
|
|
10848
|
+
this.kick();
|
|
10849
|
+
}
|
|
10850
|
+
};
|
|
10851
|
+
this.updateProgress = (ev, name) => {
|
|
10852
|
+
const updateProgressHelper = percentComplete => {
|
|
10853
|
+
this.updateValueInMap(name, "progress", percentComplete);
|
|
10854
|
+
this.onProgress(name, percentComplete, ev);
|
|
10855
|
+
};
|
|
10856
|
+
if (ev.lengthComputable) {
|
|
10857
|
+
const percentComplete = (ev.loaded / ev.total) * 100;
|
|
10858
|
+
updateProgressHelper(percentComplete);
|
|
10859
|
+
}
|
|
10860
|
+
else {
|
|
10861
|
+
console.log("cant read progress");
|
|
10862
|
+
}
|
|
10863
|
+
};
|
|
10864
|
+
this.trackProgress = (name, remove = false) => {
|
|
10865
|
+
if (remove) {
|
|
10866
|
+
this.filesInProgress.delete(name);
|
|
10867
|
+
}
|
|
10868
|
+
else {
|
|
10869
|
+
this.filesInProgress.set(name, "inprogress");
|
|
10870
|
+
}
|
|
10871
|
+
if (this.filesInProgress.size === 0) {
|
|
10872
|
+
this.onDone();
|
|
10873
|
+
}
|
|
10874
|
+
};
|
|
10875
|
+
this.getFilesAsArray = () => {
|
|
10876
|
+
const filesInQueue = [];
|
|
10877
|
+
const filesInError = [];
|
|
10878
|
+
this.files.forEach(value => {
|
|
10879
|
+
if (value.valid && !value.deleted) {
|
|
10880
|
+
filesInQueue.push(value);
|
|
10881
|
+
}
|
|
10882
|
+
else if (!value.valid && !value.deleted) {
|
|
10883
|
+
filesInError.push(value);
|
|
10884
|
+
}
|
|
10885
|
+
});
|
|
10886
|
+
return { valid: filesInQueue, invalid: filesInError };
|
|
10887
|
+
};
|
|
10888
|
+
this.resetFormFields = () => {
|
|
10889
|
+
/**
|
|
10890
|
+
* You cannot modify a FileList, nor remove single items from it
|
|
10891
|
+
* This completely removes all items in the FileList
|
|
10892
|
+
* We reset the form fields to always be able to re-upload files
|
|
10893
|
+
* and because we handle all uploads and states internally in the component (not relying on native form elements)
|
|
10894
|
+
*/
|
|
10895
|
+
/* TODO: it may be a good idea to just update the list so that this always matches what is in the files map,
|
|
10896
|
+
* TODO: this would remove the capability of Re-uploading, unless we can catch and remove the user file from the form filelist before the upload is canceled by the browser
|
|
10897
|
+
* TODO: but for now we'll just reset the form fields
|
|
10898
|
+
*/
|
|
10899
|
+
this.nativeInput.value = "";
|
|
10900
|
+
};
|
|
10901
|
+
this.startUpload = async (ev, metaData = undefined) => {
|
|
10902
|
+
await this.setFocus();
|
|
10903
|
+
this.metaData = metaData;
|
|
10904
|
+
this.nativeInput.click();
|
|
10905
|
+
this.onUpload(ev, metaData);
|
|
10906
|
+
ev.stopPropagation();
|
|
10907
|
+
ev.preventDefault();
|
|
10908
|
+
return;
|
|
10909
|
+
};
|
|
10910
|
+
/**
|
|
10911
|
+
* Eventlisteners for the XHR requests
|
|
10912
|
+
*/
|
|
10913
|
+
this.transferComplete = name => {
|
|
10914
|
+
this.updateValueInMap(name, "progress", 100, false);
|
|
10915
|
+
this.trackProgress(name, true);
|
|
10916
|
+
};
|
|
10917
|
+
this.transferDone = (xhr, name, status) => {
|
|
10918
|
+
this.updateValueInMap(name, "status", status, false);
|
|
10919
|
+
this.updateValueInMap(name, "uploaded", true, false);
|
|
10920
|
+
try {
|
|
10921
|
+
const response = JSON.parse(xhr.response);
|
|
10922
|
+
this.updateValueInMap(name, "url", response.url);
|
|
10923
|
+
}
|
|
10924
|
+
catch (e) {
|
|
10925
|
+
this.updateValueInMap(name, "url", null);
|
|
10926
|
+
console.error("Server did not respond with expected response {url: string}");
|
|
10927
|
+
}
|
|
10928
|
+
return;
|
|
10929
|
+
};
|
|
10930
|
+
this.transferDoneWithFailure = (xhr, name, status) => {
|
|
10931
|
+
try {
|
|
10932
|
+
const { error } = JSON.parse(xhr.response);
|
|
10933
|
+
this.updateValueInMap(name, "error", { message: error.message, type: error.type }, false);
|
|
10934
|
+
}
|
|
10935
|
+
catch (e) {
|
|
10936
|
+
console.error("Server did not respond with expected response error:{message: string, type: int}");
|
|
10937
|
+
this.updateValueInMap(name, "error", { type: status }, false);
|
|
10938
|
+
}
|
|
10939
|
+
this.updateValueInMap(name, "valid", false, true);
|
|
10940
|
+
};
|
|
10941
|
+
this.transferFailed = name => {
|
|
10942
|
+
this.updateValueInMap(name, "error", getError("duet-upload-001"));
|
|
10943
|
+
};
|
|
10944
|
+
this.transferCanceled = name => {
|
|
10945
|
+
this.files.delete(name);
|
|
10946
|
+
this.validateTotals(name);
|
|
10947
|
+
this.kick();
|
|
10948
|
+
};
|
|
10949
|
+
this.validateTotals = (name) => {
|
|
10950
|
+
const isTotalSizeOverMaxSize = validateTotalSizeIsAboveMax(this.files, this.maxBytesTotal);
|
|
10951
|
+
const isTotalFileAmountAboveMax = validateTotalAmountIsAboveMax(this.files, this.maxFiles);
|
|
10952
|
+
if (isTotalSizeOverMaxSize && name) {
|
|
10953
|
+
this.updateValueInMap(name, "error", getError("duet-upload-202"), false);
|
|
10954
|
+
}
|
|
10955
|
+
if (isTotalFileAmountAboveMax && name) {
|
|
10956
|
+
this.updateValueInMap(name, "error", getError("duet-upload-301"), false);
|
|
10957
|
+
}
|
|
10958
|
+
this.bytesMaxReached = isTotalSizeOverMaxSize;
|
|
10959
|
+
this.fileMaxReached = isTotalFileAmountAboveMax;
|
|
10960
|
+
return {
|
|
10961
|
+
bytesMaxReached: isTotalSizeOverMaxSize,
|
|
10962
|
+
fileMaxReached: isTotalFileAmountAboveMax,
|
|
10963
|
+
};
|
|
10964
|
+
};
|
|
10965
|
+
this.onDelete = (key, ev) => {
|
|
10966
|
+
const deletedItem = this.files.get(key);
|
|
10967
|
+
this.files.delete(key);
|
|
10968
|
+
this.validateTotals();
|
|
10969
|
+
this.kick();
|
|
10970
|
+
this.duetDelete.emit({
|
|
10971
|
+
originalEvent: ev,
|
|
10972
|
+
data: { deletion: deletedItem },
|
|
10973
|
+
component: "duet-upload",
|
|
10974
|
+
});
|
|
10975
|
+
if (!this.external) {
|
|
10976
|
+
this.makeXHRDeleteRequest(deletedItem);
|
|
10977
|
+
}
|
|
10978
|
+
this.resetFormFields();
|
|
10979
|
+
};
|
|
10980
|
+
this.onCancel = (key, ev) => {
|
|
10981
|
+
const cancelledItem = this.files.get(key);
|
|
10982
|
+
this.files.delete(key);
|
|
10983
|
+
if (!this.external) {
|
|
10984
|
+
const { xhr } = cancelledItem;
|
|
10985
|
+
xhr.abort();
|
|
10986
|
+
}
|
|
10987
|
+
else {
|
|
10988
|
+
this.kick();
|
|
10989
|
+
}
|
|
10990
|
+
this.resetFormFields();
|
|
10991
|
+
this.duetCancel.emit({
|
|
10992
|
+
originalEvent: ev,
|
|
10993
|
+
data: { cancelled: cancelledItem },
|
|
10994
|
+
component: "duet-upload",
|
|
10995
|
+
});
|
|
10996
|
+
};
|
|
10997
|
+
this.onUpload = (ev, metaData) => {
|
|
10998
|
+
this.duetUpload.emit({
|
|
10999
|
+
originalEvent: ev,
|
|
11000
|
+
metaData,
|
|
11001
|
+
component: "duet-upload",
|
|
11002
|
+
});
|
|
11003
|
+
};
|
|
11004
|
+
this.onBlur = (ev) => {
|
|
11005
|
+
this.duetBlur.emit({
|
|
11006
|
+
originalEvent: ev,
|
|
11007
|
+
component: "duet-upload",
|
|
11008
|
+
});
|
|
11009
|
+
};
|
|
11010
|
+
this.onProgress = (key, percentComplete, ev) => {
|
|
11011
|
+
this.duetChange.emit({
|
|
11012
|
+
originalEvent: ev,
|
|
11013
|
+
data: {
|
|
11014
|
+
key,
|
|
11015
|
+
percentComplete,
|
|
11016
|
+
},
|
|
11017
|
+
component: "duet-upload",
|
|
11018
|
+
});
|
|
11019
|
+
};
|
|
11020
|
+
this.onFocus = (ev) => {
|
|
11021
|
+
this.duetFocus.emit({
|
|
11022
|
+
originalEvent: ev,
|
|
11023
|
+
component: "duet-upload",
|
|
11024
|
+
});
|
|
11025
|
+
};
|
|
11026
|
+
this.onDone = () => {
|
|
11027
|
+
this.duetDone.emit({
|
|
11028
|
+
component: "duet-upload",
|
|
11029
|
+
data: { files: this.files },
|
|
11030
|
+
});
|
|
11031
|
+
};
|
|
11032
|
+
}
|
|
11033
|
+
watchValidHandler(newValue, oldValue) {
|
|
11034
|
+
if (newValue !== oldValue) {
|
|
11035
|
+
this.kick();
|
|
11036
|
+
}
|
|
11037
|
+
}
|
|
11038
|
+
/**
|
|
11039
|
+
* Component lifecycle events.
|
|
11040
|
+
*/
|
|
11041
|
+
componentWillLoad() {
|
|
11042
|
+
if (typeof this.statusMessageLabel === "string") {
|
|
11043
|
+
this.internalStatusMessageLabel = sanitizeString(this.groups);
|
|
11044
|
+
}
|
|
11045
|
+
else {
|
|
11046
|
+
this.internalStatusMessageLabel = this.statusMessageLabel;
|
|
11047
|
+
}
|
|
11048
|
+
inheritGlobalTheme(this);
|
|
11049
|
+
this.listenForActionEvents();
|
|
11050
|
+
}
|
|
11051
|
+
componentWillRender() {
|
|
11052
|
+
// listen to the events from the component
|
|
11053
|
+
this.verifyValidity();
|
|
11054
|
+
}
|
|
11055
|
+
/**
|
|
11056
|
+
* XHR request utilities
|
|
11057
|
+
*/
|
|
11058
|
+
makeXHRPostRequest(data) {
|
|
11059
|
+
const xhr = new XMLHttpRequest();
|
|
11060
|
+
const name = data.get("name");
|
|
11061
|
+
xhr.upload.addEventListener("progress", ev => {
|
|
11062
|
+
this.updateProgress(ev, name);
|
|
11063
|
+
});
|
|
11064
|
+
xhr.upload.addEventListener("load", () => {
|
|
11065
|
+
this.transferComplete(name);
|
|
11066
|
+
});
|
|
11067
|
+
xhr.upload.addEventListener("error", () => {
|
|
11068
|
+
this.transferFailed(name);
|
|
11069
|
+
});
|
|
11070
|
+
xhr.upload.addEventListener("abort", () => {
|
|
11071
|
+
this.transferCanceled(name);
|
|
11072
|
+
});
|
|
11073
|
+
return makeXhrRequest({
|
|
11074
|
+
payload: { data, name },
|
|
11075
|
+
options: { type: "POST", uri: this.uri, xhr, argument: null, headers: null },
|
|
11076
|
+
onFailure: this.transferDoneWithFailure,
|
|
11077
|
+
onSuccess: this.transferDone,
|
|
11078
|
+
onProgress: this.trackProgress,
|
|
11079
|
+
});
|
|
11080
|
+
}
|
|
11081
|
+
makeXHRDeleteRequest(data) {
|
|
11082
|
+
const { uid, item } = data;
|
|
11083
|
+
const xhr = new XMLHttpRequest();
|
|
11084
|
+
// don't present server issues to user on deletes, just remove them from the visible list
|
|
11085
|
+
return makeXhrRequest({
|
|
11086
|
+
payload: { data: null, name },
|
|
11087
|
+
options: {
|
|
11088
|
+
type: "DELETE",
|
|
11089
|
+
xhr,
|
|
11090
|
+
uri: this.uri,
|
|
11091
|
+
arguments: `?key=${uid}&name=${item.name}`,
|
|
11092
|
+
headers: {
|
|
11093
|
+
"x-fileuid": uid,
|
|
11094
|
+
"x-filename": item.name,
|
|
11095
|
+
},
|
|
11096
|
+
},
|
|
11097
|
+
onFailure: this.transferDoneWithFailure,
|
|
11098
|
+
onSuccess: this.transferDone,
|
|
11099
|
+
onProgress: this.trackProgress,
|
|
11100
|
+
});
|
|
11101
|
+
}
|
|
11102
|
+
/**
|
|
11103
|
+
* Component event handling.
|
|
11104
|
+
*/
|
|
11105
|
+
async onChange(ev) {
|
|
11106
|
+
var _a;
|
|
11107
|
+
const selectedFiles = Array.from((_a = this.nativeInput) === null || _a === void 0 ? void 0 : _a.files);
|
|
11108
|
+
// FileList is a nice array like structure but
|
|
11109
|
+
// to ensure uniqueness of files we use a mapping structure and
|
|
11110
|
+
// key to the name (makes it easier to delete as well)
|
|
11111
|
+
if (selectedFiles) {
|
|
11112
|
+
for (const item of selectedFiles) {
|
|
11113
|
+
const { valid, errorMessage, errorType, errorSystem } = validateFile(item, {
|
|
11114
|
+
maxBytes: this.maxBytes,
|
|
11115
|
+
allowedExtensions: this.allowedExtensions,
|
|
11116
|
+
allowedMimetypes: this.allowedMimetypes,
|
|
11117
|
+
});
|
|
11118
|
+
const uid = this.genHashName();
|
|
11119
|
+
const fileListItem = {
|
|
11120
|
+
uid,
|
|
11121
|
+
item: item,
|
|
11122
|
+
size: item.size,
|
|
11123
|
+
meta: this.metaData,
|
|
11124
|
+
uploaded: false,
|
|
11125
|
+
valid,
|
|
11126
|
+
error: {
|
|
11127
|
+
type: valid ? undefined : errorType,
|
|
11128
|
+
message: valid ? undefined : errorMessage,
|
|
11129
|
+
system_message: valid ? undefined : errorSystem,
|
|
11130
|
+
},
|
|
11131
|
+
progress: 0,
|
|
11132
|
+
deleted: false,
|
|
11133
|
+
xhr: false,
|
|
11134
|
+
url: false,
|
|
11135
|
+
};
|
|
11136
|
+
this.files.set(item.name, fileListItem);
|
|
11137
|
+
// validate that we haven't hit any maxfiles or maxbytes limits before we upload
|
|
11138
|
+
const { bytesMaxReached, fileMaxReached } = this.validateTotals(item.name);
|
|
11139
|
+
if (bytesMaxReached) {
|
|
11140
|
+
// in case one of the global maxes have been reached, invalidate the file
|
|
11141
|
+
this.updateValueInMap(item.name, "valid", false, false);
|
|
11142
|
+
}
|
|
11143
|
+
else if (fileMaxReached) {
|
|
11144
|
+
// in case one of the global maxes have been reached, invalidate the file
|
|
11145
|
+
this.updateValueInMap(item.name, "valid", false, false);
|
|
11146
|
+
}
|
|
11147
|
+
else if (valid && !this.external) {
|
|
11148
|
+
// if all is well AND external file upload handling has not been set, start upload
|
|
11149
|
+
const data = new FormData();
|
|
11150
|
+
data.append("file", item);
|
|
11151
|
+
data.append("uid", uid);
|
|
11152
|
+
data.append("name", item.name);
|
|
11153
|
+
data.append("metadata", JSON.stringify({ uid, url: this.uri, size: item.size, meta: fileListItem.meta }));
|
|
11154
|
+
try {
|
|
11155
|
+
fileListItem.xhr = await this.makeXHRPostRequest(data);
|
|
11156
|
+
}
|
|
11157
|
+
catch (e) {
|
|
11158
|
+
// in case one of the global maxes have been reached, invalidate the file
|
|
11159
|
+
this.updateValueInMap(item.name, "valid", false, false);
|
|
11160
|
+
}
|
|
11161
|
+
}
|
|
11162
|
+
// kick the stat to force update
|
|
11163
|
+
this.kick();
|
|
11164
|
+
}
|
|
11165
|
+
}
|
|
11166
|
+
// reset the form, so that a user may upload a file again (with the same name)
|
|
11167
|
+
this.resetFormFields();
|
|
11168
|
+
// reset the internal metaData state
|
|
11169
|
+
this.metaData = undefined;
|
|
11170
|
+
this.duetChange.emit({
|
|
11171
|
+
originalEvent: ev,
|
|
11172
|
+
data: { files: this.files },
|
|
11173
|
+
component: "duet-upload",
|
|
11174
|
+
});
|
|
11175
|
+
}
|
|
11176
|
+
/**
|
|
11177
|
+
* Sets focus on the specified `duet-input`. Use this method instead of the global
|
|
11178
|
+
* `input.focus()`.
|
|
11179
|
+
*/
|
|
11180
|
+
async setFocus(options) {
|
|
11181
|
+
if (this.nativeInput) {
|
|
11182
|
+
this.nativeInput.focus(options);
|
|
11183
|
+
}
|
|
11184
|
+
return;
|
|
11185
|
+
}
|
|
11186
|
+
/**
|
|
11187
|
+
* Method for invoking the upload sequence
|
|
11188
|
+
*/
|
|
11189
|
+
async upload(metaData = undefined) {
|
|
11190
|
+
await this.setFocus();
|
|
11191
|
+
this.metaData = metaData;
|
|
11192
|
+
this.nativeInput.click();
|
|
11193
|
+
return;
|
|
11194
|
+
}
|
|
11195
|
+
/**
|
|
11196
|
+
* Get list of files, divided in errors and valid sections
|
|
11197
|
+
*/
|
|
11198
|
+
async getFiles() {
|
|
11199
|
+
if (!this.files || this.files.size === 0) {
|
|
11200
|
+
return false;
|
|
11201
|
+
}
|
|
11202
|
+
return this.getFilesAsArray();
|
|
11203
|
+
}
|
|
11204
|
+
/**
|
|
11205
|
+
* Convenience method for updating the value of a key:value inside an item in the files attribute
|
|
11206
|
+
*/
|
|
11207
|
+
async updateValue(item, key, value) {
|
|
11208
|
+
this.updateValueInMap(item, key, value);
|
|
11209
|
+
}
|
|
11210
|
+
/**
|
|
11211
|
+
* render() function
|
|
11212
|
+
* Always the last one in the class.
|
|
11213
|
+
*/
|
|
11214
|
+
render() {
|
|
11215
|
+
const identifier = this.identifier || this.uploadId;
|
|
11216
|
+
let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
|
|
11217
|
+
caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
|
|
11218
|
+
caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
|
|
11219
|
+
return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("duet-fieldset", { label: this.label, caption: caption }, h$1("slot", { name: "header" }), !this.files.size && (h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
|
|
11220
|
+
"duet-upload-filelist-empty": !this.files.size,
|
|
11221
|
+
"duet-upload-filelist": true,
|
|
11222
|
+
"duet-upload-filelist-filled": this.files.size,
|
|
11223
|
+
}, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && (h$1("duet-editable-table", { "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, items: this.convertToDuetEditableTableItems() })), !!this.files.size && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle" }, this.buttonLabel)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", null, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
|
|
11224
|
+
this.nativeInput = input;
|
|
11225
|
+
}, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
|
|
11226
|
+
"duet-upload": true,
|
|
11227
|
+
}, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
|
|
11228
|
+
}
|
|
11229
|
+
get element() { return this; }
|
|
11230
|
+
static get watchers() { return {
|
|
11231
|
+
"valid": ["watchValidHandler"]
|
|
11232
|
+
}; }
|
|
11233
|
+
static get style() { return duetUploadCss; }
|
|
11234
|
+
};
|
|
11235
|
+
|
|
11236
|
+
let DuetUploadAriaStatus$1 = class extends H {
|
|
11237
|
+
constructor() {
|
|
11238
|
+
super();
|
|
11239
|
+
this.__registerHost();
|
|
11240
|
+
this.__attachShadow();
|
|
11241
|
+
/**
|
|
11242
|
+
* State() variables
|
|
11243
|
+
*/
|
|
11244
|
+
this.statusMessage = null;
|
|
11245
|
+
/**
|
|
11246
|
+
* Status labels used in the component
|
|
11247
|
+
*/
|
|
11248
|
+
this.statusMessageLabel = null;
|
|
11249
|
+
/**
|
|
11250
|
+
* Adds accessible label that is read aloud
|
|
11251
|
+
*/
|
|
11252
|
+
this.accessibleAriaLive = "polite";
|
|
11253
|
+
/**
|
|
11254
|
+
* valid file amount
|
|
11255
|
+
*/
|
|
11256
|
+
this.valid = undefined;
|
|
11257
|
+
/**
|
|
11258
|
+
* total files
|
|
11259
|
+
*/
|
|
11260
|
+
this.total = undefined;
|
|
11261
|
+
/**
|
|
11262
|
+
* invalid file amount
|
|
11263
|
+
*/
|
|
11264
|
+
this.invalid = undefined;
|
|
11265
|
+
/**
|
|
11266
|
+
* valid file amount
|
|
11267
|
+
*/
|
|
11268
|
+
this.inprogress = undefined;
|
|
11269
|
+
/**
|
|
11270
|
+
* Private functions
|
|
11271
|
+
*/
|
|
11272
|
+
this.replacePlaceHolders = (statusString) => {
|
|
11273
|
+
const addFiles = (amount) => {
|
|
11274
|
+
return amount > 1 ? `${amount} ${this.statusMessageLabel.files}` : `${amount} ${this.statusMessageLabel.file}`;
|
|
11275
|
+
};
|
|
11276
|
+
return statusString
|
|
11277
|
+
.replace("{filesUploaded}", addFiles(this.valid))
|
|
11278
|
+
.replace("{filesInProgress}", addFiles(this.inprogress))
|
|
11279
|
+
.replace("{filesTotal}", addFiles(this.total))
|
|
11280
|
+
.replace("{filesWithErrors}", addFiles(this.invalid));
|
|
11281
|
+
};
|
|
11282
|
+
this.getStatusMessage = () => {
|
|
11283
|
+
const { done, inProgress, doneWithErrors, inProgressWithErrors } = this.statusMessageLabel;
|
|
11284
|
+
const hasErrors = this.invalid > 0;
|
|
11285
|
+
const isInProgress = this.inprogress > 0;
|
|
11286
|
+
const isInProgressWithErrors = this.inprogress > 0 && hasErrors;
|
|
11287
|
+
const isDone = this.valid === this.total && !isInProgress && !hasErrors;
|
|
11288
|
+
const isDoneWithErrors = this.valid + this.invalid === this.total && !isInProgress;
|
|
11289
|
+
if (isDone) {
|
|
11290
|
+
this.statusMessage = this.replacePlaceHolders(done);
|
|
11291
|
+
return;
|
|
11292
|
+
}
|
|
11293
|
+
else if (isInProgressWithErrors) {
|
|
11294
|
+
this.statusMessage = this.replacePlaceHolders(inProgressWithErrors);
|
|
11295
|
+
return;
|
|
11296
|
+
}
|
|
11297
|
+
else if (isInProgress) {
|
|
11298
|
+
this.statusMessage = this.replacePlaceHolders(inProgress);
|
|
11299
|
+
return;
|
|
11300
|
+
}
|
|
11301
|
+
else if (isDoneWithErrors) {
|
|
11302
|
+
this.statusMessage = this.replacePlaceHolders(doneWithErrors);
|
|
11303
|
+
return;
|
|
11304
|
+
}
|
|
11305
|
+
return;
|
|
11306
|
+
};
|
|
11307
|
+
}
|
|
11308
|
+
watchHandler(newValue, oldValue) {
|
|
11309
|
+
if (newValue !== oldValue) {
|
|
11310
|
+
this.getStatusMessage();
|
|
11311
|
+
}
|
|
11312
|
+
}
|
|
11313
|
+
/**
|
|
11314
|
+
* render() function
|
|
11315
|
+
* Always the last one in the class.
|
|
11316
|
+
*/
|
|
11317
|
+
render() {
|
|
11318
|
+
return (h$1(Host, { role: "status", "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, h$1("duet-visually-hidden", null, this.statusMessage)));
|
|
11319
|
+
}
|
|
11320
|
+
static get watchers() { return {
|
|
11321
|
+
"valid": ["watchHandler"],
|
|
11322
|
+
"invalid": ["watchHandler"],
|
|
11323
|
+
"inprogress": ["watchHandler"],
|
|
11324
|
+
"total": ["watchHandler"]
|
|
11325
|
+
}; }
|
|
11326
|
+
};
|
|
11327
|
+
|
|
9647
11328
|
const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}";
|
|
9648
11329
|
|
|
9649
|
-
let DuetVisuallyHidden$1 = class extends
|
|
11330
|
+
let DuetVisuallyHidden$1 = class extends H {
|
|
9650
11331
|
constructor() {
|
|
9651
11332
|
super();
|
|
9652
11333
|
this.__registerHost();
|
|
9653
|
-
|
|
11334
|
+
this.__attachShadow();
|
|
9654
11335
|
}
|
|
9655
11336
|
/**
|
|
9656
11337
|
* render() function
|
|
@@ -9669,19 +11350,22 @@ const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button
|
|
|
9669
11350
|
const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
|
|
9670
11351
|
const DuetCard = /*@__PURE__*/proxyCustomElement(DuetCard$1, [1,"duet-card",{"accessibleLabel":[1,"accessible-label"],"heading":[1],"secondaryHeading":[1,"secondary-heading"],"variation":[1],"collapsible":[4],"open":[1540],"headingLevel":[1,"heading-level"],"icon":[1],"image":[1],"background":[1],"padding":[1],"margin":[1],"theme":[1025],"url":[1]}]);
|
|
9671
11352
|
const DuetCheckbox = /*@__PURE__*/proxyCustomElement(DuetCheckbox$1, [2,"duet-checkbox",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleIndex":[1,"accessible-index"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"theme":[1025],"disabled":[516],"identifier":[1],"label":[1],"labelHidden":[4,"label-hidden"],"name":[1],"role":[1],"checked":[1540],"value":[1537]}]);
|
|
9672
|
-
const DuetChoice = /*@__PURE__*/proxyCustomElement(DuetChoice$1, [6,"duet-choice",{"theme":[1025],"label":[1],"accessibleLabelInfoButtonDefaults":[1,"accessible-label-info-default"],"accessibleLabelInfoButton":[1,"accessible-label-info-button"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"caption":[1],"value":[1537],"type":[513],"name":[1],"checked":[1540],"collapsible":[4],"margin":[1],"icon":[1],"expand":[4],"padding":[1],"identifier":[1],"groupDirection":[1,"group-direction"],"groupDisabled":[4,"group-disabled"],"groupResponsive":[4,"group-responsive"],"disabled":[516],"required":[4],"isHovering":[32],"isInfoOpen":[32],"isBlurred":[32]},[[2,"blur","handleHostBlur"],[2,"keydown","handleHostKeyDown"],[2,"keyup","handleHostKeyUp"]]]);
|
|
11353
|
+
const DuetChoice = /*@__PURE__*/proxyCustomElement(DuetChoice$1, [6,"duet-choice",{"theme":[1025],"label":[1],"accessibleLabelInfoButtonDefaults":[1,"accessible-label-info-default"],"accessibleLabelInfoButton":[1,"accessible-label-info-button"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"caption":[1],"value":[1537],"type":[513],"name":[1],"checked":[1540],"collapsible":[4],"margin":[1],"icon":[1],"expand":[4],"padding":[1],"identifier":[1],"groupDirection":[1,"group-direction"],"groupDisabled":[4,"group-disabled"],"groupResponsive":[4,"group-responsive"],"disabled":[516],"required":[4],"infoLabelDefaults":[1,"accessible-label-info-default"],"infoLabel":[1,"info-label"],"isHovering":[32],"isInfoOpen":[32],"isBlurred":[32]},[[2,"blur","handleHostBlur"],[2,"keydown","handleHostKeyDown"],[2,"keyup","handleHostKeyUp"]]]);
|
|
9673
11354
|
const DuetChoiceGroup = /*@__PURE__*/proxyCustomElement(DuetChoiceGroup$1, [6,"duet-choice-group",{"direction":[1],"margin":[1],"theme":[1025],"error":[1],"name":[1],"label":[1],"labelHidden":[4,"label-hidden"],"caption":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"responsive":[4],"value":[1537],"disabled":[4]}]);
|
|
9674
11355
|
const DuetCollapsible = /*@__PURE__*/proxyCustomElement(DuetCollapsible$1, [1,"duet-collapsible",{"theme":[1025],"heading":[1],"headingWeight":[1,"heading-weight"],"headingSize":[1,"heading-size"],"headingLevel":[1,"heading-level"],"margin":[1],"open":[1540]}]);
|
|
9675
11356
|
const DuetCookieConsent = /*@__PURE__*/proxyCustomElement(DuetCookieConsent$1, [1,"duet-cookie-consent",{"accessibleLabel":[1,"accessible-label"],"theme":[1025]}]);
|
|
9676
11357
|
const DuetDatePicker = /*@__PURE__*/proxyCustomElement(DuetDatePicker$1, [2,"duet-date-picker",{"theme":[1025],"expand":[4],"name":[1],"identifier":[1],"label":[1],"caption":[1],"margin":[1],"language":[1],"placeholderDefaults":[1,"placeholder-default"],"placeholder":[1],"echoPlaceholder":[1540,"echo-placeholder"],"disabled":[516],"error":[1],"labelHidden":[4,"label-hidden"],"role":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"direction":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"value":[1537],"min":[1],"max":[1],"validity":[1040],"open":[32],"focusedDay":[32],"inputValue":[32]},[[4,"click","handleDocumentClick"]]]);
|
|
9677
11358
|
const DuetDivider = /*@__PURE__*/proxyCustomElement(DuetDivider$1, [1,"duet-divider",{"theme":[1025],"margin":[1]}]);
|
|
11359
|
+
const DuetEditableTable = /*@__PURE__*/proxyCustomElement(DuetEditableTable$1, [1,"duet-editable-table",{"items":[1040],"groupsLabelDefaults":[16],"actionLabelDefaults":[16],"groups":[1],"actions":[1],"hideGroups":[4,"hide-table-labels"],"accessibleRole":[1,"accessible-role"],"theme":[1025],"tick":[32]}]);
|
|
11360
|
+
const DuetEditableTableButton = /*@__PURE__*/proxyCustomElement(DuetEditableTableButton$1, [2,"duet-editable-table-button",{"theme":[1025],"actions":[16],"uid":[1],"group":[1],"keyName":[1,"key-name"],"isHovering":[32]}]);
|
|
11361
|
+
const DuetEditableTableItem = /*@__PURE__*/proxyCustomElement(DuetEditableTableItem$1, [1,"duet-editable-table-item",{"theme":[1025],"actions":[16],"groupId":[1,"group-id"],"keyName":[1,"key-name"],"data":[1040],"isHovering":[32]}]);
|
|
9678
11362
|
const DuetEmptyState = /*@__PURE__*/proxyCustomElement(DuetEmptyState$1, [1,"duet-empty-state",{"theme":[1025],"icon":[1],"size":[1]}]);
|
|
9679
11363
|
const DuetFieldset = /*@__PURE__*/proxyCustomElement(DuetFieldset$1, [1,"duet-fieldset",{"theme":[1025],"margin":[1],"caption":[1],"label":[1],"error":[1],"labelHidden":[4,"label-hidden"],"hasTooltip":[32]}]);
|
|
9680
11364
|
const DuetFooter = /*@__PURE__*/proxyCustomElement(DuetFooter$1, [1,"duet-footer",{"theme":[1025],"variation":[1],"margin":[1],"logoHref":[1,"logo-href"],"language":[1025],"items":[8],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"menu":[8],"processedItems":[32],"processedMenu":[32]}]);
|
|
9681
|
-
const DuetGrid = /*@__PURE__*/proxyCustomElement(DuetGrid$1, [2,"duet-grid",{"responsive":[4],"breakpoint":[1],"direction":[1],"alignment":[1],"distribution":[1],"mobile":[1]}]);
|
|
11365
|
+
const DuetGrid = /*@__PURE__*/proxyCustomElement(DuetGrid$1, [2,"duet-grid",{"responsive":[4],"breakpoint":[1],"direction":[1],"alignment":[1],"distribution":[1],"mobile":[1],"distributeFormElement":[32]}]);
|
|
9682
11366
|
const DuetGridItem = /*@__PURE__*/proxyCustomElement(DuetGridItem$1, [2,"duet-grid-item",{"fill":[4],"maxWidth":[1,"max-width"],"minWidth":[1,"min-width"],"theme":[1025],"margin":[1],"responsive":[4],"breakpoint":[1]}]);
|
|
9683
11367
|
const DuetHeader = /*@__PURE__*/proxyCustomElement(DuetHeader$1, [1,"duet-header",{"theme":[1025],"language":[1025],"accessibleI18nLabelsDefaults":[1,"accessible-labels-default"],"accessibleI18nLabels":[16],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"user":[8],"logoHref":[1,"logo-href"],"currentHref":[1025,"current-href"],"skipToId":[1,"skip-to-id"],"items":[8],"region":[1],"session":[8],"back":[8],"contact":[1],"contactItems":[8,"contact-items"],"languageItems":[8,"language-items"],"isContactOpen":[32],"isLanguageOpen":[32],"isSlideOutOpen":[32],"processedItems":[32],"processedLanguageItems":[32],"processedContactItems":[32],"processedSession":[32],"processedUser":[32],"processedBack":[32]},[[8,"keyup","handleKeyUp"],[8,"keydown","handleKeyDown"],[4,"focus","handleDocumentClick"],[4,"click","handleDocumentClick"]]]);
|
|
9684
|
-
const DuetHeading = /*@__PURE__*/proxyCustomElement(DuetHeading$1, [1,"duet-heading",{"level":[513],"margin":[1],"visualLevel":[1,"visual-level"],"border":[
|
|
11368
|
+
const DuetHeading = /*@__PURE__*/proxyCustomElement(DuetHeading$1, [1,"duet-heading",{"level":[513],"margin":[1],"visualLevel":[1,"visual-level"],"border":[8],"weight":[1],"color":[1],"theme":[1025],"hyphenate":[4]}]);
|
|
9685
11369
|
const DuetHero = /*@__PURE__*/proxyCustomElement(DuetHero$1, [1,"duet-hero",{"theme":[1025],"heading":[1],"preHeading":[1,"pre-heading"],"level":[1],"description":[1],"icon":[1],"iconSize":[1,"icon-size"],"iconRight":[4,"icon-right"],"categoryIcon":[1,"category-icon"],"categoryIconColor":[1,"category-icon-color"],"buttonLabel":[1,"button-label"],"language":[1025],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"buttonUrl":[1,"button-url"],"buttonId":[1,"button-id"],"buttonData":[16],"textCenter":[4,"text-center"],"leftAlign":[4,"left-align"],"image":[1],"variation":[1],"back":[8],"listItems":[8,"list-items"],"actions":[8],"processedListItems":[32],"processedActions":[32],"processedBack":[32]}]);
|
|
9686
11370
|
const DuetIcon = /*@__PURE__*/proxyCustomElement(DuetIcon$1, [1,"duet-icon",{"theme":[1025],"icon":[1],"src":[1],"name":[1],"margin":[1],"responsive":[4],"color":[513],"background":[1],"size":[1],"outline":[1],"svgContent":[32]}]);
|
|
9687
11371
|
const DuetInput = /*@__PURE__*/proxyCustomElement(DuetInput$1, [6,"duet-input",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleAutocomplete":[1,"accessible-autocomplete"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"debounce":[2],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"theme":[1025],"expand":[4],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"type":[1],"label":[1],"error":[1],"labelHidden":[4,"label-hidden"],"numericKeyboard":[4,"numeric-keyboard"],"name":[1],"pattern":[1],"maxlength":[2],"minlength":[2],"placeholder":[1],"component":[1],"role":[1],"icon":[1],"autoComplete":[1,"auto-complete"],"disallowPattern":[1,"disallow-pattern"],"value":[1025],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"]}]);
|
|
@@ -9695,7 +11379,8 @@ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{
|
|
|
9695
11379
|
const DuetNotification = /*@__PURE__*/proxyCustomElement(DuetNotification$1, [1,"duet-notification",{"language":[1],"accessibleLabelUnreadDefaults":[16],"accessibleLabelUnread":[1,"accessible-label-unread"],"url":[1],"date":[1],"highlight":[4],"external":[4],"theme":[1025]}]);
|
|
9696
11380
|
const DuetNotificationDrawer = /*@__PURE__*/proxyCustomElement(DuetNotificationDrawer$1, [1,"duet-notification-drawer",{"icon":[1],"label":[1],"language":[1],"accessibleLabelNotificationsDefaults":[1,"accessible-label-notification-default"],"accessibleLabelNotifications":[1,"accessible-label-notifications"],"badge":[4],"theme":[1025],"direction":[1],"isOpen":[32],"hasNotifications":[32]},[[6,"focus","handleClickFocusOutside"],[6,"click","handleClickFocusOutside"]]]);
|
|
9697
11381
|
const DuetNumberInput = /*@__PURE__*/proxyCustomElement(DuetNumberInput$1, [2,"duet-number-input",{"language":[1025],"locale":[1],"unit":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLiveDefaults":[1,"accessible-live-default"],"accessibleLive":[1,"accessible-live"],"accessibleLiveEnabled":[4,"accessible-live-enabled"],"accessibleAddDefaults":[1,"accessible-add-default"],"accessibleAdd":[1,"accessible-add"],"accessibleSubtractDefaults":[1,"accessible-subtract-defaults"],"accessibleSubtract":[1,"accessible-subtract"],"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"min":[2],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"max":[2],"name":[1],"error":[1],"tooltip":[1],"step":[2],"rounding":[4],"role":[1],"disabled":[516],"required":[4],"value":[1025],"focusedValue":[32]}]);
|
|
9698
|
-
const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"variation":[1],"color":[1]}]);
|
|
11382
|
+
const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"weight":[1],"variation":[1],"color":[1]}]);
|
|
11383
|
+
const DuetProgress = /*@__PURE__*/proxyCustomElement(DuetProgress$1, [0,"duet-progress",{"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLabel":[1,"accessible-label"],"accessibleLabelUploadDefaults":[1,"accessible-label-upload-defaults"],"accessibleLabelUpload":[1,"accessible-label-upload"],"progress":[1538],"caption":[1],"height":[1],"theme":[1025]}]);
|
|
9699
11384
|
const DuetRadio = /*@__PURE__*/proxyCustomElement(DuetRadio$1, [2,"duet-radio",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleIndex":[1,"accessible-index"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"disabled":[516],"required":[4],"blockEvents":[4,"block-events"],"identifier":[1],"label":[1],"name":[1],"role":[1],"groupDisabled":[4,"group-disabled"],"groupDirection":[1,"group-direction"],"groupResponsive":[4,"group-responsive"],"checked":[1540],"value":[1537]}]);
|
|
9700
11385
|
const DuetRadioGroup = /*@__PURE__*/proxyCustomElement(DuetRadioGroup$1, [6,"duet-radio-group",{"direction":[1],"margin":[1],"theme":[1025],"error":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"name":[1],"label":[1],"labelHidden":[4,"label-hidden"],"caption":[1],"responsive":[4],"value":[1537],"disabled":[4]}]);
|
|
9701
11386
|
const DuetRangeSlider = /*@__PURE__*/proxyCustomElement(DuetRangeSlider$1, [2,"duet-range-slider",{"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"name":[1],"required":[4],"disabled":[516],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"min":[2],"label":[1],"labelHidden":[4,"label-hidden"],"unit":[1],"max":[2],"step":[2],"locale":[1],"value":[1026],"debounce":[2]}]);
|
|
@@ -9711,6 +11396,8 @@ const DuetTextarea = /*@__PURE__*/proxyCustomElement(DuetTextarea$1, [2,"duet-te
|
|
|
9711
11396
|
const DuetToggle = /*@__PURE__*/proxyCustomElement(DuetToggle$1, [2,"duet-toggle",{"theme":[1025],"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"label":[1],"required":[4],"disabled":[516],"checked":[1540],"value":[1537],"identifier":[1],"name":[1],"role":[1]}]);
|
|
9712
11397
|
const DuetTooltip = /*@__PURE__*/proxyCustomElement(DuetTooltip$1, [1,"duet-tooltip",{"theme":[1025],"language":[1025],"accessibleLabelDefault":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"accessibleInputLabel":[1,"accessible-input-label"],"accessibleCloseLabelDefault":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"label":[1],"breakpoint":[1],"direction":[1],"positionVertical":[513,"position-vertical"],"positionHorizontal":[513,"position-horizontal"],"active":[1540],"openDown":[32]},[[9,"scroll","onScroll"],[4,"click","handleDocumentClick"]]]);
|
|
9713
11398
|
const DuetTray = /*@__PURE__*/proxyCustomElement(DuetTray$1, [1,"duet-tray",{"language":[1025],"accessibleCloseLabelDefaults":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"accessibleOpenLabelDefaults":[1,"accessible-open-label-default"],"accessibleOpenLabel":[1,"accessible-open-label"],"theme":[1025],"active":[516],"autoHide":[4,"auto-hide"],"responsive":[4],"expanded":[32],"hiddenState":[32]},[[9,"scroll","getFrame"],[16,"click","handleBodyClick"]]]);
|
|
11399
|
+
const DuetUpload = /*@__PURE__*/proxyCustomElement(DuetUpload$1, [1,"duet-upload",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"external":[4],"hideButton":[4,"hide-upload-button"],"actions":[1],"uri":[1],"showLinks":[4,"show-links"],"caption":[1],"statusLabelDefaults":[1,"status-label-default"],"statusMessageLabel":[1,"status-message-label"],"buttonLabelDefaults":[1,"button-label-default"],"buttonLabel":[1,"button-label"],"accessibleButtonLabel":[1,"accessible-button-label"],"theme":[1025],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"groups":[1],"hideGroups":[4,"hide-table-labels"],"files":[1040],"valid":[1540],"labelDefaults":[1,"label-default"],"label":[1],"descriptionDefaults":[1,"description-default"],"description":[1],"fileListEmptyDefaults":[1,"list-empty-default"],"fileListEmpty":[1,"file-list-empty"],"error":[1],"name":[1],"maxBytes":[2,"max-bytes"],"maxBytesTotal":[2,"max-bytes-total"],"maxFiles":[2,"max-files"],"allowedExtensions":[1,"allowed-extensions"],"allowedMimetypes":[1,"allowed-mimetypes"],"multiple":[4],"limitSelection":[4,"limit-selection"],"value":[1025],"tick":[32]}]);
|
|
11400
|
+
const DuetUploadAriaStatus = /*@__PURE__*/proxyCustomElement(DuetUploadAriaStatus$1, [1,"duet-upload-aria-status",{"statusMessageLabel":[16],"accessibleAriaLive":[1,"accessible-aria-live"],"valid":[2],"total":[2],"invalid":[2],"inprogress":[2],"statusMessage":[32]}]);
|
|
9714
11401
|
const DuetVisuallyHidden = /*@__PURE__*/proxyCustomElement(DuetVisuallyHidden$1, [1,"duet-visually-hidden"]);
|
|
9715
11402
|
const defineCustomElements = (opts) => {
|
|
9716
11403
|
if (typeof customElements !== 'undefined') {
|
|
@@ -9727,6 +11414,9 @@ const defineCustomElements = (opts) => {
|
|
|
9727
11414
|
DuetCookieConsent,
|
|
9728
11415
|
DuetDatePicker,
|
|
9729
11416
|
DuetDivider,
|
|
11417
|
+
DuetEditableTable,
|
|
11418
|
+
DuetEditableTableButton,
|
|
11419
|
+
DuetEditableTableItem,
|
|
9730
11420
|
DuetEmptyState,
|
|
9731
11421
|
DuetFieldset,
|
|
9732
11422
|
DuetFooter,
|
|
@@ -9748,6 +11438,7 @@ const defineCustomElements = (opts) => {
|
|
|
9748
11438
|
DuetNotificationDrawer,
|
|
9749
11439
|
DuetNumberInput,
|
|
9750
11440
|
DuetParagraph,
|
|
11441
|
+
DuetProgress,
|
|
9751
11442
|
DuetRadio,
|
|
9752
11443
|
DuetRadioGroup,
|
|
9753
11444
|
DuetRangeSlider,
|
|
@@ -9763,6 +11454,8 @@ const defineCustomElements = (opts) => {
|
|
|
9763
11454
|
DuetToggle,
|
|
9764
11455
|
DuetTooltip,
|
|
9765
11456
|
DuetTray,
|
|
11457
|
+
DuetUpload,
|
|
11458
|
+
DuetUploadAriaStatus,
|
|
9766
11459
|
DuetVisuallyHidden
|
|
9767
11460
|
].forEach(cmp => {
|
|
9768
11461
|
if (!customElements.get(cmp.is)) {
|
|
@@ -9773,7 +11466,7 @@ const defineCustomElements = (opts) => {
|
|
|
9773
11466
|
};
|
|
9774
11467
|
|
|
9775
11468
|
/*
|
|
9776
|
-
Stencil Client Platform v2.
|
|
11469
|
+
Stencil Client Platform v2.11.0 | MIT Licensed | https://stenciljs.com
|
|
9777
11470
|
*/
|
|
9778
11471
|
/**
|
|
9779
11472
|
* @license
|
|
@@ -9841,6 +11534,7 @@ const extractCommentsWithHash = (input) => {
|
|
|
9841
11534
|
};
|
|
9842
11535
|
const _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
|
|
9843
11536
|
const _curlyRe = /([{}])/g;
|
|
11537
|
+
const _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/;
|
|
9844
11538
|
const OPEN_CURLY = '{';
|
|
9845
11539
|
const CLOSE_CURLY = '}';
|
|
9846
11540
|
const BLOCK_PLACEHOLDER = '%BLOCK%';
|
|
@@ -9993,17 +11687,18 @@ const selectorNeedsScoping = (selector, scopeSelector) => {
|
|
|
9993
11687
|
const re = makeScopeMatcher(scopeSelector);
|
|
9994
11688
|
return !re.test(selector);
|
|
9995
11689
|
};
|
|
11690
|
+
const injectScopingSelector = (selector, scopingSelector) => {
|
|
11691
|
+
return selector.replace(_selectorPartsRe, (_, before = '', _colonGroup, colon = '', after = '') => {
|
|
11692
|
+
return before + scopingSelector + colon + after;
|
|
11693
|
+
});
|
|
11694
|
+
};
|
|
9996
11695
|
const applySimpleSelectorScope = (selector, scopeSelector, hostSelector) => {
|
|
9997
11696
|
// In Android browser, the lastIndex is not reset when the regex is used in String.replace()
|
|
9998
11697
|
_polyfillHostRe.lastIndex = 0;
|
|
9999
11698
|
if (_polyfillHostRe.test(selector)) {
|
|
10000
11699
|
const replaceBy = `.${hostSelector}`;
|
|
10001
11700
|
return selector
|
|
10002
|
-
.replace(_polyfillHostNoCombinatorRe, (_, selector) =>
|
|
10003
|
-
return selector.replace(/([^:]*)(:*)(.*)/, (_, before, colon, after) => {
|
|
10004
|
-
return before + replaceBy + colon + after;
|
|
10005
|
-
});
|
|
10006
|
-
})
|
|
11701
|
+
.replace(_polyfillHostNoCombinatorRe, (_, selector) => injectScopingSelector(selector, replaceBy))
|
|
10007
11702
|
.replace(_polyfillHostRe, replaceBy + ' ');
|
|
10008
11703
|
}
|
|
10009
11704
|
return scopeSelector + ' ' + selector;
|
|
@@ -10024,10 +11719,7 @@ const applyStrictSelectorScope = (selector, scopeSelector, hostSelector) => {
|
|
|
10024
11719
|
// remove :host since it should be unnecessary
|
|
10025
11720
|
const t = p.replace(_polyfillHostRe, '');
|
|
10026
11721
|
if (t.length > 0) {
|
|
10027
|
-
|
|
10028
|
-
if (matches) {
|
|
10029
|
-
scopedP = matches[1] + className + matches[2] + matches[3];
|
|
10030
|
-
}
|
|
11722
|
+
scopedP = injectScopingSelector(t, className);
|
|
10031
11723
|
}
|
|
10032
11724
|
}
|
|
10033
11725
|
return scopedP;
|
|
@@ -10165,4 +11857,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
|
|
|
10165
11857
|
scopeCss: scopeCss
|
|
10166
11858
|
});
|
|
10167
11859
|
|
|
10168
|
-
export { DuetAlert, DuetBadge, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
|
|
11860
|
+
export { DuetAlert, DuetBadge, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
|