q2-tecton-elements 1.53.0 → 1.54.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/dist/bundle-report.json +43422 -0
- package/dist/cjs/{action-sheet-d32c41ae.js → action-sheet-8254c0fd.js} +6 -3
- package/dist/cjs/action-sheet-8254c0fd.js.map +1 -0
- package/dist/cjs/click-elsewhere.cjs.entry.js +96 -0
- package/dist/cjs/click-elsewhere.cjs.entry.js.map +1 -0
- package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
- package/dist/cjs/index-76f63767.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +38 -17
- package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +52 -18
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +17 -16
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +48 -99
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +4 -4
- package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +3 -2
- package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +355 -21
- package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-option.cjs.entry.js +18 -4
- package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +8 -7
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +10 -8
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js +7 -4
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/components/q2-action-group/q2-action-group.css +25 -8
- package/dist/collection/components/q2-action-group/q2-action-group.js +55 -33
- package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +142 -6
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +126 -62
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js +1 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.css +5 -0
- package/dist/collection/components/q2-btn/q2-btn.css +103 -3
- package/dist/collection/components/q2-btn/q2-btn.js +50 -16
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +101 -4
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +83 -103
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +188 -24
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +54 -16
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.css +29 -10
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +3 -3
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +34 -0
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.js +26 -7
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
- package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
- package/dist/collection/components/q2-loading/q2-loading.js +1 -1
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.css +9 -3
- package/dist/collection/components/q2-option/q2-option.js +37 -4
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
- package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pill/q2-pill.js +6 -5
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +9 -7
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +5 -2
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/utils/action-sheet.js +5 -2
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/helpers.js +29 -3
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
- package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
- package/dist/components/action-sheet.js +6 -3
- package/dist/components/action-sheet.js.map +1 -1
- package/dist/components/index2.js +1 -20
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +41 -19
- package/dist/components/q2-action-group.js.map +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-avatar2.js.map +1 -1
- package/dist/components/q2-btn2.js +50 -16
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-dropdown-item2.js +19 -17
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +67 -110
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-file-picker.js +3 -3
- package/dist/components/q2-file-picker.js.map +1 -1
- package/dist/components/q2-link2.js +3 -1
- package/dist/components/q2-link2.js.map +1 -1
- package/dist/components/q2-loading2.js.map +1 -1
- package/dist/components/q2-option-list2.js +44 -19
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-option2.js +20 -4
- package/dist/components/q2-option2.js.map +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +7 -6
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +1 -1
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +10 -8
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +6 -3
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
- package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
- package/dist/esm/click-elsewhere.entry.js +92 -0
- package/dist/esm/click-elsewhere.entry.js.map +1 -0
- package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
- package/dist/esm/index-504f1a9e.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +39 -18
- package/dist/esm/q2-action-group.entry.js.map +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js.map +1 -1
- package/dist/esm/q2-badge_7.entry.js +52 -18
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +18 -17
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +48 -99
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +4 -4
- package/dist/esm/q2-file-picker.entry.js.map +1 -1
- package/dist/esm/q2-item_3.entry.js +3 -2
- package/dist/esm/q2-item_3.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
- package/dist/esm/q2-option-list_2.entry.js.map +1 -0
- package/dist/esm/q2-option.entry.js +18 -4
- package/dist/esm/q2-option.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +8 -7
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +10 -8
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +7 -4
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
- package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
- package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
- package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
- package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
- package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +256 -213
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +138 -137
- package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-item_3.entry.js +3 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
- package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-pill.entry.js +15 -15
- package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-select.entry.js +23 -20
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-tag.entry.js +36 -34
- package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
- package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
- package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
- package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +4 -2
- package/dist/types/components/q2-link/q2-link.d.ts +8 -6
- package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
- package/dist/types/components/q2-option/q2-option.d.ts +10 -1
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
- package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
- package/dist/types/components.d.ts +93 -30
- package/dist/types/util.d.ts +1 -0
- package/dist/types/utils/helpers.d.ts +1 -1
- package/package.json +4 -3
- package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
- package/dist/cjs/index-07285783.js.map +0 -1
- package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
- package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
- package/dist/esm/click-elsewhere_2.entry.js +0 -401
- package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
- package/dist/esm/index-d18e2a20.js.map +0 -1
- package/dist/esm/q2-option-list.entry.js.map +0 -1
- package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
- package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
- package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
- package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { Q2OptionList } from "../q2-option-list";
|
|
3
|
+
import { Q2Option } from "../../q2-option/q2-option";
|
|
4
|
+
import { Q2DropdownItem } from "../../q2-dropdown-item/q2-dropdown-item";
|
|
5
|
+
describe('q2-option-list', () => {
|
|
6
|
+
let specPage;
|
|
7
|
+
describe('Props', () => { });
|
|
8
|
+
describe('Events', () => { });
|
|
9
|
+
describe('Listeners', () => { });
|
|
10
|
+
describe('Methods', () => { });
|
|
11
|
+
describe('Watchers', () => {
|
|
12
|
+
describe('selectedOptionsUpdated', () => {
|
|
13
|
+
it('executes updateSingleOptionAttrs when multple is false', async () => {
|
|
14
|
+
specPage = await newSpecPage({
|
|
15
|
+
components: [Q2OptionList, Q2Option],
|
|
16
|
+
html: `
|
|
17
|
+
<q2-option-list>
|
|
18
|
+
<q2-option value="1">Option 1</q2-option>
|
|
19
|
+
<q2-option value="2">Option 2</q2-option>
|
|
20
|
+
<q2-option value="3">Option 3</q2-option>
|
|
21
|
+
</q2-option-list>
|
|
22
|
+
`,
|
|
23
|
+
});
|
|
24
|
+
specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();
|
|
25
|
+
specPage.rootInstance.updateSingleOptionAttrs = jest.fn();
|
|
26
|
+
specPage.rootInstance.selectedOptions = [{ value: '2' }];
|
|
27
|
+
await specPage.waitForChanges();
|
|
28
|
+
expect(await specPage.rootInstance.updateMultipleOptionAttrs).not.toHaveBeenCalled();
|
|
29
|
+
expect(await specPage.rootInstance.updateSingleOptionAttrs).toHaveBeenCalled();
|
|
30
|
+
});
|
|
31
|
+
it('executes updateMultipleOptionAttrs when multple is true', async () => {
|
|
32
|
+
specPage = await newSpecPage({
|
|
33
|
+
components: [Q2OptionList, Q2Option],
|
|
34
|
+
html: `
|
|
35
|
+
<q2-option-list multiple>
|
|
36
|
+
<q2-option value="1">Option 1</q2-option>
|
|
37
|
+
<q2-option value="2">Option 2</q2-option>
|
|
38
|
+
<q2-option value="3">Option 3</q2-option>
|
|
39
|
+
</q2-option-list>
|
|
40
|
+
`,
|
|
41
|
+
});
|
|
42
|
+
specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();
|
|
43
|
+
specPage.rootInstance.updateSingleOptionAttrs = jest.fn();
|
|
44
|
+
specPage.rootInstance.selectedOptions = [{ value: '2' }];
|
|
45
|
+
await specPage.waitForChanges();
|
|
46
|
+
expect(await specPage.rootInstance.updateMultipleOptionAttrs).toHaveBeenCalled();
|
|
47
|
+
expect(await specPage.rootInstance.updateSingleOptionAttrs).not.toHaveBeenCalled();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('showSelected', () => {
|
|
51
|
+
it('re-sets showSelected to false if there are no selected options', async () => {
|
|
52
|
+
specPage = await newSpecPage({
|
|
53
|
+
components: [Q2OptionList, Q2Option],
|
|
54
|
+
html: `
|
|
55
|
+
<q2-option-list>
|
|
56
|
+
<q2-option value="1">Option 1</q2-option>
|
|
57
|
+
<q2-option value="2">Option 2</q2-option>
|
|
58
|
+
<q2-option value="3">Option 3</q2-option>
|
|
59
|
+
</q2-option-list>
|
|
60
|
+
`,
|
|
61
|
+
});
|
|
62
|
+
specPage.rootInstance.selectedOptions = [];
|
|
63
|
+
specPage.rootInstance.showSelected = true;
|
|
64
|
+
await specPage.waitForChanges();
|
|
65
|
+
expect(specPage.rootInstance.showSelected).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
it('sets _multiSelectHidden on all unselected options when selectedOptions are present', async () => {
|
|
68
|
+
var _a;
|
|
69
|
+
specPage = await newSpecPage({
|
|
70
|
+
components: [Q2OptionList, Q2Option],
|
|
71
|
+
html: `
|
|
72
|
+
<q2-option-list multiple>
|
|
73
|
+
<q2-option value="1">Option 1</q2-option>
|
|
74
|
+
<q2-option value="2">Option 2</q2-option>
|
|
75
|
+
<q2-option value="3">Option 3</q2-option>
|
|
76
|
+
</q2-option-list>
|
|
77
|
+
`,
|
|
78
|
+
});
|
|
79
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
80
|
+
expect(Array.from(options).every(option => !option._multiSelectHidden)).toBe(true);
|
|
81
|
+
specPage.rootInstance.selectedOptions = [{ value: '2' }];
|
|
82
|
+
specPage.rootInstance.showSelected = true;
|
|
83
|
+
await specPage.waitForChanges();
|
|
84
|
+
expect(options[0]._multiSelectHidden).toBe(true);
|
|
85
|
+
expect(options[1]._multiSelectHidden).toBe(false);
|
|
86
|
+
expect(options[2]._multiSelectHidden).toBe(true);
|
|
87
|
+
expect(specPage.rootInstance.showSelected).toBe(true);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('Local methods', () => {
|
|
92
|
+
describe('allContents', () => {
|
|
93
|
+
it('return empty array when no options are present', async () => {
|
|
94
|
+
specPage = await newSpecPage({
|
|
95
|
+
components: [Q2OptionList],
|
|
96
|
+
html: `<q2-option-list></q2-option-list>`,
|
|
97
|
+
});
|
|
98
|
+
expect(await specPage.rootInstance.allContents).toEqual([]);
|
|
99
|
+
});
|
|
100
|
+
it('return options', async () => {
|
|
101
|
+
var _a;
|
|
102
|
+
specPage = await newSpecPage({
|
|
103
|
+
components: [Q2OptionList],
|
|
104
|
+
html: `
|
|
105
|
+
<q2-option-list>
|
|
106
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
107
|
+
<q2-option value="option-2">Option 2</q2-option>
|
|
108
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
109
|
+
</q2-option-list>
|
|
110
|
+
`,
|
|
111
|
+
});
|
|
112
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
113
|
+
expect(await specPage.rootInstance.allContents).toEqual(options);
|
|
114
|
+
});
|
|
115
|
+
it('return option groups', async () => {
|
|
116
|
+
var _a;
|
|
117
|
+
specPage = await newSpecPage({
|
|
118
|
+
components: [Q2OptionList],
|
|
119
|
+
html: `
|
|
120
|
+
<q2-option-list>
|
|
121
|
+
<q2-optgroup label="Group 1">
|
|
122
|
+
<q2-option value="grouped-option-1">Grouped Option 1</q2-option>
|
|
123
|
+
<q2-option value="grouped-option-2">Grouped Option 2</q2-option>
|
|
124
|
+
</q2-optgroup>
|
|
125
|
+
</q2-option-list>
|
|
126
|
+
`,
|
|
127
|
+
});
|
|
128
|
+
const optGroups = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-optgroup');
|
|
129
|
+
expect(await specPage.rootInstance.allContents).toEqual(optGroups);
|
|
130
|
+
});
|
|
131
|
+
it('return dropdown items', async () => {
|
|
132
|
+
var _a;
|
|
133
|
+
specPage = await newSpecPage({
|
|
134
|
+
components: [Q2OptionList],
|
|
135
|
+
html: `
|
|
136
|
+
<q2-option-list>
|
|
137
|
+
<q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
|
|
138
|
+
<q2-dropdown-item value="dropdown-item-2">Dropdown Item 2</q2-dropdown-item>
|
|
139
|
+
<q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
|
|
140
|
+
</q2-option-list>
|
|
141
|
+
`,
|
|
142
|
+
});
|
|
143
|
+
const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item');
|
|
144
|
+
expect(await specPage.rootInstance.allContents).toEqual(dropdownItems);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
describe('allOptions', () => {
|
|
148
|
+
it('returns an empty array when no options are present', async () => {
|
|
149
|
+
specPage = await newSpecPage({
|
|
150
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
151
|
+
html: `<q2-option-list></q2-option-list>`,
|
|
152
|
+
});
|
|
153
|
+
expect(specPage.rootInstance.allOptions).toEqual([]);
|
|
154
|
+
});
|
|
155
|
+
it('returns options', async () => {
|
|
156
|
+
var _a;
|
|
157
|
+
specPage = await newSpecPage({
|
|
158
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
159
|
+
html: `
|
|
160
|
+
<q2-option-list>
|
|
161
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
162
|
+
<q2-option value="option-2">Option 2</q2-option>
|
|
163
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
164
|
+
</q2-option-list>
|
|
165
|
+
`,
|
|
166
|
+
});
|
|
167
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
168
|
+
const allOptions = specPage.rootInstance.allOptions;
|
|
169
|
+
expect(allOptions).toHaveLength(3);
|
|
170
|
+
expect(allOptions).toEqual(options);
|
|
171
|
+
});
|
|
172
|
+
it('returns options nested in groups', async () => {
|
|
173
|
+
var _a;
|
|
174
|
+
specPage = await newSpecPage({
|
|
175
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
176
|
+
html: `
|
|
177
|
+
<q2-option-list>
|
|
178
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
179
|
+
<q2-option value="option-2">Option 2</q2-option>
|
|
180
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
181
|
+
<q2-optgroup label="Group 1">
|
|
182
|
+
<q2-option value="grouped-option-1">Grouped Option 1</q2-option>
|
|
183
|
+
<q2-option value="grouped-option-2">Grouped Option 2</q2-option>
|
|
184
|
+
</q2-optgroup>
|
|
185
|
+
</q2-option-list>
|
|
186
|
+
`,
|
|
187
|
+
});
|
|
188
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
189
|
+
const allOptions = specPage.rootInstance.allOptions;
|
|
190
|
+
expect(allOptions).toHaveLength(5);
|
|
191
|
+
expect(allOptions).toEqual(options);
|
|
192
|
+
});
|
|
193
|
+
it('returns dropdown items', async () => {
|
|
194
|
+
var _a;
|
|
195
|
+
specPage = await newSpecPage({
|
|
196
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
197
|
+
html: `
|
|
198
|
+
<q2-option-list>
|
|
199
|
+
<q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
|
|
200
|
+
<q2-dropdown-item value="dropdown-item-2">Dropdown Item 2</q2-dropdown-item>
|
|
201
|
+
<q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
|
|
202
|
+
</q2-option-list>
|
|
203
|
+
`,
|
|
204
|
+
});
|
|
205
|
+
const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item');
|
|
206
|
+
const allOptions = specPage.rootInstance.allOptions;
|
|
207
|
+
expect(allOptions).toHaveLength(3);
|
|
208
|
+
expect(allOptions).toEqual(dropdownItems);
|
|
209
|
+
});
|
|
210
|
+
it('does not return options that have the separator attribute', async () => {
|
|
211
|
+
var _a;
|
|
212
|
+
specPage = await newSpecPage({
|
|
213
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
214
|
+
html: `
|
|
215
|
+
<q2-option-list>
|
|
216
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
217
|
+
<q2-option value="option-2" separator>Option 2</q2-option>
|
|
218
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
219
|
+
</q2-option-list>
|
|
220
|
+
`,
|
|
221
|
+
});
|
|
222
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([separator])');
|
|
223
|
+
const allOptions = specPage.rootInstance.allOptions;
|
|
224
|
+
expect(allOptions).toHaveLength(2);
|
|
225
|
+
expect(allOptions).toEqual(options);
|
|
226
|
+
});
|
|
227
|
+
it('does not return dropdown items that ahve the separator attribute', async () => {
|
|
228
|
+
var _a;
|
|
229
|
+
specPage = await newSpecPage({
|
|
230
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
231
|
+
html: `
|
|
232
|
+
<q2-option-list>
|
|
233
|
+
<q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
|
|
234
|
+
<q2-dropdown-item value="dropdown-item-2" separator>Dropdown Item 2</q2-dropdown-item>
|
|
235
|
+
<q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
|
|
236
|
+
</q2-option-list>
|
|
237
|
+
`,
|
|
238
|
+
});
|
|
239
|
+
const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item:not([separator])');
|
|
240
|
+
const allOptions = specPage.rootInstance.allOptions;
|
|
241
|
+
expect(allOptions).toHaveLength(2);
|
|
242
|
+
expect(allOptions).toEqual(dropdownItems);
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
describe('allVisibleOptions', () => {
|
|
246
|
+
it('returns an empty array when no options are present', async () => {
|
|
247
|
+
specPage = await newSpecPage({
|
|
248
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
249
|
+
html: `<q2-option-list></q2-option-list>`,
|
|
250
|
+
});
|
|
251
|
+
expect(specPage.rootInstance.allVisibleOptions).toEqual([]);
|
|
252
|
+
});
|
|
253
|
+
it('does not return options with the hidden attribute', async () => {
|
|
254
|
+
var _a;
|
|
255
|
+
specPage = await newSpecPage({
|
|
256
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
257
|
+
html: `
|
|
258
|
+
<q2-option-list>
|
|
259
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
260
|
+
<q2-option value="option-2" hidden>Option 2</q2-option>
|
|
261
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
262
|
+
</q2-option-list>
|
|
263
|
+
`,
|
|
264
|
+
});
|
|
265
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([hidden])');
|
|
266
|
+
const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
|
|
267
|
+
expect(allVisibleOptions).toHaveLength(2);
|
|
268
|
+
expect(allVisibleOptions).toEqual(options);
|
|
269
|
+
});
|
|
270
|
+
it('does not return options with the _multiSelectHidden attribute', async () => {
|
|
271
|
+
var _a;
|
|
272
|
+
specPage = await newSpecPage({
|
|
273
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
274
|
+
html: `
|
|
275
|
+
<q2-option-list>
|
|
276
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
277
|
+
<q2-option value="option-2" _multiSelectHidden>Option 2</q2-option>
|
|
278
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
279
|
+
</q2-option-list>
|
|
280
|
+
`,
|
|
281
|
+
});
|
|
282
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([_multiSelectHidden])');
|
|
283
|
+
const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
|
|
284
|
+
expect(allVisibleOptions).toHaveLength(2);
|
|
285
|
+
expect(allVisibleOptions).toEqual(options);
|
|
286
|
+
});
|
|
287
|
+
it('does not return options with the disabled attribute', async () => {
|
|
288
|
+
var _a;
|
|
289
|
+
specPage = await newSpecPage({
|
|
290
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
291
|
+
html: `
|
|
292
|
+
<q2-option-list>
|
|
293
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
294
|
+
<q2-option value="option-2" disabled>Option 2</q2-option>
|
|
295
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
296
|
+
</q2-option-list>
|
|
297
|
+
`,
|
|
298
|
+
});
|
|
299
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([disabled])');
|
|
300
|
+
const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
|
|
301
|
+
expect(allVisibleOptions).toHaveLength(2);
|
|
302
|
+
expect(allVisibleOptions).toEqual(options);
|
|
303
|
+
});
|
|
304
|
+
it('does not return options with the disabled-group attribute', async () => {
|
|
305
|
+
var _a;
|
|
306
|
+
specPage = await newSpecPage({
|
|
307
|
+
components: [Q2OptionList, Q2Option, Q2DropdownItem],
|
|
308
|
+
html: `
|
|
309
|
+
<q2-option-list>
|
|
310
|
+
<q2-option value="option-1">Option 1</q2-option>
|
|
311
|
+
<q2-option value="option-2" disabled-group>Option 2</q2-option>
|
|
312
|
+
<q2-option value="option-3">Option 3</q2-option>
|
|
313
|
+
</q2-option-list>
|
|
314
|
+
`,
|
|
315
|
+
});
|
|
316
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([disabled-group])');
|
|
317
|
+
const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
|
|
318
|
+
expect(allVisibleOptions).toHaveLength(2);
|
|
319
|
+
expect(allVisibleOptions).toEqual(options);
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
describe('checkOptions', () => {
|
|
323
|
+
it('sets the option roles to option when type is listbox', async () => {
|
|
324
|
+
var _a;
|
|
325
|
+
specPage = await newSpecPage({
|
|
326
|
+
components: [Q2OptionList, Q2Option],
|
|
327
|
+
html: `
|
|
328
|
+
<q2-option-list type="listbox">
|
|
329
|
+
<q2-option value="1">Option 1</q2-option>
|
|
330
|
+
<q2-option value="2">Option 2</q2-option>
|
|
331
|
+
<q2-option value="3">Option 3</q2-option>
|
|
332
|
+
</q2-option-list>
|
|
333
|
+
`,
|
|
334
|
+
});
|
|
335
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
336
|
+
expect(Array.from(options).every(option => option.role === 'option')).toBe(true);
|
|
337
|
+
});
|
|
338
|
+
it('sets the option roles to menuitem when type is menu', async () => {
|
|
339
|
+
var _a;
|
|
340
|
+
specPage = await newSpecPage({
|
|
341
|
+
components: [Q2OptionList, Q2Option],
|
|
342
|
+
html: `
|
|
343
|
+
<q2-option-list type="menu">
|
|
344
|
+
<q2-option value="1">Option 1</q2-option>
|
|
345
|
+
<q2-option value="2">Option 2</q2-option>
|
|
346
|
+
<q2-option value="3">Option 3</q2-option>
|
|
347
|
+
</q2-option-list>
|
|
348
|
+
`,
|
|
349
|
+
});
|
|
350
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
351
|
+
expect(Array.from(options).every(option => option.role === 'menuitem')).toBe(true);
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
describe('clickHandler', () => {
|
|
355
|
+
it('calls selectOption with provided option and emits a popoverState event when multiple is false', async () => {
|
|
356
|
+
var _a;
|
|
357
|
+
specPage = await newSpecPage({
|
|
358
|
+
components: [Q2OptionList, Q2Option],
|
|
359
|
+
html: `
|
|
360
|
+
<q2-option-list>
|
|
361
|
+
<q2-option value="1">Option 1</q2-option>
|
|
362
|
+
<q2-option value="2">Option 2</q2-option>
|
|
363
|
+
<q2-option value="3">Option 3</q2-option>
|
|
364
|
+
</q2-option-list>
|
|
365
|
+
`,
|
|
366
|
+
});
|
|
367
|
+
const option = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelector('q2-option[value=2]');
|
|
368
|
+
const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');
|
|
369
|
+
const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');
|
|
370
|
+
specPage.rootInstance.clickHandler({ target: option });
|
|
371
|
+
await specPage.waitForChanges();
|
|
372
|
+
expect(selectSpy).toHaveBeenCalledWith(option);
|
|
373
|
+
expect(popoverStateSpy).toHaveBeenCalledWith({ open: false, action: 'select' });
|
|
374
|
+
});
|
|
375
|
+
it('calls selectOption with provided option and does not emit a popoverState event when multiple is true', async () => {
|
|
376
|
+
var _a;
|
|
377
|
+
specPage = await newSpecPage({
|
|
378
|
+
components: [Q2OptionList, Q2Option],
|
|
379
|
+
html: `
|
|
380
|
+
<q2-option-list multiple>
|
|
381
|
+
<q2-option value="1">Option 1</q2-option>
|
|
382
|
+
<q2-option value="2">Option 2</q2-option>
|
|
383
|
+
<q2-option value="3">Option 3</q2-option>
|
|
384
|
+
</q2-option-list>
|
|
385
|
+
`,
|
|
386
|
+
});
|
|
387
|
+
const option = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelector('q2-option[value=2]');
|
|
388
|
+
const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');
|
|
389
|
+
const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');
|
|
390
|
+
specPage.rootInstance.clickHandler({ target: option });
|
|
391
|
+
await specPage.waitForChanges();
|
|
392
|
+
expect(selectSpy).toHaveBeenCalledWith(option);
|
|
393
|
+
expect(popoverStateSpy).not.toHaveBeenCalled();
|
|
394
|
+
});
|
|
395
|
+
});
|
|
396
|
+
describe('getDefaultActiveIndex', () => {
|
|
397
|
+
describe('when populated with options', () => {
|
|
398
|
+
it('returns first option when no options are selected', async () => {
|
|
399
|
+
specPage = await newSpecPage({
|
|
400
|
+
components: [Q2OptionList, Q2Option],
|
|
401
|
+
html: `
|
|
402
|
+
<q2-option-list>
|
|
403
|
+
<q2-option value="1">Option 1</q2-option>
|
|
404
|
+
<q2-option value="2">Option 2</q2-option>
|
|
405
|
+
<q2-option value="3">Option 3</q2-option>
|
|
406
|
+
</q2-option-list>
|
|
407
|
+
`,
|
|
408
|
+
});
|
|
409
|
+
expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(0);
|
|
410
|
+
});
|
|
411
|
+
it('returns second option when the first option is hidden', async () => {
|
|
412
|
+
specPage = await newSpecPage({
|
|
413
|
+
components: [Q2OptionList, Q2Option],
|
|
414
|
+
html: `
|
|
415
|
+
<q2-option-list>
|
|
416
|
+
<q2-option value="1" hidden>Option 1</q2-option>
|
|
417
|
+
<q2-option value="2">Option 2</q2-option>
|
|
418
|
+
<q2-option value="3">Option 3</q2-option>
|
|
419
|
+
</q2-option-list>
|
|
420
|
+
`,
|
|
421
|
+
});
|
|
422
|
+
expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(1);
|
|
423
|
+
});
|
|
424
|
+
it('returns third option when is it marked selected', async () => {
|
|
425
|
+
var _a;
|
|
426
|
+
specPage = await newSpecPage({
|
|
427
|
+
components: [Q2OptionList, Q2Option],
|
|
428
|
+
html: `
|
|
429
|
+
<q2-option-list>
|
|
430
|
+
<q2-option value="1">Option 1</q2-option>
|
|
431
|
+
<q2-option value="2">Option 2</q2-option>
|
|
432
|
+
<q2-option value="3">Option 3</q2-option>
|
|
433
|
+
</q2-option-list>
|
|
434
|
+
`,
|
|
435
|
+
});
|
|
436
|
+
const lastOption = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option')[2];
|
|
437
|
+
lastOption.selected = true;
|
|
438
|
+
await specPage.waitForChanges();
|
|
439
|
+
expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(2);
|
|
440
|
+
});
|
|
441
|
+
});
|
|
442
|
+
});
|
|
443
|
+
describe('updateMultipleOptionAttrs', () => {
|
|
444
|
+
it('updates the attributes of multiple options', async () => {
|
|
445
|
+
var _a;
|
|
446
|
+
specPage = await newSpecPage({
|
|
447
|
+
components: [Q2OptionList, Q2Option],
|
|
448
|
+
html: `
|
|
449
|
+
<q2-option-list multiple>
|
|
450
|
+
<q2-option value="1">Option 1</q2-option>
|
|
451
|
+
<q2-option value="2">Option 2</q2-option>
|
|
452
|
+
<q2-option value="3">Option 3</q2-option>
|
|
453
|
+
</q2-option-list>
|
|
454
|
+
`,
|
|
455
|
+
});
|
|
456
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
457
|
+
expect(Array.from(options).every(option => !option.selected)).toBe(true);
|
|
458
|
+
specPage.rootInstance.selectedOptions = [{ value: '1' }, { value: '3' }];
|
|
459
|
+
await specPage.waitForChanges();
|
|
460
|
+
expect(options[0].selected).toBe(true);
|
|
461
|
+
expect(options[1].selected).toBe(false);
|
|
462
|
+
expect(options[2].selected).toBe(true);
|
|
463
|
+
});
|
|
464
|
+
});
|
|
465
|
+
describe('updateSingleOptionAttrs', () => {
|
|
466
|
+
it('updates the attributes of a single option', async () => {
|
|
467
|
+
var _a;
|
|
468
|
+
specPage = await newSpecPage({
|
|
469
|
+
components: [Q2OptionList, Q2Option],
|
|
470
|
+
html: `
|
|
471
|
+
<q2-option-list>
|
|
472
|
+
<q2-option value="1">Option 1</q2-option>
|
|
473
|
+
<q2-option value="2">Option 2</q2-option>
|
|
474
|
+
<q2-option value="3">Option 3</q2-option>
|
|
475
|
+
</q2-option-list>
|
|
476
|
+
`,
|
|
477
|
+
});
|
|
478
|
+
const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
|
|
479
|
+
expect(Array.from(options).every(option => !option.selected)).toBe(true);
|
|
480
|
+
specPage.rootInstance.selectedOptions = [{ value: '2' }];
|
|
481
|
+
await specPage.waitForChanges();
|
|
482
|
+
expect(options[0].selected).toBe(false);
|
|
483
|
+
expect(options[1].selected).toBe(true);
|
|
484
|
+
expect(options[2].selected).toBe(false);
|
|
485
|
+
});
|
|
486
|
+
});
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
//# sourceMappingURL=q2-option-list.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-option-list.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-option-list/test/q2-option-list.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAkB,CAAC;IAEvB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE5B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE7B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEhC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE9B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACpE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5D,QAAQ,CAAC,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1D,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACrF,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACnF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACrE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5D,QAAQ,CAAC,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1D,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACjF,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC5E,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC3C,QAAQ,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1C,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;;gBAChG,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzD,QAAQ,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1C,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC5D,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,IAAI,EAAE,mCAAmC;iBAC5C,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;;gBAC5B,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;;gBAClC,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,IAAI,EAAE;;;;;;;qBAOL;iBACJ,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACjE,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;;gBACnC,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC1E,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAChE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE,mCAAmC;iBAC5C,CAAC,CAAC;gBAEH,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;;gBAC7B,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;;gBAC9C,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;;;;;qBAUL;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;;gBACpC,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;;gBACvE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;gBAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;;gBAC9E,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;gBAC3F,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAChE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE,mCAAmC;iBAC5C,CAAC,CAAC;gBAEH,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;gBAC/D,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;gBAC3E,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAClE,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;;gBAC3E,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,qCAAqC,CAAC,CAAC;gBACvF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAClE,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;;gBACjE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;gBAC7E,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAClE,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;;gBACvE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACpD,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;gBACnF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAClE,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;;gBAClE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;;gBACjE,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;;gBAC3G,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;gBACpE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC/E,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;;gBAClH,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;gBACpE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC/E,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACnC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACzC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;oBAC/D,QAAQ,GAAG,MAAM,WAAW,CAAC;wBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;wBACpC,IAAI,EAAE;;;;;;yBAML;qBACJ,CAAC,CAAC;oBAEH,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;oBACnE,QAAQ,GAAG,MAAM,WAAW,CAAC;wBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;wBACpC,IAAI,EAAE;;;;;;yBAML;qBACJ,CAAC,CAAC;oBAEH,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;;oBAC7D,QAAQ,GAAG,MAAM,WAAW,CAAC;wBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;wBACpC,IAAI,EAAE;;;;;;yBAML;qBACJ,CAAC,CAAC;oBAEH,MAAM,UAAU,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACnE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAEhC,MAAM,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;gBACxD,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEzE,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzE,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;gBACvD,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACpC,IAAI,EAAE;;;;;;qBAML;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEzE,QAAQ,CAAC,YAAY,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzD,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2OptionList } from '@/components/q2-option-list/q2-option-list';\nimport { Q2Option } from '@/components/q2-option/q2-option';\nimport { Q2DropdownItem } from '@/components/q2-dropdown-item/q2-dropdown-item';\n\ndescribe('q2-option-list', () => {\n let specPage: SpecPage;\n\n describe('Props', () => {});\n\n describe('Events', () => {});\n\n describe('Listeners', () => {});\n\n describe('Methods', () => {});\n\n describe('Watchers', () => {\n describe('selectedOptionsUpdated', () => {\n it('executes updateSingleOptionAttrs when multple is false', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();\n specPage.rootInstance.updateSingleOptionAttrs = jest.fn();\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n expect(await specPage.rootInstance.updateMultipleOptionAttrs).not.toHaveBeenCalled();\n expect(await specPage.rootInstance.updateSingleOptionAttrs).toHaveBeenCalled();\n });\n\n it('executes updateMultipleOptionAttrs when multple is true', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();\n specPage.rootInstance.updateSingleOptionAttrs = jest.fn();\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n expect(await specPage.rootInstance.updateMultipleOptionAttrs).toHaveBeenCalled();\n expect(await specPage.rootInstance.updateSingleOptionAttrs).not.toHaveBeenCalled();\n });\n });\n\n describe('showSelected', () => {\n it('re-sets showSelected to false if there are no selected options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.selectedOptions = [];\n specPage.rootInstance.showSelected = true;\n await specPage.waitForChanges();\n expect(specPage.rootInstance.showSelected).toBe(false);\n });\n\n it('sets _multiSelectHidden on all unselected options when selectedOptions are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option._multiSelectHidden)).toBe(true);\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n specPage.rootInstance.showSelected = true;\n await specPage.waitForChanges();\n\n expect(options[0]._multiSelectHidden).toBe(true);\n expect(options[1]._multiSelectHidden).toBe(false);\n expect(options[2]._multiSelectHidden).toBe(true);\n expect(specPage.rootInstance.showSelected).toBe(true);\n });\n });\n });\n\n describe('Local methods', () => {\n describe('allContents', () => {\n it('return empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(await specPage.rootInstance.allContents).toEqual([]);\n });\n\n it('return options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(await specPage.rootInstance.allContents).toEqual(options);\n });\n\n it('return option groups', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-optgroup label=\"Group 1\">\n <q2-option value=\"grouped-option-1\">Grouped Option 1</q2-option>\n <q2-option value=\"grouped-option-2\">Grouped Option 2</q2-option>\n </q2-optgroup>\n </q2-option-list>\n `,\n });\n\n const optGroups = specPage.root?.querySelectorAll('q2-optgroup');\n expect(await specPage.rootInstance.allContents).toEqual(optGroups);\n });\n\n it('return dropdown items', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\">Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item');\n expect(await specPage.rootInstance.allContents).toEqual(dropdownItems);\n });\n });\n\n describe('allOptions', () => {\n it('returns an empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(specPage.rootInstance.allOptions).toEqual([]);\n });\n\n it('returns options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(3);\n expect(allOptions).toEqual(options);\n });\n\n it('returns options nested in groups', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n <q2-optgroup label=\"Group 1\">\n <q2-option value=\"grouped-option-1\">Grouped Option 1</q2-option>\n <q2-option value=\"grouped-option-2\">Grouped Option 2</q2-option>\n </q2-optgroup>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(5);\n expect(allOptions).toEqual(options);\n });\n\n it('returns dropdown items', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\">Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(3);\n expect(allOptions).toEqual(dropdownItems);\n });\n\n it('does not return options that have the separator attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" separator>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([separator])');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(2);\n expect(allOptions).toEqual(options);\n });\n\n it('does not return dropdown items that ahve the separator attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\" separator>Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item:not([separator])');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(2);\n expect(allOptions).toEqual(dropdownItems);\n });\n });\n\n describe('allVisibleOptions', () => {\n it('returns an empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(specPage.rootInstance.allVisibleOptions).toEqual([]);\n });\n\n it('does not return options with the hidden attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" hidden>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([hidden])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the _multiSelectHidden attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" _multiSelectHidden>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([_multiSelectHidden])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the disabled attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" disabled>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([disabled])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the disabled-group attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" disabled-group>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([disabled-group])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n });\n\n describe('checkOptions', () => {\n it('sets the option roles to option when type is listbox', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list type=\"listbox\">\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => option.role === 'option')).toBe(true);\n });\n\n it('sets the option roles to menuitem when type is menu', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list type=\"menu\">\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => option.role === 'menuitem')).toBe(true);\n });\n });\n\n describe('clickHandler', () => {\n it('calls selectOption with provided option and emits a popoverState event when multiple is false', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const option = specPage.root?.querySelector('q2-option[value=2]');\n const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');\n const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');\n specPage.rootInstance.clickHandler({ target: option });\n await specPage.waitForChanges();\n expect(selectSpy).toHaveBeenCalledWith(option);\n expect(popoverStateSpy).toHaveBeenCalledWith({ open: false, action: 'select' });\n });\n\n it('calls selectOption with provided option and does not emit a popoverState event when multiple is true', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const option = specPage.root?.querySelector('q2-option[value=2]');\n const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');\n const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');\n specPage.rootInstance.clickHandler({ target: option });\n await specPage.waitForChanges();\n expect(selectSpy).toHaveBeenCalledWith(option);\n expect(popoverStateSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('getDefaultActiveIndex', () => {\n describe('when populated with options', () => {\n it('returns first option when no options are selected', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(0);\n });\n\n it('returns second option when the first option is hidden', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\" hidden>Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(1);\n });\n\n it('returns third option when is it marked selected', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const lastOption = specPage.root?.querySelectorAll('q2-option')[2];\n lastOption.selected = true;\n await specPage.waitForChanges();\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(2);\n });\n });\n });\n\n describe('updateMultipleOptionAttrs', () => {\n it('updates the attributes of multiple options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option.selected)).toBe(true);\n\n specPage.rootInstance.selectedOptions = [{ value: '1' }, { value: '3' }];\n await specPage.waitForChanges();\n\n expect(options[0].selected).toBe(true);\n expect(options[1].selected).toBe(false);\n expect(options[2].selected).toBe(true);\n });\n });\n\n describe('updateSingleOptionAttrs', () => {\n it('updates the attributes of a single option', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option.selected)).toBe(true);\n\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n\n expect(options[0].selected).toBe(false);\n expect(options[1].selected).toBe(true);\n expect(options[2].selected).toBe(false);\n });\n });\n });\n});\n"]}
|
|
@@ -256,7 +256,7 @@ export class Q2Pagination {
|
|
|
256
256
|
total,
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
|
-
return (h("nav", { key: '
|
|
259
|
+
return (h("nav", { key: 'd91e1f0ba5a239c95fd16bda94ef1e614e3c49be', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: 'aeb52cf10ec37a0ed9459660b9dad1df86e06ca1', class: "description", "test-id": "description" }, pagesOnly
|
|
260
260
|
? loc('tecton.element.pagination.pages', {
|
|
261
261
|
current: page,
|
|
262
262
|
total: totalPages,
|
|
@@ -265,10 +265,10 @@ export class Q2Pagination {
|
|
|
265
265
|
range: currentRange,
|
|
266
266
|
recordType: recordType.toLowerCase(),
|
|
267
267
|
total: total.toLocaleString(),
|
|
268
|
-
})), h("div", { key: '
|
|
268
|
+
})), h("div", { key: '24c8e8166dc90238960ae3afad0ff36eac4af66c', class: "btn-group" }, h("q2-btn", { key: '7be7b963cba6c9dd5b45bced73085ff495fd4130', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '7d58766f3d7307bcfb193d981c95895b58c2bbfb', type: "chevron-double-left" })), h("q2-btn", { key: 'b016eda2499b36b7fd82b84d39357dfa8c9f8719', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: 'd1bed177625bf672d109fbc8a127961818dd3364', type: "chevron-left" }))), h("div", { key: '62e7fb1e7379d54ace49f4f09f591cae2884479d', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: 'ff7ee6d921a0fe08ab4705714af8a1106eb1e174', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: 'e59bb32e696dfe162099f3efe19f95e7c76cad7b', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'ecc4215e2beefd4e099f57a421d0a732cb4e14dc', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
|
|
269
269
|
event.stopPropagation();
|
|
270
270
|
this.handlePageChange(event.detail.value);
|
|
271
|
-
}, "test-id": "pageInput", current: "page" })), h("span", { key: '
|
|
271
|
+
}, "test-id": "pageInput", current: "page" })), h("span", { key: 'cd543116816cfe374b02fa366d64cade2887b51a', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: '98826e8fbbe89ea9c34208ec8066ab47a8a17550', class: "btn-group" }, h("q2-btn", { key: '5066ad089677456d90b660299b0260cc819c3e60', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'e3364523c842d9a345fd34c05cbcba87ae14da80', type: "chevron-right" })), h("q2-btn", { key: 'a920ed7346c5fcadbac7c244dc1cabddd8e22b36', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '49e610ac8459a60eac6ec771fbb3208a4a25ac34', type: "chevron-double-right" }))), h("div", { key: '07bbdd2c0ddef20d8a14152c5977376389246c15', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
|
|
272
272
|
}
|
|
273
273
|
static get is() { return "q2-pagination"; }
|
|
274
274
|
static get encapsulation() { return "shadow"; }
|