q2-tecton-elements 1.49.2 → 1.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +2 -2
- package/dist/cjs/{index-42fcd170.js → index-43010ce4.js} +1 -1
- package/dist/cjs/{index-42fcd170.js.map → index-43010ce4.js.map} +1 -1
- package/dist/cjs/index-64d8b839.js +1580 -0
- package/dist/cjs/index-64d8b839.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +5 -5
- 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-input.cjs.entry.js → q2-badge_7.cjs.entry.js} +1284 -3
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +131 -149
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +3 -3
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +3 -3
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- 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.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +62 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +11 -13
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +62 -58
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +4 -4
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +3 -3
- package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
- 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-list.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +13 -11
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js +95 -36
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
- package/dist/cjs/q2-section.cjs.entry.js +4 -4
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +19 -18
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- 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 +33 -6
- 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 +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +7 -8
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/{test/elements → collection/components/click-elsewhere/test}/click-elsewhere-test.e2e.js +1 -1
- package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +5 -5
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-action-sheet/test}/q2-action-sheet-test.e2e.js +29 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-avatar/test}/q2-avatar-test.e2e.js +1 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-badge/q2-badge.js +0 -1
- package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-badge/test}/q2-badge-test.e2e.js +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-btn/q2-btn.css +1 -0
- package/dist/collection/components/q2-btn/q2-btn.js +3 -15
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-btn/test}/q2-btn-test.e2e.js +36 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
- package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/helpers-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-month-picker-test.e2e.js +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-test.e2e.js +3 -3
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -0
- package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/validation-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-card/test}/q2-card-test.e2e.js +1 -1
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-carousel/q2-carousel.js +190 -164
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-carousel/test}/q2-carousel-test.e2e.js +175 -188
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +5 -5
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.e2e.js +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.spec.js +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -0
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +20 -20
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-chart-area/test}/q2-chart-area-test.e2e.js +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +20 -20
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-chart-bar/test}/q2-chart-bar-test.e2e.js +1 -1
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-chart-donut/test}/q2-chart-donut-test.e2e.js +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-checkbox/test}/q2-checkbox-test.e2e.js +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-checkbox-group/test}/q2-checkbox-group-test.e2e.js +1 -1
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-currency/test}/q2-currency-test.e2e.js +2 -2
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +240 -7
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-data-table/test}/q2-data-table-test.e2e.js +64 -2
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -0
- 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/{test/elements/q2-detail → collection/components/q2-detail/test}/q2-detail-test.e2e.js +3 -3
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +65 -57
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-dropdown/test}/q2-dropdown-test.e2e.js +165 -120
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +10 -12
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-dropdown-item/test}/q2-dropdown-item-test.e2e.js +5 -13
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +3 -3
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-editable-field/test}/q2-editable-field-test.e2e.js +1 -4
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-icon/test}/q2-icon-test.e2e.js +2 -2
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.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/date.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/phone.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +2 -2
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-input/test}/q2-input-credit-card-test.e2e.js +1 -1
- package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-input/test}/q2-input-test.e2e.js +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-item/q2-item.css +3 -3
- 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/{test/elements → collection/components/q2-item/test}/q2-item-test.e2e.js +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-item/test}/q2-item-test.spec.js +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -0
- package/dist/collection/components/q2-legend/q2-legend.css +6 -6
- 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/{test/elements → collection/components/q2-legend/test}/q2-legend-test.e2e.js +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-legend/test}/q2-legend-test.spec.js +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -0
- 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/{test/elements/q2-detail → collection/components/q2-list/test}/q2-list-test.e2e.js +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-loading/test}/q2-loading-element-test.e2e.js +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-loading/test}/q2-loading-test.e2e.js +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-loc/test}/q2-loc-test.e2e.js +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-message/test}/q2-message-test.e2e.js +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.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/{test/elements → collection/components/q2-optgroup/test}/q2-optgroup-test.e2e.js +1 -1
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-option/test}/q2-option-test.e2e.js +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-option-list/q2-option-list.js +15 -13
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-option-list/test}/q2-option-list-test.e2e.js +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-pagination/test}/q2-pagination-test.e2e.js +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-pill/q2-pill.js +172 -37
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-pill/test}/q2-pill-test.e2e.js +484 -392
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-popover/test}/q2-popover-test.e2e.js +2 -2
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -0
- package/dist/{test/elements → collection/components/q2-popover/test}/q2-popover-test.spec.js +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -0
- package/dist/collection/components/q2-radio/q2-radio.js +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-radio/test}/q2-radio-test.e2e.js +1 -1
- package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-radio-group/test}/q2-radio-group-test.e2e.js +1 -1
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-relative-time/test}/q2-relative-time-test.e2e.js +2 -2
- package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-section/q2-section.css +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/{test/elements → collection/components/q2-section/test}/q2-section-test.e2e.js +12 -7
- package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-select/q2-select.js +18 -17
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-select/test}/q2-select-test.e2e.js +20 -2
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.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/{test/elements → collection/components/q2-stepper/test}/q2-stepper-test.e2e.js +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-stepper-pane/test}/q2-stepper-pane-test.e2e.js +1 -1
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-stepper-vertical/test}/q2-stepper-vertical-test.e2e.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +21 -20
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-tab-container/test}/q2-tab-container-test.e2e.js +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js +54 -0
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -0
- 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/{test/elements → collection/components/q2-tab-pane/test}/q2-tab-pane-test.e2e.js +1 -1
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-tag/q2-tag.js +92 -6
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-tag/test}/q2-tag-test.e2e.js +40 -8
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/q2-textarea/test}/q2-textarea-test.e2e.js +1 -1
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/{test/elements → collection/components/q2-tooltip/test}/q2-tooltip-test.e2e.js +1 -1
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -0
- 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/{test/elements → collection/components/tecton-tab-pane/test}/tecton-tab-pane-test.e2e.js +1 -1
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -0
- 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/{test → collection/utils}/helpers.js +1 -1
- package/dist/collection/utils/helpers.js.map +1 -0
- package/dist/collection/utils/index.js +9 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/{test/utils → collection/utils/test}/action-sheet-test.e2e.js +1 -1
- package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -0
- package/dist/{test/utils → collection/utils/test}/index.spec.js +1 -1
- package/dist/collection/utils/test/index.spec.js.map +1 -0
- package/dist/components/action-sheet.js +1 -1
- package/dist/components/index.js +0 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +1355 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-sheet.js +5 -5
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-badge2.js.map +1 -1
- package/dist/components/q2-btn2.js +6 -12
- 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-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +133 -154
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js +3 -3
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +4 -4
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-checkbox-group.js +1 -1
- package/dist/components/q2-checkbox2.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-data-table.js +68 -2
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown-item2.js +10 -12
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +61 -57
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +3 -3
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-input2.js +2 -2
- package/dist/components/q2-item.js +2 -2
- package/dist/components/q2-item.js.map +1 -1
- package/dist/components/q2-legend2.js +2 -2
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-list.js +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +2 -2
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +13 -11
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +2 -2
- package/dist/components/q2-pill.js +100 -38
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +2 -2
- package/dist/components/q2-radio-group.js +1 -1
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-section.js +3 -3
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select2.js +20 -19
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +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 +21 -20
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +38 -8
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +2 -2
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/{action-sheet-dd527168.js → action-sheet-e64cb6f7.js} +2 -2
- package/dist/esm/{action-sheet-dd527168.js.map → action-sheet-e64cb6f7.js.map} +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +2 -2
- package/dist/esm/index-4a80972c.js +1556 -0
- package/dist/esm/index-4a80972c.js.map +1 -0
- package/dist/esm/{index-1c019b24.js → index-c6d74f10.js} +1 -1
- package/dist/esm/{index-1c019b24.js.map → index-c6d74f10.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +5 -5
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/{q2-input.entry.js → q2-badge_7.entry.js} +1280 -5
- package/dist/esm/q2-badge_7.entry.js.map +1 -0
- package/dist/esm/q2-calendar.entry.js +3 -3
- 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-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +131 -149
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +3 -3
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +3 -3
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- 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.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +62 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +11 -13
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +62 -58
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +4 -4
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-item.entry.js +3 -3
- package/dist/esm/q2-item.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js.map +1 -1
- package/dist/esm/q2-list.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +13 -11
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js +96 -37
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-relative-time.entry.js +3 -3
- package/dist/esm/q2-section.entry.js +4 -4
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +20 -19
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +34 -7
- 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 +2 -2
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/{p-da711c59.entry.js → p-072c5877.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f6358905.entry.js → p-074ae80c.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-0a1dff75.entry.js +2 -0
- package/dist/q2-tecton-elements/p-0a1dff75.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-93680d12.entry.js → p-0a3a804a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-93680d12.entry.js.map → p-0a3a804a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-259b728a.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-77a763eb.entry.js.map → p-259b728a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js → p-2c26295e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js → p-2ca6d44f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js → p-2fcaf2d6.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-2fcaf2d6.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0852e6fe.entry.js → p-34696e3f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-1e7fa870.entry.js → p-34856c71.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-34856c71.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-376a0589.entry.js +2 -0
- package/dist/q2-tecton-elements/p-376a0589.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-630613c7.entry.js → p-395904b4.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js → p-3c7be0bb.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3c7be0bb.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-403bf3d4.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-5037fa67.entry.js.map → p-403bf3d4.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-db79c056.entry.js → p-4116579f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e0a6baea.entry.js → p-45407ecc.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js → p-58cafc0d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4388e521.entry.js → p-5d936af5.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-6237c775.entry.js +2 -0
- package/dist/q2-tecton-elements/p-6237c775.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-a177d812.entry.js → p-661ed976.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-da0cacef.entry.js → p-6b7c53a8.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6c933b14.entry.js → p-6e6d9793.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-be518818.js → p-721365be.js} +1 -1
- package/dist/q2-tecton-elements/{p-a8e7e591.entry.js → p-77272c4c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-793a453e.entry.js → p-77a0cc0c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9c589ab3.entry.js → p-8111547c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-05b30f98.entry.js → p-8a4b106d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-8a4b106d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-9a1a4bc0.js +3 -0
- package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +1 -0
- package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js +2 -0
- package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-aa57b657.entry.js +2 -0
- package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-ad998f71.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ad998f71.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-e3ad770b.entry.js → p-adec9275.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-adf0a7c9.entry.js +2 -0
- package/dist/q2-tecton-elements/p-adf0a7c9.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-b72fd065.entry.js +2 -0
- package/dist/q2-tecton-elements/p-b72fd065.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-780a1d0e.js → p-b7554a79.js} +2 -2
- package/dist/q2-tecton-elements/{p-40df4468.entry.js → p-c0c658d1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js → p-c81d299a.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-c81d299a.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-08176bd0.entry.js → p-cb3f48de.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2810ba28.entry.js → p-ce4e6b41.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-76b98623.entry.js → p-cf32b5db.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-cf966a0f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-cf966a0f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c5aac064.entry.js → p-d2e1631a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c5aac064.entry.js.map → p-d2e1631a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-2e6669a7.entry.js → p-dc77bf66.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js → p-fffb54e9.entry.js} +2 -2
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
- package/dist/types/components/q2-btn/q2-btn.d.ts +1 -2
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +323 -0
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +36 -25
- package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +3 -3
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +6 -6
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +14 -14
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +259 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +129 -0
- package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +50 -0
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
- package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
- package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +128 -0
- package/dist/types/components/q2-select/q2-select.d.ts +232 -0
- package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
- package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +5 -5
- package/dist/types/components/q2-tag/q2-tag.d.ts +63 -0
- package/dist/types/components.d.ts +77 -33
- package/dist/types/utils/action-sheet.d.ts +12 -0
- package/dist/types/{workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test → utils}/helpers.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +8 -6
- package/dist/cjs/index-a93362ed.js +0 -225
- package/dist/cjs/index-a93362ed.js.map +0 -1
- package/dist/cjs/q2-badge.cjs.entry.js +0 -52
- package/dist/cjs/q2-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +0 -237
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-icon.cjs.entry.js +0 -731
- package/dist/cjs/q2-icon.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-input.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +0 -263
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +0 -46
- package/dist/cjs/q2-tab-pane.cjs.entry.js.map +0 -1
- package/dist/cjs/slot-component.cjs.entry.js +0 -19
- package/dist/cjs/slot-component.cjs.entry.js.map +0 -1
- package/dist/components/slot-component.d.ts +0 -11
- package/dist/components/slot-component.js +0 -34
- package/dist/components/slot-component.js.map +0 -1
- package/dist/esm/index-3c5cd75e.js +0 -202
- package/dist/esm/index-3c5cd75e.js.map +0 -1
- package/dist/esm/q2-badge.entry.js +0 -48
- package/dist/esm/q2-badge.entry.js.map +0 -1
- package/dist/esm/q2-btn_2.entry.js +0 -232
- package/dist/esm/q2-btn_2.entry.js.map +0 -1
- package/dist/esm/q2-icon.entry.js +0 -727
- package/dist/esm/q2-icon.entry.js.map +0 -1
- package/dist/esm/q2-input.entry.js.map +0 -1
- package/dist/esm/q2-tab-container.entry.js +0 -259
- package/dist/esm/q2-tab-container.entry.js.map +0 -1
- package/dist/esm/q2-tab-pane.entry.js +0 -42
- package/dist/esm/q2-tab-pane.entry.js.map +0 -1
- package/dist/esm/slot-component.entry.js +0 -15
- package/dist/esm/slot-component.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-05b30f98.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-089a7a1e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-089a7a1e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-1e7fa870.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-25bfe0b2.entry.js +0 -2
- package/dist/q2-tecton-elements/p-25bfe0b2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2bcb7e89.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-333a41ca.entry.js +0 -2
- package/dist/q2-tecton-elements/p-333a41ca.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4da4cb5d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4da4cb5d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5037fa67.entry.js +0 -2
- package/dist/q2-tecton-elements/p-550881db.entry.js +0 -2
- package/dist/q2-tecton-elements/p-550881db.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5775b02b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-5775b02b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-77a763eb.entry.js +0 -2
- package/dist/q2-tecton-elements/p-84190698.js +0 -2
- package/dist/q2-tecton-elements/p-84190698.js.map +0 -1
- package/dist/q2-tecton-elements/p-9e90a38a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-9e90a38a.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-9ecabc7a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-9ecabc7a.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a657277b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a657277b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b3322f94.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b3322f94.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-baa2eaa9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d2d3d95b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d2d3d95b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d78669df.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d78669df.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d8d9ba1f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-dbfab45b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-dbfab45b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e44560d9.entry.js +0 -2
- package/dist/q2-tecton-elements/p-e44560d9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ea7876eb.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ea7876eb.entry.js.map +0 -1
- package/dist/test/elements/click-elsewhere-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-action-sheet-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-avatar-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-badge-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-btn-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-calendar/helpers-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-calendar/validation-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-calendar-month-picker-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-calendar-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-card-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-carousel-pane-test.spec.js.map +0 -1
- package/dist/test/elements/q2-carousel-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-currency-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-data-table-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-detail/q2-detail-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-detail/slot-component.js +0 -32
- package/dist/test/elements/q2-detail/slot-component.js.map +0 -1
- package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-icon-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-input-credit-card-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-input-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-item-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-item-test.spec.js.map +0 -1
- package/dist/test/elements/q2-legend-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-legend-test.spec.js.map +0 -1
- package/dist/test/elements/q2-loading-element-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-loading-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-loc-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-message-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-optgroup-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-option-list-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-option-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-pagination-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-popover-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-popover-test.spec.js.map +0 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-radio-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-relative-time-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-section-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-select-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-stepper-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-tab-container-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-tab-pane-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-tag-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-textarea-test.e2e.js.map +0 -1
- package/dist/test/elements/q2-tooltip-test.e2e.js.map +0 -1
- package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +0 -1
- package/dist/test/helpers.js.map +0 -1
- package/dist/test/utils/action-sheet-test.e2e.js.map +0 -1
- package/dist/test/utils/index.spec.js.map +0 -1
- package/dist/types/workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -4
- /package/dist/q2-tecton-elements/{p-da711c59.entry.js.map → p-072c5877.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f6358905.entry.js.map → p-074ae80c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js.map → p-2c26295e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js.map → p-2ca6d44f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0852e6fe.entry.js.map → p-34696e3f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-630613c7.entry.js.map → p-395904b4.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-db79c056.entry.js.map → p-4116579f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e0a6baea.entry.js.map → p-45407ecc.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js.map → p-58cafc0d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4388e521.entry.js.map → p-5d936af5.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a177d812.entry.js.map → p-661ed976.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-da0cacef.entry.js.map → p-6b7c53a8.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6c933b14.entry.js.map → p-6e6d9793.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-be518818.js.map → p-721365be.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a8e7e591.entry.js.map → p-77272c4c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-793a453e.entry.js.map → p-77a0cc0c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-9c589ab3.entry.js.map → p-8111547c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e3ad770b.entry.js.map → p-adec9275.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-780a1d0e.js.map → p-b7554a79.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-40df4468.entry.js.map → p-c0c658d1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-08176bd0.entry.js.map → p-cb3f48de.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2810ba28.entry.js.map → p-ce4e6b41.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-76b98623.entry.js.map → p-cf32b5db.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2e6669a7.entry.js.map → p-dc77bf66.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js.map → p-fffb54e9.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-data-table-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-data-table/test/q2-data-table-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, getNestedElementStyle, setup } from '@/utils/helpers';\nimport { Q2DataTable, Q2DataTableHeader, Q2DataTableRow } from '../q2-data-table';\n\ndescribe('q2-data-table', () => {\n let e2ePage: E2EPage;\n let specPage: SpecPage;\n let table: E2EElement;\n let headerData: Q2DataTableHeader[];\n let rowData: Q2DataTableRow[];\n\n beforeEach(() => {\n headerData = [\n { title: 'Name', key: 'name', ariaLabel: 'Name' },\n { title: 'Email', key: 'email' },\n ];\n rowData = [\n {\n id: 1,\n cells: {\n name: 'Thor',\n email: 'strongest.avenger@asgard.gov',\n },\n },\n {\n id: 2,\n cells: {\n name: 'Iron Man',\n email: 'moneybags@stark.com',\n },\n },\n {\n id: 3,\n cells: {\n name: 'Captain America',\n email: 'what-is-email@shield.org',\n },\n },\n ];\n });\n\n const getCSSProperty = async (page: E2EPage, selectors: string | string[], prop: string) => {\n let evalSelector;\n let nestedSelectors = [];\n if (selectors instanceof Array) {\n const [firstSelector, ...remainingSelectors] = selectors;\n evalSelector = firstSelector;\n nestedSelectors = remainingSelectors;\n } else {\n evalSelector = selectors;\n }\n\n return page.$eval(\n evalSelector,\n (el: HTMLElement, nestedSelectors: [], prop: string) => {\n if (!!nestedSelectors?.length) {\n nestedSelectors.forEach(selector => {\n el = el.shadowRoot.querySelector(selector);\n });\n }\n return getComputedStyle(el).getPropertyValue(prop).trim();\n },\n nestedSelectors,\n prop\n );\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-data-table></q2-data-table>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-data-table')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n await e2ePage.evaluate(() => {\n document.body.style.padding = '0';\n document.body.style.margin = '0';\n });\n table.setProperty('headers', [\n { title: 'Name', key: 'name' },\n { title: 'Email', key: 'email' },\n { title: 'Address', key: 'address' },\n { title: 'City', key: 'city' },\n { title: 'State', key: 'state' },\n { title: 'Zip', key: 'zip' },\n ]);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n const hasViolations = await evaluateA11y(e2ePage);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Default Behaviors', () => {\n it('renders', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n await e2ePage.waitForChanges();\n table = await e2ePage.find('q2-data-table >>> table');\n expect(table).toBeTruthy();\n });\n\n it('renders scrollbars when the viewport is too small for the content', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n await e2ePage.evaluate(() => {\n document.body.style.padding = '0';\n document.body.style.margin = '0';\n });\n table.setProperty('headers', [\n { title: 'Name', key: 'name' },\n { title: 'Email', key: 'email' },\n { title: 'Address', key: 'address' },\n { title: 'City', key: 'city' },\n { title: 'State', key: 'state' },\n { title: 'Zip', key: 'zip' },\n ]);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n e2ePage.setViewport({ width: 400, height: 400 });\n\n const container = await e2ePage.find('q2-data-table >>> .container');\n const innerTable = await e2ePage.find('q2-data-table >>> table');\n\n expect(parseInt((await container.getComputedStyle()).width)).toBe(400);\n expect(parseInt((await innerTable.getComputedStyle()).width)).toBeGreaterThan(400);\n });\n });\n\n describe('resizeIframe', () => {\n let resizeIframe: jest.Mock;\n\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n await table.setProperty('headers', headerData);\n await table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n resizeIframe = jest.fn();\n\n await e2ePage.exposeFunction('resizeIframe', resizeIframe);\n await e2ePage.evaluate(() => {\n (this as any).TectonElements.resizeIframe = resizeIframe;\n });\n expect(resizeIframe).not.toHaveBeenCalled();\n });\n\n it('calls resizeIframe when loading is changed', async () => {\n await table.setProperty('loading', true);\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when headers are changed', async () => {\n await table.setProperty('headers', headerData.slice(1, 1));\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when rows are changed', async () => {\n await table.setProperty('rows', rowData.slice(1, 1));\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when selectable is changed', async () => {\n await table.setProperty('selectable', true);\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when density is changed', async () => {\n await table.setProperty('density', 'comfortable');\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when density is changed', async () => {\n await table.setProperty('density', 'comfortable');\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n\n it('calls resizeIframe when bordered is changed', async () => {\n await table.setProperty('bordered', true);\n await e2ePage.waitForChanges();\n expect(resizeIframe).toHaveBeenCalled();\n });\n });\n\n describe('Cell Types', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData;\n });\n\n it('renders with type text', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'text',\n value: 'Thor',\n ariaLabel: 'The strongest Avenger',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <div aria-label=\"The strongest Avenger\">\n Thor\n </div>\n </slot>\n </td>\n `);\n });\n\n it('renders with type number', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'number',\n value: 8675309,\n ariaLabel: 'A big number',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <div aria-label=\"A big number\">\n 8675309\n </div>\n </slot>\n </td>\n `);\n });\n\n it('renders with type icon', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'icon',\n value: 'test-value',\n ariaLabel: 'My aria label',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <q2-icon type=\"test-value\" label=\"My aria label\"></q2-icon>\n </slot>\n </td>\n `);\n });\n\n it('renders with type code', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'code',\n value: 'q2-input',\n ariaLabel: 'Q2 Input',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <code aria-label=\"Q2 Input\">q2-input</code>\n </slot>\n </td>\n `);\n });\n\n describe('with type boolean', () => {\n it('renders a div when false', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'boolean',\n value: false,\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <div aria-label=\"tecton.element.dataTable.booleanFalse\"></div>\n </slot>\n </td>\n `);\n });\n\n it('renders a div when value is a string', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'boolean',\n value: 'Yes',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <q2-icon label=\"tecton.element.dataTable.booleanTrue\" type=\"checkmark\"></q2-icon>\n </slot>\n </td>\n `);\n });\n\n it('renders a div when value is a number', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'boolean',\n value: 1,\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <q2-icon label=\"tecton.element.dataTable.booleanTrue\" type=\"checkmark\"></q2-icon>\n </slot>\n </td>\n `);\n });\n\n it('renders an icon when true', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'boolean',\n value: true,\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <q2-icon label=\"tecton.element.dataTable.booleanTrue\" type=\"checkmark\"></q2-icon>\n </slot>\n </td>\n `);\n });\n });\n\n it('renders with type badge', async () => {\n specPage.root.rows = [\n {\n id: 1,\n cells: {\n name: {\n type: 'badge',\n value: 8675309,\n badgeStatus: 'success',\n ariaLabel: 'A big number',\n },\n email: 'strongest.avenger@asgard.gov',\n },\n },\n ];\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tr#row-1 td')).toEqualHtml(`\n <td>\n <slot name=\"row-1-cell-name\">\n <q2-badge size=\"large\" value=\"8675309\" status=\"success\" aria-label=\"A big number\"></q2-badge>\n </slot>\n </td>\n `);\n });\n });\n\n describe('Props', () => {\n describe('density', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n });\n\n it('renders with default normal density when not provided (default)', async () => {\n expect(await getCSSProperty(e2ePage, ['q2-data-table', '.container'], '--comp-cell-padding')).toBe(\n '15px'\n );\n });\n\n it('renders with compact density', async () => {\n table.setProperty('density', 'compact');\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', '.container'], '--comp-cell-padding')).toBe(\n '5px'\n );\n });\n\n it('renders with comfortable density', async () => {\n table.setProperty('density', 'comfortable');\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', '.container'], '--comp-cell-padding')).toBe(\n '25px'\n );\n });\n });\n\n describe('bordered', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n });\n beforeEach(async () => {\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n });\n\n it('renders with no border when false (default)', async () => {\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'td'], 'border-width')).toBe('0px');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'td'], 'border-style')).toBe('none');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'td'], 'border-color')).toBe('rgb(0, 0, 0)');\n });\n\n it('renders horizontal row borders when true (original implementation)', async () => {\n table.setProperty('bordered', true);\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-width')).toBe(\n '0px 0px 1px'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-style')).toBe('solid');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tr'], 'border-color')).toBe(\n 'rgb(153, 153, 153)'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-width')).not.toBe(\n '0px 1px 0px 0px'\n );\n });\n it('renders horizontal row borders when set to horizontal', async () => {\n table.setProperty('bordered', 'horizontal');\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-width')).toBe(\n '0px 0px 1px'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-style')).toBe('solid');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tr'], 'border-color')).toBe(\n 'rgb(153, 153, 153)'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-width')).not.toBe(\n '0px 1px 0px 0px'\n );\n });\n it('renders vertical column borders when set to vertical', async () => {\n table.setProperty('bordered', 'vertical');\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-width')).toBe('0px 1px 0px 0px');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-style')).toBe('solid');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-color')).toBe(\n 'rgb(153, 153, 153)'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-width')).not.toBe(\n '0px 0px 1px'\n );\n });\n\n it('renders with vertical and horizontal borders when set to grid', async () => {\n table.setProperty('bordered', 'grid');\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-width')).toBe('0px 1px 0px 0px');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-style')).toBe('solid');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'col'], 'border-color')).toBe(\n 'rgb(153, 153, 153)'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-width')).toBe(\n '0px 0px 1px'\n );\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr'], 'border-style')).toBe('solid');\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tr'], 'border-color')).toBe(\n 'rgb(153, 153, 153)'\n );\n });\n it('does not render a left-side vertical border on the first column', async () => {\n table.setProperty('bordered', 'vertical');\n await e2ePage.waitForChanges();\n const borderWidth = await getCSSProperty(e2ePage, ['q2-data-table', 'col:first-child'], 'border-width');\n expect(borderWidth).toBe('0px 1px 0px 0px');\n expect(borderWidth).not.toBe('0px 0px 0px 1px');\n });\n it('does not render a vertical border on the rightmost column', async () => {\n table.setProperty('bordered', 'vertical');\n await e2ePage.waitForChanges();\n const borderWidth = await getCSSProperty(e2ePage, ['q2-data-table', 'col:last-child'], 'border-width');\n expect(borderWidth).toBe('0px');\n expect(borderWidth).not.toBe('0px 1px 0px 0px');\n });\n });\n\n describe('shadowed', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n });\n it('renders with no shadow when false (default)', async () => {\n expect(await getCSSProperty(e2ePage, ['q2-data-table', '.container'], 'box-shadow')).toBe('none');\n });\n\n it('renders with shadow when true', async () => {\n table.setProperty('shadowed', true);\n await e2ePage.waitForChanges();\n expect(await getCSSProperty(e2ePage, ['q2-data-table', '.container'], 'box-shadow')).toBe(\n 'rgba(0, 0, 0, 0.12) 0px 0px 2px 0px, rgba(0, 0, 0, 0.14) 0px 2px 4px 0px'\n );\n });\n });\n\n describe('clickable', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData.map(header => ({ ...header, sortable: header.key === 'name' }));\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n });\n\n it('renders with no clickable column when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length);\n const clickCol = specPage.root.shadowRoot.querySelector('col.click-column');\n const clickHeader = specPage.root.shadowRoot.querySelector('thead th#click');\n const clickableRow = specPage.root.shadowRoot.querySelector('tr.clickable');\n\n expect(clickCol).toBeNull();\n expect(clickHeader).toBeNull();\n expect(clickableRow).toBeNull();\n expect(specPage.root.shadowRoot.querySelector('tbody tr')).not.toHaveAttribute('tabindex');\n });\n\n it('renders with clickable columns when provided', async () => {\n specPage.root.clickable = true;\n await specPage.waitForChanges();\n const clickCol = specPage.root.shadowRoot.querySelector('col.click-column');\n const clickHeader = specPage.root.shadowRoot.querySelector('thead th#click');\n const clickableRow = specPage.root.shadowRoot.querySelector('tr.clickable');\n const clickableColumn = specPage.root.shadowRoot.querySelector('tr.clickable td.click-column');\n\n expect(clickCol).toBeTruthy();\n expect(clickHeader).toBeTruthy();\n expect(clickHeader).not.toHaveClass('sr');\n expect(clickableRow).toBeTruthy();\n expect(clickableRow).toEqualAttribute('tabindex', '-1');\n expect(clickableColumn).not.toHaveClass('sr');\n });\n\n describe('when hide-clickable', () => {\n it('renders with a hidden clickable column when provided', async () => {\n specPage.root.clickable = true;\n specPage.root.hideClickable = true;\n await specPage.waitForChanges();\n const clickCol = specPage.root.shadowRoot.querySelector('col.click-column');\n const clickHeader = specPage.root.shadowRoot.querySelector('thead th#click');\n const clickableRow = specPage.root.shadowRoot.querySelector('tr.clickable');\n const clickableColumn = specPage.root.shadowRoot.querySelector('tr.clickable td.click-column');\n\n expect(clickCol).toBeTruthy();\n expect(clickHeader).toBeTruthy();\n expect(clickHeader).toHaveClass('sr');\n expect(clickableRow).toBeTruthy();\n expect(clickableColumn).toHaveClass('sr');\n });\n });\n });\n\n describe('loading', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData.map(header => ({ ...header, sortable: header.key === 'name' }));\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n });\n\n it('renders all rows when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelectorAll('tbody tr')).toHaveLength(rowData.length);\n expect(specPage.root.shadowRoot.querySelector('tbody tr.loading-row')).toBeNull();\n });\n\n it('renders with loading state when provided', async () => {\n specPage.root.loading = true;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelectorAll('tbody tr')).toHaveLength(1);\n expect(specPage.root.shadowRoot.querySelector('tbody tr.loading-row')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelector('tbody tr.loading-row')).toEqualHtml(`\n <tr class=\"loading-row\">\n <td colspan=\"2\">\n <q2-loading inline></q2-loading>\n </td>\n </tr>\n `);\n });\n\n describe('when sortable', () => {\n it('does not disable controls in the header when not provided (default)', async () => {\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n expect(\n specPage.root.shadowRoot.querySelector('[test-id=select-all-rows-control]')\n ).not.toHaveAttribute('disabled');\n expect(specPage.root.shadowRoot.querySelector('[test-id=sort-control]')).not.toHaveAttribute(\n 'disabled'\n );\n });\n\n it('disables controls in the header when provided', async () => {\n specPage.root.loading = true;\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('[test-id=select-all-rows-control]')).toHaveAttribute(\n 'disabled'\n );\n expect(specPage.root.shadowRoot.querySelector('[test-id=sort-control]')).toHaveAttribute(\n 'disabled'\n );\n });\n });\n });\n\n describe('caption', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n });\n\n it('renders with no caption when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelector('caption')).toBeFalsy();\n });\n\n it('renders with caption when provided', async () => {\n specPage.root.caption = 'Test Caption';\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('caption')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelector('caption')).toEqualHtml(`\n <caption>Test Caption</caption>\n `);\n });\n });\n\n describe('hideCaption', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table caption=\"Test Caption\"></q2-data-table>',\n });\n });\n\n it('renders caption without sr class when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelector('caption')).not.toHaveClass('sr');\n expect(specPage.root.shadowRoot.querySelector('caption')).toEqualHtml(`\n <caption>Test Caption</caption>\n `);\n });\n\n it('renders caption caption with sr class when provided', async () => {\n specPage.root.hideCaption = true;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('caption')).toHaveClass('sr');\n expect(specPage.root.shadowRoot.querySelector('caption')).toEqualHtml(`\n <caption class=\"sr\">Test Caption</caption>\n `);\n });\n });\n\n describe('selectable', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n });\n\n it('renders with no select column when false (default)', async () => {\n expect(specPage.root.shadowRoot.querySelector('.select-column')).toBeFalsy();\n });\n\n it('renders with select column when true', async () => {\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('col.select-column')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('td.select-column')).toHaveLength(rowData.length);\n expect(specPage.root.shadowRoot.querySelectorAll('q2-checkbox')).toHaveLength(rowData.length + 1);\n });\n\n it('renders rows with proper markup when no options are selected', async () => {\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n const firstRow = specPage.root.shadowRoot.querySelector('tbody tr#row-1');\n const firstRowCheckbox = specPage.root.shadowRoot.querySelector('tbody tr#row-1 q2-checkbox');\n expect(firstRow).not.toHaveClass('selected');\n expect(firstRowCheckbox).not.toHaveAttribute('checked');\n });\n\n it('renders rows with proper markup when options are selected', async () => {\n specPage.root.selectable = true;\n rowData = rowData.map(row => {\n if (row.id === 1) {\n row.selected = true;\n }\n return row;\n });\n specPage.root.rows = rowData;\n\n await specPage.waitForChanges();\n const firstRow = specPage.root.shadowRoot.querySelector('tbody tr#row-1');\n const firstRowCheckbox = specPage.root.shadowRoot.querySelector('tbody tr#row-1 q2-checkbox');\n expect(firstRow).toHaveClass('selected');\n expect(firstRowCheckbox).toHaveAttribute('checked');\n });\n\n it('deselects all rows when selectable property is changed to false', async () => {\n specPage.root.selectable = true;\n rowData = rowData.map(row => {\n if (row.id === 1) {\n row.selected = true;\n }\n return row;\n });\n specPage.root.rows = rowData;\n\n await specPage.waitForChanges();\n const firstRow = specPage.root.shadowRoot.querySelector('tbody tr#row-1');\n const firstRowCheckbox = specPage.root.shadowRoot.querySelector('tbody tr#row-1 q2-checkbox');\n expect(firstRow).toHaveClass('selected');\n expect(firstRowCheckbox).toHaveAttribute('checked');\n\n specPage.root.selectable = false;\n await specPage.waitForChanges();\n\n const firstSelected = specPage.root.shadowRoot.querySelector('tbody tr#row-1');\n const firstCheckbox = specPage.root.shadowRoot.querySelector('tbody tr#row-1 q2-checkbox');\n expect(firstSelected).not.toHaveClass('selected');\n expect(firstCheckbox).toBeFalsy();\n });\n });\n\n describe('selectMode', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n });\n\n it('renders with multiple-select markup when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length + 1);\n expect(specPage.root.shadowRoot.querySelector('.select-column')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('q2-checkbox')).toHaveLength(rowData.length + 1);\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toEqualHtml(`\n <colgroup>\n <col class=\"select-column\"></col>\n <col></col>\n <col></col>\n </colgroup>\n `);\n expect(specPage.root.shadowRoot.querySelector('thead')).toEqualHtml(`\n <thead>\n <tr>\n <th>\n <q2-checkbox\n hide-label\n label=\"tecton.element.dataTable.selectAllRows\"\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n </th>\n <th id=\"header-name\">\n <div class=\"header-content\" aria-label=\"Name\">\n <slot name=\"header-cell-name\">Name</slot>\n </div>\n </th>\n <th id=\"header-email\">\n <div class=\"header-content\">\n <slot name=\"header-cell-email\">Email</slot>\n </div>\n </th>\n </tr>\n </thead>\n `);\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\">\n <td class=\"select-column\">\n <q2-checkbox hide-label label=\"tecton.element.dataTable.selectRow\" test-id=\"select-row-control\"></q2-checkbox>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n\n it('renders with single-select markup when provided', async () => {\n specPage.root.selectMode = 'single';\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length + 1);\n expect(specPage.root.shadowRoot.querySelector('.select-column')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('q2-checkbox')).toHaveLength(rowData.length);\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toEqualHtml(`\n <colgroup>\n <col class=\"select-column\"></col>\n <col></col>\n <col></col>\n </colgroup>\n `);\n expect(specPage.root.shadowRoot.querySelector('thead')).toEqualHtml(`\n <thead>\n <tr>\n <th></th>\n <th id=\"header-name\">\n <div class=\"header-content\" aria-label=\"Name\">\n <slot name=\"header-cell-name\">Name</slot>\n </div>\n </th>\n <th id=\"header-email\">\n <div class=\"header-content\">\n <slot name=\"header-cell-email\">Email</slot>\n </div>\n </th>\n </tr>\n </thead>\n `);\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\">\n <td class=\"select-column\">\n <q2-checkbox hide-label label=\"tecton.element.dataTable.selectRow\" test-id=\"select-row-control\"></q2-checkbox>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n });\n\n describe('headers', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n });\n\n it('renders with no headers when not provided (default)', async () => {\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toBeFalsy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(0);\n expect(specPage.root.shadowRoot.querySelector('thead')).toBeFalsy();\n expect(specPage.root.shadowRoot.querySelectorAll('th')).toHaveLength(0);\n });\n\n it('renders with headers when provided', async () => {\n specPage.root.headers = headerData;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelectorAll('colgroup')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length);\n expect(specPage.root.shadowRoot.querySelectorAll('thead')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('th')).toHaveLength(headerData.length);\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toEqualHtml(`\n <colgroup>\n <col></col>\n <col></col>\n </colgroup>\n `);\n expect(specPage.root.shadowRoot.querySelector('thead')).toEqualHtml(`\n <thead>\n <tr>\n <th id=\"header-name\">\n <div class=\"header-content\" aria-label=\"Name\">\n <slot name=\"header-cell-name\">Name</slot>\n </div>\n </th>\n <th id=\"header-email\">\n <div class=\"header-content\">\n <slot name=\"header-cell-email\">Email</slot>\n </div>\n </th>\n </tr>\n </thead>\n `);\n });\n });\n\n describe('rows', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n });\n\n it('renders a q2-icon and message when no row data provided', async () => {\n specPage.root.headers = headerData;\n specPage.root.rows = [];\n await specPage.waitForChanges();\n\n const icon = specPage.root.shadowRoot.querySelector('q2-icon');\n const message = specPage.root.shadowRoot.querySelector('p');\n expect(icon).toBeTruthy();\n expect(message).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n <tr class=\"empty-state\">\n <td colSpan=\"2\">\n <div class=\"empty-state-content\">\n <q2-icon type=\"inbox\"></q2-icon>\n <p>tecton.element.dataTable.emptyMessage</p>\n </div>\n </td>\n </tr>\n </tbody>\n `);\n });\n\n it('renders with rows when provided', async () => {\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelectorAll('tbody')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('tbody tr')).toHaveLength(rowData.length);\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\">\n <td>\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n });\n\n describe('striped', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n table.setProperty('striped', true);\n await e2ePage.waitForChanges();\n });\n it('sets the background on even-numbered rows', async () => {\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr#row-2'], 'background-color')).toBe(\n 'rgb(242, 242, 242)'\n );\n });\n it('maintains transparent background on odd-numbered rows', async () => {\n expect(await getCSSProperty(e2ePage, ['q2-data-table', 'tbody tr#row-1'], 'background-color')).toBe(\n 'rgba(0, 0, 0, 0)'\n );\n });\n });\n });\n\n describe('Features', () => {\n describe('line clamping', () => {\n it('does not line-clamp when not provided (default)', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n const firstCellOfAllRows = await e2ePage.findAll('q2-data-table >>> tbody tr td.clamped');\n expect(firstCellOfAllRows).toHaveLength(0);\n });\n\n it('clamps the cell to the specified value when provided', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n headerData = headerData.map(header => {\n if (header.key === 'name') {\n header.lineClamp = 2;\n }\n return header;\n });\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n const firstCellOfAllRows = await e2ePage.findAll('q2-data-table >>> tbody tr td.clamped');\n expect(firstCellOfAllRows).toHaveLength(3);\n\n const lineClampValue = await getNestedElementStyle(\n e2ePage,\n ['q2-data-table', 'tbody tr td.clamped div'],\n '-webkit-line-clamp'\n );\n expect(lineClampValue).toBe('2');\n });\n });\n\n describe('vertical-align', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n });\n\n it('applies vertical-align class name to cells when provided', async () => {\n headerData.map(header => {\n header.verticalAlign = 'top';\n });\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\">\n <td class=\"vertical-align-top\">\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td class=\"vertical-align-top\">\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n });\n });\n\n describe('Slots', () => {\n describe('dropdowns', () => {\n it('displays controls when the slot content changes', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> td.dropdown-column')).toBeNull();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = `\n <div slot=\"row-2-dropdown\">\n <h2>Dropdown</h2>\n </div>\n `;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column')).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column slot')).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column')).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column slot')).toBeFalsy();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = `\n <div slot=\"row-3-dropdown\">\n <h2>Collapsible Row</h2>\n </div>\n `;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column')).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column slot')).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column')).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column slot')).toBeTruthy();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = null;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column')).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.dropdown-column slot')).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column')).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.dropdown-column slot')).toBeFalsy();\n });\n\n it('renders slots for dropdown when provided in the markup', async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: `\n <q2-data-table>\n <q2-dropdown\n slot=\"row-2-dropdown\"\n icon=\"options\"\n alignment=\"right\"\n hideLabel\n >\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item separator=\"\"></q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-data-table>\n `,\n });\n\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length + 1);\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toEqualHtml(`\n <colgroup>\n <col></col>\n <col></col>\n <col class=\"dropdown-column\"></col>\n </colgroup>\n `);\n expect(specPage.root.shadowRoot.querySelector('thead')).toEqualHtml(`\n <thead>\n <tr>\n <th id=\"header-name\">\n <div class=\"header-content\" aria-label=\"Name\">\n <slot name=\"header-cell-name\">Name</slot>\n </div>\n </th>\n <th id=\"header-email\">\n <div class=\"header-content\">\n <slot name=\"header-cell-email\">Email</slot>\n </div>\n </th>\n <th>\n <span class=\"sr\">\n tecton.element.dataTable.dropdown\n </span>\n </th>\n </tr>\n </thead>\n `);\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\">\n <td>\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n <td class=\"dropdown-column\">\n ${row.id === 2 ? '<slot name=\"row-2-dropdown\"></slot>' : ''}\n </td>\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n });\n\n describe('expandable-content', () => {\n it('displays controls when the slot content changes', async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> td.expandable-row-control-column')).toBeNull();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = `\n <div slot=\"row-2-expandable-content\">\n <h2>Collapsible Row</h2>\n </div>\n `;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.expandable-row-control-column')).toBeTruthy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-2 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeTruthy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.expandable-row-control-column')).toBeTruthy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-3 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeFalsy();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = `\n <div slot=\"row-3-expandable-content\">\n <h2>Collapsible Row</h2>\n </div>\n `;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.expandable-row-control-column')).toBeTruthy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-2 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.expandable-row-control-column')).toBeTruthy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-3 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeTruthy();\n\n await e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.innerHTML = null;\n });\n await e2ePage.waitForChanges();\n\n expect(await e2ePage.find('q2-data-table >>> tr#row-2 td.expandable-row-control-column')).toBeFalsy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-2 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeFalsy();\n expect(await e2ePage.find('q2-data-table >>> tr#row-3 td.expandable-row-control-column')).toBeFalsy();\n expect(\n await e2ePage.find(\n 'q2-data-table >>> tr#row-3 td.expandable-row-control-column [test-id=expandable-row-control]'\n )\n ).toBeFalsy();\n });\n\n it('renders slots for expandable rows when provided in the markup', async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: `\n <q2-data-table>\n <div\n slot=\"row-2-expandable-content\"\n >\n <h3>Test</h3>\n <p>This will be collapsible</p>\n </div>\n </q2-data-table>\n `,\n });\n\n specPage.root.headers = headerData;\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toBeTruthy();\n expect(specPage.root.shadowRoot.querySelectorAll('col')).toHaveLength(headerData.length + 1);\n expect(specPage.root.shadowRoot.querySelector('colgroup')).toEqualHtml(`\n <colgroup>\n <col></col>\n <col></col>\n <col class=\"expandable-row-control-column\"></col>\n </colgroup>\n `);\n expect(specPage.root.shadowRoot.querySelector('thead')).toEqualHtml(`\n <thead>\n <tr>\n <th id=\"header-name\">\n <div class=\"header-content\" aria-label=\"Name\">\n <slot name=\"header-cell-name\">Name</slot>\n </div>\n </th>\n <th id=\"header-email\">\n <div class=\"header-content\">\n <slot name=\"header-cell-email\">Email</slot>\n </div>\n </th>\n <th id=\"toggle\">\n <span class=\"sr\">\n tecton.element.dataTable.toggleRow\n </span>\n </th>\n </tr>\n </thead>\n `);\n expect(specPage.root.shadowRoot.querySelector('tbody')).toEqualHtml(`\n <tbody>\n ${rowData\n .map(\n row => `\n <tr id=\"row-${row.id}\" ${row.id === 2 ? `class=\"expandable\" tabindex=\"-1\"` : ''}>\n <td>\n <slot name=\"row-${row.id}-cell-name\">\n <div>\n ${row.cells.name}\n </div>\n </slot>\n </td>\n <td>\n <slot name=\"row-${row.id}-cell-email\">\n <div>\n ${row.cells.email}\n </div>\n </slot>\n </td>\n ${\n row.id === 2\n ? `\n <td class=\"expandable-row-control-column\">\n <q2-btn\n ariaControls=\"row-2-expandable-content\"\n ariaExpanded=\"false\"\n ariaLabel=\"tecton.element.dataTable.toggleRow\"\n test-id=\"expandable-row-control\"\n >\n <q2-icon class=\"toggle-expandable-row\" type=\"chevron-down\"></q2-icon>\n </q2-btn>\n </td>\n `\n : '<td class=\"expandable-row-control-column\"></td>'\n }\n </tr>\n ${\n row.id === 2\n ? `\n <tr aria-hidden=\"\" class=\"expandable-row\" hidden=\"\" id=\"row-2-expandable-content\">\n <td colspan=\"3\" headers=\"toggle\">\n <div class=\"expandable-content\">\n <slot name=\"row-2-expandable-content\"></slot>\n </div>\n </td>\n `\n : ''\n }\n </tr>\n `\n )\n .join('')}\n </tbody>\n `);\n });\n });\n describe('row and header cell slots', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `<q2-data-table></q2-data-table>`,\n });\n table = await e2ePage.find('q2-data-table');\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n });\n\n it('renders row slots for custom cell content', async () => {\n expect(await e2ePage.find('q2-data-table >>> tr td slot')).toBeTruthy();\n });\n\n it('renders header slots for custom header content', async () => {\n expect(await e2ePage.find('q2-data-table >>> th div.header-content slot')).toBeTruthy();\n });\n });\n });\n\n describe('Unit', () => {\n let dataTable: Q2DataTable;\n beforeEach(() => {\n dataTable = new Q2DataTable();\n });\n\n describe('headersHandler', () => {\n it('serializes basic data', () => {\n dataTable.headersHandler(headerData);\n const { serializedHeaders } = dataTable;\n\n expect(serializedHeaders).toEqual([\n { key: 'name', title: 'Name', ariaLabel: 'Name' },\n { key: 'email', title: 'Email' },\n ]);\n });\n\n it('serializes with auto-generated keys', () => {\n dataTable.headersHandler([{ title: 'Name' }, { title: 'Fancy Column' }]);\n const { serializedHeaders } = dataTable;\n\n expect(serializedHeaders).toEqual([\n { key: 'name', title: 'Name' },\n { key: 'fancy-column', title: 'Fancy Column' },\n ]);\n });\n\n it('serializes every property in the object', () => {\n const robustHeaderData: Q2DataTableHeader = {\n title: 'Name',\n align: 'end',\n key: 'name',\n sortable: true,\n width: '100px',\n backgroundColor: 'var(--t-primary)',\n sorted: 'ASC',\n verticalAlign: 'bottom',\n };\n dataTable.headersHandler([robustHeaderData]);\n const { serializedHeaders } = dataTable;\n\n expect(serializedHeaders[0]).toEqual(robustHeaderData);\n });\n });\n\n describe('rowsHandler', () => {\n let firstRowData;\n beforeEach(() => {\n firstRowData = rowData[0];\n });\n\n it('serializes basic data', () => {\n dataTable.rowsHandler(rowData);\n const { serializedRows } = dataTable;\n\n expect(serializedRows).toEqual([\n {\n id: 1,\n cells: {\n name: {\n value: 'Thor',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n email: {\n value: 'strongest.avenger@asgard.gov',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n },\n selected: false,\n expanded: false,\n disabled: false,\n },\n {\n id: 2,\n cells: {\n name: {\n value: 'Iron Man',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n email: {\n value: 'moneybags@stark.com',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n },\n selected: false,\n expanded: false,\n disabled: false,\n },\n {\n id: 3,\n cells: {\n name: {\n value: 'Captain America',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n email: {\n value: 'what-is-email@shield.org',\n ariaLabel: undefined,\n type: 'text',\n align: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n },\n },\n selected: false,\n expanded: false,\n disabled: false,\n },\n ]);\n });\n\n it(\"serializes data with 'expanded' property\", () => {\n firstRowData.expanded = true;\n dataTable.rowsHandler([firstRowData]);\n expect(dataTable.serializedRows[0]).toHaveProperty('expanded', true);\n });\n\n it(\"serializes data with 'selected' property\", () => {\n firstRowData.selected = true;\n dataTable.rowsHandler([firstRowData]);\n expect(dataTable.serializedRows[0]).toHaveProperty('selected', true);\n });\n\n it(\"serializes data with 'disabled' property\", () => {\n firstRowData.disabled = true;\n dataTable.rowsHandler([firstRowData]);\n expect(dataTable.serializedRows[0]).toHaveProperty('disabled', true);\n });\n\n it(\"serializes cell data that is a string into an object of type 'text'\", () => {\n firstRowData.cells.name = 'Test';\n dataTable.rowsHandler([firstRowData]);\n expect(dataTable.serializedRows[0]).toHaveProperty('cells.name', {\n align: undefined,\n ariaLabel: undefined,\n badgeStatus: undefined,\n badgeTheme: undefined,\n type: 'text',\n value: 'Test',\n });\n });\n\n it('serializes cell data that is an object', () => {\n firstRowData.cells.name = {\n align: 'end',\n ariaLabel: 'My arial label',\n badgeStatus: 'success',\n badgeTheme: 'secondary',\n type: 'badge',\n value: 'Test',\n verticalAlign: 'bottom',\n };\n dataTable.rowsHandler([firstRowData]);\n expect(dataTable.serializedRows[0]).toHaveProperty('cells.name', firstRowData.cells.name);\n });\n\n describe('when header data is provided that sets cell-specific properties', () => {\n let firstHeaderData;\n beforeEach(() => {\n firstHeaderData = {\n ...headerData[0],\n align: 'end',\n type: 'badge',\n badgeStatus: 'success',\n badgeTheme: 'secondary',\n lineClamp: 2,\n verticalAlign: 'bottom',\n };\n dataTable.headersHandler([firstHeaderData]);\n });\n\n it('it sets cell-specific properties on the cell', () => {\n dataTable.rowsHandler([firstRowData]);\n const nameCell = dataTable.serializedRows[0].cells.name;\n expect(nameCell).toHaveProperty('align', 'end');\n expect(nameCell).toHaveProperty('type', 'badge');\n expect(nameCell).toHaveProperty('badgeStatus', 'success');\n expect(nameCell).toHaveProperty('badgeTheme', 'secondary');\n expect(nameCell).toHaveProperty('lineClamp', 2);\n expect(nameCell).toHaveProperty('verticalAlign', 'bottom');\n });\n\n it('it does not override cell-specific properties on the cell if they are already defined', () => {\n firstRowData.cells.name = {\n value: 'Thor',\n ariaLabel: undefined,\n align: 'start',\n lineClamp: 2,\n type: 'text',\n badgeStatus: 'danger',\n badgeTheme: 'primary',\n verticalAlign: 'top',\n };\n dataTable.rowsHandler([firstRowData]);\n const nameCell = dataTable.serializedRows[0].cells.name;\n expect(nameCell).toEqual(firstRowData.cells.name);\n });\n });\n describe('when row data is set dynamically', () => {\n it('updates the select all rows checkbox to reflect the dataset status', async () => {\n specPage = await newSpecPage({\n components: [Q2DataTable],\n html: '<q2-data-table></q2-data-table>',\n });\n specPage.root.headers = headerData;\n rowData = rowData.map(row => {\n if (row.id === 1) {\n row.selected = true;\n }\n return row;\n });\n specPage.root.rows = rowData;\n specPage.root.selectable = true;\n await specPage.waitForChanges();\n\n const headerCheckbox = specPage.root.shadowRoot.querySelector('[test-id=select-all-rows-control]');\n expect(headerCheckbox).not.toHaveAttribute('disabled');\n expect(headerCheckbox.getAttribute('checked')).toBeFalsy();\n\n rowData = rowData.map(row => {\n row.selected = true;\n return row;\n });\n specPage.root.rows = rowData;\n await specPage.waitForChanges();\n\n const checkedHeaderBox = specPage.root.shadowRoot.querySelector(\n '[test-id=select-all-rows-control]'\n );\n expect(checkedHeaderBox).not.toHaveAttribute('disabled');\n expect(checkedHeaderBox).toHaveAttribute('checked');\n });\n });\n });\n\n describe('getters', () => {\n describe('selectedRows', () => {\n it('returns an empty array if no rows are selected', () => {\n dataTable.rowsHandler(rowData);\n expect(dataTable.selectedRows).toEqual([]);\n });\n\n it('returns a populated array if rows are selected', () => {\n rowData[0].selected = true;\n rowData[2].selected = true;\n dataTable.rowsHandler(rowData);\n const { serializedRows } = dataTable;\n expect(dataTable.selectedRows).toEqual([serializedRows[0], serializedRows[2]]);\n });\n });\n\n describe('selectedRow', () => {\n it('returns undefined if no row is selected', () => {\n dataTable.rowsHandler(rowData);\n expect(dataTable.selectedRow).toBeUndefined();\n });\n\n it('returns the first selected row if at least one is selected', () => {\n rowData[0].selected = true;\n dataTable.rowsHandler(rowData);\n expect(dataTable.selectedRow).toEqual(dataTable.serializedRows[0]);\n });\n });\n\n describe('numberOfColumns', () => {\n it('returns 0 if there are no headers', () => {\n expect(dataTable.numberOfColumns).toEqual(0);\n });\n\n it('returns the number of columns', () => {\n dataTable.headersHandler(headerData);\n expect(dataTable.numberOfColumns).toEqual(2);\n });\n\n it('adds 1 to the number of columns if selectable is true', () => {\n expect(dataTable.numberOfColumns).toEqual(0);\n dataTable.selectable = true;\n expect(dataTable.numberOfColumns).toEqual(1);\n });\n\n it('adds 1 to the number of columns if there are any expandable rows', () => {\n expect(dataTable.numberOfColumns).toEqual(0);\n dataTable.hasExpandableRows = true;\n expect(dataTable.numberOfColumns).toEqual(1);\n });\n\n it('adds 1 to the number of columns if there are any row actions defined', () => {\n expect(dataTable.numberOfColumns).toEqual(0);\n dataTable.hasDropdowns = true;\n expect(dataTable.numberOfColumns).toEqual(1);\n });\n });\n\n describe('mappedHeaders', () => {\n it('returns an empty object if there are no headers', () => {\n expect(dataTable.mappedHeaders).toEqual({});\n });\n\n it('returns an object with the header id as the key and the header as the value', () => {\n dataTable.headersHandler(headerData);\n expect(dataTable.mappedHeaders).toEqual({\n name: { ...headerData[0] },\n email: { ...headerData[1] },\n });\n });\n });\n });\n\n describe('event handlers', () => {\n beforeEach(() => {\n dataTable.headersHandler(headerData);\n dataTable.rowsHandler(rowData);\n });\n\n describe('onSort', () => {\n let sortRows;\n beforeEach(() => {\n sortRows = jest.spyOn(dataTable, 'sortRows');\n\n expect(dataTable.serializedRows.map(row => row.id)).toEqual([1, 2, 3]);\n expect(dataTable.serializedHeaders[1]).not.toHaveProperty('sorted');\n });\n\n it('calls onSort and updates the serializedHeaders and serializedRows properties', () => {\n const cachedSerializedRows = dataTable.serializedRows;\n dataTable.onSort(dataTable.serializedHeaders[1]);\n\n expect(dataTable.serializedRows.map(row => row.id)).toEqual([2, 1, 3]);\n expect(dataTable.serializedHeaders[1]).toHaveProperty('sorted', 'ASC');\n expect(sortRows).toHaveBeenCalledWith(cachedSerializedRows, {\n ...dataTable.serializedHeaders[1],\n sorted: 'ASC',\n });\n });\n\n it('does not modify data if preventDefault is called on sort event', () => {\n dataTable.sort.emit = jest.fn(detail => {\n const sortEvent = new CustomEvent('sort', { detail });\n sortEvent.preventDefault();\n return sortEvent;\n });\n\n dataTable.onSort(dataTable.serializedHeaders[1]);\n\n expect(dataTable.sort.emit).toHaveBeenCalledWith({\n direction: 'ASC',\n header: dataTable.serializedHeaders[1],\n });\n expect(dataTable.serializedRows.map(row => row.id)).toEqual([1, 2, 3]);\n expect(dataTable.serializedHeaders[1]).not.toHaveProperty('sorted');\n expect(sortRows).not.toHaveBeenCalled();\n });\n });\n\n describe('onSelectAllRows', () => {\n beforeEach(() => {\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n\n it('selects all rows if they are not all selected', () => {\n dataTable.onSelectAllRows(new CustomEvent('selectAllRows', { detail: { checked: true } }));\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(true);\n expect(dataTable.allRowsSelected).toBe(true);\n });\n\n it('deselects all rows if they are all selected', () => {\n dataTable.serializedRows.forEach(row => (row.selected = true));\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(true);\n dataTable.onSelectAllRows(new CustomEvent('selectAllRows', { detail: { checked: false } }));\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n\n it('does not modify data if preventDefault is called on select event', () => {\n dataTable.select.emit = jest.fn(detail => {\n const sortEvent = new CustomEvent('sort', { detail });\n sortEvent.preventDefault();\n return sortEvent;\n });\n\n dataTable.onSelectAllRows(new CustomEvent('click', { detail: { checked: true } }));\n\n expect(dataTable.select.emit).toHaveBeenCalledWith({\n allSelected: true,\n row: undefined,\n rows: dataTable.serializedRows.map(row => ({ ...row, selected: true })),\n });\n\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n\n it('does not select rows with disabled set to true', async () => {\n dataTable.serializedRows[0].disabled = true;\n dataTable.onSelectAllRows(new CustomEvent('selectAllRows', { detail: { checked: true } }));\n expect(dataTable.allRowsSelected).toBe(true);\n expect(dataTable.serializedRows[0].selected).toBe(false);\n });\n });\n\n describe('onSelectRow', () => {\n beforeEach(() => {\n expect(dataTable.serializedRows.every(row => row.selected)).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n\n it('selects row', () => {\n dataTable.onSelectRow(\n new CustomEvent('click', { detail: { checked: true } }),\n dataTable.serializedRows[1]\n );\n expect(dataTable.serializedRows[1].selected).toBe(true);\n expect(dataTable.allRowsSelected).toBe(false);\n expect(dataTable.someRowsSelected).toBe(true);\n });\n\n it('deselects row', () => {\n dataTable.rowsHandler(rowData.map((row, index) => ({ ...row, selected: index === 1 })));\n expect(dataTable.serializedRows[1].selected).toBe(true);\n expect(dataTable.someRowsSelected).toBe(true);\n dataTable.onSelectRow(\n new CustomEvent('click', { detail: { checked: false } }),\n dataTable.serializedRows[1]\n );\n expect(dataTable.serializedRows[1].selected).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n expect(dataTable.someRowsSelected).toBe(false);\n });\n\n it('does not modify data if preventDefault is called on select event', () => {\n dataTable.select.emit = jest.fn(detail => {\n const selectAllEvent = new CustomEvent('select', { detail });\n selectAllEvent.preventDefault();\n return selectAllEvent;\n });\n\n expect(dataTable.serializedRows[1].selected).toBe(false);\n dataTable.onSelectRow(\n new CustomEvent('click', { detail: { checked: true } }),\n dataTable.serializedRows[1]\n );\n const selectedRow = { ...dataTable.serializedRows[1], selected: true };\n expect(dataTable.select.emit).toHaveBeenCalledWith({\n row: selectedRow,\n rows: [selectedRow],\n allSelected: false,\n });\n expect(dataTable.serializedRows[1].selected).toBe(false);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n\n it('updates allRowsSelected to true and someRowsSelected to false when all rows have been marked as selected', () => {\n dataTable.rowsHandler(rowData.map((row, index) => ({ ...row, selected: index !== 1 })));\n expect(dataTable.serializedRows[1].selected).toBe(false);\n expect(dataTable.someRowsSelected).toBe(true);\n dataTable.onSelectRow(\n new CustomEvent('click', { detail: { checked: true } }),\n dataTable.serializedRows[1]\n );\n expect(dataTable.serializedRows[1].selected).toBe(true);\n expect(dataTable.allRowsSelected).toBe(true);\n expect(dataTable.someRowsSelected).toBe(false);\n });\n it('updates someRowsSelected to true and allRowsSelected to false when only some rows have been marked as selected', () => {\n dataTable.rowsHandler(rowData.map((row, index) => ({ ...row, selected: index !== 1 })));\n expect(dataTable.serializedRows[1].selected).toBe(false);\n expect(dataTable.someRowsSelected).toBe(true);\n expect(dataTable.allRowsSelected).toBe(false);\n });\n });\n\n describe('onClickTableRow', () => {\n beforeEach(() => {\n dataTable.onClickRow = jest.fn();\n dataTable.onToggleRow = jest.fn();\n });\n\n it('calls onClickRow when clickable is true', () => {\n dataTable.clickable = true;\n\n const clickEvent = new MouseEvent('click');\n dataTable.onClickTableRow(clickEvent, dataTable.serializedRows[1]);\n expect(dataTable.onClickRow).toHaveBeenCalledWith(clickEvent, dataTable.serializedRows[1]);\n expect(dataTable.onToggleRow).not.toHaveBeenCalled();\n });\n\n it('calls onToggleRow when hasExpandableRows is true', () => {\n dataTable.hasExpandableRows = true;\n\n const clickEvent = new MouseEvent('click');\n dataTable.onClickTableRow(clickEvent, dataTable.serializedRows[1]);\n expect(dataTable.onClickRow).not.toHaveBeenCalled();\n expect(dataTable.onToggleRow).toHaveBeenCalledWith(clickEvent, dataTable.serializedRows[1]);\n });\n\n it('does not call anything when both clickable and hasExpandableRows is false', () => {\n const clickEvent = new MouseEvent('click');\n dataTable.onClickTableRow(clickEvent, dataTable.serializedRows[1]);\n expect(dataTable.onClickRow).not.toHaveBeenCalled();\n expect(dataTable.onToggleRow).not.toHaveBeenCalled();\n });\n });\n\n describe('onClickRow', () => {\n it('emits a click event with row data', () => {\n dataTable.click.emit = jest.fn();\n\n dataTable.onClickRow(new MouseEvent('click'), dataTable.serializedRows[1]);\n expect(dataTable.click.emit).toHaveBeenCalledWith({\n row: dataTable.serializedRows[1],\n });\n });\n });\n\n describe('onToggleRow', () => {\n beforeEach(() => {\n expect(dataTable.serializedRows.every(row => row.expanded)).toBe(false);\n });\n\n it('expands row', () => {\n dataTable.onToggleRow(new MouseEvent('click'), dataTable.serializedRows[1]);\n expect(dataTable.serializedRows[1].expanded).toBe(true);\n });\n\n it('closes row', () => {\n dataTable.rowsHandler(rowData.map((row, index) => ({ ...row, expanded: index === 1 })));\n expect(dataTable.serializedRows[1].expanded).toBe(true);\n dataTable.onToggleRow(new MouseEvent('click'), dataTable.serializedRows[1]);\n expect(dataTable.serializedRows[1].expanded).toBe(false);\n });\n\n it('does not modify data if preventDefault is called on toggle event', () => {\n dataTable.toggle.emit = jest.fn(detail => {\n const toggleEvent = new CustomEvent('toggle', { detail });\n toggleEvent.preventDefault();\n return toggleEvent;\n });\n\n expect(dataTable.serializedRows[1].expanded).toBe(false);\n dataTable.onToggleRow(new MouseEvent('click'), dataTable.serializedRows[1]);\n const selectedRow = { ...dataTable.serializedRows[1], expanded: true };\n expect(dataTable.toggle.emit).toHaveBeenCalledWith({\n row: selectedRow,\n });\n expect(dataTable.serializedRows[1].expanded).toBe(false);\n });\n });\n });\n\n describe('helpers', () => {\n describe('sortRows', () => {\n beforeEach(() => {\n dataTable.headersHandler(headerData);\n dataTable.rowsHandler(rowData);\n });\n\n it('returns the rows in ASC order of the provided header by default', () => {\n const sortedResult = dataTable\n .sortRows(dataTable.serializedRows, dataTable.serializedHeaders[1])\n .map(row => row.id);\n expect(sortedResult).toEqual([2, 1, 3]);\n });\n\n it('returns the rows in DESC order of the provided header', () => {\n const sortedResult = dataTable\n .sortRows(dataTable.serializedRows, { ...dataTable.serializedHeaders[1], sorted: 'DESC' })\n .map(row => row.id);\n expect(sortedResult).toEqual([3, 1, 2]);\n });\n });\n });\n });\n\n describe('Events', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `\n <q2-data-table>\n <div\n slot=\"row-2-expandable-content\"\n >\n <h3>Test</h3>\n <p>This will be collapsible</p>\n </div>\n </q2-data-table>\n `,\n });\n table = await e2ePage.find('q2-data-table');\n });\n\n describe('click', () => {\n let clickControl: E2EElement;\n let clickRow: E2EElement;\n beforeEach(async () => {\n table.setProperty('clickable', true);\n table.setProperty('hide-clickable', false);\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n clickControl = await e2ePage.find('q2-data-table >>> tr#row-2 [test-id=clickable-row-control]');\n clickRow = await e2ePage.find('q2-data-table >>> tr#row-2.clickable');\n });\n\n it('emits click event when button is clicked', async () => {\n const clickSpy = await table.spyOnEvent('click');\n clickControl.triggerEvent('click');\n await e2ePage.waitForChanges();\n const clickedRow = {\n id: 2,\n expanded: false,\n selected: false,\n disabled: false,\n cells: {\n email: {\n type: 'text',\n value: 'moneybags@stark.com',\n },\n name: {\n type: 'text',\n value: 'Iron Man',\n },\n },\n };\n\n expect(clickSpy).toHaveReceivedEventTimes(1);\n expect(clickSpy).toHaveReceivedEventDetail({\n row: clickedRow,\n });\n });\n\n it('emits click event when row is clicked', async () => {\n const clickSpy = await table.spyOnEvent('click');\n clickRow.click();\n await e2ePage.waitForChanges();\n const clickedRow = {\n id: 2,\n expanded: false,\n selected: false,\n disabled: false,\n cells: {\n email: {\n type: 'text',\n value: 'moneybags@stark.com',\n },\n name: {\n type: 'text',\n value: 'Iron Man',\n },\n },\n };\n\n expect(clickSpy).toHaveReceivedEventTimes(1);\n expect(clickSpy).toHaveReceivedEventDetail({\n row: clickedRow,\n });\n });\n });\n\n describe('select', () => {\n let selectControl: E2EElement;\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n selectControl = await e2ePage.find('q2-data-table >>> tr#row-2 [test-id=select-row-control]');\n });\n\n it('emits select event and mutates selected state', async () => {\n const selectSpy = await table.spyOnEvent('select');\n expect(selectControl).not.toHaveAttribute('checked');\n selectControl.click();\n await e2ePage.waitForChanges();\n const selectedRow = {\n id: 2,\n expanded: false,\n selected: true,\n disabled: false,\n cells: {\n email: {\n type: 'text',\n value: 'moneybags@stark.com',\n },\n name: {\n type: 'text',\n value: 'Iron Man',\n },\n },\n };\n\n expect(selectSpy).toHaveReceivedEventDetail({\n row: selectedRow,\n rows: [selectedRow],\n allSelected: false,\n });\n\n expect(selectControl).toEqualAttribute('checked', '');\n });\n\n it('does not mutate data if event is cancelled', async () => {\n e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.addEventListener('select', event => {\n event.preventDefault();\n });\n });\n expect(selectControl).not.toHaveAttribute('checked');\n selectControl.click();\n await e2ePage.waitForChanges();\n expect(selectControl).not.toHaveAttribute('checked');\n });\n\n it('does not expand the collapsible row when clicking on the select control', async () => {\n const expandableRow = await e2ePage.find('q2-data-table >>> tr#row-2.expandable');\n expect(expandableRow).not.toHaveClass('expanded');\n selectControl.click();\n await e2ePage.waitForChanges();\n expect(expandableRow).not.toHaveClass('expanded');\n });\n });\n\n describe('toggle', () => {\n let toggleControl: E2EElement;\n let expandableRow: E2EElement;\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n toggleControl = await e2ePage.find('q2-data-table >>> tr#row-2 [test-id=expandable-row-control]');\n expandableRow = await e2ePage.find('q2-data-table >>> tr#row-2.expandable');\n });\n\n it('emits toggle event and mutates expanded state', async () => {\n const toggleSpy = await table.spyOnEvent('toggle');\n expect(await toggleControl.getProperty('ariaExpanded')).toEqual('false');\n expect(expandableRow).not.toHaveClass('expanded');\n toggleControl.click();\n await e2ePage.waitForChanges();\n const toggledRow = {\n id: 2,\n expanded: true,\n selected: false,\n disabled: false,\n cells: {\n email: {\n type: 'text',\n value: 'moneybags@stark.com',\n },\n name: {\n type: 'text',\n value: 'Iron Man',\n },\n },\n };\n\n expect(toggleSpy).toHaveReceivedEventDetail({\n row: toggledRow,\n });\n\n expect(await toggleControl.getProperty('ariaExpanded')).toEqual('true');\n expect(expandableRow).toHaveClass('expanded');\n });\n\n it('does not mutate data if event is cancelled', async () => {\n e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.addEventListener('toggle', event => {\n event.preventDefault();\n });\n });\n expect(await toggleControl.getProperty('ariaExpanded')).toEqual('false');\n expect(expandableRow).not.toHaveClass('expanded');\n toggleControl.click();\n await e2ePage.waitForChanges();\n expect(await toggleControl.getProperty('ariaExpanded')).toEqual('false');\n expect(expandableRow).not.toHaveClass('expanded');\n });\n });\n\n describe('sort', () => {\n let emailSortHeader: E2EElement;\n let emailSortControl: E2EElement;\n let emailHeaderIcon: E2EElement;\n\n describe('when sortable property is false in header data', () => {\n beforeEach(async () => {\n table.setProperty(\n 'headers',\n headerData.map(header => ({ ...header, sortable: false }))\n );\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n emailSortHeader = await e2ePage.find('q2-data-table >>> th#header-email');\n emailSortControl = await e2ePage.find('q2-data-table >>> th#header-email [test-id=sort-control]');\n });\n\n it('does not render sorting control', async () => {\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailSortControl).toBeFalsy();\n expect(emailHeaderIcon).toBeFalsy();\n });\n });\n\n describe('when sortable property is true in header data', () => {\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty(\n 'headers',\n headerData.map(header => ({ ...header, sortable: true }))\n );\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n emailSortHeader = await e2ePage.find('q2-data-table >>> th#header-email');\n emailSortControl = await e2ePage.find('q2-data-table >>> th#header-email [test-id=sort-control]');\n });\n\n it('emits sort event and mutates rows', async () => {\n const sortSpy = await table.spyOnEvent('sort');\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: true,\n },\n direction: 'ASC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedAscending');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: true,\n sorted: 'ASC',\n },\n direction: 'DESC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedDescending');\n });\n\n it('does not mutate data if event is cancelled', async () => {\n e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.addEventListener('toggle', event => {\n event.preventDefault();\n });\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedAscending');\n });\n });\n\n describe('when sortable property is \"auto\" in header data', () => {\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty(\n 'headers',\n headerData.map(header => ({ ...header, sortable: 'auto' }))\n );\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n emailSortHeader = await e2ePage.find('q2-data-table >>> th#header-email');\n emailSortControl = await e2ePage.find('q2-data-table >>> th#header-email [test-id=sort-control]');\n });\n\n it('emits sort event and mutates rows', async () => {\n const sortSpy = await table.spyOnEvent('sort');\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: 'auto',\n },\n direction: 'ASC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedAscending');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: 'auto',\n sorted: 'ASC',\n },\n direction: 'DESC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedDescending');\n });\n\n it('does not mutate data if event is cancelled', async () => {\n e2ePage.$eval('q2-data-table', (el: HTMLQ2DataTableElement) => {\n el.addEventListener('toggle', event => {\n event.preventDefault();\n });\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'arrow-down');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.sortedAscending');\n });\n });\n\n describe('when sortable property is \"manual\" in header data', () => {\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty(\n 'headers',\n headerData.map(header => ({ ...header, sortable: 'manual' }))\n );\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n emailSortHeader = await e2ePage.find('q2-data-table >>> th#header-email');\n emailSortControl = await e2ePage.find('q2-data-table >>> th#header-email [test-id=sort-control]');\n });\n\n it('emits sort event but does not mutate rows', async () => {\n const sortSpy = await table.spyOnEvent('sort');\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: 'manual',\n },\n direction: 'ASC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailSortHeader).not.toHaveClass('sorted');\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n\n emailSortControl.click();\n await e2ePage.waitForChanges();\n\n expect(sortSpy).toHaveReceivedEventDetail({\n header: {\n key: 'email',\n title: 'Email',\n sortable: 'manual',\n },\n direction: 'ASC',\n });\n\n emailHeaderIcon = await e2ePage.find(\n 'q2-data-table >>> th#header-email [test-id=sorted-indicator]'\n );\n expect(emailHeaderIcon).toEqualAttribute('type', 'sort');\n expect(emailHeaderIcon).toEqualAttribute('label', 'tecton.element.dataTable.clickToSort');\n });\n });\n });\n\n describe('selectAllRows', () => {\n let selectAllControl: E2EElement;\n beforeEach(async () => {\n table.setProperty('selectable', true);\n table.setProperty('headers', headerData);\n table.setProperty('rows', rowData);\n await e2ePage.waitForChanges();\n selectAllControl = await e2ePage.find('q2-data-table >>> [test-id=select-all-rows-control]');\n });\n\n it('emits selectAllRows event and mutates rows', async () => {\n const selectAllRowsSpy = await table.spyOnEvent('selectAllRows');\n expect(selectAllControl).not.toHaveAttribute('checked');\n selectAllControl.click();\n await e2ePage.waitForChanges();\n expect(selectAllRowsSpy).toHaveReceivedEventDetail({\n checked: true,\n });\n expect(selectAllControl).toHaveAttribute('checked');\n });\n });\n });\n\n describe('Test methods', () => {\n beforeEach(async () => {\n e2ePage = await setup({\n html: `\n <q2-data-table selectable clickable>\n <div slot=\"row-3-expandable-content\">\n <h3>Thursday Was Great</h3>\n <p>But you already knew that.</p>\n </div>\n </q2-data-table>\n `,\n });\n\n table = await e2ePage.find('q2-data-table');\n table.setProperty(\n 'headers',\n headerData.map(header => ({ ...header, sortable: 'auto' }))\n );\n table.setProperty('rows', rowData);\n table.setProperty('selectable', true);\n table.setProperty('clickable', true);\n await e2ePage.waitForChanges();\n });\n\n it('sortColumn()', async () => {\n let cellText = await e2ePage.find('q2-data-table >>> td slot');\n expect(cellText.textContent).toBe('Thor');\n await table.callMethod('sortColumn', { key: 'name', sorted: 'DESC' });\n await e2ePage.waitForChanges();\n cellText = await e2ePage.find('q2-data-table >>> td slot');\n expect(cellText.textContent).toBe('Captain America');\n });\n\n it('toggleRowExpansion()', async () => {\n expect(table.shadowRoot.querySelector('table .expandable-row')).toHaveAttribute('hidden');\n await table.callMethod('toggleRowExpansion', 3);\n await e2ePage.waitForChanges();\n expect(table.shadowRoot.querySelector('table .expandable-row')).not.toHaveAttribute('hidden');\n });\n\n it('toggleRowSelect()', async () => {\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).not.toHaveAttribute('checked');\n await table.callMethod('toggleRowSelect', 3);\n await e2ePage.waitForChanges();\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).toHaveAttribute('checked');\n });\n\n it('clickRow()', async () => {\n const clickSpy = await table.spyOnEvent('click');\n expect(clickSpy).toHaveReceivedEventTimes(0);\n await table.callMethod('clickRow', 3);\n expect(clickSpy).toHaveReceivedEventTimes(1);\n });\n\n it('getCellContent()', async () => {\n const content = await table.callMethod('getCellContent', 3, 'name');\n expect(content).toBe('Captain America');\n });\n\n it('toggleSelectAllRows()', async () => {\n expect(table.shadowRoot.querySelector('table th q2-checkbox')).not.toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-1 q2-checkbox')).not.toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-2 q2-checkbox')).not.toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).not.toHaveAttribute('checked');\n await table.callMethod('toggleSelectAllRows');\n await e2ePage.waitForChanges();\n expect(table.shadowRoot.querySelector('table th q2-checkbox')).toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).toHaveAttribute('checked');\n expect(table.shadowRoot.querySelector('table tr#row-3 q2-checkbox')).toHaveAttribute('checked');\n });\n });\n});\n"]}
|
|
@@ -100,7 +100,7 @@ export class Q2Detail {
|
|
|
100
100
|
// #endregion
|
|
101
101
|
// #region Render Methods
|
|
102
102
|
render() {
|
|
103
|
-
return (h("div", { key: '
|
|
103
|
+
return (h("div", { key: 'e63b70f3c683aa7ba6630533fdd3c88dc4d02a08', class: this.detailClasses }, this.hasLabel && (h("div", { key: '303a45c6c57675b4eca47ed6ac21d0f8af317bc2', class: this.labelClasses, "aria-describedby": !!this.description ? 'label-description' : undefined }, !!this.label ? loc(this.label) : this.hasLabelSlotContent ? h("slot", { name: "label" }) : '')), this.hasDescripiton && (h("div", { key: '15a26b4ce8152469c723600df1bf415a1f75924b', id: "label-description", class: this.descriptionClasses }, !!this.description ? loc(this.description) : this.hasDefaultSlotContent ? h("slot", null) : ''))));
|
|
104
104
|
}
|
|
105
105
|
static get is() { return "q2-detail"; }
|
|
106
106
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-detail.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-detail.js","sourceRoot":"","sources":["../../../src/components/q2-detail/q2-detail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Prop, h } from '@stencil/core';\nimport { hasSlotContent, loc } from 'src/utils';\n\n@Component({\n tag: 'q2-detail',\n styleUrl: 'q2-detail.scss',\n shadow: true,\n})\nexport class Q2Detail {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Defines the alignment of the label and description when stacked, or when only the label or description is present. */\n @Prop({ reflect: true })\n alignment: 'left' | 'right' = 'left';\n\n /**\n * Defines the text content of the description.\n *\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Defines the text content of the label.\n *\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Defines the text size of the label and description.\n *\n * If not specified, the detail will display as inline text.\n */\n @Prop({ reflect: true })\n size: null | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n\n /** Determines if the description should appear beneath the label. */\n @Prop({ reflect: true })\n stacked: boolean = false;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.setSlotSizeProps();\n }\n\n // #endregion\n // #region Local Methods\n\n get descriptionClasses() {\n const classes = ['description'];\n if (this.size) {\n classes.push(`description-size-${this.size}`);\n } else {\n classes.push(`description-size-inline`);\n }\n if (!this.stacked) {\n classes.push(`description-alignment-right`);\n }\n\n return classes.join(' ');\n }\n\n get detailClasses() {\n const classes = ['detail'];\n if (this.size) {\n classes.push(`detail-block`);\n } else {\n classes.push(`detail-inline`);\n }\n if (this.stacked || this.onlyHasDescripiton || this.onlyHasLabel) {\n classes.push('detail-stacked', `detail-stacked-alignment-${this.alignment}`);\n } else {\n classes.push('detail-horizontal');\n }\n\n return classes.join(' ');\n }\n\n get hasDefaultSlotContent() {\n const hasInnerHtml = !!this.hostElement.innerHTML.trim();\n const namedSlotCount = this.hostElement.querySelectorAll(':scope > [slot]').length;\n const hostChildNodeCount = this.hostElement.childNodes.length;\n\n return hasInnerHtml && hostChildNodeCount > namedSlotCount;\n }\n\n get hasDescripiton() {\n return !!this.description || this.hasDefaultSlotContent;\n }\n\n get hasLabel() {\n return !!this.label || this.hasLabelSlotContent;\n }\n\n get hasLabelSlotContent() {\n return hasSlotContent(this.hostElement, 'label');\n }\n\n get labelClasses() {\n const classes = ['label'];\n if (this.size) {\n classes.push(`label-size-${this.size}`);\n } else {\n classes.push(`label-size-inline`);\n }\n if (!this.stacked) {\n classes.push(`label-align-left`);\n }\n\n return classes.join(' ');\n }\n\n get onlyHasDescripiton() {\n return this.hasDescripiton && !this.hasLabel;\n }\n\n get onlyHasLabel() {\n return this.hasLabel && !this.hasDescripiton;\n }\n\n setSlotSizeProps() {\n const slotElements = Array.from(\n this.hostElement.querySelectorAll(':scope > *:not([slot]), :scope > [slot=\"label\"] > *')\n ) as { slotSize?: string; localName?: string }[];\n slotElements.forEach(element => {\n let size = this.size;\n if (element.localName === 'q2-currency') {\n switch (size) {\n case 'xsmall':\n size = 'small';\n break;\n case 'xlarge':\n size = 'large';\n break;\n default:\n break;\n }\n }\n element.slotSize = size;\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class={this.detailClasses}>\n {this.hasLabel && (\n <div\n class={this.labelClasses}\n aria-describedby={!!this.description ? 'label-description' : undefined}\n >\n {!!this.label ? loc(this.label) : this.hasLabelSlotContent ? <slot name=\"label\" /> : ''}\n </div>\n )}\n {this.hasDescripiton && (\n <div\n id=\"label-description\"\n class={this.descriptionClasses}\n >\n {!!this.description ? loc(this.description) : this.hasDefaultSlotContent ? <slot /> : ''}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|
package/dist/{test/elements/q2-detail → collection/components/q2-detail/test}/q2-detail-test.e2e.js
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { evaluateA11y, setTestStrings, setup } from "
|
|
1
|
+
import { evaluateA11y, setTestStrings, setup } from "../../../utils/helpers";
|
|
2
2
|
describe('q2-detail', () => {
|
|
3
3
|
describe('[A11y] guideline compliance', () => {
|
|
4
4
|
it('Does not have accessibility violations', async () => {
|
|
@@ -185,9 +185,9 @@ describe('q2-detail', () => {
|
|
|
185
185
|
`,
|
|
186
186
|
});
|
|
187
187
|
const labelSlotComponent = await page.find('q2-detail > slot-component');
|
|
188
|
-
const labelSlotComponentSize = await labelSlotComponent.
|
|
188
|
+
const labelSlotComponentSize = await labelSlotComponent.getProperty('slotSize');
|
|
189
189
|
const descriptionSlotComponent = await page.find('q2-detail > [slot="label"] > slot-component');
|
|
190
|
-
const descriptionSlotComponentSize = await descriptionSlotComponent.
|
|
190
|
+
const descriptionSlotComponentSize = await descriptionSlotComponent.getProperty('slotSize');
|
|
191
191
|
expect(labelSlotComponentSize).toEqual('medium');
|
|
192
192
|
expect(descriptionSlotComponentSize).toEqual('medium');
|
|
193
193
|
});
|