@duetds/components 5.1.9 → 5.2.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 +392 -125
- package/lib/cjs/{dom-66424ef2.js → dom-96576bce.js} +1 -1
- package/lib/cjs/duet-action-button.cjs.entry.js +16 -8
- package/lib/cjs/duet-alert.cjs.entry.js +2 -2
- package/lib/cjs/duet-badge.cjs.entry.js +2 -2
- package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
- package/lib/cjs/duet-breadcrumbs.cjs.entry.js +2 -2
- package/lib/cjs/duet-button_2.cjs.entry.js +17 -2
- package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
- package/lib/cjs/duet-card.cjs.entry.js +2 -2
- package/lib/cjs/duet-checkbox.cjs.entry.js +15 -3
- package/lib/cjs/duet-choice_2.cjs.entry.js +16 -4
- package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
- package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
- package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
- package/lib/cjs/duet-date-picker.cjs.entry.js +3 -4
- package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-editable-table_3.cjs.entry.js +5 -4
- package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
- package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
- package/lib/cjs/duet-footer.cjs.entry.js +2 -2
- package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
- 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 +2 -2
- package/lib/cjs/duet-input_2.cjs.entry.js +18 -4
- 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 +12 -4
- package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-number-input.cjs.entry.js +106 -49
- package/lib/cjs/duet-pagination_2.cjs.entry.js +50 -14
- package/lib/cjs/duet-progress.cjs.entry.js +15 -3
- package/lib/cjs/duet-radio_2.cjs.entry.js +15 -3
- package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
- package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
- package/lib/cjs/duet-select.cjs.entry.js +2 -2
- package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-textarea.cjs.entry.js +17 -3
- package/lib/cjs/duet-toggle.cjs.entry.js +15 -3
- package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
- package/lib/cjs/duet-tray.cjs.entry.js +2 -2
- package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
- package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
- package/lib/cjs/duet.cjs.js +4 -4
- package/lib/cjs/{focus-utils-3ef68d4c.js → focus-utils-4648b81b.js} +1 -1
- package/lib/cjs/{index-e1907091.js → index-d690ab34.js} +11 -9
- package/lib/cjs/loader.cjs.js +3 -3
- package/lib/cjs/{shadow-css-1ff2f74f.js → shadow-css-38b9e725.js} +2 -3
- package/lib/cjs/{themeable-component-940d3b50.js → themeable-component-fdeaef9f.js} +0 -0
- package/lib/collection/collection-manifest.json +1 -1
- package/lib/collection/{utils/form-components.js → common/a11y-component.js} +0 -0
- package/lib/collection/common/form-components.js +4 -0
- package/lib/collection/common/index.js +4 -0
- package/lib/collection/{utils → common}/themeable-component.js +0 -0
- package/lib/collection/components/duet-action-button/duet-action-button.js +57 -13
- package/lib/collection/components/duet-alert/duet-alert.js +1 -1
- package/lib/collection/components/duet-badge/duet-badge.js +1 -1
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +1 -1
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +1 -1
- package/lib/collection/components/duet-button/duet-button.js +70 -1
- package/lib/collection/components/duet-caption/duet-caption.js +1 -1
- package/lib/collection/components/duet-card/duet-card.js +1 -1
- package/lib/collection/components/duet-checkbox/duet-checkbox.js +68 -2
- package/lib/collection/components/duet-choice/duet-choice.js +68 -2
- package/lib/collection/components/duet-choice-group/duet-choice-group.js +1 -1
- package/lib/collection/components/duet-collapsible/duet-collapsible.js +1 -1
- package/lib/collection/components/duet-combobox/duet-combobox.js +1 -1
- package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
- package/lib/collection/components/duet-date-picker/duet-date-picker.js +1 -1
- package/lib/collection/components/duet-date-picker/utils.js +0 -1
- package/lib/collection/components/duet-divider/duet-divider.js +1 -1
- package/lib/collection/components/duet-editable-table/duet-editable-table.js +3 -2
- package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
- package/lib/collection/components/duet-fieldset/duet-fieldset.js +1 -1
- package/lib/collection/components/duet-footer/duet-footer.js +1 -1
- package/lib/collection/components/duet-grid-item/duet-grid-item.js +1 -1
- package/lib/collection/components/duet-header/duet-header.css +1 -1
- package/lib/collection/components/duet-header/duet-header.js +1 -1
- package/lib/collection/components/duet-heading/duet-heading.js +1 -1
- package/lib/collection/components/duet-hero/duet-hero.js +1 -1
- package/lib/collection/components/duet-icon/duet-icon.js +1 -1
- package/lib/collection/components/duet-input/duet-input.js +72 -4
- package/lib/collection/components/duet-label/duet-label.js +1 -1
- package/lib/collection/components/duet-link/duet-link.js +1 -1
- package/lib/collection/components/duet-list/duet-list.js +1 -1
- package/lib/collection/components/duet-logo/duet-logo.js +1 -1
- package/lib/collection/components/duet-modal/duet-modal.js +80 -2
- package/lib/collection/components/duet-notification/duet-notification.js +1 -1
- package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +1 -1
- package/lib/collection/components/duet-number-input/duet-number-input.js +90 -29
- package/lib/collection/components/duet-pagination/duet-pagination.js +94 -3
- package/lib/collection/components/duet-paragraph/duet-paragraph.js +1 -1
- package/lib/collection/components/duet-progress/duet-progress.js +68 -2
- package/lib/collection/components/duet-radio/duet-radio.js +68 -2
- package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
- package/lib/collection/components/duet-range-slider/duet-range-slider.js +1 -1
- package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +29 -12
- package/lib/collection/components/duet-scrollable/duet-scrollable.js +1 -1
- package/lib/collection/components/duet-select/duet-select.js +1 -1
- package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
- package/lib/collection/components/duet-step/duet-step.js +1 -1
- package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
- package/lib/collection/components/duet-tab-group/duet-tab-group.js +1 -1
- package/lib/collection/components/duet-table/duet-table.css +30 -18
- package/lib/collection/components/duet-table/duet-table.js +1 -1
- package/lib/collection/components/duet-textarea/duet-textarea.js +70 -2
- package/lib/collection/components/duet-toggle/duet-toggle.js +68 -2
- package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
- package/lib/collection/components/duet-tray/duet-tray.js +1 -1
- package/lib/collection/components/duet-upload/duet-upload.js +1 -1
- package/lib/collection/utils/math.utils.js +76 -0
- package/lib/custom-elements-bundle/index.js +323 -112
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-d92b2eac.system.entry.js → p-057e3337.system.entry.js} +1 -1
- package/lib/duet/{p-7f705e70.entry.js → p-08829649.entry.js} +1 -1
- package/lib/duet/{p-cd158ec2.system.entry.js → p-0a62f171.system.entry.js} +1 -1
- package/lib/duet/{p-7772d2f3.system.entry.js → p-0da92109.system.entry.js} +1 -1
- package/lib/duet/p-10b144b0.system.entry.js +4 -0
- package/lib/duet/p-113531de.entry.js +4 -0
- package/lib/duet/{p-1c315e22.system.entry.js → p-1164c8a6.system.entry.js} +1 -1
- package/lib/duet/{p-6b87a943.system.entry.js → p-14a98f4b.system.entry.js} +1 -1
- package/lib/duet/{p-8c372ef6.system.entry.js → p-1527b7e3.system.entry.js} +2 -2
- package/lib/duet/{p-d2c9bb5f.system.entry.js → p-188d7eb5.system.entry.js} +1 -1
- package/lib/duet/{p-41ed75d0.system.entry.js → p-1c6a3c81.system.entry.js} +1 -1
- package/lib/duet/{p-ae5872e3.system.entry.js → p-1d6d8314.system.entry.js} +1 -1
- package/lib/duet/{p-b953aedb.system.entry.js → p-1fdc5601.system.entry.js} +1 -1
- package/lib/duet/p-2135afa1.system.entry.js +4 -0
- package/lib/duet/p-216d4da8.entry.js +4 -0
- package/lib/duet/{p-1d87a095.system.js → p-2260d4d2.system.js} +1 -1
- package/lib/duet/{p-fbc61588.system.entry.js → p-24201d53.system.entry.js} +1 -1
- package/lib/duet/{p-b67edf51.system.entry.js → p-31f7ef10.system.entry.js} +1 -1
- package/lib/duet/p-336ddadc.js +4 -0
- package/lib/duet/{p-6b03322b.system.js → p-33b3aba4.system.js} +0 -0
- package/lib/duet/p-355f9884.entry.js +4 -0
- package/lib/duet/{p-851b469e.system.entry.js → p-35611d73.system.entry.js} +2 -2
- package/lib/duet/{p-b5ef3764.entry.js → p-3735b874.entry.js} +1 -1
- package/lib/duet/p-38c52a73.entry.js +4 -0
- package/lib/duet/{p-3ed22b96.system.entry.js → p-3a529853.system.entry.js} +1 -1
- package/lib/duet/{p-fa59ebf4.js → p-3b31184e.js} +0 -0
- package/lib/duet/{p-2d244cbb.system.entry.js → p-3b871ee9.system.entry.js} +1 -1
- package/lib/duet/{p-d7e383e1.system.entry.js → p-3c0d7470.system.entry.js} +2 -2
- package/lib/duet/p-3cf51bd3.entry.js +4 -0
- package/lib/duet/p-3dadaaf9.entry.js +4 -0
- package/lib/duet/p-3e510a51.entry.js +4 -0
- package/lib/duet/{p-fcf30d60.system.entry.js → p-43c0c459.system.entry.js} +1 -1
- package/lib/duet/p-479657e4.entry.js +4 -0
- package/lib/duet/p-4804b9d8.system.entry.js +4 -0
- package/lib/duet/{p-d50a26ce.system.entry.js → p-4a000e12.system.entry.js} +2 -2
- package/lib/duet/p-4be66230.js +5 -0
- package/lib/duet/{p-abf8eaf7.js → p-4ebf1618.js} +0 -0
- package/lib/duet/{p-43a54146.system.entry.js → p-54eadbb6.system.entry.js} +1 -1
- package/lib/duet/{p-b32178af.entry.js → p-55fbbafb.entry.js} +1 -1
- package/lib/duet/{p-0a8cb1f2.system.entry.js → p-56a92e4b.system.entry.js} +1 -1
- package/lib/duet/{p-eda1280f.entry.js → p-57934454.entry.js} +1 -1
- package/lib/duet/{p-6fd465b3.entry.js → p-5a4a83ce.entry.js} +1 -1
- package/lib/duet/{p-2e68b854.system.entry.js → p-5aec2bd7.system.entry.js} +1 -1
- package/lib/duet/p-5da3ec79.entry.js +4 -0
- package/lib/duet/{p-5b0f15e4.entry.js → p-6009349f.entry.js} +1 -1
- package/lib/duet/{p-f4b909bd.system.entry.js → p-636c9c24.system.entry.js} +1 -1
- package/lib/duet/{p-ca10ad5f.system.entry.js → p-65b4903d.system.entry.js} +1 -1
- package/lib/duet/{p-5d2204fc.entry.js → p-6ecb8b94.entry.js} +1 -1
- package/lib/duet/{p-906e53f9.entry.js → p-7bad44b0.entry.js} +1 -1
- package/lib/duet/{p-0da0c06d.system.entry.js → p-7ccefcc3.system.entry.js} +2 -2
- package/lib/duet/p-7e3eec66.system.entry.js +4 -0
- package/lib/duet/{p-ef5c2a47.system.entry.js → p-7fbb09c1.system.entry.js} +1 -1
- package/lib/duet/{p-d5b3feeb.system.entry.js → p-804eb7eb.system.entry.js} +1 -1
- package/lib/duet/p-808d661f.system.entry.js +4 -0
- package/lib/duet/{p-5b609e18.entry.js → p-834242e9.entry.js} +1 -1
- package/lib/duet/{p-8fa561be.system.entry.js → p-84a95f49.system.entry.js} +1 -1
- package/lib/duet/{p-0e3fad96.entry.js → p-879ab923.entry.js} +1 -1
- package/lib/duet/p-89368497.system.js +4 -0
- package/lib/duet/p-8d7c2cf4.entry.js +4 -0
- package/lib/duet/{p-1ce6c0c0.entry.js → p-928e0b63.entry.js} +1 -1
- package/lib/duet/{p-c5b1e054.system.entry.js → p-95dc8004.system.entry.js} +1 -1
- package/lib/duet/{p-36455aba.entry.js → p-96e03d88.entry.js} +1 -1
- package/lib/duet/{p-95be8318.system.entry.js → p-974143b1.system.entry.js} +1 -1
- package/lib/duet/{p-2911128f.entry.js → p-999dec9f.entry.js} +1 -1
- package/lib/duet/p-9e3cd6b5.entry.js +4 -0
- package/lib/duet/p-9ed30f80.entry.js +4 -0
- package/lib/duet/p-a1980c81.entry.js +4 -0
- package/lib/duet/{p-007518fb.entry.js → p-a7e5cd45.entry.js} +1 -1
- package/lib/duet/p-aae30188.system.js +5 -0
- package/lib/duet/{p-7f26e522.entry.js → p-ab66df54.entry.js} +1 -1
- package/lib/duet/p-af5f34fb.entry.js +4 -0
- package/lib/duet/p-afc7cc44.entry.js +4 -0
- package/lib/duet/{p-542af014.system.js → p-b668b67c.system.js} +0 -0
- package/lib/duet/p-b6cea2fb.entry.js +4 -0
- package/lib/duet/p-be1a1ee5.entry.js +4 -0
- package/lib/duet/{p-c23ef060.entry.js → p-bf306f77.entry.js} +1 -1
- package/lib/duet/{p-76dc3268.entry.js → p-c0cb67d7.entry.js} +1 -1
- package/lib/duet/p-c858aedd.entry.js +4 -0
- package/lib/duet/{p-00f69be4.entry.js → p-cbb59840.entry.js} +1 -1
- package/lib/duet/{p-27d238c5.js → p-d4c234ed.js} +1 -1
- package/lib/duet/{p-4fb88265.entry.js → p-d511ca66.entry.js} +1 -1
- package/lib/duet/{p-fcb0ac03.system.entry.js → p-db48e77a.system.entry.js} +2 -2
- package/lib/duet/{p-6d148390.system.entry.js → p-dc429d5d.system.entry.js} +2 -2
- package/lib/duet/p-e0ba5d9e.system.entry.js +4 -0
- package/lib/duet/{p-70f5c86d.entry.js → p-e3010ea3.entry.js} +1 -1
- package/lib/duet/{p-43bdb5df.system.entry.js → p-e3e092e1.system.entry.js} +2 -2
- package/lib/duet/p-e406a3b7.entry.js +4 -0
- package/lib/duet/{p-080ce662.entry.js → p-e4133a47.entry.js} +1 -1
- package/lib/duet/{p-86395c08.entry.js → p-e5992e2a.entry.js} +1 -1
- package/lib/duet/{p-eeeadb94.entry.js → p-e67563e7.entry.js} +1 -1
- package/lib/duet/{p-f4bba24d.system.entry.js → p-e6ff063e.system.entry.js} +1 -1
- package/lib/duet/{p-4fcde9bd.system.entry.js → p-e7eb9f7a.system.entry.js} +1 -1
- package/lib/duet/{p-f1f59897.system.entry.js → p-e8658390.system.entry.js} +1 -1
- package/lib/duet/p-ea59bb06.system.entry.js +4 -0
- package/lib/duet/p-ff46ec81.system.js +16 -0
- package/lib/esm/{dom-3c479050.js → dom-3dbcb0d8.js} +1 -1
- package/lib/esm/duet-action-button.entry.js +16 -8
- package/lib/esm/duet-alert.entry.js +2 -2
- package/lib/esm/duet-badge.entry.js +2 -2
- package/lib/esm/duet-breadcrumb.entry.js +2 -2
- package/lib/esm/duet-breadcrumbs.entry.js +2 -2
- package/lib/esm/duet-button_2.entry.js +17 -2
- package/lib/esm/duet-caption_4.entry.js +2 -2
- package/lib/esm/duet-card.entry.js +2 -2
- package/lib/esm/duet-checkbox.entry.js +15 -3
- package/lib/esm/duet-choice_2.entry.js +16 -4
- package/lib/esm/duet-collapsible.entry.js +2 -2
- package/lib/esm/duet-combobox.entry.js +2 -2
- package/lib/esm/duet-cookie-consent.entry.js +2 -2
- package/lib/esm/duet-date-picker.entry.js +3 -4
- package/lib/esm/duet-divider_2.entry.js +2 -2
- package/lib/esm/duet-editable-table_3.entry.js +5 -4
- package/lib/esm/duet-empty-state.entry.js +2 -2
- package/lib/esm/duet-fieldset.entry.js +2 -2
- package/lib/esm/duet-footer.entry.js +2 -2
- package/lib/esm/duet-grid_2.entry.js +2 -2
- 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 +2 -2
- package/lib/esm/duet-input_2.entry.js +18 -4
- 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 +12 -4
- package/lib/esm/duet-notification_2.entry.js +2 -2
- package/lib/esm/duet-number-input.entry.js +106 -49
- package/lib/esm/duet-pagination_2.entry.js +50 -14
- package/lib/esm/duet-progress.entry.js +15 -3
- package/lib/esm/duet-radio_2.entry.js +15 -3
- package/lib/esm/duet-range-slider.entry.js +2 -2
- package/lib/esm/duet-scrollable_3.entry.js +2 -2
- package/lib/esm/duet-select.entry.js +2 -2
- package/lib/esm/duet-step_2.entry.js +2 -2
- package/lib/esm/duet-textarea.entry.js +17 -3
- package/lib/esm/duet-toggle.entry.js +15 -3
- package/lib/esm/duet-tooltip.entry.js +2 -2
- package/lib/esm/duet-tray.entry.js +2 -2
- package/lib/esm/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm/duet-visually-hidden.entry.js +1 -1
- package/lib/esm/duet.js +4 -4
- package/lib/esm/{focus-utils-dbdd6235.js → focus-utils-6313db97.js} +1 -1
- package/lib/esm/{index-33a07cd5.js → index-9e6ac831.js} +11 -9
- package/lib/esm/loader.js +3 -3
- package/lib/esm/polyfills/css-shim.js +1 -1
- package/lib/esm/{shadow-css-fbe49d20.js → shadow-css-501eda9a.js} +2 -3
- package/lib/esm/{themeable-component-e8fc98bf.js → themeable-component-cb76be7c.js} +0 -0
- package/lib/esm-es5/{dom-3c479050.js → dom-3dbcb0d8.js} +0 -0
- package/lib/esm-es5/duet-action-button.entry.js +2 -2
- 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-breadcrumb.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm-es5/duet-button_2.entry.js +1 -1
- package/lib/esm-es5/duet-caption_4.entry.js +1 -1
- 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 +2 -2
- package/lib/esm-es5/duet-collapsible.entry.js +1 -1
- package/lib/esm-es5/duet-combobox.entry.js +1 -1
- 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_3.entry.js +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- package/lib/esm-es5/duet-notification_2.entry.js +1 -1
- package/lib/esm-es5/duet-number-input.entry.js +2 -2
- package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
- package/lib/esm-es5/duet-progress.entry.js +1 -1
- 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-scrollable_3.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-textarea.entry.js +2 -2
- package/lib/esm-es5/duet-toggle.entry.js +2 -2
- 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 +1 -1
- 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-6313db97.js +4 -0
- package/lib/esm-es5/index-9e6ac831.js +5 -0
- package/lib/esm-es5/loader.js +1 -1
- package/lib/esm-es5/shadow-css-501eda9a.js +15 -0
- package/lib/esm-es5/{themeable-component-e8fc98bf.js → themeable-component-cb76be7c.js} +0 -0
- package/lib/types/common/a11y-component.d.ts +13 -0
- package/lib/types/{utils → common}/form-components.d.ts +0 -1
- package/lib/types/common/index.d.ts +3 -0
- package/lib/types/{utils → common}/themeable-component.d.ts +0 -0
- package/lib/types/components/duet-action-button/duet-action-button.d.ts +15 -7
- package/lib/types/components/duet-alert/duet-alert.d.ts +1 -1
- package/lib/types/components/duet-badge/duet-badge.d.ts +1 -1
- package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +1 -1
- package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +1 -1
- package/lib/types/components/duet-button/duet-button.d.ts +14 -3
- package/lib/types/components/duet-caption/duet-caption.d.ts +1 -1
- package/lib/types/components/duet-card/duet-card.d.ts +1 -1
- package/lib/types/components/duet-checkbox/duet-checkbox.d.ts +14 -3
- package/lib/types/components/duet-choice/duet-choice.d.ts +14 -3
- package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +1 -1
- package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +1 -1
- package/lib/types/components/duet-combobox/duet-combobox.d.ts +1 -1
- package/lib/types/components/duet-cookie-consent/duet-cookie-consent.d.ts +1 -1
- package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +2 -2
- package/lib/types/components/duet-divider/duet-divider.d.ts +1 -1
- package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +1 -1
- package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +1 -1
- package/lib/types/components/duet-fieldset/duet-fieldset.d.ts +1 -1
- package/lib/types/components/duet-footer/duet-footer.d.ts +1 -1
- package/lib/types/components/duet-grid-item/duet-grid-item.d.ts +1 -1
- package/lib/types/components/duet-header/duet-header.d.ts +1 -1
- package/lib/types/components/duet-heading/duet-heading.d.ts +1 -1
- package/lib/types/components/duet-hero/duet-hero.d.ts +1 -1
- package/lib/types/components/duet-icon/duet-icon.d.ts +1 -1
- package/lib/types/components/duet-input/duet-input.d.ts +15 -4
- package/lib/types/components/duet-label/duet-label.d.ts +1 -1
- package/lib/types/components/duet-link/duet-link.d.ts +1 -1
- package/lib/types/components/duet-list/duet-list.d.ts +1 -1
- package/lib/types/components/duet-logo/duet-logo.d.ts +1 -1
- package/lib/types/components/duet-modal/duet-modal.d.ts +18 -2
- package/lib/types/components/duet-notification/duet-notification.d.ts +1 -1
- package/lib/types/components/duet-notification-drawer/duet-notification-drawer.d.ts +1 -1
- package/lib/types/components/duet-number-input/duet-number-input.d.ts +14 -4
- package/lib/types/components/duet-pagination/duet-pagination.d.ts +18 -2
- package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +1 -1
- package/lib/types/components/duet-progress/duet-progress.d.ts +14 -2
- package/lib/types/components/duet-radio/duet-radio.d.ts +14 -3
- package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +1 -1
- package/lib/types/components/duet-range-slider/duet-range-slider.d.ts +2 -2
- package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +4 -2
- package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +1 -1
- package/lib/types/components/duet-select/duet-select.d.ts +2 -2
- package/lib/types/components/duet-spinner/duet-spinner.d.ts +1 -1
- package/lib/types/components/duet-step/duet-step.d.ts +1 -1
- package/lib/types/components/duet-stepper/duet-stepper.d.ts +1 -1
- package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +1 -1
- package/lib/types/components/duet-table/duet-table.d.ts +1 -1
- package/lib/types/components/duet-textarea/duet-textarea.d.ts +14 -3
- package/lib/types/components/duet-toggle/duet-toggle.d.ts +14 -3
- package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +1 -1
- package/lib/types/components/duet-tray/duet-tray.d.ts +1 -1
- package/lib/types/components/duet-upload/duet-upload.d.ts +2 -2
- package/lib/types/components.d.ts +520 -112
- package/lib/types/utils/math.utils.d.ts +11 -0
- package/package.json +6 -6
- package/lib/collection/components/duet-number-input/number-input-utils.js +0 -26
- package/lib/duet/p-0fce5ee0.entry.js +0 -4
- package/lib/duet/p-112c7cf4.entry.js +0 -4
- package/lib/duet/p-14940019.entry.js +0 -4
- package/lib/duet/p-1a39ba08.entry.js +0 -4
- package/lib/duet/p-2c66423c.system.entry.js +0 -4
- package/lib/duet/p-3504f285.system.entry.js +0 -4
- package/lib/duet/p-356c2c34.entry.js +0 -4
- package/lib/duet/p-41e0b7a6.entry.js +0 -4
- package/lib/duet/p-46aab89e.entry.js +0 -4
- package/lib/duet/p-539f2a06.system.js +0 -4
- package/lib/duet/p-55376e66.system.entry.js +0 -4
- package/lib/duet/p-56212fca.js +0 -4
- package/lib/duet/p-60931fe2.entry.js +0 -4
- package/lib/duet/p-65256911.entry.js +0 -4
- package/lib/duet/p-6d4f68c7.entry.js +0 -4
- package/lib/duet/p-80d48e3c.entry.js +0 -4
- package/lib/duet/p-92a25fb5.system.js +0 -16
- package/lib/duet/p-934b6e46.entry.js +0 -4
- package/lib/duet/p-aa3a10db.system.entry.js +0 -4
- package/lib/duet/p-b97e1c6e.entry.js +0 -4
- package/lib/duet/p-c94d980f.system.entry.js +0 -4
- package/lib/duet/p-c953e685.entry.js +0 -4
- package/lib/duet/p-cce3f6c1.system.js +0 -4
- package/lib/duet/p-ce973d95.entry.js +0 -4
- package/lib/duet/p-da4808e6.entry.js +0 -4
- package/lib/duet/p-da6ec22c.js +0 -4
- package/lib/duet/p-e70200b0.entry.js +0 -4
- package/lib/duet/p-e93e4714.system.entry.js +0 -4
- package/lib/duet/p-fb9b713b.entry.js +0 -4
- package/lib/duet/p-fec90322.entry.js +0 -4
- package/lib/duet/p-ff54acdd.system.entry.js +0 -4
- package/lib/esm-es5/focus-utils-dbdd6235.js +0 -4
- package/lib/esm-es5/index-33a07cd5.js +0 -4
- package/lib/esm-es5/shadow-css-fbe49d20.js +0 -15
- package/lib/types/components/duet-number-input/number-input-utils.d.ts +0 -4
package/hydrate/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
8
|
/*!
|
|
9
|
-
Stencil Mock Doc v2.
|
|
9
|
+
Stencil Mock Doc v2.16.0 | MIT Licensed | https://stenciljs.com
|
|
10
10
|
*/
|
|
11
11
|
const CONTENT_REF_ID = 'r';
|
|
12
12
|
const ORG_LOCATION_ID = 'o';
|
|
@@ -385,7 +385,7 @@ function toDataAttribute(str) {
|
|
|
385
385
|
.toLowerCase());
|
|
386
386
|
}
|
|
387
387
|
function dashToPascalCase(str) {
|
|
388
|
-
str = String(str).
|
|
388
|
+
str = String(str).slice(5);
|
|
389
389
|
return str
|
|
390
390
|
.split('-')
|
|
391
391
|
.map((segment, index) => {
|
|
@@ -589,7 +589,7 @@ function cssCaseToJsCase(str) {
|
|
|
589
589
|
.split('-')
|
|
590
590
|
.map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
|
|
591
591
|
.join('');
|
|
592
|
-
str = str.
|
|
592
|
+
str = str.slice(0, 1).toLowerCase() + str.slice(1);
|
|
593
593
|
}
|
|
594
594
|
return str;
|
|
595
595
|
}
|
|
@@ -1532,7 +1532,11 @@ class MockNode {
|
|
|
1532
1532
|
if (otherNode === this) {
|
|
1533
1533
|
return true;
|
|
1534
1534
|
}
|
|
1535
|
-
|
|
1535
|
+
const childNodes = Array.from(this.childNodes);
|
|
1536
|
+
if (childNodes.includes(otherNode)) {
|
|
1537
|
+
return true;
|
|
1538
|
+
}
|
|
1539
|
+
return childNodes.some((node) => this.contains.bind(node)(otherNode));
|
|
1536
1540
|
}
|
|
1537
1541
|
removeChild(childNode) {
|
|
1538
1542
|
const index = this.childNodes.indexOf(childNode);
|
|
@@ -3169,6 +3173,15 @@ class MockResponse {
|
|
|
3169
3173
|
}
|
|
3170
3174
|
}
|
|
3171
3175
|
|
|
3176
|
+
class MockDOMParser {
|
|
3177
|
+
parseFromString(htmlToParse, mimeType) {
|
|
3178
|
+
if (mimeType !== 'text/html') {
|
|
3179
|
+
console.error('XML parsing not implemented yet, continuing as html');
|
|
3180
|
+
}
|
|
3181
|
+
return parseHtmlToDocument(htmlToParse);
|
|
3182
|
+
}
|
|
3183
|
+
}
|
|
3184
|
+
|
|
3172
3185
|
function setupGlobal(gbl) {
|
|
3173
3186
|
if (gbl.window == null) {
|
|
3174
3187
|
const win = (gbl.window = new MockWindow());
|
|
@@ -3298,6 +3311,7 @@ const GLOBAL_CONSTRUCTORS = [
|
|
|
3298
3311
|
['MouseEvent', MockMouseEvent],
|
|
3299
3312
|
['Request', MockRequest],
|
|
3300
3313
|
['Response', MockResponse],
|
|
3314
|
+
['DOMParser', MockDOMParser],
|
|
3301
3315
|
['HTMLAnchorElement', MockAnchorElement],
|
|
3302
3316
|
['HTMLBaseElement', MockBaseElement],
|
|
3303
3317
|
['HTMLButtonElement', MockButtonElement],
|
|
@@ -4963,7 +4977,8 @@ const createTime = (e, t = "") => {
|
|
|
4963
4977
|
let n = styles.get(e);
|
|
4964
4978
|
n = t, styles.set(e, n);
|
|
4965
4979
|
}, addStyle = (e, t, o, n) => {
|
|
4966
|
-
let s = getScopeId(t)
|
|
4980
|
+
let s = getScopeId(t);
|
|
4981
|
+
const l = styles.get(s);
|
|
4967
4982
|
if (e = 11 === e.nodeType ? e : doc, l) if ("string" == typeof l) {
|
|
4968
4983
|
e = e.head || e;
|
|
4969
4984
|
let o, a = rootAppliedStyles.get(e);
|
|
@@ -4983,8 +4998,8 @@ const createTime = (e, t = "") => {
|
|
|
4983
4998
|
o.classList.add(l + "-h"), 2 & n && o.classList.add(l + "-s")),
|
|
4984
4999
|
s();
|
|
4985
5000
|
}, getScopeId = (e, t) => "sc-" + (e.$tagName$), EMPTY_OBJ = {}, isComplexType = e => "object" == (e = typeof e) || "function" === e, isPromise = e => !!e && ("object" == typeof e || "function" == typeof e) && "function" == typeof e.then, h = (e, t, ...o) => {
|
|
4986
|
-
let n = null, s = null, l = null, a = !1, r = !1
|
|
4987
|
-
const d = t => {
|
|
5001
|
+
let n = null, s = null, l = null, a = !1, r = !1;
|
|
5002
|
+
const i = [], d = t => {
|
|
4988
5003
|
for (let o = 0; o < t.length; o++) n = t[o], Array.isArray(n) ? d(n) : null != n && "boolean" != typeof n && ((a = "function" != typeof e && !isComplexType(n)) ? n = String(n) : BUILD.isDev ,
|
|
4989
5004
|
a && r ? i[i.length - 1].$text$ += n : i.push(a ? newVNode(null, n) : n), r = a);
|
|
4990
5005
|
};
|
|
@@ -5041,7 +5056,7 @@ const createTime = (e, t = "") => {
|
|
|
5041
5056
|
const i = isComplexType(n);
|
|
5042
5057
|
if ((a || i && null !== n) && !s) try {
|
|
5043
5058
|
if (e.tagName.includes("-")) e[t] = n; else {
|
|
5044
|
-
|
|
5059
|
+
const s = null == n ? "" : n;
|
|
5045
5060
|
"list" === t ? a = !1 : null != o && e[t] == s || (e[t] = s);
|
|
5046
5061
|
}
|
|
5047
5062
|
} catch (e) {}
|
|
@@ -5061,20 +5076,21 @@ const createTime = (e, t = "") => {
|
|
|
5061
5076
|
let scopeId, contentRef, hostTagName, useNativeShadowDom = !1, checkSlotFallbackVisibility = !1, checkSlotRelocate = !1, isSvgMode = !1;
|
|
5062
5077
|
|
|
5063
5078
|
const createElm = (e, t, o, n) => {
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
isSvgMode && "
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5079
|
+
const s = t.$children$[o];
|
|
5080
|
+
let l, a, r, i = 0;
|
|
5081
|
+
if (!useNativeShadowDom && (checkSlotRelocate = !0, "slot" === s.$tag$ && (scopeId && n.classList.add(scopeId + "-s"),
|
|
5082
|
+
s.$flags$ |= s.$children$ ? 2 : 1)), null !== s.$text$) l = s.$elm$ = doc.createTextNode(s.$text$); else if (1 & s.$flags$) l = s.$elm$ = slotReferenceDebugNode(s) ; else {
|
|
5083
|
+
if (!isSvgMode && (isSvgMode = "svg" === s.$tag$), l = s.$elm$ = doc.createElementNS(isSvgMode ? "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml", 2 & s.$flags$ ? "slot-fb" : s.$tag$) ,
|
|
5084
|
+
isSvgMode && "foreignObject" === s.$tag$ && (isSvgMode = !1), updateElement(null, s, isSvgMode),
|
|
5085
|
+
null != scopeId && l["s-si"] !== scopeId && l.classList.add(l["s-si"] = scopeId),
|
|
5086
|
+
s.$children$) for (i = 0; i < s.$children$.length; ++i) a = createElm(e, s, i, l),
|
|
5087
|
+
a && l.appendChild(a);
|
|
5088
|
+
("svg" === s.$tag$ ? isSvgMode = !1 : "foreignObject" === l.tagName && (isSvgMode = !0));
|
|
5073
5089
|
}
|
|
5074
|
-
return (
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5090
|
+
return (l["s-hn"] = hostTagName, 3 & s.$flags$ && (l["s-sr"] = !0,
|
|
5091
|
+
l["s-cr"] = contentRef, l["s-sn"] = s.$name$ || "", r = e && e.$children$ && e.$children$[o],
|
|
5092
|
+
r && r.$tag$ === s.$tag$ && e.$elm$ && putBackInOriginalLocation(e.$elm$, !1))),
|
|
5093
|
+
l;
|
|
5078
5094
|
}, putBackInOriginalLocation = (e, t) => {
|
|
5079
5095
|
plt.$flags$ |= 1;
|
|
5080
5096
|
const o = e.childNodes;
|
|
@@ -5115,22 +5131,24 @@ const createElm = (e, t, o, n) => {
|
|
|
5115
5131
|
addVnodes(o, null, t, s, 0, s.length - 1)) : null !== n && removeVnodes(n, 0, n.length - 1),
|
|
5116
5132
|
isSvgMode && "svg" === l && (isSvgMode = !1));
|
|
5117
5133
|
}, updateFallbackSlotVisibility = e => {
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5134
|
+
const t = e.childNodes;
|
|
5135
|
+
let o, n, s, l, a, r;
|
|
5136
|
+
for (n = 0, s = t.length; n < s; n++) if (o = t[n], 1 === o.nodeType) {
|
|
5137
|
+
if (o["s-sr"]) for (a = o["s-sn"], o.hidden = !1, l = 0; l < s; l++) if (r = t[l].nodeType,
|
|
5138
|
+
t[l]["s-hn"] !== o["s-hn"] || "" !== a) {
|
|
5139
|
+
if (1 === r && a === t[l].getAttribute("slot")) {
|
|
5140
|
+
o.hidden = !0;
|
|
5124
5141
|
break;
|
|
5125
5142
|
}
|
|
5126
|
-
} else if (1 ===
|
|
5127
|
-
|
|
5143
|
+
} else if (1 === r || 3 === r && "" !== t[l].textContent.trim()) {
|
|
5144
|
+
o.hidden = !0;
|
|
5128
5145
|
break;
|
|
5129
5146
|
}
|
|
5130
|
-
updateFallbackSlotVisibility(
|
|
5147
|
+
updateFallbackSlotVisibility(o);
|
|
5131
5148
|
}
|
|
5132
5149
|
}, relocateNodes = [], relocateSlotContent = e => {
|
|
5133
|
-
let t, o, n, s, l, a, r = 0
|
|
5150
|
+
let t, o, n, s, l, a, r = 0;
|
|
5151
|
+
const i = e.childNodes, d = i.length;
|
|
5134
5152
|
for (;r < d; r++) {
|
|
5135
5153
|
if (t = i[r], t["s-sr"] && (o = t["s-cr"]) && o.parentNode) for (n = o.parentNode.childNodes,
|
|
5136
5154
|
s = t["s-sn"], a = n.length - 1; a >= 0; a--) o = n[a], o["s-cn"] || o["s-nr"] || o["s-hn"] === t["s-hn"] || (isNodeLocatedInSlot(o, s) ? (l = relocateNodes.find((e => e.$nodeToRelocate$ === o)),
|
|
@@ -5572,6 +5590,15 @@ const cmpModules = new Map, getModule = e => {
|
|
|
5572
5590
|
isTesting: !1
|
|
5573
5591
|
}, styles = new Map;
|
|
5574
5592
|
|
|
5593
|
+
const inheritGlobalTheme = (component) => {
|
|
5594
|
+
// this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
|
|
5595
|
+
const classList = Array.from(document.documentElement.classList).join(" ") || "";
|
|
5596
|
+
const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
|
|
5597
|
+
if (theme && theme[1] === "duet-theme-") {
|
|
5598
|
+
component.theme = theme[2] === "default" ? "" : theme[2];
|
|
5599
|
+
}
|
|
5600
|
+
};
|
|
5601
|
+
|
|
5575
5602
|
function chr4() {
|
|
5576
5603
|
return Math.random().toString(16).slice(-4);
|
|
5577
5604
|
}
|
|
@@ -5764,15 +5791,6 @@ const getLocaleString = (langObject, languageOverride) => {
|
|
|
5764
5791
|
}
|
|
5765
5792
|
};
|
|
5766
5793
|
|
|
5767
|
-
const inheritGlobalTheme = (component) => {
|
|
5768
|
-
// this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
|
|
5769
|
-
const classList = Array.from(document.documentElement.classList).join(" ") || "";
|
|
5770
|
-
const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
|
|
5771
|
-
if (theme && theme[1] === "duet-theme-") {
|
|
5772
|
-
component.theme = theme[2] === "default" ? "" : theme[2];
|
|
5773
|
-
}
|
|
5774
|
-
};
|
|
5775
|
-
|
|
5776
5794
|
const colorWarning = "rgb(247, 178, 40)";
|
|
5777
5795
|
const colorGrayDarker = "rgb(101, 119, 135)";
|
|
5778
5796
|
const colorGrayLighter = "rgb(245, 248, 250)";
|
|
@@ -6221,15 +6239,23 @@ class DuetActionButton {
|
|
|
6221
6239
|
/**
|
|
6222
6240
|
* Described By id
|
|
6223
6241
|
*/
|
|
6224
|
-
this.
|
|
6242
|
+
this.accessibleDescribedBy = undefined;
|
|
6243
|
+
/**
|
|
6244
|
+
* Details of the component
|
|
6245
|
+
*/
|
|
6246
|
+
this.accessibleDetails = undefined;
|
|
6247
|
+
/**
|
|
6248
|
+
* String of id's that indicate alternative labels elements
|
|
6249
|
+
*/
|
|
6250
|
+
this.accessibleLabelledBy = undefined;
|
|
6225
6251
|
/**
|
|
6226
6252
|
* Aria description the button
|
|
6227
6253
|
*/
|
|
6228
|
-
this.
|
|
6254
|
+
this.accessibleDescription = undefined;
|
|
6229
6255
|
/**
|
|
6230
6256
|
* Default pagination labels
|
|
6231
6257
|
*/
|
|
6232
|
-
this.
|
|
6258
|
+
this.accessibleLabelsDefaults = {
|
|
6233
6259
|
en: {
|
|
6234
6260
|
label: "Click to activate action",
|
|
6235
6261
|
},
|
|
@@ -6243,11 +6269,11 @@ class DuetActionButton {
|
|
|
6243
6269
|
/**
|
|
6244
6270
|
* Default pagination labels
|
|
6245
6271
|
*/
|
|
6246
|
-
this.
|
|
6272
|
+
this.accessibleLabels = getLocaleString(this.accessibleLabelsDefaults);
|
|
6247
6273
|
/**
|
|
6248
6274
|
* Used to indicate which dom element with ID this element controls
|
|
6249
6275
|
*/
|
|
6250
|
-
this.
|
|
6276
|
+
this.accessibleControls = "";
|
|
6251
6277
|
this.listId = createID("duet-action-button");
|
|
6252
6278
|
/**
|
|
6253
6279
|
* Private methods.
|
|
@@ -6315,7 +6341,7 @@ class DuetActionButton {
|
|
|
6315
6341
|
"duet-action-button": true,
|
|
6316
6342
|
"duet-action-button--disabled": this.disabled,
|
|
6317
6343
|
[`duet-action-button--${this.theme}`]: this.theme !== "",
|
|
6318
|
-
}, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.
|
|
6344
|
+
}, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.accessibleLabels.label, "aria-labelledby": this.accessibleLabelledBy, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, "aria-details": this.accessibleDetails, "aria-controls": this.accessibleControls }, hAsync("duet-icon", { part: "icon", name: this.iconName, color: this.iconColor, margin: "none", size: this.iconSize }), hAsync("duet-visually-hidden", null, hAsync("slot", null)))));
|
|
6319
6345
|
}
|
|
6320
6346
|
get element() { return getElement(this); }
|
|
6321
6347
|
static get style() { return duetActionButtonCss; }
|
|
@@ -6333,11 +6359,13 @@ class DuetActionButton {
|
|
|
6333
6359
|
"disabled": [4],
|
|
6334
6360
|
"color": [513],
|
|
6335
6361
|
"background": [1],
|
|
6336
|
-
"
|
|
6337
|
-
"
|
|
6338
|
-
"
|
|
6339
|
-
"
|
|
6340
|
-
"
|
|
6362
|
+
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
6363
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
6364
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
6365
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
6366
|
+
"accessibleLabelsDefaults": [16],
|
|
6367
|
+
"accessibleLabels": [16],
|
|
6368
|
+
"accessibleControls": [1, "accessible-controls"],
|
|
6341
6369
|
"numbersStore": [32]
|
|
6342
6370
|
},
|
|
6343
6371
|
"$listeners$": undefined,
|
|
@@ -6642,6 +6670,18 @@ class DuetButton {
|
|
|
6642
6670
|
* Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
|
|
6643
6671
|
*/
|
|
6644
6672
|
this.accessiblePopup = "false";
|
|
6673
|
+
/**
|
|
6674
|
+
* Details of the component
|
|
6675
|
+
*/
|
|
6676
|
+
this.accessibleDetails = undefined;
|
|
6677
|
+
/**
|
|
6678
|
+
* String of id's that indicate alternative labels elements
|
|
6679
|
+
*/
|
|
6680
|
+
this.accessibleLabelledBy = undefined;
|
|
6681
|
+
/**
|
|
6682
|
+
* Aria description the button
|
|
6683
|
+
*/
|
|
6684
|
+
this.accessibleDescription = undefined;
|
|
6645
6685
|
/**
|
|
6646
6686
|
* Loading state of the button
|
|
6647
6687
|
*/
|
|
@@ -6850,6 +6890,9 @@ class DuetButton {
|
|
|
6850
6890
|
"aria-activedescendant": this.accessibleActiveDescendant,
|
|
6851
6891
|
"aria-owns": this.accessibleOwns,
|
|
6852
6892
|
"aria-describedby": this.accessibleDescribedBy,
|
|
6893
|
+
"aria-labelledby": this.accessibleLabelledBy,
|
|
6894
|
+
"aria-details": this.accessibleDetails,
|
|
6895
|
+
"aria-description": this.accessibleDescription,
|
|
6853
6896
|
};
|
|
6854
6897
|
return (hAsync(Host, { onClick: this.handleClick, class: {
|
|
6855
6898
|
"duet-m-0": this.margin === "none",
|
|
@@ -6883,6 +6926,9 @@ class DuetButton {
|
|
|
6883
6926
|
"accessibleActiveDescendant": [1, "accessible-active-descendant"],
|
|
6884
6927
|
"accessibleOwns": [1, "accessible-owns"],
|
|
6885
6928
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
6929
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
6930
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
6931
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
6886
6932
|
"accessibleExpanded": [4, "accessible-expanded"],
|
|
6887
6933
|
"accessiblePressed": [4, "accessible-pressed"],
|
|
6888
6934
|
"loading": [4],
|
|
@@ -7153,6 +7199,18 @@ class DuetCheckbox {
|
|
|
7153
7199
|
* Controls the margin of the component.
|
|
7154
7200
|
*/
|
|
7155
7201
|
this.margin = "auto";
|
|
7202
|
+
/**
|
|
7203
|
+
* Aria Details of the component
|
|
7204
|
+
*/
|
|
7205
|
+
this.accessibleDetails = undefined;
|
|
7206
|
+
/**
|
|
7207
|
+
* String of id's that indicate alternative labels elements
|
|
7208
|
+
*/
|
|
7209
|
+
this.accessibleLabelledBy = undefined;
|
|
7210
|
+
/**
|
|
7211
|
+
* Aria description the button
|
|
7212
|
+
*/
|
|
7213
|
+
this.accessibleDescription = undefined;
|
|
7156
7214
|
/**
|
|
7157
7215
|
* Set whether the input is required or not. Please note that this is required for
|
|
7158
7216
|
* accessible inputs when the user is required to fill them. When using this property
|
|
@@ -7236,7 +7294,7 @@ class DuetCheckbox {
|
|
|
7236
7294
|
"duet-checkbox-container": true,
|
|
7237
7295
|
"duet-label-hidden": this.labelHidden,
|
|
7238
7296
|
"duet-theme-turva": this.theme === "turva",
|
|
7239
|
-
} }, hAsync("input", { ref: input => (this.nativeInput = input), type: "checkbox", onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, value: this.value, class: { "duet-checkbox": true, disabled: this.disabled }, checked: this.checked, disabled: this.disabled, tabindex: this.accessibleIndex, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, required: this.required, role: this.role, name: this.name, id: identifier }), hAsync("label", { class: "duet-label", htmlFor: identifier }, hAsync("span", null, this.label)))));
|
|
7297
|
+
} }, hAsync("input", { ref: input => (this.nativeInput = input), type: "checkbox", onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, value: this.value, class: { "duet-checkbox": true, disabled: this.disabled }, checked: this.checked, disabled: this.disabled, tabindex: this.accessibleIndex, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, required: this.required, role: this.role, name: this.name, id: identifier }), hAsync("label", { class: "duet-label", htmlFor: identifier }, hAsync("span", null, this.label)))));
|
|
7240
7298
|
}
|
|
7241
7299
|
get element() { return getElement(this); }
|
|
7242
7300
|
static get style() { return duetCheckboxCss; }
|
|
@@ -7250,6 +7308,9 @@ class DuetCheckbox {
|
|
|
7250
7308
|
"accessibleIndex": [1, "accessible-index"],
|
|
7251
7309
|
"accessibleOwns": [1, "accessible-owns"],
|
|
7252
7310
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
7311
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
7312
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
7313
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
7253
7314
|
"required": [4],
|
|
7254
7315
|
"theme": [1025],
|
|
7255
7316
|
"disabled": [516],
|
|
@@ -7327,6 +7388,18 @@ class DuetChoice {
|
|
|
7327
7388
|
* @default {fi: "Avautuu uuteen ikkunaan",sv: "Öppnas i nytt fönster",en: "Opens in a new window"}
|
|
7328
7389
|
*/
|
|
7329
7390
|
this.accessibleLabelInfoButton = getLocaleString(this.accessibleLabelInfoButtonDefaults);
|
|
7391
|
+
/**
|
|
7392
|
+
* Aria Details of the component
|
|
7393
|
+
*/
|
|
7394
|
+
this.accessibleDetails = undefined;
|
|
7395
|
+
/**
|
|
7396
|
+
* String of id's that indicate alternative labels elements
|
|
7397
|
+
*/
|
|
7398
|
+
this.accessibleLabelledBy = undefined;
|
|
7399
|
+
/**
|
|
7400
|
+
* Aria description the button
|
|
7401
|
+
*/
|
|
7402
|
+
this.accessibleDescription = undefined;
|
|
7330
7403
|
/**
|
|
7331
7404
|
* Additional caption to show inside the label of the choice button.
|
|
7332
7405
|
*/
|
|
@@ -7563,7 +7636,7 @@ class DuetChoice {
|
|
|
7563
7636
|
info: this.isInfoOpen,
|
|
7564
7637
|
collapsible: this.collapsible,
|
|
7565
7638
|
"duet-p-0": this.padding === "none",
|
|
7566
|
-
} }, hAsync("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) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", null, hAsync("div", null, this.label), this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" })))), hAsync("div", null, hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
|
|
7639
|
+
} }, hAsync("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-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", null, hAsync("div", null, this.label), this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" })))), hAsync("div", null, hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
|
|
7567
7640
|
"duet-choice-info-toggle": true,
|
|
7568
7641
|
"duet-theme-turva": this.theme === "turva",
|
|
7569
7642
|
}, 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" }, hAsync("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), hAsync("div", { class: "duet-choice-info-icon" }, hAsync("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (hAsync("div", { class: this.getClassNames(), id: this.expandId }, hAsync("span", { class: {
|
|
@@ -7585,6 +7658,9 @@ class DuetChoice {
|
|
|
7585
7658
|
"accessibleControls": [1, "accessible-controls"],
|
|
7586
7659
|
"accessibleOwns": [1, "accessible-owns"],
|
|
7587
7660
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
7661
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
7662
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
7663
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
7588
7664
|
"caption": [1],
|
|
7589
7665
|
"value": [1537],
|
|
7590
7666
|
"type": [513],
|
|
@@ -9184,7 +9260,6 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
|
|
|
9184
9260
|
* @param to
|
|
9185
9261
|
*/
|
|
9186
9262
|
function range(from, to) {
|
|
9187
|
-
console.log({ from, to });
|
|
9188
9263
|
var result = [];
|
|
9189
9264
|
for (var i = from; i <= to; i++) {
|
|
9190
9265
|
result.push(i);
|
|
@@ -9963,6 +10038,7 @@ class DuetEditableTable {
|
|
|
9963
10038
|
render() {
|
|
9964
10039
|
return (hAsync(Host, { class: {
|
|
9965
10040
|
[`duet-editable-table-${this.variation}`]: true,
|
|
10041
|
+
"duet-editable-table": true,
|
|
9966
10042
|
[`duet-editable-table-${this.theme}`]: true,
|
|
9967
10043
|
// sticky only valid when in regular table layout
|
|
9968
10044
|
"duet-editable-table-scrollable": this.breakpoint === "none-scrollable",
|
|
@@ -9970,7 +10046,7 @@ class DuetEditableTable {
|
|
|
9970
10046
|
"duet-editable-table-actions": !!this.actions,
|
|
9971
10047
|
"duet-m-0": this.margin === "none",
|
|
9972
10048
|
"duet-theme-turva": this.theme === "turva",
|
|
9973
|
-
} }, hAsync("duet-table", { sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, hAsync("table", { role: this.accessibleRole }, hAsync("caption", null, hAsync("slot", { name: "tcaption" })), hAsync("thead", null, hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-first" }))), this.renderTableHeader(), hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-last" })))), hAsync("tbody", null, this.renderTableBody()), hAsync("tfoot", null, hAsync("tr", null, hAsync("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, hAsync("slot", { name: "tfoot" }))))))));
|
|
10049
|
+
} }, hAsync("duet-table", { class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, hAsync("table", { role: this.accessibleRole }, hAsync("caption", null, hAsync("slot", { name: "tcaption" })), hAsync("thead", null, hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-first" }))), this.renderTableHeader(), hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-last" })))), hAsync("tbody", null, this.renderTableBody()), hAsync("tfoot", null, hAsync("tr", null, hAsync("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, hAsync("slot", { name: "tfoot" }))))))));
|
|
9974
10050
|
}
|
|
9975
10051
|
get element() { return getElement(this); }
|
|
9976
10052
|
static get style() { return duetEditableTableCss; }
|
|
@@ -10783,7 +10859,7 @@ const DuetHeaderHamburger = () => (hAsync("div", { class: "duet-header-hamburger
|
|
|
10783
10859
|
hAsync("span", { class: "duet-header-bar" }),
|
|
10784
10860
|
hAsync("span", { class: "duet-header-bar" })));
|
|
10785
10861
|
|
|
10786
|
-
const duetHeaderCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-header,*.sc-duet-header::after,*.sc-duet-header::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-header-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%}@supports (position: -webkit-sticky){/*!@:host*/.sc-duet-header-h{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){/*!@:host*/.sc-duet-header-h{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}@supports (position: sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}/*!@.duet-header-reserved-space*/.duet-header-reserved-space.sc-duet-header{height:4rem}@media (min-width: 62em){/*!@.duet-header-reserved-space.duet-with-links*/.duet-header-reserved-space.duet-with-links.sc-duet-header{height:7rem}}/*!@.duet-header*/.duet-header.sc-duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;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:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{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}@media (min-width: 62em){/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){/*!@.duet-header*/.duet-header.sc-duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}/*!@.duet-header.duet-header-inactive*/.duet-header.duet-header-inactive.sc-duet-header{position:fixed}}/*!@.duet-header **/.duet-header.sc-duet-header *.sc-duet-header{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.duet-header-top*/.duet-header-top.sc-duet-header{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{z-index:100;padding:0 28px;box-shadow:none}/*!@.duet-header-top duet-logo*/.duet-header-top.sc-duet-header duet-logo.sc-duet-header{padding-right:4px}}@media (min-width: 106.25em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{padding:0 48px}}/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{box-shadow:none}}/*!@.duet-theme-turva .duet-header-top duet-logo*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header duet-logo.sc-duet-header{left:-80px !important;margin-top:-8px !important}/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}/*!@.duet-theme-turva .duet-header-top .duet-header-region*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{border-color:#cfcfd1}@media (max-width: 35.9375em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{display:none}}@media (min-width: 62em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{padding-left:19px}}/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}/*!@.duet-theme-turva .duet-header-bottom*/.duet-theme-turva.sc-duet-header .duet-header-bottom.sc-duet-header{background:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}/*!@.duet-header-bottom.duet-header-inactive*/.duet-header-bottom.duet-header-inactive.sc-duet-header{position:relative}}/*!@.duet-header-bottom.active*/.duet-header-bottom.active.sc-duet-header{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;transition:none !important}}/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:1;transition:none !important;transform:none}}/*!@.active .duet-header-items,\n.active .duet-header-bottom-utils,\n.active .duet-header-utils*/.active.sc-duet-header .duet-header-items.sc-duet-header,.active.sc-duet-header .duet-header-bottom-utils.sc-duet-header,.active.sc-duet-header .duet-header-utils.sc-duet-header{opacity:1;transform:translateY(0)}/*!@.duet-header-items*/.duet-header-items.sc-duet-header{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{padding-left:43.6363636364px}}/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border:0}}/*!@.duet-header-items .duet-header-second-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 40px;border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-button*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-button.sc-duet-header{border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-dropdown-content*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-dropdown-content.sc-duet-header{padding:0;border:0}/*!@.duet-header-items .duet-header-third-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-third-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 75px}/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{border-radius:4px}}/*!@.duet-theme-turva .duet-header-items .duet-header-item*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{font-weight:600;color:#171c3a;border-color:#e1e3e6}/*!@.duet-header-items .duet-header-item:hover*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-items .duet-header-item:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#444445}/*!@.duet-header-items .duet-header-item:focus*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header: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-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}/*!@.duet-header-items .duet-header-item.active*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#c60c30}/*!@.duet-header-items .duet-header-item.active:hover*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#c60c30}/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active::after*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{background:#c60c30}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-header-toggle:focus*/.duet-header-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-toggle.sc-duet-header: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-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:none}}/*!@.duet-header-hamburger*/.duet-header-hamburger.sc-duet-header{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}/*!@.duet-header-hamburger .duet-header-bar*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}/*!@.duet-theme-turva .duet-header-hamburger .duet-header-bar*/.duet-theme-turva.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{background:#171c3a}/*!@.duet-header-hamburger .duet-header-bar:nth-child(1)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:0}/*!@.duet-header-hamburger .duet-header-bar:nth-child(2), .duet-header-hamburger .duet-header-bar:nth-child(3)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2),.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){top:7px}/*!@.duet-header-hamburger .duet-header-bar:nth-child(4)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:14px}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(1)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:7px;left:50%;width:0%}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(2)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2){transform:rotate(45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(3)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){transform:rotate(-45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(4)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:7px;left:50%;width:0%}/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{margin-right:36px}}@media (min-width: 62em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{margin-right:36px}}/*!@button*/button.sc-duet-header{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-theme-turva button*/.duet-theme-turva.sc-duet-header button.sc-duet-header{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-header-button*/.duet-header-button.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;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:4px;-webkit-appearance:none;appearance:none}/*!@.duet-theme-turva .duet-header-button*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header{color:#171c3a;border-color:#e4e4e6}/*!@.duet-header-button:hover*/.duet-header-button.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-button:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:hover{color:#444445}/*!@.duet-header-button:focus*/.duet-header-button.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-button.sc-duet-header: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-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-button:active*/.duet-header-button.sc-duet-header:active{opacity:0.75}@media (min-width: 62em){/*!@.duet-header-button*/.duet-header-button.sc-duet-header{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}/*!@.duet-header-button::before*/.duet-header-button.sc-duet-header::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}/*!@.duet-theme-turva .duet-header-button::before*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header::before{background:#cfcfd1}}/*!@.duet-header-button.active*/.duet-header-button.active.sc-duet-header{color:#0077b3;border-radius:0}/*!@.duet-theme-turva .duet-header-button.active*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header{color:#c60c30}/*!@.duet-header-button.active:hover*/.duet-header-button.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-button.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header:hover{color:#c60c30}@media (min-width: 62em){/*!@.duet-header-button.active::after*/.duet-header-button.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-button.active::after*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header::after{color:#c60c30}}/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}/*!@.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout*/.duet-theme-turva.sc-duet-header .duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{border-color:#171c3a}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.5rem}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-button-label.sc-duet-header{font-size:0.875rem}@media (min-width: 62em){/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{height:4rem;margin:0;font-weight:400;border:0}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.75rem}}/*!@.duet-header-no-action*/.duet-header-no-action.sc-duet-header{pointer-events:none}/*!@.duet-header-user-label*/.duet-header-user-label.sc-duet-header{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child::before,\n.duet-header-utils > *:last-child button::before*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child::before,.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child button.sc-duet-header::before{display:none}}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child .duet-header-dropdown-content*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child .duet-header-dropdown-content.sc-duet-header{right:0;left:auto}}/*!@.duet-header-language*/.duet-header-language.sc-duet-header{text-transform:uppercase}/*!@.duet-header-language.active, .duet-header-language.active:hover,\n.duet-header-contact.active,\n.duet-header-contact.active:hover*/.duet-header-language.active.sc-duet-header,.duet-header-language.active.sc-duet-header:hover,.duet-header-contact.active.sc-duet-header,.duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-theme-turva .duet-header-language.active, .duet-theme-turva .duet-header-language.active:hover,\n.duet-theme-turva .duet-header-contact.active,\n.duet-theme-turva .duet-header-contact.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header:hover,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:0}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:100%}}/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{margin-right:8px}}/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{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-header-caret*/.duet-header-caret.sc-duet-header{width:7px;height:7px}}/*!@.duet-header-caret duet-icon*/.duet-header-caret.sc-duet-header duet-icon.sc-duet-header{width:10px}/*!@.duet-header-dropdown-toggle.active .duet-header-caret*/.duet-header-dropdown-toggle.active.sc-duet-header .duet-header-caret.sc-duet-header{transform:translateY(-50%) rotate(180deg)}/*!@.duet-header-dropdown-toggle:focus*/.duet-header-dropdown-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown-toggle.sc-duet-header: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-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown-toggle:active*/.duet-header-dropdown-toggle.sc-duet-header:active{outline:none}/*!@.duet-header-badge*/.duet-header-badge.sc-duet-header{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}/*!@.duet-theme-turva .duet-header-badge*/.duet-theme-turva.sc-duet-header .duet-header-badge.sc-duet-header{background:#faa40f}/*!@.active-bar*/.active-bar.sc-duet-header{color:#0077b3}/*!@.active-bar::after*/.active-bar.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .active-bar::after*/.duet-theme-turva.sc-duet-header .active-bar.sc-duet-header::after{background:#c60c30}/*!@.duet-header-dropdown*/.duet-header-dropdown.sc-duet-header{position:relative}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-bottom:1px solid #f5f8fa}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{background:#c60c30}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-color:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{color:#004d80;border:0}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;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.85) translateZ(0) translateY(-20px)}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header{right:0%;left:auto;min-width:225px}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items .duet-header-session-label*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header .duet-header-session-label.sc-duet-header{padding:0 20px;font-weight:600}}@media (min-width: 64.0625em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{min-width:170px}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header{min-width:225px}}/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{display:block}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#e6f2f8}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#f9e6ea}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):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-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{color:white;background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-link-external.sc-duet-header{margin-left:4px}/*!@.duet-header-back .duet-header-top*/.duet-header-back.sc-duet-header .duet-header-top.sc-duet-header{flex-direction:row;align-items:center;justify-content:center}/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}/*!@.duet-header-back .duet-header-toggle*/.duet-header-back.sc-duet-header .duet-header-toggle.sc-duet-header{display:none !important}/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-header-skip:focus, .duet-header-skip:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header:focus,.duet-header-skip.sc-duet-header:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-theme-turva .duet-header-skip*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header{min-width:120px;color:#171c3a}@media (min-width: 106.25em){/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{margin-left:20px}}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.duet-header-multi-level-desktop*/.duet-header-multi-level-desktop.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-top*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-top.sc-duet-header{justify-content:space-between;height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-button*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-button.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .logo-and-segment*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400;margin-left:2rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop .logo-and-segment button*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment button::before*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-caret.sc-duet-header{top:25%}/*!@.duet-header-multi-level-desktop-nav*/.duet-header-multi-level-desktop-nav.sc-duet-header{display:flex}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header{position:static}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#0077b3}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::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-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{font-weight:600;color:#0077b3;background:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header::after{transform:translateY(0)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header .duet-header-icon.sc-duet-header{margin:0}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-badge.sc-duet-header{position:absolute;margin-top:-2rem;margin-right:-2.25rem}/*!@.duet-header-multi-level-desktop-nav button::before*/.duet-header-multi-level-desktop-nav.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-caret*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-caret.sc-duet-header{display:none}/*!@.duet-header-multi-level-desktop-utils*/.duet-header-multi-level-desktop-utils.sc-duet-header{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}/*!@.duet-header-multi-level-desktop-utils > :last-child::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child::before{display:none}/*!@.duet-header-multi-level-desktop-utils > :last-child.duet-header-dropdown .duet-header-button::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child.duet-header-dropdown .duet-header-button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:none}@media (min-width: 64.0625em){/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:initial}}/*!@.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4;border-color:#e4e4e6}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{background:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{color:#c60c30;background:none}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}";
|
|
10862
|
+
const duetHeaderCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-header,*.sc-duet-header::after,*.sc-duet-header::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-header-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%}@supports (position: -webkit-sticky){/*!@:host*/.sc-duet-header-h{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){/*!@:host*/.sc-duet-header-h{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}@supports (position: sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}/*!@.duet-header-reserved-space*/.duet-header-reserved-space.sc-duet-header{height:4rem}@media (min-width: 62em){/*!@.duet-header-reserved-space.duet-with-links*/.duet-header-reserved-space.duet-with-links.sc-duet-header{height:7rem}}/*!@.duet-header*/.duet-header.sc-duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;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:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{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}@media (min-width: 62em){/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){/*!@.duet-header*/.duet-header.sc-duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}/*!@.duet-header.duet-header-inactive*/.duet-header.duet-header-inactive.sc-duet-header{position:fixed}}/*!@.duet-header **/.duet-header.sc-duet-header *.sc-duet-header{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.duet-header-top*/.duet-header-top.sc-duet-header{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{z-index:100;padding:0 28px;box-shadow:none}/*!@.duet-header-top duet-logo*/.duet-header-top.sc-duet-header duet-logo.sc-duet-header{padding-right:4px}}@media (min-width: 106.25em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{padding:0 48px}}/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{box-shadow:none}}/*!@.duet-theme-turva .duet-header-top duet-logo*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header duet-logo.sc-duet-header{left:-80px !important;margin-top:-8px !important}/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}/*!@.duet-theme-turva .duet-header-top .duet-header-region*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{border-color:#cfcfd1}@media (max-width: 35.9375em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{display:none}}@media (min-width: 62em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{padding-left:19px}}/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}/*!@.duet-theme-turva .duet-header-bottom*/.duet-theme-turva.sc-duet-header .duet-header-bottom.sc-duet-header{background:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}/*!@.duet-header-bottom.duet-header-inactive*/.duet-header-bottom.duet-header-inactive.sc-duet-header{position:relative}}/*!@.duet-header-bottom.active*/.duet-header-bottom.active.sc-duet-header{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;transition:none !important}}/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:1;transition:none !important;transform:none}}/*!@.active .duet-header-items,\n.active .duet-header-bottom-utils,\n.active .duet-header-utils*/.active.sc-duet-header .duet-header-items.sc-duet-header,.active.sc-duet-header .duet-header-bottom-utils.sc-duet-header,.active.sc-duet-header .duet-header-utils.sc-duet-header{opacity:1;transform:translateY(0)}/*!@.duet-header-items*/.duet-header-items.sc-duet-header{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{padding-left:43.6363636364px}}/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border:0}}/*!@.duet-header-items .duet-header-second-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 40px;border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-button*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-button.sc-duet-header{border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-dropdown-content*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-dropdown-content.sc-duet-header{padding:0;border:0}/*!@.duet-header-items .duet-header-third-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-third-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 75px}/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{font-weight:600;border-radius:4px}}/*!@.duet-theme-turva .duet-header-items .duet-header-item*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{color:#171c3a;border-color:#e1e3e6}/*!@.duet-header-items .duet-header-item:hover*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-items .duet-header-item:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#444445}/*!@.duet-header-items .duet-header-item:focus*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header: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-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}/*!@.duet-header-items .duet-header-item.active*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#c60c30}/*!@.duet-header-items .duet-header-item.active:hover*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#c60c30}/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active::after*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{background:#c60c30}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-header-toggle:focus*/.duet-header-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-toggle.sc-duet-header: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-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:none}}/*!@.duet-header-hamburger*/.duet-header-hamburger.sc-duet-header{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}/*!@.duet-header-hamburger .duet-header-bar*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}/*!@.duet-theme-turva .duet-header-hamburger .duet-header-bar*/.duet-theme-turva.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{background:#171c3a}/*!@.duet-header-hamburger .duet-header-bar:nth-child(1)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:0}/*!@.duet-header-hamburger .duet-header-bar:nth-child(2), .duet-header-hamburger .duet-header-bar:nth-child(3)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2),.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){top:7px}/*!@.duet-header-hamburger .duet-header-bar:nth-child(4)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:14px}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(1)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:7px;left:50%;width:0%}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(2)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2){transform:rotate(45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(3)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){transform:rotate(-45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(4)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:7px;left:50%;width:0%}/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{margin-right:36px}}@media (min-width: 62em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{margin-right:36px}}/*!@button*/button.sc-duet-header{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-theme-turva button*/.duet-theme-turva.sc-duet-header button.sc-duet-header{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-header-button*/.duet-header-button.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;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:4px;-webkit-appearance:none;appearance:none}/*!@.duet-theme-turva .duet-header-button*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header{color:#171c3a;border-color:#e4e4e6}/*!@.duet-header-button:hover*/.duet-header-button.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-button:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:hover{color:#444445}/*!@.duet-header-button:focus*/.duet-header-button.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-button.sc-duet-header: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-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-button:active*/.duet-header-button.sc-duet-header:active{opacity:0.75}@media (min-width: 62em){/*!@.duet-header-button*/.duet-header-button.sc-duet-header{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}/*!@.duet-header-button::before*/.duet-header-button.sc-duet-header::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}/*!@.duet-theme-turva .duet-header-button::before*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header::before{background:#cfcfd1}}/*!@.duet-header-button.active*/.duet-header-button.active.sc-duet-header{color:#0077b3;border-radius:0}/*!@.duet-theme-turva .duet-header-button.active*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header{color:#c60c30}/*!@.duet-header-button.active:hover*/.duet-header-button.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-button.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header:hover{color:#c60c30}@media (min-width: 62em){/*!@.duet-header-button.active::after*/.duet-header-button.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-button.active::after*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header::after{color:#c60c30}}/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}/*!@.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout*/.duet-theme-turva.sc-duet-header .duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{border-color:#171c3a}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.5rem}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-button-label.sc-duet-header{font-size:0.875rem}@media (min-width: 62em){/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{height:4rem;margin:0;font-weight:400;border:0}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.75rem}}/*!@.duet-header-no-action*/.duet-header-no-action.sc-duet-header{pointer-events:none}/*!@.duet-header-user-label*/.duet-header-user-label.sc-duet-header{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child::before,\n.duet-header-utils > *:last-child button::before*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child::before,.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child button.sc-duet-header::before{display:none}}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child .duet-header-dropdown-content*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child .duet-header-dropdown-content.sc-duet-header{right:0;left:auto}}/*!@.duet-header-language*/.duet-header-language.sc-duet-header{text-transform:uppercase}/*!@.duet-header-language.active, .duet-header-language.active:hover,\n.duet-header-contact.active,\n.duet-header-contact.active:hover*/.duet-header-language.active.sc-duet-header,.duet-header-language.active.sc-duet-header:hover,.duet-header-contact.active.sc-duet-header,.duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-theme-turva .duet-header-language.active, .duet-theme-turva .duet-header-language.active:hover,\n.duet-theme-turva .duet-header-contact.active,\n.duet-theme-turva .duet-header-contact.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header:hover,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:0}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:100%}}/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{margin-right:8px}}/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{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-header-caret*/.duet-header-caret.sc-duet-header{width:7px;height:7px}}/*!@.duet-header-caret duet-icon*/.duet-header-caret.sc-duet-header duet-icon.sc-duet-header{width:10px}/*!@.duet-header-dropdown-toggle.active .duet-header-caret*/.duet-header-dropdown-toggle.active.sc-duet-header .duet-header-caret.sc-duet-header{transform:translateY(-50%) rotate(180deg)}/*!@.duet-header-dropdown-toggle:focus*/.duet-header-dropdown-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown-toggle.sc-duet-header: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-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown-toggle:active*/.duet-header-dropdown-toggle.sc-duet-header:active{outline:none}/*!@.duet-header-badge*/.duet-header-badge.sc-duet-header{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}/*!@.duet-theme-turva .duet-header-badge*/.duet-theme-turva.sc-duet-header .duet-header-badge.sc-duet-header{background:#faa40f}/*!@.active-bar*/.active-bar.sc-duet-header{color:#0077b3}/*!@.active-bar::after*/.active-bar.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .active-bar::after*/.duet-theme-turva.sc-duet-header .active-bar.sc-duet-header::after{background:#c60c30}/*!@.duet-header-dropdown*/.duet-header-dropdown.sc-duet-header{position:relative}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-bottom:1px solid #f5f8fa}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{background:#c60c30}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-color:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{color:#004d80;border:0}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;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.85) translateZ(0) translateY(-20px)}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header{right:0%;left:auto;min-width:225px}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items .duet-header-session-label*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header .duet-header-session-label.sc-duet-header{padding:0 20px;font-weight:600}}@media (min-width: 64.0625em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{min-width:170px}/*!@.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.duet-header-session-items.sc-duet-header{min-width:225px}}/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{display:block}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#e6f2f8}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#f9e6ea}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):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-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{color:white;background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-link-external.sc-duet-header{margin-left:4px}/*!@.duet-header-back .duet-header-top*/.duet-header-back.sc-duet-header .duet-header-top.sc-duet-header{flex-direction:row;align-items:center;justify-content:center}/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}/*!@.duet-header-back .duet-header-toggle*/.duet-header-back.sc-duet-header .duet-header-toggle.sc-duet-header{display:none !important}/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-header-skip:focus, .duet-header-skip:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header:focus,.duet-header-skip.sc-duet-header:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-theme-turva .duet-header-skip*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header{min-width:120px;color:#171c3a}@media (min-width: 106.25em){/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{margin-left:20px}}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.duet-header-multi-level-desktop*/.duet-header-multi-level-desktop.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-top*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-top.sc-duet-header{justify-content:space-between;height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-button*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-button.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .logo-and-segment*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400;margin-left:2rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop .logo-and-segment button*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment button::before*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-caret.sc-duet-header{top:25%}/*!@.duet-header-multi-level-desktop-nav*/.duet-header-multi-level-desktop-nav.sc-duet-header{display:flex}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header{position:static}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#0077b3}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::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-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{font-weight:600;color:#0077b3;background:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header::after{transform:translateY(0)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header .duet-header-icon.sc-duet-header{margin:0}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-badge.sc-duet-header{position:absolute;margin-top:-2rem;margin-right:-2.25rem}/*!@.duet-header-multi-level-desktop-nav button::before*/.duet-header-multi-level-desktop-nav.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-caret*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-caret.sc-duet-header{display:none}/*!@.duet-header-multi-level-desktop-utils*/.duet-header-multi-level-desktop-utils.sc-duet-header{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}/*!@.duet-header-multi-level-desktop-utils > :last-child::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child::before{display:none}/*!@.duet-header-multi-level-desktop-utils > :last-child.duet-header-dropdown .duet-header-button::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child.duet-header-dropdown .duet-header-button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:none}@media (min-width: 64.0625em){/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:initial}}/*!@.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4;border-color:#e4e4e6}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{background:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{color:#c60c30;background:none}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}";
|
|
10787
10863
|
|
|
10788
10864
|
const createEvent = (ev, data) => ({
|
|
10789
10865
|
component: "duet-header",
|
|
@@ -11963,13 +12039,25 @@ class DuetInput {
|
|
|
11963
12039
|
sv: "Rensa",
|
|
11964
12040
|
});
|
|
11965
12041
|
/**
|
|
11966
|
-
* Indicates the id of a component that describes the input.
|
|
12042
|
+
* Indicates the id or a string of space seperated ids of a component(s) that describes the input.
|
|
11967
12043
|
*/
|
|
11968
12044
|
this.accessibleDescribedBy = "";
|
|
11969
12045
|
/**
|
|
11970
12046
|
* Indicates value of any popup element associated with the input.
|
|
11971
12047
|
*/
|
|
11972
12048
|
this.accessibleHasPopup = undefined;
|
|
12049
|
+
/**
|
|
12050
|
+
* Aria Details of the component
|
|
12051
|
+
*/
|
|
12052
|
+
this.accessibleDetails = undefined;
|
|
12053
|
+
/**
|
|
12054
|
+
* String of id's that indicate alternative labels elements
|
|
12055
|
+
*/
|
|
12056
|
+
this.accessibleLabelledBy = undefined;
|
|
12057
|
+
/**
|
|
12058
|
+
* Aria description the button
|
|
12059
|
+
*/
|
|
12060
|
+
this.accessibleDescription = undefined;
|
|
11973
12061
|
/**
|
|
11974
12062
|
* Set the amount of time, in milliseconds, to wait to trigger the duetChange
|
|
11975
12063
|
* event after each keystroke.
|
|
@@ -12215,7 +12303,9 @@ class DuetInput {
|
|
|
12215
12303
|
disabled: this.disabled,
|
|
12216
12304
|
"is-number": this.component === "number",
|
|
12217
12305
|
"is-date": this.component === "date",
|
|
12218
|
-
}, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby":
|
|
12306
|
+
}, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy
|
|
12307
|
+
? `${this.labelId} ${this.errorId} ${this.accessibleLabelledBy}`
|
|
12308
|
+
: `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), 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 &&
|
|
12219
12309
|
this.type !== "text" &&
|
|
12220
12310
|
this.type !== "tel" &&
|
|
12221
12311
|
this.type !== "password" &&
|
|
@@ -12238,6 +12328,9 @@ class DuetInput {
|
|
|
12238
12328
|
"accessibleExpanded": [1, "accessible-expanded"],
|
|
12239
12329
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
12240
12330
|
"accessibleHasPopup": [1, "accessible-has-popup"],
|
|
12331
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
12332
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
12333
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
12241
12334
|
"debounce": [2],
|
|
12242
12335
|
"clear": [4],
|
|
12243
12336
|
"caption": [1],
|
|
@@ -12841,6 +12934,14 @@ class DuetModal {
|
|
|
12841
12934
|
* Size of the modal window.
|
|
12842
12935
|
*/
|
|
12843
12936
|
this.size = "medium";
|
|
12937
|
+
/**
|
|
12938
|
+
* Details of the component
|
|
12939
|
+
*/
|
|
12940
|
+
this.accessibleDetails = undefined;
|
|
12941
|
+
/**
|
|
12942
|
+
* Aria description the button
|
|
12943
|
+
*/
|
|
12944
|
+
this.accessibleDescription = undefined;
|
|
12844
12945
|
/**
|
|
12845
12946
|
* Size of the modal window.
|
|
12846
12947
|
*/
|
|
@@ -12982,7 +13083,7 @@ class DuetModal {
|
|
|
12982
13083
|
iconColor = "primary-turva";
|
|
12983
13084
|
closeColor = "secondary-turva";
|
|
12984
13085
|
}
|
|
12985
|
-
return (hAsync("div", { ref: modal => (this.modalEl = modal), "aria-labelledby": this.heading ? this.modalId : false, "aria-describedby": this.slotDefaultId, role: "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", "aria-flowto": this.slotDefaultId, class: {
|
|
13086
|
+
return (hAsync("div", { ref: modal => (this.modalEl = modal), "aria-labelledby": this.heading ? this.modalId : false, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy ? `${this.slotDefaultId} ${this.accessibleDescribedBy}` : this.slotDefaultId, role: "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", "aria-flowto": this.slotDefaultId, class: {
|
|
12986
13087
|
"duet-modal-overlay": true,
|
|
12987
13088
|
"duet-theme-turva": this.theme === "turva",
|
|
12988
13089
|
"duet-modal-active": this.open,
|
|
@@ -13018,6 +13119,10 @@ class DuetModal {
|
|
|
13018
13119
|
"accessibleCloseLabelDefaults": [1, "accessible-close-label-default"],
|
|
13019
13120
|
"accessibleCloseLabel": [1, "accessible-close-label"],
|
|
13020
13121
|
"size": [1],
|
|
13122
|
+
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
13123
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
13124
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
13125
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
13021
13126
|
"gutterSize": [1, "gutter-size"],
|
|
13022
13127
|
"theme": [1025],
|
|
13023
13128
|
"heading": [1],
|
|
@@ -13287,27 +13392,77 @@ var actionAdd={"title":"action-add","tags":"action add plus","svg":"<svg fill=\"
|
|
|
13287
13392
|
|
|
13288
13393
|
var actionSubtract={"title":"action-subtract","tags":"action subtract minus remove delete cancel","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M.75 12.788a.75.75 0 0 1 0-1.5h22.5a.75.75 0 0 1 0 1.5z\"/></svg>"};
|
|
13289
13394
|
|
|
13290
|
-
|
|
13291
|
-
|
|
13292
|
-
|
|
13293
|
-
|
|
13294
|
-
|
|
13295
|
-
|
|
13296
|
-
|
|
13297
|
-
|
|
13298
|
-
|
|
13299
|
-
|
|
13300
|
-
|
|
13301
|
-
|
|
13302
|
-
|
|
13303
|
-
|
|
13304
|
-
|
|
13305
|
-
|
|
13306
|
-
|
|
13307
|
-
|
|
13308
|
-
|
|
13309
|
-
|
|
13310
|
-
|
|
13395
|
+
/**
|
|
13396
|
+
* function that takes a string value or number and looks for any character resembling a minus,
|
|
13397
|
+
* it will then replace it with a hypen-minus and return the parseFloat value of that string
|
|
13398
|
+
* it will string / number cast the value to a number and return that number
|
|
13399
|
+
* known issues: if a negative number is indicated with other characters than a "minus like" character, it will throw
|
|
13400
|
+
* - an example is that some locales use (number) as an indicator for negative values instead of -number
|
|
13401
|
+
*/
|
|
13402
|
+
function SafeParseFloat(value, locale) {
|
|
13403
|
+
let results;
|
|
13404
|
+
if (typeof value === "string") {
|
|
13405
|
+
//the minuses are NOT the same characters, they differ in unicode for some languages
|
|
13406
|
+
// "‐", "−", "–", and "—"
|
|
13407
|
+
let convertedMinus = value.replace("−", "-").replace("‐", "-").replace("−", "-").replace("–", "-").replace("—", "-");
|
|
13408
|
+
if (locale) {
|
|
13409
|
+
convertedMinus = ConvertToEnUS(convertedMinus, locale, false);
|
|
13410
|
+
}
|
|
13411
|
+
// replace all possible spaces from the string
|
|
13412
|
+
convertedMinus = convertedMinus.replace(/\s+/g, "");
|
|
13413
|
+
convertedMinus = convertedMinus.replace(/(?!^-?\d*\.{0,1}\d+$)/g, "");
|
|
13414
|
+
/*
|
|
13415
|
+
example: https://regex101.com/r/np7FqS/1
|
|
13416
|
+
/(?!^-?\d*\.{0,1}\d+$)/g
|
|
13417
|
+
Negative Lookahead (?!^-?\d*\.{0,1}\d+$)
|
|
13418
|
+
Assert that the Regex below does not match
|
|
13419
|
+
^ asserts position at start of a line
|
|
13420
|
+
- matches the character - with index 4510 (2D16 or 558) literally (case sensitive)
|
|
13421
|
+
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
|
|
13422
|
+
\d matches a digit (equivalent to [0-9])
|
|
13423
|
+
* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)
|
|
13424
|
+
\. matches the character . with index 4610 (2E16 or 568) literally (case sensitive)
|
|
13425
|
+
{0,1} matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
|
|
13426
|
+
\d matches a digit (equivalent to [0-9])
|
|
13427
|
+
+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
|
|
13428
|
+
$ asserts position at the end of a line
|
|
13429
|
+
Global pattern flags
|
|
13430
|
+
g modifier: global. All matches (don't return after first match)
|
|
13431
|
+
m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
|
|
13432
|
+
*/
|
|
13433
|
+
results = parseFloat(convertedMinus);
|
|
13434
|
+
}
|
|
13435
|
+
if (typeof value === "number") {
|
|
13436
|
+
results = parseFloat(String(value));
|
|
13437
|
+
}
|
|
13438
|
+
if (!isNaN(Number(results))) {
|
|
13439
|
+
return Number(results);
|
|
13440
|
+
}
|
|
13441
|
+
if (value === null || value === undefined) {
|
|
13442
|
+
return null;
|
|
13443
|
+
}
|
|
13444
|
+
throw new Error("Invalid value passed to SafeParseFloat");
|
|
13445
|
+
}
|
|
13446
|
+
// string conversion function that takes a locale and coverts decimal indicator to en-US indicator
|
|
13447
|
+
// and takes the thousand separator for the given locale and transforms that to the en-US separator
|
|
13448
|
+
function ConvertToEnUS(value, locale, replaceThousands = false) {
|
|
13449
|
+
let replacedValue;
|
|
13450
|
+
const localeSeparator = new Intl.NumberFormat(locale).format(1 / 2).replace(/[0-9]/g, "");
|
|
13451
|
+
const enUSSeparator = new Intl.NumberFormat("en-US").format(1 / 2).replace(/[0-9]/g, "");
|
|
13452
|
+
const thousandSeparator = new Intl.NumberFormat(locale).format(1000).replace(/[0-9]/g, "");
|
|
13453
|
+
const enUSThousandSeparator = new Intl.NumberFormat("en-US").format(1000).replace(/[0-9]/g, "");
|
|
13454
|
+
// double conversions to avoid ,->. and .->, at the same time resulting in a double conversion
|
|
13455
|
+
replacedValue = value.replace(localeSeparator, "DECIMALSEPARATOR");
|
|
13456
|
+
if (replaceThousands) {
|
|
13457
|
+
replacedValue = replacedValue.replace(thousandSeparator, "THOUSANDSEPARATOR");
|
|
13458
|
+
}
|
|
13459
|
+
else {
|
|
13460
|
+
replacedValue = replacedValue.replace(thousandSeparator, "");
|
|
13461
|
+
}
|
|
13462
|
+
replacedValue = replacedValue.replace("DECIMALSEPARATOR", enUSSeparator);
|
|
13463
|
+
replacedValue = replacedValue.replace("THOUSANDSEPARATOR", enUSThousandSeparator);
|
|
13464
|
+
return replacedValue;
|
|
13465
|
+
}
|
|
13311
13466
|
const roundTo = (val, multiple) => Math.round(val / multiple) * multiple;
|
|
13312
13467
|
const clamp = (val, min, max) => Math.min(Math.max(val, min), max);
|
|
13313
13468
|
|
|
@@ -13336,6 +13491,18 @@ class DuetNumberInput {
|
|
|
13336
13491
|
* Unit for the number input.
|
|
13337
13492
|
*/
|
|
13338
13493
|
this.unit = getLocale(this.language).money;
|
|
13494
|
+
/**
|
|
13495
|
+
* Details of the component
|
|
13496
|
+
*/
|
|
13497
|
+
this.accessibleDetails = undefined;
|
|
13498
|
+
/**
|
|
13499
|
+
* String of id's that indicate alternative labels elements
|
|
13500
|
+
*/
|
|
13501
|
+
this.accessibleLabelledBy = undefined;
|
|
13502
|
+
/**
|
|
13503
|
+
* Aria description the button
|
|
13504
|
+
*/
|
|
13505
|
+
this.accessibleDescription = undefined;
|
|
13339
13506
|
/**
|
|
13340
13507
|
* Defaults for accessibleLive
|
|
13341
13508
|
* @default {fi: "{current} euroa valittuna", en: "{current} euros selected", sv: "{current} valda euro"}
|
|
@@ -13471,7 +13638,7 @@ class DuetNumberInput {
|
|
|
13471
13638
|
this.handleChange = (ev) => {
|
|
13472
13639
|
const input = ev.target;
|
|
13473
13640
|
if (input && input.value) {
|
|
13474
|
-
let value =
|
|
13641
|
+
let value = SafeParseFloat(input.value, this.locale);
|
|
13475
13642
|
// Make sure that everything works if the user clears the input and
|
|
13476
13643
|
// starts typing non-numeric characters.
|
|
13477
13644
|
if (isNaN(value) || value == null) {
|
|
@@ -13481,7 +13648,7 @@ class DuetNumberInput {
|
|
|
13481
13648
|
this.duetInput.emit({
|
|
13482
13649
|
component: "duet-number-input",
|
|
13483
13650
|
originalEvent: ev,
|
|
13484
|
-
value: this.
|
|
13651
|
+
value: SafeParseFloat(this.value, this.locale).toString(),
|
|
13485
13652
|
valueAsNumber: value,
|
|
13486
13653
|
});
|
|
13487
13654
|
}
|
|
@@ -13502,30 +13669,29 @@ class DuetNumberInput {
|
|
|
13502
13669
|
if (input.value) {
|
|
13503
13670
|
// On blur we want to make sure that the user input is between the min and max values,
|
|
13504
13671
|
// and also round it up or down to the nearest step.
|
|
13505
|
-
let value =
|
|
13672
|
+
let value = SafeParseFloat(input.value, this.locale);
|
|
13506
13673
|
if (this.rounding) {
|
|
13507
13674
|
value = roundTo(value, this.step);
|
|
13508
13675
|
}
|
|
13509
13676
|
value = clamp(value, this.min, this.max);
|
|
13510
|
-
if (value !==
|
|
13677
|
+
if (value !== SafeParseFloat(this.value, this.locale) ||
|
|
13678
|
+
value !== SafeParseFloat(this.focusedValue, this.locale)) {
|
|
13511
13679
|
this.setValue(value);
|
|
13512
13680
|
this.emitChange(ev);
|
|
13513
13681
|
}
|
|
13514
13682
|
}
|
|
13515
|
-
|
|
13516
|
-
|
|
13517
|
-
|
|
13518
|
-
|
|
13519
|
-
|
|
13520
|
-
|
|
13521
|
-
});
|
|
13522
|
-
}
|
|
13683
|
+
this.duetChange.emit({
|
|
13684
|
+
originalEvent: ev,
|
|
13685
|
+
value: null,
|
|
13686
|
+
valueAsNumber: null,
|
|
13687
|
+
component: "duet-number-input",
|
|
13688
|
+
});
|
|
13523
13689
|
};
|
|
13524
13690
|
/**
|
|
13525
13691
|
* Local methods.
|
|
13526
13692
|
*/
|
|
13527
13693
|
this.emitChange = (ev) => {
|
|
13528
|
-
const currentValue = this.
|
|
13694
|
+
const currentValue = SafeParseFloat(this.value, this.locale);
|
|
13529
13695
|
this.duetChange.emit({
|
|
13530
13696
|
originalEvent: ev,
|
|
13531
13697
|
value: currentValue.toString(),
|
|
@@ -13533,10 +13699,6 @@ class DuetNumberInput {
|
|
|
13533
13699
|
component: "duet-number-input",
|
|
13534
13700
|
});
|
|
13535
13701
|
};
|
|
13536
|
-
this.cleanValue = (value) => {
|
|
13537
|
-
// Returns a number that can be used in calculations.
|
|
13538
|
-
return value ? parseLocaleFloat(value, this.locale) : null;
|
|
13539
|
-
};
|
|
13540
13702
|
this.localizeValue = (value) => {
|
|
13541
13703
|
// Returns a localized string that can be used as input value.
|
|
13542
13704
|
return value.toLocaleString(this.locale);
|
|
@@ -13553,13 +13715,13 @@ class DuetNumberInput {
|
|
|
13553
13715
|
if (ev) {
|
|
13554
13716
|
ev.preventDefault();
|
|
13555
13717
|
}
|
|
13556
|
-
const
|
|
13718
|
+
const cleanedValue = SafeParseFloat(this.value, this.locale);
|
|
13557
13719
|
// Only fire change event when necessary
|
|
13558
|
-
if (
|
|
13720
|
+
if (cleanedValue === this.max) {
|
|
13559
13721
|
return;
|
|
13560
13722
|
}
|
|
13561
13723
|
// in cases where no value set, incrementing should go to min
|
|
13562
|
-
let newValue =
|
|
13724
|
+
let newValue = cleanedValue == null ? this.min : cleanedValue + this.step;
|
|
13563
13725
|
// handle cases where value is not multiple of step
|
|
13564
13726
|
// e.g. if someone enters 199, with a step of 100, add should go to 200
|
|
13565
13727
|
// and if someone enters 101, add should also go to 200
|
|
@@ -13567,8 +13729,8 @@ class DuetNumberInput {
|
|
|
13567
13729
|
const adjustment = newValue % this.step;
|
|
13568
13730
|
newValue -= adjustment;
|
|
13569
13731
|
}
|
|
13570
|
-
|
|
13571
|
-
this.value = this.localizeValue(
|
|
13732
|
+
const clampedValue = clamp(newValue, this.min, this.max);
|
|
13733
|
+
this.value = this.localizeValue(clampedValue);
|
|
13572
13734
|
this.emitChange(ev);
|
|
13573
13735
|
};
|
|
13574
13736
|
this.subtract = (ev) => {
|
|
@@ -13577,7 +13739,7 @@ class DuetNumberInput {
|
|
|
13577
13739
|
if (ev) {
|
|
13578
13740
|
ev.preventDefault();
|
|
13579
13741
|
}
|
|
13580
|
-
const currentValue = this.
|
|
13742
|
+
const currentValue = SafeParseFloat(this.value, this.locale);
|
|
13581
13743
|
// Only fire change event when necessary.
|
|
13582
13744
|
if (currentValue === this.min) {
|
|
13583
13745
|
return;
|
|
@@ -13602,7 +13764,7 @@ class DuetNumberInput {
|
|
|
13602
13764
|
inheritGlobalTheme(this);
|
|
13603
13765
|
// Format the number value to a localeString initially.
|
|
13604
13766
|
if (this.value) {
|
|
13605
|
-
this.value = this.localizeValue(
|
|
13767
|
+
this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
|
|
13606
13768
|
}
|
|
13607
13769
|
}
|
|
13608
13770
|
/**
|
|
@@ -13617,7 +13779,7 @@ class DuetNumberInput {
|
|
|
13617
13779
|
this.duetInputElement.value = "";
|
|
13618
13780
|
}
|
|
13619
13781
|
formatAnnouncement() {
|
|
13620
|
-
const current = this.
|
|
13782
|
+
const current = SafeParseFloat(this.value, this.locale);
|
|
13621
13783
|
if (current == null) {
|
|
13622
13784
|
return "";
|
|
13623
13785
|
}
|
|
@@ -13630,12 +13792,12 @@ class DuetNumberInput {
|
|
|
13630
13792
|
render() {
|
|
13631
13793
|
const identifier = this.identifier || this.inputId;
|
|
13632
13794
|
const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
|
|
13633
|
-
const cleanedValue = this.
|
|
13795
|
+
const cleanedValue = SafeParseFloat(this.value, this.locale);
|
|
13634
13796
|
return (hAsync(Host, { class: {
|
|
13635
13797
|
"duet-theme-turva": this.theme === "turva",
|
|
13636
13798
|
"duet-expand": this.expand,
|
|
13637
13799
|
"duet-m-0": this.margin === "none",
|
|
13638
|
-
} }, hAsync("div", { class: "duet-number-container" }, hAsync("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, hAsync("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, hAsync("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, hAsync("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), hAsync("duet-icon", { icon: actionSubtract.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), hAsync("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, hAsync("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), hAsync("duet-icon", { icon: actionAdd.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (hAsync("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
|
|
13800
|
+
} }, hAsync("div", { class: "duet-number-container" }, hAsync("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, hAsync("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, hAsync("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, hAsync("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), hAsync("duet-icon", { icon: actionSubtract.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), hAsync("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, hAsync("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), hAsync("duet-icon", { icon: actionAdd.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (hAsync("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
|
|
13639
13801
|
}
|
|
13640
13802
|
get element() { return getElement(this); }
|
|
13641
13803
|
static get style() { return duetNumberInputCss; }
|
|
@@ -13648,6 +13810,9 @@ class DuetNumberInput {
|
|
|
13648
13810
|
"unit": [1],
|
|
13649
13811
|
"accessibleActiveDescendant": [1, "accessible-active-descendant"],
|
|
13650
13812
|
"accessibleControls": [1, "accessible-controls"],
|
|
13813
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
13814
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
13815
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
13651
13816
|
"accessibleOwns": [1, "accessible-owns"],
|
|
13652
13817
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
13653
13818
|
"accessibleLiveDefaults": [1, "accessible-live-default"],
|
|
@@ -13721,6 +13886,22 @@ class DuetPagination {
|
|
|
13721
13886
|
* Variation of the paginator (compact and default supported)
|
|
13722
13887
|
*/
|
|
13723
13888
|
this.variation = "default";
|
|
13889
|
+
/**
|
|
13890
|
+
* Described By id
|
|
13891
|
+
*/
|
|
13892
|
+
this.accessibleDescribedBy = undefined;
|
|
13893
|
+
/**
|
|
13894
|
+
* Details of the component
|
|
13895
|
+
*/
|
|
13896
|
+
this.accessibleDetails = undefined;
|
|
13897
|
+
/**
|
|
13898
|
+
* String of id's that indicate alternative labels elements
|
|
13899
|
+
*/
|
|
13900
|
+
this.accessibleLabelledBy = undefined;
|
|
13901
|
+
/**
|
|
13902
|
+
* Aria description the button
|
|
13903
|
+
*/
|
|
13904
|
+
this.accessibleDescription = undefined;
|
|
13724
13905
|
/**
|
|
13725
13906
|
* Default pagination labels
|
|
13726
13907
|
*/
|
|
@@ -13814,7 +13995,7 @@ class DuetPagination {
|
|
|
13814
13995
|
type: "page",
|
|
13815
13996
|
originalEvent: ev,
|
|
13816
13997
|
});
|
|
13817
|
-
},
|
|
13998
|
+
}, 100);
|
|
13818
13999
|
// this will return the entered number, or the current page if the user presses enter
|
|
13819
14000
|
this.getEnteredNumber = debounce(ev => {
|
|
13820
14001
|
this.emitPageEvent(ev, this.numbersStore);
|
|
@@ -13860,6 +14041,7 @@ class DuetPagination {
|
|
|
13860
14041
|
e.preventDefault();
|
|
13861
14042
|
e.stopPropagation();
|
|
13862
14043
|
this.current = this.current + dir;
|
|
14044
|
+
this.emitPageEvent(e);
|
|
13863
14045
|
}
|
|
13864
14046
|
//handle a11y keyboard navigation events
|
|
13865
14047
|
async onKeyboardDown(e) {
|
|
@@ -13913,12 +14095,14 @@ class DuetPagination {
|
|
|
13913
14095
|
e.preventDefault();
|
|
13914
14096
|
this.internalSectionIndex = 0;
|
|
13915
14097
|
this.current = 1;
|
|
14098
|
+
this.emitPageEvent(e);
|
|
13916
14099
|
}
|
|
13917
14100
|
//handles click on the jump (total) button
|
|
13918
14101
|
jumpToEnd(e) {
|
|
13919
14102
|
e.preventDefault();
|
|
13920
14103
|
this.internalSectionIndex = this.totalPages / this.take - 1;
|
|
13921
14104
|
this.current = this.totalPages;
|
|
14105
|
+
this.emitPageEvent(e);
|
|
13922
14106
|
}
|
|
13923
14107
|
// render the individual page numbers
|
|
13924
14108
|
renderPageNumbers() {
|
|
@@ -13949,7 +14133,7 @@ class DuetPagination {
|
|
|
13949
14133
|
* Always the last one in the class.
|
|
13950
14134
|
*/
|
|
13951
14135
|
render() {
|
|
13952
|
-
return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("nav", { role: "navigation", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
|
|
14136
|
+
return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("nav", { role: "navigation", "aria-labelledby": this.accessibleLabelledBy ? `${this.accessibleLabelledBy} ${this.listId}` : this.listId, "aria-describedby": this.accessibleDescribedBy ? `${this.accessibleDescribedBy} ${this.listId}` : this.listId, "aria-descriptions": this.accessibleDescription, "aria-details": this.accessibleDetails, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
|
|
13953
14137
|
"duet-pagination-nav": true,
|
|
13954
14138
|
[`duet-pagination-variation-${this.variation}`]: true,
|
|
13955
14139
|
} }, this.numbersStore !== "" && (hAsync("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.accessibleLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", null, "jump to page : ", this.numbersStore))), hAsync("ol", { id: this.listId, class: {
|
|
@@ -13976,6 +14160,10 @@ class DuetPagination {
|
|
|
13976
14160
|
"theme": [1025],
|
|
13977
14161
|
"jumpString": [1, "jump-string"],
|
|
13978
14162
|
"variation": [1],
|
|
14163
|
+
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
14164
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
14165
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
14166
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
13979
14167
|
"accessibleLabelsDefaults": [16],
|
|
13980
14168
|
"accessibleLabels": [16],
|
|
13981
14169
|
"take": [1026],
|
|
@@ -14078,6 +14266,18 @@ class DuetProgress {
|
|
|
14078
14266
|
*/
|
|
14079
14267
|
this.progressId = createID("DuetProgress");
|
|
14080
14268
|
this.progressLabelId = createID("DuetProgressLabel");
|
|
14269
|
+
/**
|
|
14270
|
+
* Aria Details of the component
|
|
14271
|
+
*/
|
|
14272
|
+
this.accessibleDetails = undefined;
|
|
14273
|
+
/**
|
|
14274
|
+
* String of id's that indicate alternative labels elements
|
|
14275
|
+
*/
|
|
14276
|
+
this.accessibleLabelledBy = undefined;
|
|
14277
|
+
/**
|
|
14278
|
+
* Aria description the button
|
|
14279
|
+
*/
|
|
14280
|
+
this.accessibleDescription = undefined;
|
|
14081
14281
|
/**
|
|
14082
14282
|
* Defaults for accessibleLabel
|
|
14083
14283
|
*/
|
|
@@ -14123,7 +14323,7 @@ class DuetProgress {
|
|
|
14123
14323
|
"duet-progress-start": this.progress === 0,
|
|
14124
14324
|
"duet-progress-inprogress": this.progress < 99 && this.progress !== 0,
|
|
14125
14325
|
"duet-theme-turva": this.theme === "turva",
|
|
14126
|
-
} }, hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.progressLabelId }, this.progress !== 0 && (hAsync("span", null, this.accessibleLabel, ", ", this.accessibleLabelUpload[this.progress < 99 ? 1 : 0])))), this.caption && (hAsync("div", { class: "duet-progress-caption" }, hAsync("span", null, this.caption))), hAsync("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" }, hAsync("div", { class: "progress-bar" }, hAsync("span", { style: { width: `${this.progress}%;` } }, "Progress: ", this.progress, "%"))))));
|
|
14326
|
+
} }, hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.progressLabelId }, this.progress !== 0 && (hAsync("span", null, this.accessibleLabel, ", ", this.accessibleLabelUpload[this.progress < 99 ? 1 : 0])))), this.caption && (hAsync("div", { class: "duet-progress-caption" }, hAsync("span", null, this.caption))), hAsync("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" }, hAsync("div", { class: "progress-bar" }, hAsync("span", { style: { width: `${this.progress}%;` } }, "Progress: ", this.progress, "%"))))));
|
|
14127
14327
|
}
|
|
14128
14328
|
get element() { return getElement(this); }
|
|
14129
14329
|
static get style() { return duetProgressCss; }
|
|
@@ -14132,6 +14332,9 @@ class DuetProgress {
|
|
|
14132
14332
|
"$tagName$": "duet-progress",
|
|
14133
14333
|
"$members$": {
|
|
14134
14334
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
14335
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
14336
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
14337
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
14135
14338
|
"accessibleLabel": [1, "accessible-label"],
|
|
14136
14339
|
"accessibleLabelUploadDefaults": [1, "accessible-label-upload-defaults"],
|
|
14137
14340
|
"accessibleLabelUpload": [1, "accessible-label-upload"],
|
|
@@ -14158,6 +14361,18 @@ class DuetRadio {
|
|
|
14158
14361
|
* Own Properties.
|
|
14159
14362
|
*/
|
|
14160
14363
|
this.radioId = createID("DuetRadio");
|
|
14364
|
+
/**
|
|
14365
|
+
* Aria Details of the component
|
|
14366
|
+
*/
|
|
14367
|
+
this.accessibleDetails = undefined;
|
|
14368
|
+
/**
|
|
14369
|
+
* String of id's that indicate alternative labels elements
|
|
14370
|
+
*/
|
|
14371
|
+
this.accessibleLabelledBy = undefined;
|
|
14372
|
+
/**
|
|
14373
|
+
* Aria description the button
|
|
14374
|
+
*/
|
|
14375
|
+
this.accessibleDescription = undefined;
|
|
14161
14376
|
/**
|
|
14162
14377
|
* Controls the margin of the component.
|
|
14163
14378
|
*/
|
|
@@ -14246,7 +14461,7 @@ class DuetRadio {
|
|
|
14246
14461
|
horizontal: this.groupDirection === "horizontal" && !this.groupResponsive,
|
|
14247
14462
|
"horizontal-responsive": this.groupDirection === "horizontal" && this.groupResponsive,
|
|
14248
14463
|
"duet-m-0": this.margin === "none",
|
|
14249
|
-
} }, hAsync("div", { class: { "duet-radio-container": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("input", { type: "radio", onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, value: this.value, tabindex: this.accessibleIndex, class: { "duet-radio": true, disabled: this.disabled || this.groupDisabled }, checked: this.checked, disabled: this.disabled || this.groupDisabled, required: this.required, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, role: this.role, name: this.name, id: identifier, ref: input => (this.nativeInput = input) }), hAsync("label", { class: "duet-label", htmlFor: identifier }, hAsync("span", null, this.label)))));
|
|
14464
|
+
} }, hAsync("div", { class: { "duet-radio-container": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("input", { type: "radio", onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, value: this.value, tabindex: this.accessibleIndex, class: { "duet-radio": true, disabled: this.disabled || this.groupDisabled }, checked: this.checked, disabled: this.disabled || this.groupDisabled, required: this.required, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, role: this.role, name: this.name, id: identifier, ref: input => (this.nativeInput = input) }), hAsync("label", { class: "duet-label", htmlFor: identifier }, hAsync("span", null, this.label)))));
|
|
14250
14465
|
}
|
|
14251
14466
|
get element() { return getElement(this); }
|
|
14252
14467
|
static get style() { return duetRadioCss; }
|
|
@@ -14255,6 +14470,9 @@ class DuetRadio {
|
|
|
14255
14470
|
"$tagName$": "duet-radio",
|
|
14256
14471
|
"$members$": {
|
|
14257
14472
|
"accessibleActiveDescendant": [1, "accessible-active-descendant"],
|
|
14473
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
14474
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
14475
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
14258
14476
|
"accessibleIndex": [1, "accessible-index"],
|
|
14259
14477
|
"margin": [1],
|
|
14260
14478
|
"accessibleControls": [1, "accessible-controls"],
|
|
@@ -14695,15 +14913,15 @@ class DuetRangeStepper {
|
|
|
14695
14913
|
this.handleStepClick(e);
|
|
14696
14914
|
};
|
|
14697
14915
|
}
|
|
14698
|
-
|
|
14699
|
-
if (newValue
|
|
14916
|
+
watchStepIndexStateHandler(newValue) {
|
|
14917
|
+
if (newValue <= 1) {
|
|
14700
14918
|
this.leftBnRef.setAttribute("disabled", "");
|
|
14701
14919
|
this.rightBnRef.focus();
|
|
14702
14920
|
}
|
|
14703
14921
|
else {
|
|
14704
14922
|
this.leftBnRef.removeAttribute("disabled");
|
|
14705
14923
|
}
|
|
14706
|
-
if (newValue
|
|
14924
|
+
if (newValue >= this.total / this.stepSize) {
|
|
14707
14925
|
this.rightBnRef.setAttribute("disabled", "");
|
|
14708
14926
|
this.leftBnRef.focus();
|
|
14709
14927
|
}
|
|
@@ -14711,12 +14929,20 @@ class DuetRangeStepper {
|
|
|
14711
14929
|
this.rightBnRef.removeAttribute("disabled");
|
|
14712
14930
|
}
|
|
14713
14931
|
}
|
|
14932
|
+
watchStepSizeStateHandler(newValue, oldValue) {
|
|
14933
|
+
if (newValue !== oldValue) {
|
|
14934
|
+
if (this.stepIndex * newValue > this.total) {
|
|
14935
|
+
this.stepIndex = this.total / newValue;
|
|
14936
|
+
}
|
|
14937
|
+
}
|
|
14938
|
+
}
|
|
14714
14939
|
handleStepClick(e) {
|
|
14940
|
+
const from = this.stepIndex * this.stepSize - this.stepSize;
|
|
14715
14941
|
this.duetRangeStepUpdate.emit({
|
|
14716
14942
|
originalEvent: e,
|
|
14717
14943
|
component: "duet-range-stepper",
|
|
14718
|
-
from:
|
|
14719
|
-
to: this.
|
|
14944
|
+
from: from,
|
|
14945
|
+
to: this.getTo(),
|
|
14720
14946
|
index: this.stepIndex,
|
|
14721
14947
|
});
|
|
14722
14948
|
}
|
|
@@ -14724,7 +14950,7 @@ class DuetRangeStepper {
|
|
|
14724
14950
|
inheritGlobalTheme(this);
|
|
14725
14951
|
}
|
|
14726
14952
|
componentDidLoad() {
|
|
14727
|
-
this.
|
|
14953
|
+
this.watchStepIndexStateHandler(this.stepIndex);
|
|
14728
14954
|
}
|
|
14729
14955
|
increment(direction) {
|
|
14730
14956
|
const newIndex = this.stepIndex + direction;
|
|
@@ -14732,20 +14958,28 @@ class DuetRangeStepper {
|
|
|
14732
14958
|
this.stepIndex = 1;
|
|
14733
14959
|
}
|
|
14734
14960
|
else {
|
|
14735
|
-
if (newIndex * this.stepSize
|
|
14961
|
+
if (newIndex * this.stepSize < this.total + this.stepSize) {
|
|
14736
14962
|
this.stepIndex = newIndex;
|
|
14737
14963
|
}
|
|
14964
|
+
else if (newIndex * this.stepSize > this.total + this.stepSize) {
|
|
14965
|
+
this.stepIndex = Math.floor(this.total / this.stepSize);
|
|
14966
|
+
}
|
|
14738
14967
|
}
|
|
14739
14968
|
}
|
|
14969
|
+
getTo() {
|
|
14970
|
+
const to = this.stepIndex * this.stepSize;
|
|
14971
|
+
const result = to > this.total ? this.total : to;
|
|
14972
|
+
return result;
|
|
14973
|
+
}
|
|
14740
14974
|
generateStepSize() {
|
|
14741
14975
|
// this function uses this.stepIndex and this.range to generate a range of number like 1-100
|
|
14742
14976
|
// this is used to generate the step size
|
|
14743
|
-
let start = (this.stepIndex - 1) * this.stepSize;
|
|
14977
|
+
let start = Math.floor((this.stepIndex - 1) * this.stepSize);
|
|
14744
14978
|
//easy fix for starting position
|
|
14745
14979
|
if (start === 0) {
|
|
14746
14980
|
start = 1;
|
|
14747
14981
|
}
|
|
14748
|
-
const end = this.stepIndex * this.stepSize;
|
|
14982
|
+
const end = Math.floor(this.stepIndex * this.stepSize);
|
|
14749
14983
|
return this.ariaLabels.x_of_y
|
|
14750
14984
|
.replace("{0}", String(start))
|
|
14751
14985
|
.replace("{1}", String(end))
|
|
@@ -14783,7 +15017,8 @@ class DuetRangeStepper {
|
|
|
14783
15017
|
}
|
|
14784
15018
|
get element() { return getElement(this); }
|
|
14785
15019
|
static get watchers() { return {
|
|
14786
|
-
"stepIndex": ["
|
|
15020
|
+
"stepIndex": ["watchStepIndexStateHandler"],
|
|
15021
|
+
"stepSize": ["watchStepSizeStateHandler"]
|
|
14787
15022
|
}; }
|
|
14788
15023
|
static get style() { return duetRangeStepperCss; }
|
|
14789
15024
|
static get cmpMeta() { return {
|
|
@@ -15852,7 +16087,7 @@ class DuetTabGroup {
|
|
|
15852
16087
|
}; }
|
|
15853
16088
|
}
|
|
15854
16089
|
|
|
15855
|
-
const duetTableCss = "duet-table{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;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{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;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}duet-table .duet-table-action-row td:last-child{justify-self:end;padding-right:20px !important;white-space:nowrap}.duet-table-flattened
|
|
16090
|
+
const duetTableCss = "duet-table{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;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{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;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}duet-table .duet-table-action-row td:last-child{justify-self:end;padding-right:20px !important;white-space:nowrap}.duet-table-flattened table,.duet-table-flattened thead,.duet-table-flattened tbody,.duet-table-flattened tfoot,.duet-table-flattened th,.duet-table-flattened td,.duet-table-flattened tr{display:block}.duet-table-flattened thead tr{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-table-flattened td{line-height:1.25}.duet-table-flattened td:not(:last-child){margin-bottom:16px !important}.duet-table-flattened tbody td,.duet-table-flattened tbody th,.duet-table-flattened tfoot td{padding:0 !important;text-align:left !important}.duet-table-flattened tbody th{font-weight:600;line-height:1.25;color:#657787;text-align:left}.duet-table-flattened td[data-heading]::before{margin-bottom:4px !important;display:block;font-size:1rem;font-weight:600;color:#00294d;content:attr(data-heading)}.duet-table-flattened.duet-theme-turva td[data-heading]::before{color:#171c3a}.duet-table-sticky thead th{position:sticky;top:0;background:white}.duet-table-striped td,.duet-table-striped th{padding:20px !important}@media (max-width: 35.9375em){.duet-table-striped td,.duet-table-striped th{padding:20px 12px !important}}.duet-table-striped tbody th{background:white}.duet-table-striped.duet-table-sticky thead th{border-bottom:1px solid #e1e3e6}.duet-table-striped.duet-table-sticky.duet-theme-turva thead th{border-bottom-color:#e4e4e6}.duet-table-striped tbody:not(:first-of-type) th{padding-top:40px !important}.duet-table-striped tbody:only-of-type tr:nth-of-type(odd){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:only-of-type tr:nth-of-type(odd){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tfoot td{border-top:1px solid #e1e3e6}.duet-table-striped.duet-theme-turva tfoot td{border-top-color:#e4e4e6}.duet-table-striped.duet-table-flattened tbody:not(:first-of-type) th{padding-top:20px !important}.duet-table-striped.duet-table-flattened tr{padding:20px !important}.duet-table-striped.duet-table-flattened tfoot td{border-top:0}.duet-table-striped.duet-table-flattened tfoot tr{border-top:1px solid #e1e3e6}.duet-table-striped.duet-table-flattened.duet-theme-turva tfoot tr{border-top-color:#e4e4e6}.duet-table-fixed th,.duet-table-minimal th,.duet-table-plain th{padding:16px !important;border-bottom:1px solid #657787}.duet-table-fixed th:first-child,.duet-table-minimal th:first-child,.duet-table-plain th:first-child{padding-left:0 !important}.duet-table-fixed th:last-child,.duet-table-minimal th:last-child,.duet-table-plain th:last-child{padding-right:0 !important}.duet-theme-turva.duet-table-fixed th,.duet-theme-turva.duet-table-minimal th,.duet-theme-turva.duet-table-plain th{border-bottom-color:#444445}.duet-table-fixed tbody th,.duet-table-minimal tbody th,.duet-table-plain tbody th{padding-top:40px !important;border-bottom-color:#e1e3e6}.duet-theme-turva.duet-table-fixed tbody th,.duet-theme-turva.duet-table-minimal tbody th,.duet-theme-turva.duet-table-plain tbody th{border-bottom-color:#e4e4e6}.duet-table-fixed td,.duet-table-minimal td,.duet-table-plain td{padding:16px !important}.duet-table-fixed td:first-child,.duet-table-minimal td:first-child,.duet-table-plain td:first-child{padding-left:0 !important}.duet-table-fixed td:last-child,.duet-table-minimal td:last-child,.duet-table-plain td:last-child{padding-right:0 !important}.duet-table-fixed tbody td,.duet-table-minimal tbody td,.duet-table-plain tbody td{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-table-fixed tbody td,.duet-theme-turva.duet-table-minimal tbody td,.duet-theme-turva.duet-table-plain tbody td{border-bottom-color:#e4e4e6}.duet-table-flattened.duet-table-fixed tbody:first-of-type th,.duet-table-flattened.duet-table-minimal tbody:first-of-type th,.duet-table-flattened.duet-table-plain tbody:first-of-type th{padding-top:0 !important}.duet-table-flattened.duet-table-fixed td,.duet-table-flattened.duet-table-minimal td,.duet-table-flattened.duet-table-plain td,.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{border-bottom:0}.duet-table-flattened.duet-table-fixed tr,.duet-table-flattened.duet-table-minimal tr,.duet-table-flattened.duet-table-plain tr{padding:20px 0 !important}.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{padding-top:20px !important}.duet-table-flattened.duet-table-fixed tfoot td,.duet-table-flattened.duet-table-minimal tfoot td,.duet-table-flattened.duet-table-plain tfoot td{margin-bottom:4px !important}.duet-table-flattened.duet-table-fixed tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-minimal tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-plain tbody:not(:only-of-type) tr:first-child{border-bottom:0}.duet-table-plain.duet-table-flattened tbody tr{border-bottom:1px solid #e1e3e6}.duet-table-plain.duet-table-flattened.duet-theme-turva tbody tr{border-bottom-color:#e4e4e6}.duet-table-minimal tbody tr,.duet-table-minimal tbody tr td{vertical-align:top;border-bottom:0 none}.duet-table-minimal tbody tr:last-of-type,.duet-table-minimal tbody tr:last-of-type td{border-bottom:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened tbody tr,.duet-table-minimal.duet-table-flattened tbody tr td{border-bottom:0 none}.duet-table-minimal.duet-table-flattened tbody tr td[data-heading]::before{display:none}.duet-table-minimal.duet-table-flattened tfoot{border-top:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened.duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-fixed table{table-layout:fixed}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td,.duet-table-fixed tbody tr td:first-child{padding:4px !important;vertical-align:text-bottom;border-bottom:0 none}.duet-table-fixed thead{display:none}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td{border-bottom:0 none}.duet-table-fixed:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-fixed:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-scrollable{position:relative;width:100%;overflow-x:auto;background:linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0)), linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0)) 100% 0, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)) 100% 0%;background-repeat:no-repeat;background-attachment:local, local, scroll, scroll;background-size:100px 100%, 100px 100%, 12px 100%, 12px 100%}.duet-table-selected-column{background:rgba(0, 119, 179, 0.08)}.duet-theme-turva .duet-table-selected-column{background:rgba(68, 68, 69, 0.08)}.duet-table-sortable tbody tr td:first-child,.duet-table-sortable thead tr th:first-child{padding:20px}.duet-table-sortable:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-sortable:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-actions table{table-layout:auto}.duet-table-actions thead th:last-child{width:1px;white-space:nowrap}.duet-editable-table-table.duet-table-flattened tr{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:auto;gap:10px}.duet-editable-table-table.duet-table-flattened tr.duet-table-action-row td:last-child::before{padding:0;content:\"\"}.duet-editable-table-table.duet-table-flattened td{grid-column:1/2}.duet-editable-table-table.duet-table-flattened td:first-child{grid-row:1;grid-column:1}.duet-editable-table-table.duet-table-flattened td:last-child{grid-row:1;grid-column:2}";
|
|
15856
16091
|
|
|
15857
16092
|
// remove wrapping speech marks.
|
|
15858
16093
|
// media query tokens are wrapped in speech marks,
|
|
@@ -16019,6 +16254,18 @@ class DuetTextarea {
|
|
|
16019
16254
|
* Controls the margin of the component.
|
|
16020
16255
|
*/
|
|
16021
16256
|
this.margin = "auto";
|
|
16257
|
+
/**
|
|
16258
|
+
* Aria Details of the component
|
|
16259
|
+
*/
|
|
16260
|
+
this.accessibleDetails = undefined;
|
|
16261
|
+
/**
|
|
16262
|
+
* String of id's that indicate alternative labels elements
|
|
16263
|
+
*/
|
|
16264
|
+
this.accessibleLabelledBy = undefined;
|
|
16265
|
+
/**
|
|
16266
|
+
* Aria description the button
|
|
16267
|
+
*/
|
|
16268
|
+
this.accessibleDescription = undefined;
|
|
16022
16269
|
/**
|
|
16023
16270
|
* Theme of the textarea.
|
|
16024
16271
|
*/
|
|
@@ -16162,7 +16409,9 @@ class DuetTextarea {
|
|
|
16162
16409
|
"duet-label-hidden": this.labelHidden,
|
|
16163
16410
|
"duet-input-top-caption-shown": this.isCaptionVisible,
|
|
16164
16411
|
"has-error": !!this.error,
|
|
16165
|
-
} }, hAsync("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 && (hAsync("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (hAsync("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("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":
|
|
16412
|
+
} }, hAsync("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 && (hAsync("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (hAsync("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("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.accessibleLabelledBy
|
|
16413
|
+
? `${this.labelId} ${this.errorId} ${this.accessibleLabelledBy}`
|
|
16414
|
+
: `${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}`, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), hAsync("duet-grid", { alignment: "stretch" }, hAsync("duet-grid-item", { margin: "none", fill: true }, hAsync("div", { class: "duet-textarea-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", null, this.error))), hAsync("duet-grid-item", { margin: "none", class: "duet-character-count-caption" }, this.counter && (hAsync(CharacterCount, { theme: this.theme, value: this.value, maxlength: this.maxlength, label: this.counterLabel })))))));
|
|
16166
16415
|
}
|
|
16167
16416
|
get element() { return getElement(this); }
|
|
16168
16417
|
static get watchers() { return {
|
|
@@ -16177,6 +16426,9 @@ class DuetTextarea {
|
|
|
16177
16426
|
"accessibleActiveDescendant": [1, "accessible-active-descendant"],
|
|
16178
16427
|
"accessibleAutocomplete": [1, "accessible-autocomplete"],
|
|
16179
16428
|
"accessibleControls": [1, "accessible-controls"],
|
|
16429
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
16430
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
16431
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
16180
16432
|
"accessibleOwns": [1, "accessible-owns"],
|
|
16181
16433
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
16182
16434
|
"theme": [1025],
|
|
@@ -16226,6 +16478,18 @@ class DuetToggle {
|
|
|
16226
16478
|
* Controls the margin of the component.
|
|
16227
16479
|
*/
|
|
16228
16480
|
this.margin = "auto";
|
|
16481
|
+
/**
|
|
16482
|
+
* Aria Details of the component
|
|
16483
|
+
*/
|
|
16484
|
+
this.accessibleDetails = undefined;
|
|
16485
|
+
/**
|
|
16486
|
+
* String of id's that indicate alternative labels elements
|
|
16487
|
+
*/
|
|
16488
|
+
this.accessibleLabelledBy = undefined;
|
|
16489
|
+
/**
|
|
16490
|
+
* Aria description the button
|
|
16491
|
+
*/
|
|
16492
|
+
this.accessibleDescription = undefined;
|
|
16229
16493
|
/**
|
|
16230
16494
|
* Label for the toggle.
|
|
16231
16495
|
*/
|
|
@@ -16287,7 +16551,7 @@ class DuetToggle {
|
|
|
16287
16551
|
return (hAsync(Host, { onClick: this.disabled ? undefined : this.onClick, class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { class: {
|
|
16288
16552
|
"duet-toggle": true,
|
|
16289
16553
|
"duet-theme-turva": this.theme === "turva",
|
|
16290
|
-
} }, hAsync("duet-label", { theme: this.theme, for: identifier }, this.label), hAsync("label", { class: "duet-switch", htmlFor: identifier }, hAsync("input", { type: "checkbox", value: this.value, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, id: identifier, role: this.role, name: this.name, checked: this.checked, required: this.required, disabled: this.disabled, ref: input => (this.nativeInput = input) }), hAsync("div", { class: "duet-slider" })))));
|
|
16554
|
+
} }, hAsync("duet-label", { theme: this.theme, for: identifier }, this.label), hAsync("label", { class: "duet-switch", htmlFor: identifier }, hAsync("input", { type: "checkbox", value: this.value, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, id: identifier, role: this.role, name: this.name, checked: this.checked, required: this.required, disabled: this.disabled, ref: input => (this.nativeInput = input) }), hAsync("div", { class: "duet-slider" })))));
|
|
16291
16555
|
}
|
|
16292
16556
|
get element() { return getElement(this); }
|
|
16293
16557
|
static get watchers() { return {
|
|
@@ -16304,6 +16568,9 @@ class DuetToggle {
|
|
|
16304
16568
|
"accessibleControls": [1, "accessible-controls"],
|
|
16305
16569
|
"accessibleOwns": [1, "accessible-owns"],
|
|
16306
16570
|
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
16571
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
16572
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
16573
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
16307
16574
|
"label": [1],
|
|
16308
16575
|
"required": [4],
|
|
16309
16576
|
"disabled": [516],
|
|
@@ -18926,7 +19193,7 @@ const templateWindows = new Map, createHydrateBuildId = () => {
|
|
|
18926
19193
|
}, commentre = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, getCssSelectors = e => {
|
|
18927
19194
|
SELECTORS.all.length = SELECTORS.tags.length = SELECTORS.classNames.length = SELECTORS.ids.length = SELECTORS.attrs.length = 0;
|
|
18928
19195
|
const t = (e = e.replace(/\./g, " .").replace(/\#/g, " #").replace(/\[/g, " [").replace(/\>/g, " > ").replace(/\+/g, " + ").replace(/\~/g, " ~ ").replace(/\*/g, " * ").replace(/\:not\((.*?)\)/g, " ")).split(" ");
|
|
18929
|
-
for (let e = 0, r = t.length; e < r; e++) t[e] = t[e].split(":")[0], 0 !== t[e].length && ("." === t[e].charAt(0) ? SELECTORS.classNames.push(t[e].
|
|
19196
|
+
for (let e = 0, r = t.length; e < r; e++) t[e] = t[e].split(":")[0], 0 !== t[e].length && ("." === t[e].charAt(0) ? SELECTORS.classNames.push(t[e].slice(1)) : "#" === t[e].charAt(0) ? SELECTORS.ids.push(t[e].slice(1)) : "[" === t[e].charAt(0) ? (t[e] = t[e].slice(1).split("=")[0].split("]")[0].trim(),
|
|
18930
19197
|
SELECTORS.attrs.push(t[e].toLowerCase())) : /[a-z]/g.test(t[e].charAt(0)) && SELECTORS.tags.push(t[e].toLowerCase()));
|
|
18931
19198
|
return SELECTORS.classNames = SELECTORS.classNames.sort(((e, t) => e.length < t.length ? -1 : e.length > t.length ? 1 : 0)),
|
|
18932
19199
|
SELECTORS;
|