q2-tecton-elements 1.53.1 → 1.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +59 -60
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
- package/dist/cjs/index-76f63767.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +4 -4
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +2 -2
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +89 -13
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +5 -17
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-example/q2-example.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-item/q2-item.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js.map +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +18 -10
- package/dist/collection/components/q2-popover/q2-popover.js +59 -59
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
- package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
- package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-section/q2-section.js.map +1 -1
- package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +110 -15
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/charting.js.map +1 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/sanitize-html-string.js.map +1 -1
- package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
- package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/utils/test/index.spec.js.map +1 -1
- package/dist/components/index2.js +1 -20
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +58 -59
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +92 -16
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +59 -60
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
- package/dist/esm/index-504f1a9e.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +4 -4
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-donut.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-item_3.entry.js +3 -3
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +2 -2
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +90 -14
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/jest.setup.js +22 -0
- package/dist/jest.setup.js.map +1 -0
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +170 -164
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
- package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-loc.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-option-list.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-select.entry.js +156 -92
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-tag.entry.js +25 -25
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +19 -0
- package/package.json +3 -3
- package/dist/cjs/index-07285783.js.map +0 -1
- package/dist/esm/index-d18e2a20.js.map +0 -1
- package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-carousel.js","sourceRoot":"","sources":["../../../src/components/q2-carousel/q2-carousel.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Watch,\n State,\n Fragment,\n Element,\n Host,\n h,\n Event,\n EventEmitter,\n Listen,\n Method,\n} from '@stencil/core';\nimport { SwiperOptions, Autoplay, Swiper } from 'swiper';\nimport { createGuid, loc, handleAriaLabel, overrideFocus, isEventFromElement } from 'src/utils';\n\nconst carouselBreakpoint = 500; /* width in px of this host element where the layout starts to get unruly */\n\n@Component({ tag: 'q2-carousel', shadow: false, styleUrl: 'q2-carousel.scss' })\nexport class Q2Carousel implements ComponentInterface {\n // #region Own Properties\n\n carouselPaneWrapperElement: HTMLElement;\n carouselWrapper: HTMLElement;\n fullWidthDisplayOptions: SwiperOptions;\n guid = createGuid();\n mutationObserver: MutationObserver;\n swiper?: Swiper = null;\n universalCarouselOptions: SwiperOptions;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n /** Manages re-rendering the component when the `ariaLive` value changes. */\n @State()\n ariaLiveValue: 'polite' | 'off' = 'polite';\n\n /** Manages re-rendering the autoPlay button when clicked. */\n @State()\n autoPlayInProgress: boolean = false;\n\n /** Manages re-rendering the component when resize event is consumed. */\n @State()\n carouselWrapperWidth: number = 0;\n\n /** Manages sizing the component based on changes in `carouselWrapperWidth`. */\n @State()\n compactMode: boolean = false;\n\n /** Manages re-rendering the component when panes are added or removed. */\n @State()\n currentPaneCount: number = this.paneCount;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true })\n ariaLabel: string;\n\n /** Enables the auto-play feature and starts the carousel without user input. */\n @Prop({ reflect: true })\n autoPlay: boolean = false;\n\n /** Display the carousel panes as frameless with no container or shadow. */\n @Prop({ reflect: true })\n framelessPanes: boolean = false;\n\n /** Display the carousel panes full-width rather than with peeking content. */\n @Prop({ reflect: true })\n fullWidthPanes: boolean = false;\n\n /** Hide the dots below the carousel that provide navigation control and indicate which page is currently active. */\n @Prop({ reflect: true })\n hidePagination: boolean = false;\n\n /** The currently displayed carousel pane. */\n @Prop({ reflect: true, mutable: true })\n index: number = 1;\n\n /**\n * The label that is associated with the carousel. This is not displayed visually, but is presented by screen readers.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string = 'tecton.element.carousel.ariaLabel';\n\n /** Display navigation arrow buttons as another way to navigate the carousel. */\n @Prop({ reflect: true })\n showNavigationArrows: boolean = false;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the displayed carousel pane changes.\n */\n @Event()\n change: EventEmitter<{ index: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n if (!!this.swiper) {\n this.tearDownCarousel();\n }\n\n window.removeEventListener('resize', this.setCarouselWrapperWidth);\n }\n\n componentWillLoad() {\n handleAriaLabel(this);\n this.updateCarouselPaneProps();\n window.addEventListener('resize', this.setCarouselWrapperWidth);\n\n this.universalCarouselOptions = {\n centeredSlides: true,\n focusableElements:\n 'q2-btn, q2-dropdown, q2-item, q2-list, a, input, select, textarea, button, video, label, option',\n autoplay: this.autoPlay,\n modules: [Autoplay],\n on: {\n realIndexChange: swiper => {\n this.index = swiper.realIndex + 1;\n this.updateCarouselPaneProps();\n const isPaginationFocused = !!document.activeElement.closest(\n `#q2-carousel-${this.guid} .q2-carousel-page-indicator`\n );\n const isCarouselFocused = !!document.activeElement.closest(\n `#q2-carousel-${this.guid} q2-carousel-pane`\n );\n const isFocused = isPaginationFocused || isCarouselFocused;\n this.handleAriaLive(isFocused);\n this.change.emit({ index: swiper.realIndex + 1 });\n\n if (isPaginationFocused) {\n this.paginationBtns[swiper.realIndex].focus({ preventScroll: true });\n } else if (isCarouselFocused)\n (swiper.slides[swiper.realIndex] as HTMLElement).focus({\n preventScroll: true,\n });\n },\n afterInit: swiper => {\n this.swiper = swiper;\n this.activePane?.addEventListener('popoverStateChanged', this.handlePopovers);\n },\n slideChangeTransitionEnd: () => {\n this.activePane?.addEventListener('popoverStateChanged', this.handlePopovers);\n },\n slideChangeTransitionStart: () => {\n this.activePane?.removeEventListener('popoverStateChanged', this.handlePopovers);\n },\n },\n };\n\n this.fullWidthDisplayOptions = {\n slidesPerView: 1,\n spaceBetween: 100,\n ...this.universalCarouselOptions,\n };\n }\n\n componentDidLoad() {\n this.setCarouselWrapperWidth();\n if (this.carouselWrapper && !!this.paneArray.length) {\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n }\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('clickCarouselPane')\n carouselPaneClicked(event) {\n this.swiper?.slideTo(event.detail.paneIndex);\n (this.swiper?.slides[event.detail.paneIndex] as HTMLElement).focus({ preventScroll: true });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n const activePane = this.swiper?.slides[this.swiper?.realIndex];\n if (!isEventFromElement(event, this.hostElement) || !activePane) return;\n (activePane as HTMLElement).focus({ preventScroll: true });\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clicks and Focuses the `q2-carousel-pane` matching the specified index.\n * @testOnly\n */\n @Method()\n async selectCarouselPane(index: number) {\n if (index > this.paneCount) return;\n const actualIndex = index > 0 ? index - 1 : 0;\n const pane = this.paneArray[actualIndex];\n pane?.click();\n pane?.focus({ preventScroll: true });\n }\n\n /**\n * Clicks and Focuses the `<button>` that controls playing or pausing the auto-play feature of the carousel.\n *\n * @warning\n * If the `autoPlay` property is not enabled, this method does nothing.\n *\n * @testOnly\n */\n @Method()\n async togglePlayPause() {\n if (!this.autoPlay) return;\n const playPauseBtn = this.hostElement.querySelector('.q2-carousel-autoplay-control') as HTMLQ2BtnElement;\n playPauseBtn?.click();\n playPauseBtn?.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('carouselWrapperWidth')\n carouselWrapperWidthChanged() {\n this.compactMode = this.carouselWrapperWidth < carouselBreakpoint;\n }\n\n @Watch('framelessPanes')\n framelessPanesChanged() {\n this.updateCarouselPaneProps();\n this.revampCarousel();\n }\n\n @Watch('fullWidthPanes')\n @Watch('framelessPanes')\n @Watch('compactMode')\n @Watch('autoPlay')\n revampCarousel() {\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n }\n\n @Watch('index')\n indexChanged(newIndex) {\n // this allows the carousel to be swiped programmatically via the index prop\n if (newIndex !== this.swiper?.realIndex + 1) {\n this.swiper?.slideTo(this.realIndex);\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get activeCarouselOptions() {\n return this.fullWidthPanes || this.framelessPanes\n ? this.fullWidthDisplayOptions\n : this.peekContentDisplayOptions;\n }\n\n get activePane(): HTMLElement {\n const activeSlide = this.swiper?.slides[this.swiper?.realIndex] ?? 0;\n return activeSlide instanceof HTMLElement ? activeSlide : null;\n }\n\n get insufficientPanes() {\n return this.paneCount < 1;\n }\n\n get paginationBtns(): NodeListOf<HTMLButtonElement> {\n return this.hostElement.querySelectorAll('.q2-carousel-page-indicator');\n }\n\n get paneArray(): HTMLQ2CarouselPaneElement[] {\n return Array.from(this.hostElement.querySelectorAll('q2-carousel-pane'));\n }\n\n get paneCount() {\n return this.paneArray.length;\n }\n\n get peekContentDisplayOptions(): SwiperOptions {\n return {\n slidesPerView: 2,\n spaceBetween: this.compactMode ? 0 : -10,\n centerInsufficientSlides: false,\n ...this.universalCarouselOptions,\n };\n }\n\n get realIndex(): number {\n const indexNum = Number(this.index);\n return indexNum > 0 ? indexNum - 1 : 0;\n }\n\n get useDynamicPaginationDots() {\n return this.paneCount && this.paneCount > 5;\n }\n\n configureCarousel = (carouselWrapper, carouselOptions) => {\n if (!!this.swiper) {\n this.tearDownCarousel();\n }\n this.autoPlayInProgress = this.autoPlay;\n\n new Swiper(carouselWrapper, carouselOptions);\n this.swiper?.slideTo(this.realIndex);\n if (this.autoPlayInProgress) this.swiper?.autoplay.start();\n };\n\n handleAriaLive(activeAndFocused: boolean) {\n if (this.autoPlayInProgress && !activeAndFocused) {\n this.ariaLiveValue = 'off';\n } else {\n this.ariaLiveValue = 'polite';\n }\n }\n\n handleAutoPlayPause = (action: 'play' | 'pause') => {\n if (!this.autoPlay) return;\n const autoplay = this.swiper?.autoplay;\n switch (action) {\n case 'play':\n autoplay.start();\n this.autoPlayInProgress = true;\n break;\n case 'pause':\n autoplay.stop();\n this.autoPlayInProgress = false;\n break;\n }\n };\n\n handlePopovers = (event: CustomEvent) => {\n const { swiper, carouselPaneWrapperElement } = this;\n if (event.detail.open) {\n carouselPaneWrapperElement.style.left = `${swiper?.translate}px`;\n carouselPaneWrapperElement.style.transform = null;\n swiper?.disable();\n } else {\n carouselPaneWrapperElement.style.left = null;\n carouselPaneWrapperElement.style.transform = `translate3d(${swiper?.translate}px, 0, 0)`;\n swiper?.enable();\n }\n };\n\n keydownHandler = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n this.swiper?.slideNext();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.swiper?.slidePrev();\n break;\n\n case 'Home':\n event.preventDefault();\n this.swiper?.slideTo(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.swiper?.slideTo(this.paneCount - 1);\n break;\n }\n };\n\n onMutationObserved = () => {\n this.updateCarouselPaneProps();\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n };\n\n setCarouselWrapperWidth = () => {\n if (this.insufficientPanes) return;\n this.carouselWrapperWidth = this.carouselWrapper.clientWidth;\n };\n\n tearDownCarousel = () => {\n this.swiper.destroy();\n this.swiper = null;\n };\n\n updateCarouselPaneProps = () => {\n const { framelessPanes, paneCount, paneArray } = this;\n\n paneArray.forEach((pane, index) => {\n pane.index = index;\n pane.siblingCount = paneCount;\n pane.isActivePane = index === this.realIndex;\n pane.slotFrameless = framelessPanes || undefined;\n });\n this.currentPaneCount = paneCount;\n };\n\n // #endregion\n // #region Render Methods\n\n renderAutoPlayBtn = () => {\n const { autoPlayInProgress } = this;\n return (\n <q2-btn\n type=\"button\"\n hide-label\n label={loc(\n autoPlayInProgress\n ? 'tecton.element.carousel.pausePlayLabel'\n : 'tecton.element.carousel.resumePlayLabel'\n )}\n class=\"q2-carousel-autoplay-control\"\n onClick={() => this.handleAutoPlayPause(autoPlayInProgress ? 'pause' : 'play')}\n >\n <q2-icon type={autoPlayInProgress ? 'pause' : 'play'} />\n </q2-btn>\n );\n };\n\n renderInsufficientPanesDisplay = () => {\n let insufficientPanesContainerClasses = [\n 'insufficient-pane-feedback',\n this.fullWidthPanes ? 'full-width-display' : 'content-peek-display',\n ];\n if (this.compactMode) insufficientPanesContainerClasses = [...insufficientPanesContainerClasses, 'compact'];\n\n return (\n <div class={insufficientPanesContainerClasses.join(' ')}>\n <div class=\"insufficient-panes-icon-wrapper\">\n <q2-icon type=\"warning\" />\n </div>\n <p class=\"insufficient-panes-header\">\n <strong>{loc('tecton.element.carousel.insufficientPanesMessageHeader')}</strong>\n </p>\n <p class=\"insufficient-panes-body\">{loc('tecton.element.carousel.insufficientPanesMessageBody')}</p>\n </div>\n );\n };\n\n renderNextNavBtn = () => {\n const nextPaneAvailable = this.realIndex < this.paneCount - 1;\n\n return (\n <div>\n <q2-btn\n type=\"button\"\n disabled={nextPaneAvailable ? undefined : true}\n class=\"q2-carousel-navigation-button q2-carousel-navigation-button-next\"\n hide-label\n label={loc('tecton.element.carousel.nextItemLabel')}\n onClick={() => this.swiper?.slideNext()}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n </div>\n );\n };\n\n renderPaginationArea = () => {\n const { useDynamicPaginationDots, realIndex, paneCount, paneArray } = this;\n let paginationContainerClasses = ['q2-carousel-pagination'];\n if (useDynamicPaginationDots) paginationContainerClasses = [...paginationContainerClasses, 'dynamic'];\n\n return (\n <div\n class={paginationContainerClasses.join(' ')}\n role=\"tablist\"\n aria-label={loc('tecton.element.carousel.tabWrapperLabel')}\n >\n {paneArray.map(pane => {\n let btnClasses = ['q2-carousel-page-indicator', `q2-carousel-page-indicator-${pane.index}`];\n if (pane.isActivePane) btnClasses = [...btnClasses, 'active-page'];\n if (useDynamicPaginationDots) btnClasses = [...btnClasses, 'dynamic'];\n\n const withinOneOfActive = pane.index === realIndex + 1 || pane.index === realIndex - 1;\n if (withinOneOfActive) btnClasses = [...btnClasses, 'active-adjacent'];\n\n const withinTwoOfActive = pane.index === realIndex + 2 || pane.index === realIndex - 2;\n if (withinTwoOfActive) btnClasses = [...btnClasses, 'active-adjacent-adjacent'];\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n tabIndex={pane.isActivePane ? undefined : -1}\n aria-selected={pane.isActivePane ? 'true' : 'false'}\n class={btnClasses.join(' ')}\n onClick={() => this.swiper?.slideTo(pane.index)}\n onKeyDown={this.keydownHandler}\n aria-label={loc('tecton.element.carousel.itemDescription', [\n (pane.index + 1).toString(),\n paneCount.toString(),\n ])}\n ></button>\n );\n })}\n </div>\n );\n };\n\n renderPrevNavBtn = () => {\n const prevPaneAvailable = this.realIndex > 0;\n\n return (\n <div>\n <q2-btn\n type=\"button\"\n disabled={prevPaneAvailable ? undefined : true}\n class=\"q2-carousel-navigation-button q2-carousel-navigation-button-prev\"\n hide-label\n label={loc('tecton.element.carousel.previousItemLabel')}\n onClick={() => this.swiper?.slidePrev()}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n );\n };\n\n render() {\n const {\n paneCount,\n fullWidthPanes,\n framelessPanes,\n compactMode,\n showNavigationArrows,\n insufficientPanes,\n autoPlay,\n hidePagination,\n ariaLiveValue,\n label,\n } = this;\n let carouselContainerClasses = ['q2-carousel-swiper-container', 'swiper-container'];\n if (fullWidthPanes) carouselContainerClasses = [...carouselContainerClasses, 'full-width-display'];\n if (framelessPanes) carouselContainerClasses = [...carouselContainerClasses, 'frameless-display'];\n if (!fullWidthPanes && !framelessPanes)\n carouselContainerClasses = [...carouselContainerClasses, 'content-peek-display'];\n if (compactMode) carouselContainerClasses = [...carouselContainerClasses, 'compact'];\n\n let paginationWrapperClasses = ['q2-carousel-pagination-navigation-wrapper'];\n if (showNavigationArrows) paginationWrapperClasses = [...paginationWrapperClasses, 'evenly-space'];\n\n return (\n <Host\n id={`q2-carousel-${this.guid}`}\n class=\"q2-carousel-instance\"\n >\n {insufficientPanes ? (\n this.renderInsufficientPanesDisplay()\n ) : (\n <Fragment>\n {paneCount > 1 && (\n <div class={paginationWrapperClasses.join(' ')}>\n {showNavigationArrows && this.renderPrevNavBtn()}\n\n <div class=\"q2-carousel-control-center-tray\">\n {!hidePagination && this.renderPaginationArea()}\n\n {autoPlay && this.renderAutoPlayBtn()}\n </div>\n\n {showNavigationArrows && this.renderNextNavBtn()}\n </div>\n )}\n\n <section\n class={carouselContainerClasses.join(' ')}\n ref={el => (this.carouselWrapper = el)}\n aria-roledescription=\"carousel\"\n aria-label={loc(label)}\n >\n <div\n class=\"q2-carousel-swiper-wrapper swiper-wrapper\"\n ref={el => (this.carouselPaneWrapperElement = el)}\n aria-live={ariaLiveValue}\n onKeyDown={this.keydownHandler}\n >\n <slot></slot>\n </div>\n </section>\n </Fragment>\n )}\n </Host>\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-carousel.js","sourceRoot":"","sources":["../../../../src/components/q2-carousel/q2-carousel.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Watch,\n State,\n Fragment,\n Element,\n Host,\n h,\n Event,\n EventEmitter,\n Listen,\n Method,\n} from '@stencil/core';\nimport { SwiperOptions, Autoplay, Swiper } from 'swiper';\nimport { createGuid, loc, handleAriaLabel, overrideFocus, isEventFromElement } from 'src/utils';\n\nconst carouselBreakpoint = 500; /* width in px of this host element where the layout starts to get unruly */\n\n@Component({ tag: 'q2-carousel', shadow: false, styleUrl: 'q2-carousel.scss' })\nexport class Q2Carousel implements ComponentInterface {\n // #region Own Properties\n\n carouselPaneWrapperElement: HTMLElement;\n carouselWrapper: HTMLElement;\n fullWidthDisplayOptions: SwiperOptions;\n guid = createGuid();\n mutationObserver: MutationObserver;\n swiper?: Swiper = null;\n universalCarouselOptions: SwiperOptions;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n /** Manages re-rendering the component when the `ariaLive` value changes. */\n @State()\n ariaLiveValue: 'polite' | 'off' = 'polite';\n\n /** Manages re-rendering the autoPlay button when clicked. */\n @State()\n autoPlayInProgress: boolean = false;\n\n /** Manages re-rendering the component when resize event is consumed. */\n @State()\n carouselWrapperWidth: number = 0;\n\n /** Manages sizing the component based on changes in `carouselWrapperWidth`. */\n @State()\n compactMode: boolean = false;\n\n /** Manages re-rendering the component when panes are added or removed. */\n @State()\n currentPaneCount: number = this.paneCount;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true })\n ariaLabel: string;\n\n /** Enables the auto-play feature and starts the carousel without user input. */\n @Prop({ reflect: true })\n autoPlay: boolean = false;\n\n /** Display the carousel panes as frameless with no container or shadow. */\n @Prop({ reflect: true })\n framelessPanes: boolean = false;\n\n /** Display the carousel panes full-width rather than with peeking content. */\n @Prop({ reflect: true })\n fullWidthPanes: boolean = false;\n\n /** Hide the dots below the carousel that provide navigation control and indicate which page is currently active. */\n @Prop({ reflect: true })\n hidePagination: boolean = false;\n\n /** The currently displayed carousel pane. */\n @Prop({ reflect: true, mutable: true })\n index: number = 1;\n\n /**\n * The label that is associated with the carousel. This is not displayed visually, but is presented by screen readers.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string = 'tecton.element.carousel.ariaLabel';\n\n /** Display navigation arrow buttons as another way to navigate the carousel. */\n @Prop({ reflect: true })\n showNavigationArrows: boolean = false;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the displayed carousel pane changes.\n */\n @Event()\n change: EventEmitter<{ index: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n if (!!this.swiper) {\n this.tearDownCarousel();\n }\n\n window.removeEventListener('resize', this.setCarouselWrapperWidth);\n }\n\n componentWillLoad() {\n handleAriaLabel(this);\n this.updateCarouselPaneProps();\n window.addEventListener('resize', this.setCarouselWrapperWidth);\n\n this.universalCarouselOptions = {\n centeredSlides: true,\n focusableElements:\n 'q2-btn, q2-dropdown, q2-item, q2-list, a, input, select, textarea, button, video, label, option',\n autoplay: this.autoPlay,\n modules: [Autoplay],\n on: {\n realIndexChange: swiper => {\n this.index = swiper.realIndex + 1;\n this.updateCarouselPaneProps();\n const isPaginationFocused = !!document.activeElement.closest(\n `#q2-carousel-${this.guid} .q2-carousel-page-indicator`\n );\n const isCarouselFocused = !!document.activeElement.closest(\n `#q2-carousel-${this.guid} q2-carousel-pane`\n );\n const isFocused = isPaginationFocused || isCarouselFocused;\n this.handleAriaLive(isFocused);\n this.change.emit({ index: swiper.realIndex + 1 });\n\n if (isPaginationFocused) {\n this.paginationBtns[swiper.realIndex].focus({ preventScroll: true });\n } else if (isCarouselFocused)\n (swiper.slides[swiper.realIndex] as HTMLElement).focus({\n preventScroll: true,\n });\n },\n afterInit: swiper => {\n this.swiper = swiper;\n this.activePane?.addEventListener('popoverStateChanged', this.handlePopovers);\n },\n slideChangeTransitionEnd: () => {\n this.activePane?.addEventListener('popoverStateChanged', this.handlePopovers);\n },\n slideChangeTransitionStart: () => {\n this.activePane?.removeEventListener('popoverStateChanged', this.handlePopovers);\n },\n },\n };\n\n this.fullWidthDisplayOptions = {\n slidesPerView: 1,\n spaceBetween: 100,\n ...this.universalCarouselOptions,\n };\n }\n\n componentDidLoad() {\n this.setCarouselWrapperWidth();\n if (this.carouselWrapper && !!this.paneArray.length) {\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n }\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('clickCarouselPane')\n carouselPaneClicked(event) {\n this.swiper?.slideTo(event.detail.paneIndex);\n (this.swiper?.slides[event.detail.paneIndex] as HTMLElement).focus({ preventScroll: true });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n const activePane = this.swiper?.slides[this.swiper?.realIndex];\n if (!isEventFromElement(event, this.hostElement) || !activePane) return;\n (activePane as HTMLElement).focus({ preventScroll: true });\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clicks and Focuses the `q2-carousel-pane` matching the specified index.\n * @testOnly\n */\n @Method()\n async selectCarouselPane(index: number) {\n if (index > this.paneCount) return;\n const actualIndex = index > 0 ? index - 1 : 0;\n const pane = this.paneArray[actualIndex];\n pane?.click();\n pane?.focus({ preventScroll: true });\n }\n\n /**\n * Clicks and Focuses the `<button>` that controls playing or pausing the auto-play feature of the carousel.\n *\n * @warning\n * If the `autoPlay` property is not enabled, this method does nothing.\n *\n * @testOnly\n */\n @Method()\n async togglePlayPause() {\n if (!this.autoPlay) return;\n const playPauseBtn = this.hostElement.querySelector('.q2-carousel-autoplay-control') as HTMLQ2BtnElement;\n playPauseBtn?.click();\n playPauseBtn?.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('carouselWrapperWidth')\n carouselWrapperWidthChanged() {\n this.compactMode = this.carouselWrapperWidth < carouselBreakpoint;\n }\n\n @Watch('framelessPanes')\n framelessPanesChanged() {\n this.updateCarouselPaneProps();\n this.revampCarousel();\n }\n\n @Watch('fullWidthPanes')\n @Watch('framelessPanes')\n @Watch('compactMode')\n @Watch('autoPlay')\n revampCarousel() {\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n }\n\n @Watch('index')\n indexChanged(newIndex) {\n // this allows the carousel to be swiped programmatically via the index prop\n if (newIndex !== this.swiper?.realIndex + 1) {\n this.swiper?.slideTo(this.realIndex);\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get activeCarouselOptions() {\n return this.fullWidthPanes || this.framelessPanes\n ? this.fullWidthDisplayOptions\n : this.peekContentDisplayOptions;\n }\n\n get activePane(): HTMLElement {\n const activeSlide = this.swiper?.slides[this.swiper?.realIndex] ?? 0;\n return activeSlide instanceof HTMLElement ? activeSlide : null;\n }\n\n get insufficientPanes() {\n return this.paneCount < 1;\n }\n\n get paginationBtns(): NodeListOf<HTMLButtonElement> {\n return this.hostElement.querySelectorAll('.q2-carousel-page-indicator');\n }\n\n get paneArray(): HTMLQ2CarouselPaneElement[] {\n return Array.from(this.hostElement.querySelectorAll('q2-carousel-pane'));\n }\n\n get paneCount() {\n return this.paneArray.length;\n }\n\n get peekContentDisplayOptions(): SwiperOptions {\n return {\n slidesPerView: 2,\n spaceBetween: this.compactMode ? 0 : -10,\n centerInsufficientSlides: false,\n ...this.universalCarouselOptions,\n };\n }\n\n get realIndex(): number {\n const indexNum = Number(this.index);\n return indexNum > 0 ? indexNum - 1 : 0;\n }\n\n get useDynamicPaginationDots() {\n return this.paneCount && this.paneCount > 5;\n }\n\n configureCarousel = (carouselWrapper, carouselOptions) => {\n if (!!this.swiper) {\n this.tearDownCarousel();\n }\n this.autoPlayInProgress = this.autoPlay;\n\n new Swiper(carouselWrapper, carouselOptions);\n this.swiper?.slideTo(this.realIndex);\n if (this.autoPlayInProgress) this.swiper?.autoplay.start();\n };\n\n handleAriaLive(activeAndFocused: boolean) {\n if (this.autoPlayInProgress && !activeAndFocused) {\n this.ariaLiveValue = 'off';\n } else {\n this.ariaLiveValue = 'polite';\n }\n }\n\n handleAutoPlayPause = (action: 'play' | 'pause') => {\n if (!this.autoPlay) return;\n const autoplay = this.swiper?.autoplay;\n switch (action) {\n case 'play':\n autoplay.start();\n this.autoPlayInProgress = true;\n break;\n case 'pause':\n autoplay.stop();\n this.autoPlayInProgress = false;\n break;\n }\n };\n\n handlePopovers = (event: CustomEvent) => {\n const { swiper, carouselPaneWrapperElement } = this;\n if (event.detail.open) {\n carouselPaneWrapperElement.style.left = `${swiper?.translate}px`;\n carouselPaneWrapperElement.style.transform = null;\n swiper?.disable();\n } else {\n carouselPaneWrapperElement.style.left = null;\n carouselPaneWrapperElement.style.transform = `translate3d(${swiper?.translate}px, 0, 0)`;\n swiper?.enable();\n }\n };\n\n keydownHandler = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n this.swiper?.slideNext();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.swiper?.slidePrev();\n break;\n\n case 'Home':\n event.preventDefault();\n this.swiper?.slideTo(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.swiper?.slideTo(this.paneCount - 1);\n break;\n }\n };\n\n onMutationObserved = () => {\n this.updateCarouselPaneProps();\n this.configureCarousel(this.carouselWrapper, this.activeCarouselOptions);\n };\n\n setCarouselWrapperWidth = () => {\n if (this.insufficientPanes) return;\n this.carouselWrapperWidth = this.carouselWrapper.clientWidth;\n };\n\n tearDownCarousel = () => {\n this.swiper.destroy();\n this.swiper = null;\n };\n\n updateCarouselPaneProps = () => {\n const { framelessPanes, paneCount, paneArray } = this;\n\n paneArray.forEach((pane, index) => {\n pane.index = index;\n pane.siblingCount = paneCount;\n pane.isActivePane = index === this.realIndex;\n pane.slotFrameless = framelessPanes || undefined;\n });\n this.currentPaneCount = paneCount;\n };\n\n // #endregion\n // #region Render Methods\n\n renderAutoPlayBtn = () => {\n const { autoPlayInProgress } = this;\n return (\n <q2-btn\n type=\"button\"\n hide-label\n label={loc(\n autoPlayInProgress\n ? 'tecton.element.carousel.pausePlayLabel'\n : 'tecton.element.carousel.resumePlayLabel'\n )}\n class=\"q2-carousel-autoplay-control\"\n onClick={() => this.handleAutoPlayPause(autoPlayInProgress ? 'pause' : 'play')}\n >\n <q2-icon type={autoPlayInProgress ? 'pause' : 'play'} />\n </q2-btn>\n );\n };\n\n renderInsufficientPanesDisplay = () => {\n let insufficientPanesContainerClasses = [\n 'insufficient-pane-feedback',\n this.fullWidthPanes ? 'full-width-display' : 'content-peek-display',\n ];\n if (this.compactMode) insufficientPanesContainerClasses = [...insufficientPanesContainerClasses, 'compact'];\n\n return (\n <div class={insufficientPanesContainerClasses.join(' ')}>\n <div class=\"insufficient-panes-icon-wrapper\">\n <q2-icon type=\"warning\" />\n </div>\n <p class=\"insufficient-panes-header\">\n <strong>{loc('tecton.element.carousel.insufficientPanesMessageHeader')}</strong>\n </p>\n <p class=\"insufficient-panes-body\">{loc('tecton.element.carousel.insufficientPanesMessageBody')}</p>\n </div>\n );\n };\n\n renderNextNavBtn = () => {\n const nextPaneAvailable = this.realIndex < this.paneCount - 1;\n\n return (\n <div>\n <q2-btn\n type=\"button\"\n disabled={nextPaneAvailable ? undefined : true}\n class=\"q2-carousel-navigation-button q2-carousel-navigation-button-next\"\n hide-label\n label={loc('tecton.element.carousel.nextItemLabel')}\n onClick={() => this.swiper?.slideNext()}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n </div>\n );\n };\n\n renderPaginationArea = () => {\n const { useDynamicPaginationDots, realIndex, paneCount, paneArray } = this;\n let paginationContainerClasses = ['q2-carousel-pagination'];\n if (useDynamicPaginationDots) paginationContainerClasses = [...paginationContainerClasses, 'dynamic'];\n\n return (\n <div\n class={paginationContainerClasses.join(' ')}\n role=\"tablist\"\n aria-label={loc('tecton.element.carousel.tabWrapperLabel')}\n >\n {paneArray.map(pane => {\n let btnClasses = ['q2-carousel-page-indicator', `q2-carousel-page-indicator-${pane.index}`];\n if (pane.isActivePane) btnClasses = [...btnClasses, 'active-page'];\n if (useDynamicPaginationDots) btnClasses = [...btnClasses, 'dynamic'];\n\n const withinOneOfActive = pane.index === realIndex + 1 || pane.index === realIndex - 1;\n if (withinOneOfActive) btnClasses = [...btnClasses, 'active-adjacent'];\n\n const withinTwoOfActive = pane.index === realIndex + 2 || pane.index === realIndex - 2;\n if (withinTwoOfActive) btnClasses = [...btnClasses, 'active-adjacent-adjacent'];\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n tabIndex={pane.isActivePane ? undefined : -1}\n aria-selected={pane.isActivePane ? 'true' : 'false'}\n class={btnClasses.join(' ')}\n onClick={() => this.swiper?.slideTo(pane.index)}\n onKeyDown={this.keydownHandler}\n aria-label={loc('tecton.element.carousel.itemDescription', [\n (pane.index + 1).toString(),\n paneCount.toString(),\n ])}\n ></button>\n );\n })}\n </div>\n );\n };\n\n renderPrevNavBtn = () => {\n const prevPaneAvailable = this.realIndex > 0;\n\n return (\n <div>\n <q2-btn\n type=\"button\"\n disabled={prevPaneAvailable ? undefined : true}\n class=\"q2-carousel-navigation-button q2-carousel-navigation-button-prev\"\n hide-label\n label={loc('tecton.element.carousel.previousItemLabel')}\n onClick={() => this.swiper?.slidePrev()}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n );\n };\n\n render() {\n const {\n paneCount,\n fullWidthPanes,\n framelessPanes,\n compactMode,\n showNavigationArrows,\n insufficientPanes,\n autoPlay,\n hidePagination,\n ariaLiveValue,\n label,\n } = this;\n let carouselContainerClasses = ['q2-carousel-swiper-container', 'swiper-container'];\n if (fullWidthPanes) carouselContainerClasses = [...carouselContainerClasses, 'full-width-display'];\n if (framelessPanes) carouselContainerClasses = [...carouselContainerClasses, 'frameless-display'];\n if (!fullWidthPanes && !framelessPanes)\n carouselContainerClasses = [...carouselContainerClasses, 'content-peek-display'];\n if (compactMode) carouselContainerClasses = [...carouselContainerClasses, 'compact'];\n\n let paginationWrapperClasses = ['q2-carousel-pagination-navigation-wrapper'];\n if (showNavigationArrows) paginationWrapperClasses = [...paginationWrapperClasses, 'evenly-space'];\n\n return (\n <Host\n id={`q2-carousel-${this.guid}`}\n class=\"q2-carousel-instance\"\n >\n {insufficientPanes ? (\n this.renderInsufficientPanesDisplay()\n ) : (\n <Fragment>\n {paneCount > 1 && (\n <div class={paginationWrapperClasses.join(' ')}>\n {showNavigationArrows && this.renderPrevNavBtn()}\n\n <div class=\"q2-carousel-control-center-tray\">\n {!hidePagination && this.renderPaginationArea()}\n\n {autoPlay && this.renderAutoPlayBtn()}\n </div>\n\n {showNavigationArrows && this.renderNextNavBtn()}\n </div>\n )}\n\n <section\n class={carouselContainerClasses.join(' ')}\n ref={el => (this.carouselWrapper = el)}\n aria-roledescription=\"carousel\"\n aria-label={loc(label)}\n >\n <div\n class=\"q2-carousel-swiper-wrapper swiper-wrapper\"\n ref={el => (this.carouselPaneWrapperElement = el)}\n aria-live={ariaLiveValue}\n onKeyDown={this.keydownHandler}\n >\n <slot></slot>\n </div>\n </section>\n </Fragment>\n )}\n </Host>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-carousel-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-carousel/test/q2-carousel-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport {\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getNestedElementStyle,\n getNestedElementProperty,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-carousel', () => {\n const renderCarousel = (\n numberOfPanes: number,\n config?: {\n showNavigation?: boolean;\n hidePagination?: boolean;\n fullWidthPanes?: boolean;\n framelessPanes?: boolean;\n autoPlay?: boolean;\n index?: number;\n }\n ) => {\n const { showNavigation, hidePagination, fullWidthPanes, framelessPanes, autoPlay, index } = {\n ...{\n showNavigation: false,\n hidePagination: false,\n fullWidthPanes: false,\n framelessPanes: false,\n autoPlay: false,\n },\n ...config,\n };\n return `<q2-carousel\n ${showNavigation ? `show-navigation-arrows` : ''}\n ${hidePagination ? `hide-pagination` : ''}\n ${fullWidthPanes ? `full-width-panes` : ''}\n ${framelessPanes ? `frameless-panes` : ''}\n ${autoPlay ? `auto-play` : ''}\n ${index ? `index=\"${index}\"` : ''}\n >\n ${[...Array(numberOfPanes).keys()].map(\n index => `<q2-carousel-pane>Pane ${index + 1}</q2-carousel-pane>`\n )}\n </q2-carousel>`;\n };\n const isPaneFocused = async (page: E2EPage, paneIndex: number) =>\n page.evaluate(\n paneIndex => document.activeElement === document.querySelectorAll('q2-carousel-pane')[paneIndex],\n paneIndex\n );\n\n const getActiveElementClasses = async (page: E2EPage): Promise<string> => {\n return await page.$eval('q2-carousel', (): string => {\n return document.activeElement.className;\n });\n };\n\n it('renders with default properties', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const carouselPagination = await page.find('q2-carousel .q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const firstPaginationButton = carouselPaginationButtons[0];\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(carousel).not.toBeNull();\n expect(carousel.getAttribute('id').includes('q2-carousel-')).toEqual(true);\n expect(carousel.classList.contains('q2-carousel-instance')).toEqual(true);\n expect(carouselContainer.classList.contains('content-peek-display')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(carouselContainer.classList.contains('insufficient-panes')).toEqual(false);\n expect(carouselPagination).not.toBeNull();\n expect(carouselPaginationButtons).toHaveLength(3);\n expect(firstPaginationButton.classList.contains('active-page')).toEqual(true);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(false);\n expect(navigationButtons).toEqual([]);\n expect(await carousel.getProperty('swiper')).not.toBeNull();\n expect(await carousel.getProperty('autoPlay')).toEqual(false);\n expect(await carousel.getProperty('fullWidthPanes')).toEqual(false);\n expect(await carousel.getProperty('hidePagination')).toEqual(false);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(false);\n });\n\n describe('Pagination', () => {\n it('pagination dots and navigation arrows can make the carousel advance or go back in order', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const secondCarouselPane = carouselPanes[1];\n const thirdCarouselPane = carouselPanes[2];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(true);\n\n // go to second pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-2', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n\n // back to second pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-prev', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-next', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n });\n\n it('displays dynamic pagination indicators if more than five q2-carousel-panes present', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPagination = await page.find('.q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const carouselActivePaginationButton = await page.find(\n 'q2-carousel .q2-carousel-page-indicator.active-page'\n );\n const carouselPaginationNonVisibleButtons = await page.findAll(\n '.q2-carousel-page-indicator:not(.active-page):not(.active-adjacent):not(.active-adjacent-adjacent)'\n );\n expect(carouselPagination.classList.contains('dynamic')).toEqual(true);\n expect(await carouselActivePaginationButton.isVisible()).toBe(true);\n expect(carouselPaginationButtons).toHaveLength(6);\n expect(carouselPaginationNonVisibleButtons).toHaveLength(3);\n });\n\n it('hides pagination/navigation if only one content pane is provided in content peek mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n it('hides pagination/navigation if only one content pane is provided in full-width mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1, { fullWidthPanes: true }),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n describe('when only one pane is provided', () => {\n it('does not render pagination', async () => {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n\n describe('when hide-pagination and show-navigation are provided', () => {\n it('still renders accordingly', async () => {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true, showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const navPaginationContainer = await page.find(\n 'q2-carousel .q2-carousel-pagination-navigation-wrapper'\n );\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(navPaginationContainer).toHaveClass('evenly-space');\n expect(navigationButtons).toHaveLength(2);\n });\n });\n });\n\n it('localizes necessary text', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const firstCarouselPane = await page.find('q2-carousel .q2-carousel-pane-0');\n const firstPaginationButton = await page.find(\n 'q2-carousel .q2-carousel-pagination .q2-carousel-page-indicator-0'\n );\n const nextNavBtn = await page.find('.q2-carousel-navigation-button-next');\n\n expect(carouselContainer).toEqualAttribute('aria-label', 'tecton.element.carousel.ariaLabel');\n expect(firstCarouselPane).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-selected', 'true');\n expect(nextNavBtn).toEqualAttribute('label', 'tecton.element.carousel.nextItemLabel');\n\n const prevNavBtn = await page.find('.q2-carousel-navigation-button-prev');\n expect(prevNavBtn).toEqualAttribute('label', 'tecton.element.carousel.previousItemLabel');\n });\n\n it('puts itself in compact mode if dimensions are right for it', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('.q2-carousel-swiper-container');\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(false);\n\n await page.setViewport({ width: 500, height: 800 });\n await page.waitForChanges();\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(true);\n });\n\n describe('when no panes are provided', () => {\n it('informs the user that more panes are needed', async () => {\n const page = await setup({\n html: renderCarousel(0),\n });\n\n const userMessage = await page.find('.insufficient-pane-feedback');\n const userMessageHeader = await page.find('.insufficient-pane-feedback .insufficient-panes-header');\n const userMessageBody = await page.find('.insufficient-pane-feedback .insufficient-panes-body');\n\n expect(userMessage).not.toBeNull();\n expect(await userMessageHeader.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageHeader');\n expect(await userMessageBody.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageBody');\n });\n });\n\n describe('Mutation Observer', () => {\n describe('when adding a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel', (el: HTMLElement) => {\n const newPane = document.createElement(`q2-carousel-pane`);\n newPane.setAttribute('label', 'New Pane');\n el.appendChild(newPane);\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(4);\n expect(pageIndicators).toHaveLength(4);\n expect(activeIndex).toBe('1');\n });\n });\n describe('when removing a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel-pane', (el: HTMLElement) => {\n el.remove();\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(2);\n expect(pageIndicators).toHaveLength(2);\n expect(activeIndex).toBe('1');\n });\n });\n });\n\n describe('Focus', () => {\n it('focuses selected pane when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html: renderCarousel(3) });\n await dispatchEvent(page, ['q2-carousel'], 'focus');\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('focuses selected pane when focus method called ', async function (): Promise<void> {\n const page = await setup({ html: renderCarousel(3) });\n const carousel = await page.find('q2-carousel');\n carousel.triggerEvent('focus');\n await page.waitForChanges();\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('manages focus between pagination and carousel pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n let activeElementClasses;\n\n // Tab into pagination button\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-page-indicator')).toEqual(true);\n\n // Tab into the carousel pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('swiper-slide-active')).toEqual(true);\n\n // Tab back to pagination button\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-page-indicator')).toEqual(true);\n\n // Tab out of `q2-carousel`\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.length).toEqual(0);\n });\n });\n\n it.skip('navigates from panes to inner focusable content', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel hide-pagination>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n <q2-btn intent=\"workflow-primary\" class=\"button 1\">Nested Focusable Content 1</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n <q2-btn intent=\"workflow-primary\" class=\"button 2\">Nested Focusable Content 2</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button class=\"button 3\">Nested Focusable Content 3</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n const carousel = await page.find('q2-carousel');\n let activeElementClasses;\n // select first pane\n await carousel.callMethod('selectCarouselPane', 1);\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(await isPaneFocused(page, 0)).toEqual(true);\n expect(activeElementClasses.includes('q2-carousel-pane-0')).toEqual(true);\n // tab to button inside first pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('button 1')).toEqual(true);\n // select second pane\n await carousel.callMethod('selectCarouselPane', 2);\n await page.waitForChanges();\n expect(await isPaneFocused(page, 1)).toEqual(true);\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n // tab to button inside second pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses).toEqual('button 2');\n });\n\n describe('when q2-dropdown elements are added to panes', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-carousel>\n ${[...Array(3).keys()].map(\n index => `\n <q2-carousel-pane id=\"pane-${index + 1}\">\n <p>Pane ${index + 1}</p>\n <button>Button</button>\n <q2-dropdown\n type=\"icon\"\n label=\"My dropdown\"\n icon=\"options\"\n hide-label\n >\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-carousel-pane>\n `\n )}\n </q2-carousel>\n `,\n });\n\n await page.waitForChanges();\n });\n\n it('disables carousel, removes transform, and uses \"left\" coordinates when opened', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n const swiperSelector = '.swiper-wrapper';\n const transformMatrix = 'matrix(1, 0, 0, 1, 193.5, 0)';\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('193.5px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual('none');\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n });\n\n it('closes the dropdown when a static element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 p');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n\n it('closes the dropdown when another focusable element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 button');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n });\n\n describe('Props', () => {\n describe('framelessPanes', () => {\n describe('when not provided', () => {\n it('does not set slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: false }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).not.toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === false)).toBeTruthy();\n });\n });\n\n describe('when provided', () => {\n it('sets slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: true }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === true)).toBeTruthy();\n });\n });\n });\n\n describe('autoPlay', () => {\n describe('when not provided', () => {\n it('does not render autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).toBeNull();\n\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n expect(carouselWrapper).toEqualAttribute('aria-live', 'polite');\n });\n });\n\n describe('when provided', () => {\n it('renders the autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).not.toBeNull();\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await autoPlayBtn.click();\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n });\n\n it('sets aria-live value to off when auto-playing and not focused', async () => {\n const isFocused = async (page: E2EPage, selector: string) =>\n page.evaluate(selector => {\n const element = document.querySelector(selector);\n return element === document.activeElement;\n }, selector);\n\n const page = await setup({\n html: `${renderCarousel(3, { autoPlay: true })} <q2-input></q2-input>`,\n });\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n const inputField = await page.find('q2-input');\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n\n expect(autoPlayBtn).not.toBeNull();\n expect(inputField).not.toBeNull();\n\n await inputField.focus();\n await new Promise(r => setTimeout(r, 10000));\n await page.waitForChanges();\n const inputFocused = await isFocused(page, 'q2-input');\n\n expect(inputFocused).toBeTruthy();\n expect(carouselWrapper).toEqualAttribute('aria-live', 'off');\n });\n });\n });\n\n describe('fullWidthPanes', () => {\n describe('when not provided', () => {\n it('adds content-peek-display', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).toHaveClass('content-peek-display');\n expect(carouselContainer).not.toHaveClass('full-width-display');\n\n const carousel = await page.find('q2-carousel');\n await carousel.setProperty('fullWidthPanes', true);\n await page.waitForChanges();\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n\n describe('when provided', () => {\n it('adds full-width-display class', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { fullWidthPanes: true }),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n });\n\n describe('hidePagination', () => {\n describe('when not provided', () => {\n it('renders pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n const pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n expect(pagination).toBeTruthy();\n expect(pageIndicators).toHaveLength(3);\n });\n });\n\n describe('when provided', () => {\n it('does not render pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true }),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n });\n\n describe('showNavigationArrows', () => {\n describe('when not provided', () => {\n it('does not render navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeNull();\n expect(nextBtn).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeTruthy();\n expect(nextBtn).toBeTruthy();\n });\n });\n });\n\n describe('index', () => {\n describe('when not provided', () => {\n it('starts on the first pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('when provided', () => {\n it('starts on the specified pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { index: 2 }),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n });\n });\n\n describe('Methods', () => {\n it('togglePlayPause() toggles autoplay button', async () => {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n const carousel = await page.find('q2-carousel');\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await carousel.callMethod('togglePlayPause');\n await page.waitForChanges();\n\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n\n await carousel.callMethod('togglePlayPause');\n await page.waitForChanges();\n\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n });\n it('selectCarouselPane() selects the specified pane', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n\n await carousel.callMethod('selectCarouselPane', 2);\n await page.waitForChanges();\n\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({\n html: `\n <q2-carousel aria-label=\"${label}\">\n <q2-carousel-pane>\n <h2>Foo</h2>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-carousel'), label);\n const container = await page.find('q2-carousel .q2-carousel-swiper-container');\n expect(container).toEqualAttribute('aria-label', label);\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n it('can advance the carousel using keys', async () => {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n await carouselPanes[0].focus();\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[2]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 2)).toEqual(true);\n\n await page.keyboard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[5]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 5)).toEqual(true);\n\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 0)).toEqual(true);\n });\n });\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-carousel-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-carousel/test/q2-carousel-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport {\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getNestedElementStyle,\n getNestedElementProperty,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-carousel', () => {\n const renderCarousel = (\n numberOfPanes: number,\n config?: {\n showNavigation?: boolean;\n hidePagination?: boolean;\n fullWidthPanes?: boolean;\n framelessPanes?: boolean;\n autoPlay?: boolean;\n index?: number;\n }\n ) => {\n const { showNavigation, hidePagination, fullWidthPanes, framelessPanes, autoPlay, index } = {\n ...{\n showNavigation: false,\n hidePagination: false,\n fullWidthPanes: false,\n framelessPanes: false,\n autoPlay: false,\n },\n ...config,\n };\n return `<q2-carousel\n ${showNavigation ? `show-navigation-arrows` : ''}\n ${hidePagination ? `hide-pagination` : ''}\n ${fullWidthPanes ? `full-width-panes` : ''}\n ${framelessPanes ? `frameless-panes` : ''}\n ${autoPlay ? `auto-play` : ''}\n ${index ? `index=\"${index}\"` : ''}\n >\n ${[...Array(numberOfPanes).keys()].map(\n index => `<q2-carousel-pane>Pane ${index + 1}</q2-carousel-pane>`\n )}\n </q2-carousel>`;\n };\n const isPaneFocused = async (page: E2EPage, paneIndex: number) =>\n page.evaluate(\n paneIndex => document.activeElement === document.querySelectorAll('q2-carousel-pane')[paneIndex],\n paneIndex\n );\n\n const getActiveElementClasses = async (page: E2EPage): Promise<string> => {\n return await page.$eval('q2-carousel', (): string => {\n return document.activeElement.className;\n });\n };\n\n it('renders with default properties', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const carouselPagination = await page.find('q2-carousel .q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const firstPaginationButton = carouselPaginationButtons[0];\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(carousel).not.toBeNull();\n expect(carousel.getAttribute('id').includes('q2-carousel-')).toEqual(true);\n expect(carousel.classList.contains('q2-carousel-instance')).toEqual(true);\n expect(carouselContainer.classList.contains('content-peek-display')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(carouselContainer.classList.contains('insufficient-panes')).toEqual(false);\n expect(carouselPagination).not.toBeNull();\n expect(carouselPaginationButtons).toHaveLength(3);\n expect(firstPaginationButton.classList.contains('active-page')).toEqual(true);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(false);\n expect(navigationButtons).toEqual([]);\n expect(await carousel.getProperty('swiper')).not.toBeNull();\n expect(await carousel.getProperty('autoPlay')).toEqual(false);\n expect(await carousel.getProperty('fullWidthPanes')).toEqual(false);\n expect(await carousel.getProperty('hidePagination')).toEqual(false);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(false);\n });\n\n describe('Pagination', () => {\n it('pagination dots and navigation arrows can make the carousel advance or go back in order', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const secondCarouselPane = carouselPanes[1];\n const thirdCarouselPane = carouselPanes[2];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(true);\n\n // go to second pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-2', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n\n // back to second pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-prev', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-next', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n });\n\n it('displays dynamic pagination indicators if more than five q2-carousel-panes present', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPagination = await page.find('.q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const carouselActivePaginationButton = await page.find(\n 'q2-carousel .q2-carousel-page-indicator.active-page'\n );\n const carouselPaginationNonVisibleButtons = await page.findAll(\n '.q2-carousel-page-indicator:not(.active-page):not(.active-adjacent):not(.active-adjacent-adjacent)'\n );\n expect(carouselPagination.classList.contains('dynamic')).toEqual(true);\n expect(await carouselActivePaginationButton.isVisible()).toBe(true);\n expect(carouselPaginationButtons).toHaveLength(6);\n expect(carouselPaginationNonVisibleButtons).toHaveLength(3);\n });\n\n it('hides pagination/navigation if only one content pane is provided in content peek mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n it('hides pagination/navigation if only one content pane is provided in full-width mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1, { fullWidthPanes: true }),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n describe('when only one pane is provided', () => {\n it('does not render pagination', async () => {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n\n describe('when hide-pagination and show-navigation are provided', () => {\n it('still renders accordingly', async () => {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true, showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const navPaginationContainer = await page.find(\n 'q2-carousel .q2-carousel-pagination-navigation-wrapper'\n );\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(navPaginationContainer).toHaveClass('evenly-space');\n expect(navigationButtons).toHaveLength(2);\n });\n });\n });\n\n it('localizes necessary text', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const firstCarouselPane = await page.find('q2-carousel .q2-carousel-pane-0');\n const firstPaginationButton = await page.find(\n 'q2-carousel .q2-carousel-pagination .q2-carousel-page-indicator-0'\n );\n const nextNavBtn = await page.find('.q2-carousel-navigation-button-next');\n\n expect(carouselContainer).toEqualAttribute('aria-label', 'tecton.element.carousel.ariaLabel');\n expect(firstCarouselPane).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-selected', 'true');\n expect(nextNavBtn).toEqualAttribute('label', 'tecton.element.carousel.nextItemLabel');\n\n const prevNavBtn = await page.find('.q2-carousel-navigation-button-prev');\n expect(prevNavBtn).toEqualAttribute('label', 'tecton.element.carousel.previousItemLabel');\n });\n\n it('puts itself in compact mode if dimensions are right for it', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('.q2-carousel-swiper-container');\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(false);\n\n await page.setViewport({ width: 500, height: 800 });\n await page.waitForChanges();\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(true);\n });\n\n describe('when no panes are provided', () => {\n it('informs the user that more panes are needed', async () => {\n const page = await setup({\n html: renderCarousel(0),\n });\n\n const userMessage = await page.find('.insufficient-pane-feedback');\n const userMessageHeader = await page.find('.insufficient-pane-feedback .insufficient-panes-header');\n const userMessageBody = await page.find('.insufficient-pane-feedback .insufficient-panes-body');\n\n expect(userMessage).not.toBeNull();\n expect(await userMessageHeader.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageHeader');\n expect(await userMessageBody.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageBody');\n });\n });\n\n describe('Mutation Observer', () => {\n describe('when adding a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel', (el: HTMLElement) => {\n const newPane = document.createElement(`q2-carousel-pane`);\n newPane.setAttribute('label', 'New Pane');\n el.appendChild(newPane);\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(4);\n expect(pageIndicators).toHaveLength(4);\n expect(activeIndex).toBe('1');\n });\n });\n describe('when removing a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel-pane', (el: HTMLElement) => {\n el.remove();\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(2);\n expect(pageIndicators).toHaveLength(2);\n expect(activeIndex).toBe('1');\n });\n });\n });\n\n describe('Focus', () => {\n it('focuses selected pane when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html: renderCarousel(3) });\n await dispatchEvent(page, ['q2-carousel'], 'focus');\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('focuses selected pane when focus method called ', async function (): Promise<void> {\n const page = await setup({ html: renderCarousel(3) });\n const carousel = await page.find('q2-carousel');\n carousel.triggerEvent('focus');\n await page.waitForChanges();\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('manages focus between pagination and carousel pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n let activeElementClasses;\n\n // Tab into pagination button\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-page-indicator')).toEqual(true);\n\n // Tab into the carousel pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('swiper-slide-active')).toEqual(true);\n\n // Tab back to pagination button\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-page-indicator')).toEqual(true);\n\n // Tab out of `q2-carousel`\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.length).toEqual(0);\n });\n });\n\n it.skip('navigates from panes to inner focusable content', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel hide-pagination>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n <q2-btn intent=\"workflow-primary\" class=\"button 1\">Nested Focusable Content 1</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n <q2-btn intent=\"workflow-primary\" class=\"button 2\">Nested Focusable Content 2</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button class=\"button 3\">Nested Focusable Content 3</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n const carousel = await page.find('q2-carousel');\n let activeElementClasses;\n // select first pane\n await carousel.callMethod('selectCarouselPane', 1);\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(await isPaneFocused(page, 0)).toEqual(true);\n expect(activeElementClasses.includes('q2-carousel-pane-0')).toEqual(true);\n // tab to button inside first pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('button 1')).toEqual(true);\n // select second pane\n await carousel.callMethod('selectCarouselPane', 2);\n await page.waitForChanges();\n expect(await isPaneFocused(page, 1)).toEqual(true);\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n // tab to button inside second pane\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await getActiveElementClasses(page);\n expect(activeElementClasses).toEqual('button 2');\n });\n\n describe('when q2-dropdown elements are added to panes', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-carousel>\n ${[...Array(3).keys()].map(\n index => `\n <q2-carousel-pane id=\"pane-${index + 1}\">\n <p>Pane ${index + 1}</p>\n <button>Button</button>\n <q2-dropdown\n type=\"icon\"\n label=\"My dropdown\"\n icon=\"options\"\n hide-label\n >\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-carousel-pane>\n `\n )}\n </q2-carousel>\n `,\n });\n\n await page.waitForChanges();\n });\n\n it('disables carousel, removes transform, and uses \"left\" coordinates when opened', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n const swiperSelector = '.swiper-wrapper';\n const transformMatrix = 'matrix(1, 0, 0, 1, 193.5, 0)';\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('193.5px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual('none');\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n });\n\n it('closes the dropdown when a static element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 p');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n\n it('closes the dropdown when another focusable element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 button');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n });\n\n describe('Props', () => {\n describe('framelessPanes', () => {\n describe('when not provided', () => {\n it('does not set slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: false }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).not.toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === false)).toBeTruthy();\n });\n });\n\n describe('when provided', () => {\n it('sets slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: true }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === true)).toBeTruthy();\n });\n });\n });\n\n describe('autoPlay', () => {\n describe('when not provided', () => {\n it('does not render autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).toBeNull();\n\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n expect(carouselWrapper).toEqualAttribute('aria-live', 'polite');\n });\n });\n\n describe('when provided', () => {\n it('renders the autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).not.toBeNull();\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await autoPlayBtn.click();\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n });\n\n it('sets aria-live value to off when auto-playing and not focused', async () => {\n const isFocused = async (page: E2EPage, selector: string) =>\n page.evaluate(selector => {\n const element = document.querySelector(selector);\n return element === document.activeElement;\n }, selector);\n\n const page = await setup({\n html: `${renderCarousel(3, { autoPlay: true })} <q2-input></q2-input>`,\n });\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n const inputField = await page.find('q2-input');\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n\n expect(autoPlayBtn).not.toBeNull();\n expect(inputField).not.toBeNull();\n\n await inputField.focus();\n await new Promise(r => setTimeout(r, 10000));\n await page.waitForChanges();\n const inputFocused = await isFocused(page, 'q2-input');\n\n expect(inputFocused).toBeTruthy();\n expect(carouselWrapper).toEqualAttribute('aria-live', 'off');\n });\n });\n });\n\n describe('fullWidthPanes', () => {\n describe('when not provided', () => {\n it('adds content-peek-display', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).toHaveClass('content-peek-display');\n expect(carouselContainer).not.toHaveClass('full-width-display');\n\n const carousel = await page.find('q2-carousel');\n await carousel.setProperty('fullWidthPanes', true);\n await page.waitForChanges();\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n\n describe('when provided', () => {\n it('adds full-width-display class', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { fullWidthPanes: true }),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n });\n\n describe('hidePagination', () => {\n describe('when not provided', () => {\n it('renders pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n const pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n expect(pagination).toBeTruthy();\n expect(pageIndicators).toHaveLength(3);\n });\n });\n\n describe('when provided', () => {\n it('does not render pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true }),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n });\n\n describe('showNavigationArrows', () => {\n describe('when not provided', () => {\n it('does not render navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeNull();\n expect(nextBtn).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeTruthy();\n expect(nextBtn).toBeTruthy();\n });\n });\n });\n\n describe('index', () => {\n describe('when not provided', () => {\n it('starts on the first pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('when provided', () => {\n it('starts on the specified pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { index: 2 }),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n });\n });\n\n describe('Methods', () => {\n it('togglePlayPause() toggles autoplay button', async () => {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n const carousel = await page.find('q2-carousel');\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await carousel.callMethod('togglePlayPause');\n await page.waitForChanges();\n\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n\n await carousel.callMethod('togglePlayPause');\n await page.waitForChanges();\n\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n });\n it('selectCarouselPane() selects the specified pane', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n\n await carousel.callMethod('selectCarouselPane', 2);\n await page.waitForChanges();\n\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({\n html: `\n <q2-carousel aria-label=\"${label}\">\n <q2-carousel-pane>\n <h2>Foo</h2>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-carousel'), label);\n const container = await page.find('q2-carousel .q2-carousel-swiper-container');\n expect(container).toEqualAttribute('aria-label', label);\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n it('can advance the carousel using keys', async () => {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n await carouselPanes[0].focus();\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[2]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 2)).toEqual(true);\n\n await page.keyboard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[5]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 5)).toEqual(true);\n\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 0)).toEqual(true);\n });\n });\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -92,12 +92,12 @@ export class Q2CarouselPane {
|
|
|
92
92
|
// #region Render Methods
|
|
93
93
|
render() {
|
|
94
94
|
const { label } = this;
|
|
95
|
-
return (h(Host, { key: '
|
|
95
|
+
return (h(Host, { key: '239d0f41d084152697a3e8e06edf3fa468e23b87', class: this.generatePaneClass(this.currentPaneIndex), tabIndex: this.isActivePane ? 0 : -1, role: "group", "aria-roledescription": "slide", "aria-hidden": this.isActivePane ? undefined : 'true', "aria-label": label
|
|
96
96
|
? loc(label)
|
|
97
97
|
: loc('tecton.element.carousel.itemDescription', [
|
|
98
98
|
(this.currentPaneIndex + 1).toString(),
|
|
99
99
|
(this.siblingCount || 0).toString(),
|
|
100
|
-
]), onClick: this.paneClicked }, h("article", { key: '
|
|
100
|
+
]), onClick: this.paneClicked }, h("article", { key: '0c39569fc1a50f72186a3578c2d43efb80b15d9e', class: "q2-carousel-pane-main-content" }, h("slot", { key: 'd0a86e4f641c97723a42541fa3053d243a81d5c3' }))));
|
|
101
101
|
}
|
|
102
102
|
static get is() { return "q2-carousel-pane"; }
|
|
103
103
|
static get originalStyleUrls() {
|