wcs-core 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -9
- package/design-tokens/dist/sncf-groupe-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-groupe.css +227 -227
- package/design-tokens/dist/sncf-holding-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-holding.css +227 -227
- package/design-tokens/dist/sncf-reseau-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-reseau.css +227 -227
- package/design-tokens/dist/sncf-voyageurs-root-scoped.css +242 -242
- package/design-tokens/dist/sncf-voyageurs.css +242 -242
- package/dist/cjs/{popper-8d6e7fca.js → popper-1b61df21.js} +10 -17
- package/dist/cjs/popper-1b61df21.js.map +1 -0
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav.cjs.entry.js +3 -3
- package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid.cjs.entry.js +5 -4
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +3 -2
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
- package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +59 -24
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/accordion/{accordion.e2e.js → accordion.e2e.playwright.js} +51 -55
- package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -0
- package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
- package/dist/collection/components/alert/alert.e2e.playwright.js +125 -0
- package/dist/collection/components/alert/alert.e2e.playwright.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js +107 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js +188 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/button.e2e.playwright.js +26 -0
- package/dist/collection/components/button/button.e2e.playwright.js.map +1 -0
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js +39 -0
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/chip/chip.e2e.playwright.js +190 -0
- package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.css +15 -0
- package/dist/collection/components/com-nav/{com-nav.e2e.js → com-nav.e2e.playwright.js} +60 -44
- package/dist/collection/components/com-nav/com-nav.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.js +3 -3
- package/dist/collection/components/com-nav/com-nav.js.map +1 -1
- package/dist/collection/components/com-nav-category/com-nav-category.js +1 -1
- package/dist/collection/components/com-nav-item/com-nav-item.css +2 -2
- package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +1 -1
- package/dist/collection/components/counter/counter.e2e.playwright.js +187 -0
- package/dist/collection/components/counter/counter.e2e.playwright.js.map +1 -0
- package/dist/collection/components/counter/counter.js +1 -1
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +320 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +156 -0
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js +104 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/galactic-menu/galactic-menu.js +1 -1
- package/dist/collection/components/grid/grid.e2e.playwright.js +153 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -0
- package/dist/collection/components/grid/grid.js +6 -5
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js +2 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper-interface.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +5 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.e2e.playwright.js +157 -0
- package/dist/collection/components/input/input.e2e.playwright.js.map +1 -0
- package/dist/collection/components/input/input.js +2 -2
- package/dist/collection/components/label/label.css +4 -6
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/mat-icon/mat-icon.js +1 -1
- package/dist/collection/components/modal/modal.css +4 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js +35 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js.map +1 -0
- package/dist/collection/components/modal/modal.js +2 -2
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/native-select/native-select.js +1 -1
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-radial/progress-radial.js +1 -1
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +231 -0
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -0
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/select/select.e2e.playwright.js +1702 -0
- package/dist/collection/components/select/select.e2e.playwright.js.map +1 -0
- package/dist/collection/components/select/select.js +49 -20
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.js +3 -3
- package/dist/collection/components/select-option/select-option.js.map +1 -1
- package/dist/collection/components/switch/switch.e2e.playwright.js +40 -0
- package/dist/collection/components/switch/switch.e2e.playwright.js.map +1 -0
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tabs/tabs.e2e.playwright.js +205 -0
- package/dist/collection/components/tabs/tabs.e2e.playwright.js.map +1 -0
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/textarea/textarea.e2e.playwright.js +133 -0
- package/dist/collection/components/textarea/textarea.e2e.playwright.js.map +1 -0
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/utils/playwright/test-expect.js +2 -0
- package/dist/collection/utils/playwright/test-expect.js.map +1 -0
- package/dist/collection/utils/playwright/test.js +16 -0
- package/dist/collection/utils/playwright/test.js.map +1 -0
- package/dist/esm/{popper-e491c314.js → popper-ac238961.js} +10 -17
- package/dist/esm/popper-ac238961.js.map +1 -0
- package/dist/esm/wcs-breadcrumb.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav.entry.js +3 -3
- package/dist/esm/wcs-com-nav.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js.map +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +1 -1
- package/dist/esm/wcs-grid.entry.js +5 -4
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +3 -2
- package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
- package/dist/esm/wcs-modal.entry.js +2 -2
- package/dist/esm/wcs-modal.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +59 -24
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-tabs.entry.js +1 -1
- package/dist/esm/wcs-tooltip.entry.js +1 -1
- package/dist/types/components/accordion/accordion.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert/alert.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert-drawer/alert-drawer.e2e.playwright.d.ts +1 -0
- package/dist/types/components/breadcrumb/breadcrumb.e2e.playwright.d.ts +1 -0
- package/dist/types/components/button/button.e2e.playwright.d.ts +1 -0
- package/dist/types/components/checkbox/checkbox.e2e.playwright.d.ts +1 -0
- package/dist/types/components/chip/chip.e2e.playwright.d.ts +1 -0
- package/dist/types/components/com-nav/com-nav.e2e.playwright.d.ts +1 -0
- package/dist/types/components/counter/counter.e2e.playwright.d.ts +1 -0
- package/dist/types/components/dropdown/dropdown.e2e.playwright.d.ts +1 -0
- package/dist/types/components/editable-field/editable-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/form-field/form-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/grid/grid.e2e.playwright.d.ts +1 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +2 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +4 -0
- package/dist/types/components/input/input.e2e.playwright.d.ts +1 -0
- package/dist/types/components/modal/modal.e2e.playwright.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group.e2e.playwright.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +7 -1
- package/dist/types/components/select/select.e2e.playwright.d.ts +1 -0
- package/dist/types/components/switch/switch.e2e.playwright.d.ts +1 -0
- package/dist/types/components/tabs/tabs.e2e.playwright.d.ts +1 -0
- package/dist/types/components/textarea/textarea.e2e.playwright.d.ts +1 -0
- package/dist/types/components.d.ts +12 -0
- package/dist/types/utils/playwright/test-expect.d.ts +33 -0
- package/dist/types/utils/playwright/test.d.ts +7 -0
- package/dist/wcs/{p-8e9bd0f1.entry.js → p-0326f834.entry.js} +2 -2
- package/dist/wcs/{p-8e9bd0f1.entry.js.map → p-0326f834.entry.js.map} +1 -1
- package/dist/wcs/p-2221bf0c.entry.js +16 -0
- package/dist/wcs/p-2221bf0c.entry.js.map +1 -0
- package/dist/wcs/p-4ae08567.entry.js +2 -0
- package/dist/wcs/p-4ae08567.entry.js.map +1 -0
- package/dist/wcs/p-4e2d6227.entry.js +2 -0
- package/dist/wcs/p-4e2d6227.entry.js.map +1 -0
- package/dist/wcs/p-8332a7e3.entry.js +2 -0
- package/dist/wcs/p-8332a7e3.entry.js.map +1 -0
- package/dist/wcs/{p-ec383729.entry.js → p-9b76b8e6.entry.js} +2 -2
- package/dist/wcs/{p-ec383729.entry.js.map → p-9b76b8e6.entry.js.map} +1 -1
- package/dist/wcs/{p-1f593d06.entry.js → p-abd8d5a0.entry.js} +2 -2
- package/dist/wcs/{p-622f7403.entry.js → p-c6f8c45c.entry.js} +2 -2
- package/dist/wcs/{p-a94e685c.entry.js → p-db7ba599.entry.js} +2 -2
- package/dist/wcs/p-e1fb3625.js +2 -0
- package/dist/wcs/p-e1fb3625.js.map +1 -0
- package/dist/wcs/{p-a956dc84.entry.js → p-f2f7595e.entry.js} +2 -2
- package/dist/wcs/{p-a956dc84.entry.js.map → p-f2f7595e.entry.js.map} +1 -1
- package/dist/wcs/p-fbd68522.entry.js +2 -0
- package/dist/wcs/p-fbd68522.entry.js.map +1 -0
- package/dist/wcs/{p-8c2605fd.entry.js → p-fe303f58.entry.js} +2 -2
- package/dist/wcs/wcs.esm.js +1 -1
- package/package.json +18 -24
- package/dist/cjs/popper-8d6e7fca.js.map +0 -1
- package/dist/collection/components/accordion/accordion.e2e.js.map +0 -1
- package/dist/collection/components/alert/alert.e2e.js +0 -142
- package/dist/collection/components/alert/alert.e2e.js.map +0 -1
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +0 -111
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +0 -1
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +0 -223
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js.map +0 -1
- package/dist/collection/components/button/button.e2e.js +0 -25
- package/dist/collection/components/button/button.e2e.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox.e2e.js +0 -45
- package/dist/collection/components/checkbox/checkbox.e2e.js.map +0 -1
- package/dist/collection/components/chip/chip.e2e.js +0 -209
- package/dist/collection/components/chip/chip.e2e.js.map +0 -1
- package/dist/collection/components/com-nav/com-nav.e2e.js.map +0 -1
- package/dist/collection/components/counter/counter.e2e.js +0 -206
- package/dist/collection/components/counter/counter.e2e.js.map +0 -1
- package/dist/collection/components/dropdown/dropdown.e2e.js +0 -156
- package/dist/collection/components/dropdown/dropdown.e2e.js.map +0 -1
- package/dist/collection/components/editable-field/editable-field.e2e.js +0 -176
- package/dist/collection/components/editable-field/editable-field.e2e.js.map +0 -1
- package/dist/collection/components/form-field/form-field.e2e.js +0 -122
- package/dist/collection/components/form-field/form-field.e2e.js.map +0 -1
- package/dist/collection/components/grid/grid.e2e.js +0 -147
- package/dist/collection/components/grid/grid.e2e.js.map +0 -1
- package/dist/collection/components/input/input.e2e.js +0 -152
- package/dist/collection/components/input/input.e2e.js.map +0 -1
- package/dist/collection/components/modal/modal.e2e.js +0 -36
- package/dist/collection/components/modal/modal.e2e.js.map +0 -1
- package/dist/collection/components/radio-group/radio-group.e2e.js +0 -239
- package/dist/collection/components/radio-group/radio-group.e2e.js.map +0 -1
- package/dist/collection/components/select/select.e2e.js +0 -1081
- package/dist/collection/components/select/select.e2e.js.map +0 -1
- package/dist/collection/components/switch/switch.e2e.js +0 -45
- package/dist/collection/components/switch/switch.e2e.js.map +0 -1
- package/dist/collection/components/tabs/tabs.e2e.js +0 -207
- package/dist/collection/components/tabs/tabs.e2e.js.map +0 -1
- package/dist/collection/components/textarea/textarea.e2e.js +0 -132
- package/dist/collection/components/textarea/textarea.e2e.js.map +0 -1
- package/dist/collection/utils/tests.js +0 -23
- package/dist/collection/utils/tests.js.map +0 -1
- package/dist/esm/popper-e491c314.js.map +0 -1
- package/dist/types/utils/tests.d.ts +0 -4
- package/dist/wcs/p-0dd07842.entry.js +0 -2
- package/dist/wcs/p-0dd07842.entry.js.map +0 -1
- package/dist/wcs/p-0f864e86.js +0 -2
- package/dist/wcs/p-0f864e86.js.map +0 -1
- package/dist/wcs/p-1244daa0.entry.js +0 -2
- package/dist/wcs/p-1244daa0.entry.js.map +0 -1
- package/dist/wcs/p-1fbe0328.entry.js +0 -2
- package/dist/wcs/p-1fbe0328.entry.js.map +0 -1
- package/dist/wcs/p-b94a09b6.entry.js +0 -16
- package/dist/wcs/p-b94a09b6.entry.js.map +0 -1
- package/dist/wcs/p-fd187bce.entry.js +0 -2
- package/dist/wcs/p-fd187bce.entry.js.map +0 -1
- /package/dist/wcs/{p-1f593d06.entry.js.map → p-abd8d5a0.entry.js.map} +0 -0
- /package/dist/wcs/{p-622f7403.entry.js.map → p-c6f8c45c.entry.js.map} +0 -0
- /package/dist/wcs/{p-a94e685c.entry.js.map → p-db7ba599.entry.js.map} +0 -0
- /package/dist/wcs/{p-8c2605fd.entry.js.map → p-fe303f58.entry.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,f as o,h as a,H as n,g as i}from"./p-32e583ea.js";import{r as c,c as t}from"./p-0017d766.js";import{i as s,a as r,b as l}from"./p-52d77e1f.js";const m=':host{--wcs-com-nav-menu-bar-height:calc(var(--wcs-semantic-size-base) * 8);--wcs-com-nav-border-color:var(--wcs-semantic-color-border-secondary);--wcs-com-nav-border-width:var(--wcs-semantic-border-width-default);--wcs-com-nav-background-color:var(--wcs-semantic-color-background-surface-primary);--wcs-com-nav-app-name-color:var(--wcs-semantic-color-text-primary);--wcs-com-nav-app-name-font-weight:var(--wcs-semantic-font-weight-heavy);--wcs-com-nav-app-name-font-size:var(--wcs-semantic-font-size-heading-5);--wcs-com-nav-app-name-line-height:var(--wcs-semantic-font-line-height-large);--wcs-com-nav-item-color:var(--wcs-semantic-color-foreground-action-neutral-default);--wcs-com-nav-item-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-com-nav-focus-outline-color:var(--wcs-semantic-color-border-focus-base);--wcs-com-nav-vertical-padding:0;--wcs-com-nav-horizontal-padding:var(--wcs-semantic-spacing-large);--wcs-com-nav-mobile-overlay-gap:var(--wcs-semantic-spacing-large);--wcs-com-nav-mobile-overlay-padding:var(--wcs-semantic-spacing-large);--wcs-com-nav-mobile-menu-icon-border-color:var(--wcs-semantic-color-border-secondary);--wcs-com-nav-mobile-menu-icon-gap:calc(var(--wcs-semantic-spacing-base) * 2);--wcs-com-nav-mobile-menu-icon-margin-left:var(--wcs-semantic-spacing-base);--wcs-com-nav-mobile-menu-icon-color:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-com-nav-menu-bar-gap:calc(var(--wcs-semantic-spacing-base) * 5);--wcs-com-nav-menu-bar-margin-left:calc(var(--wcs-semantic-spacing-base) * 6.25);display:block;position:relative;height:var(--wcs-com-nav-menu-bar-height);border-bottom:var(--wcs-com-nav-border-width) solid var(--wcs-com-nav-border-color)}:host .container{padding:var(--wcs-com-nav-vertical-padding) var(--wcs-com-nav-horizontal-padding);height:100%;display:flex;align-items:center;flex-direction:row;justify-content:space-between}:host .container nav{display:flex;align-items:center}:host .container-left{display:flex;height:100%;align-items:center;flex-direction:row}:host .container-right{display:flex;align-items:center}:host .app-name{font-weight:var(--wcs-com-nav-app-name-font-weight);font-size:var(--wcs-com-nav-app-name-font-size);line-height:var(--wcs-com-nav-app-name-line-height);color:var(--wcs-com-nav-app-name-color)}:host .app-name ::slotted(a){user-select:none;cursor:pointer;text-decoration:none;color:inherit;font-weight:inherit}:host .app-name ::slotted(a:focus-visible){outline:none}:host .app-name:focus-within{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-com-nav-focus-outline-color);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}:host .menu-bar{display:none}:host #mobile-menu-icon{display:flex;align-items:center;flex-wrap:nowrap;color:var(--wcs-com-nav-mobile-menu-icon-color);padding-left:var(--wcs-com-nav-mobile-menu-icon-gap);margin-left:var(--wcs-com-nav-mobile-menu-icon-margin-left);border-left:solid 1px var(--wcs-com-nav-mobile-menu-icon-border-color)}:host #mobile-menu-icon:focus{outline:none}:host #mobile-menu-icon:focus-visible::after{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-com-nav-focus-outline-color);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}@supports not selector(#mobile-menu-icon:focus-visible::after){:host #mobile-menu-icon:focus::after{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-com-nav-focus-outline-color);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}}:host button{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}:host #mobile-menu-icon:after{font-family:icons;font-size:18px;cursor:pointer;content:"\\f198";line-height:1;box-sizing:border-box}:host #mobile-menu-icon[aria-expanded=true]:after{content:"\\f129"}:host .mobile-overlay{display:none}:host .mobile-overlay[data-mobile-open]{padding:var(--wcs-com-nav-mobile-overlay-padding);position:absolute;top:var(--wcs-com-nav-menu-bar-height);left:0;right:0;display:flex;flex-direction:column;gap:var(--wcs-com-nav-mobile-overlay-gap);z-index:9999;background-color:var(--wcs-com-nav-background-color)}:host .mobile-overlay[data-mobile-open] ::slotted(wcs-com-nav-item){color:var(--wcs-com-nav-item-color);font-weight:var(--wcs-com-nav-item-font-weight)}@media (min-width: 576px){:host .container{margin:0 auto;max-width:var(--wcs-com-content-max-width)}:host nav{height:100%}:host .menu-bar{display:flex;align-items:center;height:100%;margin-left:var(--wcs-com-nav-menu-bar-margin-left)}:host .menu-bar ::slotted(*:not(:first-child)){margin-left:var(--wcs-com-nav-menu-bar-gap)}:host .menu-bar ::slotted(wcs-com-nav-item){height:100%;color:var(--wcs-com-nav-item-color);font-weight:var(--wcs-com-nav-item-font-weight)}:host .menu-bar ::slotted(wcs-com-nav-item:focus-within){outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-com-nav-focus-outline-color);outline-offset:0.1rem;border-radius:2px}:host #mobile-menu-icon{display:none}:host .mobile-overlay{display:none !important}}';const d=m;const v=["title"];const h="WCS-COM-NAV-SUBMENU";const b=class{constructor(o){e(this,o);this.inheritedAttributes={};this.appName=undefined;this.mobileMenuOpen=false;this.currentActiveSizing=undefined}mobileMenuIconClick(){this.mobileMenuOpen=!this.mobileMenuOpen}disconnectedCallback(){var e;(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},s(this.el)),r(this.el,v));const e=this.el.querySelectorAll(":scope > wcs-com-nav-submenu:not([slot]), :scope > a:not([slot])");c(e,h)}componentDidLoad(){if(!this.resizeObserver){this.resizeObserver=t(this);this.resizeObserver.observe(document.body)}}async setAriaAttribute(e,a){this.inheritedAttributes[e]=a;o(this)}closeMobileMenu(){this.mobileMenuOpen=false}onClickOnFinalAction(){this.closeMobileMenu()}render(){const e=this.inheritedAttributes["aria-label"]||undefined;return a(n,{key:"b39ff3dbd6d304ad0252e0fcfd2e0c5716b666db"},a("div",{key:"f84b73c9cee6295a7776576afeb61b65b71ea34e",class:"container"},a("div",{key:"a39b867e9d102abb4e4c13503a544681cd9b7fd8",class:"container-left"},a("div",{key:"49db5dd80f097a9b2ccaf39fc64be9f6100108be",class:"app-name"},this.appName,a("slot",{key:"3cfe05e6e510826ffd2168e6edc3380bc92ad459",name:"app-name"})),this.currentActiveSizing==="desktop"?a("nav",Object.assign({role:"navigation"},this.inheritedAttributes),a("div",{class:"menu-bar",role:"list"},this.currentActiveSizing==="desktop"?a("slot",null):null)):null),a("div",{key:"83496cccd32eec07f5a508dbf36b591442e668e2",class:"container-right"},a("slot",{key:"cf68946afcefa0b77fb57019f9734e5ff1e763aa",name:"actions"}),this.currentActiveSizing==="mobile"?a("nav",Object.assign({id:"wcs-com-nav-mobile-menu",role:"navigation"},this.inheritedAttributes),a("button",{id:"mobile-menu-icon","aria-label":e,"aria-expanded":this.mobileMenuOpen?"true":"false","aria-controls":"wcs-com-nav-mobile-menu",onClick:()=>this.mobileMenuIconClick()}),this.currentActiveSizing==="mobile"?a("div",{class:"mobile-overlay","data-mobile-open":this.mobileMenuOpen,role:"list"},a("slot",null)):null):null)))}exitMobileMenuOnKeyDown(e){if(l(e)){this.closeMobileMenu()}}get el(){return i(this)}};b.style=d;export{b as wcs_com_nav};
|
|
2
|
+
//# sourceMappingURL=p-4ae08567.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["comNavCss","WcsComNavStyle0","COM_NAV_INHERITED_ATTRS","WCS_COM_NAV_SUBMENU_TAG_NAME","ComNav","this","inheritedAttributes","mobileMenuIconClick","mobileMenuOpen","disconnectedCallback","_a","resizeObserver","disconnect","componentWillLoad","Object","assign","inheritAriaAttributes","el","inheritAttributes","slottedNavigableItems","querySelectorAll","registerCloseHandlerForFocusOutEventOn","componentDidLoad","comNavDidLoadWithResizeObserver","observe","document","body","setAriaAttribute","attr","value","forceUpdate","closeMobileMenu","onClickOnFinalAction","render","menuAriaLabel","undefined","h","Host","key","class","appName","name","currentActiveSizing","role","id","onClick","exitMobileMenuOnKeyDown","evt","isEscapeKey"],"sources":["src/components/com-nav/com-nav.scss?tag=wcs-com-nav&encapsulation=shadow","src/components/com-nav/com-nav.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n@import './com-nav-focus.scss';\n@import '../../style/breakpoints.scss';\n@import '../../style/reset.scss';\n\n:host {\n --wcs-com-nav-menu-bar-height: calc(var(--wcs-semantic-size-base) * 8);\n --wcs-com-nav-border-color: var(--wcs-semantic-color-border-secondary);\n --wcs-com-nav-border-width: var(--wcs-semantic-border-width-default);\n --wcs-com-nav-background-color: var(--wcs-semantic-color-background-surface-primary);\n\n --wcs-com-nav-app-name-color: var(--wcs-semantic-color-text-primary);\n --wcs-com-nav-app-name-font-weight: var(--wcs-semantic-font-weight-heavy);\n --wcs-com-nav-app-name-font-size: var(--wcs-semantic-font-size-heading-5);\n --wcs-com-nav-app-name-line-height: var(--wcs-semantic-font-line-height-large);\n\n --wcs-com-nav-item-color: var(--wcs-semantic-color-foreground-action-neutral-default);\n --wcs-com-nav-item-font-weight: var(--wcs-semantic-font-weight-medium);\n\n --wcs-com-nav-focus-outline-color: var(--wcs-semantic-color-border-focus-base);\n\n\n // Spacings for navbar and mobile overlay\n --wcs-com-nav-vertical-padding: 0;\n --wcs-com-nav-horizontal-padding: var(--wcs-semantic-spacing-large);\n --wcs-com-nav-mobile-overlay-gap: var(--wcs-semantic-spacing-large);\n --wcs-com-nav-mobile-overlay-padding: var(--wcs-semantic-spacing-large);\n\n // Burger icon (mobile)\n --wcs-com-nav-mobile-menu-icon-border-color: var(--wcs-semantic-color-border-secondary);\n --wcs-com-nav-mobile-menu-icon-gap: calc(var(--wcs-semantic-spacing-base) * 2);\n --wcs-com-nav-mobile-menu-icon-margin-left: var(--wcs-semantic-spacing-base);\n --wcs-com-nav-mobile-menu-icon-color: var(--wcs-semantic-color-foreground-action-secondary-default);\n\n // Menu bar (desktop)\n --wcs-com-nav-menu-bar-gap: calc(var(--wcs-semantic-spacing-base) * 5); // 40px\n --wcs-com-nav-menu-bar-margin-left: calc(var(--wcs-semantic-spacing-base) * 6.25); // 50 px\n\n display: block;\n position: relative;\n height: var(--wcs-com-nav-menu-bar-height);\n border-bottom: var(--wcs-com-nav-border-width) solid var(--wcs-com-nav-border-color);\n\n .container {\n padding: var(--wcs-com-nav-vertical-padding) var(--wcs-com-nav-horizontal-padding);\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n\n nav {\n display: flex;\n align-items: center;\n }\n }\n\n .container-left {\n display: flex;\n height: 100%;\n align-items: center;\n flex-direction: row;\n }\n\n .container-right {\n display: flex;\n align-items: center;\n }\n\n .app-name {\n font-weight: var(--wcs-com-nav-app-name-font-weight);\n font-size: var(--wcs-com-nav-app-name-font-size);\n line-height: var(--wcs-com-nav-app-name-line-height);\n color: var(--wcs-com-nav-app-name-color);\n\n ::slotted(a) {\n @include reset-anchor;\n }\n\n ::slotted(a:focus-visible) {\n outline: none;\n }\n }\n\n .app-name:focus-within {\n @include focus-outline($outline-color: var(--wcs-com-nav-focus-outline-color));\n }\n\n .menu-bar {\n display: none;\n }\n\n #mobile-menu-icon {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n color: var(--wcs-com-nav-mobile-menu-icon-color);\n padding-left: var(--wcs-com-nav-mobile-menu-icon-gap);\n margin-left: var(--wcs-com-nav-mobile-menu-icon-margin-left);\n border-left: solid 1px var(--wcs-com-nav-mobile-menu-icon-border-color);\n }\n\n #mobile-menu-icon:focus {\n outline: none;\n }\n\n #mobile-menu-icon:focus-visible::after {\n @include focus-outline($outline-color: var(--wcs-com-nav-focus-outline-color));\n }\n\n @supports not selector(#mobile-menu-icon:focus-visible::after) {\n #mobile-menu-icon:focus::after {\n @include focus-outline($outline-color: var(--wcs-com-nav-focus-outline-color));\n }\n }\n\n button {\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n }\n\n #mobile-menu-icon:after {\n font-family: icons;\n font-size: 18px;\n cursor: pointer;\n content: \"\\f198\";\n line-height: 1;\n box-sizing: border-box;\n }\n\n #mobile-menu-icon[aria-expanded=\"true\"]:after {\n content: \"\\f129\";\n }\n\n .mobile-overlay {\n display: none;\n }\n\n .mobile-overlay[data-mobile-open] {\n padding: var(--wcs-com-nav-mobile-overlay-padding);\n position: absolute;\n top: var(--wcs-com-nav-menu-bar-height);\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wcs-com-nav-mobile-overlay-gap);\n z-index: 9999;\n background-color: var(--wcs-com-nav-background-color);\n\n ::slotted(wcs-com-nav-item) {\n color: var(--wcs-com-nav-item-color);\n font-weight: var(--wcs-com-nav-item-font-weight);\n }\n }\n}\n\n@include for-tablet-portrait-up {\n :host {\n .container {\n margin: 0 auto;\n max-width: var(--wcs-com-content-max-width);\n }\n\n nav {\n height: 100%;\n }\n\n .menu-bar {\n display: flex;\n align-items: center;\n height: 100%;\n margin-left: var(--wcs-com-nav-menu-bar-margin-left);\n\n ::slotted(*:not(:first-child)) {\n margin-left: var(--wcs-com-nav-menu-bar-gap);\n }\n\n ::slotted(wcs-com-nav-item) {\n height: 100%;\n color: var(--wcs-com-nav-item-color);\n font-weight: var(--wcs-com-nav-item-font-weight);\n }\n\n // Focus style for nav item in menu bar\n ::slotted(wcs-com-nav-item:focus-within) {\n @include com-nav-item-desktop-focus-outline(var(--wcs-com-nav-focus-outline-color));\n }\n }\n\n #mobile-menu-icon {\n display: none;\n }\n\n .mobile-overlay {\n display: none !important;\n }\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n forceUpdate,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { comNavDidLoadWithResizeObserver, registerCloseHandlerForFocusOutEventOn } from \"./com-nav-utils\";\nimport { inheritAriaAttributes, inheritAttributes, isEscapeKey } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { ComNavSize } from \"./com-nav-size\";\n\n\nconst COM_NAV_INHERITED_ATTRS = ['title'];\n\nconst WCS_COM_NAV_SUBMENU_TAG_NAME = 'WCS-COM-NAV-SUBMENU';\n\n/**\n * *Part of communication design system*\n *\n * The com-nav component is a container for navigation links to external or internal pages of the website.\n *\n * @slot <no-name> - Default slot containing all the menu declarations\n * @slot app-name - (Optional) Extra slot for the application name\n * @slot actions - Slot for actions placed on the right part of the container\n * \n * @cssprop --wcs-com-nav-menu-bar-height - Height of the menu bar\n * @cssprop --wcs-com-nav-border-color - Border color of the bottom border of the com-nav\n * @cssprop --wcs-com-nav-border-width - Border width of the border below com-nav\n * @cssprop --wcs-com-nav-background-color - Background color of the com-nav;\n * @cssprop --wcs-com-nav-app-name-color - App name color\n * @cssprop --wcs-com-nav-app-name-font-weight - App name font-weight\n * @cssprop --wcs-com-nav-app-name-font-size - Font size of the App name text\n * @cssprop --wcs-com-nav-app-name-line-height - Line height of the App name text\n * @cssprop --wcs-com-nav-item-color - Color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-item-font-weight - Font weight of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-focus-outline-color - Focus outline color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-horizontal-padding - Horizontal padding of wcs-com-nav\n * @cssprop --wcs-com-nav-vertical-padding - Vertical padding of wcs-com-nav\n * @cssprop --wcs-com-nav-mobile-overlay-gap - Gap between each items section in mobile overlay\n * @cssprop --wcs-com-nav-mobile-overlay-padding - Padding inside mobile overlay\n * @cssprop --wcs-com-nav-mobile-menu-icon-border-color - Bar border color on the left of icon mobile menu\n * @cssprop --wcs-com-nav-mobile-menu-icon-gap- Gap between icon mobile menu and separator on the left\n * @cssprop --wcs-com-nav-mobile-menu-icon-margin-left - Margin left of icon mobile menu\n * @cssprop --wcs-com-nav-menu-bar-gap - Gap between each item inside menu-bar\n * @cssprop --wcs-com-nav-menu-bar-margin-left - Margin left between menu bar and the app-name section\n */\n@Component({\n tag: 'wcs-com-nav',\n styleUrl: 'com-nav.scss',\n shadow: true,\n})\nexport class ComNav implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsComNavElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /** Name of the application to be displayed in the menu bar */\n @Prop() appName: string;\n\n @State() private mobileMenuOpen: boolean = false;\n @State() public currentActiveSizing: ComNavSize;\n private resizeObserver: ResizeObserver;\n\n private mobileMenuIconClick() {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, COM_NAV_INHERITED_ATTRS)\n };\n\n const slottedNavigableItems = this.el.querySelectorAll(':scope > wcs-com-nav-submenu:not([slot]), :scope > a:not([slot])');\n registerCloseHandlerForFocusOutEventOn<HTMLWcsComNavSubmenuElement>(slottedNavigableItems, WCS_COM_NAV_SUBMENU_TAG_NAME);\n }\n\n componentDidLoad(): void {\n if(!this.resizeObserver) {\n this.resizeObserver = comNavDidLoadWithResizeObserver(this);\n this.resizeObserver.observe(document.body);\n }\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n // XXX: Special case on this component because of the desktop / mobile mode that re-renders the <nav> element,\n // making it lose all its attribute\n this.inheritedAttributes[attr] = value;\n forceUpdate(this);\n }\n\n private closeMobileMenu() {\n this.mobileMenuOpen = false;\n }\n\n // In mobile mode, we have only one global drawer to display the menu, that why we have to listen the clicks events\n // in the root component (this component). In desktop mode, all submenus and categories manage their drawer its\n // opening state.\n //\n // We listen to the click events fired by the submenu component and we close the mobile menu.\n // In desktop mode, the submenu itself manages the closing of the menu.\n @Listen('wcsClickOnFinalAction')\n onClickOnFinalAction() {\n this.closeMobileMenu();\n }\n \n render() {\n const menuAriaLabel = this.inheritedAttributes['aria-label'] || undefined;\n \n return (\n <Host>\n <div class=\"container\">\n <div class=\"container-left\">\n <div class=\"app-name\">\n {this.appName}\n <slot name=\"app-name\"/>\n </div>\n {this.currentActiveSizing === 'desktop' ?\n <nav role=\"navigation\" {...this.inheritedAttributes}>\n <div class=\"menu-bar\" role=\"list\">\n {this.currentActiveSizing === 'desktop' \n ? <slot/> \n : null}\n </div>\n </nav>\n : null}\n </div>\n <div class=\"container-right\">\n <slot name=\"actions\"/>\n {this.currentActiveSizing === 'mobile' ?\n <nav id=\"wcs-com-nav-mobile-menu\" role=\"navigation\" {...this.inheritedAttributes}>\n <button id=\"mobile-menu-icon\"\n aria-label={menuAriaLabel}\n aria-expanded={this.mobileMenuOpen ? \"true\" : \"false\"}\n aria-controls=\"wcs-com-nav-mobile-menu\"\n onClick={() => this.mobileMenuIconClick()}></button>\n {this.currentActiveSizing === 'mobile'\n ? <div class=\"mobile-overlay\" data-mobile-open={this.mobileMenuOpen} role=\"list\"><slot /></div>\n : null}\n </nav>\n : null}\n </div>\n </div>\n </Host>\n );\n }\n\n /**\n * Close the mobile menu if the user press escape.\n * @param evt keydown event on window target.\n */\n @Listen('keydown', {target: 'window'})\n exitMobileMenuOnKeyDown(evt: KeyboardEvent) {\n if (isEscapeKey(evt)) {\n this.closeMobileMenu();\n }\n }\n}\n"],"mappings":"6JAAA,MAAMA,EAAY,07JAClB,MAAAC,EAAeD,ECiBf,MAAME,EAA0B,CAAC,SAEjC,MAAMC,EAA+B,sB,MAqCxBC,EAAM,M,yBAEPC,KAAAC,oBAA4C,G,2CAKT,M,mCAInC,mBAAAC,GACJF,KAAKG,gBAAkBH,KAAKG,c,CAGhC,oBAAAC,G,OACIC,EAAAL,KAAKM,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,Y,CAGzB,iBAAAC,GACIR,KAAKC,oBAAmBQ,OAAAC,OAAAD,OAAAC,OAAA,GACjBC,EAAsBX,KAAKY,KAC3BC,EAAkBb,KAAKY,GAAIf,IAGlC,MAAMiB,EAAwBd,KAAKY,GAAGG,iBAAiB,oEACvDC,EAAoEF,EAAuBhB,E,CAG/F,gBAAAmB,GACI,IAAIjB,KAAKM,eAAgB,CACrBN,KAAKM,eAAiBY,EAAgClB,MACtDA,KAAKM,eAAea,QAAQC,SAASC,K,EAK7C,sBAAMC,CAAiBC,EAAyBC,GAG5CxB,KAAKC,oBAAoBsB,GAAQC,EACjCC,EAAYzB,K,CAGR,eAAA0B,GACJ1B,KAAKG,eAAiB,K,CAU1B,oBAAAwB,GACI3B,KAAK0B,iB,CAGT,MAAAE,GACI,MAAMC,EAAgB7B,KAAKC,oBAAoB,eAAiB6B,UAEhE,OACIC,EAACC,EAAI,CAAAC,IAAA,4CACDF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,aACPH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,kBACPH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,YACNlC,KAAKmC,QACNJ,EAAA,QAAAE,IAAA,2CAAMG,KAAK,cAEdpC,KAAKqC,sBAAwB,UAC1BN,EAAA,MAAAtB,OAAAC,OAAA,CAAK4B,KAAK,cAAiBtC,KAAKC,qBAC5B8B,EAAA,OAAKG,MAAM,WAAWI,KAAK,QACtBtC,KAAKqC,sBAAwB,UACxBN,EAAA,aACA,OAGZ,MAEVA,EAAA,OAAAE,IAAA,2CAAKC,MAAM,mBACPH,EAAA,QAAAE,IAAA,2CAAMG,KAAK,YACVpC,KAAKqC,sBAAwB,SAC1BN,EAAA,MAAAtB,OAAAC,OAAA,CAAK6B,GAAG,0BAA0BD,KAAK,cAAiBtC,KAAKC,qBACzD8B,EAAA,UAAQQ,GAAG,mBAAkB,aACbV,EAAa,gBACV7B,KAAKG,eAAiB,OAAS,QAAO,gBACvC,0BACdqC,QAAS,IAAMxC,KAAKE,wBACvBF,KAAKqC,sBAAwB,SACxBN,EAAA,OAAKG,MAAM,iBAAgB,mBAAmBlC,KAAKG,eAAgBmC,KAAK,QAAOP,EAAA,cAC/E,MAER,O,CAY1B,uBAAAU,CAAwBC,GACpB,GAAIC,EAAYD,GAAM,CAClB1C,KAAK0B,iB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,c as t,h as s,H as e,g as o}from"./p-32e583ea.js";import{i,a as d}from"./p-fb2751c2.js";import{i as c,a as l,s as n,n as r}from"./p-52d77e1f.js";const h="wcs-modal{--wcs-modal-backdrop-color:var(--wcs-semantic-color-background-backdrop);--wcs-modal-max-height:80%;--wcs-modal-background-color:var(--wcs-semantic-color-background-surface-primary);--wcs-modal-border-radius:var(--wcs-semantic-border-radius-base);--wcs-modal-padding:calc(3 * var(--wcs-semantic-spacing-base));--wcs-modal-border-width:var(--wcs-semantic-border-width-default);--wcs-modal-border-color:var(--wcs-semantic-color-border-secondary);--wcs-modal-title-margin-bottom:var(--wcs-semantic-spacing-large);--wcs-modal-title-font-size:var(--wcs-semantic-font-size-heading-4);--wcs-modal-title-font-weight:var(--wcs-semantic-font-weight-heavy);--wcs-modal-title-line-height:var(--wcs-semantic-font-line-height-medium);--wcs-modal-actions-margin-top:var(--wcs-semantic-spacing-large);--wcs-modal-width-s:288px;--wcs-modal-width-m:480px;--wcs-modal-width-l:864px;--wcs-modal-width-xl:1200px;z-index:999;position:fixed;top:0;bottom:0;left:0;right:0;display:none;background:var(--wcs-modal-backdrop-color)}wcs-modal[show]{display:flex;height:100vh;width:100vw;align-items:center;justify-content:center}wcs-modal[without-backdrop]{background-color:unset}wcs-modal[without-backdrop] .wcs-modal-container{border:solid var(--wcs-modal-border-width) var(--wcs-modal-border-color)}wcs-modal[hide-actions] .wcs-modal-actions{display:none}.wcs-modal-container{max-height:var(--wcs-modal-max-height, 80%);background-color:var(--wcs-modal-background-color);display:grid;grid-template-columns:100%;grid-template-rows:auto 1fr auto;box-sizing:border-box;pointer-events:auto;background-clip:padding-box;border-radius:var(--wcs-modal-border-radius);z-index:20000;padding:var(--wcs-modal-padding);width:var(--wcs-modal-width-m)}.wcs-modal-container[data-size=s]{width:var(--wcs-modal-width-s)}.wcs-modal-container[data-size=m]{width:var(--wcs-modal-width-m)}.wcs-modal-container[data-size=l]{width:var(--wcs-modal-width-l)}.wcs-modal-container[data-size=xl]{width:var(--wcs-modal-width-xl)}.wcs-modal-header{margin-bottom:var(--wcs-modal-title-margin-bottom);display:flex;align-items:center;justify-content:space-between}.wcs-modal-header h1{font-size:var(--wcs-modal-title-font-size);font-weight:var(--wcs-modal-title-font-weight);line-height:var(--wcs-modal-title-line-height);margin:0}.wcs-modal-content{overflow-y:var(--wcs-modal-overflow-y, auto)}.wcs-modal-actions{margin-top:var(--wcs-modal-actions-margin-top);display:flex;justify-content:flex-end}";const m=h;const w=[];const b=class{constructor(s){a(this,s);this.wcsDialogClosed=t(this,"wcsDialogClosed",7);this.inheritedAttributes={};this.modalId=f++;this.showAttributeChangedMarker=false;this.hasBeenClosedBefore=false;this.withoutBackdrop=false;this.show=false;this.showCloseButton=false;this.closeButtonAriaLabel="Fermer";this.size="m";this.hideActions=false;this.modalTriggerControlsId=undefined;this.initialFocusElementId=undefined;this.disableAutoFocus=false}componentWillLoad(){if(!this.modalTriggerControlsId){console.warn("wcs-modal: You must provide the modal-trigger-controls-id attribute to the modal to make it to work properly")}this.inheritedAttributes=Object.assign(Object.assign({},c(this.el)),l(this.el,w))}componentDidLoad(){this.updateFocusableElements()}componentDidRender(){var a;this.updateFocusableElements();if(this.showAttributeChangedMarker){this.showAttributeChangedMarker=false;if(this.disableAutoFocus){return}if(!this.initialFocusElementId){(a=this.firstFocusableElement)===null||a===void 0?void 0:a.focus()}else{const a=document.getElementById(this.initialFocusElementId);if(!a){console.warn(`wcs-modal: Unable to focus element - ID '${this.initialFocusElementId}' not found in DOM`)}a===null||a===void 0?void 0:a.focus()}}}async setAriaAttribute(a,t){n(this.nativeDivDialog,a,t)}onShowChange(){if(this.show){this.hasBeenClosedBefore=false;this.showAttributeChangedMarker=true}else{if(this.hasBeenClosedBefore){return}this.hasBeenClosedBefore=true;if(this.modalTriggerControlsId){const a=document.getElementById(this.modalTriggerControlsId);if(!a){console.warn(`wcs-modal: Element with id '${this.modalTriggerControlsId}' could not be found`)}a===null||a===void 0?void 0:a.focus()}}}updateFocusableElements(){const a=Array.from(this.el.querySelectorAll("*")).filter((a=>i(a)));this.firstFocusableElement=a.length>0&&a[0];this.lastFocusableElement=a.length>0&&a[a.length-1]}close(){if(this.show){this.show=false;this.wcsDialogClosed.emit()}}onKeyDown(a){if(this.show&&this.showCloseButton&&a.key==="Escape"){this.close()}if(this.show){if(r(a)){this.updateFocusableElements();const t=this.firstFocusableElement;const s=this.lastFocusableElement;if(a.shiftKey&&d(t)){a.preventDefault();s.focus()}else if(!a.shiftKey&&d(s)){a.preventDefault();t.focus()}}}}onCloseButtonClick(a){this.close()}handleSlotContentChange(){this.updateFocusableElements()}render(){const a=`wcs-modal-title-${this.modalId}`;return s(e,{key:"e609fe2024b73cab0bed97c0d3b7012d8deba893"},s("div",Object.assign({key:"23007c4ad4971263f7fd99d0e594216cd112f6ea",class:"wcs-modal-container","data-size":this.size,"aria-modal":"true",role:"dialog","aria-labelledby":a,ref:a=>this.nativeDivDialog=a},this.inheritedAttributes),s("div",{key:"bc3e2ead8e3e73da31882c5e87cde2780d9ef2f9",class:"wcs-modal-header"},s("h1",{key:"87561fc92b0990d00e06463afc111e9bdeab6f20",id:a},s("slot",{key:"dbf6d932257e7a264206ddf7caea8a80e4b2b069",name:"header"})),this.showCloseButton&&s("wcs-button",{key:"97036ea40d111c5ac737b1e3f789571cd524cb2d",shape:"round",mode:"clear",id:"wcs-modal-close-button","aria-label":this.closeButtonAriaLabel,onClick:a=>this.onCloseButtonClick(a)},s("wcs-mat-icon",{key:"24d6b531e788c2760c66804df96037714c9f854b",icon:"close"}))),s("div",{key:"34d9ddf3c4527395864a238f329d7b499eb9791b",class:"wcs-modal-content"},s("slot",{key:"5bbd76fc7de9bc6f5aaec7257e7c73995d3e1447",onSlotchange:()=>this.handleSlotContentChange()})),s("div",{key:"7c332e9d1c1b19b65fabb6f52bc14ab0ed9f4803",class:"wcs-modal-actions"},s("slot",{key:"4c44f2337893ba9e8c852a1b8b16beab9da87e4e",name:"actions"}))))}get el(){return o(this)}static get watchers(){return{show:["onShowChange"]}}};let f=0;b.style=m;export{b as wcs_modal};
|
|
2
|
+
//# sourceMappingURL=p-4e2d6227.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["modalCss","WcsModalStyle0","MODAL_INHERITED_ATTRS","Modal","this","inheritedAttributes","modalId","modalIds","showAttributeChangedMarker","hasBeenClosedBefore","undefined","componentWillLoad","modalTriggerControlsId","console","warn","Object","assign","inheritAriaAttributes","el","inheritAttributes","componentDidLoad","updateFocusableElements","componentDidRender","disableAutoFocus","initialFocusElementId","_a","firstFocusableElement","focus","modalElementToFocusOnOpening","document","getElementById","setAriaAttribute","attr","value","setOrRemoveAttribute","nativeDivDialog","onShowChange","show","modalTriggerControlsHtmlElement","focusableElements","Array","from","querySelectorAll","filter","element","isFocusable","length","lastFocusableElement","close","wcsDialogClosed","emit","onKeyDown","event","showCloseButton","key","isTabKey","firstElement","lastElement","shiftKey","isElementFocused","preventDefault","onCloseButtonClick","_","handleSlotContentChange","render","modalTitleId","h","Host","class","size","role","ref","id","name","shape","mode","closeButtonAriaLabel","onClick","$event","icon","onSlotchange"],"sources":["src/components/modal/modal.scss?tag=wcs-modal","src/components/modal/modal.tsx"],"sourcesContent":["wcs-modal {\n --wcs-modal-backdrop-color: var(--wcs-semantic-color-background-backdrop);\n --wcs-modal-max-height: 80%;\n --wcs-modal-background-color: var(--wcs-semantic-color-background-surface-primary);\n --wcs-modal-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-modal-padding: calc(3 * var(--wcs-semantic-spacing-base));\n --wcs-modal-border-width: var(--wcs-semantic-border-width-default);\n --wcs-modal-border-color: var(--wcs-semantic-color-border-secondary);\n --wcs-modal-title-margin-bottom: var(--wcs-semantic-spacing-large);\n --wcs-modal-title-font-size: var(--wcs-semantic-font-size-heading-4);\n --wcs-modal-title-font-weight: var(--wcs-semantic-font-weight-heavy);\n --wcs-modal-title-line-height: var(--wcs-semantic-font-line-height-medium);\n --wcs-modal-actions-margin-top: var(--wcs-semantic-spacing-large);\n\n // Specific component level tokens\n --wcs-modal-width-s: 288px;\n --wcs-modal-width-m: 480px;\n --wcs-modal-width-l: 864px;\n --wcs-modal-width-xl: 1200px;\n\n z-index: 999;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: none;\n background: var(--wcs-modal-backdrop-color);\n}\n\nwcs-modal[show] {\n display: flex;\n height: 100vh;\n width: 100vw;\n align-items: center;\n justify-content: center;\n}\n\n/**\nBackdrop\n */\nwcs-modal[without-backdrop] {\n background-color: unset;\n\n .wcs-modal-container {\n border: solid var(--wcs-modal-border-width) var(--wcs-modal-border-color);\n }\n}\n\nwcs-modal[hide-actions] {\n .wcs-modal-actions {\n display: none;\n }\n}\n\n/**\nModal window\n */\n.wcs-modal-container {\n max-height: var(--wcs-modal-max-height, 80%);\n background-color: var(--wcs-modal-background-color);\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: auto 1fr auto;\n box-sizing: border-box;\n pointer-events: auto;\n background-clip: padding-box;\n border-radius: var(--wcs-modal-border-radius);\n z-index: 20000;\n padding: var(--wcs-modal-padding);\n\n width: var(--wcs-modal-width-m); // Default size\n}\n\n.wcs-modal-container[data-size=s] {\n width: var(--wcs-modal-width-s);\n}\n\n.wcs-modal-container[data-size=m] {\n width: var(--wcs-modal-width-m);\n}\n\n.wcs-modal-container[data-size=l] {\n width: var(--wcs-modal-width-l);\n}\n\n.wcs-modal-container[data-size=xl] {\n width: var(--wcs-modal-width-xl);\n}\n\n.wcs-modal-header {\n /* h1 for semantic but h3 for style */\n h1 {\n font-size: var(--wcs-modal-title-font-size);\n font-weight: var(--wcs-modal-title-font-weight);\n line-height: var(--wcs-modal-title-line-height);\n margin: 0;\n }\n\n margin-bottom: var(--wcs-modal-title-margin-bottom);\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.wcs-modal-content {\n overflow-y: var(--wcs-modal-overflow-y, auto);\n}\n\n.wcs-modal-actions {\n margin-top: var(--wcs-modal-actions-margin-top);\n display: flex;\n justify-content: flex-end;\n}\n","import {\n Element,\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n ComponentInterface,\n Watch, Method\n} from '@stencil/core';\nimport { ModalSize } from './modal-interface';\nimport { isElementFocused, isFocusable } from \"../../utils/accessibility\";\nimport { inheritAriaAttributes, inheritAttributes, isTabKey, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst MODAL_INHERITED_ATTRS = [];\n\n/**\n * The modal component (also named dialog or popup) is an interface element that appears on top of the page content.\n * Use it to show a message, a confirmation dialog, or any other content like forms.\n *\n * ## Accessibility guidelines 💡\n * > - Modal element has `role=\"dialog\"` and `aria-modal=\"true\"`\n * > - Keyboard navigation is trapped inside the modal\n * > - It is mandatory to set the `modal-trigger-controls-id` to the id of the element that opens the dialog, in order\n * > to focus it upon dialog dismissal.\n * > - On modal opening, the default behaviour is to focus the first focusable element. If you want to change the initial \n * > behaviour, you have to use `modal-element-id-to-focus-on-opening` attribute to set the id of the inner modal element you \n * > want to focus. You will see a story as example below\n * > - The modal can be closed at any time by pressing the Escape key.\n * >\n * > - More info : https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n *\n * @cssprop --wcs-modal-max-height - Max height of the main container\n * @cssprop --wcs-modal-overflow-y - Overflow-y of the content\n *\n * @cssprop --wcs-modal-backdrop-color - Backdrop color of the modal\n * @cssprop --wcs-modal-max-height - Max height of the main container\n * @cssprop --wcs-modal-background-color - Background color of the modal\n * @cssprop --wcs-modal-border-radius - Border radius of the modal\n * @cssprop --wcs-modal-padding - Padding inside the modal\n * @cssprop --wcs-modal-border-width - Border width of the modal\n * @cssprop --wcs-modal-border-color - Border color of the modal\n * @cssprop --wcs-modal-title-margin-bottom - Margin bottom of the modal title\n * @cssprop --wcs-modal-title-font-size - Font size of the modal title\n * @cssprop --wcs-modal-title-font-weight - Font weight of the modal title\n * @cssprop --wcs-modal-title-line-height - Line height of the modal title\n * @cssprop --wcs-modal-actions-margin-top - Margin top of the modal actions\n * @cssprop --wcs-modal-width-s - Width of the modal for size small\n * @cssprop --wcs-modal-width-m - Width of the modal for size medium\n * @cssprop --wcs-modal-width-l - Width of the modal for size large\n * @cssprop --wcs-modal-width-xl - Width of the modal for size extra large\n * \n * @slot <no-name> Main container slot\n * @slot header Header container slot (for title)\n * @slot actions Actions container slot (for buttons)\n */\n@Component({\n tag: 'wcs-modal',\n styleUrl: 'modal.scss',\n shadow: false,\n})\nexport class Modal implements ComponentInterface, MutableAriaAttribute {\n @Element() private el: HTMLElement;\n private nativeDivDialog!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /**\n * Specifies whether the component should display a backdrop on the entire page\n */\n @Prop({reflect: true}) withoutBackdrop: boolean = false;\n\n /**\n * Displays the modal\n */\n @Prop({reflect: true, mutable: true}) show: boolean = false;\n\n /**\n * Triggered when the user leaves the dialog with the closing button.\n */\n @Event() wcsDialogClosed: EventEmitter<void>;\n\n /**\n * Specifies whether the component should display a close button.\n * if false, it won't close the modal when the escape key is pressed.\n */\n @Prop({reflect: true}) showCloseButton: boolean = false;\n\n /**\n * Specifies the aria-label present on the close button when the modal is opened. \n * Only use when `showCloseButton` is `true`.\n */\n @Prop() closeButtonAriaLabel: string = 'Fermer';\n\n /**\n * There are multiple sizes for modals. The default size is medium (m), however other sizes are available. Select the\n * size best suited for the content and screen size displaying the modal. Remember to test responsiveness.\n */\n @Prop() size: ModalSize = 'm';\n\n /**\n * Specifies whether the component should hide the actions slot or not\n */\n @Prop({reflect: true}) hideActions: boolean = false;\n\n /**\n * Specifies which element id controls the modal\n * @private\n */\n @Prop() modalTriggerControlsId: string;\n /**\n * The ID of the element to automatically focus when the modal opens.\n * \n * If this property is not set and `disableAutoFocus` is false, the modal will\n * automatically focus the first focusable element within its content.\n * This follows accessibility best practices by ensuring keyboard navigation\n * starts from a logical point when the modal opens.\n * \n * @example\n * <wcs-modal initial-focus-element=\"cancel-button\"></wcs-modal>\n */\n @Prop() initialFocusElementId?: string = undefined;\n\n /**\n * Disables automatic focus behavior when the modal opens.\n * \n * When set to true, the modal will not automatically focus any element upon opening.\n * Use this property with caution, as managing focus is important for accessibility.\n * Consider providing an alternative focus management strategy if disabling the default behavior.\n */\n @Prop({ reflect: true }) disableAutoFocus: boolean = false;\n\n /**\n * Give an unique id\n * @private\n */\n private modalId: number = modalIds++;\n\n private firstFocusableElement: HTMLElement;\n private lastFocusableElement: HTMLElement;\n /**\n * This attribute is used to determine whether the show attribute has changed since the last rendering. \n * This allows us to call the focus method on the first element of the modal when the show attribute changes to true. \n * This call is made in the componentDidRender method\n * @private\n */\n private showAttributeChangedMarker: boolean = false;\n /**\n * This attribute is used to determine if the modal has been closed for the first time since its last activation.\n * It is set to 'true' when the modal is first closed, and will be reset to 'false' when the modal is shown again.\n * This state is important for accessibility reasons in order to focus the modal trigger element (like the button \n * which controls the modal)\n *\n * @private\n */\n private hasBeenClosedBefore: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n if (!this.modalTriggerControlsId) {\n console.warn('wcs-modal: You must provide the modal-trigger-controls-id attribute to the modal to make it to work properly');\n }\n\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, MODAL_INHERITED_ATTRS),\n };\n }\n\n componentDidLoad() {\n this.updateFocusableElements();\n }\n\n componentDidRender() {\n this.updateFocusableElements();\n if (this.showAttributeChangedMarker) {\n this.showAttributeChangedMarker = false;\n \n if(this.disableAutoFocus) {\n return;\n }\n \n if(!this.initialFocusElementId) {\n this.firstFocusableElement?.focus();\n } else {\n const modalElementToFocusOnOpening = document.getElementById(this.initialFocusElementId);\n if(!modalElementToFocusOnOpening) {\n console.warn(`wcs-modal: Unable to focus element - ID '${this.initialFocusElementId}' not found in DOM`);\n }\n \n modalElementToFocusOnOpening?.focus();\n }\n }\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeDivDialog, attr, value);\n }\n \n @Watch(\"show\")\n onShowChange() {\n if(this.show) {\n this.hasBeenClosedBefore = false;\n this.showAttributeChangedMarker = true;\n } else {\n // if we already made actions when the modal was firstly closed, we do nothing\n if(this.hasBeenClosedBefore) {\n return;\n }\n \n this.hasBeenClosedBefore = true;\n\n if(this.modalTriggerControlsId) {\n const modalTriggerControlsHtmlElement = document.getElementById(this.modalTriggerControlsId);\n if(!modalTriggerControlsHtmlElement) {\n console.warn(`wcs-modal: Element with id '${this.modalTriggerControlsId}' could not be found`);\n }\n modalTriggerControlsHtmlElement?.focus();\n }\n }\n }\n\n private updateFocusableElements() {\n const focusableElements = Array.from(this.el.querySelectorAll('*'))\n .filter(element => isFocusable(element));\n\n this.firstFocusableElement = focusableElements.length > 0 && focusableElements[0] as HTMLElement;\n this.lastFocusableElement = focusableElements.length > 0 && focusableElements[focusableElements.length - 1] as HTMLElement;\n }\n \n private close() {\n // If the modal isn't shown, we don't do anything\n if (this.show) {\n this.show = false;\n this.wcsDialogClosed.emit();\n }\n }\n\n @Listen('keydown', {target: 'document'})\n onKeyDown(event: KeyboardEvent) {\n if (this.show && this.showCloseButton && event.key === 'Escape') {\n this.close();\n }\n\n if (this.show) {\n if (isTabKey(event)) {\n this.updateFocusableElements(); // XXX: maybe a performance issue\n const firstElement = this.firstFocusableElement;\n const lastElement = this.lastFocusableElement;\n\n if (event.shiftKey && isElementFocused(firstElement)) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && isElementFocused(lastElement)) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n }\n }\n\n private onCloseButtonClick(_: MouseEvent) {\n this.close();\n }\n\n private handleSlotContentChange() {\n this.updateFocusableElements();\n }\n\n render() {\n const modalTitleId = `wcs-modal-title-${this.modalId}`;\n return (\n <Host>\n <div class=\"wcs-modal-container\"\n data-size={this.size}\n aria-modal=\"true\"\n role={\"dialog\"}\n aria-labelledby={modalTitleId}\n ref={(el) => (this.nativeDivDialog = el)}\n {...this.inheritedAttributes}\n >\n <div class=\"wcs-modal-header\">\n <h1 id={modalTitleId}>\n <slot name=\"header\"></slot>\n </h1>\n {this.showCloseButton && (\n <wcs-button shape=\"round\" \n mode=\"clear\" \n id=\"wcs-modal-close-button\"\n aria-label={this.closeButtonAriaLabel}\n onClick={($event) => this.onCloseButtonClick($event)}>\n <wcs-mat-icon icon=\"close\"></wcs-mat-icon>\n </wcs-button>)\n }\n\n </div>\n <div class=\"wcs-modal-content\">\n <slot onSlotchange={() => this.handleSlotContentChange()}></slot>\n </div>\n <div class=\"wcs-modal-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n\nlet modalIds = 0;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as o,h as i,H as n}from"./p-32e583ea.js";const t=":host{--wcs-com-nav-item-gap:var(--wcs-semantic-spacing-base);--wcs-com-nav-item-font-size:var(--wcs-semantic-font-size-label-1);--wcs-com-nav-item-arrow-icon-color:var(--wcs-semantic-color-foreground-action-neutral-default);--wcs-com-nav-item-arrow-icon-font-size:0.6rem;--wcs-com-nav-item-arrow-icon-font-family:icons;--wcs-com-nav-item-arrow-icon-line-height:1;--wcs-com-nav-item-focus-outline-color:var(--wcs-semantic-color-border-focus-base);position:relative;display:inline-flex;align-items:center;gap:var(--wcs-com-nav-item-gap);height:fit-content;padding:0 8px;font:inherit;}:host ::slotted(a){user-select:none;cursor:pointer;text-decoration:none;color:inherit;font-weight:inherit;display:flex;align-items:center}:host .arrow-icon{display:inline-block;font-family:icons;color:var(--wcs-com-nav-item-arrow-icon-color);font-size:var(--wcs-com-nav-item-arrow-icon-font-size);line-height:var(--wcs-com-nav-item-arrow-icon-line-height);box-sizing:border-box}:host .arrow-container{display:unset}:host ::slotted(a:focus-visible){outline:none}:host(:focus-within){outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-com-nav-item-focus-outline-color);outline-offset:0.5rem;border-radius:2px}@media screen and (min-width: 576px){:host ::slotted(a){display:flex;align-items:center;height:100%;padding-top:unset;padding-bottom:unset;padding-left:unset}}";const a=t;const s=class{constructor(i){e(this,i);this.wcsClickOnFinalAction=o(this,"wcsClickOnFinalAction",7)}onClick(){this.wcsClickOnFinalAction.emit()}render(){return i(n,{key:"25690c3eecac76d2b29b0aeda90f5e1bf5fd0b22",role:"listitem"},i("slot",{key:"236d67ffd9fefb7650d2b67cee685852030adb4b"}),i("span",{key:"2ef478d77dc28d169817500145c8d9df525bd439",class:"arrow-container"},i("span",{key:"0fafbba11e817663ad7e18ff6947cdbd07494f69","aria-hidden":"true",class:"arrow-icon"},"")))}};s.style=a;export{s as wcs_com_nav_item};
|
|
2
|
+
//# sourceMappingURL=p-8332a7e3.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["comNavItemCss","WcsComNavItemStyle0","ComNavItem","onClick","this","wcsClickOnFinalAction","emit","render","h","Host","key","role","class"],"sources":["src/components/com-nav-item/com-nav-item.scss?tag=wcs-com-nav-item&encapsulation=shadow","src/components/com-nav-item/com-nav-item.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n@import '../../style/reset.scss';\n@import '../com-nav/com-nav-focus.scss';\n\n/* Default style and mobile behaviour */\n:host {\n --wcs-com-nav-item-gap: var(--wcs-semantic-spacing-base);\n --wcs-com-nav-item-font-size: var(--wcs-semantic-font-size-label-1);\n --wcs-com-nav-item-arrow-icon-color: var(--wcs-semantic-color-foreground-action-neutral-default);\n --wcs-com-nav-item-arrow-icon-font-size: 0.6rem;\n --wcs-com-nav-item-arrow-icon-font-family: icons;\n --wcs-com-nav-item-arrow-icon-line-height: 1;\n\n --wcs-com-nav-item-focus-outline-color: var(--wcs-semantic-color-border-focus-base);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--wcs-com-nav-item-gap);\n height: fit-content;\n padding: 0 8px;\n\n font: inherit;\n\n ::slotted(a) {\n /* Default */\n @include reset-anchor;\n\n display: flex;\n align-items: center;\n }\n\n /* Common behaviour between Large Screen and Small Screens */\n .arrow-icon {\n display: inline-block;\n font-family: icons;\n color: var(--wcs-com-nav-item-arrow-icon-color);\n font-size: var(--wcs-com-nav-item-arrow-icon-font-size);\n line-height: var(--wcs-com-nav-item-arrow-icon-line-height);\n box-sizing: border-box;\n }\n\n .arrow-container {\n display: unset;\n }\n\n /**For mobile*/\n ::slotted(a:focus-visible) {\n outline: none;\n }\n}\n\n:host(:focus-within) {\n @include com-nav-item-mobile-focus-outline(var(--wcs-com-nav-item-focus-outline-color));\n}\n\n/* Large screen, specific behaviour */\n@media screen and (min-width: 576px) {\n :host {\n ::slotted(a) {\n display: flex;\n align-items: center;\n height: 100%;\n\n /* Reset for pc */\n padding-top: unset;\n padding-bottom: unset;\n padding-left: unset;\n }\n\n // Focus outline style is handling by com-nav, com-nav-submenu and com-nav-category in desktop mode\n }\n}\n","import { Component, Host, h, Event, EventEmitter, Listen } from '@stencil/core';\n\n/**\n * The com-nav-item is a subcomponent of `wcs-com-nav`. It represents a list-item wrapper around a link.\n * \n * @cssprop --wcs-com-nav-item-gap - Gap between text and arrow\n * @cssprop --wcs-com-nav-item-font-weight - Font-weight of item\n * @cssprop --wcs-com-nav-item-arrow-icon-font-size - Arrow size\n * @cssprop --wcs-com-nav-item-focus-outline-color - Focus outline color\n */\n@Component({\n tag: 'wcs-com-nav-item',\n styleUrl: './com-nav-item.scss',\n shadow: true\n})\nexport class ComNavItem {\n /**\n * Emitted when a user click on a final navigation action.\n *\n * Used by the com-nav component to close the mobile menu overlay when a user click on a final action.\n */\n @Event() private wcsClickOnFinalAction: EventEmitter<void>;\n \n @Listen('click')\n onClick() {\n this.wcsClickOnFinalAction.emit();\n }\n \n render() {\n return (\n <Host role=\"listitem\">\n <slot></slot>\n <span class=\"arrow-container\">\n <span aria-hidden=\"true\" class=\"arrow-icon\"></span>\n </span>\n </Host>\n );\n }\n\n}\n"],"mappings":"yDAAA,MAAMA,EAAgB,q1CACtB,MAAAC,EAAeD,E,MCcFE,EAAU,M,sFASnB,OAAAC,GACIC,KAAKC,sBAAsBC,M,CAG/B,MAAAC,GACI,OACIC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,YACPH,EAAA,QAAAE,IAAA,6CACAF,EAAA,QAAAE,IAAA,2CAAME,MAAM,mBACJJ,EAAA,QAAAE,IAAA,yDAAkB,OAAOE,MAAM,cAAY,M"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as r,H as s,g as o}from"./p-32e583ea.js";import{i as t}from"./p-a0f32ead.js";import{z as i,i as c,a,s as l}from"./p-52d77e1f.js";import{i as d}from"./p-a7468a3a.js";const n=":host{--wcs-error-color:var(--wcs-semantic-color-text-critical);--wcs-error-font-size:var(--wcs-semantic-font-size-caption-2);--wcs-error-font-weight:var(--wcs-semantic-font-weight-book);color:var(--wcs-error-color);font-size:var(--wcs-error-font-size);font-weight:var(--wcs-error-font-weight)}";const f=n;const u=class{constructor(r){e(this,r)}render(){return r(s,{key:"7dffcb3487f7210c5c9a45af709fc942a1410679",role:"alert",slot:"error"},r("slot",{key:"251fbdc26fe58be4296328c4ebaed77329c6c507"}))}};u.style=f;const w=":host{--wcs-form-field-gap:var(--wcs-semantic-spacing-small);--wcs-form-field-prefix-suffix-border-radius:var(--wcs-semantic-border-radius-base);--wcs-form-field-prefix-icon-color:var(--wcs-semantic-color-foreground-primary);--wcs-form-field-prefix-value-color:var(--wcs-semantic-color-text-inverse);--wcs-form-field-prefix-placeholder-color:var(--wcs-semantic-color-text-inverse);display:flex;flex-direction:column;gap:var(--wcs-form-field-gap);}:host .input-container{display:flex}:host ::slotted([slot=prefix]){--wcs-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-select-control-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-select-control-border-width-default:0;--wcs-select-control-border-style-focus:dashed;--wcs-select-control-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-native-select-border-width:0;--wcs-native-select-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-border-style-focus:dashed;--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-option-color:var(--wcs-semantic-color-text-inverse);--wcs-button-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host ::slotted([slot=suffix]){--wcs-button-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}::slotted([slot=prefix][disabled]),::slotted([slot=prefix]:disabled),::slotted([slot=prefix][aria-disabled=true]),::slotted([slot=prefix][data-disabled]){--wcs-semantic-color-background-control-disabled:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-semantic-color-text-disabled:var(--wcs-semantic-color-foreground-disabled);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-select-value-color:var(--wcs-semantic-color-text-disabled);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-value-color:var(--wcs-semantic-color-text-disabled)}::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-hover);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-hover)}::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-press);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-press)}.input-container{display:flex}::slotted(wcs-select:not([slot=prefix])){width:100%}::slotted(wcs-native-select:not([slot=prefix])){width:100%}:host(.has-prefix) ::slotted(:not([slot=prefix])){--wcs-input-border-radius-left:0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}:host(.has-suffix) ::slotted(:not([slot=suffix])){--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host(.has-prefix.has-suffix) ::slotted(:not([slot=prefix]):not([slot=suffix])){--wcs-input-border-radius-left:0;--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:0;--wcs-native-select-border-radius:0}";const b=w;const v=class{constructor(r){e(this,r);this.isError=false;this.hasPrefix=false;this.hasSuffix=false;this.spiedElement=undefined}componentWillLoad(){this.hasSuffix=this.el.querySelector("[slot=suffix]")!==null;this.hasPrefix=this.el.querySelector("[slot=prefix]")!==null}componentDidLoad(){this.initSpiedElement();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}isErrorChange(e){this.updateErrorStateOnInput(e);this.updateAriaAttributes()}updateErrorStateOnInput(e){if(this.spiedElementIsOfType("wcs-input","wcs-textarea")){if(e){this.spiedElement.setAttribute("state","error")}else{this.spiedElement.setAttribute("state","initial")}}}spiedElementIsOfType(...e){var r;for(const s of e){if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)===s.toUpperCase())return true}return false}addRequiredMarkerToLabel(){var e;const r=this.el.querySelector("wcs-label");this.observer=new MutationObserver((e=>{var s;const o=e.filter((e=>e.attributeName==="required"))[0];if(o){this.updateLabelRequiredFlag((s=this.spiedElement)===null||s===void 0?void 0:s.hasAttribute("required"),r)}}));if(this.spiedElement){this.observer.observe(this.spiedElement,{attributes:true})}const s=(e=this.spiedElement)===null||e===void 0?void 0:e.hasAttribute("required");this.updateLabelRequiredFlag(s,r)}initSpiedElement(){var e,r;const s=["wcs-input","wcs-select","wcs-native-select","wcs-textarea","wcs-radio-group","wcs-switch","wcs-checkbox","wcs-native-select","wcs-counter"];this.spiedElement=(e=this.el.shadowRoot.querySelector("slot:not([name])"))===null||e===void 0?void 0:e.assignedElements().filter((e=>[...s,"SLOT"].map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0];if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)==="SLOT"){this.spiedElement=this.spiedElement.assignedElements().filter((e=>s.map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0]}if(!this.spiedElement){console.warn("Form-field component support only "+s.toString()+". Some features may not work with the provided component.");return}}async updateAriaAttributes(){if(t(this.spiedElement)){const e=[];if(d(this.spiedElement)){const r=await this.spiedElement.getLabel();const s=`${this.label||""} ${r||""}`.trim();if(s){e.push(i(s))}}else{if(this.label){e.push(i(this.label))}}if(this.description){e.push(i(this.description))}if(this.isError){this.spiedElement.setAriaAttribute("aria-invalid","true");if(this.error){e.push(i(this.error))}}else{this.spiedElement.setAriaAttribute("aria-invalid","false")}this.spiedElement.setAriaAttribute("aria-label",e.length>0?e.join(" "):null)}}get label(){var e;return((e=this.el.querySelector("wcs-label"))===null||e===void 0?void 0:e.textContent)||null}get description(){var e;return((e=this.el.querySelector("wcs-hint"))===null||e===void 0?void 0:e.textContent)||null}get error(){var e;return((e=this.el.querySelector("wcs-error"))===null||e===void 0?void 0:e.textContent)||null}updateLabelRequiredFlag(e,r){if(e&&r){r.setAttribute("required","true")}else if(!e&&r){r.removeAttribute("required")}}disconnectedCallback(){var e;(e=this.observer)===null||e===void 0?void 0:e.disconnect()}render(){let e="";const o=this.isError;if(this.hasSuffix){e+=" has-suffix"}if(this.hasPrefix){e+=" has-prefix"}return r(s,{key:"d8a5d2023add393b0a31173351a3d16d9fa0b1a6",class:e},r("slot",{key:"3f347f4dce239c0106fbbe52bdc217fa37c05d01",name:"label"}),r("div",{key:"d6cb92104d72530059ecb9a383ff832afb0c2141",class:"input-container"},r("slot",{key:"8be28f721ff351d41dced80c97c0e34337703d0e",name:"prefix"}),r("slot",{key:"cc58d463877a1e8513736a987286e965870e096d",onSlotchange:()=>this.onFormInputSlotChange()}),r("slot",{key:"898709cfcf0ae1cd43dabd55547d62199d6230c9",name:"suffix"})),o?r("slot",{name:"error"}):"",r("slot",{key:"aaf2d35dfbdfda47b440f96d7f9aa22cb09f6a06",name:"messages"}))}onFormInputSlotChange(){this.initSpiedElement();this.updateAriaAttributes();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}get el(){return o(this)}static get watchers(){return{isError:["isErrorChange"]}}};v.style=b;const h=':host{--wcs-label-font-weight:var(--wcs-semantic-font-weight-book);--wcs-label-color:var(--wcs-semantic-color-text-primary);--wcs-label-required-marker-color:var(--wcs-semantic-color-text-critical);--wcs-label-gap:var(--wcs-semantic-spacing-small);font-weight:var(--wcs-label-font-weight)}:host([required])>label::after{font-weight:var(--wcs-label-font-weight);color:var(--wcs-label-required-marker-color);content:" *"}label{display:inline-block;color:var(--wcs-label-color);font-weight:var(--wcs-label-font-weight)}label ::slotted(wcs-mat-icon){display:inline;vertical-align:middle;margin-left:var(--wcs-label-gap)}';const p=h;const m=["title"];const x=class{constructor(r){e(this,r);this.inheritedAttributes={};this.required=false}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},c(this.el)),a(this.el,m))}async setAriaAttribute(e,r){l(this.nativeLabel,e,r)}render(){return r(s,{key:"62f8ca37637cc792483f24476dbbd63ff3c077e5",slot:"label"},r("label",Object.assign({key:"3cef9a517d57652b75af3157d2c96a34693b258f",ref:e=>this.nativeLabel=e},this.inheritedAttributes),r("slot",{key:"a614b379b45ac3d4cc1d58c45d39b64c0312c1d7"})))}get el(){return o(this)}};x.style=p;export{u as wcs_error,v as wcs_form_field,x as wcs_label};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as r,H as s,g as t}from"./p-32e583ea.js";import{i as o}from"./p-a0f32ead.js";import{z as i,i as c,a,s as l}from"./p-52d77e1f.js";import{i as d}from"./p-a7468a3a.js";const f=":host{--wcs-error-color:var(--wcs-semantic-color-text-critical);--wcs-error-font-size:var(--wcs-semantic-font-size-caption-2);--wcs-error-font-weight:var(--wcs-semantic-font-weight-book);color:var(--wcs-error-color);font-size:var(--wcs-error-font-size);font-weight:var(--wcs-error-font-weight)}";const n=f;const u=class{constructor(r){e(this,r)}render(){return r(s,{key:"7dffcb3487f7210c5c9a45af709fc942a1410679",role:"alert",slot:"error"},r("slot",{key:"251fbdc26fe58be4296328c4ebaed77329c6c507"}))}};u.style=n;const w=":host{--wcs-form-field-gap:var(--wcs-semantic-spacing-small);--wcs-form-field-prefix-suffix-border-radius:var(--wcs-semantic-border-radius-base);--wcs-form-field-prefix-icon-color:var(--wcs-semantic-color-foreground-primary);--wcs-form-field-prefix-value-color:var(--wcs-semantic-color-text-inverse);--wcs-form-field-prefix-placeholder-color:var(--wcs-semantic-color-text-inverse);display:flex;flex-direction:column;gap:var(--wcs-form-field-gap);}:host .input-container{display:flex}:host ::slotted([slot=prefix]){--wcs-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-select-control-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-select-control-border-width-default:0;--wcs-select-control-border-style-focus:dashed;--wcs-select-control-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-native-select-border-width:0;--wcs-native-select-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-border-style-focus:dashed;--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-option-color:var(--wcs-semantic-color-text-inverse);--wcs-button-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host ::slotted([slot=suffix]){--wcs-button-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}::slotted([slot=prefix][disabled]),::slotted([slot=prefix]:disabled),::slotted([slot=prefix][aria-disabled=true]),::slotted([slot=prefix][data-disabled]){--wcs-semantic-color-background-control-disabled:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-semantic-color-text-disabled:var(--wcs-semantic-color-foreground-disabled);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-select-value-color:var(--wcs-semantic-color-text-disabled);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-value-color:var(--wcs-semantic-color-text-disabled)}::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-hover);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-hover)}::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-press);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-press)}.input-container{display:flex}::slotted(wcs-select:not([slot=prefix])){width:100%}::slotted(wcs-native-select:not([slot=prefix])){width:100%}:host(.has-prefix) ::slotted(:not([slot=prefix])){--wcs-input-border-radius-left:0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}:host(.has-suffix) ::slotted(:not([slot=suffix])){--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host(.has-prefix.has-suffix) ::slotted(:not([slot=prefix]):not([slot=suffix])){--wcs-input-border-radius-left:0;--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:0;--wcs-native-select-border-radius:0}";const b=w;const v=class{constructor(r){e(this,r);this.isError=false;this.hasPrefix=false;this.hasSuffix=false;this.spiedElement=undefined}componentWillLoad(){this.hasSuffix=this.el.querySelector("[slot=suffix]")!==null;this.hasPrefix=this.el.querySelector("[slot=prefix]")!==null}componentDidLoad(){this.initSpiedElement();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}isErrorChange(e){this.updateErrorStateOnInput(e);this.updateAriaAttributes()}updateErrorStateOnInput(e){if(this.spiedElementIsOfType("wcs-input","wcs-textarea")){if(e){this.spiedElement.setAttribute("state","error")}else{this.spiedElement.setAttribute("state","initial")}}}spiedElementIsOfType(...e){var r;for(const s of e){if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)===s.toUpperCase())return true}return false}addRequiredMarkerToLabel(){var e;const r=this.el.querySelector("wcs-label");this.observer=new MutationObserver((e=>{var s;const t=e.filter((e=>e.attributeName==="required"))[0];if(t){this.updateLabelRequiredFlag((s=this.spiedElement)===null||s===void 0?void 0:s.hasAttribute("required"),r)}}));if(this.spiedElement){this.observer.observe(this.spiedElement,{attributes:true})}const s=(e=this.spiedElement)===null||e===void 0?void 0:e.hasAttribute("required");this.updateLabelRequiredFlag(s,r)}initSpiedElement(){var e,r;const s=["wcs-input","wcs-select","wcs-native-select","wcs-textarea","wcs-radio-group","wcs-switch","wcs-checkbox","wcs-native-select","wcs-counter"];this.spiedElement=(e=this.el.shadowRoot.querySelector("slot:not([name])"))===null||e===void 0?void 0:e.assignedElements().filter((e=>[...s,"SLOT"].map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0];if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)==="SLOT"){this.spiedElement=this.spiedElement.assignedElements().filter((e=>s.map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0]}if(!this.spiedElement){console.warn("Form-field component support only "+s.toString()+". Some features may not work with the provided component.");return}}async updateAriaAttributes(){if(o(this.spiedElement)){const e=[];if(d(this.spiedElement)){const r=await this.spiedElement.getLabel();const s=`${this.label||""} ${r||""}`.trim();if(s){e.push(i(s))}}else{if(this.label){e.push(i(this.label))}}if(this.description){e.push(i(this.description))}if(this.isError){this.spiedElement.setAriaAttribute("aria-invalid","true");if(this.error){e.push(i(this.error))}}else{this.spiedElement.setAriaAttribute("aria-invalid","false")}this.spiedElement.setAriaAttribute("aria-label",e.length>0?e.join(" "):null)}}get label(){var e;return((e=this.el.querySelector("wcs-label"))===null||e===void 0?void 0:e.textContent)||null}get description(){var e;return((e=this.el.querySelector("wcs-hint"))===null||e===void 0?void 0:e.textContent)||null}get error(){var e;return((e=this.el.querySelector("wcs-error"))===null||e===void 0?void 0:e.textContent)||null}updateLabelRequiredFlag(e,r){if(e&&r){r.setAttribute("required","true")}else if(!e&&r){r.removeAttribute("required")}}disconnectedCallback(){var e;(e=this.observer)===null||e===void 0?void 0:e.disconnect()}render(){let e="";const t=this.isError;if(this.hasSuffix){e+=" has-suffix"}if(this.hasPrefix){e+=" has-prefix"}return r(s,{key:"d8a5d2023add393b0a31173351a3d16d9fa0b1a6",class:e},r("slot",{key:"3f347f4dce239c0106fbbe52bdc217fa37c05d01",name:"label"}),r("div",{key:"d6cb92104d72530059ecb9a383ff832afb0c2141",class:"input-container"},r("slot",{key:"8be28f721ff351d41dced80c97c0e34337703d0e",name:"prefix"}),r("slot",{key:"cc58d463877a1e8513736a987286e965870e096d",onSlotchange:()=>this.onFormInputSlotChange()}),r("slot",{key:"898709cfcf0ae1cd43dabd55547d62199d6230c9",name:"suffix"})),t?r("slot",{name:"error"}):"",r("slot",{key:"aaf2d35dfbdfda47b440f96d7f9aa22cb09f6a06",name:"messages"}))}onFormInputSlotChange(){this.initSpiedElement();this.updateAriaAttributes();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}get el(){return t(this)}static get watchers(){return{isError:["isErrorChange"]}}};v.style=b;const h=':host{--wcs-label-font-weight:var(--wcs-semantic-font-weight-book);--wcs-label-color:var(--wcs-semantic-color-text-primary);--wcs-label-required-marker-color:var(--wcs-semantic-color-text-critical);--wcs-label-gap:var(--wcs-semantic-spacing-small);font-weight:var(--wcs-label-font-weight)}:host([required])>label::after{font-weight:var(--wcs-label-font-weight);color:var(--wcs-label-required-marker-color);content:" *"}label{display:inline-flex;align-items:center;gap:var(--wcs-label-gap);line-height:0;color:var(--wcs-label-color);font-weight:var(--wcs-label-font-weight)}';const p=h;const m=["title"];const x=class{constructor(r){e(this,r);this.inheritedAttributes={};this.required=false}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},c(this.el)),a(this.el,m))}async setAriaAttribute(e,r){l(this.nativeLabel,e,r)}render(){return r(s,{key:"62f8ca37637cc792483f24476dbbd63ff3c077e5",slot:"label"},r("label",Object.assign({key:"3cef9a517d57652b75af3157d2c96a34693b258f",ref:e=>this.nativeLabel=e},this.inheritedAttributes),r("slot",{key:"a614b379b45ac3d4cc1d58c45d39b64c0312c1d7"})))}get el(){return t(this)}};x.style=p;export{u as wcs_error,v as wcs_form_field,x as wcs_label};
|
|
2
|
+
//# sourceMappingURL=p-9b76b8e6.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["errorCss","WcsErrorStyle0","Label","render","h","Host","key","role","slot","formFieldCss","WcsFormFieldStyle0","FormField","componentWillLoad","this","hasSuffix","el","querySelector","hasPrefix","componentDidLoad","initSpiedElement","addRequiredMarkerToLabel","updateErrorStateOnInput","isError","isErrorChange","newValue","updateAriaAttributes","spiedElementIsOfType","spiedElement","setAttribute","types","type","_a","tagName","toUpperCase","label","observer","MutationObserver","mutations","requiredAttMutation","filter","m","attributeName","updateLabelRequiredFlag","hasAttribute","observe","attributes","isRequired","SUPPORTED_COMPONENTS","shadowRoot","assignedElements","n","map","x","indexOf","nodeName","_b","console","warn","toString","isMutableAriaAttribute","ariaLabelParts","isControlComponentWithLabel","innerLabel","getLabel","combinedLabel","trim","push","normalizeWhitespace","description","setAriaAttribute","error","length","join","textContent","removeAttribute","disconnectedCallback","disconnect","classes","class","name","onSlotchange","onFormInputSlotChange","labelCss","WcsLabelStyle0","LABEL_INHERITED_ATTRS","inheritedAttributes","Object","assign","inheritAriaAttributes","inheritAttributes","attr","value","setOrRemoveAttribute","nativeLabel","ref"],"sources":["src/components/error/error.scss?tag=wcs-error&encapsulation=shadow","src/components/error/error.tsx","src/components/form-field/form-field.scss?tag=wcs-form-field&encapsulation=shadow","src/components/form-field/form-field.tsx","src/components/label/label.scss?tag=wcs-label&encapsulation=shadow","src/components/label/label.tsx"],"sourcesContent":[":host {\n --wcs-error-color: var(--wcs-semantic-color-text-critical);\n --wcs-error-font-size: var(--wcs-semantic-font-size-caption-2);\n --wcs-error-font-weight: var(--wcs-semantic-font-weight-book);\n\n color: var(--wcs-error-color);\n font-size: var(--wcs-error-font-size);\n font-weight: var(--wcs-error-font-weight);\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The `wcs-error` should always be wrapped in a `wcs-form-field`.\n * It is used to display a red message under the field indicating an incorrect user input.\n * \n * ## Accessibility guidelines 💡\n * - Provide a relevant error message to inform the users what they should change to make the field valid\n * - Always add the error icon, to ensure the visual indication of the error state other than the color\n * - `aria-description` will be automatically added to the field for screen readers\n * - `aria-invalid=\"true\"` will be automatically added to the field for screen readers\n * \n * @cssprop --wcs-error-color - Color of the text\n * @cssprop --wcs-error-font-size - Font size\n * @cssprop --wcs-error-font-weight - Font weight\n */\n@Component({\n tag: 'wcs-error',\n styleUrl: 'error.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface {\n render() {\n return (\n <Host role=\"alert\" slot=\"error\">\n <slot />\n </Host>\n );\n }\n}\n",":host {\n --wcs-form-field-gap: var(--wcs-semantic-spacing-small);\n\n --wcs-form-field-prefix-suffix-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-form-field-prefix-icon-color: var(--wcs-semantic-color-foreground-primary);\n --wcs-form-field-prefix-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-form-field-prefix-placeholder-color: var(--wcs-semantic-color-text-inverse);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-form-field-gap);\n\n .input-container {\n display: flex;\n }\n\n /* Components in the prefix slot */\n ::slotted([slot=prefix]) {\n /* Select */\n --wcs-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-select-control-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-select-control-border-width-default: 0;\n --wcs-select-control-border-style-focus: dashed;\n --wcs-select-control-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n /* Native select */\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-native-select-border-width: 0;\n --wcs-native-select-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-native-select-border-style-focus: dashed;\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-option-color: var(--wcs-semantic-color-text-inverse);\n\n /* Button */\n --wcs-button-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n /* Components in the suffix slot */\n ::slotted([slot=suffix]) {\n --wcs-button-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Disabled components in the prefix slot */\n::slotted([slot=prefix][disabled]),\n::slotted([slot=prefix]:disabled),\n::slotted([slot=prefix][aria-disabled=true]),\n::slotted([slot=prefix][data-disabled]) {\n --wcs-semantic-color-background-control-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-semantic-color-text-disabled: var(--wcs-semantic-color-foreground-disabled);\n\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-select-value-color: var(--wcs-semantic-color-text-disabled);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-disabled);\n}\n\n/* Hover and press states */\n::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n}\n\n::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-press);\n}\n\n.input-container {\n display: flex;\n}\n\n::slotted(wcs-select:not([slot=prefix])) {\n width: 100%;\n}\n\n::slotted(wcs-native-select:not([slot=prefix])) {\n width: 100%;\n}\n\n/* Components in the center that are prefixed */\n:host(.has-prefix) {\n ::slotted(:not([slot=prefix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Components in the center that are suffixed */\n:host(.has-suffix) {\n ::slotted(:not([slot=suffix])) {\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n}\n\n/* Components in the center that are prefixed AND suffixed */\n:host(.has-prefix.has-suffix) {\n ::slotted(:not([slot=prefix]):not([slot=suffix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: 0;\n --wcs-native-select-border-radius: 0;\n }\n}\n","import { Component, ComponentInterface, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { isMutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { normalizeWhitespace } from '../../utils/helpers';\nimport { isControlComponentWithLabel } from \"../../utils/control-component-interface\";\n\n/**\n * Form field component wraps the native input element and add some more functionality on top of it.\n *\n * You can use the `wcs-form-field` to wrap any of these components :\n * - `wcs-input`\n * - `wcs-textarea`\n * - `wcs-radio-group`\n * - `wcs-switch`\n * - `wcs-checkbox`\n * - `wcs-native-select`\n * - `wcs-select`\n * - `wcs-counter`\n *\n * For non-supported slotted component, you can use the `required` attribute on the wrapped component to tell the\n * form-field that it is required. It will add a red star after the label of the form field.\n * \n * ## Accessibility guidelines 💡\n * - Each form control should be identified with a unique `wcs-label`\n * - Don't forget to add form validation to make sure the data is correctly formatted\n * - If the `wcs-label` is required, the form control must have the `required` HTML attribute and vice-versa (this is normally automatically set)\n * - The form should not be submittable if at least one required form control is not filled\n * - Hints are optional and should only be used to add extra information\n * - Additional aria attributes put on `<wcs-form-field>` won't inherit onto the native component : you must use the `setAriaAttribute` method.\n * \n * @slot label - Automatically filled when a `wcs-label` is provided\n * @slot <no-name> - The main slot containing the wrapped component\n * @slot prefix - (Optional) Display a component as prefix. See \"Prefix Suffix Group\" story for more info.\n * @slot suffix - (Optional) Display a component as suffix. See \"Prefix Suffix Group\" story for more info.\n * @slot error - Automatically filled when a `wcs-error` is provided\n * @slot messages - Automatically filled when a `wcs-hint` is provided\n *\n * @cssprop --wcs-form-field-gap - Defines the spacing between the label, input control, and hint messages.\n * @cssprop --wcs-form-field-prefix-suffix-border-radius - Sets the border radius for both prefix and suffix elements.\n * \n * @cssprop --wcs-form-field-prefix-background-color-default - Background color default for prefix elements\n * @cssprop --wcs-form-field-prefix-background-color-disabled - Background color for prefix elements when disabled\n * @cssprop --wcs-form-field-prefix-background-color-hover - Background color for prefix elements when hovered\n * @cssprop --wcs-form-field-prefix-border-color-default - Defines the default border color for prefix\n * @cssprop --wcs-form-field-prefix-border-color-focus - Sets the border color for prefix elements when focused.\n * @cssprop --wcs-form-field-prefix-border-color-disabled - Determines the border color for prefix elements when disabled.\n * \n * @cssprop --wcs-form-field-prefix-icon-color - Specifies the color of icons within prefix elements.\n * @cssprop --wcs-form-field-prefix-value-color - Sets the color of values within prefix elements.\n * @cssprop --wcs-form-field-prefix-placeholder-color - Defines the placeholder text color within prefix elements.\n * @cssprop --wcs-form-field-prefix-color-disabled - Determines the text color for prefix elements when disabled.\n */\n@Component({\n tag: 'wcs-form-field',\n styleUrl: 'form-field.scss',\n shadow: true,\n})\nexport class FormField implements ComponentInterface {\n @Element() private el!: HTMLWcsFormFieldElement;\n\n /**\n * Specifies whether the form field is in an error state. Displays the field border in red and the message contained in the wcs-error component\n */\n @Prop({mutable: true, reflect: true}) isError: boolean = false;\n\n @State() private hasPrefix: boolean = false;\n @State() private hasSuffix: boolean = false;\n @State() private spiedElement: Element;\n\n private observer: MutationObserver;\n\n componentWillLoad() {\n this.hasSuffix = this.el.querySelector('[slot=suffix]') !== null;\n this.hasPrefix = this.el.querySelector('[slot=prefix]') !== null;\n }\n\n componentDidLoad() {\n this.initSpiedElement();\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n\n @Watch('isError')\n // @ts-ignore\n private isErrorChange(newValue: boolean) {\n this.updateErrorStateOnInput(newValue);\n this.updateAriaAttributes();\n }\n\n private updateErrorStateOnInput(newValue: boolean) {\n if (this.spiedElementIsOfType('wcs-input', 'wcs-textarea')) {\n if (newValue) {\n this.spiedElement.setAttribute('state', 'error');\n } else {\n this.spiedElement.setAttribute('state', 'initial');\n }\n }\n }\n\n /**\n * This function return true if the form field contains an element with tagName matches a value of the types param\n * @param types\n * @private\n */\n private spiedElementIsOfType(...types: string[]): boolean {\n for (const type of types) {\n if (this.spiedElement?.tagName === type.toUpperCase()) return true;\n }\n return false\n }\n\n\n private addRequiredMarkerToLabel() {\n // TODO: deprecate this in favor of the 'required' component attribute\n const label = this.el.querySelector('wcs-label');\n this.observer = new MutationObserver(mutations => {\n const requiredAttMutation = mutations.filter(m => m.attributeName === 'required')[0];\n if (requiredAttMutation) {\n this.updateLabelRequiredFlag(this.spiedElement?.hasAttribute('required'), label);\n }\n });\n if (this.spiedElement) {\n this.observer.observe(this.spiedElement, {attributes: true});\n }\n\n const isRequired = this.spiedElement?.hasAttribute('required');\n this.updateLabelRequiredFlag(isRequired, label);\n }\n\n\n private initSpiedElement() {\n const SUPPORTED_COMPONENTS = ['wcs-input', 'wcs-select', 'wcs-native-select', 'wcs-textarea', 'wcs-radio-group', 'wcs-switch', 'wcs-checkbox', 'wcs-native-select', 'wcs-counter'];\n\n this.spiedElement = (this.el.shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement)\n ?.assignedElements()\n .filter(n => [...SUPPORTED_COMPONENTS, 'SLOT'].map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0];\n\n // If the component is used in another web component\n if (this.spiedElement?.tagName === 'SLOT') {\n this.spiedElement = ((this.spiedElement as HTMLSlotElement)\n .assignedElements()\n .filter(n => SUPPORTED_COMPONENTS.map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0]) as HTMLElement;\n }\n\n if (!this.spiedElement) {\n // tslint:disable-next-line:no-console\n console.warn('Form-field component support only ' + SUPPORTED_COMPONENTS.toString() + '. Some features may not work with the provided component.');\n return;\n }\n }\n \n private async updateAriaAttributes(): Promise<void> {\n if (isMutableAriaAttribute(this.spiedElement)) {\n const ariaLabelParts: string[] = [];\n if (isControlComponentWithLabel(this.spiedElement)) {\n const innerLabel = await this.spiedElement.getLabel();\n const combinedLabel = `${this.label || ''} ${innerLabel || ''}`.trim();\n if(combinedLabel) {\n ariaLabelParts.push(normalizeWhitespace(combinedLabel));\n }\n } else {\n if(this.label) {\n ariaLabelParts.push(normalizeWhitespace(this.label));\n }\n }\n\n if(this.description) {\n ariaLabelParts.push(normalizeWhitespace(this.description));\n }\n \n // Sur les autres DS, généralement seul l'erreur est affichée et pas avec la description\n if(this.isError) {\n this.spiedElement.setAriaAttribute('aria-invalid', 'true');\n if(this.error) {\n ariaLabelParts.push(normalizeWhitespace(this.error));\n }\n } else {\n this.spiedElement.setAriaAttribute('aria-invalid', 'false');\n }\n\n this.spiedElement.setAriaAttribute('aria-label', ariaLabelParts.length > 0 ? ariaLabelParts.join(' ') : null);\n }\n }\n \n private get label(): string | null {\n return this.el.querySelector('wcs-label')?.textContent || null;\n }\n \n private get description(): string | null {\n return this.el.querySelector('wcs-hint')?.textContent || null;\n }\n \n private get error(): string | null {\n return this.el.querySelector('wcs-error')?.textContent || null;\n }\n\n private updateLabelRequiredFlag(isRequired: boolean, label: Element) {\n if (isRequired && label) {\n label.setAttribute('required', 'true');\n } else if (!isRequired && label) {\n label.removeAttribute('required');\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n }\n\n render() {\n let classes = '';\n const isError = this.isError;\n\n if (this.hasSuffix) {\n classes += ' has-suffix';\n }\n if (this.hasPrefix) {\n classes += ' has-prefix';\n }\n return (\n <Host class={classes}>\n <slot name=\"label\"/>\n <div class=\"input-container\">\n <slot name=\"prefix\"/>\n <slot onSlotchange={() => this.onFormInputSlotChange()}/>\n <slot name=\"suffix\"/>\n </div>\n {\n isError ? (<slot name=\"error\"/>) : ''\n }\n <slot name=\"messages\"/>\n </Host>\n );\n }\n\n private onFormInputSlotChange() {\n this.initSpiedElement();\n this.updateAriaAttributes()\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n}\n",":host {\n --wcs-label-font-weight: var(--wcs-semantic-font-weight-book);\n --wcs-label-color: var(--wcs-semantic-color-text-primary);\n --wcs-label-required-marker-color: var(--wcs-semantic-color-text-critical);\n\n --wcs-label-gap: var(--wcs-semantic-spacing-small);\n\n font-weight: var(--wcs-label-font-weight);\n}\n\n:host([required]) > label::after {\n font-weight: var(--wcs-label-font-weight);\n color: var(--wcs-label-required-marker-color);\n content: ' *';\n}\n\nlabel {\n display: inline-block;\n color: var(--wcs-label-color);\n font-weight: var(--wcs-label-font-weight);\n\n // Add margin before tooltip icon\n ::slotted(wcs-mat-icon) {\n display: inline;\n vertical-align: middle;\n margin-left: var(--wcs-label-gap);\n }\n}\n","import { Component, ComponentInterface, h, Host, Method, Prop, Element } from '@stencil/core';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst LABEL_INHERITED_ATTRS = ['title'];\n\n/**\n * The `wcs-label` should always be wrapped in a `wcs-form-field`.\n * It is used to caption a form control component.\n *\n * ## Accessibility guidelines 💡\n * - Use concise name for the label. If you want to describe more your form control, add a `wcs-hint`\n * - Use the required flag only as an indication to inform users that the form control is required\n * \n * @cssprop --wcs-label-color - Color of the text\n * @cssprop --wcs-label-font-weight - Font weight of the text\n * \n * @cssprop --wcs-label-required-marker-color - Color of the required marker\n * \n * @cssprop --wcs-label-gap - Gap between text and required marker\n */\n@Component({\n tag: 'wcs-label',\n styleUrl: 'label.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeLabel?: HTMLLabelElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, marks the label with a red star.\n * Automatically added if the wrapped component inside the `wcs-form-field` already has the `required` attribute. \n */\n @Prop({ reflect: true }) required: boolean = false;\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, LABEL_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeLabel, attr, value);\n }\n\n render() {\n return (\n <Host slot=\"label\">\n <label ref={(el) => this.nativeLabel = el} {...this.inheritedAttributes}>\n <slot />\n </label>\n </Host>\n );\n }\n}\n"],"mappings":"qLAAA,MAAMA,EAAW,ySACjB,MAAAC,EAAeD,E,MCoBFE,EAAK,M,yBACd,MAAAC,GACI,OACIC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,QAAQC,KAAK,SACpBJ,EAAA,QAAAE,IAAA,6C,aCzBhB,MAAMG,EAAe,0tJACrB,MAAAC,EAAeD,E,MCuDFE,EAAS,M,sCAMuC,M,eAEnB,M,eACA,M,4BAKtC,iBAAAC,GACIC,KAAKC,UAAYD,KAAKE,GAAGC,cAAc,mBAAqB,KAC5DH,KAAKI,UAAYJ,KAAKE,GAAGC,cAAc,mBAAqB,I,CAGhE,gBAAAE,GACIL,KAAKM,mBACLN,KAAKO,2BACLP,KAAKQ,wBAAwBR,KAAKS,Q,CAK9B,aAAAC,CAAcC,GAClBX,KAAKQ,wBAAwBG,GAC7BX,KAAKY,sB,CAGD,uBAAAJ,CAAwBG,GAC5B,GAAIX,KAAKa,qBAAqB,YAAa,gBAAiB,CACxD,GAAIF,EAAU,CACVX,KAAKc,aAAaC,aAAa,QAAS,Q,KACrC,CACHf,KAAKc,aAAaC,aAAa,QAAS,U,GAU5C,oBAAAF,IAAwBG,G,MAC5B,IAAK,MAAMC,KAAQD,EAAO,CACtB,KAAIE,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEC,WAAYF,EAAKG,cAAe,OAAO,I,CAElE,OAAO,K,CAIH,wBAAAb,G,MAEJ,MAAMc,EAAQrB,KAAKE,GAAGC,cAAc,aACpCH,KAAKsB,SAAW,IAAIC,kBAAiBC,I,MACjC,MAAMC,EAAsBD,EAAUE,QAAOC,GAAKA,EAAEC,gBAAkB,aAAY,GAClF,GAAIH,EAAqB,CACrBzB,KAAK6B,yBAAwBX,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEY,aAAa,YAAaT,E,KAGlF,GAAIrB,KAAKc,aAAc,CACnBd,KAAKsB,SAASS,QAAQ/B,KAAKc,aAAc,CAACkB,WAAY,M,CAG1D,MAAMC,GAAaf,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEY,aAAa,YACnD9B,KAAK6B,wBAAwBI,EAAYZ,E,CAIrC,gBAAAf,G,QACJ,MAAM4B,EAAuB,CAAC,YAAa,aAAc,oBAAqB,eAAgB,kBAAmB,aAAc,eAAgB,oBAAqB,eAEpKlC,KAAKc,cAAeI,EAAClB,KAAKE,GAAGiC,WAAWhC,cAAc,uBAAuC,MAAAe,SAAA,SAAAA,EACvFkB,mBACDV,QAAOW,GAAK,IAAIH,EAAsB,QAAQI,KAAIC,GAAKA,EAAEnB,gBAAeoB,QAAQH,EAAEI,aAAe,IAAG,GAGzG,KAAIC,EAAA1C,KAAKc,gBAAY,MAAA4B,SAAA,SAAAA,EAAEvB,WAAY,OAAQ,CACvCnB,KAAKc,aAAiBd,KAAKc,aACtBsB,mBACAV,QAAOW,GAAKH,EAAqBI,KAAIC,GAAKA,EAAEnB,gBAAeoB,QAAQH,EAAEI,aAAe,IAAG,E,CAGhG,IAAKzC,KAAKc,aAAc,CAEpB6B,QAAQC,KAAK,qCAAuCV,EAAqBW,WAAa,6DACtF,M,EAIA,0BAAMjC,GACV,GAAIkC,EAAuB9C,KAAKc,cAAe,CAC3C,MAAMiC,EAA2B,GACjC,GAAIC,EAA4BhD,KAAKc,cAAe,CAChD,MAAMmC,QAAmBjD,KAAKc,aAAaoC,WAC3C,MAAMC,EAAgB,GAAGnD,KAAKqB,OAAS,MAAM4B,GAAc,KAAKG,OAChE,GAAGD,EAAe,CACdJ,EAAeM,KAAKC,EAAoBH,G,MAEzC,CACH,GAAGnD,KAAKqB,MAAO,CACX0B,EAAeM,KAAKC,EAAoBtD,KAAKqB,O,EAIrD,GAAGrB,KAAKuD,YAAa,CACjBR,EAAeM,KAAKC,EAAoBtD,KAAKuD,a,CAIjD,GAAGvD,KAAKS,QAAS,CACbT,KAAKc,aAAa0C,iBAAiB,eAAgB,QACnD,GAAGxD,KAAKyD,MAAO,CACXV,EAAeM,KAAKC,EAAoBtD,KAAKyD,O,MAE9C,CACHzD,KAAKc,aAAa0C,iBAAiB,eAAgB,Q,CAGvDxD,KAAKc,aAAa0C,iBAAiB,aAAcT,EAAeW,OAAS,EAAIX,EAAeY,KAAK,KAAO,K,EAIhH,SAAYtC,G,MACR,QAAOH,EAAAlB,KAAKE,GAAGC,cAAc,gBAAY,MAAAe,SAAA,SAAAA,EAAE0C,cAAe,I,CAG9D,eAAYL,G,MACR,QAAOrC,EAAAlB,KAAKE,GAAGC,cAAc,eAAW,MAAAe,SAAA,SAAAA,EAAE0C,cAAe,I,CAG7D,SAAYH,G,MACR,QAAOvC,EAAAlB,KAAKE,GAAGC,cAAc,gBAAY,MAAAe,SAAA,SAAAA,EAAE0C,cAAe,I,CAGtD,uBAAA/B,CAAwBI,EAAqBZ,GACjD,GAAIY,GAAcZ,EAAO,CACrBA,EAAMN,aAAa,WAAY,O,MAC5B,IAAKkB,GAAcZ,EAAO,CAC7BA,EAAMwC,gBAAgB,W,EAI9B,oBAAAC,G,OACI5C,EAAAlB,KAAKsB,YAAQ,MAAAJ,SAAA,SAAAA,EAAE6C,Y,CAGnB,MAAAzE,GACI,IAAI0E,EAAU,GACd,MAAMvD,EAAUT,KAAKS,QAErB,GAAIT,KAAKC,UAAW,CAChB+D,GAAW,a,CAEf,GAAIhE,KAAKI,UAAW,CAChB4D,GAAW,a,CAEf,OACIzE,EAACC,EAAI,CAAAC,IAAA,2CAACwE,MAAOD,GACTzE,EAAA,QAAAE,IAAA,2CAAMyE,KAAK,UACX3E,EAAA,OAAAE,IAAA,2CAAKwE,MAAM,mBACP1E,EAAA,QAAAE,IAAA,2CAAMyE,KAAK,WACX3E,EAAA,QAAAE,IAAA,2CAAM0E,aAAc,IAAMnE,KAAKoE,0BAC/B7E,EAAA,QAAAE,IAAA,2CAAMyE,KAAK,YAGXzD,EAAWlB,EAAA,QAAM2E,KAAK,UAAa,GAEvC3E,EAAA,QAAAE,IAAA,2CAAMyE,KAAK,a,CAKf,qBAAAE,GACJpE,KAAKM,mBACLN,KAAKY,uBACLZ,KAAKO,2BACLP,KAAKQ,wBAAwBR,KAAKS,Q,6FC7O1C,MAAM4D,EAAW,2mBACjB,MAAAC,EAAeD,ECGf,MAAME,EAAwB,CAAC,S,MAsBlBlF,EAAK,M,yBAGNW,KAAAwE,oBAA4C,G,cAMP,K,CAE7C,iBAAAzE,GACIC,KAAKwE,oBAAmBC,OAAAC,OAAAD,OAAAC,OAAA,GACjBC,EAAsB3E,KAAKE,KAC3B0E,EAAkB5E,KAAKE,GAAIqE,G,CAKtC,sBAAMf,CAAiBqB,EAAyBC,GAC5CC,EAAqB/E,KAAKgF,YAAaH,EAAMC,E,CAGjD,MAAAxF,GACI,OACIC,EAACC,EAAI,CAAAC,IAAA,2CAACE,KAAK,SACPJ,EAAA,QAAAkF,OAAAC,OAAA,CAAAjF,IAAA,2CAAOwF,IAAM/E,GAAOF,KAAKgF,YAAc9E,GAAQF,KAAKwE,qBAChDjF,EAAA,QAAAE,IAAA,8C"}
|
|
1
|
+
{"version":3,"names":["errorCss","WcsErrorStyle0","Label","render","h","Host","key","role","slot","formFieldCss","WcsFormFieldStyle0","FormField","componentWillLoad","this","hasSuffix","el","querySelector","hasPrefix","componentDidLoad","initSpiedElement","addRequiredMarkerToLabel","updateErrorStateOnInput","isError","isErrorChange","newValue","updateAriaAttributes","spiedElementIsOfType","spiedElement","setAttribute","types","type","_a","tagName","toUpperCase","label","observer","MutationObserver","mutations","requiredAttMutation","filter","m","attributeName","updateLabelRequiredFlag","hasAttribute","observe","attributes","isRequired","SUPPORTED_COMPONENTS","shadowRoot","assignedElements","n","map","x","indexOf","nodeName","_b","console","warn","toString","isMutableAriaAttribute","ariaLabelParts","isControlComponentWithLabel","innerLabel","getLabel","combinedLabel","trim","push","normalizeWhitespace","description","setAriaAttribute","error","length","join","textContent","removeAttribute","disconnectedCallback","disconnect","classes","class","name","onSlotchange","onFormInputSlotChange","labelCss","WcsLabelStyle0","LABEL_INHERITED_ATTRS","inheritedAttributes","Object","assign","inheritAriaAttributes","inheritAttributes","attr","value","setOrRemoveAttribute","nativeLabel","ref"],"sources":["src/components/error/error.scss?tag=wcs-error&encapsulation=shadow","src/components/error/error.tsx","src/components/form-field/form-field.scss?tag=wcs-form-field&encapsulation=shadow","src/components/form-field/form-field.tsx","src/components/label/label.scss?tag=wcs-label&encapsulation=shadow","src/components/label/label.tsx"],"sourcesContent":[":host {\n --wcs-error-color: var(--wcs-semantic-color-text-critical);\n --wcs-error-font-size: var(--wcs-semantic-font-size-caption-2);\n --wcs-error-font-weight: var(--wcs-semantic-font-weight-book);\n\n color: var(--wcs-error-color);\n font-size: var(--wcs-error-font-size);\n font-weight: var(--wcs-error-font-weight);\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The `wcs-error` should always be wrapped in a `wcs-form-field`.\n * It is used to display a red message under the field indicating an incorrect user input.\n * \n * ## Accessibility guidelines 💡\n * - Provide a relevant error message to inform the users what they should change to make the field valid\n * - Always add the error icon, to ensure the visual indication of the error state other than the color\n * - `aria-description` will be automatically added to the field for screen readers\n * - `aria-invalid=\"true\"` will be automatically added to the field for screen readers\n * \n * @cssprop --wcs-error-color - Color of the text\n * @cssprop --wcs-error-font-size - Font size\n * @cssprop --wcs-error-font-weight - Font weight\n */\n@Component({\n tag: 'wcs-error',\n styleUrl: 'error.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface {\n render() {\n return (\n <Host role=\"alert\" slot=\"error\">\n <slot />\n </Host>\n );\n }\n}\n",":host {\n --wcs-form-field-gap: var(--wcs-semantic-spacing-small);\n\n --wcs-form-field-prefix-suffix-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-form-field-prefix-icon-color: var(--wcs-semantic-color-foreground-primary);\n --wcs-form-field-prefix-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-form-field-prefix-placeholder-color: var(--wcs-semantic-color-text-inverse);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-form-field-gap);\n\n .input-container {\n display: flex;\n }\n\n /* Components in the prefix slot */\n ::slotted([slot=prefix]) {\n /* Select */\n --wcs-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-select-control-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-select-control-border-width-default: 0;\n --wcs-select-control-border-style-focus: dashed;\n --wcs-select-control-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n /* Native select */\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-native-select-border-width: 0;\n --wcs-native-select-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-native-select-border-style-focus: dashed;\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-option-color: var(--wcs-semantic-color-text-inverse);\n\n /* Button */\n --wcs-button-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n /* Components in the suffix slot */\n ::slotted([slot=suffix]) {\n --wcs-button-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Disabled components in the prefix slot */\n::slotted([slot=prefix][disabled]),\n::slotted([slot=prefix]:disabled),\n::slotted([slot=prefix][aria-disabled=true]),\n::slotted([slot=prefix][data-disabled]) {\n --wcs-semantic-color-background-control-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-semantic-color-text-disabled: var(--wcs-semantic-color-foreground-disabled);\n\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-select-value-color: var(--wcs-semantic-color-text-disabled);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-disabled);\n}\n\n/* Hover and press states */\n::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n}\n\n::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-press);\n}\n\n.input-container {\n display: flex;\n}\n\n::slotted(wcs-select:not([slot=prefix])) {\n width: 100%;\n}\n\n::slotted(wcs-native-select:not([slot=prefix])) {\n width: 100%;\n}\n\n/* Components in the center that are prefixed */\n:host(.has-prefix) {\n ::slotted(:not([slot=prefix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Components in the center that are suffixed */\n:host(.has-suffix) {\n ::slotted(:not([slot=suffix])) {\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n}\n\n/* Components in the center that are prefixed AND suffixed */\n:host(.has-prefix.has-suffix) {\n ::slotted(:not([slot=prefix]):not([slot=suffix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: 0;\n --wcs-native-select-border-radius: 0;\n }\n}\n","import { Component, ComponentInterface, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { isMutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { normalizeWhitespace } from '../../utils/helpers';\nimport { isControlComponentWithLabel } from \"../../utils/control-component-interface\";\n\n/**\n * Form field component wraps the native input element and add some more functionality on top of it.\n *\n * You can use the `wcs-form-field` to wrap any of these components :\n * - `wcs-input`\n * - `wcs-textarea`\n * - `wcs-radio-group`\n * - `wcs-switch`\n * - `wcs-checkbox`\n * - `wcs-native-select`\n * - `wcs-select`\n * - `wcs-counter`\n *\n * For non-supported slotted component, you can use the `required` attribute on the wrapped component to tell the\n * form-field that it is required. It will add a red star after the label of the form field.\n * \n * ## Accessibility guidelines 💡\n * - Each form control should be identified with a unique `wcs-label`\n * - Don't forget to add form validation to make sure the data is correctly formatted\n * - If the `wcs-label` is required, the form control must have the `required` HTML attribute and vice-versa (this is normally automatically set)\n * - The form should not be submittable if at least one required form control is not filled\n * - Hints are optional and should only be used to add extra information\n * - Additional aria attributes put on `<wcs-form-field>` won't inherit onto the native component : you must use the `setAriaAttribute` method.\n * \n * @slot label - Automatically filled when a `wcs-label` is provided\n * @slot <no-name> - The main slot containing the wrapped component\n * @slot prefix - (Optional) Display a component as prefix. See \"Prefix Suffix Group\" story for more info.\n * @slot suffix - (Optional) Display a component as suffix. See \"Prefix Suffix Group\" story for more info.\n * @slot error - Automatically filled when a `wcs-error` is provided\n * @slot messages - Automatically filled when a `wcs-hint` is provided\n *\n * @cssprop --wcs-form-field-gap - Defines the spacing between the label, input control, and hint messages.\n * @cssprop --wcs-form-field-prefix-suffix-border-radius - Sets the border radius for both prefix and suffix elements.\n * \n * @cssprop --wcs-form-field-prefix-background-color-default - Background color default for prefix elements\n * @cssprop --wcs-form-field-prefix-background-color-disabled - Background color for prefix elements when disabled\n * @cssprop --wcs-form-field-prefix-background-color-hover - Background color for prefix elements when hovered\n * @cssprop --wcs-form-field-prefix-border-color-default - Defines the default border color for prefix\n * @cssprop --wcs-form-field-prefix-border-color-focus - Sets the border color for prefix elements when focused.\n * @cssprop --wcs-form-field-prefix-border-color-disabled - Determines the border color for prefix elements when disabled.\n * \n * @cssprop --wcs-form-field-prefix-icon-color - Specifies the color of icons within prefix elements.\n * @cssprop --wcs-form-field-prefix-value-color - Sets the color of values within prefix elements.\n * @cssprop --wcs-form-field-prefix-placeholder-color - Defines the placeholder text color within prefix elements.\n * @cssprop --wcs-form-field-prefix-color-disabled - Determines the text color for prefix elements when disabled.\n */\n@Component({\n tag: 'wcs-form-field',\n styleUrl: 'form-field.scss',\n shadow: true,\n})\nexport class FormField implements ComponentInterface {\n @Element() private el!: HTMLWcsFormFieldElement;\n\n /**\n * Specifies whether the form field is in an error state. Displays the field border in red and the message contained in the wcs-error component\n */\n @Prop({mutable: true, reflect: true}) isError: boolean = false;\n\n @State() private hasPrefix: boolean = false;\n @State() private hasSuffix: boolean = false;\n @State() private spiedElement: Element;\n\n private observer: MutationObserver;\n\n componentWillLoad() {\n this.hasSuffix = this.el.querySelector('[slot=suffix]') !== null;\n this.hasPrefix = this.el.querySelector('[slot=prefix]') !== null;\n }\n\n componentDidLoad() {\n this.initSpiedElement();\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n\n @Watch('isError')\n // @ts-ignore\n private isErrorChange(newValue: boolean) {\n this.updateErrorStateOnInput(newValue);\n this.updateAriaAttributes();\n }\n\n private updateErrorStateOnInput(newValue: boolean) {\n if (this.spiedElementIsOfType('wcs-input', 'wcs-textarea')) {\n if (newValue) {\n this.spiedElement.setAttribute('state', 'error');\n } else {\n this.spiedElement.setAttribute('state', 'initial');\n }\n }\n }\n\n /**\n * This function return true if the form field contains an element with tagName matches a value of the types param\n * @param types\n * @private\n */\n private spiedElementIsOfType(...types: string[]): boolean {\n for (const type of types) {\n if (this.spiedElement?.tagName === type.toUpperCase()) return true;\n }\n return false\n }\n\n\n private addRequiredMarkerToLabel() {\n // TODO: deprecate this in favor of the 'required' component attribute\n const label = this.el.querySelector('wcs-label');\n this.observer = new MutationObserver(mutations => {\n const requiredAttMutation = mutations.filter(m => m.attributeName === 'required')[0];\n if (requiredAttMutation) {\n this.updateLabelRequiredFlag(this.spiedElement?.hasAttribute('required'), label);\n }\n });\n if (this.spiedElement) {\n this.observer.observe(this.spiedElement, {attributes: true});\n }\n\n const isRequired = this.spiedElement?.hasAttribute('required');\n this.updateLabelRequiredFlag(isRequired, label);\n }\n\n\n private initSpiedElement() {\n const SUPPORTED_COMPONENTS = ['wcs-input', 'wcs-select', 'wcs-native-select', 'wcs-textarea', 'wcs-radio-group', 'wcs-switch', 'wcs-checkbox', 'wcs-native-select', 'wcs-counter'];\n\n this.spiedElement = (this.el.shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement)\n ?.assignedElements()\n .filter(n => [...SUPPORTED_COMPONENTS, 'SLOT'].map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0];\n\n // If the component is used in another web component\n if (this.spiedElement?.tagName === 'SLOT') {\n this.spiedElement = ((this.spiedElement as HTMLSlotElement)\n .assignedElements()\n .filter(n => SUPPORTED_COMPONENTS.map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0]) as HTMLElement;\n }\n\n if (!this.spiedElement) {\n // tslint:disable-next-line:no-console\n console.warn('Form-field component support only ' + SUPPORTED_COMPONENTS.toString() + '. Some features may not work with the provided component.');\n return;\n }\n }\n \n private async updateAriaAttributes(): Promise<void> {\n if (isMutableAriaAttribute(this.spiedElement)) {\n const ariaLabelParts: string[] = [];\n if (isControlComponentWithLabel(this.spiedElement)) {\n const innerLabel = await this.spiedElement.getLabel();\n const combinedLabel = `${this.label || ''} ${innerLabel || ''}`.trim();\n if(combinedLabel) {\n ariaLabelParts.push(normalizeWhitespace(combinedLabel));\n }\n } else {\n if(this.label) {\n ariaLabelParts.push(normalizeWhitespace(this.label));\n }\n }\n\n if(this.description) {\n ariaLabelParts.push(normalizeWhitespace(this.description));\n }\n \n // Sur les autres DS, généralement seul l'erreur est affichée et pas avec la description\n if(this.isError) {\n this.spiedElement.setAriaAttribute('aria-invalid', 'true');\n if(this.error) {\n ariaLabelParts.push(normalizeWhitespace(this.error));\n }\n } else {\n this.spiedElement.setAriaAttribute('aria-invalid', 'false');\n }\n\n this.spiedElement.setAriaAttribute('aria-label', ariaLabelParts.length > 0 ? ariaLabelParts.join(' ') : null);\n }\n }\n \n private get label(): string | null {\n return this.el.querySelector('wcs-label')?.textContent || null;\n }\n \n private get description(): string | null {\n return this.el.querySelector('wcs-hint')?.textContent || null;\n }\n \n private get error(): string | null {\n return this.el.querySelector('wcs-error')?.textContent || null;\n }\n\n private updateLabelRequiredFlag(isRequired: boolean, label: Element) {\n if (isRequired && label) {\n label.setAttribute('required', 'true');\n } else if (!isRequired && label) {\n label.removeAttribute('required');\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n }\n\n render() {\n let classes = '';\n const isError = this.isError;\n\n if (this.hasSuffix) {\n classes += ' has-suffix';\n }\n if (this.hasPrefix) {\n classes += ' has-prefix';\n }\n return (\n <Host class={classes}>\n <slot name=\"label\"/>\n <div class=\"input-container\">\n <slot name=\"prefix\"/>\n <slot onSlotchange={() => this.onFormInputSlotChange()}/>\n <slot name=\"suffix\"/>\n </div>\n {\n isError ? (<slot name=\"error\"/>) : ''\n }\n <slot name=\"messages\"/>\n </Host>\n );\n }\n\n private onFormInputSlotChange() {\n this.initSpiedElement();\n this.updateAriaAttributes()\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n}\n",":host {\n --wcs-label-font-weight: var(--wcs-semantic-font-weight-book);\n --wcs-label-color: var(--wcs-semantic-color-text-primary);\n --wcs-label-required-marker-color: var(--wcs-semantic-color-text-critical);\n\n --wcs-label-gap: var(--wcs-semantic-spacing-small);\n\n font-weight: var(--wcs-label-font-weight);\n}\n\n:host([required]) > label::after {\n font-weight: var(--wcs-label-font-weight);\n color: var(--wcs-label-required-marker-color);\n content: ' *';\n}\n\nlabel {\n display: inline-flex;\n align-items: center;\n gap: var(--wcs-label-gap);\n line-height: 0;\n \n color: var(--wcs-label-color);\n font-weight: var(--wcs-label-font-weight);\n}\n","import { Component, ComponentInterface, h, Host, Method, Prop, Element } from '@stencil/core';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst LABEL_INHERITED_ATTRS = ['title'];\n\n/**\n * The `wcs-label` should always be wrapped in a `wcs-form-field`.\n * It is used to caption a form control component.\n *\n * ## Accessibility guidelines 💡\n * - Use concise name for the label. If you want to describe more your form control, add a `wcs-hint`\n * - Use the required flag only as an indication to inform users that the form control is required\n * \n * @cssprop --wcs-label-color - Color of the text\n * @cssprop --wcs-label-font-weight - Font weight of the text\n * \n * @cssprop --wcs-label-required-marker-color - Color of the required marker\n * \n * @cssprop --wcs-label-gap - Gap between text and required marker\n */\n@Component({\n tag: 'wcs-label',\n styleUrl: 'label.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeLabel?: HTMLLabelElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, marks the label with a red star.\n * Automatically added if the wrapped component inside the `wcs-form-field` already has the `required` attribute. \n */\n @Prop({ reflect: true }) required: boolean = false;\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, LABEL_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeLabel, attr, value);\n }\n\n render() {\n return (\n <Host slot=\"label\">\n <label ref={(el) => this.nativeLabel = el} {...this.inheritedAttributes}>\n <slot />\n </label>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,c as t,h as a,H as e,g as o}from"./p-32e583ea.js";import{i as r,a as i,s as c}from"./p-52d77e1f.js";import{S as n}from"./p-84e22272.js";import{c as b}from"./p-0f864e86.js";const l=':host{--wcs-tabs-indicator-height:calc(var(--wcs-semantic-size-base) / 2);--wcs-tabs-indicator-background-color:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-indicator-border-radius:var(--wcs-semantic-border-radius-full);--wcs-tabs-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-color-hover:var(--wcs-semantic-color-foreground-action-secondary-hover);--wcs-tabs-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-tabs-color-selected:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-tabs-font-weight-default:var(--wcs-semantic-font-weight-roman);--wcs-tabs-font-weight-selected:var(--wcs-semantic-font-weight-roman);--wcs-tabs-padding-top:var(--wcs-semantic-spacing-base);--wcs-tabs-padding-right:var(--wcs-semantic-spacing-large);--wcs-tabs-padding-bottom:calc(var(--wcs-semantic-spacing-base) + var(--wcs-tabs-indicator-height));--wcs-tabs-padding-left:var(--wcs-semantic-spacing-large);--wcs-tabs-gutter-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-gutter-background-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-headers-border-bottom:var(--wcs-tabs-gutter-border-width) solid var(--wcs-tabs-gutter-background-color);--wcs-tabs-mobile-breakpoint:var(--wcs-phone-breakpoint-max-width, 575px);--wcs-tabs-mobile-overlay-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-mobile-overlay-border-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-mobile-overlay-background-color:var(--wcs-semantic-color-background-surface-primary);--wcs-tabs-mobile-overlay-padding:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-overlay-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-mobile-gap:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-padding:0 var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-height:var(--wcs-semantic-size-m);--wcs-tabs-mobile-font-weight-default:var(--wcs-semantic-font-weight-medium);--wcs-tabs-mobile-font-weight-active:var(--wcs-semantic-font-weight-black);--wcs-tabs-mobile-font-size:var(--wcs-semantic-font-size-base);--wcs-tabs-mobile-color:var(--wcs-semantic-color-text-primary);--wcs-tabs-mobile-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-tabs-mobile-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-mobile-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-mobile-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-mobile-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);display:block}:host([align=start]) .wcs-tabs-headers{justify-content:start}:host([align=end]) .wcs-tabs-headers{justify-content:end}:host([align=center]) .wcs-tabs-headers{justify-content:center}.wcs-tabs-headers{overflow-x:auto;display:flex;flex-direction:row;position:relative}:host([gutter]) .wcs-tabs-headers{border-bottom:var(--wcs-tabs-headers-border-bottom)}.wcs-tab-header{position:relative;padding:var(--wcs-tabs-padding-top) var(--wcs-tabs-padding-right) var(--wcs-tabs-padding-bottom) var(--wcs-tabs-padding-left);border-radius:var(--wcs-tabs-border-radius) var(--wcs-tabs-border-radius) 0 0;display:flex;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;outline:none;transition:all var(--wcs-tabs-transition-duration) ease-out}.wcs-tab-header span{text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default)}.wcs-tab-header:hover{background-color:var(--wcs-tabs-background-color-hover)}.wcs-tab-header:hover span{color:var(--wcs-tabs-color-hover)}.wcs-tab-header:focus-visible>span{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-tabs-border-color-focus);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}.wcs-tab-header:active{background-color:var(--wcs-tabs-background-color-press)}.wcs-tab-header:active span{color:var(--wcs-tabs-color-press)}.active span{font-weight:var(--wcs-tabs-font-weight-selected);color:var(--wcs-tabs-color-selected)}.active::after{position:absolute;bottom:0;left:0;width:100%;content:"";height:var(--wcs-tabs-indicator-height);background-color:var(--wcs-tabs-indicator-background-color);border-radius:var(--wcs-tabs-indicator-border-radius)}button{background-color:inherit}#mobile-button{border:0;font-family:var(--wcs-font-sans-serif), sans-serif;text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default);padding-right:calc(0.75 * var(--wcs-tabs-padding-right));}#mobile-button span{display:flex;align-items:center}#mobile-button .arrow{fill:var(--wcs-tabs-color-default)}#mobile-button:hover .arrow{fill:var(--wcs-tabs-color-hover)}#mobile-button:active .arrow{fill:var(--wcs-tabs-color-press)}.popover{display:none;z-index:9999;overflow:hidden;border:var(--wcs-tabs-mobile-overlay-border-width) solid var(--wcs-tabs-mobile-overlay-border-color);border-radius:var(--wcs-tabs-mobile-overlay-border-radius);padding:var(--wcs-tabs-mobile-overlay-padding);background-color:var(--wcs-tabs-mobile-overlay-background-color)}.popover [role=tab]{display:flex;flex-direction:row;align-items:center;cursor:pointer;user-select:none;gap:var(--wcs-tabs-mobile-gap);padding:var(--wcs-tabs-mobile-padding);height:var(--wcs-tabs-mobile-height);font-weight:var(--wcs-tabs-mobile-font-weight-default);font-size:var(--wcs-tabs-mobile-font-size);color:var(--wcs-tabs-mobile-color);background-color:var(--wcs-tabs-mobile-background-color);border-radius:var(--wcs-tabs-mobile-border-radius);transition-duration:var(--wcs-tabs-transition-duration);transition-property:background-color, color;transition-timing-function:ease;overflow:hidden;white-space:nowrap}.popover [role=tab]:focus{background-color:var(--wcs-tabs-mobile-background-color-focus)}.popover [role=tab]:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-semantic-color-border-focus-base);outline-offset:0;border-radius:var(--wcs-tabs-mobile-border-radius)}.popover [role=tab]:hover{background-color:var(--wcs-tabs-mobile-background-color-hover)}.popover [role=tab]:active{background-color:var(--wcs-tabs-mobile-background-color-press)}.popover .mobile-active{font-weight:var(--wcs-tabs-mobile-font-weight-active)}.show{display:block}';const d=l;const h=[];const w=class{constructor(a){s(this,a);this.tabChange=t(this,"tabChange",7);this.inheritedAttributes={};this.tabsId=v++;this.align="start";this.selectedIndex=0;this.selectedKey=undefined;this.headersOnly=false;this.gutter=undefined;this.description=undefined;this.mobileOverlayExpanded=false;this.mobile=false;this.headers=[];this.currentActiveTabIndex=0}selectedIndexChanged(s){this.currentActiveTabIndex=s}selectedTabkeyChanged(s){this.updateCurrentActiveIndexByTabKey(s)}onMobileChange(s){if(!s){this.popper.destroy();this.popper=null}}emitActiveTabChange(){this.tabChange.emit({tabName:this.headers[this.currentActiveTabIndex],tabIndex:this.currentActiveTabIndex,selectedKey:this.tabs[this.currentActiveTabIndex].itemKey})}updateCurrentActiveIndexByTabKey(s){for(let t=0;t<this.tabs.length;t++){const a=this.tabs[t];if(a.itemKey===s){this.currentActiveTabIndex=t}}}onTabLoaded(){this.refreshHeaders()}onWindowClickEvent(s){if(this.mobile){const t=s.composedPath().some((s=>s===this.mobileButton||s===this.popoverDiv));if(this.mobileOverlayExpanded&&!t){this.mobileOverlayExpanded=false}}}tabsDidLoadWithResizeObserver(){const s=getComputedStyle(this.el).getPropertyValue("--wcs-tabs-mobile-breakpoint")||"575px";const t=parseInt(s,10);return new ResizeObserver((s=>{const a=s[0].contentRect;const e=a.right-a.width;const o=a.left;this.mobile=a.width<=t-(o+e)}))}initMobileOverlay(){this.popper=b(this.mobileButton,this.popoverDiv,{placement:"bottom-start",strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,8]}}]})}componentDidLoad(){this.putTabsInCorrectDivIfTheyAreNot();this.refreshHeaders();if(this.selectedIndex){this.currentActiveTabIndex=this.selectedIndex}if(this.selectedKey){this.updateCurrentActiveIndexByTabKey(this.selectedKey)}if(!this.resizeObserver){this.resizeObserver=this.tabsDidLoadWithResizeObserver();this.resizeObserver.observe(document.body)}}componentDidRender(){if(this.mobile){if(!this.popper){this.initMobileOverlay()}else{this.popper.update()}}}putTabsInCorrectDivIfTheyAreNot(){const s=this.el.shadowRoot.querySelector(".wcs-tabs");if(s.querySelector("slot")===null){Array.from(this.el.querySelectorAll("wcs-tab")).filter((t=>t.parentNode!==s)).forEach((t=>{if(t.parentElement.isEqualNode(this.el)){this.el.removeChild(t);s.appendChild(t)}}))}}handleKeyDown(s,t){var a,e;const o=s.target;switch(s.key){case" ":case"Enter":{this.selectTabAndEmitChangeEvent(t);s.preventDefault();break}case"ArrowLeft":{if((a=o.previousElementSibling)===null||a===void 0?void 0:a.classList.contains("wcs-tab-header")){o.previousElementSibling.focus();s.preventDefault()}break}case"ArrowRight":{if((e=o.nextElementSibling)===null||e===void 0?void 0:e.classList.contains("wcs-tab-header")){o.nextElementSibling.focus();s.preventDefault()}break}case"Home":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header:first-child");if(t){t.focus();s.preventDefault()}break}case"End":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header:last-child");if(t){t.focus();s.preventDefault()}break}}}handleKeyDownMobile(s,t){var a,e;const o=s.target;switch(s.key){case" ":case"Enter":{this.selectTabAndEmitChangeEvent(t);s.preventDefault();break}case"ArrowUp":{if((a=o.previousElementSibling)===null||a===void 0?void 0:a.classList.contains("wcs-tab-header-mobile")){o.previousElementSibling.focus();s.preventDefault()}break}case"ArrowDown":{if((e=o.nextElementSibling)===null||e===void 0?void 0:e.classList.contains("wcs-tab-header-mobile")){o.nextElementSibling.focus();s.preventDefault()}break}case"Home":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header-mobile:first-child");if(t){t.focus();s.preventDefault()}break}case"End":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header-mobile:last-child");if(t){t.focus();s.preventDefault()}break}case"Escape":{this.mobileOverlayExpanded=false;s.preventDefault();break}}}refreshHeaders(){this.headers=[];this.tabs.forEach((s=>{this.headers.push(s.getAttribute("header"))}))}get tabs(){var s;const t=this.el.shadowRoot.querySelector(".wcs-tabs");const a=this.el.shadowRoot.querySelectorAll(".wcs-tabs > wcs-tab");return a.length!==0?a:(t===null||t===void 0?void 0:t.querySelector("slot"))?(s=t===null||t===void 0?void 0:t.querySelector("slot"))===null||s===void 0?void 0:s.assignedElements():[]}selectTabAndEmitChangeEvent(s){var t;this.currentActiveTabIndex=s;this.emitActiveTabChange();if(this.mobile){this.mobileOverlayExpanded=false;(t=this.mobileButton)===null||t===void 0?void 0:t.focus()}}componentWillUpdate(){if(!this.headersOnly){this.updateTabVisibility()}else{this.hideAllTabsContent()}}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},r(this.el)),i(this.el,h))}disconnectedCallback(){var s;if(this.popper){this.popper.destroy();this.popper=null}(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect()}async setAriaAttribute(s,t){c(this.mobile?this.popoverDiv:this.nativeTablist,s,t)}updateTabVisibility(){this.tabs.forEach(((s,t)=>{if(t!==this.currentActiveTabIndex){s.hidden=true}else{s.hidden=false}}))}hideAllTabsContent(){this.tabs.forEach((s=>s.hidden=true))}onMobileButtonClick(){this.mobileOverlayExpanded=!this.mobileOverlayExpanded;const s=this.popoverDiv.querySelectorAll("[role=tab]")[this.currentActiveTabIndex];requestAnimationFrame((()=>{s===null||s===void 0?void 0:s.focus()}))}onMobileButtonKeyDown(s){if(s.key==="ArrowDown"||s.key==="ArrowUp"){this.onMobileButtonClick()}}mobileLayout(){return[a("button",{id:"mobile-button",class:"wcs-tab-header active","aria-controls":"menu",role:"button","aria-expanded":this.mobileOverlayExpanded?"true":"false",ref:s=>this.mobileButton=s,onClick:()=>this.onMobileButtonClick(),onKeyDown:s=>this.onMobileButtonKeyDown(s),onBlur:s=>s.stopImmediatePropagation()},a("span",null,this.headers[this.currentActiveTabIndex]," ",a(n,{up:this.mobileOverlayExpanded}))),a("div",Object.assign({class:(this.mobileOverlayExpanded?"show ":"")+"popover",role:"tablist",id:"menu","aria-label":this.description,"aria-orientation":"vertical",ref:s=>this.popoverDiv=s,tabIndex:-1},this.inheritedAttributes),this.headers.map(((s,t)=>a("div",{class:"wcs-tab-header-mobile "+(this.currentActiveTabIndex===t?"mobile-active":""),onClick:()=>this.selectTabAndEmitChangeEvent(t),onKeyDown:s=>this.handleKeyDownMobile(s,t),tabIndex:this.currentActiveTabIndex===t?0:-1,role:"tab",id:`tabs-id-${this.tabsId}-tab-id-${t}`,"aria-controls":`tabs-id-${this.tabsId}-tab-panel-${t}`,"aria-label":s,"aria-selected":this.currentActiveTabIndex===t?"true":"false"},a("span",null,s)))))]}desktopLayout(){return this.headers.map(((s,t)=>a("div",{class:"wcs-tab-header "+(this.currentActiveTabIndex===t?"active":""),onClick:()=>this.selectTabAndEmitChangeEvent(t),onKeyDown:s=>this.handleKeyDown(s,t),tabIndex:this.currentActiveTabIndex===t?0:-1,role:"tab",id:`tabs-id-${this.tabsId}-tab-id-${t}`,"aria-controls":`tabs-id-${this.tabsId}-tab-panel-${t}`,"aria-label":s,"aria-selected":this.currentActiveTabIndex===t?"true":"false"},a("span",null,s))))}render(){return a(e,{key:"072fa3551b320a6415c20a3107500f2bee2aa690"},a("div",Object.assign({key:"294008dc27c2ff694119c3ce136caf866a0802b3",class:"wcs-tabs-headers",role:this.mobile?null:"tablist",ref:s=>this.nativeTablist=s,"aria-orientation":this.mobile?null:"horizontal","aria-label":this.mobile?null:this.description},!this.mobile&&this.inheritedAttributes),this.mobile?this.mobileLayout():this.desktopLayout()),a("div",{key:"d20bb48fe80434a6797c86d206a86d11081b92ea",class:"wcs-tabs"},a("slot",{key:"d4a31047e41627dc9c2cfb63f201e5e7ddc40f15",onSlotchange:()=>this.onTabsSlotChange(),name:"wcs-tab"})))}onTabsSlotChange(){let s=0;this.refreshHeaders();this.tabs.forEach((t=>{t.setAttribute("aria-label",this.headers.at(s));t.setAttribute("id",`tabs-id-${this.tabsId}-tab-panel-${s}`);s++}))}get el(){return o(this)}static get watchers(){return{selectedIndex:["selectedIndexChanged"],selectedKey:["selectedTabkeyChanged"],mobile:["onMobileChange"]}}};let v=0;w.style=d;export{w as wcs_tabs};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,c as t,h as a,H as e,g as o}from"./p-32e583ea.js";import{i as r,a as i,s as c}from"./p-52d77e1f.js";import{S as n}from"./p-84e22272.js";import{c as b}from"./p-e1fb3625.js";const l=':host{--wcs-tabs-indicator-height:calc(var(--wcs-semantic-size-base) / 2);--wcs-tabs-indicator-background-color:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-indicator-border-radius:var(--wcs-semantic-border-radius-full);--wcs-tabs-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-color-hover:var(--wcs-semantic-color-foreground-action-secondary-hover);--wcs-tabs-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-tabs-color-selected:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-tabs-font-weight-default:var(--wcs-semantic-font-weight-roman);--wcs-tabs-font-weight-selected:var(--wcs-semantic-font-weight-roman);--wcs-tabs-padding-top:var(--wcs-semantic-spacing-base);--wcs-tabs-padding-right:var(--wcs-semantic-spacing-large);--wcs-tabs-padding-bottom:calc(var(--wcs-semantic-spacing-base) + var(--wcs-tabs-indicator-height));--wcs-tabs-padding-left:var(--wcs-semantic-spacing-large);--wcs-tabs-gutter-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-gutter-background-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-headers-border-bottom:var(--wcs-tabs-gutter-border-width) solid var(--wcs-tabs-gutter-background-color);--wcs-tabs-mobile-breakpoint:var(--wcs-phone-breakpoint-max-width, 575px);--wcs-tabs-mobile-overlay-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-mobile-overlay-border-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-mobile-overlay-background-color:var(--wcs-semantic-color-background-surface-primary);--wcs-tabs-mobile-overlay-padding:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-overlay-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-mobile-gap:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-padding:0 var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-height:var(--wcs-semantic-size-m);--wcs-tabs-mobile-font-weight-default:var(--wcs-semantic-font-weight-medium);--wcs-tabs-mobile-font-weight-active:var(--wcs-semantic-font-weight-black);--wcs-tabs-mobile-font-size:var(--wcs-semantic-font-size-base);--wcs-tabs-mobile-color:var(--wcs-semantic-color-text-primary);--wcs-tabs-mobile-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-tabs-mobile-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-mobile-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-mobile-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-mobile-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);display:block}:host([align=start]) .wcs-tabs-headers{justify-content:start}:host([align=end]) .wcs-tabs-headers{justify-content:end}:host([align=center]) .wcs-tabs-headers{justify-content:center}.wcs-tabs-headers{overflow-x:auto;display:flex;flex-direction:row;position:relative}:host([gutter]) .wcs-tabs-headers{border-bottom:var(--wcs-tabs-headers-border-bottom)}.wcs-tab-header{position:relative;padding:var(--wcs-tabs-padding-top) var(--wcs-tabs-padding-right) var(--wcs-tabs-padding-bottom) var(--wcs-tabs-padding-left);border-radius:var(--wcs-tabs-border-radius) var(--wcs-tabs-border-radius) 0 0;display:flex;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;outline:none;transition:all var(--wcs-tabs-transition-duration) ease-out}.wcs-tab-header span{text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default)}.wcs-tab-header:hover{background-color:var(--wcs-tabs-background-color-hover)}.wcs-tab-header:hover span{color:var(--wcs-tabs-color-hover)}.wcs-tab-header:focus-visible>span{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-tabs-border-color-focus);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}.wcs-tab-header:active{background-color:var(--wcs-tabs-background-color-press)}.wcs-tab-header:active span{color:var(--wcs-tabs-color-press)}.active span{font-weight:var(--wcs-tabs-font-weight-selected);color:var(--wcs-tabs-color-selected)}.active::after{position:absolute;bottom:0;left:0;width:100%;content:"";height:var(--wcs-tabs-indicator-height);background-color:var(--wcs-tabs-indicator-background-color);border-radius:var(--wcs-tabs-indicator-border-radius)}button{background-color:inherit}#mobile-button{border:0;font-family:var(--wcs-font-sans-serif), sans-serif;text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default);padding-right:calc(0.75 * var(--wcs-tabs-padding-right));}#mobile-button span{display:flex;align-items:center}#mobile-button .arrow{fill:var(--wcs-tabs-color-default)}#mobile-button:hover .arrow{fill:var(--wcs-tabs-color-hover)}#mobile-button:active .arrow{fill:var(--wcs-tabs-color-press)}.popover{display:none;z-index:9999;overflow:hidden;border:var(--wcs-tabs-mobile-overlay-border-width) solid var(--wcs-tabs-mobile-overlay-border-color);border-radius:var(--wcs-tabs-mobile-overlay-border-radius);padding:var(--wcs-tabs-mobile-overlay-padding);background-color:var(--wcs-tabs-mobile-overlay-background-color)}.popover [role=tab]{display:flex;flex-direction:row;align-items:center;cursor:pointer;user-select:none;gap:var(--wcs-tabs-mobile-gap);padding:var(--wcs-tabs-mobile-padding);height:var(--wcs-tabs-mobile-height);font-weight:var(--wcs-tabs-mobile-font-weight-default);font-size:var(--wcs-tabs-mobile-font-size);color:var(--wcs-tabs-mobile-color);background-color:var(--wcs-tabs-mobile-background-color);border-radius:var(--wcs-tabs-mobile-border-radius);transition-duration:var(--wcs-tabs-transition-duration);transition-property:background-color, color;transition-timing-function:ease;overflow:hidden;white-space:nowrap}.popover [role=tab]:focus{background-color:var(--wcs-tabs-mobile-background-color-focus)}.popover [role=tab]:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-semantic-color-border-focus-base);outline-offset:0;border-radius:var(--wcs-tabs-mobile-border-radius)}.popover [role=tab]:hover{background-color:var(--wcs-tabs-mobile-background-color-hover)}.popover [role=tab]:active{background-color:var(--wcs-tabs-mobile-background-color-press)}.popover .mobile-active{font-weight:var(--wcs-tabs-mobile-font-weight-active)}.show{display:block}';const d=l;const h=[];const w=class{constructor(a){s(this,a);this.tabChange=t(this,"tabChange",7);this.inheritedAttributes={};this.tabsId=v++;this.align="start";this.selectedIndex=0;this.selectedKey=undefined;this.headersOnly=false;this.gutter=undefined;this.description=undefined;this.mobileOverlayExpanded=false;this.mobile=false;this.headers=[];this.currentActiveTabIndex=0}selectedIndexChanged(s){this.currentActiveTabIndex=s}selectedTabkeyChanged(s){this.updateCurrentActiveIndexByTabKey(s)}onMobileChange(s){if(!s){this.popper.destroy();this.popper=null}}emitActiveTabChange(){this.tabChange.emit({tabName:this.headers[this.currentActiveTabIndex],tabIndex:this.currentActiveTabIndex,selectedKey:this.tabs[this.currentActiveTabIndex].itemKey})}updateCurrentActiveIndexByTabKey(s){for(let t=0;t<this.tabs.length;t++){const a=this.tabs[t];if(a.itemKey===s){this.currentActiveTabIndex=t}}}onTabLoaded(){this.refreshHeaders()}onWindowClickEvent(s){if(this.mobile){const t=s.composedPath().some((s=>s===this.mobileButton||s===this.popoverDiv));if(this.mobileOverlayExpanded&&!t){this.mobileOverlayExpanded=false}}}tabsDidLoadWithResizeObserver(){const s=getComputedStyle(this.el).getPropertyValue("--wcs-tabs-mobile-breakpoint")||"575px";const t=parseInt(s,10);return new ResizeObserver((s=>{const a=s[0].contentRect;const e=a.right-a.width;const o=a.left;this.mobile=a.width<=t-(o+e)}))}initMobileOverlay(){this.popper=b(this.mobileButton,this.popoverDiv,{placement:"bottom-start",strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,8]}}]})}componentDidLoad(){this.putTabsInCorrectDivIfTheyAreNot();this.refreshHeaders();if(this.selectedIndex){this.currentActiveTabIndex=this.selectedIndex}if(this.selectedKey){this.updateCurrentActiveIndexByTabKey(this.selectedKey)}if(!this.resizeObserver){this.resizeObserver=this.tabsDidLoadWithResizeObserver();this.resizeObserver.observe(document.body)}}componentDidRender(){if(this.mobile){if(!this.popper){this.initMobileOverlay()}else{this.popper.update()}}}putTabsInCorrectDivIfTheyAreNot(){const s=this.el.shadowRoot.querySelector(".wcs-tabs");if(s.querySelector("slot")===null){Array.from(this.el.querySelectorAll("wcs-tab")).filter((t=>t.parentNode!==s)).forEach((t=>{if(t.parentElement.isEqualNode(this.el)){this.el.removeChild(t);s.appendChild(t)}}))}}handleKeyDown(s,t){var a,e;const o=s.target;switch(s.key){case" ":case"Enter":{this.selectTabAndEmitChangeEvent(t);s.preventDefault();break}case"ArrowLeft":{if((a=o.previousElementSibling)===null||a===void 0?void 0:a.classList.contains("wcs-tab-header")){o.previousElementSibling.focus();s.preventDefault()}break}case"ArrowRight":{if((e=o.nextElementSibling)===null||e===void 0?void 0:e.classList.contains("wcs-tab-header")){o.nextElementSibling.focus();s.preventDefault()}break}case"Home":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header:first-child");if(t){t.focus();s.preventDefault()}break}case"End":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header:last-child");if(t){t.focus();s.preventDefault()}break}}}handleKeyDownMobile(s,t){var a,e;const o=s.target;switch(s.key){case" ":case"Enter":{this.selectTabAndEmitChangeEvent(t);s.preventDefault();break}case"ArrowUp":{if((a=o.previousElementSibling)===null||a===void 0?void 0:a.classList.contains("wcs-tab-header-mobile")){o.previousElementSibling.focus();s.preventDefault()}break}case"ArrowDown":{if((e=o.nextElementSibling)===null||e===void 0?void 0:e.classList.contains("wcs-tab-header-mobile")){o.nextElementSibling.focus();s.preventDefault()}break}case"Home":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header-mobile:first-child");if(t){t.focus();s.preventDefault()}break}case"End":{const t=this.el.shadowRoot.querySelector(".wcs-tab-header-mobile:last-child");if(t){t.focus();s.preventDefault()}break}case"Escape":{this.mobileOverlayExpanded=false;s.preventDefault();break}}}refreshHeaders(){this.headers=[];this.tabs.forEach((s=>{this.headers.push(s.getAttribute("header"))}))}get tabs(){var s;const t=this.el.shadowRoot.querySelector(".wcs-tabs");const a=this.el.shadowRoot.querySelectorAll(".wcs-tabs > wcs-tab");return a.length!==0?a:(t===null||t===void 0?void 0:t.querySelector("slot"))?(s=t===null||t===void 0?void 0:t.querySelector("slot"))===null||s===void 0?void 0:s.assignedElements():[]}selectTabAndEmitChangeEvent(s){var t;this.currentActiveTabIndex=s;this.emitActiveTabChange();if(this.mobile){this.mobileOverlayExpanded=false;(t=this.mobileButton)===null||t===void 0?void 0:t.focus()}}componentWillUpdate(){if(!this.headersOnly){this.updateTabVisibility()}else{this.hideAllTabsContent()}}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},r(this.el)),i(this.el,h))}disconnectedCallback(){var s;if(this.popper){this.popper.destroy();this.popper=null}(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect()}async setAriaAttribute(s,t){c(this.mobile?this.popoverDiv:this.nativeTablist,s,t)}updateTabVisibility(){this.tabs.forEach(((s,t)=>{if(t!==this.currentActiveTabIndex){s.hidden=true}else{s.hidden=false}}))}hideAllTabsContent(){this.tabs.forEach((s=>s.hidden=true))}onMobileButtonClick(){this.mobileOverlayExpanded=!this.mobileOverlayExpanded;const s=this.popoverDiv.querySelectorAll("[role=tab]")[this.currentActiveTabIndex];requestAnimationFrame((()=>{s===null||s===void 0?void 0:s.focus()}))}onMobileButtonKeyDown(s){if(s.key==="ArrowDown"||s.key==="ArrowUp"){this.onMobileButtonClick()}}mobileLayout(){return[a("button",{id:"mobile-button",class:"wcs-tab-header active","aria-controls":"menu",role:"button","aria-expanded":this.mobileOverlayExpanded?"true":"false",ref:s=>this.mobileButton=s,onClick:()=>this.onMobileButtonClick(),onKeyDown:s=>this.onMobileButtonKeyDown(s),onBlur:s=>s.stopImmediatePropagation()},a("span",null,this.headers[this.currentActiveTabIndex]," ",a(n,{up:this.mobileOverlayExpanded}))),a("div",Object.assign({class:(this.mobileOverlayExpanded?"show ":"")+"popover",role:"tablist",id:"menu","aria-label":this.description,"aria-orientation":"vertical",ref:s=>this.popoverDiv=s,tabIndex:-1},this.inheritedAttributes),this.headers.map(((s,t)=>a("div",{class:"wcs-tab-header-mobile "+(this.currentActiveTabIndex===t?"mobile-active":""),onClick:()=>this.selectTabAndEmitChangeEvent(t),onKeyDown:s=>this.handleKeyDownMobile(s,t),tabIndex:this.currentActiveTabIndex===t?0:-1,role:"tab",id:`tabs-id-${this.tabsId}-tab-id-${t}`,"aria-controls":`tabs-id-${this.tabsId}-tab-panel-${t}`,"aria-label":s,"aria-selected":this.currentActiveTabIndex===t?"true":"false"},a("span",null,s)))))]}desktopLayout(){return this.headers.map(((s,t)=>a("div",{class:"wcs-tab-header "+(this.currentActiveTabIndex===t?"active":""),onClick:()=>this.selectTabAndEmitChangeEvent(t),onKeyDown:s=>this.handleKeyDown(s,t),tabIndex:this.currentActiveTabIndex===t?0:-1,role:"tab",id:`tabs-id-${this.tabsId}-tab-id-${t}`,"aria-controls":`tabs-id-${this.tabsId}-tab-panel-${t}`,"aria-label":s,"aria-selected":this.currentActiveTabIndex===t?"true":"false"},a("span",null,s))))}render(){return a(e,{key:"072fa3551b320a6415c20a3107500f2bee2aa690"},a("div",Object.assign({key:"294008dc27c2ff694119c3ce136caf866a0802b3",class:"wcs-tabs-headers",role:this.mobile?null:"tablist",ref:s=>this.nativeTablist=s,"aria-orientation":this.mobile?null:"horizontal","aria-label":this.mobile?null:this.description},!this.mobile&&this.inheritedAttributes),this.mobile?this.mobileLayout():this.desktopLayout()),a("div",{key:"d20bb48fe80434a6797c86d206a86d11081b92ea",class:"wcs-tabs"},a("slot",{key:"d4a31047e41627dc9c2cfb63f201e5e7ddc40f15",onSlotchange:()=>this.onTabsSlotChange(),name:"wcs-tab"})))}onTabsSlotChange(){let s=0;this.refreshHeaders();this.tabs.forEach((t=>{t.setAttribute("aria-label",this.headers.at(s));t.setAttribute("id",`tabs-id-${this.tabsId}-tab-panel-${s}`);s++}))}get el(){return o(this)}static get watchers(){return{selectedIndex:["selectedIndexChanged"],selectedKey:["selectedTabkeyChanged"],mobile:["onMobileChange"]}}};let v=0;w.style=d;export{w as wcs_tabs};
|
|
2
|
+
//# sourceMappingURL=p-abd8d5a0.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as a,h as e,H as t,g as c}from"./p-32e583ea.js";import{i as o,a as i,s as r,q as s,b as n}from"./p-52d77e1f.js";import{c as l}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,h as e,H as t,g as c}from"./p-32e583ea.js";import{i as o,a as i,s as r,q as s,b as n}from"./p-52d77e1f.js";import{c as l}from"./p-e1fb3625.js";const d=':host{--wcs-galactic-menu-background-color:var(--wcs-semantic-color-background-surface-brand);--wcs-galactic-menu-padding-horizontal:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-gap:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-height:var(--wcs-semantic-size-s);--wcs-galactic-menu-icon-focus-outline-color:var(--wcs-galactic-text-color, white);--wcs-galactic-menu-overlay-color:var(--wcs-semantic-color-text-inverse);--wcs-galactic-menu-overlay-background-color:var(--wcs-semantic-color-background-surface-inverse);--wcs-galactic-menu-overlay-padding:var(--wcs-semantic-spacing-large);display:flex;align-items:center;box-sizing:border-box;height:var(--wcs-galactic-menu-height);gap:var(--wcs-galactic-menu-gap);padding:0 var(--wcs-galactic-menu-padding-horizontal);background-color:var(--wcs-galactic-menu-background-color)}#menu{display:none;background-color:var(--wcs-galactic-menu-overlay-background-color);color:var(--wcs-galactic-menu-overlay-color);padding:var(--wcs-galactic-menu-overlay-padding);--wcs-semantic-color-border-focus-base:var(--wcs-semantic-color-text-inverse, white)}#menu[data-show]{display:block;z-index:9999}#menu[data-popper-placement^=top]>#arrow{bottom:-4px}#menu[data-popper-placement^=bottom]>#arrow{top:-4px}#menu[data-popper-placement^=left]>#arrow{right:-4px}#menu[data-popper-placement^=right]>#arrow{left:-4px}#arrow,#arrow::before{position:absolute;width:8px;height:8px;background:inherit}#arrow{visibility:hidden}#arrow::before{visibility:visible;content:"";transform:rotate(45deg)}button{background:transparent;border:none;color:inherit;cursor:pointer;user-select:none}button:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-galactic-menu-icon-focus-outline-color);outline-offset:0;border-radius:0.1rem}';const u=d;const m=["tabindex","title"];const p=class{constructor(e){a(this,e);this.inheritedAttributes={};this.showPopoverMenu=false;this.text=undefined}componentDidLoad(){this.menu=this.el.shadowRoot.getElementById("toggle-menu-icon");this.tooltip=this.el.shadowRoot.getElementById("menu");this.popper=l(this.menu,this.tooltip,{placement:"bottom-end",modifiers:[{name:"offset",options:{offset:[0,8]}}]})}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},o(this.el)),i(this.el,m))}async setAriaAttribute(a,e){r(this.menuButton,a,e)}onWindowClickEvent(a){if(s(a,this.tooltip)||s(a,this.menu)){return}else{if(this.showPopoverMenu){this.toggleMenu()}}}onKeyDown(a){var e;if(n(a)){a.preventDefault();this.showPopoverMenu=false;(e=this.menuButton)===null||e===void 0?void 0:e.focus()}}toggleMenu(){this.showPopoverMenu=!this.showPopoverMenu}componentDidRender(){if(this.popper){this.popper.update()}}render(){return e(t,{key:"bc460c17b222723b8cc037042cc758f8ca0e50ec"},e("span",{key:"d324ff624a9e5c9f6984134d4091986cac11f18b"},this.text),e("button",Object.assign({key:"7b0160174a249b30e082b9b2a77aca334ee6256a","aria-haspopup":"true","aria-controls":"menu",ref:a=>{this.menuButton=a},"aria-expanded":this.showPopoverMenu?"true":"false"},this.inheritedAttributes,{onClick:a=>this.toggleMenu()}),e("wcs-mat-icon",{key:"96b20053845f5490791ea278c2444392ba630600",id:"toggle-menu-icon",icon:"more_horiz",size:"m"})),e("span",{key:"6f959f220edbf293fe6922f7aaeaab0f213bf736",id:"menu",role:"menu","data-show":this.showPopoverMenu},e("div",{key:"6a05e468d65252ecbb57b421a53be0a0a1974f98",id:"arrow","data-popper-arrow":true}),e("slot",{key:"c9398cbb856d836820ac1cddf3113710eeaff5fb"})))}get el(){return c(this)}};p.style=u;export{p as wcs_galactic_menu};
|
|
2
|
+
//# sourceMappingURL=p-c6f8c45c.entry.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{r as t,h as n,H as e,g as r}from"./p-32e583ea.js";import{a as i,c as o}from"./p-
|
|
1
|
+
import{r as t,h as n,H as e,g as r}from"./p-32e583ea.js";import{a as i,c as o}from"./p-e1fb3625.js";import{b as a}from"./p-52d77e1f.js";import{i as u}from"./p-a0f32ead.js";
|
|
2
2
|
/**!
|
|
3
3
|
* tippy.js v6.3.7
|
|
4
4
|
* (c) 2017-2021 atomiks
|
|
5
5
|
* MIT License
|
|
6
6
|
*/var f="tippy-box";var c="tippy-content";var s="tippy-backdrop";var l="tippy-arrow";var d="tippy-svg-arrow";var v={passive:true,capture:true};var p=function t(){return document.body};function h(t,n,e){if(Array.isArray(t)){var r=t[n];return r==null?Array.isArray(e)?e[n]:e:r}return t}function m(t,n){var e={}.toString.call(t);return e.indexOf("[object")===0&&e.indexOf(n+"]")>-1}function b(t,n){return typeof t==="function"?t.apply(void 0,n):t}function y(t,n){if(n===0){return t}var e;return function(r){clearTimeout(e);e=setTimeout((function(){t(r)}),n)}}function g(t){return t.split(/\s+/).filter(Boolean)}function w(t){return[].concat(t)}function T(t,n){if(t.indexOf(n)===-1){t.push(n)}}function O(t){return t.filter((function(n,e){return t.indexOf(n)===e}))}function j(t){return t.split("-")[0]}function x(t){return[].slice.call(t)}function k(t){return Object.keys(t).reduce((function(n,e){if(t[e]!==undefined){n[e]=t[e]}return n}),{})}function C(){return document.createElement("div")}function S(t){return["Element","Fragment"].some((function(n){return m(t,n)}))}function A(t){return m(t,"NodeList")}function P(t){return m(t,"MouseEvent")}function H(t){return!!(t&&t._tippy&&t._tippy.reference===t)}function U(t){if(S(t)){return[t]}if(A(t)){return x(t)}if(Array.isArray(t)){return t}return x(document.querySelectorAll(t))}function W(t,n){t.forEach((function(t){if(t){t.style.transitionDuration=n+"ms"}}))}function B(t,n){t.forEach((function(t){if(t){t.setAttribute("data-state",n)}}))}function F(t){var n;var e=w(t),r=e[0];return r!=null&&(n=r.ownerDocument)!=null&&n.body?r.ownerDocument:document}function M(t,n){var e=n.clientX,r=n.clientY;return t.every((function(t){var n=t.popperRect,i=t.popperState,o=t.props;var a=o.interactiveBorder;var u=j(i.placement);var f=i.modifiersData.offset;if(!f){return true}var c=u==="bottom"?f.top.y:0;var s=u==="top"?f.bottom.y:0;var l=u==="right"?f.left.x:0;var d=u==="left"?f.right.x:0;var v=n.top-r+c>a;var p=r-n.bottom-s>a;var h=n.left-e+l>a;var m=e-n.right-d>a;return v||p||h||m}))}function D(t,n,e){var r=n+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(n){t[r](n,e)}))}function E(t,n){var e=n;while(e){var r;if(t.contains(e)){return true}e=e.getRootNode==null?void 0:(r=e.getRootNode())==null?void 0:r.host}return false}var L={isTouch:false};var R=0;function q(){if(L.isTouch){return}L.isTouch=true;if(window.performance){document.addEventListener("mousemove",I)}}function I(){var t=performance.now();if(t-R<20){L.isTouch=false;document.removeEventListener("mousemove",I)}R=t}function N(){var t=document.activeElement;if(H(t)){var n=t._tippy;if(t.blur&&!n.state.isVisible){t.blur()}}}function $(){document.addEventListener("touchstart",q,v);window.addEventListener("blur",N)}var z=typeof window!=="undefined"&&typeof document!=="undefined";var J=z?!!window.msCrypto:false;var K={animateFill:false,followCursor:false,inlinePositioning:false,sticky:false};var V={allowHTML:false,animation:"fade",arrow:true,content:"",inertia:false,maxWidth:350,role:"tooltip",theme:"",zIndex:9999};var _=Object.assign({appendTo:p,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:true,ignoreAttributes:false,interactive:false,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function t(){},onBeforeUpdate:function t(){},onCreate:function t(){},onDestroy:function t(){},onHidden:function t(){},onHide:function t(){},onMount:function t(){},onShow:function t(){},onShown:function t(){},onTrigger:function t(){},onUntrigger:function t(){},onClickOutside:function t(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:false,touch:true,trigger:"mouseenter focus",triggerTarget:null},K,V);var G=Object.keys(_);var Q=function t(n){var e=Object.keys(n);e.forEach((function(t){_[t]=n[t]}))};function X(t){var n=t.plugins||[];var e=n.reduce((function(n,e){var r=e.name,i=e.defaultValue;if(r){var o;n[r]=t[r]!==undefined?t[r]:(o=_[r])!=null?o:i}return n}),{});return Object.assign({},t,e)}function Y(t,n){var e=n?Object.keys(X(Object.assign({},_,{plugins:n}))):G;var r=e.reduce((function(n,e){var r=(t.getAttribute("data-tippy-"+e)||"").trim();if(!r){return n}if(e==="content"){n[e]=r}else{try{n[e]=JSON.parse(r)}catch(t){n[e]=r}}return n}),{});return r}function Z(t,n){var e=Object.assign({},n,{content:b(n.content,[t])},n.ignoreAttributes?{}:Y(t,n.plugins));e.aria=Object.assign({},_.aria,e.aria);e.aria={expanded:e.aria.expanded==="auto"?n.interactive:e.aria.expanded,content:e.aria.content==="auto"?n.interactive?null:"describedby":e.aria.content};return e}var tt=function t(){return"innerHTML"};function nt(t,n){t[tt()]=n}function et(t){var n=C();if(t===true){n.className=l}else{n.className=d;if(S(t)){n.appendChild(t)}else{nt(n,t)}}return n}function rt(t,n){if(S(n.content)){nt(t,"");t.appendChild(n.content)}else if(typeof n.content!=="function"){if(n.allowHTML){nt(t,n.content)}else{t.textContent=n.content}}}function it(t){var n=t.firstElementChild;var e=x(n.children);return{box:n,content:e.find((function(t){return t.classList.contains(c)})),arrow:e.find((function(t){return t.classList.contains(l)||t.classList.contains(d)})),backdrop:e.find((function(t){return t.classList.contains(s)}))}}function ot(t){var n=C();var e=C();e.className=f;e.setAttribute("data-state","hidden");e.setAttribute("tabindex","-1");var r=C();r.className=c;r.setAttribute("data-state","hidden");rt(r,t.props);n.appendChild(e);e.appendChild(r);i(t.props,t.props);function i(e,r){var i=it(n),o=i.box,a=i.content,u=i.arrow;if(r.theme){o.setAttribute("data-theme",r.theme)}else{o.removeAttribute("data-theme")}if(typeof r.animation==="string"){o.setAttribute("data-animation",r.animation)}else{o.removeAttribute("data-animation")}if(r.inertia){o.setAttribute("data-inertia","")}else{o.removeAttribute("data-inertia")}o.style.maxWidth=typeof r.maxWidth==="number"?r.maxWidth+"px":r.maxWidth;if(r.role){o.setAttribute("role",r.role)}else{o.removeAttribute("role")}if(e.content!==r.content||e.allowHTML!==r.allowHTML){rt(a,t.props)}if(r.arrow){if(!u){o.appendChild(et(r.arrow))}else if(e.arrow!==r.arrow){o.removeChild(u);o.appendChild(et(r.arrow))}}else if(u){o.removeChild(u)}}return{popper:n,onUpdate:i}}ot.$$tippy=true;var at=1;var ut=[];var ft=[];function ct(t,n){var e=Z(t,Object.assign({},_,X(k(n))));var r;var i;var a;var u=false;var f=false;var c=false;var s=false;var l;var d;var m;var j=[];var S=y(kt,e.interactiveDebounce);var A;var H=at++;var U=null;var R=O(e.plugins);var q={isEnabled:true,isVisible:false,isDestroyed:false,isMounted:false,isShown:false};var I={id:H,reference:t,popper:C(),popperInstance:U,props:e,state:q,plugins:R,clearDelayTimeouts:Et,setProps:Lt,setContent:Rt,show:qt,hide:It,hideWithInteractivity:Nt,enable:Mt,disable:Dt,unmount:$t,destroy:zt};if(!e.render){return I}var N=e.render(I),$=N.popper,z=N.onUpdate;$.setAttribute("data-tippy-root","");$.id="tippy-"+I.id;I.popper=$;t._tippy=I;$._tippy=I;var K=R.map((function(t){return t.fn(I)}));var V=t.hasAttribute("aria-expanded");Ot();lt();ot();ct("onCreate",[I]);if(e.showOnCreate){Bt()}$.addEventListener("mouseenter",(function(){if(I.props.interactive&&I.state.isVisible){I.clearDelayTimeouts()}}));$.addEventListener("mouseleave",(function(){if(I.props.interactive&&I.props.trigger.indexOf("mouseenter")>=0){nt().addEventListener("mousemove",S)}}));return I;function G(){var t=I.props.touch;return Array.isArray(t)?t:[t,0]}function Q(){return G()[0]==="hold"}function Y(){var t;return!!((t=I.props.render)!=null&&t.$$tippy)}function tt(){return A||t}function nt(){var t=tt().parentNode;return t?F(t):document}function et(){return it($)}function rt(t){if(I.state.isMounted&&!I.state.isVisible||L.isTouch||l&&l.type==="focus"){return 0}return h(I.props.delay,t?0:1,_.delay)}function ot(t){if(t===void 0){t=false}$.style.pointerEvents=I.props.interactive&&!t?"":"none";$.style.zIndex=""+I.props.zIndex}function ct(t,n,e){if(e===void 0){e=true}K.forEach((function(e){if(e[t]){e[t].apply(e,n)}}));if(e){var r;(r=I.props)[t].apply(r,n)}}function st(){var n=I.props.aria;if(!n.content){return}var e="aria-"+n.content;var r=$.id;var i=w(I.props.triggerTarget||t);i.forEach((function(t){var n=t.getAttribute(e);if(I.state.isVisible){t.setAttribute(e,n?n+" "+r:r)}else{var i=n&&n.replace(r,"").trim();if(i){t.setAttribute(e,i)}else{t.removeAttribute(e)}}}))}function lt(){if(V||!I.props.aria.expanded){return}var n=w(I.props.triggerTarget||t);n.forEach((function(t){if(I.props.interactive){t.setAttribute("aria-expanded",I.state.isVisible&&t===tt()?"true":"false")}else{t.removeAttribute("aria-expanded")}}))}function dt(){nt().removeEventListener("mousemove",S);ut=ut.filter((function(t){return t!==S}))}function vt(n){if(L.isTouch){if(c||n.type==="mousedown"){return}}var e=n.composedPath&&n.composedPath()[0]||n.target;if(I.props.interactive&&E($,e)){return}if(w(I.props.triggerTarget||t).some((function(t){return E(t,e)}))){if(L.isTouch){return}if(I.state.isVisible&&I.props.trigger.indexOf("click")>=0){return}}else{ct("onClickOutside",[I,n])}if(I.props.hideOnClick===true){I.clearDelayTimeouts();I.hide();f=true;setTimeout((function(){f=false}));if(!I.state.isMounted){bt()}}}function pt(){c=true}function ht(){c=false}function mt(){var t=nt();t.addEventListener("mousedown",vt,true);t.addEventListener("touchend",vt,v);t.addEventListener("touchstart",ht,v);t.addEventListener("touchmove",pt,v)}function bt(){var t=nt();t.removeEventListener("mousedown",vt,true);t.removeEventListener("touchend",vt,v);t.removeEventListener("touchstart",ht,v);t.removeEventListener("touchmove",pt,v)}function yt(t,n){wt(t,(function(){if(!I.state.isVisible&&$.parentNode&&$.parentNode.contains($)){n()}}))}function gt(t,n){wt(t,n)}function wt(t,n){var e=et().box;function r(t){if(t.target===e){D(e,"remove",r);n()}}if(t===0){return n()}D(e,"remove",d);D(e,"add",r);d=r}function Tt(n,e,r){if(r===void 0){r=false}var i=w(I.props.triggerTarget||t);i.forEach((function(t){t.addEventListener(n,e,r);j.push({node:t,eventType:n,handler:e,options:r})}))}function Ot(){if(Q()){Tt("touchstart",xt,{passive:true});Tt("touchend",Ct,{passive:true})}g(I.props.trigger).forEach((function(t){if(t==="manual"){return}Tt(t,xt);switch(t){case"mouseenter":Tt("mouseleave",Ct);break;case"focus":Tt(J?"focusout":"blur",St);break;case"focusin":Tt("focusout",St);break}}))}function jt(){j.forEach((function(t){var n=t.node,e=t.eventType,r=t.handler,i=t.options;n.removeEventListener(e,r,i)}));j=[]}function xt(t){var n;var e=false;if(!I.state.isEnabled||At(t)||f){return}var r=((n=l)==null?void 0:n.type)==="focus";l=t;A=t.currentTarget;lt();if(!I.state.isVisible&&P(t)){ut.forEach((function(n){return n(t)}))}if(t.type==="click"&&(I.props.trigger.indexOf("mouseenter")<0||u)&&I.props.hideOnClick!==false&&I.state.isVisible){e=true}else{Bt(t)}if(t.type==="click"){u=!e}if(e&&!r){Ft(t)}}function kt(t){var n=t.target;var r=tt().contains(n)||$.contains(n);if(t.type==="mousemove"&&r){return}var i=Wt().concat($).map((function(t){var n;var r=t._tippy;var i=(n=r.popperInstance)==null?void 0:n.state;if(i){return{popperRect:t.getBoundingClientRect(),popperState:i,props:e}}return null})).filter(Boolean);if(M(i,t)){dt();Ft(t)}}function Ct(t){var n=At(t)||I.props.trigger.indexOf("click")>=0&&u;if(n){return}if(I.props.interactive){I.hideWithInteractivity(t);return}Ft(t)}function St(t){if(I.props.trigger.indexOf("focusin")<0&&t.target!==tt()){return}if(I.props.interactive&&t.relatedTarget&&$.contains(t.relatedTarget)){return}Ft(t)}function At(t){return L.isTouch?Q()!==t.type.indexOf("touch")>=0:false}function Pt(){Ht();var n=I.props,e=n.popperOptions,r=n.placement,i=n.offset,a=n.getReferenceClientRect,u=n.moveTransition;var f=Y()?it($).arrow:null;var c=a?{getBoundingClientRect:a,contextElement:a.contextElement||tt()}:t;var s={name:"$$tippy",enabled:true,phase:"beforeWrite",requires:["computeStyles"],fn:function t(n){var e=n.state;if(Y()){var r=et(),i=r.box;["placement","reference-hidden","escaped"].forEach((function(t){if(t==="placement"){i.setAttribute("data-placement",e.placement)}else{if(e.attributes.popper["data-popper-"+t]){i.setAttribute("data-"+t,"")}else{i.removeAttribute("data-"+t)}}}));e.attributes.popper={}}}};var l=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!u}},s];if(Y()&&f){l.push({name:"arrow",options:{element:f,padding:3}})}l.push.apply(l,(e==null?void 0:e.modifiers)||[]);I.popperInstance=o(c,$,Object.assign({},e,{placement:r,onFirstUpdate:m,modifiers:l}))}function Ht(){if(I.popperInstance){I.popperInstance.destroy();I.popperInstance=null}}function Ut(){var t=I.props.appendTo;var n;var e=tt();if(I.props.interactive&&t===p||t==="parent"){n=e.parentNode}else{n=b(t,[e])}if(!n.contains($)){n.appendChild($)}I.state.isMounted=true;Pt()}function Wt(){return x($.querySelectorAll("[data-tippy-root]"))}function Bt(t){I.clearDelayTimeouts();if(t){ct("onTrigger",[I,t])}mt();var n=rt(true);var e=G(),i=e[0],o=e[1];if(L.isTouch&&i==="hold"&&o){n=o}if(n){r=setTimeout((function(){I.show()}),n)}else{I.show()}}function Ft(t){I.clearDelayTimeouts();ct("onUntrigger",[I,t]);if(!I.state.isVisible){bt();return}if(I.props.trigger.indexOf("mouseenter")>=0&&I.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(t.type)>=0&&u){return}var n=rt(false);if(n){i=setTimeout((function(){if(I.state.isVisible){I.hide()}}),n)}else{a=requestAnimationFrame((function(){I.hide()}))}}function Mt(){I.state.isEnabled=true}function Dt(){I.hide();I.state.isEnabled=false}function Et(){clearTimeout(r);clearTimeout(i);cancelAnimationFrame(a)}function Lt(n){if(I.state.isDestroyed){return}ct("onBeforeUpdate",[I,n]);jt();var e=I.props;var r=Z(t,Object.assign({},e,k(n),{ignoreAttributes:true}));I.props=r;Ot();if(e.interactiveDebounce!==r.interactiveDebounce){dt();S=y(kt,r.interactiveDebounce)}if(e.triggerTarget&&!r.triggerTarget){w(e.triggerTarget).forEach((function(t){t.removeAttribute("aria-expanded")}))}else if(r.triggerTarget){t.removeAttribute("aria-expanded")}lt();ot();if(z){z(e,r)}if(I.popperInstance){Pt();Wt().forEach((function(t){requestAnimationFrame(t._tippy.popperInstance.forceUpdate)}))}ct("onAfterUpdate",[I,n])}function Rt(t){I.setProps({content:t})}function qt(){var t=I.state.isVisible;var n=I.state.isDestroyed;var e=!I.state.isEnabled;var r=L.isTouch&&!I.props.touch;var i=h(I.props.duration,0,_.duration);if(t||n||e||r){return}if(tt().hasAttribute("disabled")){return}ct("onShow",[I],false);if(I.props.onShow(I)===false){return}I.state.isVisible=true;if(Y()){$.style.visibility="visible"}ot();mt();if(!I.state.isMounted){$.style.transition="none"}if(Y()){var o=et(),a=o.box,u=o.content;W([a,u],0)}m=function t(){var n;if(!I.state.isVisible||s){return}s=true;$.style.transition=I.props.moveTransition;if(Y()&&I.props.animation){var e=et(),r=e.box,o=e.content;W([r,o],i);B([r,o],"visible")}st();lt();T(ft,I);(n=I.popperInstance)==null?void 0:n.forceUpdate();ct("onMount",[I]);if(I.props.animation&&Y()){gt(i,(function(){I.state.isShown=true;ct("onShown",[I])}))}};Ut()}function It(){var t=!I.state.isVisible;var n=I.state.isDestroyed;var e=!I.state.isEnabled;var r=h(I.props.duration,1,_.duration);if(t||n||e){return}ct("onHide",[I],false);if(I.props.onHide(I)===false){return}I.state.isVisible=false;I.state.isShown=false;s=false;u=false;if(Y()){$.style.visibility="hidden"}dt();bt();ot(true);if(Y()){var i=et(),o=i.box,a=i.content;if(I.props.animation){W([o,a],r);B([o,a],"hidden")}}st();lt();if(I.props.animation){if(Y()){yt(r,I.unmount)}}else{I.unmount()}}function Nt(t){nt().addEventListener("mousemove",S);T(ut,S);S(t)}function $t(){if(I.state.isVisible){I.hide()}if(!I.state.isMounted){return}Ht();Wt().forEach((function(t){t._tippy.unmount()}));if($.parentNode){$.parentNode.removeChild($)}ft=ft.filter((function(t){return t!==I}));I.state.isMounted=false;ct("onHidden",[I])}function zt(){if(I.state.isDestroyed){return}I.clearDelayTimeouts();I.unmount();jt();delete t._tippy;I.state.isDestroyed=true;ct("onDestroy",[I])}}function st(t,n){if(n===void 0){n={}}var e=_.plugins.concat(n.plugins||[]);$();var r=Object.assign({},n,{plugins:e});var i=U(t);var o=i.reduce((function(t,n){var e=n&&ct(n,r);if(e){t.push(e)}return t}),[]);return S(t)?o[0]:o}st.defaultProps=_;st.setDefaultProps=Q;st.currentInput=L;Object.assign({},i,{effect:function t(n){var e=n.state;var r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(e.elements.popper.style,r.popper);e.styles=r;if(e.elements.arrow){Object.assign(e.elements.arrow.style,r.arrow)}}});st.setDefaultProps({render:ot});const lt=":host{display:none}";const dt=lt;const vt=["WCS-BUTTON"];const pt=class{constructor(n){t(this,n);this.for=undefined;this.position="bottom";this.interactive=false;this.maxWidth=350;this.delay=0;this.duration=[300,250];this.trigger="mouseenter focus";this.theme="dark";this.content=undefined;this.appendTo=undefined}componentWillLoad(){this.forElement=document.getElementById(this.for);if(!this.forElement){console.error('[wcs-tooltip]: The element with the id provided in the "for" property does not exist');return}this.tippyInstance=st(this.forElement,{appendTo:this.appendTo||(()=>document.body),theme:this.theme,allowHTML:true,content:this.getTooltipContentFromPropAndSlot(),maxWidth:this.maxWidth,placement:this.position,delay:this.delay,duration:this.duration,interactive:this.interactive,trigger:this.trigger,onShow:()=>this.onShow(),onHide:()=>this.onHide()})}onShow(){if(!this.forElement){return}if(this.forElement.tagName&&vt.indexOf(this.forElement.tagName)!==-1){if(u(this.forElement)){if(this.interactive){this.forElement.setAriaAttribute("aria-expanded","true")}}}}onHide(){if(!this.forElement){return}if(this.forElement.tagName&&vt.indexOf(this.forElement.tagName)!==-1){if(u(this.forElement)){if(this.interactive){this.forElement.setAriaAttribute("aria-expanded","false")}}}}async handleKeyDown(t){if(a(t)){if(this.tippyInstance.state.isShown){await this.hide()}}}getTooltipContentFromPropAndSlot(){if(this.content){return this.content+this.el.innerHTML}return this.el.innerHTML}updateProps(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.setProps({interactive:this.interactive,placement:this.position,maxWidth:this.maxWidth,theme:this.theme,delay:this.delay,duration:this.duration,trigger:this.trigger})}updateTippyContent(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.setProps({content:this.getTooltipContentFromPropAndSlot()})}async hide(){this.tippyInstance.hide()}async show(){this.tippyInstance.show()}async disable(){this.tippyInstance.disable()}async enable(){this.tippyInstance.enable()}disconnectedCallback(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.destroy()}render(){return n(e,{key:"34f019e113250ce19d69186080c932f838ac5c86",role:"tooltip"},n("slot",{key:"7edce2cfc96d454177668c81d615231369600977",onSlotchange:t=>this.updateTippyContent()}))}get el(){return r(this)}static get watchers(){return{interactive:["updateProps"],position:["updateProps"],maxWidth:["updateProps"],theme:["updateProps"],delay:["updateProps"],duration:["updateProps"],trigger:["updateProps"],content:["updateTippyContent"]}}};pt.style=dt;export{pt as wcs_tooltip};
|
|
7
|
-
//# sourceMappingURL=p-
|
|
7
|
+
//# sourceMappingURL=p-db7ba599.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var r="top";var t="bottom";var n="right";var e="left";var a="auto";var i=[r,t,n,e];var o="start";var v="end";var f="clippingParents";var u="viewport";var c="popper";var s="reference";var l=i.reduce((function(r,t){return r.concat([t+"-"+o,t+"-"+v])}),[]);var d=[].concat(i,[a]).reduce((function(r,t){return r.concat([t,t+"-"+o,t+"-"+v])}),[]);var p="beforeRead";var b="read";var h="afterRead";var y="beforeMain";var m="main";var x="afterMain";var w="beforeWrite";var O="write";var g="afterWrite";var j=[p,b,h,y,m,x,w,O,g];function M(r){return r?(r.nodeName||"").toLowerCase():null}function k(r){if(r==null){return window}if(r.toString()!=="[object Window]"){var t=r.ownerDocument;return t?t.defaultView||window:window}return r}function A(r){var t=k(r).Element;return r instanceof t||r instanceof Element}function E(r){var t=k(r).HTMLElement;return r instanceof t||r instanceof HTMLElement}function q(r){if(typeof ShadowRoot==="undefined"){return false}var t=k(r).ShadowRoot;return r instanceof t||r instanceof ShadowRoot}function B(r){var t=r.state;Object.keys(t.elements).forEach((function(r){var n=t.styles[r]||{};var e=t.attributes[r]||{};var a=t.elements[r];if(!E(a)||!M(a)){return}Object.assign(a.style,n);Object.keys(e).forEach((function(r){var t=e[r];if(t===false){a.removeAttribute(r)}else{a.setAttribute(r,t===true?"":t)}}))}))}function P(r){var t=r.state;var n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper);t.styles=n;if(t.elements.arrow){Object.assign(t.elements.arrow.style,n.arrow)}return function(){Object.keys(t.elements).forEach((function(r){var e=t.elements[r];var a=t.attributes[r]||{};var i=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]);var o=i.reduce((function(r,t){r[t]="";return r}),{});if(!E(e)||!M(e)){return}Object.assign(e.style,o);Object.keys(a).forEach((function(r){e.removeAttribute(r)}))}))}}const R={name:"applyStyles",enabled:true,phase:"write",fn:B,effect:P,requires:["computeStyles"]};function S(r){return r.split("-")[0]}var W=Math.max;var L=Math.min;var T=Math.round;function H(){var r=navigator.userAgentData;if(r!=null&&r.brands&&Array.isArray(r.brands)){return r.brands.map((function(r){return r.brand+"/"+r.version})).join(" ")}return navigator.userAgent}function I(){return!/^((?!chrome|android).)*safari/i.test(H())}function z(r,t,n){if(t===void 0){t=false}if(n===void 0){n=false}var e=r.getBoundingClientRect();var a=1;var i=1;if(t&&E(r)){a=r.offsetWidth>0?T(e.width)/r.offsetWidth||1:1;i=r.offsetHeight>0?T(e.height)/r.offsetHeight||1:1}var o=A(r)?k(r):window,v=o.visualViewport;var f=!I()&&n;var u=(e.left+(f&&v?v.offsetLeft:0))/a;var c=(e.top+(f&&v?v.offsetTop:0))/i;var s=e.width/a;var l=e.height/i;return{width:s,height:l,top:c,right:u+s,bottom:c+l,left:u,x:u,y:c}}function C(r){var t=z(r);var n=r.offsetWidth;var e=r.offsetHeight;if(Math.abs(t.width-n)<=1){n=t.width}if(Math.abs(t.height-e)<=1){e=t.height}return{x:r.offsetLeft,y:r.offsetTop,width:n,height:e}}function D(r,t){var n=t.getRootNode&&t.getRootNode();if(r.contains(t)){return true}else if(n&&q(n)){var e=t;do{if(e&&r.isSameNode(e)){return true}e=e.parentNode||e.host}while(e)}return false}function F(r){return k(r).getComputedStyle(r)}function U(r){return["table","td","th"].indexOf(M(r))>=0}function V(r){return((A(r)?r.ownerDocument:r.document)||window.document).documentElement}function _(r){if(M(r)==="html"){return r}return r.assignedSlot||r.parentNode||(q(r)?r.host:null)||V(r)}function G(r){if(!E(r)||F(r).position==="fixed"){return null}return r.offsetParent}function J(r){var t=/firefox/i.test(H());var n=/Trident/i.test(H());if(n&&E(r)){var e=F(r);if(e.position==="fixed"){return null}}var a=_(r);if(q(a)){a=a.host}while(E(a)&&["html","body"].indexOf(M(a))<0){var i=F(a);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none"){return a}else{a=a.parentNode}}return null}function K(r){var t=k(r);var n=G(r);while(n&&U(n)&&F(n).position==="static"){n=G(n)}if(n&&(M(n)==="html"||M(n)==="body"&&F(n).position==="static")){return t}return n||J(r)||t}function N(r){return["top","bottom"].indexOf(r)>=0?"x":"y"}function Q(r,t,n){return W(r,L(t,n))}function X(r,t,n){var e=Q(r,t,n);return e>n?n:e}function Y(){return{top:0,right:0,bottom:0,left:0}}function Z(r){return Object.assign({},Y(),r)}function $(r,t){return t.reduce((function(t,n){t[n]=r;return t}),{})}var rr=function r(t,n){t=typeof t==="function"?t(Object.assign({},n.rects,{placement:n.placement})):t;return Z(typeof t!=="number"?t:$(t,i))};function tr(a){var i;var o=a.state,v=a.name,f=a.options;var u=o.elements.arrow;var c=o.modifiersData.popperOffsets;var s=S(o.placement);var l=N(s);var d=[e,n].indexOf(s)>=0;var p=d?"height":"width";if(!u||!c){return}var b=rr(f.padding,o);var h=C(u);var y=l==="y"?r:e;var m=l==="y"?t:n;var x=o.rects.reference[p]+o.rects.reference[l]-c[l]-o.rects.popper[p];var w=c[l]-o.rects.reference[l];var O=K(u);var g=O?l==="y"?O.clientHeight||0:O.clientWidth||0:0;var j=x/2-w/2;var M=b[y];var k=g-h[p]-b[m];var A=g/2-h[p]/2+j;var E=Q(M,A,k);var q=l;o.modifiersData[v]=(i={},i[q]=E,i.centerOffset=E-A,i)}function nr(r){var t=r.state,n=r.options;var e=n.element,a=e===void 0?"[data-popper-arrow]":e;if(a==null){return}if(typeof a==="string"){a=t.elements.popper.querySelector(a);if(!a){return}}if(!D(t.elements.popper,a)){return}t.elements.arrow=a}const er={name:"arrow",enabled:true,phase:"main",fn:tr,effect:nr,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ar(r){return r.split("-")[1]}var ir={top:"auto",right:"auto",bottom:"auto",left:"auto"};function or(r,t){var n=r.x,e=r.y;var a=t.devicePixelRatio||1;return{x:T(n*a)/a||0,y:T(e*a)/a||0}}function vr(a){var i;var o=a.popper,f=a.popperRect,u=a.placement,c=a.variation,s=a.offsets,l=a.position,d=a.gpuAcceleration,p=a.adaptive,b=a.roundOffsets,h=a.isFixed;var y=s.x,m=y===void 0?0:y,x=s.y,w=x===void 0?0:x;var O=typeof b==="function"?b({x:m,y:w}):{x:m,y:w};m=O.x;w=O.y;var g=s.hasOwnProperty("x");var j=s.hasOwnProperty("y");var M=e;var A=r;var E=window;if(p){var q=K(o);var B="clientHeight";var P="clientWidth";if(q===k(o)){q=V(o);if(F(q).position!=="static"&&l==="absolute"){B="scrollHeight";P="scrollWidth"}}q=q;if(u===r||(u===e||u===n)&&c===v){A=t;var R=h&&q===E&&E.visualViewport?E.visualViewport.height:q[B];w-=R-f.height;w*=d?1:-1}if(u===e||(u===r||u===t)&&c===v){M=n;var S=h&&q===E&&E.visualViewport?E.visualViewport.width:q[P];m-=S-f.width;m*=d?1:-1}}var W=Object.assign({position:l},p&&ir);var L=b===true?or({x:m,y:w},k(o)):{x:m,y:w};m=L.x;w=L.y;if(d){var T;return Object.assign({},W,(T={},T[A]=j?"0":"",T[M]=g?"0":"",T.transform=(E.devicePixelRatio||1)<=1?"translate("+m+"px, "+w+"px)":"translate3d("+m+"px, "+w+"px, 0)",T))}return Object.assign({},W,(i={},i[A]=j?w+"px":"",i[M]=g?m+"px":"",i.transform="",i))}function fr(r){var t=r.state,n=r.options;var e=n.gpuAcceleration,a=e===void 0?true:e,i=n.adaptive,o=i===void 0?true:i,v=n.roundOffsets,f=v===void 0?true:v;var u={placement:S(t.placement),variation:ar(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:t.options.strategy==="fixed"};if(t.modifiersData.popperOffsets!=null){t.styles.popper=Object.assign({},t.styles.popper,vr(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:f})))}if(t.modifiersData.arrow!=null){t.styles.arrow=Object.assign({},t.styles.arrow,vr(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:f})))}t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const ur={name:"computeStyles",enabled:true,phase:"beforeWrite",fn:fr,data:{}};var cr={passive:true};function sr(r){var t=r.state,n=r.instance,e=r.options;var a=e.scroll,i=a===void 0?true:a,o=e.resize,v=o===void 0?true:o;var f=k(t.elements.popper);var u=[].concat(t.scrollParents.reference,t.scrollParents.popper);if(i){u.forEach((function(r){r.addEventListener("scroll",n.update,cr)}))}if(v){f.addEventListener("resize",n.update,cr)}return function(){if(i){u.forEach((function(r){r.removeEventListener("scroll",n.update,cr)}))}if(v){f.removeEventListener("resize",n.update,cr)}}}const lr={name:"eventListeners",enabled:true,phase:"write",fn:function r(){},effect:sr,data:{}};var dr={left:"right",right:"left",bottom:"top",top:"bottom"};function pr(r){return r.replace(/left|right|bottom|top/g,(function(r){return dr[r]}))}var br={start:"end",end:"start"};function hr(r){return r.replace(/start|end/g,(function(r){return br[r]}))}function yr(r){var t=k(r);var n=t.pageXOffset;var e=t.pageYOffset;return{scrollLeft:n,scrollTop:e}}function mr(r){return z(V(r)).left+yr(r).scrollLeft}function xr(r,t){var n=k(r);var e=V(r);var a=n.visualViewport;var i=e.clientWidth;var o=e.clientHeight;var v=0;var f=0;if(a){i=a.width;o=a.height;var u=I();if(u||!u&&t==="fixed"){v=a.offsetLeft;f=a.offsetTop}}return{width:i,height:o,x:v+mr(r),y:f}}function wr(r){var t;var n=V(r);var e=yr(r);var a=(t=r.ownerDocument)==null?void 0:t.body;var i=W(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0);var o=W(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0);var v=-e.scrollLeft+mr(r);var f=-e.scrollTop;if(F(a||n).direction==="rtl"){v+=W(n.clientWidth,a?a.clientWidth:0)-i}return{width:i,height:o,x:v,y:f}}function Or(r){var t=F(r),n=t.overflow,e=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+e)}function gr(r){if(["html","body","#document"].indexOf(M(r))>=0){return r.ownerDocument.body}if(E(r)&&Or(r)){return r}return gr(_(r))}function jr(r,t){var n;if(t===void 0){t=[]}var e=gr(r);var a=e===((n=r.ownerDocument)==null?void 0:n.body);var i=k(e);var o=a?[i].concat(i.visualViewport||[],Or(e)?e:[]):e;var v=t.concat(o);return a?v:v.concat(jr(_(o)))}function Mr(r){return Object.assign({},r,{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height})}function kr(r,t){var n=z(r,false,t==="fixed");n.top=n.top+r.clientTop;n.left=n.left+r.clientLeft;n.bottom=n.top+r.clientHeight;n.right=n.left+r.clientWidth;n.width=r.clientWidth;n.height=r.clientHeight;n.x=n.left;n.y=n.top;return n}function Ar(r,t,n){return t===u?Mr(xr(r,n)):A(t)?kr(t,n):Mr(wr(V(r)))}function Er(r){var t=jr(_(r));var n=["absolute","fixed"].indexOf(F(r).position)>=0;var e=n&&E(r)?K(r):r;if(!A(e)){return[]}return t.filter((function(r){return A(r)&&D(r,e)&&M(r)!=="body"}))}function qr(r,t,n,e){var a=t==="clippingParents"?Er(r):[].concat(t);var i=[].concat(a,[n]);var o=i[0];var v=i.reduce((function(t,n){var a=Ar(r,n,e);t.top=W(a.top,t.top);t.right=L(a.right,t.right);t.bottom=L(a.bottom,t.bottom);t.left=W(a.left,t.left);return t}),Ar(r,o,e));v.width=v.right-v.left;v.height=v.bottom-v.top;v.x=v.left;v.y=v.top;return v}function Br(a){var i=a.reference,f=a.element,u=a.placement;var c=u?S(u):null;var s=u?ar(u):null;var l=i.x+i.width/2-f.width/2;var d=i.y+i.height/2-f.height/2;var p;switch(c){case r:p={x:l,y:i.y-f.height};break;case t:p={x:l,y:i.y+i.height};break;case n:p={x:i.x+i.width,y:d};break;case e:p={x:i.x-f.width,y:d};break;default:p={x:i.x,y:i.y}}var b=c?N(c):null;if(b!=null){var h=b==="y"?"height":"width";switch(s){case o:p[b]=p[b]-(i[h]/2-f[h]/2);break;case v:p[b]=p[b]+(i[h]/2-f[h]/2);break}}return p}function Pr(e,a){if(a===void 0){a={}}var o=a,v=o.placement,l=v===void 0?e.placement:v,d=o.strategy,p=d===void 0?e.strategy:d,b=o.boundary,h=b===void 0?f:b,y=o.rootBoundary,m=y===void 0?u:y,x=o.elementContext,w=x===void 0?c:x,O=o.altBoundary,g=O===void 0?false:O,j=o.padding,M=j===void 0?0:j;var k=Z(typeof M!=="number"?M:$(M,i));var E=w===c?s:c;var q=e.rects.popper;var B=e.elements[g?E:w];var P=qr(A(B)?B:B.contextElement||V(e.elements.popper),h,m,p);var R=z(e.elements.reference);var S=Br({reference:R,element:q,strategy:"absolute",placement:l});var W=Mr(Object.assign({},q,S));var L=w===c?W:R;var T={top:P.top-L.top+k.top,bottom:L.bottom-P.bottom+k.bottom,left:P.left-L.left+k.left,right:L.right-P.right+k.right};var H=e.modifiersData.offset;if(w===c&&H){var I=H[l];Object.keys(T).forEach((function(e){var a=[n,t].indexOf(e)>=0?1:-1;var i=[r,t].indexOf(e)>=0?"y":"x";T[e]+=I[i]*a}))}return T}function Rr(r,t){if(t===void 0){t={}}var n=t,e=n.placement,a=n.boundary,o=n.rootBoundary,v=n.padding,f=n.flipVariations,u=n.allowedAutoPlacements,c=u===void 0?d:u;var s=ar(e);var p=s?f?l:l.filter((function(r){return ar(r)===s})):i;var b=p.filter((function(r){return c.indexOf(r)>=0}));if(b.length===0){b=p}var h=b.reduce((function(t,n){t[n]=Pr(r,{placement:n,boundary:a,rootBoundary:o,padding:v})[S(n)];return t}),{});return Object.keys(h).sort((function(r,t){return h[r]-h[t]}))}function Sr(r){if(S(r)===a){return[]}var t=pr(r);return[hr(r),t,hr(t)]}function Wr(i){var v=i.state,f=i.options,u=i.name;if(v.modifiersData[u]._skip){return}var c=f.mainAxis,s=c===void 0?true:c,l=f.altAxis,d=l===void 0?true:l,p=f.fallbackPlacements,b=f.padding,h=f.boundary,y=f.rootBoundary,m=f.altBoundary,x=f.flipVariations,w=x===void 0?true:x,O=f.allowedAutoPlacements;var g=v.options.placement;var j=S(g);var M=j===g;var k=p||(M||!w?[pr(g)]:Sr(g));var A=[g].concat(k).reduce((function(r,t){return r.concat(S(t)===a?Rr(v,{placement:t,boundary:h,rootBoundary:y,padding:b,flipVariations:w,allowedAutoPlacements:O}):t)}),[]);var E=v.rects.reference;var q=v.rects.popper;var B=new Map;var P=true;var R=A[0];for(var W=0;W<A.length;W++){var L=A[W];var T=S(L);var H=ar(L)===o;var I=[r,t].indexOf(T)>=0;var z=I?"width":"height";var C=Pr(v,{placement:L,boundary:h,rootBoundary:y,altBoundary:m,padding:b});var D=I?H?n:e:H?t:r;if(E[z]>q[z]){D=pr(D)}var F=pr(D);var U=[];if(s){U.push(C[T]<=0)}if(d){U.push(C[D]<=0,C[F]<=0)}if(U.every((function(r){return r}))){R=L;P=false;break}B.set(L,U)}if(P){var V=w?3:1;var _=function r(t){var n=A.find((function(r){var n=B.get(r);if(n){return n.slice(0,t).every((function(r){return r}))}}));if(n){R=n;return"break"}};for(var G=V;G>0;G--){var J=_(G);if(J==="break")break}}if(v.placement!==R){v.modifiersData[u]._skip=true;v.placement=R;v.reset=true}}const Lr={name:"flip",enabled:true,phase:"main",fn:Wr,requiresIfExists:["offset"],data:{_skip:false}};function Tr(r,t,n){if(n===void 0){n={x:0,y:0}}return{top:r.top-t.height-n.y,right:r.right-t.width+n.x,bottom:r.bottom-t.height+n.y,left:r.left-t.width-n.x}}function Hr(a){return[r,n,t,e].some((function(r){return a[r]>=0}))}function Ir(r){var t=r.state,n=r.name;var e=t.rects.reference;var a=t.rects.popper;var i=t.modifiersData.preventOverflow;var o=Pr(t,{elementContext:"reference"});var v=Pr(t,{altBoundary:true});var f=Tr(o,e);var u=Tr(v,a,i);var c=Hr(f);var s=Hr(u);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:s};t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":s})}const zr={name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:Ir};function Cr(t,a,i){var o=S(t);var v=[e,r].indexOf(o)>=0?-1:1;var f=typeof i==="function"?i(Object.assign({},a,{placement:t})):i,u=f[0],c=f[1];u=u||0;c=(c||0)*v;return[e,n].indexOf(o)>=0?{x:c,y:u}:{x:u,y:c}}function Dr(r){var t=r.state,n=r.options,e=r.name;var a=n.offset,i=a===void 0?[0,0]:a;var o=d.reduce((function(r,n){r[n]=Cr(n,t.rects,i);return r}),{});var v=o[t.placement],f=v.x,u=v.y;if(t.modifiersData.popperOffsets!=null){t.modifiersData.popperOffsets.x+=f;t.modifiersData.popperOffsets.y+=u}t.modifiersData[e]=o}const Fr={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:Dr};function Ur(r){var t=r.state,n=r.name;t.modifiersData[n]=Br({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const Vr={name:"popperOffsets",enabled:true,phase:"read",fn:Ur,data:{}};function _r(r){return r==="x"?"y":"x"}function Gr(a){var i=a.state,v=a.options,f=a.name;var u=v.mainAxis,c=u===void 0?true:u,s=v.altAxis,l=s===void 0?false:s,d=v.boundary,p=v.rootBoundary,b=v.altBoundary,h=v.padding,y=v.tether,m=y===void 0?true:y,x=v.tetherOffset,w=x===void 0?0:x;var O=Pr(i,{boundary:d,rootBoundary:p,padding:h,altBoundary:b});var g=S(i.placement);var j=ar(i.placement);var M=!j;var k=N(g);var A=_r(k);var E=i.modifiersData.popperOffsets;var q=i.rects.reference;var B=i.rects.popper;var P=typeof w==="function"?w(Object.assign({},i.rects,{placement:i.placement})):w;var R=typeof P==="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P);var T=i.modifiersData.offset?i.modifiersData.offset[i.placement]:null;var H={x:0,y:0};if(!E){return}if(c){var I;var z=k==="y"?r:e;var D=k==="y"?t:n;var F=k==="y"?"height":"width";var U=E[k];var V=U+O[z];var _=U-O[D];var G=m?-B[F]/2:0;var J=j===o?q[F]:B[F];var Z=j===o?-B[F]:-q[F];var $=i.elements.arrow;var rr=m&&$?C($):{width:0,height:0};var tr=i.modifiersData["arrow#persistent"]?i.modifiersData["arrow#persistent"].padding:Y();var nr=tr[z];var er=tr[D];var ir=Q(0,q[F],rr[F]);var or=M?q[F]/2-G-ir-nr-R.mainAxis:J-ir-nr-R.mainAxis;var vr=M?-q[F]/2+G+ir+er+R.mainAxis:Z+ir+er+R.mainAxis;var fr=i.elements.arrow&&K(i.elements.arrow);var ur=fr?k==="y"?fr.clientTop||0:fr.clientLeft||0:0;var cr=(I=T==null?void 0:T[k])!=null?I:0;var sr=U+or-cr-ur;var lr=U+vr-cr;var dr=Q(m?L(V,sr):V,U,m?W(_,lr):_);E[k]=dr;H[k]=dr-U}if(l){var pr;var br=k==="x"?r:e;var hr=k==="x"?t:n;var yr=E[A];var mr=A==="y"?"height":"width";var xr=yr+O[br];var wr=yr-O[hr];var Or=[r,e].indexOf(g)!==-1;var gr=(pr=T==null?void 0:T[A])!=null?pr:0;var jr=Or?xr:yr-q[mr]-B[mr]-gr+R.altAxis;var Mr=Or?yr+q[mr]+B[mr]-gr-R.altAxis:wr;var kr=m&&Or?X(jr,yr,Mr):Q(m?jr:xr,yr,m?Mr:wr);E[A]=kr;H[A]=kr-yr}i.modifiersData[f]=H}const Jr={name:"preventOverflow",enabled:true,phase:"main",fn:Gr,requiresIfExists:["offset"]};function Kr(r){return{scrollLeft:r.scrollLeft,scrollTop:r.scrollTop}}function Nr(r){if(r===k(r)||!E(r)){return yr(r)}else{return Kr(r)}}function Qr(r){var t=r.getBoundingClientRect();var n=T(t.width)/r.offsetWidth||1;var e=T(t.height)/r.offsetHeight||1;return n!==1||e!==1}function Xr(r,t,n){if(n===void 0){n=false}var e=E(t);var a=E(t)&&Qr(t);var i=V(t);var o=z(r,a,n);var v={scrollLeft:0,scrollTop:0};var f={x:0,y:0};if(e||!e&&!n){if(M(t)!=="body"||Or(i)){v=Nr(t)}if(E(t)){f=z(t,true);f.x+=t.clientLeft;f.y+=t.clientTop}else if(i){f.x=mr(i)}}return{x:o.left+v.scrollLeft-f.x,y:o.top+v.scrollTop-f.y,width:o.width,height:o.height}}function Yr(r){var t=new Map;var n=new Set;var e=[];r.forEach((function(r){t.set(r.name,r)}));function a(r){n.add(r.name);var i=[].concat(r.requires||[],r.requiresIfExists||[]);i.forEach((function(r){if(!n.has(r)){var e=t.get(r);if(e){a(e)}}}));e.push(r)}r.forEach((function(r){if(!n.has(r.name)){a(r)}}));return e}function Zr(r){var t=Yr(r);return j.reduce((function(r,n){return r.concat(t.filter((function(r){return r.phase===n})))}),[])}function $r(r){var t;return function(){if(!t){t=new Promise((function(n){Promise.resolve().then((function(){t=undefined;n(r())}))}))}return t}}function rt(r){var t=r.reduce((function(r,t){var n=r[t.name];r[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t;return r}),{});return Object.keys(t).map((function(r){return t[r]}))}var tt={placement:"bottom",modifiers:[],strategy:"absolute"};function nt(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++){t[n]=arguments[n]}return!t.some((function(r){return!(r&&typeof r.getBoundingClientRect==="function")}))}function et(r){if(r===void 0){r={}}var t=r,n=t.defaultModifiers,e=n===void 0?[]:n,a=t.defaultOptions,i=a===void 0?tt:a;return function r(t,n,a){if(a===void 0){a=i}var o={placement:"bottom",orderedModifiers:[],options:Object.assign({},tt,i),modifiersData:{},elements:{reference:t,popper:n},attributes:{},styles:{}};var v=[];var f=false;var u={state:o,setOptions:function r(a){var v=typeof a==="function"?a(o.options):a;s();o.options=Object.assign({},i,o.options,v);o.scrollParents={reference:A(t)?jr(t):t.contextElement?jr(t.contextElement):[],popper:jr(n)};var f=Zr(rt([].concat(e,o.options.modifiers)));o.orderedModifiers=f.filter((function(r){return r.enabled}));c();return u.update()},forceUpdate:function r(){if(f){return}var t=o.elements,n=t.reference,e=t.popper;if(!nt(n,e)){return}o.rects={reference:Xr(n,K(e),o.options.strategy==="fixed"),popper:C(e)};o.reset=false;o.placement=o.options.placement;o.orderedModifiers.forEach((function(r){return o.modifiersData[r.name]=Object.assign({},r.data)}));for(var a=0;a<o.orderedModifiers.length;a++){if(o.reset===true){o.reset=false;a=-1;continue}var i=o.orderedModifiers[a],v=i.fn,c=i.options,s=c===void 0?{}:c,l=i.name;if(typeof v==="function"){o=v({state:o,options:s,name:l,instance:u})||o}}},update:$r((function(){return new Promise((function(r){u.forceUpdate();r(o)}))})),destroy:function r(){s();f=true}};if(!nt(t,n)){return u}u.setOptions(a).then((function(r){if(!f&&a.onFirstUpdate){a.onFirstUpdate(r)}}));function c(){o.orderedModifiers.forEach((function(r){var t=r.name,n=r.options,e=n===void 0?{}:n,a=r.effect;if(typeof a==="function"){var i=a({state:o,name:t,instance:u,options:e});var f=function r(){};v.push(i||f)}}))}function s(){v.forEach((function(r){return r()}));v=[]}return u}}var at=[lr,Vr,ur,R,Fr,Lr,Jr,er,zr];var it=et({defaultModifiers:at});export{R as a,it as c};
|
|
2
|
+
//# sourceMappingURL=p-e1fb3625.js.map
|