@patternfly/elements 3.0.2 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +8857 -8783
- package/form-control.css +127 -0
- package/package.json +12 -25
- package/pf-accordion/pf-accordion-header.css +23 -0
- package/pf-accordion/pf-accordion-header.d.ts +52 -43
- package/pf-accordion/pf-accordion-header.js +130 -87
- package/pf-accordion/pf-accordion-header.js.map +1 -1
- package/pf-accordion/pf-accordion-panel.css +15 -0
- package/pf-accordion/pf-accordion-panel.d.ts +27 -25
- package/pf-accordion/pf-accordion-panel.js +29 -43
- package/pf-accordion/pf-accordion-panel.js.map +1 -1
- package/pf-accordion/pf-accordion.d.ts +122 -65
- package/pf-accordion/pf-accordion.js +283 -94
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-accordion/test/pf-accordion.e2e.js +12 -0
- package/pf-accordion/test/pf-accordion.e2e.js.map +1 -1
- package/pf-accordion/test/pf-accordion.spec.js +366 -350
- package/pf-accordion/test/pf-accordion.spec.js.map +1 -1
- package/pf-avatar/pf-avatar.css +50 -24
- package/pf-avatar/pf-avatar.d.ts +29 -3
- package/pf-avatar/pf-avatar.js +51 -9
- package/pf-avatar/pf-avatar.js.map +1 -1
- package/pf-avatar/test/pf-avatar.e2e.js +12 -0
- package/pf-avatar/test/pf-avatar.e2e.js.map +1 -1
- package/pf-avatar/test/pf-avatar.spec.js +2 -3
- package/pf-avatar/test/pf-avatar.spec.js.map +1 -1
- package/pf-back-to-top/pf-back-to-top.css +10 -0
- package/pf-back-to-top/pf-back-to-top.d.ts +14 -18
- package/pf-back-to-top/pf-back-to-top.js +9 -30
- package/pf-back-to-top/pf-back-to-top.js.map +1 -1
- package/pf-back-to-top/test/pf-back-to-top.e2e.js +12 -0
- package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -1
- package/pf-background-image/pf-background-image.d.ts +4 -4
- package/pf-background-image/pf-background-image.js +1 -12
- package/pf-background-image/pf-background-image.js.map +1 -1
- package/pf-background-image/test/pf-background-image.e2e.js +12 -0
- package/pf-background-image/test/pf-background-image.e2e.js.map +1 -1
- package/pf-badge/pf-badge.css +4 -0
- package/pf-badge/pf-badge.d.ts +26 -22
- package/pf-badge/pf-badge.js +14 -27
- package/pf-badge/pf-badge.js.map +1 -1
- package/pf-badge/test/pf-badge.e2e.js +12 -0
- package/pf-badge/test/pf-badge.e2e.js.map +1 -1
- package/pf-banner/pf-banner.d.ts +16 -16
- package/pf-banner/pf-banner.js +1 -24
- package/pf-banner/pf-banner.js.map +1 -1
- package/pf-banner/test/pf-banner.e2e.js +12 -0
- package/pf-banner/test/pf-banner.e2e.js.map +1 -1
- package/pf-button/pf-button.css +22 -12
- package/pf-button/pf-button.d.ts +128 -122
- package/pf-button/pf-button.js +95 -172
- package/pf-button/pf-button.js.map +1 -1
- package/pf-button/test/pf-button.e2e.js +12 -0
- package/pf-button/test/pf-button.e2e.js.map +1 -1
- package/pf-card/pf-card.css +172 -43
- package/pf-card/pf-card.d.ts +41 -38
- package/pf-card/pf-card.js +37 -54
- package/pf-card/pf-card.js.map +1 -1
- package/pf-card/test/pf-card.e2e.js +12 -0
- package/pf-card/test/pf-card.e2e.js.map +1 -1
- package/pf-chip/pf-chip-group.css +9 -6
- package/pf-chip/pf-chip-group.d.ts +27 -14
- package/pf-chip/pf-chip-group.js +65 -94
- package/pf-chip/pf-chip-group.js.map +1 -1
- package/pf-chip/pf-chip.d.ts +20 -9
- package/pf-chip/pf-chip.js +1 -8
- package/pf-chip/pf-chip.js.map +1 -1
- package/pf-chip/test/pf-chip-group.spec.js +42 -22
- package/pf-chip/test/pf-chip-group.spec.js.map +1 -1
- package/pf-chip/test/pf-chip.e2e.js +12 -0
- package/pf-chip/test/pf-chip.e2e.js.map +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.css +83 -89
- package/pf-clipboard-copy/pf-clipboard-copy.d.ts +53 -18
- package/pf-clipboard-copy/pf-clipboard-copy.js +55 -44
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +12 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -1
- package/pf-code-block/pf-code-block.css +7 -4
- package/pf-code-block/pf-code-block.d.ts +4 -25
- package/pf-code-block/pf-code-block.js +44 -23
- package/pf-code-block/pf-code-block.js.map +1 -1
- package/pf-code-block/test/pf-code-block.e2e.js +12 -0
- package/pf-code-block/test/pf-code-block.e2e.js.map +1 -1
- package/pf-dropdown/context.d.ts +2 -3
- package/pf-dropdown/context.js.map +1 -1
- package/pf-dropdown/pf-dropdown-group.d.ts +3 -9
- package/pf-dropdown/pf-dropdown-group.js +1 -5
- package/pf-dropdown/pf-dropdown-group.js.map +1 -1
- package/pf-dropdown/pf-dropdown-item.d.ts +21 -27
- package/pf-dropdown/pf-dropdown-item.js +1 -37
- package/pf-dropdown/pf-dropdown-item.js.map +1 -1
- package/pf-dropdown/pf-dropdown-menu.d.ts +4 -10
- package/pf-dropdown/pf-dropdown-menu.js +23 -23
- package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
- package/pf-dropdown/pf-dropdown.d.ts +8 -24
- package/pf-dropdown/pf-dropdown.js +1 -26
- package/pf-dropdown/pf-dropdown.js.map +1 -1
- package/pf-dropdown/test/pf-dropdown.e2e.js +12 -0
- package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -1
- package/pf-icon/pf-icon.css +22 -0
- package/pf-icon/pf-icon.d.ts +93 -4
- package/pf-icon/pf-icon.js +191 -13
- package/pf-icon/pf-icon.js.map +1 -1
- package/pf-icon/test/pf-icon.e2e.js +12 -0
- package/pf-icon/test/pf-icon.e2e.js.map +1 -1
- package/pf-icon/test/pf-icon.spec.js +102 -88
- package/pf-icon/test/pf-icon.spec.js.map +1 -1
- package/pf-jump-links/pf-jump-links-item.d.ts +4 -11
- package/pf-jump-links/pf-jump-links-item.js +8 -15
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.d.ts +2 -2
- package/pf-jump-links/pf-jump-links-list.js +1 -5
- package/pf-jump-links/pf-jump-links-list.js.map +1 -1
- package/pf-jump-links/pf-jump-links.d.ts +2 -2
- package/pf-jump-links/pf-jump-links.js +23 -62
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-jump-links/test/pf-jump-links.e2e.js +12 -0
- package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -1
- package/pf-label/pf-label.css +38 -5
- package/pf-label/pf-label.d.ts +65 -69
- package/pf-label/pf-label.js +49 -90
- package/pf-label/pf-label.js.map +1 -1
- package/pf-label/test/pf-label.e2e.js +12 -0
- package/pf-label/test/pf-label.e2e.js.map +1 -1
- package/pf-label/test/pf-label.spec.js +26 -16
- package/pf-label/test/pf-label.spec.js.map +1 -1
- package/pf-modal/pf-modal.d.ts +17 -22
- package/pf-modal/pf-modal.js +13 -39
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-modal/test/pf-modal.e2e.js +12 -0
- package/pf-modal/test/pf-modal.e2e.js.map +1 -1
- package/pf-panel/pf-panel.d.ts +31 -3
- package/pf-panel/pf-panel.js +1 -10
- package/pf-panel/pf-panel.js.map +1 -1
- package/pf-panel/test/pf-panel.e2e.js +12 -0
- package/pf-panel/test/pf-panel.e2e.js.map +1 -1
- package/pf-popover/pf-popover.d.ts +66 -84
- package/pf-popover/pf-popover.js +33 -150
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-popover/test/pf-popover.e2e.js +12 -0
- package/pf-popover/test/pf-popover.e2e.js.map +1 -1
- package/pf-popover/test/pf-popover.spec.js +0 -11
- package/pf-popover/test/pf-popover.spec.js.map +1 -1
- package/pf-progress/pf-progress.d.ts +40 -40
- package/pf-progress/pf-progress.js +1 -61
- package/pf-progress/pf-progress.js.map +1 -1
- package/pf-progress/test/pf-progress.e2e.js +12 -0
- package/pf-progress/test/pf-progress.e2e.js.map +1 -1
- package/pf-progress-stepper/pf-progress-step.d.ts +2 -3
- package/pf-progress-stepper/pf-progress-step.js +4 -14
- package/pf-progress-stepper/pf-progress-step.js.map +1 -1
- package/pf-progress-stepper/pf-progress-stepper.d.ts +118 -2
- package/pf-progress-stepper/pf-progress-stepper.js +10 -12
- package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +12 -0
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -1
- package/pf-select/pf-option-group.d.ts +2 -2
- package/pf-select/pf-option-group.js +1 -5
- package/pf-select/pf-option-group.js.map +1 -1
- package/pf-select/pf-option.css +1 -1
- package/pf-select/pf-option.d.ts +4 -4
- package/pf-select/pf-option.js +20 -30
- package/pf-select/pf-option.js.map +1 -1
- package/pf-select/pf-select.css +14 -6
- package/pf-select/pf-select.d.ts +183 -40
- package/pf-select/pf-select.js +185 -260
- package/pf-select/pf-select.js.map +1 -1
- package/pf-select/test/pf-select.e2e.js +12 -0
- package/pf-select/test/pf-select.e2e.js.map +1 -1
- package/pf-select/test/pf-select.spec.js +1292 -613
- package/pf-select/test/pf-select.spec.js.map +1 -1
- package/pf-spinner/pf-spinner.css +27 -17
- package/pf-spinner/pf-spinner.d.ts +21 -17
- package/pf-spinner/pf-spinner.js +20 -24
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-spinner/test/pf-spinner.e2e.js +12 -0
- package/pf-spinner/test/pf-spinner.e2e.js.map +1 -1
- package/pf-switch/pf-switch.css +39 -13
- package/pf-switch/pf-switch.d.ts +48 -34
- package/pf-switch/pf-switch.js +114 -43
- package/pf-switch/pf-switch.js.map +1 -1
- package/pf-switch/test/pf-switch.e2e.js +12 -0
- package/pf-switch/test/pf-switch.e2e.js.map +1 -1
- package/pf-table/pf-caption.d.ts +2 -2
- package/pf-table/pf-caption.js +1 -4
- package/pf-table/pf-caption.js.map +1 -1
- package/pf-table/pf-table.d.ts +424 -424
- package/pf-table/pf-table.js +7 -645
- package/pf-table/pf-table.js.map +1 -1
- package/pf-table/pf-tbody.d.ts +2 -2
- package/pf-table/pf-tbody.js +1 -4
- package/pf-table/pf-tbody.js.map +1 -1
- package/pf-table/pf-td.d.ts +2 -2
- package/pf-table/pf-td.js +1 -4
- package/pf-table/pf-td.js.map +1 -1
- package/pf-table/pf-th.d.ts +2 -2
- package/pf-table/pf-th.js +1 -4
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.d.ts +2 -2
- package/pf-table/pf-thead.js +1 -4
- package/pf-table/pf-thead.js.map +1 -1
- package/pf-table/pf-tr.d.ts +1 -1
- package/pf-table/pf-tr.js +1 -4
- package/pf-table/pf-tr.js.map +1 -1
- package/pf-table/test/pf-table.e2e.js +12 -0
- package/pf-table/test/pf-table.e2e.js.map +1 -1
- package/pf-tabs/context.d.ts +2 -3
- package/pf-tabs/context.js.map +1 -1
- package/pf-tabs/pf-tab-panel.d.ts +3 -5
- package/pf-tabs/pf-tab-panel.js +1 -7
- package/pf-tabs/pf-tab-panel.js.map +1 -1
- package/pf-tabs/pf-tab.d.ts +37 -37
- package/pf-tabs/pf-tab.js +16 -54
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.d.ts +36 -37
- package/pf-tabs/pf-tabs.js +40 -78
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-tabs/test/pf-tabs.e2e.js +12 -0
- package/pf-tabs/test/pf-tabs.e2e.js.map +1 -1
- package/pf-tabs/test/pf-tabs.spec.js +11 -12
- package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
- package/pf-text-area/pf-text-area.d.ts +128 -134
- package/pf-text-area/pf-text-area.js +7 -131
- package/pf-text-area/pf-text-area.js.map +1 -1
- package/pf-text-area/test/pf-text-area.e2e.js +12 -0
- package/pf-text-area/test/pf-text-area.e2e.js.map +1 -1
- package/pf-text-input/pf-text-input.d.ts +129 -135
- package/pf-text-input/pf-text-input.js +7 -132
- package/pf-text-input/pf-text-input.js.map +1 -1
- package/pf-text-input/test/pf-text-input.e2e.js +12 -0
- package/pf-text-input/test/pf-text-input.e2e.js.map +1 -1
- package/pf-tile/pf-tile.d.ts +21 -20
- package/pf-tile/pf-tile.js +18 -35
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-tile/test/pf-tile.e2e.js +12 -0
- package/pf-tile/test/pf-tile.e2e.js.map +1 -1
- package/pf-timestamp/pf-timestamp.d.ts +2 -2
- package/pf-timestamp/pf-timestamp.js +1 -3
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
- package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -1
- package/pf-tooltip/pf-tooltip.d.ts +51 -50
- package/pf-tooltip/pf-tooltip.js +26 -106
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pf-tooltip/test/pf-tooltip.e2e.js +12 -0
- package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -1
- package/pfe.min.js +1194 -1006
- package/pfe.min.js.map +4 -4
- package/react/pf-accordion/pf-accordion-header.js +2 -2
- package/react/pf-accordion/pf-accordion-panel.js +2 -2
- package/react/pf-accordion/pf-accordion.js +2 -2
- package/react/pf-avatar/pf-avatar.d.ts +1 -1
- package/react/pf-avatar/pf-avatar.js +5 -3
- package/react/pf-back-to-top/pf-back-to-top.js +2 -2
- package/react/pf-background-image/pf-background-image.js +2 -2
- package/react/pf-badge/pf-badge.js +2 -2
- package/react/pf-banner/pf-banner.js +2 -2
- package/react/pf-button/pf-button.js +2 -2
- package/react/pf-card/pf-card.js +2 -2
- package/react/pf-chip/pf-chip-group.js +2 -2
- package/react/pf-chip/pf-chip.js +2 -2
- package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -1
- package/react/pf-clipboard-copy/pf-clipboard-copy.js +5 -3
- package/react/pf-code-block/pf-code-block.js +2 -2
- package/react/pf-dropdown/pf-dropdown-group.js +2 -2
- package/react/pf-dropdown/pf-dropdown-item.js +2 -2
- package/react/pf-dropdown/pf-dropdown-menu.js +2 -2
- package/react/pf-dropdown/pf-dropdown.js +2 -2
- package/react/pf-icon/pf-icon.js +2 -2
- package/react/pf-jump-links/pf-jump-links-item.js +2 -2
- package/react/pf-jump-links/pf-jump-links-list.js +2 -2
- package/react/pf-jump-links/pf-jump-links.js +2 -2
- package/react/pf-label/pf-label.js +2 -2
- package/react/pf-modal/pf-modal.js +2 -2
- package/react/pf-panel/pf-panel.js +2 -2
- package/react/pf-popover/pf-popover.js +2 -2
- package/react/pf-progress/pf-progress.js +2 -2
- package/react/pf-progress-stepper/pf-progress-step.js +2 -2
- package/react/pf-progress-stepper/pf-progress-stepper.js +2 -2
- package/react/pf-select/pf-option-group.js +2 -2
- package/react/pf-select/pf-option.js +2 -2
- package/react/pf-select/pf-select.d.ts +1 -1
- package/react/pf-select/pf-select.js +2 -3
- package/react/pf-spinner/pf-spinner.js +2 -2
- package/react/pf-switch/pf-switch.js +2 -2
- package/react/pf-table/pf-caption.js +2 -2
- package/react/pf-table/pf-table.js +2 -2
- package/react/pf-table/pf-tbody.js +2 -2
- package/react/pf-table/pf-td.js +2 -2
- package/react/pf-table/pf-th.js +2 -2
- package/react/pf-table/pf-thead.js +2 -2
- package/react/pf-table/pf-tr.js +2 -2
- package/react/pf-tabs/pf-tab-panel.js +2 -2
- package/react/pf-tabs/pf-tab.js +2 -2
- package/react/pf-tabs/pf-tabs.js +2 -2
- package/react/pf-text-area/pf-text-area.js +2 -2
- package/react/pf-text-input/pf-text-input.js +2 -2
- package/react/pf-tile/pf-tile.js +2 -2
- package/react/pf-timestamp/pf-timestamp.js +2 -2
- package/react/pf-tooltip/pf-tooltip.js +2 -2
- package/pf-accordion/BaseAccordion.d.ts +0 -61
- package/pf-accordion/BaseAccordion.js +0 -269
- package/pf-accordion/BaseAccordion.js.map +0 -1
- package/pf-accordion/BaseAccordionHeader.css +0 -39
- package/pf-accordion/BaseAccordionHeader.d.ts +0 -29
- package/pf-accordion/BaseAccordionHeader.js +0 -128
- package/pf-accordion/BaseAccordionHeader.js.map +0 -1
- package/pf-accordion/BaseAccordionPanel.css +0 -27
- package/pf-accordion/BaseAccordionPanel.d.ts +0 -7
- package/pf-accordion/BaseAccordionPanel.js +0 -33
- package/pf-accordion/BaseAccordionPanel.js.map +0 -1
- package/pf-avatar/BaseAvatar.css +0 -13
- package/pf-avatar/BaseAvatar.d.ts +0 -23
- package/pf-avatar/BaseAvatar.js +0 -62
- package/pf-avatar/BaseAvatar.js.map +0 -1
- package/pf-back-to-top/demo/demo.css +0 -25
- package/pf-badge/BaseBadge.css +0 -6
- package/pf-badge/BaseBadge.d.ts +0 -18
- package/pf-badge/BaseBadge.js +0 -16
- package/pf-badge/BaseBadge.js.map +0 -1
- package/pf-button/BaseButton.css +0 -68
- package/pf-button/BaseButton.d.ts +0 -51
- package/pf-button/BaseButton.js +0 -84
- package/pf-button/BaseButton.js.map +0 -1
- package/pf-card/BaseCard.css +0 -36
- package/pf-card/BaseCard.d.ts +0 -24
- package/pf-card/BaseCard.js +0 -51
- package/pf-card/BaseCard.js.map +0 -1
- package/pf-clipboard-copy/BaseClipboardCopy.css +0 -6
- package/pf-clipboard-copy/BaseClipboardCopy.d.ts +0 -18
- package/pf-clipboard-copy/BaseClipboardCopy.js +0 -25
- package/pf-clipboard-copy/BaseClipboardCopy.js.map +0 -1
- package/pf-code-block/BaseCodeBlock.css +0 -7
- package/pf-code-block/BaseCodeBlock.d.ts +0 -8
- package/pf-code-block/BaseCodeBlock.js +0 -22
- package/pf-code-block/BaseCodeBlock.js.map +0 -1
- package/pf-icon/BaseIcon.css +0 -22
- package/pf-icon/BaseIcon.d.ts +0 -41
- package/pf-icon/BaseIcon.js +0 -144
- package/pf-icon/BaseIcon.js.map +0 -1
- package/pf-label/BaseLabel.css +0 -44
- package/pf-label/BaseLabel.d.ts +0 -30
- package/pf-label/BaseLabel.js +0 -29
- package/pf-label/BaseLabel.js.map +0 -1
- package/pf-spinner/BaseSpinner.css +0 -20
- package/pf-spinner/BaseSpinner.d.ts +0 -27
- package/pf-spinner/BaseSpinner.js +0 -45
- package/pf-spinner/BaseSpinner.js.map +0 -1
- package/pf-switch/BaseSwitch.css +0 -36
- package/pf-switch/BaseSwitch.d.ts +0 -19
- package/pf-switch/BaseSwitch.js +0 -109
- package/pf-switch/BaseSwitch.js.map +0 -1
- package/pf-tabs/BaseTab.css +0 -60
- package/pf-tabs/BaseTab.d.ts +0 -32
- package/pf-tabs/BaseTab.js +0 -83
- package/pf-tabs/BaseTab.js.map +0 -1
- package/pf-tabs/BaseTabPanel.css +0 -7
- package/pf-tabs/BaseTabPanel.d.ts +0 -7
- package/pf-tabs/BaseTabPanel.js +0 -36
- package/pf-tabs/BaseTabPanel.js.map +0 -1
- package/pf-tabs/BaseTabs.css +0 -86
- package/pf-tabs/BaseTabs.d.ts +0 -38
- package/pf-tabs/BaseTabs.js +0 -221
- package/pf-tabs/BaseTabs.js.map +0 -1
- package/pf-tile/BaseTile.d.ts +0 -13
- package/pf-tile/BaseTile.js +0 -28
- package/pf-tile/BaseTile.js.map +0 -1
- package/pf-tooltip/BaseTooltip.css +0 -70
- package/pf-tooltip/BaseTooltip.d.ts +0 -16
- package/pf-tooltip/BaseTooltip.js +0 -54
- package/pf-tooltip/BaseTooltip.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-select.spec.js","sourceRoot":"","sources":["pf-select.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAE3E,KAAK,UAAU,SAAS;IACtB,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,MAAM,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,MAAM,QAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,KAAK;QACV,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAiB;IAClC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,OAAiB,CAAC;IAEtB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IAEpD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAEpC,QAAQ,CAAC,sBAAsB,EAAE;QAC/B,EAAE,CAAC,2BAA2B,EAAE;YAC9B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK;YACxB,OAAO,GAAG,MAAM,aAAa,CAAW,IAAI,CAAA,yBAAyB,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC;iBACV,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;iBAC1B,GAAG;iBACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAW,IAAI,CAAA;;;;;;;;;;;;qBAY7B,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,KAAK;YACvB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,UAAU,CAAC;gBACT,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,cAAc,CAAC,CAAC;YAC3B,EAAE,CAAC,2BAA2B,EAAE,KAAK;gBACnC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE;YAC3B,UAAU,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,cAAc,CAAC,CAAC;YAE3B,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,oBAAoB,EAAE;gBAC7B,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK;oBAC7B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,uBAAuB,EAAE;oBAChC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC7B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,4BAA4B,EAAE,KAAK;wBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,yBAAyB,EAAE;wBAClC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,4BAA4B,EAAE,KAAK;4BACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACpD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAE3B,EAAE,CAAC,qBAAqB,EAAE,KAAK;wBAC7B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,uBAAuB,EAAE;wBAChC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC7B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,4BAA4B,EAAE,KAAK;4BACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACpD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,qBAAqB,EAAE;wBAC9B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAE3B,EAAE,CAAC,kBAAkB,EAAE;4BACrB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAClD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,qBAAqB,EAAE;oBAC9B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAE3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBAC7E,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC3C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK;wBAClC,sCAAsC;wBACtC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/C,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,mBAAmB,EAAE;oBAC5B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC3C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,YAAY,CAAC,CAAC;oBACzB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBAClC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC3C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,sBAAsB,EAAE;oBAC/B,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5B,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC3C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAC7B,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAW,IAAI,CAAA;;;;;;;;;;;qBAW7B,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,KAAK;YACvB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE;YAC3B,UAAU,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,cAAc,CAAC,CAAC;YAC3B,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK;oBAClD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC;yBACjF,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,oBAAoB,EAAE;gBAC7B,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,YAAY,CAAC,CAAC;oBACzB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAE3B,EAAE,CAAC,QAAQ,EAAE,KAAK;wBAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBACnD,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC5D,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACvD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,mBAAmB,EAAE;oBAC5B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,6CAA6C;oBAC7C,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBAClC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,sBAAsB,EAAE;oBAC/B,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,oBAAoB,EAAE,KAAK;wBAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,qBAAqB,EAAE;oBAC9B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAE3B,EAAE,CAAC,kBAAkB,EAAE;wBACrB,sCAAsC;wBACtC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK;wBAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,yBAAyB,EAAE;wBAClC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,kBAAkB,EAAE,KAAK;4BAC1B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACtC,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,qBAAqB,EAAE;4BAC9B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;4BAC3B,EAAE,CAAC,4BAA4B,EAAE;gCAC/B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oCACvC,GAAG;oCACH,GAAG;iCACJ,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;4BAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK;gCAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gCACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gCACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;4BAC7D,CAAC,CAAC,CAAC;4BAEH,QAAQ,CAAC,mEAAmE,EAAE;gCAC5E,UAAU,CAAC,SAAS,CAAC,CAAC;gCACtB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gCAC/B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC3B,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gCAC/B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC3B,UAAU,CAAC,YAAY,CAAC,CAAC;gCACzB,UAAU,CAAC,cAAc,CAAC,CAAC;gCAE3B,EAAE,CAAC,2CAA2C,EAAE;oCAC9C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;wCACvC,GAAG;wCACH,GAAG;wCACH,GAAG;wCACH,GAAG;qCACJ,CAAC,CAAC;gCACL,CAAC,CAAC,CAAC;gCAEH,QAAQ,CAAC,iCAAiC,EAAE;oCAC1C,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oCAC7B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oCAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;oCAE3B,EAAE,CAAC,oBAAoB,EAAE;wCACvB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;4CACvC,GAAG;4CACH,GAAG;4CACH,GAAG;yCACJ,CAAC,CAAC;oCACL,CAAC,CAAC,CAAC;oCAEH,QAAQ,CAAC,sEAAsE,EAAE;wCAC/E,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wCAC7B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;wCAC3B,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wCAC7B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;wCAC3B,UAAU,CAAC,YAAY,CAAC,CAAC;wCACzB,UAAU,CAAC,cAAc,CAAC,CAAC;wCAE3B,EAAE,CAAC,2BAA2B,EAAE;4CAC9B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gDACvC,GAAG;6CACJ,CAAC,CAAC;wCACL,CAAC,CAAC,CAAC;wCAEH,QAAQ,CAAC,sBAAsB,EAAE;4CAC/B,UAAU,CAAC,KAAK,CAAC,CAAC;4CAClB,UAAU,CAAC,cAAc,CAAC,CAAC;4CAE3B,EAAE,CAAC,qBAAqB,EAAE;gDACxB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oDACvC,GAAG;oDACH,GAAG;oDACH,GAAG;oDACH,GAAG;oDACH,GAAG;oDACH,GAAG;oDACH,GAAG;oDACH,GAAG;iDACJ,CAAC,CAAC;4CACL,CAAC,CAAC,CAAC;4CAEH,QAAQ,CAAC,4BAA4B,EAAE;gDACrC,UAAU,CAAC,KAAK,CAAC,CAAC;gDAClB,UAAU,CAAC,cAAc,CAAC,CAAC;gDAC3B,EAAE,CAAC,uBAAuB,EAAE;oDAC1B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gDAC/C,CAAC,CAAC,CAAC;4CACL,CAAC,CAAC,CAAC;wCACL,CAAC,CAAC,CAAC;oCACL,CAAC,CAAC,CAAC;gCACL,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE;QACnC,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAW,IAAI,CAAA;8BACpB,WAAuB;;;;;;;;;qBAShC,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE;YAC3B,UAAU,CAAC;gBACT,oEAAoE;gBACpE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE;gBAC9B,4CAA4C;gBAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,KAAK,CAAC,CAAC;YAElB,UAAU,CAAC,cAAc,CAAC,CAAC;YAE3B,QAAQ,CAAC,YAAY,EAAE;gBACrB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,yCAAyC,EAAE,KAAK;oBACjD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACzD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,YAAY,EAAE;gBACrB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,SAAS,CAAC,CAAC;gBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,gCAAgC,EAAE,KAAK;oBACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE;YAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;YAElB,UAAU,CAAC,cAAc,CAAC,CAAC;YAE3B,EAAE,CAAC,gCAAgC,EAAE,KAAK;gBACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gBACtC,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC9B,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,MAAM;oBACpB,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,YAAY,EAAE;gBACrB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,+CAA+C,EAAE,KAAK;oBACvD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACzF,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,uBAAuB,EAAE;gBAChC,UAAU,CAAC;oBACT,6CAA6C;oBAC7C,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,gBAAgB,EAAE,KAAK;oBACxB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC9C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,6BAA6B,EAAE;gBACtC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,qDAAqD,EAAE,KAAK;oBAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK;oBACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yCAAyC,EAAE;oBAClD,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAE3B,EAAE,CAAC,yBAAyB,EAAE,KAAK;wBACjC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC9C,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACzD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC3D,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBAC1D,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBAC1D,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACvD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,oBAAoB,EAAE;gBAC7B,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,CAAC,SAAS,CAAC,CAAC;gBACtB,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3B,EAAE,CAAC,SAAS,EAAE,KAAK;oBACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,wBAAwB,EAAE,KAAK;oBAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,8BAA8B,EAAE,KAAK;oBACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,0BAA0B,EAAE,KAAK;wBAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3D,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,qBAAqB,EAAE;wBAC9B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,2BAA2B,EAAE;4BAC9B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACtD,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,6CAA6C,EAAE,KAAK;4BACrD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAC3C,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC5C,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,0BAA0B,EAAE,KAAK;4BAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACzC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAChD,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,QAAQ,EAAE,KAAK;4BAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;wBAClC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE;QACxC,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAW,IAAI,CAAA;;;;;;;;;;;qBAW7B,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE;YAC1B,UAAU,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,cAAc,CAAC,CAAC;YAE3B,EAAE,CAAC,6BAA6B,EAAE,KAAK;gBACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,oBAAoB,EAAE;gBAC7B,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE3B,EAAE,CAAC,SAAS,EAAE;oBACZ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK;oBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtE,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK;oBAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7E,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,YAAY,CAAC,CAAC;oBACzB,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,EAAE,CAAC,QAAQ,EAAE;wBACX,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK;wBAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;oBAC7E,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK;wBACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wBACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBACzC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,yBAAyB,EAAE;wBAClC,UAAU,CAAC,SAAS,CAAC,CAAC;wBACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzB,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,4BAA4B,EAAE,KAAK;4BACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BACzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BAC3C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAChD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,yBAAyB,EAAE;oBAClC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3B,QAAQ,CAAC,qBAAqB,EAAE;wBAC9B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;wBAC3B,EAAE,CAAC,2BAA2B,EAAE;4BAC9B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACtD,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,0BAA0B,EAAE,KAAK;4BAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC1E,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,kBAAkB,EAAE,KAAK;4BAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BACnE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC3B,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,cAAc,EAAE,KAAK;4BACtB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4BACtC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAC/C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC5C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC3C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACpD,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,uBAAuB,EAAE;4BAChC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,cAAc,CAAC,CAAC;4BAC3B,EAAE,CAAC,0BAA0B,EAAE,KAAK;gCAClC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gCACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gCACnE,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gCACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BAC7C,CAAC,CAAC,CAAC;4BACH,QAAQ,CAAC,qBAAqB,EAAE;gCAC9B,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;gCAC3B,EAAE,CAAC,uCAAuC,EAAE;oCAC1C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gCAClE,CAAC,CAAC,CAAC;gCACH,EAAE,CAAC,4DAA4D,EAAE,KAAK;oCACpE,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oCACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;oCACnE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gCACpD,CAAC,CAAC,CAAC;gCACH,EAAE,CAAC,eAAe,EAAE,KAAK;oCACvB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oCACtC,MAAM,CAAC,EAAE,UAAU,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;oCAC7D,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oCAC5C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCAC3C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oCACrD,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oCAC5C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCAC3C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gCACpD,CAAC,CAAC,CAAC;gCACH,QAAQ,CAAC,yBAAyB,EAAE;oCAClC,UAAU,CAAC,SAAS,CAAC,CAAC;oCACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oCACzB,UAAU,CAAC,YAAY,CAAC,CAAC;oCACzB,UAAU,CAAC,cAAc,CAAC,CAAC;oCAC3B,EAAE,CAAC,2BAA2B,EAAE,KAAK;wCACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wCACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wCACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wCACzC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oCAChD,CAAC,CAAC,CAAC;oCACH,QAAQ,CAAC,yBAAyB,EAAE;wCAClC,UAAU,CAAC,SAAS,CAAC,CAAC;wCACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wCACzB,UAAU,CAAC,YAAY,CAAC,CAAC;wCACzB,UAAU,CAAC,cAAc,CAAC,CAAC;wCAC3B,EAAE,CAAC,4BAA4B,EAAE,KAAK;4CACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4CACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wCAC7C,CAAC,CAAC,CAAC;wCACH,QAAQ,CAAC,yBAAyB,EAAE;4CAClC,UAAU,CAAC,SAAS,CAAC,CAAC;4CACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4CACzB,UAAU,CAAC,YAAY,CAAC,CAAC;4CACzB,UAAU,CAAC,cAAc,CAAC,CAAC;4CAC3B,EAAE,CAAC,uCAAuC,EAAE,KAAK;gDAC/C,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;gDACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gDACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gDACzC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gDACxC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4CACjD,CAAC,CAAC,CAAC;4CACH,QAAQ,CAAC,qBAAqB,EAAE;gDAC9B,UAAU,CAAC,cAAc,CAAC,CAAC;gDAC3B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gDACvB,UAAU,CAAC,cAAc,CAAC,CAAC;gDAC3B,UAAU,CAAC,cAAc,CAAC,CAAC;gDAC3B,EAAE,CAAC,yBAAyB,EAAE,KAAK;oDACjC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oDACtC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;oDACxD,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oDAC5C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oDAC3C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oDACrD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gDACnE,CAAC,CAAC,CAAC;gDACH,EAAE,CAAC,oDAAoD,EAAE;oDACvD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gDACzD,CAAC,CAAC,CAAC;gDACH,EAAE,CAAC,sBAAsB,EAAE,KAAK;oDAC9B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;oDACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oDACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gDAC7C,CAAC,CAAC,CAAC;gDACH,QAAQ,CAAC,yBAAyB,EAAE;oDAClC,UAAU,CAAC,SAAS,CAAC,CAAC;oDACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oDACzB,UAAU,CAAC,YAAY,CAAC,CAAC;oDACzB,UAAU,CAAC,cAAc,CAAC,CAAC;oDAC3B,EAAE,CAAC,wBAAwB,EAAE,KAAK;wDAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;wDACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wDACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wDACzC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oDACpD,CAAC,CAAC,CAAC;oDACH,QAAQ,CAAC,qBAAqB,EAAE;wDAC9B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wDACvB,UAAU,CAAC,cAAc,CAAC,CAAC;wDAC3B,EAAE,CAAC,mBAAmB,EAAE,KAAK;4DAC3B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4DACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;iEAC1E,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;wDACvB,CAAC,CAAC,CAAC;wDACH,EAAE,CAAC,6BAA6B,EAAE,KAAK;4DACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;4DACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4DACxD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wDAC7C,CAAC,CAAC,CAAC;oDACL,CAAC,CAAC,CAAC;gDACL,CAAC,CAAC,CAAC;4CACL,CAAC,CAAC,CAAC;wCACL,CAAC,CAAC,CAAC;oCACL,CAAC,CAAC,CAAC;gCACL,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, html, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfSelect } from '../pf-select.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\n\nasync function shiftHold() {\n await sendKeys({ down: 'Shift' });\n}\n\nasync function shiftRelease() {\n await sendKeys({ up: 'Shift' });\n}\n\nasync function ctrlA() {\n await sendKeys({ down: 'Control' });\n await sendKeys({ down: 'a' });\n await sendKeys({ up: 'a' });\n await sendKeys({ up: 'Control' });\n}\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\nfunction getValues(element: PfSelect) {\n return [element.selected].flat().filter(x => !!x).map(x => x!.value);\n}\n\ndescribe('<pf-select>', function() {\n let element: PfSelect;\n\n const updateComplete = () => element.updateComplete;\n\n const focus = () => element.focus();\n\n describe('simply instantiating', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-select')).to.be.an.instanceof(PfSelect);\n });\n\n it('should upgrade', async function() {\n element = await createFixture<PfSelect>(html`<pf-select></pf-select>`);\n const klass = customElements.get('pf-select');\n expect(element)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfSelect);\n });\n });\n\n describe('variant=\"single\"', function() {\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"single\"\n accessible-label=\"Choose a number\"\n placeholder=\"Choose a number\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-select>`);\n });\n\n it('is accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n describe('without accessible label', function() {\n beforeEach(function() {\n element.accessibleLabel = undefined;\n });\n beforeEach(updateComplete);\n it('fails accessibility audit', async function() {\n await expect(element).to.not.be.accessible();\n });\n });\n\n describe('calling focus())', function() {\n beforeEach(function() {\n element.focus();\n });\n\n beforeEach(updateComplete);\n\n describe('pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.ok;\n });\n\n it('focuses on the placeholder', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Choose a number');\n });\n });\n\n describe('pressing Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.ok;\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n it('focuses on the placeholder', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Choose a number');\n });\n });\n\n describe('pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.ok;\n });\n\n it('focuses on option 1', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Choose a number');\n });\n\n describe('then pressing ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses on the last option', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('8');\n });\n describe('then pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses on the placeholder', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Choose a number');\n });\n });\n });\n\n describe('then pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses on option 1', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('1');\n });\n\n describe('then pressing ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses on the placeholder', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Choose a number');\n });\n });\n\n describe('then pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 1', function() {\n expect(getValues(element)).to.deep.equal(['1']);\n });\n });\n });\n\n describe('then pressing Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'listbox')).to.be.undefined;\n });\n\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n expect(focused?.haspopup).to.equal('listbox');\n });\n\n it('does not select anything', async function() {\n // because the placeholder was focused\n expect(getValues(element)).to.deep.equal([]);\n });\n });\n\n describe('then pressing Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.undefined;\n });\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n expect(focused?.haspopup).to.equal('listbox');\n });\n });\n\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.undefined;\n });\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n expect(focused?.haspopup).to.equal('listbox');\n });\n });\n\n describe('then pressing Escape', function() {\n beforeEach(press('Escape'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.undefined;\n });\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n expect(focused?.haspopup).to.equal('listbox');\n });\n });\n });\n });\n });\n\n describe('variant=\"checkbox\"', function() {\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"checkbox\"\n accessible-label=\"Check it out\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-select>`);\n });\n\n it('is accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n describe('calling focus())', function() {\n beforeEach(function() {\n element.focus();\n });\n\n beforeEach(updateComplete);\n describe('pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.ok;\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n it('should NOT use checkbox role for options', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)?.children?.filter(x => x.role === 'checkbox')?.length)\n .to.equal(0);\n });\n });\n\n describe('pressing Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.ok;\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n });\n\n describe('pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.ok;\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n\n it('closes', async function() {\n expect(element.expanded).to.be.false;\n });\n\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.undefined;\n });\n\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(0)?.role).to.equal('combobox');\n expect(snapshot.children?.at(0)?.focused).to.be.true;\n });\n });\n\n describe('then pressing Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n // a little extra sleep to de-flake this test\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.undefined;\n });\n });\n\n describe('then pressing Escape', function() {\n beforeEach(press('Escape'));\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.undefined;\n });\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n });\n });\n\n describe('then pressing Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('selects option 1', function() {\n // because the placeholder was focused\n expect(getValues(element)).to.deep.equal(['1']);\n });\n\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n describe('then pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses option 1', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('2');\n });\n describe('then pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('adds option 2 to selection', function() {\n expect(getValues(element)).to.deep.equal([\n '1',\n '2',\n ]);\n });\n\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n describe('then holding Shift and pressing down arrow / enter twice in a row', function() {\n beforeEach(shiftHold);\n beforeEach(press('ArrowDown'));\n beforeEach(press('Enter'));\n beforeEach(press('ArrowDown'));\n beforeEach(press('Enter'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n\n it('adds options 2 and 3 to the selected list', function() {\n expect(getValues(element)).to.deep.equal([\n '1',\n '2',\n '3',\n '4',\n ]);\n });\n\n describe('then pressing ArrowUp and Enter', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('deselects option 3', function() {\n expect(getValues(element)).to.deep.equal([\n '1',\n '2',\n '4',\n ]);\n });\n\n describe('then holding down Shift and pressing arrow up / enter twice in a row', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n beforeEach(press('ArrowUp'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n\n it('deselects options 1 and 2', function() {\n expect(getValues(element)).to.deep.equal([\n '4',\n ]);\n });\n\n describe('then pressing Ctrl+A', function() {\n beforeEach(ctrlA);\n beforeEach(updateComplete);\n\n it('selects all options', function() {\n expect(getValues(element)).to.deep.equal([\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n ]);\n });\n\n describe('then pressing Ctrl+A again', function() {\n beforeEach(ctrlA);\n beforeEach(updateComplete);\n it('deselects all options', function() {\n expect(getValues(element)).to.deep.equal([]);\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n\n // try again when we implement activedescendant\n describe.skip('variant=\"typeahead\"', function() {\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"${'typeahead' as 'single'}\">\n <pf-option value=\"Blue\">Blue</pf-option>\n <pf-option value=\"Green\">Green</pf-option>\n <pf-option value=\"Magenta\">Magenta</pf-option>\n <pf-option value=\"Orange\">Orange</pf-option>\n <pf-option value=\"Purple\">Purple</pf-option>\n <pf-option value=\"Pink\">Pink</pf-option>\n <pf-option value=\"Red\">Red</pf-option>\n <pf-option value=\"Yellow\">Yellow</pf-option>\n </pf-select>`);\n });\n\n describe('custom filtering', function() {\n beforeEach(function() {\n // @ts-expect-error: we intend to implement this in the next release\n element.customFilter = option =>\n // @ts-expect-error: TODO add filter feature\n new RegExp(element.filter).test(option.value);\n });\n\n beforeEach(focus);\n\n beforeEach(updateComplete);\n\n describe('typing \"r\"', function() {\n beforeEach(press('r'));\n beforeEach(updateComplete);\n it('shows options with \"r\" anywhere in them', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.length).to.equal(3);\n expect(listbox?.children?.at(0)?.name).to.equal('Green');\n expect(listbox?.children?.at(1)?.name).to.equal('Orange');\n expect(listbox?.children?.at(2)?.name).to.equal('Purple');\n });\n });\n\n describe('typing \"R\"', function() {\n beforeEach(press('R'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('shows options that contain \"R\"', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.length).to.equal(1);\n expect(listbox?.children?.at(0)?.name).to.equal('Red');\n });\n });\n });\n\n describe('calling focus()', function() {\n beforeEach(focus);\n\n beforeEach(updateComplete);\n\n it('has a text input for typeahead', async function() {\n const snapshot = await a11ySnapshot();\n const [typeahead] = snapshot.children ?? [];\n expect(typeahead).to.deep.equal({\n role: 'combobox',\n name: 'Options',\n focused: true,\n autocomplete: 'both',\n haspopup: 'listbox',\n });\n });\n\n describe('typing \"r\"', function() {\n beforeEach(press('r'));\n beforeEach(updateComplete);\n\n it('only shows options that start with \"r\" or \"R\"', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.every(x => x.name.toLowerCase().startsWith('r'))).to.be.true;\n });\n });\n\n describe('setting filter to \"*\"', function() {\n beforeEach(function() {\n // @ts-expect-error: todo: add filter feature\n element.filter = '*';\n });\n beforeEach(updateComplete);\n it('does not error', async function() {\n const snapshot = await a11ySnapshot();\n const [, , listbox] = snapshot.children ?? [];\n expect(listbox?.children).to.not.be.ok;\n });\n });\n\n describe('changing input value to \"p\"', function() {\n beforeEach(press('p'));\n beforeEach(updateComplete);\n\n it('only shows listbox items starting with the letter p', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.length).to.equal(2);\n expect(listbox?.children?.at(0)?.name).to.equal('Purple');\n expect(listbox?.children?.at(1)?.name).to.equal('Pink');\n });\n\n it('maintains focus on the input', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n });\n\n describe('pressing Backspace so input value is \"\"', function() {\n beforeEach(press('Backspace'));\n beforeEach(updateComplete);\n\n it('all options are visible', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.length).to.equal(8);\n expect(listbox?.children?.at(0)?.name).to.equal('Blue');\n expect(listbox?.children?.at(1)?.name).to.equal('Green');\n expect(listbox?.children?.at(2)?.name).to.equal('Magenta');\n expect(listbox?.children?.at(3)?.name).to.equal('Orange');\n expect(listbox?.children?.at(4)?.name).to.equal('Purple');\n expect(listbox?.children?.at(5)?.name).to.equal('Pink');\n expect(listbox?.children?.at(6)?.name).to.equal('Red');\n expect(listbox?.children?.at(7)?.name).to.equal('Yellow');\n });\n });\n });\n\n describe('pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('expands', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.ok;\n });\n it('selects the first item', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused).to.not.be.ok;\n const selected = listbox?.children?.find(x => x.selected);\n expect(selected).to.be.ok;\n expect(listbox?.children?.at(0)).to.equal(selected);\n });\n it('does not move keyboard focus', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused).to.not.be.ok;\n });\n describe('then pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses the first option', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused).to.be.ok;\n expect(listbox?.children?.indexOf(focused!)).to.equal(0);\n });\n describe('then pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('selects the second option', function() {\n expect(getValues(element)).to.deep.equal(['Green']);\n });\n it('sets typeahead input to second option value', async function() {\n const snapshot = await a11ySnapshot();\n const [combobox] = snapshot.children ?? [];\n expect(combobox?.value).to.equal('Green');\n });\n it('focuses on toggle button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('button');\n expect(focused?.haspopup).to.equal('listbox');\n });\n it('closes', async function() {\n expect(element.expanded).to.be.false;\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.undefined;\n });\n });\n });\n });\n });\n });\n\n // try again when we implement activedescendant\n describe.skip('variant=\"typeaheadmulti\"', function() {\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"typeaheadmulti\">\n <pf-option value=\"Amethyst\">Amethyst</pf-option>\n <pf-option value=\"Beryl\">Beryl</pf-option>\n <pf-option value=\"Chalcedony\">Chalcedony</pf-option>\n <pf-option value=\"Diamond\">Diamond</pf-option>\n <pf-option value=\"Emerald\">Emerald</pf-option>\n <pf-option value=\"Fool's Gold\">Fool's Gold</pf-option>\n <pf-option value=\"Garnet\">Garnet</pf-option>\n <pf-option value=\"Halite\">Halite</pf-option>\n <pf-option value=\"Iris\">Iris</pf-option>\n </pf-select>`);\n });\n\n describe('calling focus()', function() {\n beforeEach(function() {\n element.focus();\n });\n beforeEach(updateComplete);\n\n it('focuses the typeahead input', async function() {\n const snapshot = await a11ySnapshot();\n const [input] = snapshot.children ?? [];\n expect(input.focused).to.be.true;\n expect(input.role).to.equal('combobox');\n });\n\n describe('pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('expands', function() {\n expect(element.expanded).to.be.true;\n });\n\n it('shows the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'listbox')).to.be.ok;\n });\n\n it('focuses the first option', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.find(x => x.focused)?.name).to.equal('Amethyst');\n });\n\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'listbox')).to.be.undefined;\n });\n\n it('focuses the toggle button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot?.children?.find(x => x.focused);\n expect(focused?.role).to.equal('button');\n expect(focused?.haspopup).to.equal('listbox');\n });\n\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('focuses the combobox input', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot?.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n expect(focused?.haspopup).to.equal('listbox');\n });\n });\n });\n\n describe('then pressing ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n describe('then pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('selects the second option', function() {\n expect(getValues(element)).to.deep.equal(['Beryl']);\n });\n it('focuses on second option', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox?.children?.find(x => x.focused)?.name).to.equal('Beryl');\n });\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.ok;\n });\n it('shows 1 chip', async function() {\n const snapshot = await a11ySnapshot();\n const [, chip1close] = snapshot.children ?? [];\n expect(chip1close?.role).to.equal('button');\n expect(chip1close?.name).to.equal('Close');\n expect(chip1close?.description).to.equal('Beryl');\n });\n describe('then pressing ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses the first option', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n const focused = listbox?.children?.find(x => x.focused);\n expect(focused?.name).to.equal('Amethyst');\n });\n describe('then pressing Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('adds second option to selected values', function() {\n expect(getValues(element)).to.deep.equal(['Amethyst', 'Beryl']);\n });\n it('accessible combo button label should be \"2 items selected\"', async function() {\n const snapshot = await a11ySnapshot();\n const button = snapshot.children?.find(x => x.role === 'combobox');\n expect(button?.name).to.equal('2 items selected');\n });\n it('shows 2 chips', async function() {\n const snapshot = await a11ySnapshot();\n const [, chip1close, , chip2close] = snapshot.children ?? [];\n expect(chip1close?.role).to.equal('button');\n expect(chip1close?.name).to.equal('Close');\n expect(chip1close?.description).to.equal('Amethyst');\n expect(chip2close?.role).to.equal('button');\n expect(chip2close?.name).to.equal('Close');\n expect(chip2close?.description).to.equal('Beryl');\n });\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('focuses the toggle button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('button');\n expect(focused?.haspopup).to.equal('listbox');\n });\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('focuses the combobox input', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n });\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('focuses the last chip\\'s close button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('button');\n expect(focused?.name).to.equal('Close');\n expect(focused?.description).to.equal('Beryl');\n });\n describe('then pressing Space', function() {\n beforeEach(updateComplete);\n beforeEach(press(' '));\n beforeEach(updateComplete);\n beforeEach(updateComplete);\n it('removes the second chip', async function() {\n const snapshot = await a11ySnapshot();\n const [, chip1close, ...rest] = snapshot.children ?? [];\n expect(chip1close?.role).to.equal('button');\n expect(chip1close?.name).to.equal('Close');\n expect(chip1close?.description).to.equal('Amethyst');\n expect(rest.filter(x => 'description' in x)?.length).to.equal(0);\n });\n it('removes the second option from the selected values', function() {\n expect(getValues(element)).to.deep.equal(['Amethyst']);\n });\n it('focuses the combobox', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n });\n describe('then pressing Shift+Tab', function() {\n beforeEach(shiftHold);\n beforeEach(press('Tab'));\n beforeEach(shiftRelease);\n beforeEach(updateComplete);\n it('focuses the first chip', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('button');\n expect(focused?.description).to.equal('Amethyst');\n });\n describe('then pressing Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('removes all chips', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'button' && x.name === 'Close'))\n .to.be.undefined;\n });\n it('focuses the typeahead input', async function() {\n const snapshot = await a11ySnapshot();\n const focused = snapshot.children?.find(x => x.focused);\n expect(focused?.role).to.equal('combobox');\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"pf-select.spec.js","sourceRoot":"","sources":["pf-select.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html, aTimeout, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfSelect } from '../pf-select.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { a11ySnapshot, querySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\nimport { clickElementAtCenter, clickElementAtOffset } from '@patternfly/pfe-tools/test/utils.js';\nimport type { PfOption } from '../pf-option.js';\n\nasync function holdShift() {\n await sendKeys({ down: 'Shift' });\n}\n\nasync function releaseShift() {\n await sendKeys({ up: 'Shift' });\n}\n\nasync function holdCtrl() {\n await sendKeys({ down: 'Control' });\n}\n\nasync function releaseCtrl() {\n await sendKeys({ up: 'Control' });\n}\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\n/**\n * Compare selection to an array of strings\n * @param element pf-select\n * @returns a list of values of each selected option\n */\nfunction getSelectedOptionValues(element: PfSelect): string[] {\n return Array.from(element.querySelectorAll<PfOption>('[selected]'), x => x.value);\n}\n\n// a11yShapshot does not surface the options\nfunction getVisibleOptionValues(element: PfSelect): string[] {\n return element.options.filter(x => !x.hidden).map(x => x.value);\n}\n\n// a11yShapshot does not surface the options\nfunction getActiveOption(element: PfSelect) {\n return element.options.find(x => x.active);\n}\n\n/**\n * NOTE because of the copy-to-shadow-root shtick in ActivedescendantController,\n * we can't just pick an option (from light dom);\n * @param element pf-select\n * @param index item index\n */\nasync function clickItemAtIndex(element: PfSelect, index: number) {\n const itemHeight = 44;\n await clickElementAtOffset(element, [\n 10,\n element.offsetHeight + (itemHeight * (index + 1)) - itemHeight / 2,\n ], {\n allowOutOfBounds: true,\n });\n}\n\ndescribe('<pf-select>', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-select')).to.be.an.instanceof(PfSelect);\n });\n\n it('should upgrade', async function() {\n expect(await createFixture<PfSelect>(html`<pf-select></pf-select>`))\n .to.be.an.instanceOf(customElements.get('pf-select'))\n .and\n .to.be.an.instanceOf(PfSelect);\n });\n\n describe('with accessible-label attribute and 3 items', function() {\n let element: PfSelect;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus;\n\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select accessible-label=\"label\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-select>`);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('labels the combobox with the accessible-label attribuet', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'label',\n });\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('sets aria-setsize=\"3\" and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '3');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n\n it('labels the listbox with the accessible-label attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label',\n });\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n ]);\n });\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '1',\n });\n });\n });\n });\n });\n });\n\n describe('with `placeholder` attribute and 3 items', function() {\n let element: PfSelect;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus;\n\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select placeholder=\"placeholder\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-select>`);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('labels the combobox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'placeholder',\n });\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('sets aria-setsize=\"4\" and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '4');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n\n it('labels the listbox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'placeholder',\n });\n });\n\n it('focuses on the placeholder item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('placeholder');\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('selects nothing', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('does not close the listbox nothing', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([]);\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n ]);\n });\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '1',\n });\n });\n });\n });\n });\n });\n });\n });\n\n describe('with 3 items and associated <label> elements', function() {\n let element: PfSelect;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus;\n\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select id=\"select\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-select>\n <label for=\"select\">label1</label>\n <label for=\"select\">label2</label>\n `);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox with the label elements', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'label1label2',\n });\n });\n\n it('sets aria-setsize=\"3\" and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '3');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n\n it('labels the listbox with the label elements', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label1label2',\n });\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n ]);\n });\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '1',\n });\n });\n });\n });\n });\n });\n\n describe('in a deep shadow root', function() {\n let element: PfSelect;\n const focus = () => element.focus();\n const updateComplete = () => element.updateComplete;\n beforeEach(async function() {\n const fixture = await createFixture(html`\n <shadow-root>\n <template shadowrootmode=\"open\">\n <shadow-root>\n <template shadowrootmode=\"open\">\n <pf-select variant=\"single\"\n accessible-label=\"Choose a number\"\n placeholder=\"Choose a number\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-select>\n </template>\n </shadow-root>\n </template>\n </shadow-root>`);\n\n function attachShadowRoots(root?: Document | ShadowRoot) {\n root?.querySelectorAll<HTMLTemplateElement>('template[shadowrootmode]').forEach(template => {\n const mode = template.getAttribute('shadowrootmode') as 'open' | 'closed';\n const shadowRoot = template.parentElement?.attachShadow?.({ mode });\n shadowRoot?.appendChild(template.content);\n template.remove();\n attachShadowRoots(shadowRoot);\n });\n }\n attachShadowRoots(document);\n\n const select = fixture.shadowRoot?.firstElementChild?.shadowRoot?.querySelector('pf-select');\n if (select) {\n element = select;\n await element?.updateComplete;\n } else {\n throw new Error('no element!');\n }\n });\n\n describe('expanding', function() {\n beforeEach(focus);\n beforeEach(press('Enter'));\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('remains expanded', function() {\n expect(element.expanded).to.be.true;\n });\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('remains expanded', function() {\n expect(element.expanded).to.be.true;\n });\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('sets value', function() {\n expect(element.value).to.equal('2');\n });\n });\n });\n });\n });\n });\n\n describe('with 8 items', function() {\n let element: PfSelect;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select>\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-select>`);\n });\n\n it('does not pass aXe audit', async function() {\n await expect(element).to.not.be.accessible();\n });\n\n it('sets aria-setsize and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '8');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('click combobox button', function() {\n beforeEach(() => clickElementAtCenter(element));\n beforeEach(updateComplete);\n\n it('does not pass aXe audit', async function() {\n await expect(element).to.not.be.accessible();\n });\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('does not focus the combobox button', async function() {\n expect(await a11ySnapshot()).to.not.have.axTreeFocusedNode;\n });\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n\n it('focuses on the combobox button', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n it('does not expand the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n });\n\n describe('Space', function() {\n beforeEach(function() {\n document.body.style.height = '8000px';\n });\n afterEach(function() {\n document.body.style.height = 'initial';\n });\n\n beforeEach(press(' '));\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(300));\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n it('does not scroll the screen', function() {\n expect(window.scrollY).to.equal(0);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on option 1', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on option 8', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('8');\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses on the first item', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses on the last option', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('8');\n });\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses on option 1', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses on option 2', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('2');\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses on option 1', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses on option 3', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('3');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 3', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '3',\n ]);\n });\n\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '3',\n });\n });\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n beforeEach(updateComplete);\n\n it('focuses on option 1', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n beforeEach(updateComplete);\n\n it('focuses on option 1', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axName('1');\n });\n });\n });\n });\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 2', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal(['2']);\n });\n\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '2',\n });\n });\n });\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the combobox toggle', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n ]);\n });\n\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '1',\n });\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n it('does not focus on the combobox button', async function() {\n expect(await a11ySnapshot()).to.not.have.axTreeFocusedNode;\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the button', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n\n describe('Escape', function() {\n beforeEach(press('Escape'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the button', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n });\n });\n });\n});\n\ndescribe('<pf-select variant=\"checkbox\">', function() {\n let element: PfSelect;\n let items: PfOption[];\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"checkbox\"\n placeholder=\"placeholder\"\n accessible-label=\"Check it out\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-select>`);\n items = Array.from(element.querySelectorAll('pf-option'));\n });\n\n it('is accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n\n beforeEach(updateComplete);\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.ok;\n expect(snapshot.children?.at(1)?.role).to.equal('listbox');\n });\n\n it('should NOT use checkbox role for options', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)?.children?.filter(x => x.role === 'checkbox')?.length)\n .to.equal(0);\n });\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses the placeholder', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusedNode.to.have.axName('placeholder');\n });\n\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the button', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n // a little extra sleep to de-flake this test\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n const listbox = snapshot.children?.find(x => x.role === 'listbox');\n expect(listbox).to.be.undefined;\n });\n });\n\n describe('Escape', function() {\n beforeEach(press('Escape'));\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n it('hides the listbox', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(1)).to.be.undefined;\n });\n it('focuses the button', async function() {\n const snapshot = await a11ySnapshot();\n const focused = querySnapshot(snapshot, { focused: true });\n expect(focused?.role).to.equal('combobox');\n });\n });\n\n describe('Ctrl-A', function() {\n beforeEach(holdCtrl);\n beforeEach(press('A'));\n beforeEach(releaseCtrl);\n beforeEach(updateComplete);\n it('selects all', function() {\n expect(element.selected.length).to.equal(items.length);\n });\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('Ctrl-A', function() {\n beforeEach(holdCtrl);\n beforeEach(press('A'));\n beforeEach(releaseCtrl);\n beforeEach(updateComplete);\n it('deselects all', function() {\n expect(element.selected.length).to.equal(0);\n });\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n });\n });\n\n describe('Space', function() {\n it('does not select anything', function() {\n expect(element.selected).to.deep.equal([]);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('selects option 1', function() {\n // because the placeholder was focused\n expect(getSelectedOptionValues(element)).to.deep.equal(['1']);\n });\n\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses option 2', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot).to.have.axQuery({\n focused: true,\n name: '2',\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('adds option 2 to selection', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n ]);\n });\n\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n });\n });\n\n describe('holding Shift', function() {\n beforeEach(holdShift);\n afterEach(releaseShift);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(nextFrame);\n it('adds option 2 to selection', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n ]);\n });\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('makes no change', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n ]);\n });\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('adds option 3 to the selected list', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n '3',\n ]);\n });\n describe('ArrowUp', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('makes no change to selection', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n '3',\n ]);\n });\n });\n });\n });\n });\n });\n });\n });\n\n describe('clicking the first item', function() {\n beforeEach(() => clickElementAtCenter(items.at(0)!));\n beforeEach(updateComplete);\n\n it('selects option 1', function() {\n // because the placeholder was focused\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n ]);\n });\n\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('holding Shift', function() {\n beforeEach(holdShift);\n afterEach(releaseShift);\n describe('clicking the 7th item', function() {\n beforeEach(() => clickElementAtCenter(items.at(6)!));\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('selects items 1-7', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n ]);\n });\n\n describe('releasing Shift', function() {\n beforeEach(releaseShift);\n describe('clicking 6th item', function() {\n beforeEach(() => clickElementAtCenter(items.at(5)!));\n it('deselects item 6', function() {\n expect(getSelectedOptionValues(element)).to.not.contain('6');\n });\n describe('holding Shift', function() {\n beforeEach(holdShift);\n describe('clicking 2nd item', function() {\n beforeEach(() => clickElementAtCenter(items.at(1)!));\n it('deselects items 2-6', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal(['1', '7']);\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n});\n\ndescribe('<pf-select variant=\"typeahead\">', function() {\n let element: PfSelect;\n const label = 'label';\n const placeholder = 'placeholder';\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"typeahead\">\n <pf-option>Blue</pf-option>\n <pf-option>Green</pf-option>\n <pf-option>Magenta</pf-option>\n <pf-option>Orange</pf-option>\n <pf-option>Purple</pf-option>\n <pf-option>Periwinkle</pf-option>\n <pf-option>Pink</pf-option>\n <pf-option>Red</pf-option>\n <pf-option>Yellow</pf-option>\n </pf-select>`);\n });\n\n beforeEach(nextFrame);\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox input with the first option', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'Blue',\n });\n });\n\n describe('with an `accessible-label` attribute', function() {\n beforeEach(function() {\n element.setAttribute('accessible-label', label);\n });\n beforeEach(nextFrame);\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox with the label', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: label,\n });\n });\n\n it('labels the toggle button with the label', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'button',\n name: label,\n });\n });\n\n describe('show()', function() {\n beforeEach(() => element.show());\n it('labels the listbox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label',\n });\n });\n });\n });\n\n describe('with a `placeholder` attribute', function() {\n beforeEach(function() {\n element.setAttribute('placeholder', placeholder);\n });\n beforeEach(nextFrame);\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('lists the placeholder as first among the options', function() {\n expect(element.options.at(0)).to.have.text(placeholder);\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox with the placeholder', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: placeholder,\n });\n });\n\n it('labels the toggle button with the placeholder', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'button',\n name: placeholder,\n });\n });\n\n describe('show()', function() {\n beforeEach(() => element.show());\n it('labels the listbox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'placeholder',\n });\n });\n });\n });\n\n describe('clicking the toggle button', function() {\n beforeEach(async function() {\n await clickElementAtOffset(element, [-10, -10]);\n });\n\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses the toggle button', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainQuery({\n focused: true,\n role: 'button',\n });\n });\n });\n\n describe('clicking the combobox input', function() {\n beforeEach(async function() {\n await clickElementAtOffset(element, [10, 10]);\n });\n\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses the combobox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainQuery({\n focused: true,\n role: 'combobox',\n });\n });\n\n describe('clicking option 1', function() {\n beforeEach(async function() {\n await clickItemAtIndex(element, 0);\n });\n\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Blue',\n ]);\n });\n\n it('closes the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n\n describe('clicking option 2', function() {\n beforeEach(async function() {\n await clickItemAtIndex(element, 1);\n });\n\n it('selects option 1', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Green',\n ]);\n });\n\n it('closes the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n\n it('focuses the combobox input', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode\n .to.have.axRole('combobox')\n .and\n .to.have.axName('Blue');\n });\n\n describe('\"r\"', function() {\n beforeEach(press('r'));\n beforeEach(updateComplete);\n\n it('only shows options that start with \"r\" or \"R\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Red',\n ]);\n });\n });\n\n describe('Space', function() {\n beforeEach(function() {\n document.body.style.height = '8000px';\n });\n afterEach(function() {\n document.body.style.height = 'initial';\n });\n\n beforeEach(press(' '));\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(300));\n\n it('does not expand the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('does not scroll the screen', function() {\n expect(window.scrollY).to.equal(0);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(200));\n\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses option 1', function() {\n expect(getActiveOption(element)).to.have.value('Blue');\n });\n\n it('does not move keyboard focus', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses option 2', function() {\n expect(getActiveOption(element)).to.have.text('Green');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 2', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Green',\n ]);\n });\n\n it('sets typeahead input to second option value', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axProperty('value', 'Green');\n });\n\n it('retains focus on combobox input', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n it('hides the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses option 2', function() {\n expect(getActiveOption(element)).to.have.text('Green');\n });\n\n it('only shows option 2', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Green',\n ]);\n });\n });\n });\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n\n it('focuses the last item', async function() {\n expect(getActiveOption(element)).to.have.value('Yellow');\n });\n });\n });\n\n describe('\"p\"', function() {\n beforeEach(press('p'));\n beforeEach(updateComplete);\n\n it('shows the listbox and maintains focus', async function() {\n expect(await a11ySnapshot())\n .to.axContainRole('listbox')\n .and.axTreeFocusedNode\n .to.have.axRole('combobox')\n .and.to.have.axProperty('value', 'p');\n });\n\n it('only shows listbox items starting with the letter p', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n 'Periwinkle',\n 'Pink',\n ]);\n });\n\n describe('Backspace', function() {\n beforeEach(press('Backspace'));\n beforeEach(updateComplete);\n\n it('shows the listbox and maintains focus', async function() {\n expect(await a11ySnapshot())\n .to.axContainRole('listbox')\n .and.axTreeFocusedNode\n .to.have.axRole('combobox')\n .and.to.not.have.axProperty('value', 'p');\n });\n\n it('all options are visible', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Blue',\n 'Green',\n 'Magenta',\n 'Orange',\n 'Purple',\n 'Periwinkle',\n 'Pink',\n 'Red',\n 'Yellow',\n ]);\n });\n });\n\n describe('\"u\"', function() {\n beforeEach(press('u'));\n beforeEach(updateComplete);\n\n it('only shows the option \"Purple\"', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n ]);\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects the option \"Purple\"', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Purple',\n ]);\n });\n\n describe('Backspace (x5)', function() {\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n\n it('shows the options starting with \"P\"', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n 'Periwinkle',\n 'Pink',\n ]);\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n\n it('retains focus on the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n it('moves cursor to start', function() {\n // WARNING: ties test to DOM structure\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.selectionStart).to.equal(0);\n });\n });\n describe('End', function() {\n beforeEach(press('End'));\n\n it('retains focus on the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n it('moves cursor to start', function() {\n // WARNING: ties test to DOM structure\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.selectionStart).to.equal(1);\n });\n });\n });\n });\n });\n });\n });\n });\n\n describe.skip('setting filter to \"*\"', function() {\n beforeEach(function() {\n // @ts-expect-error: todo: add filter feature\n element.filter = '*';\n });\n beforeEach(updateComplete);\n it('does not error', async function() {\n const snapshot = await a11ySnapshot();\n const [, , listbox] = snapshot.children ?? [];\n expect(listbox?.children).to.not.be.ok;\n });\n });\n\n describe.skip('custom filtering', function() {\n beforeEach(function() {\n // @ts-expect-error: we intend to implement this in the next release\n element.customFilter = option =>\n // @ts-expect-error: TODO add filter feature\n new RegExp(element.filter).test(option.value);\n });\n\n beforeEach(focus);\n\n beforeEach(updateComplete);\n\n describe('r', function() {\n beforeEach(press('r'));\n beforeEach(updateComplete);\n it('shows options that contain \"r\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Green',\n 'Orange',\n 'Purple',\n ]);\n });\n });\n\n describe('typing \"R\"', function() {\n beforeEach(press('R'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('shows options that start with \"r\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Red',\n ]);\n });\n });\n });\n});\n\ndescribe('<label for=\"select\"><pf-select variant=\"typeahead\">', function() {\n let element: PfSelect;\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"typeahead\" id=\"select\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-select>\n <label for=\"select\">label1</label>\n <label for=\"select\">label2</label>\n `);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('labels the combobox with the label elements', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'label1label2',\n });\n });\n describe('show()', function() {\n beforeEach(() => element.show());\n it('labels the listbox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label1label2',\n });\n });\n });\n});\n\n// try again when we implement activedescendant\ndescribe.skip('<pf-select variant=\"typeaheadmulti\">', function() {\n let element: PfSelect;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n beforeEach(async function() {\n element = await createFixture<PfSelect>(html`\n <pf-select variant=\"typeaheadmulti\">\n <pf-option value=\"Amethyst\">Amethyst</pf-option>\n <pf-option value=\"Beryl\">Beryl</pf-option>\n <pf-option value=\"Chalcedony\">Chalcedony</pf-option>\n <pf-option value=\"Diamond\">Diamond</pf-option>\n <pf-option value=\"Emerald\">Emerald</pf-option>\n <pf-option value=\"Fool's Gold\">Fool's Gold</pf-option>\n <pf-option value=\"Garnet\">Garnet</pf-option>\n <pf-option value=\"Halite\">Halite</pf-option>\n <pf-option value=\"Iris\">Iris</pf-option>\n </pf-select>`);\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n\n it('focuses the typeahead input', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses the first option', async function() {\n expect(getActiveOption(element)).to.have.property('value', 'Amethyst');\n });\n\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('closes', function() {\n expect(element.expanded).to.be.false;\n });\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the toggle button', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('focuses the combobox input', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('selects the second option', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal(['Beryl']);\n });\n it('focuses on second option', async function() {\n expect(getActiveOption(element)).to.have.property('value', 'Beryl');\n });\n it('remains expanded', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n it('shows 1 chip', async function() {\n expect(await a11ySnapshot())\n .to.axContainQuery({\n role: 'button',\n name: 'Close',\n description: 'Beryl',\n });\n });\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses the first option', async function() {\n expect(getActiveOption(element)).to.equal('Amethyst');\n expect(await a11ySnapshot())\n .axTreeFocusedNode.to.have.axName('Amethyst');\n });\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('adds second option to selected values', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Amethyst',\n 'Beryl',\n ]);\n });\n it('accessible combo button label should be \"2 items selected\"', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox')\n .and\n .to.have.axName('2 items selected');\n });\n it('shows 2 chips', async function() {\n expect(await a11ySnapshot())\n .to.axContainQuery({ role: 'button', name: 'Close', description: 'Amethyst' })\n .and\n .to.axContainQuery({ role: 'button', name: 'Close', description: 'Beryl' });\n });\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('focuses the combobox input', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('focuses the combobox input', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('focuses the last chip\\'s close button', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('button')\n .and\n .to.have.axName('Close')\n .and\n .to.have.axDescription('Beryl');\n });\n describe('Space', function() {\n beforeEach(updateComplete);\n beforeEach(press(' '));\n beforeEach(updateComplete);\n beforeEach(updateComplete);\n it('removes the second chip', async function() {\n expect(await a11ySnapshot()).to.not.have.axDescription('Beryl');\n });\n it('removes the second option from the selected values', function() {\n expect(getSelectedOptionValues(element)).to.deep.equal([\n 'Amethyst',\n ]);\n });\n it('focuses the combobox', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n describe('Shift+Tab', function() {\n beforeEach(holdShift);\n beforeEach(press('Tab'));\n beforeEach(releaseShift);\n beforeEach(updateComplete);\n it('focuses the first chip', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox')\n .and\n .to.have.axDescription('Amethyst');\n });\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(updateComplete);\n it('removes all chips', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('button');\n });\n it('focuses the combobox', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n });\n});\n"]}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
display:
|
|
1
|
+
:host {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
width: min-content;
|
|
4
|
+
min-height: 0;
|
|
5
|
+
aspect-ratio: 1 / 1;
|
|
3
6
|
}
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
display:
|
|
8
|
+
[hidden] {
|
|
9
|
+
display: none !important;
|
|
7
10
|
}
|
|
8
11
|
|
|
9
12
|
svg {
|
|
13
|
+
overflow: hidden;
|
|
10
14
|
width: var(--pf-c-spinner--Width,
|
|
11
15
|
var(--pf-c-spinner--diameter,
|
|
12
16
|
var(--pf-global--icon--FontSize--xl, 3.375rem)));
|
|
@@ -19,35 +23,41 @@ svg {
|
|
|
19
23
|
var(--pf-c-spinner--AnimationTimingFunction, linear) infinite;
|
|
20
24
|
}
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
circle {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
transform-origin: 50% 50%;
|
|
30
|
+
stroke-linecap: round;
|
|
31
|
+
stroke-dasharray: 283;
|
|
32
|
+
stroke-dashoffset: 280;
|
|
33
|
+
stroke: var(--pf-c-spinner--Color, var(--pf-global--primary-color--100, #06c));
|
|
34
|
+
stroke-width: var(--pf-c-spinner--stroke-width, 10);
|
|
35
|
+
animation:
|
|
36
|
+
pf-c-spinner-animation-dash
|
|
37
|
+
var(--pf-c-spinner--AnimationDuration, 1.4s)
|
|
38
|
+
var(--pf-c-spinner__path--AnimationTimingFunction, ease-in-out) infinite;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:host([size="sm"]) svg {
|
|
23
42
|
--pf-c-spinner--diameter: var(--pf-c-spinner--m-sm--diameter,
|
|
24
43
|
var(--pf-global--icon--FontSize--sm, 0.625rem));
|
|
25
44
|
}
|
|
26
45
|
|
|
27
|
-
:host([size="md"])
|
|
46
|
+
:host([size="md"]) svg {
|
|
28
47
|
--pf-c-spinner--diameter: var(--pf-c-spinner--m-md--diameter,
|
|
29
48
|
var(--pf-global--icon--FontSize--md, 1.125rem));
|
|
30
49
|
}
|
|
31
50
|
|
|
32
|
-
:host([size="lg"])
|
|
51
|
+
:host([size="lg"]) svg {
|
|
33
52
|
--pf-c-spinner--diameter: var(--pf-c-spinner--m-lg--diameter,
|
|
34
53
|
var(--pf-global--icon--FontSize--lg, 1.5rem));
|
|
35
54
|
}
|
|
36
55
|
|
|
37
|
-
:host([size="xl"])
|
|
56
|
+
:host([size="xl"]) svg {
|
|
38
57
|
--pf-c-spinner--diameter: var(--pf-c-spinner--m-xl--diameter,
|
|
39
58
|
var(--pf-global--icon--FontSize--xl, 3.375rem));
|
|
40
59
|
}
|
|
41
60
|
|
|
42
|
-
circle {
|
|
43
|
-
stroke: var(--pf-c-spinner--Color, var(--pf-global--primary-color--100, #06c));
|
|
44
|
-
stroke-width: var(--pf-c-spinner--stroke-width, 10);
|
|
45
|
-
animation:
|
|
46
|
-
pf-c-spinner-animation-dash
|
|
47
|
-
var(--pf-c-spinner--AnimationDuration, 1.4s)
|
|
48
|
-
var(--pf-c-spinner__path--AnimationTimingFunction, ease-in-out) infinite;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
61
|
@keyframes pf-c-spinner-animation-rotate {
|
|
52
62
|
0% {
|
|
53
63
|
transform: rotate(0deg);
|
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
/**
|
|
3
3
|
* A **spinner** is used to indicate to users that an action is in progress. For actions
|
|
4
4
|
* that may take a long time, use a progress bar instead.
|
|
5
|
-
* @cssprop {<length>} --pf-c-spinner--diameter
|
|
6
|
-
* @cssprop {<length>} --pf-c-spinner--Width
|
|
7
|
-
* @cssprop {<length>} --pf-c-spinner--Height
|
|
8
|
-
* @cssprop {<color>} --pf-c-spinner--Color
|
|
9
|
-
* @cssprop {<length>} --pf-c-spinner--m-sm--diameter
|
|
10
|
-
* @cssprop {<length>} --pf-c-spinner--m-md--diameter
|
|
11
|
-
* @cssprop {<length>} --pf-c-spinner--m-lg--diameter
|
|
12
|
-
* @cssprop {<length>} --pf-c-spinner--m-xl--diameter
|
|
13
|
-
* @cssprop {<time>} --pf-c-spinner--AnimationDuration
|
|
14
|
-
* @cssprop {<string>} --pf-c-spinner--AnimationTimingFunction
|
|
15
|
-
* @cssprop {<number>} --pf-c-spinner--stroke-width
|
|
16
|
-
* @cssprop {<color>} --pf-c-spinner__path--Stroke
|
|
17
|
-
* @cssprop {<number>} --pf-c-spinner__path--StrokeWidth
|
|
18
|
-
* @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction
|
|
5
|
+
* @cssprop {<length>} [--pf-c-spinner--diameter=3.375rem]
|
|
6
|
+
* @cssprop {<length>} [--pf-c-spinner--Width=3.375rem]
|
|
7
|
+
* @cssprop {<length>} [--pf-c-spinner--Height=3.375rem]
|
|
8
|
+
* @cssprop {<color>} [--pf-c-spinner--Color=#06c]
|
|
9
|
+
* @cssprop {<length>} [--pf-c-spinner--m-sm--diameter=0.625rem]
|
|
10
|
+
* @cssprop {<length>} [--pf-c-spinner--m-md--diameter=1.125rem]
|
|
11
|
+
* @cssprop {<length>} [--pf-c-spinner--m-lg--diameter=1.5rem]
|
|
12
|
+
* @cssprop {<length>} [--pf-c-spinner--m-xl--diameter=3.375rem]
|
|
13
|
+
* @cssprop {<time>} [--pf-c-spinner--AnimationDuration=1.4s]
|
|
14
|
+
* @cssprop {<string>} [--pf-c-spinner--AnimationTimingFunction=linear]
|
|
15
|
+
* @cssprop {<number>} [--pf-c-spinner--stroke-width=10]
|
|
16
|
+
* @cssprop {<color>} [--pf-c-spinner__path--Stroke=#06c]
|
|
17
|
+
* @cssprop {<number>} [--pf-c-spinner__path--StrokeWidth=10]
|
|
18
|
+
* @cssprop {<string>} [--pf-c-spinner__path--AnimationTimingFunction=ease-in-out]
|
|
19
19
|
*/
|
|
20
|
-
export declare class PfSpinner extends
|
|
20
|
+
export declare class PfSpinner extends LitElement {
|
|
21
21
|
#private;
|
|
22
22
|
static readonly styles: CSSStyleSheet[];
|
|
23
|
-
|
|
23
|
+
/** Preset sizes for the spinner */
|
|
24
|
+
size: 'sm' | 'md' | 'lg' | 'xl';
|
|
25
|
+
/** Custom diameter of spinner set as CSS variable */
|
|
26
|
+
diameter?: `${string}${'px' | '%' | 'rem' | 'em' | 'fr' | 'pt'}`;
|
|
27
|
+
render(): TemplateResult<1>;
|
|
24
28
|
}
|
|
25
29
|
declare global {
|
|
26
30
|
interface HTMLElementTagNameMap {
|