q2-tecton-elements 1.54.5 → 1.55.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +2047 -769
- package/dist/cjs/{index-76f63767.js → index-905f4c87.js} +3 -2
- package/dist/cjs/index-905f4c87.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +45 -14
- package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +4 -1364
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +59 -22
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
- package/dist/cjs/q2-calendar.cjs.entry.js.map +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 +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +21 -21
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +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-file-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-form.cjs.entry.js +23 -0
- package/dist/cjs/q2-form.cjs.entry.js.map +1 -0
- 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 +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +20 -26
- package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-modal.cjs.entry.js +172 -0
- package/dist/cjs/q2-modal.cjs.entry.js.map +1 -0
- 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_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-option.cjs.entry.js +22 -24
- package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +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 +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +10 -6
- 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 +51 -9
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/sanitize-html-string-b8e3b24b.js +1366 -0
- package/dist/cjs/sanitize-html-string-b8e3b24b.js.map +1 -0
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +3 -1
- 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.css +11 -4
- package/dist/collection/components/q2-action-group/q2-action-group.js +47 -13
- 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-test.e2e.js +365 -0
- package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-action-group/test/{q2-action-group.spec.js → q2-action-group-test.spec.js} +67 -26
- package/dist/collection/components/q2-action-group/test/q2-action-group-test.spec.js.map +1 -0
- 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.css +52 -41
- package/dist/collection/components/q2-badge/q2-badge.js +88 -22
- package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +35 -126
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js +415 -0
- package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js.map +1 -0
- package/dist/collection/components/q2-btn/q2-btn.css +12 -10
- 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.css +2 -0
- 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.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.css +99 -62
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +19 -19
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +227 -208
- 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.css +8 -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.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.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.css +2 -0
- 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-form/q2-form.css +93 -0
- package/dist/collection/components/q2-form/q2-form.js +44 -0
- package/dist/collection/components/q2-form/q2-form.js.map +1 -0
- package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +93 -0
- package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -0
- 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 +1 -352
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +464 -0
- package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -0
- 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.css +3 -2
- package/dist/collection/components/q2-input/q2-input.js +4 -3
- 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 +10 -0
- 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.css +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-link/test/q2-link-test.spec.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 +19 -37
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +1 -7
- 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 +140 -82
- 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-modal/q2-modal.css +223 -0
- package/dist/collection/components/q2-modal/q2-modal.js +470 -0
- package/dist/collection/components/q2-modal/q2-modal.js.map +1 -0
- package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js +102 -0
- package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js +127 -0
- package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js.map +1 -0
- 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 +22 -24
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +32 -5
- 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 +137 -19
- 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-option-list/test/q2-option-list.spec.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.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.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- 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.css +4 -2
- 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 +2 -2
- 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.css +2 -2
- package/dist/collection/components/q2-select/q2-select.js +15 -4
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +5 -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 +85 -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.css +9 -0
- package/dist/collection/components/q2-tag/q2-tag.js +65 -15
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +131 -341
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js +719 -0
- package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js.map +1 -0
- package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
- 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.css +0 -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 +1 -25
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js +2 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/mirror-emit.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/index.js +4 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +2 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +1 -116
- package/dist/components/q2-action-group.js.map +1 -1
- package/dist/components/q2-action-group2.js +151 -0
- package/dist/components/q2-action-group2.js.map +1 -0
- package/dist/components/q2-action-sheet.js +2 -1362
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-badge2.js +54 -16
- package/dist/components/q2-badge2.js.map +1 -1
- package/dist/components/q2-btn2.js +1 -1
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-calendar.js +1 -1
- package/dist/components/q2-calendar.js.map +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-checkbox-group.js +1 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-checkbox2.js +20 -20
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-file-picker.js +1 -1
- package/dist/components/q2-file-picker.js.map +1 -1
- package/dist/components/q2-form.d.ts +11 -0
- package/dist/components/q2-form.js +39 -0
- package/dist/components/q2-form.js.map +1 -0
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-input2.js +5 -4
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-legend2.js +2 -2
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-loc.js +22 -33
- package/dist/components/q2-loc.js.map +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-modal.d.ts +11 -0
- package/dist/components/q2-modal.js +231 -0
- package/dist/components/q2-modal.js.map +1 -0
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option2.js +23 -25
- package/dist/components/q2-option2.js.map +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +1 -1
- package/dist/components/q2-radio-group.js +1 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +2 -2
- package/dist/components/q2-resize-observer2.js.map +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +9 -5
- 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 +50 -8
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +2 -2
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/q2-tooltip.js +1 -1
- package/dist/components/q2-tooltip.js.map +1 -1
- package/dist/components/sanitize-html-string.js +1364 -0
- package/dist/components/sanitize-html-string.js.map +1 -0
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/{index-504f1a9e.js → index-f2a66217.js} +3 -2
- package/dist/esm/index-f2a66217.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +45 -14
- package/dist/esm/q2-action-group.entry.js.map +1 -1
- package/dist/esm/q2-action-sheet.entry.js +3 -1363
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +59 -22
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -2
- package/dist/esm/q2-calendar.entry.js.map +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 +2 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +21 -21
- package/dist/esm/q2-checkbox.entry.js.map +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-file-picker.entry.js +2 -2
- package/dist/esm/q2-file-picker.entry.js.map +1 -1
- package/dist/esm/q2-form.entry.js +19 -0
- package/dist/esm/q2-form.entry.js.map +1 -0
- 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 +2 -2
- package/dist/esm/q2-legend.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +21 -27
- package/dist/esm/q2-loc.entry.js.map +1 -1
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-modal.entry.js +168 -0
- package/dist/esm/q2-modal.entry.js.map +1 -0
- 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_2.entry.js +2 -2
- package/dist/esm/q2-option.entry.js +22 -24
- package/dist/esm/q2-option.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js.map +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 +2 -2
- package/dist/esm/q2-resize-observer.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +10 -6
- 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 +51 -9
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +3 -3
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js.map +1 -1
- package/dist/esm/sanitize-html-string-735c19f5.js +1364 -0
- package/dist/esm/sanitize-html-string-735c19f5.js.map +1 -0
- 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/{index-504f1a9e.js → index-f2a66217.js} +9 -8
- package/dist/q2-tecton-elements/index-f2a66217.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +49 -17
- package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +121 -1331
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +199 -164
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +180 -180
- package/dist/q2-tecton-elements/q2-calendar.entry.js.map +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 +7 -7
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +92 -88
- package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +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 +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.js +25 -0
- package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +22 -22
- package/dist/q2-tecton-elements/q2-legend.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +23 -32
- package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-modal.entry.js +226 -0
- package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -0
- 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_2.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-option.entry.js +38 -38
- package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +38 -38
- package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +28 -28
- package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +5 -2
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-select.entry.js +13 -9
- 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 +5 -5
- package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
- package/dist/q2-tecton-elements/q2-tag.entry.js +84 -45
- package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
- package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js +1214 -0
- package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js.map +1 -0
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
- package/dist/types/components/q2-action-group/q2-action-group.d.ts +5 -2
- package/dist/types/components/q2-badge/q2-badge.d.ts +17 -3
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +3 -3
- package/dist/types/components/q2-form/q2-form.d.ts +6 -0
- package/dist/types/components/q2-loc/q2-loc.d.ts +5 -5
- package/dist/types/components/q2-modal/q2-modal.d.ts +80 -0
- package/dist/types/components/q2-option/q2-option.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +1 -0
- package/dist/types/components/q2-tag/q2-tag.d.ts +19 -0
- package/dist/types/components.d.ts +182 -6
- package/dist/types/util.d.ts +1 -8
- package/dist/types/utils/helpers.d.ts +1 -13
- package/dist/types/utils/index.d.ts +3 -2
- package/package.json +3 -3
- package/dist/cjs/index-76f63767.js.map +0 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +0 -166
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +0 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +0 -1
- package/dist/esm/index-504f1a9e.js.map +0 -1
- package/dist/q2-tecton-elements/index-504f1a9e.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-tab-container-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-tab-container/test/q2-tab-container-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\nimport { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\n\ndescribe('q2-tab-container', () => {\n const renderTabs = (numberOfSteps: number, value?: number) => {\n return `<q2-tab-container ${value ? `value=\"tab${value}\"` : ''} name=\"tabs\">\n ${[...Array(numberOfSteps).keys()].map(\n index =>\n `<q2-tab-pane value=\"tab${index + 1}\" label=\"Pane ${index + 1}\" name=\"tabs\">Pane ${\n index + 1\n }</q2-tab-pane>`\n )}\n </q2-tab-container>`;\n };\n\n const checkTabStatus = (stepBtn: E2EElement, options?: { selected?: boolean }) => {\n const { selected } = { ...{ selected: false }, ...options };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-tab-container></q2-tab-container>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-tab-container')).toHaveLength(0);\n });\n\n it('renders shadow DOM elements and correct tab controls', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container >>> .tab-container');\n\n expect(tabContainer).not.toBeNull();\n\n const tabList = await page.find('q2-tab-container >>> ul');\n expect(tabList).toEqualAttribute('role', 'tablist');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n\n expect(tabControls).toHaveLength(1);\n expect(tabControls[0].getAttribute('id').includes('tab-')).toBe(true);\n expect(tabControls[0].getAttribute('id').includes('-0')).toBe(true);\n expect(await tabControls[0].getProperty('tabIndex')).toEqual(0);\n expect(tabControls[0]).toEqualAttribute('role', 'tab');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[0].innerText).toEqual('Pane 1');\n expect(tabControls[0]).toEqualAttribute('data-value', 'tab1');\n });\n\n it('changes tabs by tab control click with default handler', async () => {\n const page = await setup({\n html: renderTabs(2, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n expect(tabControls).toHaveLength(2);\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'false');\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'false');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'true');\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab2',\n });\n });\n\n it('can override default onchange', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n await page.$eval('q2-tab-container', (element: HTMLElement) => {\n const changeHandler = () => {\n // force nothing to happen\n };\n\n element.onchange = changeHandler;\n });\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n\n // value prop not updated if not in handler\n expect(await tabContainer.getProperty('value')).toEqual('tab1');\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'tab2' });\n });\n\n it('allows nested tabs if named', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"parentTab1\" name=\"parent\">\n <q2-tab-pane label=\"Parent Tab 1\" value=\"parentTab1\" name=\"parent\" >\n <q2-tab-container value=\"childTab1\" name=\"child\">\n <q2-tab-pane\n label=\"Checkings\"\n value=\"childTab1\"\n name=\"child\"\n />\n <q2-tab-pane\n label=\"Savings\"\n value=\"childTab2\"\n name=\"child\"\n />\n </q2-tab-container>\n </q2-tab-pane>\n <q2-tab-pane label=\"Parent Tab 2\" value=\"parentTab2\" name=\"parent\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n\n const parentTabContainer = await page.find('q2-tab-container[name=\"parent\"]');\n const childTabContainer = await page.find('q2-tab-container[name=\"child\"]');\n const childChangeSpy = await childTabContainer.spyOnEvent('change');\n\n const parentPanes = await page.findAll('q2-tab-pane[name=\"parent\"]');\n const childPanes = await page.findAll('q2-tab-pane[name=\"child\"]');\n const parentPane1Guid = await parentPanes[0].getProperty('guid');\n const parentPane2Guid = await parentPanes[1].getProperty('guid');\n const childPane1Guid = await childPanes[0].getProperty('guid');\n const childPane2Guid = await childPanes[1].getProperty('guid');\n\n expect(parentPane1Guid).toEqual(parentPane2Guid);\n expect(childPane1Guid).toEqual(childPane2Guid);\n expect(parentPane1Guid).not.toEqual(childPane1Guid);\n\n expect(parentPanes[0]).toHaveAttribute('selected');\n expect(parentPanes[1]).not.toHaveAttribute('selected');\n expect(childPanes[0]).toHaveAttribute('selected');\n expect(childPanes[1]).not.toHaveAttribute('selected');\n\n await dispatchEvent(\n page,\n ['q2-tab-container[name=\"child\"]', '[test-id=\"tabLink\"][data-value=\"childTab2\"]'],\n 'click'\n );\n\n expect(childTabContainer).toEqualAttribute('value', 'childTab2');\n expect(childChangeSpy).toHaveReceivedEventDetail({ value: 'childTab2' });\n\n // Parent tab unchanged\n expect(parentTabContainer).toEqualAttribute('value', 'parentTab1');\n });\n\n it('calls resizeIframe on value change', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as any).TectonElements.resizeIframe = resizeIframe;\n });\n\n const tabContainer = await page.find('q2-tab-container');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n expect(resizeIframe).toBeCalledTimes(1);\n });\n\n it('localizes label string', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n await setTestStrings(page, {\n 'q2TabContainer.label': 'Label 1 Text',\n });\n\n const tabPane = await page.find('q2-tab-pane');\n const tabContainer = await page.find('q2-tab-container');\n tabPane.setProperty('label', 'q2TabContainer.label');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n const tabControl = await page.find('q2-tab-container >>> button');\n expect(tabControl.innerText).toEqual('Label 1 Text');\n });\n\n it('tab added dynamically ', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"Tab 1 very long label\" value=\"tab1\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n const tabContainer = await page.find('q2-tab-container');\n let tabNumber = 2;\n const increaseTab = () => {\n tabContainer.innerHTML =\n tabContainer.innerHTML +\n `<q2-tab-pane label=\"Tab ${tabNumber} very long label\" value=\"tab${tabNumber}\" ></q2-tab-pane>`;\n tabNumber++;\n };\n\n let btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should be null at initial loading\n expect(btnRight).toBeNull();\n\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n\n btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should not be null after adding multiple tabs\n expect(btnRight).not.toBeNull();\n });\n\n describe('@Props', () => {\n describe('value', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n checkTabStatus(tabs[0], { selected: true });\n checkTabStatus(tabs[1]);\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).toHaveAttribute('selected');\n expect(tabPanes[1]).not.toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n checkTabStatus(tabs[0]);\n checkTabStatus(tabs[1], { selected: true });\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).not.toHaveAttribute('selected');\n expect(tabPanes[1]).toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n });\n });\n\n describe('displaying tabs', () => {\n describe('when label is provided by a q2-tab-pane', () => {\n it('displays label on the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"My Label\">Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('My Label');\n });\n });\n\n describe('when label is not provided by a q2-tab-pane', () => {\n it('does not display any text for the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane>Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('');\n });\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the value to the selected tab', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"tab2\" onchange=\"testOnChange()\">\n <q2-tab-pane value=\"tab1\">Pane 1</q2-tab-pane>\n <q2-tab-pane value=\"tab2\">Pane 2</q2-tab-pane>\n <q2-tab-pane value=\"tab3\">Pane 3</q2-tab-pane>\n </q2-stepper>\n <script>function testOnChange() {}</script>`,\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement[];\n let changeSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> button');\n changeSpy = await tabContainer.spyOnEvent('change');\n });\n\n describe('when selecting the currently selected tab', () => {\n it('does not emit an event', async () => {\n await tabs[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(tabs[1]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n });\n });\n\n describe('when selecting a tab that is not selected', () => {\n it('does emits an event', async () => {\n await tabs[0].click();\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab1',\n });\n expect(tabs[0]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n });\n });\n });\n\n describe('scroll', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement;\n let btnLeft: E2EElement;\n let btnRight: E2EElement;\n\n describe('when the width of the total tabs does not exceed the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3),\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('does not display the scroll indicator buttons', async () => {\n expect(tabContainer).not.toHaveClass('has-scroll');\n expect(await tabs.getProperty('scrollWidth')).toEqual(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeNull();\n expect(btnRight).toBeNull();\n });\n });\n\n describe('when the width of the total tabs exceeds the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(20), // enough number of tabs for scrolling\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('displays the scroll indicator buttons', async () => {\n expect(await tabs.getProperty('scrollWidth')).toBeGreaterThan(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeTruthy();\n expect(btnRight).toBeTruthy();\n });\n\n it('can scroll via buttons', async () => {\n const scrollAmount = Math.floor((await tabs.getProperty('clientWidth')) / 2);\n const scrollByStub = jest.fn(args => {\n page.evaluate(left => {\n document.querySelector('q2-tab-container').shadowRoot.querySelector('ul').scrollLeft = left;\n }, args.left);\n });\n await page.exposeFunction('scrollByStub', scrollByStub);\n await page.$eval('q2-tab-container', stepper => {\n stepper.shadowRoot.querySelector('ul').scrollBy = scrollByStub;\n });\n\n expect(scrollByStub).toHaveBeenCalledTimes(0);\n expect(btnLeft).toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden');\n\n await btnRight.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: scrollAmount,\n });\n\n scrollByStub.mockReset();\n\n expect(btnLeft).not.toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden'); // still should be visible\n\n await btnLeft.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: -scrollAmount,\n });\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = renderTabs(3);\n\n it('focuses when focus event dispatched ', async () => {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-tab-container'], 'focus');\n const selected = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(selected).toBe('true');\n });\n it('focuses when focus event method called ', async () => {\n const page = await setup({ html });\n const section = await page.find('q2-tab-container');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(contained).toBe('true');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1695', () => {\n it('does not error when rendered with no tab panes', async () => {\n let errorCount = 0;\n const page = await setup();\n page.on('console', msg => msg.type() === 'error' && errorCount++);\n await page.setContent(`<q2-tab-container></q2-tab-container>`);\n await page.waitForChanges();\n\n expect(errorCount).toBe(0);\n });\n });\n });\n\n describe('Badge', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n let tabContainer;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.tab.pane.new': 'New',\n 'tecton.element.tab.pane.entries': 'Entries',\n 'tecton.element.tab.pane.alert': 'Errors',\n 'tecton.element.tab.pane.warnings': 'Warnings',\n 'tecton.element.tab.pane.success': 'Successes',\n 'tecton.element.tab.pane.info': 'Messages',\n });\n await page.setContent(`\n <q2-tab-container value=\"tab2\" name=\"tabs\">\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab1\"\n label=\"Pane 1\"\n badge-count=\"21\"\n >\n Pane 1\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab2\"\n label=\"Pane 2\"\n badge-count=\"103\"\n badge-description=\"Notifications\"\n >\n Pane 2\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab3\"\n label=\"Pane 3\"\n badge-count=\"500\"\n badge-description=\"tecton.element.tab.pane.entries\"\n >\n Pane 3\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab4\"\n label=\"Pane 4\"\n badge-count=\"5\"\n badge-theme=\"secondary\"\n >\n Pane 4\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab5\"\n label=\"Pane 5\"\n badge-count=\"10\"\n badge-status=\"alert\"\n >\n Pane 5\n </q2-tab-pane>\n </q2-tab-container>\n `);\n await page.waitForChanges();\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> .tab-pane-badge');\n });\n\n it('adds default aria-label when no badge-description is provided', async () => {\n const tab = tabs[0];\n expect(tab).toEqualAttribute('aria-label', 'Pane 1, 21 New');\n });\n\n it('adds the provided badge-description as the aria-label', async () => {\n const tab = tabs[1];\n expect(tab).toEqualAttribute('aria-label', 'Pane 2, 103 Notifications');\n });\n\n it('localizes the provided badge-description as the aria-label', async () => {\n const tab = tabs[2];\n expect(tab).toEqualAttribute('aria-label', 'Pane 3, 500 Entries');\n });\n\n it('provides the specified theme to tab when it is selected', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 4, 5 New');\n expect(badge).not.toHaveAttribute('theme');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n });\n\n it('provides the specified status to tab regardless of the selected state', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n await tabContainer.setProperty('value', 'tab5');\n await page.waitForChanges();\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n });\n\n it('can change the badge-status and have it reflected in the DOM', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n const tabPane = await page.find('q2-tab-pane[value=\"tab5\"]');\n await tabPane.setProperty('badgeStatus', 'success');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('status', 'success');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Successes');\n });\n\n it('can change the badge-theme and have it reflected in the DOM', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n const tabPane = await page.find('q2-tab-pane[value=\"tab4\"]');\n await tabPane.setProperty('badgeTheme', 'tertiary');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'tertiary');\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-tab-container').shadowRoot.activeElement ===\n document\n .querySelector('q2-tab-container')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) button`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabs = await page.findAll('q2-tab-container >>> button');\n });\n\n describe('when arrow keys are pressed', () => {\n it('moves focus along the list of tabs', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Space is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Space');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Enter is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Enter');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first tab', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled tab', async () => {\n await tabs[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n describe('Other', () => {});\n });\n\n describe('Test methods', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n\n describe('selectTab', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(5),\n });\n tabContainer = await page.find('q2-tab-container');\n });\n\n it('call selectTab', async () => {\n const spyFn = await tabContainer.spyOnEvent('click');\n expect(spyFn).toHaveReceivedEventTimes(0);\n await tabContainer.callMethod('selectTab', 'tab2');\n await page.waitForChanges();\n expect(spyFn).toHaveReceivedEventTimes(1);\n expect(await tabContainer.getProperty('value')).toBe('tab2');\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-tab-container-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-tab-container/test/q2-tab-container-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\nimport { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\n\ndescribe('q2-tab-container', () => {\n const renderTabs = (numberOfSteps: number, value?: number) => {\n return `<q2-tab-container ${value ? `value=\"tab${value}\"` : ''} name=\"tabs\">\n ${[...Array(numberOfSteps).keys()].map(\n index =>\n `<q2-tab-pane value=\"tab${index + 1}\" label=\"Pane ${index + 1}\" name=\"tabs\">Pane ${\n index + 1\n }</q2-tab-pane>`\n )}\n </q2-tab-container>`;\n };\n\n const checkTabStatus = (stepBtn: E2EElement, options?: { selected?: boolean }) => {\n const { selected } = { ...{ selected: false }, ...options };\n\n if (selected) {\n expect(stepBtn).toEqualAttribute('aria-selected', 'true');\n expect(stepBtn).toEqualAttribute('tabindex', '0');\n } else {\n expect(stepBtn).toEqualAttribute('aria-selected', 'false');\n expect(stepBtn).toEqualAttribute('tabindex', '-1');\n }\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-tab-container></q2-tab-container>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-tab-container')).toHaveLength(0);\n });\n\n it('renders shadow DOM elements and correct tab controls', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container >>> .tab-container');\n\n expect(tabContainer).not.toBeNull();\n\n const tabList = await page.find('q2-tab-container >>> ul');\n expect(tabList).toEqualAttribute('role', 'tablist');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n\n expect(tabControls).toHaveLength(1);\n expect(tabControls[0].getAttribute('id').includes('tab-')).toBe(true);\n expect(tabControls[0].getAttribute('id').includes('-0')).toBe(true);\n expect(await tabControls[0].getProperty('tabIndex')).toEqual(0);\n expect(tabControls[0]).toEqualAttribute('role', 'tab');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[0].innerText).toEqual('Pane 1');\n expect(tabControls[0]).toEqualAttribute('data-value', 'tab1');\n });\n\n it('changes tabs by tab control click with default handler', async () => {\n const page = await setup({\n html: renderTabs(2, 1),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n const tabControls = await page.findAll('q2-tab-container >>> [test-id=\"tabLink\"]');\n expect(tabControls).toHaveLength(2);\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'true');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'false');\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n expect(tabControls[0]).toEqualAttribute('aria-selected', 'false');\n expect(tabControls[1]).toEqualAttribute('aria-selected', 'true');\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab2',\n });\n });\n\n it('can override default onchange', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const tabContainer = await page.find('q2-tab-container');\n const changeSpy = await tabContainer.spyOnEvent('change');\n\n await page.$eval('q2-tab-container', (element: HTMLElement) => {\n const changeHandler = () => {\n // force nothing to happen\n };\n\n element.onchange = changeHandler;\n });\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-tab-container', '[test-id=\"tabLink\"][data-value=\"tab2\"]'], 'click');\n\n // value prop not updated if not in handler\n expect(await tabContainer.getProperty('value')).toEqual('tab1');\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'tab2' });\n });\n\n it('allows nested tabs if named', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"parentTab1\" name=\"parent\">\n <q2-tab-pane label=\"Parent Tab 1\" value=\"parentTab1\" name=\"parent\" >\n <q2-tab-container value=\"childTab1\" name=\"child\">\n <q2-tab-pane\n label=\"Checkings\"\n value=\"childTab1\"\n name=\"child\"\n />\n <q2-tab-pane\n label=\"Savings\"\n value=\"childTab2\"\n name=\"child\"\n />\n </q2-tab-container>\n </q2-tab-pane>\n <q2-tab-pane label=\"Parent Tab 2\" value=\"parentTab2\" name=\"parent\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n\n const parentTabContainer = await page.find('q2-tab-container[name=\"parent\"]');\n const childTabContainer = await page.find('q2-tab-container[name=\"child\"]');\n const childChangeSpy = await childTabContainer.spyOnEvent('change');\n\n const parentPanes = await page.findAll('q2-tab-pane[name=\"parent\"]');\n const childPanes = await page.findAll('q2-tab-pane[name=\"child\"]');\n const parentPane1Guid = await parentPanes[0].getProperty('guid');\n const parentPane2Guid = await parentPanes[1].getProperty('guid');\n const childPane1Guid = await childPanes[0].getProperty('guid');\n const childPane2Guid = await childPanes[1].getProperty('guid');\n\n expect(parentPane1Guid).toEqual(parentPane2Guid);\n expect(childPane1Guid).toEqual(childPane2Guid);\n expect(parentPane1Guid).not.toEqual(childPane1Guid);\n\n expect(parentPanes[0]).toHaveAttribute('selected');\n expect(parentPanes[1]).not.toHaveAttribute('selected');\n expect(childPanes[0]).toHaveAttribute('selected');\n expect(childPanes[1]).not.toHaveAttribute('selected');\n\n await dispatchEvent(\n page,\n ['q2-tab-container[name=\"child\"]', '[test-id=\"tabLink\"][data-value=\"childTab2\"]'],\n 'click'\n );\n\n expect(childTabContainer).toEqualAttribute('value', 'childTab2');\n expect(childChangeSpy).toHaveReceivedEventDetail({ value: 'childTab2' });\n\n // Parent tab unchanged\n expect(parentTabContainer).toEqualAttribute('value', 'parentTab1');\n });\n\n it('calls resizeIframe on value change', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n const resizeIframe = jest.fn();\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n (this as any).TectonElements.resizeIframe = resizeIframe;\n });\n\n const tabContainer = await page.find('q2-tab-container');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n expect(resizeIframe).toBeCalledTimes(1);\n });\n\n it('localizes label string', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n\n await setTestStrings(page, {\n 'q2TabContainer.label': 'Label 1 Text',\n });\n\n const tabPane = await page.find('q2-tab-pane');\n const tabContainer = await page.find('q2-tab-container');\n tabPane.setProperty('label', 'q2TabContainer.label');\n tabContainer.setProperty('value', 'tab2');\n await page.waitForChanges();\n\n const tabControl = await page.find('q2-tab-container >>> button');\n expect(tabControl.innerText).toEqual('Label 1 Text');\n });\n\n it('tab added dynamically ', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"Tab 1 very long label\" value=\"tab1\" ></q2-tab-pane>\n </q2-tab-container>\n `,\n });\n const tabContainer = await page.find('q2-tab-container');\n let tabNumber = 2;\n const increaseTab = () => {\n tabContainer.innerHTML =\n tabContainer.innerHTML +\n `<q2-tab-pane label=\"Tab ${tabNumber} very long label\" value=\"tab${tabNumber}\" ></q2-tab-pane>`;\n tabNumber++;\n };\n\n let btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should be null at initial loading\n expect(btnRight).toBeNull();\n\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n increaseTab();\n await page.waitForChanges();\n\n btnRight = await page.find('q2-tab-container >>> .btn-right');\n // right button should not be null after adding multiple tabs\n expect(btnRight).not.toBeNull();\n });\n\n describe('@Props', () => {\n describe('value', () => {\n describe('when not provided', () => {\n it('marks the first step as active', async () => {\n const page = await setup({\n html: renderTabs(3),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n checkTabStatus(tabs[0], { selected: true });\n checkTabStatus(tabs[1]);\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).toHaveAttribute('selected');\n expect(tabPanes[1]).not.toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n\n describe('when provided', () => {\n it('marks the specified step as active', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n const tabPanes = await page.findAll('q2-tab-pane');\n\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n checkTabStatus(tabs[0]);\n checkTabStatus(tabs[1], { selected: true });\n checkTabStatus(tabs[2]);\n expect(tabPanes[0]).not.toHaveAttribute('selected');\n expect(tabPanes[1]).toHaveAttribute('selected');\n expect(tabPanes[2]).not.toHaveAttribute('selected');\n });\n });\n });\n });\n\n describe('displaying tabs', () => {\n describe('when label is provided by a q2-tab-pane', () => {\n it('displays label on the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane label=\"My Label\">Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('My Label');\n });\n });\n\n describe('when label is not provided by a q2-tab-pane', () => {\n it('does not display any text for the tab', async () => {\n const page = await setup({\n html: `\n <q2-tab-container>\n <q2-tab-pane>Pane 1</q2-tab-pane>\n </q2-tab-container>`,\n });\n const tab = await page.find('q2-tab-container>>> button');\n\n expect(tab).toEqualText('');\n });\n });\n });\n\n describe('events', () => {\n describe('onchange', () => {\n describe('when not provided', () => {\n it('automatically updates the value to the selected tab', async () => {\n const page = await setup({\n html: renderTabs(3, 2),\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab1');\n });\n });\n\n describe('when provided', () => {\n it('does not automatically update the currentStep to the selected value', async () => {\n const page = await setup({\n html: `\n <q2-tab-container value=\"tab2\" onchange=\"testOnChange()\">\n <q2-tab-pane value=\"tab1\">Pane 1</q2-tab-pane>\n <q2-tab-pane value=\"tab2\">Pane 2</q2-tab-pane>\n <q2-tab-pane value=\"tab3\">Pane 3</q2-tab-pane>\n </q2-stepper>\n <script>function testOnChange() {}</script>`,\n });\n const tabsContainer = await page.find('q2-tab-container');\n const tabs = await page.findAll('q2-tab-container >>> button');\n await tabs[0].click();\n expect(tabsContainer).toEqualAttribute('value', 'tab2');\n });\n });\n });\n });\n\n describe('selecting steps', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement[];\n let changeSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> button');\n changeSpy = await tabContainer.spyOnEvent('change');\n });\n\n describe('when selecting the currently selected tab', () => {\n it('does not emit an event', async () => {\n await tabs[1].click();\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(tabs[1]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab2');\n });\n });\n\n describe('when selecting a tab that is not selected', () => {\n it('does emits an event', async () => {\n await tabs[0].click();\n expect(changeSpy).toHaveReceivedEventDetail({\n value: 'tab1',\n });\n expect(tabs[0]).toHaveAttribute('aria-selected');\n expect(tabContainer).toEqualAttribute('value', 'tab1');\n });\n });\n });\n\n describe('scroll', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n let tabs: E2EElement;\n let btnLeft: E2EElement;\n let btnRight: E2EElement;\n\n describe('when the width of the total tabs does not exceed the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3),\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('does not display the scroll indicator buttons', async () => {\n expect(tabContainer).not.toHaveClass('has-scroll');\n expect(await tabs.getProperty('scrollWidth')).toEqual(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeNull();\n expect(btnRight).toBeNull();\n });\n });\n\n describe('when the width of the total tabs exceeds the available width', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(20), // enough number of tabs for scrolling\n });\n tabContainer = await page.find('q2-tab-container >>> .tab-container');\n tabs = await page.find('q2-tab-container >>> ul');\n btnLeft = await page.find('q2-tab-container>>> .btn-left');\n btnRight = await page.find('q2-tab-container>>> .btn-right');\n });\n\n it('displays the scroll indicator buttons', async () => {\n expect(await tabs.getProperty('scrollWidth')).toBeGreaterThan(await tabs.getProperty('clientWidth'));\n expect(btnLeft).toBeTruthy();\n expect(btnRight).toBeTruthy();\n });\n\n it('can scroll via buttons', async () => {\n const scrollAmount = Math.floor((await tabs.getProperty('clientWidth')) / 2);\n const scrollByStub = jest.fn(args => {\n page.evaluate(left => {\n document.querySelector('q2-tab-container').shadowRoot.querySelector('ul').scrollLeft = left;\n }, args.left);\n });\n await page.exposeFunction('scrollByStub', scrollByStub);\n await page.$eval('q2-tab-container', stepper => {\n stepper.shadowRoot.querySelector('ul').scrollBy = scrollByStub;\n });\n\n expect(scrollByStub).toHaveBeenCalledTimes(0);\n expect(btnLeft).toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden');\n\n await btnRight.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: scrollAmount,\n });\n\n scrollByStub.mockReset();\n\n expect(btnLeft).not.toHaveAttribute('hidden');\n expect(btnRight).not.toHaveAttribute('hidden'); // still should be visible\n\n await btnLeft.click();\n expect(scrollByStub).toHaveBeenCalledWith({\n behavior: 'smooth',\n left: -scrollAmount,\n });\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = renderTabs(3);\n\n it('focuses when focus event dispatched ', async () => {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-tab-container'], 'focus');\n const selected = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(selected).toBe('true');\n });\n it('focuses when focus event method called ', async () => {\n const page = await setup({ html });\n const section = await page.find('q2-tab-container');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-tab-container', el => {\n return el.shadowRoot.activeElement.getAttribute('aria-selected');\n });\n expect(contained).toBe('true');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1695', () => {\n it('does not error when rendered with no tab panes', async () => {\n let errorCount = 0;\n const page = await setup();\n page.on('console', msg => msg.type() === 'error' && errorCount++);\n await page.setContent(`<q2-tab-container></q2-tab-container>`);\n await page.waitForChanges();\n\n expect(errorCount).toBe(0);\n });\n });\n });\n\n describe('Badge', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n let tabContainer;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.tab.pane.new': 'New',\n 'tecton.element.tab.pane.entries': 'Entries',\n 'tecton.element.tab.pane.alert': 'Errors',\n 'tecton.element.tab.pane.warnings': 'Warnings',\n 'tecton.element.tab.pane.success': 'Successes',\n 'tecton.element.tab.pane.info': 'Messages',\n });\n await page.setContent(`\n <q2-tab-container value=\"tab2\" name=\"tabs\">\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab1\"\n label=\"Pane 1\"\n badge-count=\"21\"\n >\n Pane 1\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab2\"\n label=\"Pane 2\"\n badge-count=\"103\"\n badge-description=\"Notifications\"\n >\n Pane 2\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab3\"\n label=\"Pane 3\"\n badge-count=\"500\"\n badge-description=\"tecton.element.tab.pane.entries\"\n >\n Pane 3\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab4\"\n label=\"Pane 4\"\n badge-count=\"5\"\n badge-theme=\"secondary\"\n >\n Pane 4\n </q2-tab-pane>\n <q2-tab-pane\n name=\"tabs\"\n value=\"tab5\"\n label=\"Pane 5\"\n badge-count=\"10\"\n badge-status=\"alert\"\n >\n Pane 5\n </q2-tab-pane>\n </q2-tab-container>\n `);\n await page.waitForChanges();\n tabContainer = await page.find('q2-tab-container');\n tabs = await page.findAll('q2-tab-container >>> .tab-pane-badge');\n });\n\n it('adds default aria-label when no badge-description is provided', async () => {\n const tab = tabs[0];\n expect(tab).toEqualAttribute('aria-label', 'Pane 1, 21 New');\n });\n\n it('adds the provided badge-description as the aria-label', async () => {\n const tab = tabs[1];\n expect(tab).toEqualAttribute('aria-label', 'Pane 2, 103 Notifications');\n });\n\n it('localizes the provided badge-description as the aria-label', async () => {\n const tab = tabs[2];\n expect(tab).toEqualAttribute('aria-label', 'Pane 3, 500 Entries');\n });\n\n it('provides the specified theme to tab when it is selected', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 4, 5 New');\n expect(badge).not.toHaveAttribute('theme');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n });\n\n it('provides the specified status to tab regardless of the selected state', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n await tabContainer.setProperty('value', 'tab5');\n await page.waitForChanges();\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n });\n\n it('can change the badge-status and have it reflected in the DOM', async () => {\n const tab = tabs[4];\n const badge = await tab.find('q2-badge');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Errors');\n expect(badge).not.toHaveAttribute('theme');\n expect(badge).toEqualAttribute('status', 'alert');\n const tabPane = await page.find('q2-tab-pane[value=\"tab5\"]');\n await tabPane.setProperty('badgeStatus', 'success');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('status', 'success');\n expect(tab).toEqualAttribute('aria-label', 'Pane 5, 10 Successes');\n });\n\n it('can change the badge-theme and have it reflected in the DOM', async () => {\n const tab = tabs[3];\n const badge = await tab.find('q2-badge');\n await tabContainer.setProperty('value', 'tab4');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'secondary');\n const tabPane = await page.find('q2-tab-pane[value=\"tab4\"]');\n await tabPane.setProperty('badgeTheme', 'tertiary');\n await page.waitForChanges();\n expect(badge).toEqualAttribute('theme', 'tertiary');\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: renderTabs(1, 1),\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n let page: E2EPage;\n let tabs: E2EElement[];\n\n const isStepFocused = async (page: E2EPage, stepNumber: number) =>\n page.evaluate(\n stepNumber =>\n document.querySelector('q2-tab-container').shadowRoot.activeElement ===\n document\n .querySelector('q2-tab-container')\n .shadowRoot.querySelector(`li:nth-child(${stepNumber}) button`),\n stepNumber\n );\n\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(3, 2),\n });\n tabs = await page.findAll('q2-tab-container >>> button');\n });\n\n describe('when arrow keys are pressed', () => {\n it('moves focus along the list of tabs', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowLeft');\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('ArrowRight');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n\n describe('when Space is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Space');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Enter is pressed', () => {\n it('selected the focused tab tab', async () => {\n await tabs[1].focus();\n await page.keyboard.press('Enter');\n expect(tabs[1]).toEqualAttribute('aria-selected', 'true');\n });\n });\n\n describe('when Home is pressed', () => {\n it('focuses the first tab', async () => {\n await tabs[1].focus();\n expect(await isStepFocused(page, 2)).toBe(true);\n\n await page.keyboard.press('Home');\n expect(await isStepFocused(page, 1)).toBe(true);\n });\n });\n\n describe('when End is pressed', () => {\n it('focuses the last enabled tab', async () => {\n await tabs[0].focus();\n expect(await isStepFocused(page, 1)).toBe(true);\n\n await page.keyboard.press('End');\n expect(await isStepFocused(page, 3)).toBe(true);\n });\n });\n });\n describe('Other', () => {});\n });\n\n describe('Test methods', () => {\n let page: E2EPage;\n let tabContainer: E2EElement;\n\n describe('selectTab', () => {\n beforeEach(async () => {\n page = await setup({\n html: renderTabs(5),\n });\n tabContainer = await page.find('q2-tab-container');\n });\n\n it('call selectTab', async () => {\n const spyFn = await tabContainer.spyOnEvent('click');\n expect(spyFn).toHaveReceivedEventTimes(0);\n await tabContainer.callMethod('selectTab', 'tab2');\n await page.waitForChanges();\n expect(spyFn).toHaveReceivedEventTimes(1);\n expect(await tabContainer.getProperty('value')).toBe('tab2');\n });\n });\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-tab-container-test.spec.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-tab-container-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-tab-container/test/q2-tab-container-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { Q2TabContainer } from '../q2-tab-container';\n\ndescribe('q2-tab-container', () => {\n let specTabContainer: Q2TabContainer;\n\n describe('moveToTab', () => {\n let scrollToSpy: jest.SpyInstance;\n let listItemFocusSpies: jest.SpyInstance[];\n\n beforeEach(() => {\n specTabContainer = new Q2TabContainer();\n const listElement = document.createElement('ul');\n Object.defineProperty(listElement, 'clientWidth', {\n value: 600,\n writable: true,\n });\n\n listItemFocusSpies = [];\n for (let i = 0; i < 3; i++) {\n const listItem = document.createElement<any>('li');\n listItem.dataset.value = `tab-${i + 1}`;\n listItem.offsetLeft = i * 200;\n listElement.appendChild(listItem);\n listItemFocusSpies.push(jest.spyOn(listItem, 'focus'));\n }\n\n expect(listItemFocusSpies.length).toBe(3);\n\n specTabContainer.listElement = listElement;\n // spy on the scrollTo method of listElement\n scrollToSpy = jest.spyOn(specTabContainer.listElement, 'scrollTo');\n\n specTabContainer.tabs = [\n { label: 'Tab 1', value: 'tab-1' } as any,\n { label: 'Tab 2', value: 'tab-2' } as any,\n { label: 'Tab 3', value: 'tab-3' } as any,\n ];\n });\n\n it('scrolls to tab at the specified index', () => {\n const result = specTabContainer.moveToTab(1, false);\n expect(result.dataset.value).toBe('tab-2');\n expect(scrollToSpy).toHaveBeenCalledWith({\n left: -100,\n behavior: 'smooth',\n });\n expect(listItemFocusSpies.every(spy => spy.mock.calls.length === 0)).toBe(true);\n });\n\n it('scrolls to tab at the specified index and calls focus', () => {\n const result = specTabContainer.moveToTab(1, true);\n expect(result.dataset.value).toBe('tab-2');\n expect(scrollToSpy).toHaveBeenCalledWith({\n left: -100,\n behavior: 'smooth',\n });\n expect(listItemFocusSpies[0]).not.toHaveBeenCalled();\n expect(listItemFocusSpies[1]).toHaveBeenCalled();\n expect(listItemFocusSpies[2]).not.toHaveBeenCalled();\n });\n });\n});\n"]}
|
|
@@ -20,7 +20,7 @@ export class Q2TabPane {
|
|
|
20
20
|
// #endregion
|
|
21
21
|
// #region Render Methods
|
|
22
22
|
render() {
|
|
23
|
-
return (h("div", { key: '
|
|
23
|
+
return (h("div", { key: '8f27e390528c79ae1589e1a7614c72455ebbdd32', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: '2d00ea2e03bbac11a63193debd2bb9904050ba37' })));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "q2-tab-pane"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-tab-pane.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-tab-pane.js","sourceRoot":"","sources":["../../../../src/components/q2-tab-pane/q2-tab-pane.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAInG,MAAM,OAAO,SAAS;;;;;;;;;;;;;IAuElB,aAAa;IACb,mBAAmB;IAMnB,aAAa;QACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,OAAO,CACH,4DACI,EAAE,EAAE,YAAY,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EACzC,KAAK,EAAE,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAClD,IAAI,EAAC,UAAU,EACf,QAAQ,EAAC,IAAI,iBACA,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,qBACf,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAEjD,8DAAQ,CACN,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import { Component, ComponentInterface, Prop, Event, EventEmitter, Watch, h } from '@stencil/core';\nimport { Q2Badge } from '../q2-badge/q2-badge';\n\n@Component({ tag: 'q2-tab-pane', shadow: true, styleUrl: 'q2-tab-pane.scss' })\nexport class Q2TabPane implements ComponentInterface {\n // #region Public Property API\n\n /** Adds a `q2-badge` component with the number provided right next to the tab pane label. */\n @Prop({ reflect: true })\n badgeCount: number;\n\n /**\n * The text that will be pronounced alongside `badgeCount` when the screen reader presents the tab.\n * @localizable\n */\n @Prop({ reflect: true })\n badgeDescription: string;\n\n /** Allows you to specify the status of the tab, which is always visible. */\n @Prop({ reflect: true })\n badgeStatus: Q2Badge['status'];\n\n /** Allows you to specify the color of the badge when the tab is active. */\n @Prop({ reflect: true })\n badgeTheme: Q2Badge['theme'];\n\n /**\n * Used by q2-tab-container to apply a unique id to each tab pane\n * @private\n */\n @Prop()\n guid: number;\n\n /**\n * Used by q2-tab-container to indicate the pane's index\n * @private\n */\n @Prop()\n index: number;\n\n /**\n * Serves as the text that will be visible in the tab control provided by `q2-tab-container`.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Used by q2-tab-container to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true })\n name: string;\n\n /**\n * Used by q2-tab-container to indicate the option is selected\n * @private\n */\n @Prop({ reflect: true })\n selected: boolean;\n\n /** Serves as the pane's value. Should correspond to the `q2-tab-container` value. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the badge count, description, theme, or status changes.\n * @private\n */\n @Event({ bubbles: true })\n badge: EventEmitter<boolean>;\n\n // #endregion\n // #region Watchers\n\n @Watch('badgeCount')\n @Watch('badgeDescription')\n @Watch('badgeTheme')\n @Watch('badgeStatus')\n badgeObserver() {\n this.badge.emit();\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n id={`tab-pane-${this.guid}-${this.index}`}\n class={`tab-pane${this.selected ? '' : ' hidden'}`}\n role=\"tabpanel\"\n tabindex=\"-1\"\n aria-hidden={`${!this.selected}`}\n aria-labelledby={`tab-${this.guid}-${this.index}`}\n >\n <slot />\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-tab-pane-test.e2e.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-tab-pane-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-tab-pane/test/q2-tab-pane-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-tab-pane', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-tab-pane></q2-tab-pane>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-tab-pane')).toHaveLength(0);\n });\n it('correctly renders shadow DOM elements', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-tab-pane label=\"Tab 1\" value=\"tab1\" ></q2-tab-pane>`,\n });\n\n const tabPane = await page.find('q2-tab-pane');\n tabPane.setProperty('index', 0);\n tabPane.setProperty('guid', 1000);\n await page.waitForChanges();\n\n const innerTabPane = await page.find('q2-tab-pane >>> .tab-pane');\n\n expect(innerTabPane.id).toEqual('tab-pane-1000-0');\n expect(innerTabPane).toEqualAttribute('role', 'tabpanel');\n expect(innerTabPane).toEqualAttribute('tabindex', '-1');\n expect(innerTabPane).toEqualAttribute('aria-labelledby', 'tab-1000-0');\n expect(innerTabPane).toHaveClass('hidden');\n expect(innerTabPane).not.toHaveAttribute('aria-expanded');\n expect(innerTabPane).toEqualAttribute('aria-hidden', 'true');\n\n tabPane.setProperty('selected', true);\n await page.waitForChanges();\n\n expect(innerTabPane).not.toHaveClass('hidden');\n expect(innerTabPane).not.toHaveAttribute('aria-expanded');\n expect(innerTabPane).toEqualAttribute('aria-hidden', 'false');\n });\n\n describe('Regressions', () => {\n it('does not have a focus outline on focus', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-tab-pane selected>Iron Man</q2-tab-pane>`,\n });\n\n const tabPane = await page.find('q2-tab-pane');\n const innerTabPane = await page.find('q2-tab-pane >>> div');\n\n // We set the global focus variable here otherwise box-shadow always returns \"none\"\n // If box-shadow were not set to \"none\" in the component's CSS this value would show up\n tabPane.setAttribute('style', '--const-global-focus: 2px 0 0 red');\n\n expect(await innerTabPane.isVisible()).toBe(true);\n await innerTabPane.focus();\n const styles = await innerTabPane.getComputedStyle();\n expect(styles.outlineStyle).toEqual('none');\n expect(styles.boxShadow).toEqual('none');\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: `<q2-tab-pane selected>Iron Man</q2-tab-pane>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -99,11 +99,20 @@ button {
|
|
|
99
99
|
|
|
100
100
|
.tag {
|
|
101
101
|
display: flex;
|
|
102
|
+
align-items: center;
|
|
102
103
|
width: max-content;
|
|
104
|
+
gap: 6px;
|
|
103
105
|
height: var(--tct-tag-height, var(--t-tag-height, var(--app-scale-6x, 30px)));
|
|
104
106
|
line-height: var(--tct-tag-height, var(--t-tag-height, var(--app-scale-6x, 30px)));
|
|
105
107
|
padding-inline: var(--tct-tag-padding-inline, var(--t-tag-padding-inline, var(--app-scale-3x, 15px)));
|
|
106
108
|
}
|
|
109
|
+
.tag ::slotted(q2-icon[slot=decorator]) {
|
|
110
|
+
--tct-icon-size: 1em;
|
|
111
|
+
}
|
|
112
|
+
.tag ::slotted(q2-badge[slot=decorator]) {
|
|
113
|
+
--tct-badge-height: 1em;
|
|
114
|
+
--tct-badge-line-height: 30px;
|
|
115
|
+
}
|
|
107
116
|
|
|
108
117
|
.tag.has-options {
|
|
109
118
|
padding-right: 6px;
|
|
@@ -8,6 +8,20 @@ export class Q2Tag {
|
|
|
8
8
|
const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;
|
|
9
9
|
this.optionCount = numberOfOptions;
|
|
10
10
|
};
|
|
11
|
+
this.filterSlottedElements = () => {
|
|
12
|
+
if (!('HTMLSlotElement' in window))
|
|
13
|
+
return;
|
|
14
|
+
const slot = this.hostElement.shadowRoot.querySelector('slot[name="decorator"]');
|
|
15
|
+
const assignedElements = Array.from((slot === null || slot === void 0 ? void 0 : slot.assignedElements()) || []);
|
|
16
|
+
if (!assignedElements.length)
|
|
17
|
+
return;
|
|
18
|
+
const approvedElements = ['Q2-ICON', 'Q2-BADGE'];
|
|
19
|
+
assignedElements.forEach((element, index) => {
|
|
20
|
+
if (!approvedElements.includes(element.tagName) || index > 0) {
|
|
21
|
+
element.remove();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
11
25
|
this.handleButtonFocusout = async (event) => {
|
|
12
26
|
var _a;
|
|
13
27
|
const relatedTarget = event.relatedTarget;
|
|
@@ -55,6 +69,13 @@ export class Q2Tag {
|
|
|
55
69
|
this.dropdownBtn.focus();
|
|
56
70
|
this.dropdownBtn.click();
|
|
57
71
|
};
|
|
72
|
+
this.initMutationObserver = () => {
|
|
73
|
+
if (!('MutationObserver' in window))
|
|
74
|
+
return;
|
|
75
|
+
const observer = new MutationObserver(this.onMutationObserved);
|
|
76
|
+
observer.observe(this.hostElement, { childList: true, attributes: true });
|
|
77
|
+
this.mutationObserver = observer;
|
|
78
|
+
};
|
|
58
79
|
this.onClickElsewhere = (event) => {
|
|
59
80
|
const target = event.target;
|
|
60
81
|
if (target.localName === 'click-elsewhere') {
|
|
@@ -65,6 +86,10 @@ export class Q2Tag {
|
|
|
65
86
|
popoverElement.open = false;
|
|
66
87
|
}
|
|
67
88
|
};
|
|
89
|
+
this.onMutationObserved = () => {
|
|
90
|
+
this.determineOptionCount();
|
|
91
|
+
this.filterSlottedElements();
|
|
92
|
+
};
|
|
68
93
|
this.optionCount = undefined;
|
|
69
94
|
this.hoist = !!((_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.useActionSheets);
|
|
70
95
|
this.label = undefined;
|
|
@@ -73,7 +98,7 @@ export class Q2Tag {
|
|
|
73
98
|
this.popoverAlignment = 'right';
|
|
74
99
|
this.popoverDirection = undefined;
|
|
75
100
|
this.popoverMaxHeight = undefined;
|
|
76
|
-
this.popoverMinHeight =
|
|
101
|
+
this.popoverMinHeight = undefined;
|
|
77
102
|
this.theme = undefined;
|
|
78
103
|
}
|
|
79
104
|
// #endregion
|
|
@@ -84,12 +109,12 @@ export class Q2Tag {
|
|
|
84
109
|
this.mutationObserver = null;
|
|
85
110
|
}
|
|
86
111
|
componentWillLoad() {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.mutationObserver = observer;
|
|
112
|
+
this.initMutationObserver();
|
|
113
|
+
this.determineOptionCount();
|
|
90
114
|
}
|
|
91
115
|
componentDidLoad() {
|
|
92
116
|
overrideFocus(this.hostElement);
|
|
117
|
+
this.filterSlottedElements();
|
|
93
118
|
}
|
|
94
119
|
// #endregion
|
|
95
120
|
// #region Listeners
|
|
@@ -109,16 +134,32 @@ export class Q2Tag {
|
|
|
109
134
|
}
|
|
110
135
|
// #endregion
|
|
111
136
|
// #region Public Methods API
|
|
137
|
+
/**
|
|
138
|
+
* Emulates clicking the tag to close the popover when options are provided and the popover is open.
|
|
139
|
+
* @testonly
|
|
140
|
+
*/
|
|
112
141
|
async closePopover() {
|
|
113
142
|
if (!this.optionCount || !this.open)
|
|
114
143
|
return;
|
|
115
144
|
this._togglePopover();
|
|
116
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Emulates clicking the tag to open the popover when options are provided and the popover is closed.
|
|
148
|
+
* @testonly
|
|
149
|
+
*/
|
|
117
150
|
async openPopover() {
|
|
118
151
|
if (!this.optionCount || this.open)
|
|
119
152
|
return;
|
|
120
153
|
this._togglePopover();
|
|
121
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Emulates selecting an option matching the passed value.
|
|
157
|
+
*
|
|
158
|
+
* If the popover is closed, this will open it before selecting the option.
|
|
159
|
+
*
|
|
160
|
+
* If there are not options, or the passed value does not match any option's value, this method does nothing.
|
|
161
|
+
* @testonly
|
|
162
|
+
*/
|
|
122
163
|
async selectOption(value) {
|
|
123
164
|
if (!this.optionCount)
|
|
124
165
|
return;
|
|
@@ -142,11 +183,12 @@ export class Q2Tag {
|
|
|
142
183
|
return (h("div", { id: "option-description", class: "sr", "aria-hidden": "true" }, loc('tecton.element.optionList.optionCount', [this.optionCount])));
|
|
143
184
|
}
|
|
144
185
|
render() {
|
|
145
|
-
const {
|
|
186
|
+
const { open } = this;
|
|
146
187
|
const wrapperClassNames = ['tag'];
|
|
147
|
-
if (optionCount)
|
|
188
|
+
if (this.optionCount)
|
|
148
189
|
wrapperClassNames.push('has-options');
|
|
149
|
-
|
|
190
|
+
const shouldShowOptions = this.optionCount > 0;
|
|
191
|
+
return (h(Host, { key: '6ccc1d85936667bad9622cbec28a27d54bc48e76', role: shouldShowOptions ? 'list' : undefined }, h("click-elsewhere", { key: '6c6fac08128198e6b0a0f5733b67cc26ec4bed02', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description" }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" }))), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '134f0deaa4ea93ceb451329f2cdd7c27d0ecda71', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: '43ccf161a1eea92b5f8c591d5ed7aec8fb8fb9a7', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '2fedc4307ddbe7024c0c8e9884c3fc7ae42efada' })))))));
|
|
150
192
|
}
|
|
151
193
|
static get is() { return "q2-tag"; }
|
|
152
194
|
static get encapsulation() { return "shadow"; }
|
|
@@ -308,8 +350,7 @@ export class Q2Tag {
|
|
|
308
350
|
"text": ""
|
|
309
351
|
},
|
|
310
352
|
"attribute": "popover-min-height",
|
|
311
|
-
"reflect": false
|
|
312
|
-
"defaultValue": "150"
|
|
353
|
+
"reflect": false
|
|
313
354
|
},
|
|
314
355
|
"theme": {
|
|
315
356
|
"type": "string",
|
|
@@ -368,8 +409,11 @@ export class Q2Tag {
|
|
|
368
409
|
"return": "Promise<void>"
|
|
369
410
|
},
|
|
370
411
|
"docs": {
|
|
371
|
-
"text": "",
|
|
372
|
-
"tags": [
|
|
412
|
+
"text": "Emulates clicking the tag to close the popover when options are provided and the popover is open.",
|
|
413
|
+
"tags": [{
|
|
414
|
+
"name": "testonly",
|
|
415
|
+
"text": undefined
|
|
416
|
+
}]
|
|
373
417
|
}
|
|
374
418
|
},
|
|
375
419
|
"openPopover": {
|
|
@@ -385,8 +429,11 @@ export class Q2Tag {
|
|
|
385
429
|
"return": "Promise<void>"
|
|
386
430
|
},
|
|
387
431
|
"docs": {
|
|
388
|
-
"text": "",
|
|
389
|
-
"tags": [
|
|
432
|
+
"text": "Emulates clicking the tag to open the popover when options are provided and the popover is closed.",
|
|
433
|
+
"tags": [{
|
|
434
|
+
"name": "testonly",
|
|
435
|
+
"text": undefined
|
|
436
|
+
}]
|
|
390
437
|
}
|
|
391
438
|
},
|
|
392
439
|
"selectOption": {
|
|
@@ -406,8 +453,11 @@ export class Q2Tag {
|
|
|
406
453
|
"return": "Promise<void>"
|
|
407
454
|
},
|
|
408
455
|
"docs": {
|
|
409
|
-
"text": "",
|
|
410
|
-
"tags": [
|
|
456
|
+
"text": "Emulates selecting an option matching the passed value.\n\nIf the popover is closed, this will open it before selecting the option.\n\nIf there are not options, or the passed value does not match any option's value, this method does nothing.",
|
|
457
|
+
"tags": [{
|
|
458
|
+
"name": "testonly",
|
|
459
|
+
"text": undefined
|
|
460
|
+
}]
|
|
411
461
|
}
|
|
412
462
|
}
|
|
413
463
|
};
|