q2-tecton-elements 1.45.3 → 1.46.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/cjs/click-elsewhere_2.cjs.entry.js +3 -9
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-0430339e.js → index-59fb7c74.js} +1 -1
- package/dist/cjs/{index-0430339e.js.map → index-59fb7c74.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +36 -6
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +34 -3
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +69 -3
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +3 -2
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js.map +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 +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +17 -10
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +13 -15
- package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-legend.cjs.entry.js +118 -0
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-list.cjs.entry.js +8 -8
- package/dist/cjs/q2-list.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-optgroup.cjs.entry.js +59 -0
- package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -0
- package/dist/cjs/{q2-optgroup_2.cjs.entry.js → q2-option.cjs.entry.js} +2 -53
- package/dist/cjs/q2-option.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-pagination.cjs.entry.js +22 -3
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-select.cjs.entry.js +4 -5
- 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-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +6 -6
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +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-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/click-elsewhere/click-elsewhere.js +2 -8
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/q2-btn/q2-btn.js +29 -5
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.css +3 -0
- package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-carousel/q2-carousel.js +34 -3
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +36 -6
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +9 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +91 -3
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +20 -2
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +3 -2
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.css +4 -0
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +43 -15
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.css +11 -11
- package/dist/collection/components/q2-item/q2-item.js +23 -16
- package/dist/collection/components/q2-item/q2-item.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.css +126 -0
- package/dist/collection/components/q2-legend/q2-legend.js +271 -0
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -0
- package/dist/collection/components/q2-list/q2-list.css +8 -5
- package/dist/collection/components/q2-list/q2-list.js +7 -7
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
- package/dist/collection/components/q2-pagination/q2-pagination.css +17 -2
- package/dist/collection/components/q2-pagination/q2-pagination.js +53 -2
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +2 -2
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +21 -5
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +2 -2
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +4 -4
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +6 -6
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +2 -2
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/components/click-elsewhere2.js +2 -8
- package/dist/components/click-elsewhere2.js.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +1 -1
- package/dist/components/q2-btn2.js +4 -2
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-calendar.js +2 -2
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-carousel-pane.js +36 -6
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +34 -3
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-donut.js +81 -7
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +3 -2
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-checkbox2.js +4 -2
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-currency.js +2 -2
- package/dist/components/q2-currency.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown-item2.js +1 -1
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +1 -1
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-icon2.js +1 -1
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +20 -12
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item.js +16 -18
- package/dist/components/q2-item.js.map +1 -1
- package/dist/components/q2-legend.d.ts +11 -0
- package/dist/components/q2-legend.js +8 -0
- package/dist/components/q2-legend.js.map +1 -0
- package/dist/components/q2-legend2.js +145 -0
- package/dist/components/q2-legend2.js.map +1 -0
- package/dist/components/q2-list.js +8 -8
- package/dist/components/q2-list.js.map +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +64 -13
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +2 -2
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +2 -2
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select.js +1 -711
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-select2.js +715 -0
- package/dist/components/q2-select2.js.map +1 -0
- package/dist/components/q2-stepper-pane.js +2 -2
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +6 -6
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +2 -2
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +2 -2
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +3 -9
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-e940b40e.js → index-c99c4cc6.js} +1 -1
- package/dist/esm/{index-e940b40e.js.map → index-c99c4cc6.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-btn_2.entry.js +2 -1
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +3 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +36 -6
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +34 -3
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +69 -3
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +3 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +3 -2
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-currency.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js.map +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 +1 -1
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +17 -10
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-item.entry.js +15 -17
- package/dist/esm/q2-item.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +114 -0
- package/dist/esm/q2-legend.entry.js.map +1 -0
- package/dist/esm/q2-list.entry.js +8 -8
- package/dist/esm/q2-list.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-optgroup.entry.js +55 -0
- package/dist/esm/q2-optgroup.entry.js.map +1 -0
- package/dist/esm/{q2-optgroup_2.entry.js → q2-option.entry.js} +4 -54
- package/dist/esm/q2-option.entry.js.map +1 -0
- package/dist/esm/q2-pagination.entry.js +22 -3
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-select.entry.js +4 -5
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +6 -6
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +2 -2
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/p-0bc47914.entry.js +2 -0
- package/dist/q2-tecton-elements/p-0bc47914.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-0e482a7c.entry.js +2 -0
- package/dist/q2-tecton-elements/p-0e482a7c.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-fcc84527.entry.js → p-12326313.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-12326313.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-16891e51.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a214077c.entry.js → p-18ec54c0.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-245ad08f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-245ad08f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-2a248a3f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-2a248a3f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-2c57a367.entry.js +2 -0
- package/dist/q2-tecton-elements/p-2c57a367.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-32e57e9f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-32e57e9f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-36398b59.entry.js +2 -0
- package/dist/q2-tecton-elements/p-36398b59.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-4194d6ed.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-4194d6ed.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f0813fb4.entry.js → p-4f2dfb4d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-4f2dfb4d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-7ce6e587.js → p-6559c942.js} +1 -1
- package/dist/q2-tecton-elements/{p-391acc00.entry.js → p-65ed80a5.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-65ed80a5.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-79df783e.entry.js +2 -0
- package/dist/q2-tecton-elements/p-79df783e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-81b76d40.entry.js +2 -0
- package/dist/q2-tecton-elements/p-81b76d40.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-85003c5b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-85003c5b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-97a98211.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-ac9414a6.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ac9414a6.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-bc141c5b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-be101dcf.entry.js +2 -0
- package/dist/q2-tecton-elements/p-be101dcf.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-bf32fd9c.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-bf32fd9c.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-ca0d7eb3.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-ca7ad3c3.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ca7dad64.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ca7dad64.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-ced89010.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ced89010.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f4d77672.entry.js → p-d5776227.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-d60ccf2f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-d60ccf2f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-d8fba914.entry.js +2 -0
- package/dist/q2-tecton-elements/p-d8fba914.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-dd670d63.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-e27a23fc.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-e27a23fc.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-bfe9d688.entry.js → p-ef441885.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ef441885.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-f2251261.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f2251261.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-debd5249.entry.js → p-f45b3488.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-debd5249.entry.js.map → p-f45b3488.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-22661533.entry.js → p-fe3c62e0.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-fe3c62e0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-685b821c.entry.js → p-ff39ba49.entry.js} +2 -2
- 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/test/elements/click-elsewhere-test.e2e.js +0 -18
- package/dist/test/elements/click-elsewhere-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-btn-test.e2e.js +16 -0
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-pane-test.e2e.js +49 -1
- package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-pane-test.spec.js +4 -1
- package/dist/test/elements/q2-carousel-pane-test.spec.js.map +1 -1
- package/dist/test/elements/q2-carousel-test.e2e.js +67 -1
- package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +56 -0
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +13 -10
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-detail/q2-list-test.e2e.js +1 -1
- package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-item-test.e2e.js +16 -3
- package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-icon-test.e2e.js +3 -3
- package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +93 -56
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/{q2-detail/q2-item-test.e2e.js → q2-item-test.e2e.js} +29 -1
- package/dist/test/elements/q2-item-test.e2e.js.map +1 -0
- package/dist/test/elements/q2-item-test.spec.js +32 -0
- package/dist/test/elements/q2-item-test.spec.js.map +1 -0
- package/dist/test/elements/q2-legend-test.e2e.js +19 -0
- package/dist/test/elements/q2-legend-test.e2e.js.map +1 -0
- package/dist/test/elements/q2-legend-test.spec.js +271 -0
- package/dist/test/elements/q2-legend-test.spec.js.map +1 -0
- package/dist/test/elements/q2-pagination-test.e2e.js +22 -0
- package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +21 -2
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +26 -8
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-stepper-test.e2e.js +10 -17
- package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-stepper-vertical-test.e2e.js +20 -4
- package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tab-container-test.e2e.js +10 -4
- package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/types/components/q2-btn/q2-btn.d.ts +14 -3
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -0
- package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +7 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +14 -0
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +2 -0
- package/dist/types/components/q2-input/q2-input.d.ts +10 -3
- package/dist/types/components/q2-item/q2-item.d.ts +1 -1
- package/dist/types/components/q2-legend/q2-legend.d.ts +41 -0
- package/dist/types/components.d.ts +133 -4
- package/package.json +3 -3
- package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +0 -1
- package/dist/esm/q2-optgroup_2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-1c17d118.entry.js +0 -2
- package/dist/q2-tecton-elements/p-1c17d118.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-22661533.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2436c843.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-391acc00.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-3b1ea100.entry.js +0 -2
- package/dist/q2-tecton-elements/p-3b1ea100.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-445990a8.entry.js +0 -2
- package/dist/q2-tecton-elements/p-445990a8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4b81a121.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4b81a121.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4bbe563f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-50bd4437.entry.js +0 -2
- package/dist/q2-tecton-elements/p-50bd4437.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5dc5c4e2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-68556733.entry.js +0 -2
- package/dist/q2-tecton-elements/p-68556733.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-71180fcd.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7c12ba02.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7c12ba02.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a977e723.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a977e723.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b3d10d52.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b3d10d52.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b7d5fd12.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b7d5fd12.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-bfe9d688.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-bffda54d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-bffda54d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cadceb00.entry.js +0 -2
- package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-fcc84527.entry.js.map +0 -1
- package/dist/test/elements/q2-detail/q2-item-test.e2e.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-16891e51.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a214077c.entry.js.map → p-18ec54c0.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-6559c942.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-97a98211.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-bc141c5b.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-ca0d7eb3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-ca7ad3c3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f4d77672.entry.js.map → p-d5776227.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-dd670d63.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-685b821c.entry.js.map → p-ff39ba49.entry.js.map} +0 -0
- /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → tecton-production_release_1.46.x}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
- /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → tecton-production_release_1.46.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-stepper-vertical-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-stepper-vertical-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { getListOfStyleCompilationIssues, setup } from '../helpers';\n\ndescribe('q2-stepper-vertical', () => {\n let page: E2EPage;\n let stepper: E2EElement;\n let stepBtns: E2EElement[];\n let changeSpy: EventSpy;\n\n const checkStepStatus = (\n stepBtn: E2EElement,\n options?: { selected?: boolean; disabled?: boolean; classes?: string[] }\n ) => {\n const { selected, disabled, classes } = {\n ...{ selected: false, disabled: false, classes: [] },\n ...options,\n };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n\n if (disabled) {\n expect(stepBtn).toHaveAttribute('aria-disabled');\n } else {\n expect(stepBtn).not.toHaveAttribute('aria-disabled');\n }\n\n if (!!classes.length) {\n classes.forEach(className => {\n expect(stepBtn.classList.contains(className)).toBe(true);\n });\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-stepper-vertical></q2-stepper-vertical>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-stepper-vertical')).toHaveLength(0);\n });\n\n describe('@Props', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane id=\"pane-1\" label=\"Pane 1\" status=\"complete\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\" label=\"Pane 2\" status=\"error\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\" label=\"Pane 3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" label=\"Pane 4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n await page.waitForChanges();\n stepper = await page.find('q2-stepper-vertical');\n });\n\n describe('currentStepId', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n const stepperPanes = await page.findAll('q2-stepper-pane');\n\n expect(stepper).toEqualAttribute('current-step-id', 'pane-1');\n checkStepStatus(stepBtns[0], {\n selected: true,\n disabled: false,\n classes: ['status-complete'],\n });\n checkStepStatus(stepBtns[1], { classes: ['status-error'] });\n checkStepStatus(stepBtns[2]);\n checkStepStatus(stepBtns[3], { disabled: true, classes: ['status-locked'] });\n expect(stepperPanes[0]).toHaveAttribute('is-active');\n expect(stepperPanes[1]).not.toHaveAttribute('is-active');\n expect(stepperPanes[2]).not.toHaveAttribute('is-active');\n expect(stepperPanes[3]).not.toHaveAttribute('is-active');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n await stepper.setProperty('currentStepId', 'pane-2');\n await page.waitForChanges();\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n const stepperPanes = await page.findAll('q2-stepper-pane');\n\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n checkStepStatus(stepBtns[0], { classes: ['status-complete'] });\n checkStepStatus(stepBtns[1], {\n selected: true,\n disabled: false,\n classes: ['status-error'],\n });\n checkStepStatus(stepBtns[2]);\n checkStepStatus(stepBtns[3], { disabled: true, classes: ['status-locked'] });\n expect(stepperPanes[0]).not.toHaveAttribute('is-active');\n expect(stepperPanes[1]).toHaveAttribute('is-active');\n expect(stepperPanes[2]).not.toHaveAttribute('is-active');\n expect(stepperPanes[3]).not.toHaveAttribute('is-active');\n });\n });\n });\n });\n\n describe('displaying step buttons', () => {\n describe('when label and description are provided by a q2-stepper-pane', () => {\n it('displays label and description in the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane label=\"My Label\" description=\"My Description\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('aria-controls', stepperPaneId);\n expect(stepBtn).toEqualAttribute('aria-labelledby', `label-${stepperPaneId}`);\n expect(stepBtn).toEqualAttribute('aria-describedby', `description-${stepperPaneId}`);\n expect(await stepBtn.find(`#label-${stepperPaneId}`)).toEqualText('My Label');\n expect(await stepBtn.find(`#description-${stepperPaneId}`)).toEqualText('My Description');\n });\n });\n\n describe('when only label is provided by a q2-stepper-pane', () => {\n it('displays label in the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane label=\"My Label\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('aria-controls', stepperPaneId);\n expect(stepBtn).toEqualAttribute('aria-labelledby', `label-${stepperPaneId}`);\n expect(stepBtn).not.toHaveAttribute('aria-describedby');\n expect(await stepBtn.find(`#label-${stepperPaneId}`)).toEqualText('My Label');\n expect(await stepBtn.find(`#description-${stepperPaneId}`)).toEqual(null);\n });\n });\n\n describe('when only description is provided by a q2-stepper-pane', () => {\n it('does not display any text for the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane description=\"My Description\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('aria-controls', stepperPaneId);\n expect(stepBtn).not.toHaveAttribute('aria-labelledby');\n expect(stepBtn).not.toHaveAttribute('aria-describedby');\n expect(await stepBtn.find('.step-label')).toEqual(null);\n expect(await stepBtn.find('.step-description')).toEqual(null);\n });\n });\n });\n\n describe('displaying spacers', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n it('renders a spacer on the childless step buttons with the default height', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(1) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(30);\n });\n\n it('renders a spacer on the parent step buttons with the default height', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(3) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(30);\n });\n\n it('does not render a spacer element on the last step button', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n expect(spacer).toBeNull();\n });\n\n describe('when the last parent step has children', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">\n Pane 4\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-4-child-1\">Pane 4 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4-child-2\">Pane 4 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4-child-3\">Pane 4 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n describe('when closed', () => {\n it('renders the spacer element with a height of zero', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).not.toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(0);\n });\n });\n\n describe('when opened', () => {\n beforeEach(async () => {\n const stepper = await page.find('q2-stepper-vertical');\n await stepper.setProperty('currentStepId', 'pane-4');\n await page.waitForChanges();\n });\n\n it('renders the spacer element with the height of the content', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).not.toHaveClass('has-sibling');\n expect(heightAsInteger).toBeGreaterThan(0);\n });\n });\n });\n });\n\n describe('focus', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\" label=\"Pane 1\" status=\"complete\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\" label=\"Pane 2\" status=\"error\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\" label=\"Pane 3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" label=\"Pane 4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepper = await page.find('q2-stepper-vertical');\n });\n\n const focusedStepText = async (page: E2EPage) => {\n return page.$eval('q2-stepper-vertical', el => el.shadowRoot.activeElement?.textContent);\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await stepper.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await focusedStepText(page)).toEqual('Pane 2');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await stepper.focus();\n await page.waitForChanges();\n\n expect(await focusedStepText(page)).toEqual('Pane 2');\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepper = await page.find('q2-stepper-vertical');\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n await stepBtns[0].click();\n expect(stepper).toEqualAttribute('current-step-id', 'pane-1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\" onchange=\"testOnChange()\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n </q2-stepper-vertical>\n <script>function testOnChange() {}</script>\n `,\n });\n const stepper = await page.find('q2-stepper-vertical');\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n await stepBtns[0].click();\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let resizeIframe: jest.Mock;\n beforeEach(async () => {\n page = await setup({\n html: ``,\n });\n\n resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as Window).TectonElements.resizeIframe = resizeIframe;\n });\n\n await page.setContent(`\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `);\n await page.waitForChanges();\n stepper = await page.find('q2-stepper-vertical');\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n changeSpy = await stepper.spyOnEvent('change');\n });\n\n describe('when clicking the currently selected step', () => {\n it('does not emit an event or change the selected pane', async () => {\n await stepBtns[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(stepBtns[1]).toHaveAttribute('aria-selected');\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n\n describe('when clicking a locked step', () => {\n it('does not emit an event or change the selected pane', async () => {\n await stepBtns[3].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(stepBtns[1]).toHaveAttribute('aria-selected');\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n\n describe('when a child list is expanded', () => {\n beforeEach(() => {\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'true');\n });\n\n it('calls resizeIframe on transitionend', async () => {\n // Update the `currentStepId` to kick off a render to clear cached `scheduledAfterRender` array\n await stepper.setProperty('currentStepId', 'pane-3');\n await page.waitForChanges();\n await resizeIframe.mockReset();\n await stepBtns[2].click();\n await page.waitForChanges();\n\n // resizeIframe is called twice\n // once on render to account for the content size changing\n // once on the next render to account for the list size changing\n expect(resizeIframe.mock.calls.length).toBeGreaterThanOrEqual(1);\n });\n\n it('can select another pane with children and collapse the expanded list', async () => {\n const secondSpacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n const thirdSpacerList = await page.find('q2-stepper-vertical >>> li:nth-child(3) ul');\n expect(secondSpacerList).toEqualAttribute('aria-hidden', 'false');\n expect(thirdSpacerList).toEqualAttribute('aria-hidden', 'true');\n\n await stepBtns[2].click();\n await page.waitForChanges();\n\n expect(secondSpacerList).toEqualAttribute('aria-hidden', 'true');\n expect(thirdSpacerList).toEqualAttribute('aria-hidden', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n expect(stepBtns[2]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[2]).toEqualAttribute('aria-selected', 'true');\n });\n\n it('can select a child list pane', async () => {\n const spacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n expect(spacerList).toEqualAttribute('aria-hidden', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'true');\n\n const secondChildPaneBtn = await spacerList.find('li:nth-child(2) .step-child-btn');\n await secondChildPaneBtn.click();\n await page.waitForChanges();\n\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n expect(secondChildPaneBtn).toEqualAttribute('aria-selected', 'true');\n });\n });\n });\n\n describe('child steps', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n it('expands the list and marks the current pane as active', async () => {\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n\n const spacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n expect(spacerList).toEqualAttribute('aria-hidden', 'false');\n const stepChildBtns = await page.findAll('q2-stepper-vertical >>> li:nth-child(2) ul .step-child-btn');\n expect(stepChildBtns[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('keyboard', () => {\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-stepper-vertical').shadowRoot.activeElement ===\n document\n .querySelector('q2-stepper-vertical')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) .step-btn`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n describe('when left and right arrow keys are pressed', () => {\n it('moves focus along the list of step buttons', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n\n // Doesn't focus locked step\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when up and down arrow keys are pressed', () => {\n it('moves focus along the list of step buttons', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowUp');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 3)).toBe(true);\n\n // Doesn't focus locked step\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first step button', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled step button', async () => {\n await stepBtns[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-stepper-vertical-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-stepper-vertical-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from '../helpers';\n\ndescribe('q2-stepper-vertical', () => {\n let page: E2EPage;\n let stepper: E2EElement;\n let stepBtns: E2EElement[];\n let changeSpy: EventSpy;\n\n const checkStepStatus = (\n stepBtn: E2EElement,\n options?: { selected?: boolean; disabled?: boolean; classes?: string[] }\n ) => {\n const { selected, disabled, classes } = {\n ...{ selected: false, disabled: false, classes: [] },\n ...options,\n };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n\n if (disabled) {\n expect(stepBtn).toHaveAttribute('aria-disabled');\n } else {\n expect(stepBtn).not.toHaveAttribute('aria-disabled');\n }\n\n if (!!classes.length) {\n classes.forEach(className => {\n expect(stepBtn.classList.contains(className)).toBe(true);\n });\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-stepper-vertical></q2-stepper-vertical>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-stepper-vertical')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane id=\"pane-1\" label=\"Pane 1\" status=\"complete\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\" label=\"Pane 2\" status=\"error\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\" label=\"Pane 3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" label=\"Pane 4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('@Props', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane id=\"pane-1\" label=\"Pane 1\" status=\"complete\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\" label=\"Pane 2\" status=\"error\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\" label=\"Pane 3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" label=\"Pane 4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n await page.waitForChanges();\n stepper = await page.find('q2-stepper-vertical');\n });\n\n describe('currentStepId', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n const stepperPanes = await page.findAll('q2-stepper-pane');\n\n expect(stepper).toEqualAttribute('current-step-id', 'pane-1');\n checkStepStatus(stepBtns[0], {\n selected: true,\n disabled: false,\n classes: ['status-complete'],\n });\n checkStepStatus(stepBtns[1], { classes: ['status-error'] });\n checkStepStatus(stepBtns[2]);\n checkStepStatus(stepBtns[3], { disabled: true, classes: ['status-locked'] });\n expect(stepperPanes[0]).toHaveAttribute('is-active');\n expect(stepperPanes[1]).not.toHaveAttribute('is-active');\n expect(stepperPanes[2]).not.toHaveAttribute('is-active');\n expect(stepperPanes[3]).not.toHaveAttribute('is-active');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n await stepper.setProperty('currentStepId', 'pane-2');\n await page.waitForChanges();\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n const stepperPanes = await page.findAll('q2-stepper-pane');\n\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n checkStepStatus(stepBtns[0], { classes: ['status-complete'] });\n checkStepStatus(stepBtns[1], {\n selected: true,\n disabled: false,\n classes: ['status-error'],\n });\n checkStepStatus(stepBtns[2]);\n checkStepStatus(stepBtns[3], { disabled: true, classes: ['status-locked'] });\n expect(stepperPanes[0]).not.toHaveAttribute('is-active');\n expect(stepperPanes[1]).toHaveAttribute('is-active');\n expect(stepperPanes[2]).not.toHaveAttribute('is-active');\n expect(stepperPanes[3]).not.toHaveAttribute('is-active');\n });\n });\n });\n });\n\n describe('displaying step buttons', () => {\n describe('when label and description are provided by a q2-stepper-pane', () => {\n it('displays label and description in the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane label=\"My Label\" description=\"My Description\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('id', stepperPaneId);\n expect(stepBtn).toEqualAttribute('aria-labelledby', `label-${stepperPaneId}`);\n expect(stepBtn).toEqualAttribute('aria-describedby', `description-${stepperPaneId}`);\n expect(await stepBtn.find(`#label-${stepperPaneId}`)).toEqualText('My Label');\n expect(await stepBtn.find(`#description-${stepperPaneId}`)).toEqualText('My Description');\n });\n });\n\n describe('when only label is provided by a q2-stepper-pane', () => {\n it('displays label in the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane label=\"My Label\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('id', stepperPaneId);\n expect(stepBtn).toEqualAttribute('aria-labelledby', `label-${stepperPaneId}`);\n expect(stepBtn).not.toHaveAttribute('aria-describedby');\n expect(await stepBtn.find(`#label-${stepperPaneId}`)).toEqualText('My Label');\n expect(await stepBtn.find(`#description-${stepperPaneId}`)).toEqual(null);\n });\n });\n\n describe('when only description is provided by a q2-stepper-pane', () => {\n it('does not display any text for the step button', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical>\n <q2-stepper-pane description=\"My Description\">Pane 1</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepBtn = await page.find('q2-stepper-vertical >>> .step-btn');\n const stepperPane = await page.find('q2-stepper-pane');\n const stepperPaneId = await stepperPane.getAttribute('id');\n\n expect(stepBtn).toEqualAttribute('id', stepperPaneId);\n expect(stepBtn).not.toHaveAttribute('aria-labelledby');\n expect(stepBtn).not.toHaveAttribute('aria-describedby');\n expect(await stepBtn.find('.step-label')).toEqual(null);\n expect(await stepBtn.find('.step-description')).toEqual(null);\n });\n });\n });\n\n describe('displaying spacers', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n it('renders a spacer on the childless step buttons with the default height', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(1) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(30);\n });\n\n it('renders a spacer on the parent step buttons with the default height', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(3) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(30);\n });\n\n it('does not render a spacer element on the last step button', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n expect(spacer).toBeNull();\n });\n\n describe('when the last parent step has children', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">\n Pane 4\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-4-child-1\">Pane 4 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4-child-2\">Pane 4 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4-child-3\">Pane 4 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n describe('when closed', () => {\n it('renders the spacer element with a height of zero', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).not.toHaveClass('has-sibling');\n expect(heightAsInteger).toEqual(0);\n });\n });\n\n describe('when opened', () => {\n beforeEach(async () => {\n const stepper = await page.find('q2-stepper-vertical');\n await stepper.setProperty('currentStepId', 'pane-4');\n await page.waitForChanges();\n });\n\n it('renders the spacer element with the height of the content', async () => {\n const spacer = await page.find('q2-stepper-vertical >>> li:nth-child(4) .spacer');\n const lastSpacerStyle = await spacer.getComputedStyle();\n const heightAsInteger = parseInt(lastSpacerStyle.height, 10);\n expect(spacer).not.toHaveClass('has-sibling');\n expect(heightAsInteger).toBeGreaterThan(0);\n });\n });\n });\n });\n\n describe('focus', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\" label=\"Pane 1\" status=\"complete\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\" label=\"Pane 2\" status=\"error\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\" label=\"Pane 3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" label=\"Pane 4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepper = await page.find('q2-stepper-vertical');\n });\n\n const focusedStepText = async (page: E2EPage) => {\n return page.$eval('q2-stepper-vertical', el => el.shadowRoot.activeElement?.textContent);\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await stepper.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await focusedStepText(page)).toEqual('Pane 2');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await stepper.focus();\n await page.waitForChanges();\n\n expect(await focusedStepText(page)).toEqual('Pane 2');\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n const stepper = await page.find('q2-stepper-vertical');\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n await stepBtns[0].click();\n expect(stepper).toEqualAttribute('current-step-id', 'pane-1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\" onchange=\"testOnChange()\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n </q2-stepper-vertical>\n <script>function testOnChange() {}</script>\n `,\n });\n const stepper = await page.find('q2-stepper-vertical');\n const stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n await stepBtns[0].click();\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let resizeIframe: jest.Mock;\n beforeEach(async () => {\n page = await setup({\n html: ``,\n });\n\n resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as Window).TectonElements.resizeIframe = resizeIframe;\n });\n\n await page.setContent(`\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `);\n await page.waitForChanges();\n stepper = await page.find('q2-stepper-vertical');\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n changeSpy = await stepper.spyOnEvent('change');\n });\n\n describe('when clicking the currently selected step', () => {\n it('does not emit an event or change the selected pane', async () => {\n await stepBtns[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(stepBtns[1]).toHaveAttribute('aria-selected');\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n\n describe('when clicking a locked step', () => {\n it('does not emit an event or change the selected pane', async () => {\n await stepBtns[3].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(stepBtns[1]).toHaveAttribute('aria-selected');\n expect(stepper).toEqualAttribute('current-step-id', 'pane-2');\n });\n });\n\n describe('when a child list is expanded', () => {\n beforeEach(() => {\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'true');\n });\n\n it('calls resizeIframe on transitionend', async () => {\n // Update the `currentStepId` to kick off a render to clear cached `scheduledAfterRender` array\n await stepper.setProperty('currentStepId', 'pane-3');\n await page.waitForChanges();\n await resizeIframe.mockReset();\n await stepBtns[2].click();\n await page.waitForChanges();\n\n // resizeIframe is called twice\n // once on render to account for the content size changing\n // once on the next render to account for the list size changing\n expect(resizeIframe.mock.calls.length).toBeGreaterThanOrEqual(1);\n });\n\n it('can select another pane with children and collapse the expanded list', async () => {\n const secondSpacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n const thirdSpacerList = await page.find('q2-stepper-vertical >>> li:nth-child(3) ul');\n expect(secondSpacerList).toEqualAttribute('aria-hidden', 'false');\n expect(thirdSpacerList).toEqualAttribute('aria-hidden', 'true');\n\n await stepBtns[2].click();\n await page.waitForChanges();\n\n expect(secondSpacerList).toEqualAttribute('aria-hidden', 'true');\n expect(thirdSpacerList).toEqualAttribute('aria-hidden', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n expect(stepBtns[2]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[2]).toEqualAttribute('aria-selected', 'true');\n });\n\n it('can select a child list pane', async () => {\n const spacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n expect(spacerList).toEqualAttribute('aria-hidden', 'false');\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'true');\n\n const secondChildPaneBtn = await spacerList.find('li:nth-child(2) .step-child-btn');\n await secondChildPaneBtn.click();\n await page.waitForChanges();\n\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n expect(secondChildPaneBtn).toEqualAttribute('aria-selected', 'true');\n });\n });\n });\n\n describe('child steps', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2-child-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">\n Pane 2\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-2-child-1\">Pane 2 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-2\">Pane 2 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2-child-3\">Pane 2 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">\n Pane 3\n <div slot=\"children\">\n <q2-stepper-pane id=\"pane-3-child-1\">Pane 3 - Child 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-2\">Pane 3 - Child 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3-child-3\">Pane 3 - Child 3</q2-stepper-pane>\n </div>\n </q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n it('expands the list and marks the current pane as active', async () => {\n expect(stepBtns[1]).toEqualAttribute('aria-expanded', 'true');\n expect(stepBtns[1]).toEqualAttribute('aria-selected', 'false');\n\n const spacerList = await page.find('q2-stepper-vertical >>> li:nth-child(2) ul');\n expect(spacerList).toEqualAttribute('aria-hidden', 'false');\n const stepChildBtns = await page.findAll('q2-stepper-vertical >>> li:nth-child(2) ul .step-child-btn');\n expect(stepChildBtns[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('keyboard', () => {\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-stepper-vertical').shadowRoot.activeElement ===\n document\n .querySelector('q2-stepper-vertical')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) .step-btn`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-stepper-vertical current-step-id=\"pane-2\">\n <q2-stepper-pane id=\"pane-1\">Pane 1</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-2\">Pane 2</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-3\">Pane 3</q2-stepper-pane>\n <q2-stepper-pane id=\"pane-4\" status=\"locked\">Pane 4</q2-stepper-pane>\n </q2-stepper-vertical>\n `,\n });\n stepBtns = await page.findAll('q2-stepper-vertical >>> .step-btn');\n });\n\n describe('when left and right arrow keys are pressed', () => {\n it('moves focus along the list of step buttons', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n\n // Doesn't focus locked step\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when up and down arrow keys are pressed', () => {\n it('moves focus along the list of step buttons', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowUp');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 3)).toBe(true);\n\n // Doesn't focus locked step\n await page.keyboard.press('ArrowDown');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first step button', async () => {\n await stepBtns[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled step button', async () => {\n await stepBtns[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from "../helpers";
|
|
1
|
+
import { evaluateA11y, setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from "../helpers";
|
|
2
2
|
describe('q2-tab-container', () => {
|
|
3
3
|
const renderTabs = (numberOfSteps, value) => {
|
|
4
4
|
return `<q2-tab-container ${value ? `value="tab${value}"` : ''} name="tabs">
|
|
@@ -20,6 +20,15 @@ describe('q2-tab-container', () => {
|
|
|
20
20
|
const page = await setup({ html: '<q2-tab-container></q2-tab-container>' });
|
|
21
21
|
expect(await getListOfStyleCompilationIssues(page, 'q2-tab-container')).toHaveLength(0);
|
|
22
22
|
});
|
|
23
|
+
describe('[A11y] guideline compliance', () => {
|
|
24
|
+
it('Does not have accessibility violations', async () => {
|
|
25
|
+
const page = await setup({
|
|
26
|
+
html: renderTabs(1, 1),
|
|
27
|
+
});
|
|
28
|
+
const hasViolations = await evaluateA11y(page);
|
|
29
|
+
expect(hasViolations).toBe(false);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
23
32
|
it('renders shadow DOM elements and correct tab controls', async () => {
|
|
24
33
|
const page = await setup({
|
|
25
34
|
html: renderTabs(1, 1),
|
|
@@ -35,9 +44,6 @@ describe('q2-tab-container', () => {
|
|
|
35
44
|
expect(await tabControls[0].getProperty('tabIndex')).toEqual(0);
|
|
36
45
|
expect(tabControls[0]).toEqualAttribute('role', 'tab');
|
|
37
46
|
expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');
|
|
38
|
-
expect(tabControls[0].getAttribute('aria-controls').includes('tab-pane')).toBe(true);
|
|
39
|
-
expect(tabControls[0].getAttribute('aria-controls').includes('-0')).toBe(true);
|
|
40
|
-
expect(tabControls[0].getAttribute('aria-controls').split('-')[2]).toEqual(tabControls[0].getAttribute('id').split('-')[1]);
|
|
41
47
|
expect(tabControls[0].innerText).toEqual('Pane 1');
|
|
42
48
|
expect(tabControls[0]).toEqualAttribute('data-value', 'tab1');
|
|
43
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-tab-container-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-tab-container-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from '../helpers';\nimport { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\n\ndescribe('q2-tab-container', () => {\n const renderTabs = (numberOfSteps: number, value?: number) => {\n return `<q2-tab-container ${value ? `value=\"tab${value}\"` : ''} name=\"tabs\">\n ${[...Array(numberOfSteps).keys()].map(\n index =>\n `<q2-tab-pane value=\"tab${index + 1}\" label=\"Pane ${index + 1}\" name=\"tabs\">Pane ${\n index + 1\n }</q2-tab-pane>`\n )}\n </q2-tab-container>`;\n };\n\n const checkTabStatus = (stepBtn: E2EElement, options?: { selected?: boolean }) => {\n const { selected } = { ...{ selected: false }, ...options };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-tab-container></q2-tab-container>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-tab-container')).toHaveLength(0);\n });\n\n it('renders shadow DOM elements and correct tab controls', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container >>> .tab-container');\n\n expect(tabContainer).not.toBeNull();\n\n const tabList = await page.find('q2-tab-container >>> ul');\n expect(tabList).toEqualAttribute('role', 'tablist');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n\n expect(tabControls).toHaveLength(1);\n expect(tabControls[0].getAttribute('id').includes('tab-')).toBe(true);\n expect(tabControls[0].getAttribute('id').includes('-0')).toBe(true);\n expect(await tabControls[0].getProperty('tabIndex')).toEqual(0);\n expect(tabControls[0]).toEqualAttribute('role', 'tab');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[0].getAttribute('aria-controls').includes('tab-pane')).toBe(true);\n expect(tabControls[0].getAttribute('aria-controls').includes('-0')).toBe(true);\n expect(tabControls[0].getAttribute('aria-controls').split('-')[2]).toEqual(\n tabControls[0].getAttribute('id').split('-')[1]\n );\n expect(tabControls[0].innerText).toEqual('Pane 1');\n expect(tabControls[0]).toEqualAttribute('data-value', 'tab1');\n });\n\n it('changes tabs by tab control click with default handler', async () => {\n const page = await setup({\n html: renderTabs(2, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n expect(tabControls).toHaveLength(2);\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'false');\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'false');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'true');\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab2',\n });\n });\n\n it('can override default onchange', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n await page.$eval('q2-tab-container', (element: HTMLElement) => {\n const changeHandler = () => {\n // force nothing to happen\n };\n\n element.onchange = changeHandler;\n });\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n\n // value prop not updated if not in handler\n expect(await tabContainer.getProperty('value')).toEqual('tab1');\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'tab2' });\n });\n\n it('allows nested tabs if named', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"parentTab1\" name=\"parent\">\n <q2-tab-pane label=\"Parent Tab 1\" value=\"parentTab1\" name=\"parent\" >\n <q2-tab-container value=\"childTab1\" name=\"child\">\n <q2-tab-pane\n label=\"Checkings\"\n value=\"childTab1\"\n name=\"child\"\n />\n <q2-tab-pane\n label=\"Savings\"\n value=\"childTab2\"\n name=\"child\"\n />\n </q2-tab-container>\n </q2-tab-pane>\n <q2-tab-pane label=\"Parent Tab 2\" value=\"parentTab2\" name=\"parent\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n\n const parentTabContainer = await page.find('q2-tab-container[name=\"parent\"]');\n const childTabContainer = await page.find('q2-tab-container[name=\"child\"]');\n const childChangeSpy = await childTabContainer.spyOnEvent('change');\n\n const parentPanes = await page.findAll('q2-tab-pane[name=\"parent\"]');\n const childPanes = await page.findAll('q2-tab-pane[name=\"child\"]');\n const parentPane1Guid = await parentPanes[0].getProperty('guid');\n const parentPane2Guid = await parentPanes[1].getProperty('guid');\n const childPane1Guid = await childPanes[0].getProperty('guid');\n const childPane2Guid = await childPanes[1].getProperty('guid');\n\n expect(parentPane1Guid).toEqual(parentPane2Guid);\n expect(childPane1Guid).toEqual(childPane2Guid);\n expect(parentPane1Guid).not.toEqual(childPane1Guid);\n\n expect(parentPanes[0]).toHaveAttribute('selected');\n expect(parentPanes[1]).not.toHaveAttribute('selected');\n expect(childPanes[0]).toHaveAttribute('selected');\n expect(childPanes[1]).not.toHaveAttribute('selected');\n\n await dispatchEvent(\n page,\n ['q2-tab-container[name=\"child\"]', '[test-id=\"tabLink\"][data-value=\"childTab2\"]'],\n 'click'\n );\n\n expect(childTabContainer).toEqualAttribute('value', 'childTab2');\n expect(childChangeSpy).toHaveReceivedEventDetail({ value: 'childTab2' });\n\n // Parent tab unchanged\n expect(parentTabContainer).toEqualAttribute('value', 'parentTab1');\n });\n\n it('calls resizeIframe on value change', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as any).TectonElements.resizeIframe = resizeIframe;\n });\n\n const tabContainer = await page.find('q2-tab-container');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n expect(resizeIframe).toBeCalledTimes(1);\n });\n\n it('localizes label string', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n await setTestStrings(page, {\n 'q2TabContainer.label': 'Label 1 Text',\n });\n\n const tabPane = await page.find('q2-tab-pane');\n const tabContainer = await page.find('q2-tab-container');\n tabPane.setProperty('label', 'q2TabContainer.label');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n const tabControl = await page.find('q2-tab-container >>> button');\n expect(tabControl.innerText).toEqual('Label 1 Text');\n });\n\n it('tab added dynamically ', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"Tab 1 very long label\" value=\"tab1\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n const tabContainer = await page.find('q2-tab-container');\n let tabNumber = 2;\n const increaseTab = () => {\n tabContainer.innerHTML =\n tabContainer.innerHTML +\n `<q2-tab-pane label=\"Tab ${tabNumber} very long label\" value=\"tab${tabNumber}\" ></q2-tab-pane>`;\n tabNumber++;\n };\n\n let btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should be null at initial loading\n expect(btnRight).toBeNull();\n\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n\n btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should not be null after adding multiple tabs\n expect(btnRight).not.toBeNull();\n });\n\n describe('@Props', () => {\n describe('value', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n checkTabStatus(tabs[0], { selected: true });\n checkTabStatus(tabs[1]);\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).toHaveAttribute('selected');\n expect(tabPanes[1]).not.toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n checkTabStatus(tabs[0]);\n checkTabStatus(tabs[1], { selected: true });\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).not.toHaveAttribute('selected');\n expect(tabPanes[1]).toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n });\n });\n\n describe('displaying tabs', () => {\n describe('when label is provided by a q2-tab-pane', () => {\n it('displays label on the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"My Label\">Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('My Label');\n });\n });\n\n describe('when label is not provided by a q2-tab-pane', () => {\n it('does not display any text for the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane>Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('');\n });\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the value to the selected tab', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"tab2\" onchange=\"testOnChange()\">\n <q2-tab-pane value=\"tab1\">Pane 1</q2-tab-pane>\n <q2-tab-pane value=\"tab2\">Pane 2</q2-tab-pane>\n <q2-tab-pane value=\"tab3\">Pane 3</q2-tab-pane>\n </q2-stepper>\n <script>function testOnChange() {}</script>`,\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement[];\n let changeSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> button');\n changeSpy = await tabContainer.spyOnEvent('change');\n });\n\n describe('when selecting the currently selected tab', () => {\n it('does not emit an event', async () => {\n await tabs[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(tabs[1]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n });\n });\n\n describe('when selecting a tab that is not selected', () => {\n it('does emits an event', async () => {\n await tabs[0].click();\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab1',\n });\n expect(tabs[0]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n });\n });\n });\n\n describe('scroll', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement;\n let btnLeft: E2EElement;\n let btnRight: E2EElement;\n\n describe('when the width of the total tabs does not exceed the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3),\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('does not display the scroll indicator buttons', async () => {\n expect(tabContainer).not.toHaveClass('has-scroll');\n expect(await tabs.getProperty('scrollWidth')).toEqual(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeNull();\n expect(btnRight).toBeNull();\n });\n });\n\n describe('when the width of the total tabs exceeds the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(20), // enough number of tabs for scrolling\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('displays the scroll indicator buttons', async () => {\n expect(await tabs.getProperty('scrollWidth')).toBeGreaterThan(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeTruthy();\n expect(btnRight).toBeTruthy();\n });\n\n it('can scroll via buttons', async () => {\n const scrollAmount = Math.floor((await tabs.getProperty('clientWidth')) / 2);\n const scrollByStub = jest.fn(args => {\n page.evaluate(left => {\n document.querySelector('q2-tab-container').shadowRoot.querySelector('ul').scrollLeft = left;\n }, args.left);\n });\n await page.exposeFunction('scrollByStub', scrollByStub);\n await page.$eval('q2-tab-container', stepper => {\n stepper.shadowRoot.querySelector('ul').scrollBy = scrollByStub;\n });\n\n expect(scrollByStub).toHaveBeenCalledTimes(0);\n expect(btnLeft).toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden');\n\n await btnRight.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: scrollAmount,\n });\n\n scrollByStub.mockReset();\n\n expect(btnLeft).not.toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden'); // still should be visible\n\n await btnLeft.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: -scrollAmount,\n });\n });\n });\n });\n\n describe('keyboard', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-tab-container').shadowRoot.activeElement ===\n document\n .querySelector('q2-tab-container')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) button`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabs = await page.findAll('q2-tab-container >>> button');\n });\n\n describe('when arrow keys are pressed', () => {\n it('moves focus along the list of tabs', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Space is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Space');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Enter is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Enter');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first tab', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled tab', async () => {\n await tabs[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = renderTabs(3);\n\n it('focuses when focus event dispatched ', async () => {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-tab-container'], 'focus');\n const selected = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(selected).toBe('true');\n });\n it('focuses when focus event method called ', async () => {\n const page = await setup({ html });\n const section = await page.find('q2-tab-container');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(contained).toBe('true');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1695', () => {\n it('does not error when rendered with no tab panes', async () => {\n let errorCount = 0;\n const page = await setup();\n page.on('console', msg => msg.type() === 'error' && errorCount++);\n await page.setContent(`<q2-tab-container></q2-tab-container>`);\n await page.waitForChanges();\n\n expect(errorCount).toBe(0);\n });\n });\n });\n\n describe('Badge', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n let tabContainer;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.tab.pane.new': 'New',\n 'tecton.element.tab.pane.entries': 'Entries',\n 'tecton.element.tab.pane.alert': 'Errors',\n 'tecton.element.tab.pane.warnings': 'Warnings',\n 'tecton.element.tab.pane.success': 'Successes',\n 'tecton.element.tab.pane.info': 'Messages',\n });\n await page.setContent(`\n <q2-tab-container value=\"tab2\" name=\"tabs\">\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab1\"\n label=\"Pane 1\"\n badge-count=\"21\"\n >\n Pane 1\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab2\"\n label=\"Pane 2\"\n badge-count=\"103\"\n badge-description=\"Notifications\"\n >\n Pane 2\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab3\"\n label=\"Pane 3\"\n badge-count=\"500\"\n badge-description=\"tecton.element.tab.pane.entries\"\n >\n Pane 3\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab4\"\n label=\"Pane 4\"\n badge-count=\"5\"\n badge-theme=\"secondary\"\n >\n Pane 4\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab5\"\n label=\"Pane 5\"\n badge-count=\"10\"\n badge-status=\"alert\"\n >\n Pane 5\n </q2-tab-pane>\n </q2-tab-container>\n `);\n await page.waitForChanges();\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> .tab-pane-badge');\n });\n\n it('adds default aria-label when no badge-description is provided', async () => {\n const tab = tabs[0];\n expect(tab).toEqualAttribute('aria-label', 'Pane 1, 21 New');\n });\n\n it('adds the provided badge-description as the aria-label', async () => {\n const tab = tabs[1];\n expect(tab).toEqualAttribute('aria-label', 'Pane 2, 103 Notifications');\n });\n\n it('localizes the provided badge-description as the aria-label', async () => {\n const tab = tabs[2];\n expect(tab).toEqualAttribute('aria-label', 'Pane 3, 500 Entries');\n });\n\n it('provides the specified theme to tab when it is selected', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 4, 5 New');\n expect(badge).not.toHaveAttribute('theme');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n });\n\n it('provides the specified status to tab regardless of the selected state', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n await tabContainer.setProperty('value', 'tab5');\n await page.waitForChanges();\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n });\n\n it('can change the badge-status and have it reflected in the DOM', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n const tabPane = await page.find('q2-tab-pane[value=\"tab5\"]');\n await tabPane.setProperty('badgeStatus', 'success');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('status', 'success');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Successes');\n });\n\n it('can change the badge-theme and have it reflected in the DOM', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n const tabPane = await page.find('q2-tab-pane[value=\"tab4\"]');\n await tabPane.setProperty('badgeTheme', 'tertiary');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'tertiary');\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-tab-container-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-tab-container-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from '../helpers';\nimport { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\n\ndescribe('q2-tab-container', () => {\n const renderTabs = (numberOfSteps: number, value?: number) => {\n return `<q2-tab-container ${value ? `value=\"tab${value}\"` : ''} name=\"tabs\">\n ${[...Array(numberOfSteps).keys()].map(\n index =>\n `<q2-tab-pane value=\"tab${index + 1}\" label=\"Pane ${index + 1}\" name=\"tabs\">Pane ${\n index + 1\n }</q2-tab-pane>`\n )}\n </q2-tab-container>`;\n };\n\n const checkTabStatus = (stepBtn: E2EElement, options?: { selected?: boolean }) => {\n const { selected } = { ...{ selected: false }, ...options };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-tab-container></q2-tab-container>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-tab-container')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n\n it('renders shadow DOM elements and correct tab controls', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container >>> .tab-container');\n\n expect(tabContainer).not.toBeNull();\n\n const tabList = await page.find('q2-tab-container >>> ul');\n expect(tabList).toEqualAttribute('role', 'tablist');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n\n expect(tabControls).toHaveLength(1);\n expect(tabControls[0].getAttribute('id').includes('tab-')).toBe(true);\n expect(tabControls[0].getAttribute('id').includes('-0')).toBe(true);\n expect(await tabControls[0].getProperty('tabIndex')).toEqual(0);\n expect(tabControls[0]).toEqualAttribute('role', 'tab');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[0].innerText).toEqual('Pane 1');\n expect(tabControls[0]).toEqualAttribute('data-value', 'tab1');\n });\n\n it('changes tabs by tab control click with default handler', async () => {\n const page = await setup({\n html: renderTabs(2, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n expect(tabControls).toHaveLength(2);\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'false');\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'false');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'true');\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab2',\n });\n });\n\n it('can override default onchange', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n await page.$eval('q2-tab-container', (element: HTMLElement) => {\n const changeHandler = () => {\n // force nothing to happen\n };\n\n element.onchange = changeHandler;\n });\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n\n // value prop not updated if not in handler\n expect(await tabContainer.getProperty('value')).toEqual('tab1');\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'tab2' });\n });\n\n it('allows nested tabs if named', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"parentTab1\" name=\"parent\">\n <q2-tab-pane label=\"Parent Tab 1\" value=\"parentTab1\" name=\"parent\" >\n <q2-tab-container value=\"childTab1\" name=\"child\">\n <q2-tab-pane\n label=\"Checkings\"\n value=\"childTab1\"\n name=\"child\"\n />\n <q2-tab-pane\n label=\"Savings\"\n value=\"childTab2\"\n name=\"child\"\n />\n </q2-tab-container>\n </q2-tab-pane>\n <q2-tab-pane label=\"Parent Tab 2\" value=\"parentTab2\" name=\"parent\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n\n const parentTabContainer = await page.find('q2-tab-container[name=\"parent\"]');\n const childTabContainer = await page.find('q2-tab-container[name=\"child\"]');\n const childChangeSpy = await childTabContainer.spyOnEvent('change');\n\n const parentPanes = await page.findAll('q2-tab-pane[name=\"parent\"]');\n const childPanes = await page.findAll('q2-tab-pane[name=\"child\"]');\n const parentPane1Guid = await parentPanes[0].getProperty('guid');\n const parentPane2Guid = await parentPanes[1].getProperty('guid');\n const childPane1Guid = await childPanes[0].getProperty('guid');\n const childPane2Guid = await childPanes[1].getProperty('guid');\n\n expect(parentPane1Guid).toEqual(parentPane2Guid);\n expect(childPane1Guid).toEqual(childPane2Guid);\n expect(parentPane1Guid).not.toEqual(childPane1Guid);\n\n expect(parentPanes[0]).toHaveAttribute('selected');\n expect(parentPanes[1]).not.toHaveAttribute('selected');\n expect(childPanes[0]).toHaveAttribute('selected');\n expect(childPanes[1]).not.toHaveAttribute('selected');\n\n await dispatchEvent(\n page,\n ['q2-tab-container[name=\"child\"]', '[test-id=\"tabLink\"][data-value=\"childTab2\"]'],\n 'click'\n );\n\n expect(childTabContainer).toEqualAttribute('value', 'childTab2');\n expect(childChangeSpy).toHaveReceivedEventDetail({ value: 'childTab2' });\n\n // Parent tab unchanged\n expect(parentTabContainer).toEqualAttribute('value', 'parentTab1');\n });\n\n it('calls resizeIframe on value change', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as any).TectonElements.resizeIframe = resizeIframe;\n });\n\n const tabContainer = await page.find('q2-tab-container');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n expect(resizeIframe).toBeCalledTimes(1);\n });\n\n it('localizes label string', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n await setTestStrings(page, {\n 'q2TabContainer.label': 'Label 1 Text',\n });\n\n const tabPane = await page.find('q2-tab-pane');\n const tabContainer = await page.find('q2-tab-container');\n tabPane.setProperty('label', 'q2TabContainer.label');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n const tabControl = await page.find('q2-tab-container >>> button');\n expect(tabControl.innerText).toEqual('Label 1 Text');\n });\n\n it('tab added dynamically ', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"Tab 1 very long label\" value=\"tab1\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n const tabContainer = await page.find('q2-tab-container');\n let tabNumber = 2;\n const increaseTab = () => {\n tabContainer.innerHTML =\n tabContainer.innerHTML +\n `<q2-tab-pane label=\"Tab ${tabNumber} very long label\" value=\"tab${tabNumber}\" ></q2-tab-pane>`;\n tabNumber++;\n };\n\n let btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should be null at initial loading\n expect(btnRight).toBeNull();\n\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n\n btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should not be null after adding multiple tabs\n expect(btnRight).not.toBeNull();\n });\n\n describe('@Props', () => {\n describe('value', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n checkTabStatus(tabs[0], { selected: true });\n checkTabStatus(tabs[1]);\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).toHaveAttribute('selected');\n expect(tabPanes[1]).not.toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n checkTabStatus(tabs[0]);\n checkTabStatus(tabs[1], { selected: true });\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).not.toHaveAttribute('selected');\n expect(tabPanes[1]).toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n });\n });\n\n describe('displaying tabs', () => {\n describe('when label is provided by a q2-tab-pane', () => {\n it('displays label on the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"My Label\">Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('My Label');\n });\n });\n\n describe('when label is not provided by a q2-tab-pane', () => {\n it('does not display any text for the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane>Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('');\n });\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the value to the selected tab', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"tab2\" onchange=\"testOnChange()\">\n <q2-tab-pane value=\"tab1\">Pane 1</q2-tab-pane>\n <q2-tab-pane value=\"tab2\">Pane 2</q2-tab-pane>\n <q2-tab-pane value=\"tab3\">Pane 3</q2-tab-pane>\n </q2-stepper>\n <script>function testOnChange() {}</script>`,\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement[];\n let changeSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> button');\n changeSpy = await tabContainer.spyOnEvent('change');\n });\n\n describe('when selecting the currently selected tab', () => {\n it('does not emit an event', async () => {\n await tabs[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(tabs[1]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n });\n });\n\n describe('when selecting a tab that is not selected', () => {\n it('does emits an event', async () => {\n await tabs[0].click();\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab1',\n });\n expect(tabs[0]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n });\n });\n });\n\n describe('scroll', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement;\n let btnLeft: E2EElement;\n let btnRight: E2EElement;\n\n describe('when the width of the total tabs does not exceed the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3),\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('does not display the scroll indicator buttons', async () => {\n expect(tabContainer).not.toHaveClass('has-scroll');\n expect(await tabs.getProperty('scrollWidth')).toEqual(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeNull();\n expect(btnRight).toBeNull();\n });\n });\n\n describe('when the width of the total tabs exceeds the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(20), // enough number of tabs for scrolling\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('displays the scroll indicator buttons', async () => {\n expect(await tabs.getProperty('scrollWidth')).toBeGreaterThan(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeTruthy();\n expect(btnRight).toBeTruthy();\n });\n\n it('can scroll via buttons', async () => {\n const scrollAmount = Math.floor((await tabs.getProperty('clientWidth')) / 2);\n const scrollByStub = jest.fn(args => {\n page.evaluate(left => {\n document.querySelector('q2-tab-container').shadowRoot.querySelector('ul').scrollLeft = left;\n }, args.left);\n });\n await page.exposeFunction('scrollByStub', scrollByStub);\n await page.$eval('q2-tab-container', stepper => {\n stepper.shadowRoot.querySelector('ul').scrollBy = scrollByStub;\n });\n\n expect(scrollByStub).toHaveBeenCalledTimes(0);\n expect(btnLeft).toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden');\n\n await btnRight.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: scrollAmount,\n });\n\n scrollByStub.mockReset();\n\n expect(btnLeft).not.toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden'); // still should be visible\n\n await btnLeft.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: -scrollAmount,\n });\n });\n });\n });\n\n describe('keyboard', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-tab-container').shadowRoot.activeElement ===\n document\n .querySelector('q2-tab-container')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) button`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabs = await page.findAll('q2-tab-container >>> button');\n });\n\n describe('when arrow keys are pressed', () => {\n it('moves focus along the list of tabs', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Space is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Space');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Enter is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Enter');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first tab', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled tab', async () => {\n await tabs[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = renderTabs(3);\n\n it('focuses when focus event dispatched ', async () => {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-tab-container'], 'focus');\n const selected = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(selected).toBe('true');\n });\n it('focuses when focus event method called ', async () => {\n const page = await setup({ html });\n const section = await page.find('q2-tab-container');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(contained).toBe('true');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1695', () => {\n it('does not error when rendered with no tab panes', async () => {\n let errorCount = 0;\n const page = await setup();\n page.on('console', msg => msg.type() === 'error' && errorCount++);\n await page.setContent(`<q2-tab-container></q2-tab-container>`);\n await page.waitForChanges();\n\n expect(errorCount).toBe(0);\n });\n });\n });\n\n describe('Badge', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n let tabContainer;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.tab.pane.new': 'New',\n 'tecton.element.tab.pane.entries': 'Entries',\n 'tecton.element.tab.pane.alert': 'Errors',\n 'tecton.element.tab.pane.warnings': 'Warnings',\n 'tecton.element.tab.pane.success': 'Successes',\n 'tecton.element.tab.pane.info': 'Messages',\n });\n await page.setContent(`\n <q2-tab-container value=\"tab2\" name=\"tabs\">\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab1\"\n label=\"Pane 1\"\n badge-count=\"21\"\n >\n Pane 1\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab2\"\n label=\"Pane 2\"\n badge-count=\"103\"\n badge-description=\"Notifications\"\n >\n Pane 2\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab3\"\n label=\"Pane 3\"\n badge-count=\"500\"\n badge-description=\"tecton.element.tab.pane.entries\"\n >\n Pane 3\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab4\"\n label=\"Pane 4\"\n badge-count=\"5\"\n badge-theme=\"secondary\"\n >\n Pane 4\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab5\"\n label=\"Pane 5\"\n badge-count=\"10\"\n badge-status=\"alert\"\n >\n Pane 5\n </q2-tab-pane>\n </q2-tab-container>\n `);\n await page.waitForChanges();\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> .tab-pane-badge');\n });\n\n it('adds default aria-label when no badge-description is provided', async () => {\n const tab = tabs[0];\n expect(tab).toEqualAttribute('aria-label', 'Pane 1, 21 New');\n });\n\n it('adds the provided badge-description as the aria-label', async () => {\n const tab = tabs[1];\n expect(tab).toEqualAttribute('aria-label', 'Pane 2, 103 Notifications');\n });\n\n it('localizes the provided badge-description as the aria-label', async () => {\n const tab = tabs[2];\n expect(tab).toEqualAttribute('aria-label', 'Pane 3, 500 Entries');\n });\n\n it('provides the specified theme to tab when it is selected', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 4, 5 New');\n expect(badge).not.toHaveAttribute('theme');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n });\n\n it('provides the specified status to tab regardless of the selected state', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n await tabContainer.setProperty('value', 'tab5');\n await page.waitForChanges();\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n });\n\n it('can change the badge-status and have it reflected in the DOM', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n const tabPane = await page.find('q2-tab-pane[value=\"tab5\"]');\n await tabPane.setProperty('badgeStatus', 'success');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('status', 'success');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Successes');\n });\n\n it('can change the badge-theme and have it reflected in the DOM', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n const tabPane = await page.find('q2-tab-pane[value=\"tab4\"]');\n await tabPane.setProperty('badgeTheme', 'tertiary');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'tertiary');\n });\n });\n});\n"]}
|
|
@@ -12,9 +12,13 @@ export declare class Q2Btn implements ComponentInterface {
|
|
|
12
12
|
*
|
|
13
13
|
* @info
|
|
14
14
|
* Only intended for use with the `badge` property.
|
|
15
|
+
* @deprecated
|
|
15
16
|
*/
|
|
16
17
|
active: boolean;
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Displays the component in a smaller, badge style.
|
|
20
|
+
* @deprecated
|
|
21
|
+
*/
|
|
18
22
|
badge: boolean;
|
|
19
23
|
/** The component expands to fill the width of its parent element. */
|
|
20
24
|
block: boolean;
|
|
@@ -39,8 +43,15 @@ export declare class Q2Btn implements ComponentInterface {
|
|
|
39
43
|
loading: boolean;
|
|
40
44
|
/** The default behavior of the button. */
|
|
41
45
|
type: string;
|
|
42
|
-
/**
|
|
43
|
-
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* Role attribute for better semantic accessibility support
|
|
49
|
+
*/
|
|
50
|
+
_role: string;
|
|
51
|
+
/**
|
|
52
|
+
* Defines the size of q2-btn, it renders as default size if not provided.
|
|
53
|
+
*/
|
|
54
|
+
size: 'small' | 'medium' | 'large';
|
|
44
55
|
/** @deprecated */
|
|
45
56
|
color: string;
|
|
46
57
|
/** @deprecated */
|