q2-tecton-elements 1.53.0 → 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 +64 -61
- 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 +12 -4
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- 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 +10 -12
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +7 -8
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +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 +3 -2
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- 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 +4 -0
- 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 +9 -11
- 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 +12 -7
- 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 +4 -0
- 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 +64 -60
- 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 +2 -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-btn2.js +4 -0
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown.js +9 -11
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +7 -8
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-icon2.js +4 -0
- package/dist/components/q2-icon2.js.map +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 +63 -60
- 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 +2 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +64 -61
- 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 +12 -4
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- 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 +10 -12
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +7 -8
- package/dist/esm/q2-editable-field.entry.js.map +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 +3 -2
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- 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 +175 -163
- 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 +25 -17
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
- 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 +14 -16
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +27 -18
- package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
- 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 +4 -3
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- 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-btn/q2-btn.d.ts +1 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +1 -4
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +2 -1
- package/dist/types/components/q2-icon/q2-icon.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-input-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-input/test/q2-input-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n evaluateA11y,\n setup,\n dispatchEvent,\n getNestedAssignedElementLength,\n getNestedElementStyle,\n getListOfStyleCompilationIssues,\n getNestedElementAttribute,\n} from '@/utils/helpers';\n\ndescribe('q2-input', () => {\n async function getInnerInputDimensions(page: E2EPage) {\n return page.$eval('body', () =>\n document.querySelector('q2-input').shadowRoot.querySelector('input').getClientRects()[0].toJSON()\n );\n }\n\n describe('Styling', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-input></q2-input>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-input')).toHaveLength(0);\n });\n\n describe('pseudo', () => {\n let page: E2EPage;\n beforeEach(async function () {\n page = await setup({ html: '<q2-input label=\"label text\" value=\"value\" pseudo />' });\n });\n\n it('should not extend beyond the container when the value is long', async () => {\n const input = await page.find('q2-input');\n await input.setProperty(\n 'value',\n 'This is a very very very very very very very very very very very very very very very very very long value that should be truncated'\n );\n await page.waitForChanges();\n\n const { clientWidth, scrollWidth } = await page.$eval('q2-input', (el: HTMLQ2InputElement) => {\n const { clientWidth, scrollWidth } = el.shadowRoot.querySelector('.input-container');\n return { clientWidth, scrollWidth };\n });\n expect(clientWidth).toEqual(scrollWidth);\n });\n\n it('should fill the the container when the value is short', async () => {\n const input = await page.find('q2-input');\n await input.setProperty('value', 'Short value');\n await page.waitForChanges();\n\n const { clientWidth, scrollWidth } = await page.$eval('q2-input', (el: HTMLQ2InputElement) => {\n const { clientWidth, scrollWidth } = el.shadowRoot.querySelector('.input-container');\n return { clientWidth, scrollWidth };\n });\n expect(clientWidth).toEqual(scrollWidth);\n });\n });\n\n describe('clearable', () => {\n describe('when false (default)', () => {\n it('starts observing width when added at runtime', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" />' });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const input = await page.find('q2-input');\n input.setProperty('clearable', true);\n await page.waitForChanges();\n\n let clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('44px');\n\n await page.setViewport({ width: 189, height: 400 });\n await page.waitForChanges();\n\n clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('20px');\n });\n });\n\n describe('when true', () => {\n it('clear button is 44px when component is more than 190px wide', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" clearable/>' });\n await page.setViewport({ width: 193, height: 400 });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('44px');\n });\n\n it('clear button is 20px when component is less than 190px wide', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" clearable/>' });\n await page.setViewport({ width: 189, height: 400 });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('20px');\n });\n });\n });\n });\n\n describe('User Interactions', () => {\n it('should show error message when error icon is clicked', async function (): Promise<void> {\n const page = await setup({ html: '<q2-input label=\"foo\" />' });\n const input = await page.find('q2-input');\n input.setProperty('errors', ['broke']);\n await page.waitForChanges();\n\n const { messagesHeight, hasErrorClass } = await page.$eval('q2-input', element => {\n return {\n messagesHeight: element.shadowRoot.querySelector('.messages-container').clientHeight,\n hasErrorClass: !!element.shadowRoot.querySelector('.has-error'),\n };\n });\n\n // errors are not visible when not in focus\n expect(messagesHeight).toEqual(0);\n\n // error indicator is present\n expect(hasErrorClass).toBe(true);\n\n await dispatchEvent(page, ['q2-input', '[test-id=\"divIconError\"]'], 'click');\n\n const { expandedMessagesHeight, messagesText } = await page.$eval('q2-input', element => {\n const messageContainer = element.shadowRoot.querySelector('.messages-container');\n return {\n expandedMessagesHeight: element.shadowRoot.querySelector('.messages-container').clientHeight,\n messagesText: (messageContainer as HTMLElement).innerText.trim(),\n };\n });\n\n // errors are displayed when in focus\n expect(expandedMessagesHeight).toBeGreaterThan(0);\n\n // error message is correct\n expect(messagesText).toEqual('broke');\n });\n\n describe('Cursor Behavior', () => {\n it('does not allow type when the length of value is greater than equal the maxlength', async () => {\n const maxlength = 4;\n const page = await setup({\n html: '<q2-input maxlength=\"' + maxlength.toString() + '\" ></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n\n // max length is 4, so we should be able to enter 4 characters\n for (let i = 0; i < maxlength; i++) {\n await innerInput.press('a');\n await page.waitForChanges();\n }\n\n // move the cursor to the middle of the string\n await innerInput.press('ArrowLeft');\n await innerInput.press('ArrowLeft');\n\n // add characters to the middle of the string\n await innerInput.press('f');\n await innerInput.press('o');\n await page.waitForChanges();\n\n expect(await innerInput.getProperty('value')).toEqual('aaaa');\n });\n\n it('does not move the cursor position when first character is deleted', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"abcde 12345\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n const currentPosition = await innerInput.getProperty('selectionStart');\n for (let i = 0; i < currentPosition - 1; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n await innerInput.press('Backspace');\n await page.waitForChanges();\n const newPosition = await innerInput.getProperty('selectionStart');\n expect(newPosition).toEqual(0);\n });\n\n it('sets the cursor to where the user clicks to focus', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"Tony Stark\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n\n it('sets the cursor to where the user clicks if the input is already focused', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"Tony Stark\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n await innerInput.focus();\n await page.waitForChanges();\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n\n describe(\"when type is 'currency'\", () => {\n it('does not move the cursor to the end when first character is deleted', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"123\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n const currentPosition = await innerInput.getProperty('selectionStart');\n // For loop pushes cursor to left end position of input.value\n for (let i = 0; i < currentPosition - 1; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n await innerInput.press('Backspace');\n await page.waitForChanges();\n const newPosition = await innerInput.getProperty('selectionStart');\n // 0 represents that cursor stays at far left (beginning position of input.value)\n expect(newPosition).toEqual(0);\n });\n\n it('moves the cursor to the left and right when pressing the arrow keys', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n let value = await innerInput.getProperty('value');\n\n // move the cursor to the middle of the string\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(value.length - pressTimes);\n\n // add characters to the middle of the string\n await innerInput.press('3');\n await innerInput.press('3');\n await page.waitForChanges();\n\n expect(await innerInput.getProperty('value')).toEqual('18,594,095,338.00');\n\n // move the cursor back to the end of the string\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n }\n value = await innerInput.getProperty('value');\n expect(await innerInput.getProperty('selectionStart')).toEqual(value.length);\n });\n\n it('sets the cursor to the end regardless of where the user clicks to focus', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.right - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(valueLength);\n });\n\n it('sets the cursor to where the user clicks if the input is already focused', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n await innerInput.focus();\n await page.waitForChanges();\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.right - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n });\n });\n\n describe('when on mobile', () => {\n let page: E2EPage;\n let innerInput: E2EElement;\n let inputValueLength: number;\n beforeEach(async () => {\n page = await setup({ html: '' });\n page.setUserAgent(\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'\n );\n await page.setContent('<q2-input type=\"text\" value=\"Tony Stark\"></q2input>');\n await page.waitForChanges();\n innerInput = await page.find('q2-input >>> .input-field');\n inputValueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n await page.touchscreen.tap(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(7);\n });\n\n it('moves the cursor when ArrowLeft is pressed', async () => {\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(3);\n });\n\n it('moves the cursor when ArrowRight is pressed', async () => {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(8);\n });\n\n it('moves the cursor to the beginning when ArrowUp is pressed', async () => {\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(0);\n });\n\n it('moves the cursor to the end when ArrowDown is pressed', async () => {\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('moves the cursor to the end when End is pressed', async () => {\n await innerInput.press('End');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('moves the cursor to the beginning when Home is pressed', async () => {\n await innerInput.press('Home');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(0);\n });\n\n describe(\"when type is 'currency'\", () => {\n beforeEach(async () => {\n const input = await page.find('q2-input');\n input.setProperty('type', 'currency');\n input.setProperty('value', '1234567890');\n await page.waitForChanges();\n innerInput = await page.find('q2-input >>> .input-field');\n inputValueLength = (await innerInput.getProperty('value')).length;\n await innerInput.focus();\n await page.waitForChanges();\n const dimensions = await getInnerInputDimensions(page);\n await page.touchscreen.tap(dimensions.left - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowLeft is pressed', async () => {\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowRight is pressed', async () => {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowUp is pressed', async () => {\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowDown is pressed', async () => {\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when End is pressed', async () => {\n await innerInput.press('End');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when Home is pressed', async () => {\n await innerInput.press('Home');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('sets the cursor at the end regardless of where the user clicks', async () => {\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.touchscreen.tap(dimensions.left - 100, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n });\n });\n });\n\n describe('Slots', () => {\n describe('input-right', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n });\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"input-right\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);\n });\n it('automatically updates when added at runtime', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n\n await page.$eval('q2-input', (element: HTMLElement) => {\n const slotDiv = document.createElement('div');\n slotDiv.slot = 'input-right';\n slotDiv.textContent = 'Test';\n element.appendChild(slotDiv);\n });\n await page.waitForChanges();\n\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);\n\n await page.$eval('[slot=input-right]', (element: HTMLElement) => {\n element.remove();\n });\n await page.waitForChanges();\n\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n });\n });\n\n describe('input-left', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n });\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"input-left\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);\n });\n it('automatically updates when added at runtime', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n\n await page.$eval('q2-input', (element: HTMLElement) => {\n const slotDiv = document.createElement('div');\n slotDiv.slot = 'input-left';\n slotDiv.textContent = 'Test';\n element.appendChild(slotDiv);\n });\n await page.waitForChanges();\n\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);\n\n await page.$eval('[slot=input-left]', (element: HTMLElement) => {\n element.remove();\n });\n await page.waitForChanges();\n\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n });\n });\n\n describe('label', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=label]'])).toEqual(0);\n });\n\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"label\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=label]'])).toEqual(1);\n expect(await getNestedElementAttribute(page, ['q2-input', 'label'], 'class')).toEqual('input-label');\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2169', () => {\n it('Limits the width of long values when pseudo is true', async () => {\n const value =\n 'Cras a felis massa. Nullam eu neque arcu. Vivamus vestibulum ut tortor blandit convallis. Quisque congue dictum augue tempor luctus. Nam vulputate eros vitae felis efficitur commodo. Donec lobortis aliquam maximus.';\n const page = await setup({ html: `<q2-input value=\"${value}\" pseudo />` });\n\n const customDisplayContainer = await page.find('q2-input >>> .custom-display-container');\n const customDisplayContainerStyle = await customDisplayContainer.getComputedStyle();\n expect(parseInt(customDisplayContainerStyle.width)).toBeLessThan(775);\n\n const customDisplaySpan = await page.find('q2-input >>> slot[name=custom-display] span');\n const customDisplaySpanStyles = await customDisplaySpan.getComputedStyle();\n expect(parseInt(customDisplaySpanStyles.width)).toBeLessThan(775);\n });\n\n it('Limits the width of the value when pseudo is true', async () => {\n const value = 'Cras a felis massa.';\n const page = await setup({ html: `<q2-input value=\"${value}\" pseudo />` });\n\n const customDisplayContainer = await page.find('q2-input >>> .custom-display-container');\n const customDisplayContainerStyle = await customDisplayContainer.getComputedStyle();\n expect(parseInt(customDisplayContainerStyle.width)).toBeLessThan(125);\n\n const customDisplaySpan = await page.find('q2-input >>> slot[name=custom-display] span');\n const customDisplaySpanStyles = await customDisplaySpan.getComputedStyle();\n expect(parseInt(customDisplaySpanStyles.width)).toBeLessThan(125);\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations when only label is set', async () => {\n const page = await setup({ html: `<q2-input label=\"A11y Testing Enabled\" />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when pseudo input', async () => {\n const page = await setup({ html: `<q2-input label=\"A11y Testing Enabled\" />` });\n const input = await page.find('q2-input');\n await input.setProperty('pseudo', true);\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when aria-controls is set', async () => {\n const page = await setup({\n html: `<q2-input label=\"A11y Testing Enabled\" aria-controls=\"test\"/><div id=\"test\">test</div>`,\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when pseudo input and aria-controls is set', async () => {\n const page = await setup({\n html: `<q2-input label=\"A11y Testing Enabled\" aria-controls=\"test\"/><div id=\"test\">test</div>`,\n });\n const input = await page.find('q2-input');\n await input.setProperty('pseudo', true);\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n it('should match the input entered when the user types quickly', async () => {\n const page = await setup({ html: '<q2-input type=\"currency\" />' });\n\n const innerInput = await page.find('q2-input >>> [test-id=\"inputField\"]');\n await innerInput.type('12233445678', { delay: 5 });\n await page.waitForChanges();\n const innerInputValue = await innerInput.getProperty('value');\n\n expect(innerInputValue).toEqual('122,334,456.78');\n });\n\n describe('When type is number', () => {\n it('Increments value with Arrow keys', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-input type=\"number\" label=\"Number\" value=\"1\" ></q2-input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n expect(await innerInput.getProperty('type')).toEqual('number');\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('value')).toEqual('2');\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('value')).toEqual('1');\n });\n });\n });\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-input-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/test/q2-input-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n evaluateA11y,\n setup,\n dispatchEvent,\n getNestedAssignedElementLength,\n getNestedElementStyle,\n getListOfStyleCompilationIssues,\n getNestedElementAttribute,\n} from '@/utils/helpers';\n\ndescribe('q2-input', () => {\n async function getInnerInputDimensions(page: E2EPage) {\n return page.$eval('body', () =>\n document.querySelector('q2-input').shadowRoot.querySelector('input').getClientRects()[0].toJSON()\n );\n }\n\n describe('Styling', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-input></q2-input>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-input')).toHaveLength(0);\n });\n\n describe('pseudo', () => {\n let page: E2EPage;\n beforeEach(async function () {\n page = await setup({ html: '<q2-input label=\"label text\" value=\"value\" pseudo />' });\n });\n\n it('should not extend beyond the container when the value is long', async () => {\n const input = await page.find('q2-input');\n await input.setProperty(\n 'value',\n 'This is a very very very very very very very very very very very very very very very very very long value that should be truncated'\n );\n await page.waitForChanges();\n\n const { clientWidth, scrollWidth } = await page.$eval('q2-input', (el: HTMLQ2InputElement) => {\n const { clientWidth, scrollWidth } = el.shadowRoot.querySelector('.input-container');\n return { clientWidth, scrollWidth };\n });\n expect(clientWidth).toEqual(scrollWidth);\n });\n\n it('should fill the the container when the value is short', async () => {\n const input = await page.find('q2-input');\n await input.setProperty('value', 'Short value');\n await page.waitForChanges();\n\n const { clientWidth, scrollWidth } = await page.$eval('q2-input', (el: HTMLQ2InputElement) => {\n const { clientWidth, scrollWidth } = el.shadowRoot.querySelector('.input-container');\n return { clientWidth, scrollWidth };\n });\n expect(clientWidth).toEqual(scrollWidth);\n });\n });\n\n describe('clearable', () => {\n describe('when false (default)', () => {\n it('starts observing width when added at runtime', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" />' });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const input = await page.find('q2-input');\n input.setProperty('clearable', true);\n await page.waitForChanges();\n\n let clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('44px');\n\n await page.setViewport({ width: 189, height: 400 });\n await page.waitForChanges();\n\n clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('20px');\n });\n });\n\n describe('when true', () => {\n it('clear button is 44px when component is more than 190px wide', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" clearable/>' });\n await page.setViewport({ width: 193, height: 400 });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('44px');\n });\n\n it('clear button is 20px when component is less than 190px wide', async () => {\n const page = await setup({ html: '<q2-input value=\"Tony\" clearable/>' });\n await page.setViewport({ width: 189, height: 400 });\n await page.evaluate(() => {\n document.body.style.margin = '0';\n });\n await page.waitForChanges();\n\n const clearButtonWidth = await getNestedElementStyle(\n page,\n ['q2-input', '[test-id=\"clearButton\"]'],\n 'width'\n );\n expect(clearButtonWidth).toBe('20px');\n });\n });\n });\n });\n\n describe('User Interactions', () => {\n it('should show error message when error icon is clicked', async function (): Promise<void> {\n const page = await setup({ html: '<q2-input label=\"foo\" />' });\n const input = await page.find('q2-input');\n input.setProperty('errors', ['broke']);\n await page.waitForChanges();\n\n const { messagesHeight, hasErrorClass } = await page.$eval('q2-input', element => {\n return {\n messagesHeight: element.shadowRoot.querySelector('.messages-container').clientHeight,\n hasErrorClass: !!element.shadowRoot.querySelector('.has-error'),\n };\n });\n\n // errors are not visible when not in focus\n expect(messagesHeight).toEqual(0);\n\n // error indicator is present\n expect(hasErrorClass).toBe(true);\n\n await dispatchEvent(page, ['q2-input', '[test-id=\"divIconError\"]'], 'click');\n\n const { expandedMessagesHeight, messagesText } = await page.$eval('q2-input', element => {\n const messageContainer = element.shadowRoot.querySelector('.messages-container');\n return {\n expandedMessagesHeight: element.shadowRoot.querySelector('.messages-container').clientHeight,\n messagesText: (messageContainer as HTMLElement).innerText.trim(),\n };\n });\n\n // errors are displayed when in focus\n expect(expandedMessagesHeight).toBeGreaterThan(0);\n\n // error message is correct\n expect(messagesText).toEqual('broke');\n });\n\n describe('Cursor Behavior', () => {\n it('does not allow type when the length of value is greater than equal the maxlength', async () => {\n const maxlength = 4;\n const page = await setup({\n html: '<q2-input maxlength=\"' + maxlength.toString() + '\" ></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n\n // max length is 4, so we should be able to enter 4 characters\n for (let i = 0; i < maxlength; i++) {\n await innerInput.press('a');\n await page.waitForChanges();\n }\n\n // move the cursor to the middle of the string\n await innerInput.press('ArrowLeft');\n await innerInput.press('ArrowLeft');\n\n // add characters to the middle of the string\n await innerInput.press('f');\n await innerInput.press('o');\n await page.waitForChanges();\n\n expect(await innerInput.getProperty('value')).toEqual('aaaa');\n });\n\n it('does not move the cursor position when first character is deleted', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"abcde 12345\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n const currentPosition = await innerInput.getProperty('selectionStart');\n for (let i = 0; i < currentPosition - 1; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n await innerInput.press('Backspace');\n await page.waitForChanges();\n const newPosition = await innerInput.getProperty('selectionStart');\n expect(newPosition).toEqual(0);\n });\n\n it('sets the cursor to where the user clicks to focus', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"Tony Stark\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n\n it('sets the cursor to where the user clicks if the input is already focused', async () => {\n const page = await setup({\n html: '<q2-input type=\"text\" value=\"Tony Stark\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n await innerInput.focus();\n await page.waitForChanges();\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n\n describe(\"when type is 'currency'\", () => {\n it('does not move the cursor to the end when first character is deleted', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"123\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n const currentPosition = await innerInput.getProperty('selectionStart');\n // For loop pushes cursor to left end position of input.value\n for (let i = 0; i < currentPosition - 1; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n await innerInput.press('Backspace');\n await page.waitForChanges();\n const newPosition = await innerInput.getProperty('selectionStart');\n // 0 represents that cursor stays at far left (beginning position of input.value)\n expect(newPosition).toEqual(0);\n });\n\n it('moves the cursor to the left and right when pressing the arrow keys', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n let value = await innerInput.getProperty('value');\n\n // move the cursor to the middle of the string\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(value.length - pressTimes);\n\n // add characters to the middle of the string\n await innerInput.press('3');\n await innerInput.press('3');\n await page.waitForChanges();\n\n expect(await innerInput.getProperty('value')).toEqual('18,594,095,338.00');\n\n // move the cursor back to the end of the string\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n }\n value = await innerInput.getProperty('value');\n expect(await innerInput.getProperty('selectionStart')).toEqual(value.length);\n });\n\n it('sets the cursor to the end regardless of where the user clicks to focus', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.right - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(valueLength);\n });\n\n it('sets the cursor to where the user clicks if the input is already focused', async () => {\n const page = await setup({\n html: '<q2-input type=\"currency\" value=\"185940958\"></q2input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n const valueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n\n await innerInput.focus();\n await page.waitForChanges();\n\n // Simulate clicking a character in the middle of the input\n await page.mouse.click(dimensions.right - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toBeLessThan(valueLength);\n });\n });\n });\n\n describe('when on mobile', () => {\n let page: E2EPage;\n let innerInput: E2EElement;\n let inputValueLength: number;\n beforeEach(async () => {\n page = await setup({ html: '' });\n page.setUserAgent(\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'\n );\n await page.setContent('<q2-input type=\"text\" value=\"Tony Stark\"></q2input>');\n await page.waitForChanges();\n innerInput = await page.find('q2-input >>> .input-field');\n inputValueLength = (await innerInput.getProperty('value')).length;\n const dimensions = await getInnerInputDimensions(page);\n await page.touchscreen.tap(dimensions.left + 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(7);\n });\n\n it('moves the cursor when ArrowLeft is pressed', async () => {\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(3);\n });\n\n it('moves the cursor when ArrowRight is pressed', async () => {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(8);\n });\n\n it('moves the cursor to the beginning when ArrowUp is pressed', async () => {\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(0);\n });\n\n it('moves the cursor to the end when ArrowDown is pressed', async () => {\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('moves the cursor to the end when End is pressed', async () => {\n await innerInput.press('End');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('moves the cursor to the beginning when Home is pressed', async () => {\n await innerInput.press('Home');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(0);\n });\n\n describe(\"when type is 'currency'\", () => {\n beforeEach(async () => {\n const input = await page.find('q2-input');\n input.setProperty('type', 'currency');\n input.setProperty('value', '1234567890');\n await page.waitForChanges();\n innerInput = await page.find('q2-input >>> .input-field');\n inputValueLength = (await innerInput.getProperty('value')).length;\n await innerInput.focus();\n await page.waitForChanges();\n const dimensions = await getInnerInputDimensions(page);\n await page.touchscreen.tap(dimensions.left - 50, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowLeft is pressed', async () => {\n const pressTimes = 4;\n for (let i = 0; i < pressTimes; i++) {\n await innerInput.press('ArrowLeft');\n await page.waitForChanges();\n }\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowRight is pressed', async () => {\n await innerInput.press('ArrowRight');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowUp is pressed', async () => {\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when ArrowDown is pressed', async () => {\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when End is pressed', async () => {\n await innerInput.press('End');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('does not move the cursor when Home is pressed', async () => {\n await innerInput.press('Home');\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n\n it('sets the cursor at the end regardless of where the user clicks', async () => {\n const dimensions = await getInnerInputDimensions(page);\n\n // Simulate clicking a character in the middle of the input\n await page.touchscreen.tap(dimensions.left - 100, dimensions.top + dimensions.height / 2);\n await page.waitForChanges();\n expect(await innerInput.getProperty('selectionStart')).toEqual(inputValueLength);\n });\n });\n });\n });\n\n describe('Slots', () => {\n describe('input-right', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n });\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"input-right\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);\n });\n it('automatically updates when added at runtime', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n\n await page.$eval('q2-input', (element: HTMLElement) => {\n const slotDiv = document.createElement('div');\n slotDiv.slot = 'input-right';\n slotDiv.textContent = 'Test';\n element.appendChild(slotDiv);\n });\n await page.waitForChanges();\n\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);\n\n await page.$eval('[slot=input-right]', (element: HTMLElement) => {\n element.remove();\n });\n await page.waitForChanges();\n\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])\n ).toBeUndefined();\n });\n });\n\n describe('input-left', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n });\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"input-left\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);\n });\n it('automatically updates when added at runtime', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n\n await page.$eval('q2-input', (element: HTMLElement) => {\n const slotDiv = document.createElement('div');\n slotDiv.slot = 'input-left';\n slotDiv.textContent = 'Test';\n element.appendChild(slotDiv);\n });\n await page.waitForChanges();\n\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);\n\n await page.$eval('[slot=input-left]', (element: HTMLElement) => {\n element.remove();\n });\n await page.waitForChanges();\n\n expect(\n await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])\n ).toBeUndefined();\n });\n });\n\n describe('label', () => {\n it('does not have any nodes assigned to it when not provided', async () => {\n const page = await setup({\n html: `\n <q2-input></q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=label]'])).toEqual(0);\n });\n\n it('has a node assigned to it when provided', async () => {\n const page = await setup({\n html: `\n <q2-input>\n <div slot=\"label\">Test</div>\n </q2-input>\n `,\n });\n expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=label]'])).toEqual(1);\n expect(await getNestedElementAttribute(page, ['q2-input', 'label'], 'class')).toEqual('input-label');\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2169', () => {\n it('Limits the width of long values when pseudo is true', async () => {\n const value =\n 'Cras a felis massa. Nullam eu neque arcu. Vivamus vestibulum ut tortor blandit convallis. Quisque congue dictum augue tempor luctus. Nam vulputate eros vitae felis efficitur commodo. Donec lobortis aliquam maximus.';\n const page = await setup({ html: `<q2-input value=\"${value}\" pseudo />` });\n\n const customDisplayContainer = await page.find('q2-input >>> .custom-display-container');\n const customDisplayContainerStyle = await customDisplayContainer.getComputedStyle();\n expect(parseInt(customDisplayContainerStyle.width)).toBeLessThan(775);\n\n const customDisplaySpan = await page.find('q2-input >>> slot[name=custom-display] span');\n const customDisplaySpanStyles = await customDisplaySpan.getComputedStyle();\n expect(parseInt(customDisplaySpanStyles.width)).toBeLessThan(775);\n });\n\n it('Limits the width of the value when pseudo is true', async () => {\n const value = 'Cras a felis massa.';\n const page = await setup({ html: `<q2-input value=\"${value}\" pseudo />` });\n\n const customDisplayContainer = await page.find('q2-input >>> .custom-display-container');\n const customDisplayContainerStyle = await customDisplayContainer.getComputedStyle();\n expect(parseInt(customDisplayContainerStyle.width)).toBeLessThan(125);\n\n const customDisplaySpan = await page.find('q2-input >>> slot[name=custom-display] span');\n const customDisplaySpanStyles = await customDisplaySpan.getComputedStyle();\n expect(parseInt(customDisplaySpanStyles.width)).toBeLessThan(125);\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations when only label is set', async () => {\n const page = await setup({ html: `<q2-input label=\"A11y Testing Enabled\" />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when pseudo input', async () => {\n const page = await setup({ html: `<q2-input label=\"A11y Testing Enabled\" />` });\n const input = await page.find('q2-input');\n await input.setProperty('pseudo', true);\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when aria-controls is set', async () => {\n const page = await setup({\n html: `<q2-input label=\"A11y Testing Enabled\" aria-controls=\"test\"/><div id=\"test\">test</div>`,\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when pseudo input and aria-controls is set', async () => {\n const page = await setup({\n html: `<q2-input label=\"A11y Testing Enabled\" aria-controls=\"test\"/><div id=\"test\">test</div>`,\n });\n const input = await page.find('q2-input');\n await input.setProperty('pseudo', true);\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {\n it('should match the input entered when the user types quickly', async () => {\n const page = await setup({ html: '<q2-input type=\"currency\" />' });\n\n const innerInput = await page.find('q2-input >>> [test-id=\"inputField\"]');\n await innerInput.type('12233445678', { delay: 5 });\n await page.waitForChanges();\n const innerInputValue = await innerInput.getProperty('value');\n\n expect(innerInputValue).toEqual('122,334,456.78');\n });\n\n describe('When type is number', () => {\n it('Increments value with Arrow keys', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-input type=\"number\" label=\"Number\" value=\"1\" ></q2-input>',\n });\n const innerInput = await page.find('q2-input >>> .input-field');\n await page.waitForChanges();\n expect(await innerInput.getProperty('type')).toEqual('number');\n await innerInput.press('ArrowUp');\n await page.waitForChanges();\n expect(await innerInput.getProperty('value')).toEqual('2');\n await innerInput.press('ArrowDown');\n await page.waitForChanges();\n expect(await innerInput.getProperty('value')).toEqual('1');\n });\n });\n });\n describe('Other', () => {});\n });\n});\n"]}
|