q2-tecton-elements 1.53.1 → 1.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +59 -60
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
- package/dist/cjs/index-76f63767.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +4 -4
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +2 -2
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +89 -13
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +5 -17
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-example/q2-example.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-item/q2-item.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js.map +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +18 -10
- package/dist/collection/components/q2-popover/q2-popover.js +59 -59
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
- package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
- package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-section/q2-section.js.map +1 -1
- package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +110 -15
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/charting.js.map +1 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/sanitize-html-string.js.map +1 -1
- package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
- package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/utils/test/index.spec.js.map +1 -1
- package/dist/components/index2.js +1 -20
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +58 -59
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +92 -16
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +59 -60
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
- package/dist/esm/index-504f1a9e.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +4 -4
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-donut.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-item_3.entry.js +3 -3
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +2 -2
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +90 -14
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/jest.setup.js +22 -0
- package/dist/jest.setup.js.map +1 -0
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +170 -164
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
- package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-loc.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-option-list.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-select.entry.js +156 -92
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-tag.entry.js +25 -25
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +19 -0
- package/package.json +3 -3
- package/dist/cjs/index-07285783.js.map +0 -1
- package/dist/esm/index-d18e2a20.js.map +0 -1
- package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-avatar-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/test/q2-avatar-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\nconst base64Image =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';\ndescribe('q2-avatar', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: `<q2-avatar></q2-avatar>` });\n expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);\n });\n\n describe('@Props', () => {\n describe('src', () => {\n describe('when provided', () => {\n it('loads image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const avatar = await page.find('q2-avatar');\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n const imageSrc = image.getAttribute('src');\n const avatarCss = await avatar.getComputedStyle();\n const imageCss = await image.getComputedStyle();\n\n expect(imageSrc).toEqual(base64Image);\n expect(avatarCss.backgroundColor).toEqual('rgba(0, 0, 0, 0)');\n expect(imageCss.borderRadius).toEqual('50%');\n expect(image).toHaveClass('avatar-img');\n });\n\n it('updates image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n let userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(base64Image);\n\n const image = await page.find('q2-avatar');\n\n image.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n\n await page.waitForChanges();\n\n userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n\n it('updates img tag to a non-error state', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall src=\"badUrl\" ></q2-avatar>',\n });\n await page.waitForChanges();\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(badImage).toBeFalsy();\n\n const avatar = await page.find('q2-avatar');\n avatar.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n await page.waitForChanges();\n\n const goodImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(goodImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n });\n });\n\n describe('name', () => {\n describe('when provided', () => {\n it('calculates initials from name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JR');\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('recalculates if changed', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"john peter robinson\"></q2-avatar>',\n });\n\n let userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('JR');\n\n const avatar = await page.find('q2-avatar');\n\n avatar.setProperty('name', 'sarah marshall');\n\n await page.waitForChanges();\n\n userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n it('adds aria-label to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('adds name as an alt tag to img', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', 'john peter robinson');\n });\n });\n\n describe('when not provided', () => {\n it('adds aria-hidden to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JCVD\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).not.toHaveAttribute('aria-label');\n expect(initialsSvg).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds empty alt tag to image', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', '');\n });\n });\n });\n\n describe('initials', () => {\n describe('when provided', () => {\n it('prioritizes initials over name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JKVD\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JKVD');\n });\n\n it('limits the initials to four characters', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"ABCDEFG\"></q2-avatar>`,\n });\n\n const el = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(el.innerText).toEqual('ABCD');\n });\n });\n });\n describe('icon', () => {\n describe('when provided', () => {\n it('renders custom fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar icon=\"info\"></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n const fallbackIconContainer = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"]');\n const fallbackIconContainerCss = await fallbackIconContainer.getComputedStyle();\n\n expect(fallbackIconContainerCss.borderRadius).toEqual('50%');\n expect(fallbackIcon).toEqualAttribute('type', 'info');\n });\n });\n\n describe('when not provided', () => {\n it('renders default fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n\n expect(fallbackIcon).toEqualAttribute('type', 'person');\n });\n });\n });\n });\n\n it.skip('img should be removed if url does not work', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall\" src=\"badUrl\" ></q2-avatar>',\n });\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(badImage).toEqual(badImage);\n\n page.waitForChanges();\n\n expect(badImage).toBeFalsy();\n\n const userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-avatar-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-avatar/test/q2-avatar-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\nconst base64Image =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';\ndescribe('q2-avatar', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: `<q2-avatar></q2-avatar>` });\n expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);\n });\n\n describe('@Props', () => {\n describe('src', () => {\n describe('when provided', () => {\n it('loads image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const avatar = await page.find('q2-avatar');\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n const imageSrc = image.getAttribute('src');\n const avatarCss = await avatar.getComputedStyle();\n const imageCss = await image.getComputedStyle();\n\n expect(imageSrc).toEqual(base64Image);\n expect(avatarCss.backgroundColor).toEqual('rgba(0, 0, 0, 0)');\n expect(imageCss.borderRadius).toEqual('50%');\n expect(image).toHaveClass('avatar-img');\n });\n\n it('updates image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n let userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(base64Image);\n\n const image = await page.find('q2-avatar');\n\n image.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n\n await page.waitForChanges();\n\n userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n\n it('updates img tag to a non-error state', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall src=\"badUrl\" ></q2-avatar>',\n });\n await page.waitForChanges();\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(badImage).toBeFalsy();\n\n const avatar = await page.find('q2-avatar');\n avatar.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n await page.waitForChanges();\n\n const goodImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(goodImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n });\n });\n\n describe('name', () => {\n describe('when provided', () => {\n it('calculates initials from name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JR');\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('recalculates if changed', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"john peter robinson\"></q2-avatar>',\n });\n\n let userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('JR');\n\n const avatar = await page.find('q2-avatar');\n\n avatar.setProperty('name', 'sarah marshall');\n\n await page.waitForChanges();\n\n userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n it('adds aria-label to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('adds name as an alt tag to img', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', 'john peter robinson');\n });\n });\n\n describe('when not provided', () => {\n it('adds aria-hidden to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JCVD\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).not.toHaveAttribute('aria-label');\n expect(initialsSvg).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds empty alt tag to image', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', '');\n });\n });\n });\n\n describe('initials', () => {\n describe('when provided', () => {\n it('prioritizes initials over name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JKVD\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JKVD');\n });\n\n it('limits the initials to four characters', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"ABCDEFG\"></q2-avatar>`,\n });\n\n const el = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(el.innerText).toEqual('ABCD');\n });\n });\n });\n describe('icon', () => {\n describe('when provided', () => {\n it('renders custom fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar icon=\"info\"></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n const fallbackIconContainer = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"]');\n const fallbackIconContainerCss = await fallbackIconContainer.getComputedStyle();\n\n expect(fallbackIconContainerCss.borderRadius).toEqual('50%');\n expect(fallbackIcon).toEqualAttribute('type', 'info');\n });\n });\n\n describe('when not provided', () => {\n it('renders default fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n\n expect(fallbackIcon).toEqualAttribute('type', 'person');\n });\n });\n });\n });\n\n it.skip('img should be removed if url does not work', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall\" src=\"badUrl\" ></q2-avatar>',\n });\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(badImage).toEqual(badImage);\n\n page.waitForChanges();\n\n expect(badImage).toBeFalsy();\n\n const userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/q2-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1F,MAAM,OAAO,OAAO;;;;;;qBA8BA,CAAC;;IAEjB,aAAa;IACb,wBAAwB;IAExB,IAAI,SAAS;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACtC,EAAC,QAAQ,OAAG,CACf,CAAC,CAAC,CAAC,CACA,WAAK,KAAK,EAAC,eAAe;YACtB,WAAK,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,YAAM,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAQ,CAC7E,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Fragment } from '@stencil/core';\n\n@Component({ tag: 'q2-badge', shadow: true, styleUrl: 'q2-badge.scss' })\nexport class Q2Badge implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** The number of digits to show. */\n @Prop({ reflect: true })\n maxLength: number | undefined;\n\n /** The size of the badge. */\n @Prop({ reflect: true })\n size: 'default' | 'large' | undefined;\n\n /** The stoplight color of the element when `theme` is not present. */\n @Prop({ reflect: true })\n status: 'info' | 'alert' | 'warning' | 'success' | undefined;\n\n /**\n * The color of the badge when in the active state.\n * The `theme` has higher priority than `status`.\n */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary' | undefined;\n\n /** The number to display in the badge. `q2-badge` also allows slot HTML elements which can be any string. */\n @Prop({ reflect: true })\n value: number = 0;\n\n // #endregion\n // #region Local Methods\n\n get badgeText(): string {\n const maxValue = Math.pow(10, this.maxLength || 2) - 1;\n let value: string | number = this.value || 0;\n if (isNaN(value) || value <= 0) {\n value = '';\n } else if (value <= maxValue) {\n value = Number(value).toLocaleString();\n } else {\n value = Number(maxValue).toLocaleString() + '+';\n }\n return value;\n }\n\n get hasSlot(): boolean {\n return !!this.hostElement.innerHTML.trim();\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const badgeClass = ['badge'];\n if (this.size === 'large') badgeClass.push('size-large');\n return !this.badgeText && !this.hasSlot ? (\n <Fragment />\n ) : (\n <div class=\"badge-wrapper\">\n <div class={badgeClass.join(' ')}>\n <span class=\"badge-text\">{this.hasSlot ? <slot></slot> : this.badgeText}</span>\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-badge-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/test/q2-badge-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-badge', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-badge></q2-badge>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-badge')).toHaveLength(0);\n });\n\n it('should render value property if value is less than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=92></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('92');\n });\n\n it('should render value property if value is greater than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('99+');\n });\n\n it('should not render badge element if value is not a number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=\"abc\"></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is zero', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=0></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is negative number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=-5></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is undefined', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should render value property if value is 123456 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123456 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('123,456');\n });\n\n it('should render value property if value is 12345678 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('999,999+');\n });\n\n it('should render badge border', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const badge = await page.find('q2-badge >>> .badge');\n const badgeBorderColor = await badge.getComputedStyle();\n expect(badgeBorderColor.borderColor).toEqual('rgb(154, 152, 152)');\n });\n\n it('should render badge with plain text slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '+32';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.textContent.trim()).toEqual(slotValue);\n });\n\n it('should render badge with html slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '<b>Bold</b>';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.innerHTML).toEqual(slotValue);\n });\n\n it('should render badge border when status is passed', async function (): Promise<void> {\n const pageInfo = await setup({\n html: `<q2-badge value=12345678 status=\"info\"></q2-badge>`,\n });\n const badgeInfo = await pageInfo.find('q2-badge >>> .badge');\n const InfoBorderColor = await badgeInfo.getComputedStyle();\n expect(InfoBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageAlert = await setup({\n html: `<q2-badge value=12345678 status=\"alert\"></q2-badge>`,\n });\n const badgeAlert = await pageAlert.find('q2-badge >>> .badge');\n const alertBorderColor = await badgeAlert.getComputedStyle();\n expect(alertBorderColor.borderColor).toEqual('rgb(228, 41, 41)');\n\n const pageWarning = await setup({\n html: `<q2-badge value=12345678 status=\"warning\"></q2-badge>`,\n });\n const badgeWarning = await pageWarning.find('q2-badge >>> .badge');\n const warningBorderColor = await badgeWarning.getComputedStyle();\n expect(warningBorderColor.borderColor).toEqual('rgb(249, 206, 76)');\n\n const pageSuccess = await setup({\n html: `<q2-badge value=12345678 status=\"success\"></q2-badge>`,\n });\n const badgeSuccess = await pageSuccess.find('q2-badge >>> .badge');\n const successBorderColor = await badgeSuccess.getComputedStyle();\n expect(successBorderColor.borderColor).toEqual('rgb(46, 170, 33)');\n });\n\n it('should render correct border color when theme is passed', async function (): Promise<void> {\n const pagePrimary = await setup({\n html: `<q2-badge value=12345678 theme=\"primary\" max-length=6></q2-badge>`,\n });\n const badgePrimary = await pagePrimary.find('q2-badge >>> .badge');\n const primaryBorderColor = await badgePrimary.getComputedStyle();\n expect(primaryBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageSecondary = await setup({\n html: `<q2-badge value=12345678 theme=\"secondary\" max-length=6></q2-badge>`,\n });\n const badgeSecondary = await pageSecondary.find('q2-badge >>> .badge');\n const secondaryBorderColor = await badgeSecondary.getComputedStyle();\n expect(secondaryBorderColor.borderColor).toEqual('rgb(198, 209, 219)');\n\n const pageTertiary = await setup({\n html: `<q2-badge value=12345678 theme=\"tertiary\" max-length=6></q2-badge>`,\n });\n const badgeTertiary = await pageTertiary.find('q2-badge >>> .badge');\n const tertiaryBorderColor = await badgeTertiary.getComputedStyle();\n expect(tertiaryBorderColor.borderColor).toEqual('rgb(243, 244, 245)');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-badge value=123 theme=\"primary\"></q2-badge>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-badge-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-badge/test/q2-badge-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-badge', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-badge></q2-badge>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-badge')).toHaveLength(0);\n });\n\n it('should render value property if value is less than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=92></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('92');\n });\n\n it('should render value property if value is greater than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('99+');\n });\n\n it('should not render badge element if value is not a number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=\"abc\"></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is zero', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=0></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is negative number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=-5></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is undefined', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should render value property if value is 123456 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123456 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('123,456');\n });\n\n it('should render value property if value is 12345678 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('999,999+');\n });\n\n it('should render badge border', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const badge = await page.find('q2-badge >>> .badge');\n const badgeBorderColor = await badge.getComputedStyle();\n expect(badgeBorderColor.borderColor).toEqual('rgb(154, 152, 152)');\n });\n\n it('should render badge with plain text slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '+32';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.textContent.trim()).toEqual(slotValue);\n });\n\n it('should render badge with html slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '<b>Bold</b>';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.innerHTML).toEqual(slotValue);\n });\n\n it('should render badge border when status is passed', async function (): Promise<void> {\n const pageInfo = await setup({\n html: `<q2-badge value=12345678 status=\"info\"></q2-badge>`,\n });\n const badgeInfo = await pageInfo.find('q2-badge >>> .badge');\n const InfoBorderColor = await badgeInfo.getComputedStyle();\n expect(InfoBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageAlert = await setup({\n html: `<q2-badge value=12345678 status=\"alert\"></q2-badge>`,\n });\n const badgeAlert = await pageAlert.find('q2-badge >>> .badge');\n const alertBorderColor = await badgeAlert.getComputedStyle();\n expect(alertBorderColor.borderColor).toEqual('rgb(228, 41, 41)');\n\n const pageWarning = await setup({\n html: `<q2-badge value=12345678 status=\"warning\"></q2-badge>`,\n });\n const badgeWarning = await pageWarning.find('q2-badge >>> .badge');\n const warningBorderColor = await badgeWarning.getComputedStyle();\n expect(warningBorderColor.borderColor).toEqual('rgb(249, 206, 76)');\n\n const pageSuccess = await setup({\n html: `<q2-badge value=12345678 status=\"success\"></q2-badge>`,\n });\n const badgeSuccess = await pageSuccess.find('q2-badge >>> .badge');\n const successBorderColor = await badgeSuccess.getComputedStyle();\n expect(successBorderColor.borderColor).toEqual('rgb(46, 170, 33)');\n });\n\n it('should render correct border color when theme is passed', async function (): Promise<void> {\n const pagePrimary = await setup({\n html: `<q2-badge value=12345678 theme=\"primary\" max-length=6></q2-badge>`,\n });\n const badgePrimary = await pagePrimary.find('q2-badge >>> .badge');\n const primaryBorderColor = await badgePrimary.getComputedStyle();\n expect(primaryBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageSecondary = await setup({\n html: `<q2-badge value=12345678 theme=\"secondary\" max-length=6></q2-badge>`,\n });\n const badgeSecondary = await pageSecondary.find('q2-badge >>> .badge');\n const secondaryBorderColor = await badgeSecondary.getComputedStyle();\n expect(secondaryBorderColor.borderColor).toEqual('rgb(198, 209, 219)');\n\n const pageTertiary = await setup({\n html: `<q2-badge value=12345678 theme=\"tertiary\" max-length=6></q2-badge>`,\n });\n const badgeTertiary = await pageTertiary.find('q2-badge >>> .badge');\n const tertiaryBorderColor = await badgeTertiary.getComputedStyle();\n expect(tertiaryBorderColor.borderColor).toEqual('rgb(243, 244, 245)');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-badge value=123 theme=\"primary\"></q2-badge>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAsB,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,GAAG,EACH,aAAa,EACb,wBAAwB,GAC3B,MAAM,WAAW,CAAC;AAGnB,MAAM,OAAO,KAAK;;QAyMd,qBAAgB,GAAG,GAAG,EAAE;YACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;QACL,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACf,oCAAoC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBACnG,IAAI,GAAG;oBAAE,OAAO,CAAC,MAAM,EAAE,CAAC;;oBACrB,GAAG,GAAG,OAAO,CAAC;gBACnB,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,KAAK,IAAI,CAAC;YAClG,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAClG,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;YAE7D,IAAI,YAAY,CAAC;YACjB,IAAI,WAAW;gBAAE,YAAY,GAAG,MAAM,CAAC;iBAClC,IAAI,WAAW;gBAAE,YAAY,GAAG,MAAM,CAAC;iBACvC,IAAI,YAAY;gBAAE,YAAY,GAAG,OAAO,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,aAAa;QACb,yBAAyB;QAEzB,iBAAY,GAAG,GAAG,EAAE;YAChB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAClG,IAAI,CAAC,gBAAgB,CAAC;YAC1B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAChE,MAAM,oBAAoB,GAAG,YAAY,IAAI,OAAO,CAAC;YACrD,MAAM,sBAAsB,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;YACtD,OAAO,CACH,EAAC,QAAQ;gBACL,cACI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,UAAU,CAAC,mBACrC,YAAY,mBACZ,YAAY,gBACf,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,mBACpB,YAAY,kBACb,WAAW,EACzB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,aACV,kBAAkB,EAC1B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,sBAC/B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAClE,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;oBAE7B;wBACK,oBAAoB,IAAI,CACrB,kBACI,MAAM,EAAE,CAAC,OAAO,EAChB,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAC1D,CACL;wBACA,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CAC/E,CACD;gBACR,CAAC,CAAC,WAAW,IAAI,CACd,WACI,EAAE,EAAC,oBAAoB,iBACX,MAAM,EAClB,KAAK,EAAC,IAAI,IAET,WAAW,CACV,CACT,CACM,CACd,CAAC;QACN,CAAC,CAAC;QAEF,WAAM,GAAG,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC3B,4BAA4B;YAC5B,WACI,KAAK,EAAC,oBAAoB,EAC1B,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,iBAAiB,CAAC,EAClE,QAAQ,EAAE,CAAC,CAAC,IAEX,IAAI,CAAC,YAAY,EAAE,CAClB,CACT,CAAC,CAAC,CAAC,CACA,IAAI,CAAC,YAAY,EAAE,CACtB,CAAC;QACN,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;oBA1Ka,QAAQ;;IAEvB,aAAa;IACb,qCAAqC;IAErC,iBAAiB;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,aAAa;IACb,oBAAoB;IAGpB,WAAW,CAAC,KAAY;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAGD,aAAa,CAAC,KAAiB;QAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa;IACb,mBAAmB;IAGnB,iBAAiB;QACb,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAGD,YAAY;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa;IACb,wBAAwB;IAExB,IAAI,gBAAgB;QAChB,OAAO;YACH,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE;gBAClD,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,QAAQ;aACX,CAAC;YACF,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtE,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC1E,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;SACvC,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGJ","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback(): void {\n this.primaryBtn = null;\n this.primaryBtnWrapper = null;\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback(): void {\n this.primaryBtn = null;\n this.primaryBtnWrapper = null;\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/test/q2-btn-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EACd,KAAK,EACL,aAAa,EACb,uBAAuB,EACvB,+BAA+B,EAC/B,YAAY,GACf,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACpB,IAAI,IAAa,CAAC;IAClB,IAAI,MAAkB,CAAC;IACvB,IAAI,WAAuB,CAAC;IAE5B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,+BAA+B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,QAAQ,EAAE,KAAK;QACd,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAEvD,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK;QAC/C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;QAEhE,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK;QAC/D,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC;QAE/D,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC5B,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAEvD,MAAM,cAAc,CAAC,IAAI,EAAE;YACvB,kBAAkB,EAAE,mBAAmB;SAC1C,CAAC,CAAC;QAEH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEtD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAEpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK;QAC/B,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtD,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7B,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,IAAa,CAAC;QAClB,IAAI,GAAe,CAAC;QACpB,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACvD,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEhC,MAAM,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAC,OAAA,MAAA,EAAE,CAAC,UAAU,CAAC,aAAa,0CAAE,YAAY,CAAC,SAAS,CAAC,CAAA,EAAA,CAAC,CAAC;QAC5F,CAAC,CAAC;QAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK;YAC3D,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK;YAC3D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK;QAC9C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACvD,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAChD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE;SACnB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,kDAAkD,EAAE,CAAC,CAAC;YACjF,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;aAKT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAChC,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;aAKT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YAC/D,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;aAKT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAChE,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;aAKT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YACxC,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;;;;aAQT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC1C,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;;aAMT;aACA,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBACxD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAChE,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,oCAAoC;iBAC7C,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAChD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,wCAAwC;iBACjD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,yCAAyC;iBAClD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;gBAC5C,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,iCAAiC;iBAC1C,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAChD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,yCAAyC;iBAClD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,0CAA0C;iBACnD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAC9D,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,kCAAkC;iBAC3C,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtF,cAAc,CAAC,OAAO,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBACjC,EAAE,CAAC,0BAA0B,KAAK,wBAAwB,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE;oBAC3E,IAAI,GAAG,MAAM,KAAK,CAAC;wBACf,IAAI,EAAE,2BAA2B,KAAK,aAAa;qBACtD,CAAC,CAAC;oBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;gBAC3E,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,wCAAwC;iBACjD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAChD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,wCAAwC;iBACjD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,yCAAyC;iBAClD,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAC9D,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,iCAAiC;iBAC1C,CAAC,CAAC;gBACH,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAChD,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAChD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;YAClB,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,iCAAiC;iBAC1C,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBACjD,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;oBACrC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAEnD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAEvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;oBACtC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAErC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACnD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAEvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;oBACrC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACnD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBACvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC/D,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;oBACpC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;wBAC1B,IAAI,EAAE;;;;;yBAKL;qBACJ,CAAC,CAAC;oBAEH,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC;wBAC3B,IAAI,EAAE;;;;yBAIL;qBACJ,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACnD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAErD,KAAK,UAAU,aAAa,CAAC,IAAI;wBAC7B,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACtC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;wBACjC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBACnE,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;wBAEjE,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACvC,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;wBAClC,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBACrE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;wBAEnE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAClE,CAAC;oBAED,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE,mBAAmB;aAC5B,CAAC,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBACtD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;gBAC5F,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBACtD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAC5E,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACrE,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAC5E,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC7C,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;gBAC1C,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,uCAAuC;iBAChD,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAC9D,MAAM,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,KAAK,GAAG,UAAU,CAAC;YACzB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,KAAK,aAAa,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,uBAAuB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;YAC3D,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;gBAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAClD,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;YACnE,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAClD,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,sDAAsD;iBAC/D,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n setTestStrings,\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getListOfStyleCompilationIssues,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-btn></q2-btn>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-btn')).toHaveLength(0);\n });\n\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('does not emit click event when loading property is true', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn loading>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('_role', () => {\n it('is \"undefined\" when not provided (default)', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('role');\n });\n\n it('applies the role to the inner button when provided', async () => {\n page = await setup({\n html: `<q2-btn _role=\"menuitem\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('role', 'menuitem');\n });\n });\n\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('no value unless explicitly set', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', '');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', '');\n });\n\n const hasPopupValues = ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'];\n hasPopupValues.forEach(async value => {\n it(`sets aria-haspopup to \"${value}\" when passed value \"${value}\"`, async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='${value}'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', value);\n });\n });\n\n it('sets aria-haspopup to `null` when not provided a valid string', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='foo'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', null);\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', '');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n\n describe('size', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn size='small' ></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('does not have font size overwritten', () => {\n it(' when size set to small', async () => {\n button.setProperty('size', 'small');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('14px');\n });\n it(' when size set to medium', async () => {\n button.setProperty('size', 'medium');\n\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('16px');\n });\n it(' when size set to large', async () => {\n button.setProperty('size', 'large');\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n expect(buttonCss.fontSize).toEqual('20px');\n });\n });\n\n describe('button height should be same with or without icon', () => {\n it('when size set to small', async () => {\n const pageWIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <q2-icon type=\"edit\"></q2-icon>\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const pageWOIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const buttonWIcon = await pageWIcon.find('q2-btn');\n const buttonWOIcon = await pageWOIcon.find('q2-btn');\n\n async function compareHeight(size) {\n buttonWIcon.setProperty('size', size);\n await pageWIcon.waitForChanges();\n const innerButtonWIcon = await pageWIcon.find('q2-btn >>> button');\n const buttonCssWIcon = await innerButtonWIcon.getComputedStyle();\n\n buttonWOIcon.setProperty('size', size);\n await pageWOIcon.waitForChanges();\n const innerButtonWOIcon = await pageWOIcon.find('q2-btn >>> button');\n const buttonCssWOIcon = await innerButtonWOIcon.getComputedStyle();\n\n expect(buttonCssWIcon.height).toEqual(buttonCssWOIcon.height);\n }\n\n await compareHeight('small');\n await compareHeight('medium');\n await compareHeight('large');\n });\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n\n describe('calls console.warn for deprecated `size` prop', () => {\n it('if set to number 1-4 by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn size='1'></q2-btn>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('if set to number 1-4 after componentDidLoad by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n button.setProperty('size', '3');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n describe('does not call console.warn for deprecated `size` prop', () => {\n it('if number never set on component prop', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-btn intent=\"workflow-primary\">My Button</q2-btn>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-btn/test/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n setTestStrings,\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getListOfStyleCompilationIssues,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-btn></q2-btn>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-btn')).toHaveLength(0);\n });\n\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('does not emit click event when loading property is true', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn loading>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('_role', () => {\n it('is \"undefined\" when not provided (default)', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('role');\n });\n\n it('applies the role to the inner button when provided', async () => {\n page = await setup({\n html: `<q2-btn _role=\"menuitem\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('role', 'menuitem');\n });\n });\n\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('no value unless explicitly set', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', '');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', '');\n });\n\n const hasPopupValues = ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'];\n hasPopupValues.forEach(async value => {\n it(`sets aria-haspopup to \"${value}\" when passed value \"${value}\"`, async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='${value}'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', value);\n });\n });\n\n it('sets aria-haspopup to `null` when not provided a valid string', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='foo'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', null);\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', '');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n\n describe('size', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn size='small' ></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('does not have font size overwritten', () => {\n it(' when size set to small', async () => {\n button.setProperty('size', 'small');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('14px');\n });\n it(' when size set to medium', async () => {\n button.setProperty('size', 'medium');\n\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('16px');\n });\n it(' when size set to large', async () => {\n button.setProperty('size', 'large');\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n expect(buttonCss.fontSize).toEqual('20px');\n });\n });\n\n describe('button height should be same with or without icon', () => {\n it('when size set to small', async () => {\n const pageWIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <q2-icon type=\"edit\"></q2-icon>\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const pageWOIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const buttonWIcon = await pageWIcon.find('q2-btn');\n const buttonWOIcon = await pageWOIcon.find('q2-btn');\n\n async function compareHeight(size) {\n buttonWIcon.setProperty('size', size);\n await pageWIcon.waitForChanges();\n const innerButtonWIcon = await pageWIcon.find('q2-btn >>> button');\n const buttonCssWIcon = await innerButtonWIcon.getComputedStyle();\n\n buttonWOIcon.setProperty('size', size);\n await pageWOIcon.waitForChanges();\n const innerButtonWOIcon = await pageWOIcon.find('q2-btn >>> button');\n const buttonCssWOIcon = await innerButtonWOIcon.getComputedStyle();\n\n expect(buttonCssWIcon.height).toEqual(buttonCssWOIcon.height);\n }\n\n await compareHeight('small');\n await compareHeight('medium');\n await compareHeight('large');\n });\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n\n describe('calls console.warn for deprecated `size` prop', () => {\n it('if set to number 1-4 by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn size='1'></q2-btn>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('if set to number 1-4 after componentDidLoad by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n button.setProperty('size', '3');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n describe('does not call console.warn for deprecated `size` prop', () => {\n it('if number never set on component prop', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-btn intent=\"workflow-primary\">My Button</q2-btn>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|