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":"validation-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/test/validation-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { IDateValidators, ISelectedMonthYear } from 'src/components/q2-calendar/q2-calendar-types';\nimport { offsetTimezone } from '@/utils/helpers';\nimport {\n generateDatesFromMonthYear,\n getValidDaysOfWeek,\n validateAgainstChecksum,\n validateAgainstBlacklist,\n generateDateList,\n buildDates,\n validateAgainstWhitelist,\n baseValidation,\n getDayState,\n addEmptyDates,\n addEmptiesMonthEnd,\n addEmptiesMonthStart,\n generateClassesForCalDay,\n DateValidation,\n} from '../q2-calendar-validation';\n\ndescribe('q2-calendar validation', () => {\n describe('generateDatesFromMonthYear', () => {\n it('generates an array of days in the month (July, 2020)', () => {\n const result = generateDatesFromMonthYear(6, 2020);\n expect(result).toHaveLength(31);\n expect(result[0]).toEqual(new Date(offsetTimezone('2020-07-01')));\n expect(result[30]).toEqual(new Date(offsetTimezone('2020-07-31')));\n });\n\n it('generates an array of days in the month (February, 2022)', () => {\n const result = generateDatesFromMonthYear(1, 2022);\n expect(result).toHaveLength(28);\n expect(result[0]).toEqual(new Date(offsetTimezone('2022-02-01')));\n expect(result[27]).toEqual(new Date(offsetTimezone('2022-02-28')));\n });\n });\n\n describe('getValidDaysOfWeek', () => {\n it('generates an array for the weekend', () => {\n const result = getValidDaysOfWeek(65);\n expect(result).toHaveLength(2);\n expect(result).toEqual([0, 6]);\n });\n it('generates an array for weekdays', () => {\n const result = getValidDaysOfWeek(62);\n expect(result).toHaveLength(5);\n expect(result).toEqual([1, 2, 3, 4, 5]);\n });\n\n it('generates an array for Mon, Weds, Fri', () => {\n const result = getValidDaysOfWeek(42);\n expect(result).toHaveLength(3);\n expect(result).toEqual([1, 3, 5]);\n });\n\n it('generates an array for the whole week', () => {\n const result = getValidDaysOfWeek();\n expect(result).toHaveLength(7);\n expect(result).toEqual([0, 1, 2, 3, 4, 5, 6]);\n });\n });\n\n describe('validateAgainstChecksum', () => {\n let day: Date;\n beforeEach(() => {\n day = new Date('2020-07-01T12:00:00.000Z');\n });\n\n it('returns true if day is in validDaysOfWeek checksum', () => {\n const result = validateAgainstChecksum([1, 3, 5], day);\n expect(result).toEqual(true);\n });\n\n it('returns false if day is not in validDaysOfWeek checksum', () => {\n const result = validateAgainstChecksum([1, 5], day);\n expect(result).toEqual(false);\n });\n });\n\n describe('validateAgainstBlacklist', () => {\n let days;\n beforeEach(() => {\n days = [\n new Date('2020-07-01T12:00:00.000Z'),\n new Date('2020-07-02T12:00:00.000Z'),\n new Date('2020-07-03T12:00:00.000Z'),\n ];\n });\n\n it('returns false if newDate is in invalidDateMoments', () => {\n const result = validateAgainstBlacklist(days, new Date('2020-07-02T12:00:00.000Z'));\n expect(result).toEqual(false);\n });\n\n it('returns true if newDate is not in invalidDateMoments', () => {\n const result = validateAgainstBlacklist(days, new Date('2020-07-05T12:00:00.000Z'));\n expect(result).toEqual(true);\n });\n });\n\n describe('validateAgainstWhitelist', () => {\n let days;\n beforeEach(() => {\n days = [\n new Date('2020-07-01T12:00:00.000Z'),\n new Date('2020-07-02T12:00:00.000Z'),\n new Date('2020-07-03T12:00:00.000Z'),\n ];\n });\n\n it('returns true if newDate is in validDateMoments', () => {\n const result = validateAgainstWhitelist(days, new Date('2020-07-02T12:00:00.000Z'));\n expect(result).toEqual(true);\n });\n\n it('returns false if newDate is not in validDateMoments', () => {\n const result = validateAgainstWhitelist(days, new Date('2020-07-05T12:00:00.000Z'));\n expect(result).toEqual(false);\n });\n });\n\n describe('buildDates', () => {\n let validDaysOfWeek: number[];\n let validDates: Date[];\n let invalidDates: Date[];\n let selectedMonthYear: ISelectedMonthYear;\n const currentSelection = undefined;\n let dateValidators: IDateValidators;\n const typedValue = undefined;\n\n beforeEach(() => {\n selectedMonthYear = {\n monthIndex: 0,\n selectedYear: 2020,\n };\n validDaysOfWeek = [];\n validDates = [];\n invalidDates = [];\n dateValidators = {};\n });\n\n it('returns the correct number days', () => {\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n expect(result).toHaveLength(35);\n\n const emptyDates = result.filter(day => day.isEmpty);\n const regularDates = result.filter(day => !day.isEmpty);\n\n expect(emptyDates).toHaveLength(4);\n expect(regularDates).toHaveLength(31);\n });\n\n describe('when validDaysOfWeek is provided', () => {\n it('it marks invalid days of week as invalid (Weekends)', () => {\n validDaysOfWeek = [1, 2, 3, 4, 5];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toEqual(\n [\n '2020-01-04',\n '2020-01-05',\n '2020-01-11',\n '2020-01-12',\n '2020-01-18',\n '2020-01-19',\n '2020-01-25',\n '2020-01-26',\n ].map(date => offsetTimezone(date))\n );\n });\n\n it('it marks invalid days of week as invalid (Mondays)', () => {\n validDaysOfWeek = [0, 2, 3, 4, 5, 6];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toEqual(\n ['2020-01-06', '2020-01-13', '2020-01-20', '2020-01-27'].map(date => offsetTimezone(date))\n );\n });\n });\n\n describe('when validDates are provided', () => {\n it('it marks invalid days as invalid', () => {\n validDates = [new Date('2020-01-06T07:00:00.000Z'), new Date('2020-01-07T07:00:00.000Z')];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toHaveLength(29);\n expect(invalidDatesResult).not.toContain('2020-01-06T07:00:00.000Z');\n expect(invalidDatesResult).not.toContain('2020-01-07T07:00:00.000Z');\n });\n });\n\n describe('when invalidDates are provided', () => {\n it('it marks invalid days as invalid', () => {\n validDaysOfWeek = [0, 1, 2, 3, 4, 5, 6];\n invalidDates = [new Date('2020-01-06T07:00:00.000Z'), new Date('2020-01-07T07:00:00.000Z')];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toHaveLength(2);\n expect(invalidDatesResult).toContain(offsetTimezone('2020-01-06'));\n expect(invalidDatesResult).toContain(offsetTimezone('2020-01-07'));\n });\n });\n\n describe('when startDate is provided', () => {\n it('it marks invalid days as invalid', () => {\n validDaysOfWeek = [0, 1, 2, 3, 4, 5, 6];\n dateValidators = {\n startDate: new Date('2020-01-10T12:00:00.000Z'),\n };\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result.filter(day => !day.isEmpty && !day.isValid);\n expect(invalidDatesResult).toHaveLength(10);\n });\n });\n });\n\n describe('generateDateList', () => {\n let selectedMonthYear: ISelectedMonthYear;\n let dateValidators: IDateValidators;\n const currentSelection = undefined;\n let validationsFns: DateValidation[];\n const typedValue = undefined;\n\n beforeEach(() => {\n selectedMonthYear = {\n monthIndex: 0,\n selectedYear: 2020,\n };\n dateValidators = {};\n validationsFns = [];\n });\n\n it('returns an array of dates with empty entries to fill out calendar grid (January, 2020)', () => {\n const result = generateDateList(\n selectedMonthYear,\n currentSelection,\n dateValidators,\n validationsFns,\n typedValue\n );\n\n expect(result).toHaveLength(35);\n\n const emptyDates = result.filter(day => day.isEmpty);\n const regularDates = result.filter(day => !day.isEmpty);\n const invalidDates = regularDates.filter(day => !day.isValid);\n expect(emptyDates).toHaveLength(4);\n expect(regularDates).toHaveLength(31);\n expect(invalidDates).toHaveLength(0);\n });\n\n it('marks invalid dates from passed validation function', () => {\n selectedMonthYear = {\n monthIndex: 1,\n selectedYear: 2022,\n };\n dateValidators = {\n startDate: new Date('2022-02-10T12:00:00.000Z'),\n };\n validationsFns = [() => false];\n const result = generateDateList(\n selectedMonthYear,\n currentSelection,\n dateValidators,\n validationsFns,\n typedValue\n );\n\n const invalidDates = result.filter(day => !day.isEmpty && !day.isValid);\n expect(invalidDates).toHaveLength(28);\n });\n });\n\n describe('baseValidation', () => {\n let dateValidators: IDateValidators;\n let now: Date;\n let newDate: Date;\n\n beforeEach(() => {\n newDate = new Date('2020-07-01');\n dateValidators = {\n startDate: new Date('2020-07-01'),\n cutOffTime: new Date('2020-07-15'),\n endDate: new Date('2020-07-02'),\n };\n now = new Date('2020-07-05');\n });\n\n it('returns true if all validations pass', () => {\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if newDate is before startDate', () => {\n newDate = new Date('2020-06-30');\n dateValidators.startDate = new Date('2020-07-01');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns false if now is after cutoffTime is 5pm CDT', () => {\n now = new Date('2020-07-05T22:01:00.000Z'); // 5:01 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T17:00:00.000-05:00');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns true if now is before cutoffTime is 5pm CDT', () => {\n now = new Date('2020-07-05T21:59:00.000Z'); // 4:59 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T17:00:00.000-05:00');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if now is after cutoffTime is 5pm CDT using UTC timestamp', () => {\n now = new Date('2020-07-05T22:01:00.000Z'); // 5:01 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T22:00:00.000Z');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns true if now is before cutoffTime is 5pm CDT using UTC timestamp', () => {\n now = new Date('2020-07-05T21:59:00.000Z'); // 4:59 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T22:00:00.000Z');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if newDate is after endDate', () => {\n newDate = new Date('2020-07-1');\n dateValidators.endDate = new Date('2020-06-30');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n });\n\n describe('getDayState', () => {\n let dayInMonth: Date;\n let dateValidators: IDateValidators;\n let currentDate: Date;\n\n beforeEach(() => {\n dateValidators = {};\n });\n\n it('returns true for isSelected when dayInMonth and currentDate are the same day', () => {\n dayInMonth = new Date('2020-07-01T10:00:00.000Z');\n currentDate = new Date('2020-07-01T12:00:00.000Z');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isSelected).toEqual(true);\n });\n\n it('returns false for isSelected when dayInMonth and currentDate are not the same day', () => {\n dayInMonth = new Date('2020-06-30T12:00:00.000Z');\n currentDate = new Date('2020-07-01T12:00:00.000Z');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isSelected).toEqual(false);\n });\n\n it('returns true for isToday when dayInMonth is today', () => {\n dayInMonth = new Date();\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isToday).toEqual(true);\n });\n\n it('returns false for isToday when dayInMonth is not today', () => {\n dayInMonth = new Date();\n dayInMonth.setDate(dayInMonth.getDate() + 1);\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isToday).toEqual(false);\n });\n\n it('returns true for isStartDate when dayInMonth and startDate are the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.startDate = new Date('2020-07-01');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isStartDate).toEqual(true);\n });\n\n it('returns false for isStartDate when dayInMonth and startDate are not the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.startDate = new Date('2020-07-02');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isStartDate).toEqual(false);\n });\n\n it('returns true for isEndDate when dayInMonth and endDate are the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.endDate = new Date('2020-07-01');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isEndDate).toEqual(true);\n });\n\n it('returns false for isEndDate when dayInMonth and endDate are not the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.endDate = new Date('2020-07-02');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isEndDate).toEqual(false);\n });\n });\n\n describe('generateClassesForCalDay', () => {\n let options: {\n isInvalid: boolean;\n isSelected: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isToday: boolean;\n isIncompleteDate: boolean;\n };\n beforeEach(() => {\n options = {\n isInvalid: false,\n isSelected: false,\n isEndDate: false,\n isStartDate: false,\n isToday: false,\n isIncompleteDate: false,\n };\n });\n\n it('does not return any classes when all options but isInvalid are false', () => {\n const result = generateClassesForCalDay({ ...options, isInvalid: true });\n expect(result).toEqual('');\n });\n\n it('adds is-valid when isInvalid is false', () => {\n const result = generateClassesForCalDay({ ...options, isInvalid: false });\n expect(result.split(' ')).toContain('is-valid');\n });\n\n it('adds is-selected when isSelected is true', () => {\n const result = generateClassesForCalDay({ ...options, isSelected: true });\n expect(result.split(' ')).toContain('is-selected');\n });\n\n it('adds is-end-date when isEndDate is true', () => {\n const result = generateClassesForCalDay({ ...options, isEndDate: true });\n expect(result.split(' ')).toContain('is-end-date');\n });\n\n it('adds is-start-date when isStartDate is true', () => {\n const result = generateClassesForCalDay({ ...options, isStartDate: true });\n expect(result.split(' ')).toContain('is-start-date');\n });\n\n it('adds is-today when isToday is true', () => {\n const result = generateClassesForCalDay({ ...options, isToday: true });\n expect(result.split(' ')).toContain('is-today');\n });\n\n it('adds is-unavailable when isSelect and isInvalid are true', () => {\n const result = generateClassesForCalDay({\n ...options,\n isSelected: true,\n isInvalid: true,\n });\n expect(result.split(' ')).toContain('is-unavailable');\n });\n });\n\n describe('addEmptiesMonthStart', () => {\n it('returns 0 emptyDates when monthStartDay=0', () => {\n expect(addEmptiesMonthStart(0)).toHaveLength(0);\n });\n it('returns 5 emptyDates when monthStartDay=5', () => {\n expect(addEmptiesMonthStart(5)).toHaveLength(5);\n });\n });\n\n describe('addEmptiesMonthEnd', () => {\n it('returns 0 emptyDates when monthEndDay=0', () => {\n expect(addEmptiesMonthEnd(0)).toHaveLength(0);\n });\n it('returns 3 emptyDates when monthEndDay=4', () => {\n expect(addEmptiesMonthEnd(4)).toHaveLength(3);\n });\n });\n\n describe('addEmptyDates', () => {\n it('returns 2 emptyDates when 2 and 4 are provided', () => {\n const result = addEmptyDates(2, 4);\n expect(result).toHaveLength(2);\n });\n\n it('returns 3 emptyDates when 0 and 3 are provided', () => {\n const result = addEmptyDates(0, 3);\n expect(result).toHaveLength(3);\n });\n\n it('returns 4 emptyDates when 3 and 7 are provided', () => {\n const result = addEmptyDates(3, 7);\n expect(result).toHaveLength(4);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"validation-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-calendar/test/validation-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { IDateValidators, ISelectedMonthYear } from 'src/components/q2-calendar/q2-calendar-types';\nimport { offsetTimezone } from '@/utils/helpers';\nimport {\n generateDatesFromMonthYear,\n getValidDaysOfWeek,\n validateAgainstChecksum,\n validateAgainstBlacklist,\n generateDateList,\n buildDates,\n validateAgainstWhitelist,\n baseValidation,\n getDayState,\n addEmptyDates,\n addEmptiesMonthEnd,\n addEmptiesMonthStart,\n generateClassesForCalDay,\n DateValidation,\n} from '../q2-calendar-validation';\n\ndescribe('q2-calendar validation', () => {\n describe('generateDatesFromMonthYear', () => {\n it('generates an array of days in the month (July, 2020)', () => {\n const result = generateDatesFromMonthYear(6, 2020);\n expect(result).toHaveLength(31);\n expect(result[0]).toEqual(new Date(offsetTimezone('2020-07-01')));\n expect(result[30]).toEqual(new Date(offsetTimezone('2020-07-31')));\n });\n\n it('generates an array of days in the month (February, 2022)', () => {\n const result = generateDatesFromMonthYear(1, 2022);\n expect(result).toHaveLength(28);\n expect(result[0]).toEqual(new Date(offsetTimezone('2022-02-01')));\n expect(result[27]).toEqual(new Date(offsetTimezone('2022-02-28')));\n });\n });\n\n describe('getValidDaysOfWeek', () => {\n it('generates an array for the weekend', () => {\n const result = getValidDaysOfWeek(65);\n expect(result).toHaveLength(2);\n expect(result).toEqual([0, 6]);\n });\n it('generates an array for weekdays', () => {\n const result = getValidDaysOfWeek(62);\n expect(result).toHaveLength(5);\n expect(result).toEqual([1, 2, 3, 4, 5]);\n });\n\n it('generates an array for Mon, Weds, Fri', () => {\n const result = getValidDaysOfWeek(42);\n expect(result).toHaveLength(3);\n expect(result).toEqual([1, 3, 5]);\n });\n\n it('generates an array for the whole week', () => {\n const result = getValidDaysOfWeek();\n expect(result).toHaveLength(7);\n expect(result).toEqual([0, 1, 2, 3, 4, 5, 6]);\n });\n });\n\n describe('validateAgainstChecksum', () => {\n let day: Date;\n beforeEach(() => {\n day = new Date('2020-07-01T12:00:00.000Z');\n });\n\n it('returns true if day is in validDaysOfWeek checksum', () => {\n const result = validateAgainstChecksum([1, 3, 5], day);\n expect(result).toEqual(true);\n });\n\n it('returns false if day is not in validDaysOfWeek checksum', () => {\n const result = validateAgainstChecksum([1, 5], day);\n expect(result).toEqual(false);\n });\n });\n\n describe('validateAgainstBlacklist', () => {\n let days;\n beforeEach(() => {\n days = [\n new Date('2020-07-01T12:00:00.000Z'),\n new Date('2020-07-02T12:00:00.000Z'),\n new Date('2020-07-03T12:00:00.000Z'),\n ];\n });\n\n it('returns false if newDate is in invalidDateMoments', () => {\n const result = validateAgainstBlacklist(days, new Date('2020-07-02T12:00:00.000Z'));\n expect(result).toEqual(false);\n });\n\n it('returns true if newDate is not in invalidDateMoments', () => {\n const result = validateAgainstBlacklist(days, new Date('2020-07-05T12:00:00.000Z'));\n expect(result).toEqual(true);\n });\n });\n\n describe('validateAgainstWhitelist', () => {\n let days;\n beforeEach(() => {\n days = [\n new Date('2020-07-01T12:00:00.000Z'),\n new Date('2020-07-02T12:00:00.000Z'),\n new Date('2020-07-03T12:00:00.000Z'),\n ];\n });\n\n it('returns true if newDate is in validDateMoments', () => {\n const result = validateAgainstWhitelist(days, new Date('2020-07-02T12:00:00.000Z'));\n expect(result).toEqual(true);\n });\n\n it('returns false if newDate is not in validDateMoments', () => {\n const result = validateAgainstWhitelist(days, new Date('2020-07-05T12:00:00.000Z'));\n expect(result).toEqual(false);\n });\n });\n\n describe('buildDates', () => {\n let validDaysOfWeek: number[];\n let validDates: Date[];\n let invalidDates: Date[];\n let selectedMonthYear: ISelectedMonthYear;\n const currentSelection = undefined;\n let dateValidators: IDateValidators;\n const typedValue = undefined;\n\n beforeEach(() => {\n selectedMonthYear = {\n monthIndex: 0,\n selectedYear: 2020,\n };\n validDaysOfWeek = [];\n validDates = [];\n invalidDates = [];\n dateValidators = {};\n });\n\n it('returns the correct number days', () => {\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n expect(result).toHaveLength(35);\n\n const emptyDates = result.filter(day => day.isEmpty);\n const regularDates = result.filter(day => !day.isEmpty);\n\n expect(emptyDates).toHaveLength(4);\n expect(regularDates).toHaveLength(31);\n });\n\n describe('when validDaysOfWeek is provided', () => {\n it('it marks invalid days of week as invalid (Weekends)', () => {\n validDaysOfWeek = [1, 2, 3, 4, 5];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toEqual(\n [\n '2020-01-04',\n '2020-01-05',\n '2020-01-11',\n '2020-01-12',\n '2020-01-18',\n '2020-01-19',\n '2020-01-25',\n '2020-01-26',\n ].map(date => offsetTimezone(date))\n );\n });\n\n it('it marks invalid days of week as invalid (Mondays)', () => {\n validDaysOfWeek = [0, 2, 3, 4, 5, 6];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toEqual(\n ['2020-01-06', '2020-01-13', '2020-01-20', '2020-01-27'].map(date => offsetTimezone(date))\n );\n });\n });\n\n describe('when validDates are provided', () => {\n it('it marks invalid days as invalid', () => {\n validDates = [new Date('2020-01-06T07:00:00.000Z'), new Date('2020-01-07T07:00:00.000Z')];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toHaveLength(29);\n expect(invalidDatesResult).not.toContain('2020-01-06T07:00:00.000Z');\n expect(invalidDatesResult).not.toContain('2020-01-07T07:00:00.000Z');\n });\n });\n\n describe('when invalidDates are provided', () => {\n it('it marks invalid days as invalid', () => {\n validDaysOfWeek = [0, 1, 2, 3, 4, 5, 6];\n invalidDates = [new Date('2020-01-06T07:00:00.000Z'), new Date('2020-01-07T07:00:00.000Z')];\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result\n .filter(day => !day.isEmpty)\n .filter(day => !day.isValid)\n .map(day => day.date.toISOString());\n\n expect(invalidDatesResult).toHaveLength(2);\n expect(invalidDatesResult).toContain(offsetTimezone('2020-01-06'));\n expect(invalidDatesResult).toContain(offsetTimezone('2020-01-07'));\n });\n });\n\n describe('when startDate is provided', () => {\n it('it marks invalid days as invalid', () => {\n validDaysOfWeek = [0, 1, 2, 3, 4, 5, 6];\n dateValidators = {\n startDate: new Date('2020-01-10T12:00:00.000Z'),\n };\n const result = buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n selectedMonthYear,\n currentSelection,\n dateValidators,\n typedValue\n );\n\n const invalidDatesResult = result.filter(day => !day.isEmpty && !day.isValid);\n expect(invalidDatesResult).toHaveLength(10);\n });\n });\n });\n\n describe('generateDateList', () => {\n let selectedMonthYear: ISelectedMonthYear;\n let dateValidators: IDateValidators;\n const currentSelection = undefined;\n let validationsFns: DateValidation[];\n const typedValue = undefined;\n\n beforeEach(() => {\n selectedMonthYear = {\n monthIndex: 0,\n selectedYear: 2020,\n };\n dateValidators = {};\n validationsFns = [];\n });\n\n it('returns an array of dates with empty entries to fill out calendar grid (January, 2020)', () => {\n const result = generateDateList(\n selectedMonthYear,\n currentSelection,\n dateValidators,\n validationsFns,\n typedValue\n );\n\n expect(result).toHaveLength(35);\n\n const emptyDates = result.filter(day => day.isEmpty);\n const regularDates = result.filter(day => !day.isEmpty);\n const invalidDates = regularDates.filter(day => !day.isValid);\n expect(emptyDates).toHaveLength(4);\n expect(regularDates).toHaveLength(31);\n expect(invalidDates).toHaveLength(0);\n });\n\n it('marks invalid dates from passed validation function', () => {\n selectedMonthYear = {\n monthIndex: 1,\n selectedYear: 2022,\n };\n dateValidators = {\n startDate: new Date('2022-02-10T12:00:00.000Z'),\n };\n validationsFns = [() => false];\n const result = generateDateList(\n selectedMonthYear,\n currentSelection,\n dateValidators,\n validationsFns,\n typedValue\n );\n\n const invalidDates = result.filter(day => !day.isEmpty && !day.isValid);\n expect(invalidDates).toHaveLength(28);\n });\n });\n\n describe('baseValidation', () => {\n let dateValidators: IDateValidators;\n let now: Date;\n let newDate: Date;\n\n beforeEach(() => {\n newDate = new Date('2020-07-01');\n dateValidators = {\n startDate: new Date('2020-07-01'),\n cutOffTime: new Date('2020-07-15'),\n endDate: new Date('2020-07-02'),\n };\n now = new Date('2020-07-05');\n });\n\n it('returns true if all validations pass', () => {\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if newDate is before startDate', () => {\n newDate = new Date('2020-06-30');\n dateValidators.startDate = new Date('2020-07-01');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns false if now is after cutoffTime is 5pm CDT', () => {\n now = new Date('2020-07-05T22:01:00.000Z'); // 5:01 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T17:00:00.000-05:00');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns true if now is before cutoffTime is 5pm CDT', () => {\n now = new Date('2020-07-05T21:59:00.000Z'); // 4:59 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T17:00:00.000-05:00');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if now is after cutoffTime is 5pm CDT using UTC timestamp', () => {\n now = new Date('2020-07-05T22:01:00.000Z'); // 5:01 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T22:00:00.000Z');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n\n it('returns true if now is before cutoffTime is 5pm CDT using UTC timestamp', () => {\n now = new Date('2020-07-05T21:59:00.000Z'); // 4:59 PM CDT (GMT-5)\n newDate = new Date('2020-07-05T20:00:00.000Z');\n dateValidators.endDate = new Date('2020-07-10');\n dateValidators.cutOffTime = new Date('2020-07-05T22:00:00.000Z');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(true);\n });\n\n it('returns false if newDate is after endDate', () => {\n newDate = new Date('2020-07-1');\n dateValidators.endDate = new Date('2020-06-30');\n expect(baseValidation(dateValidators, now, newDate)).toEqual(false);\n });\n });\n\n describe('getDayState', () => {\n let dayInMonth: Date;\n let dateValidators: IDateValidators;\n let currentDate: Date;\n\n beforeEach(() => {\n dateValidators = {};\n });\n\n it('returns true for isSelected when dayInMonth and currentDate are the same day', () => {\n dayInMonth = new Date('2020-07-01T10:00:00.000Z');\n currentDate = new Date('2020-07-01T12:00:00.000Z');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isSelected).toEqual(true);\n });\n\n it('returns false for isSelected when dayInMonth and currentDate are not the same day', () => {\n dayInMonth = new Date('2020-06-30T12:00:00.000Z');\n currentDate = new Date('2020-07-01T12:00:00.000Z');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isSelected).toEqual(false);\n });\n\n it('returns true for isToday when dayInMonth is today', () => {\n dayInMonth = new Date();\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isToday).toEqual(true);\n });\n\n it('returns false for isToday when dayInMonth is not today', () => {\n dayInMonth = new Date();\n dayInMonth.setDate(dayInMonth.getDate() + 1);\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isToday).toEqual(false);\n });\n\n it('returns true for isStartDate when dayInMonth and startDate are the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.startDate = new Date('2020-07-01');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isStartDate).toEqual(true);\n });\n\n it('returns false for isStartDate when dayInMonth and startDate are not the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.startDate = new Date('2020-07-02');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isStartDate).toEqual(false);\n });\n\n it('returns true for isEndDate when dayInMonth and endDate are the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.endDate = new Date('2020-07-01');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isEndDate).toEqual(true);\n });\n\n it('returns false for isEndDate when dayInMonth and endDate are not the same day', () => {\n dayInMonth = new Date('2020-07-01');\n dateValidators.endDate = new Date('2020-07-02');\n const result = getDayState(dayInMonth, dateValidators, currentDate);\n expect(result.isEndDate).toEqual(false);\n });\n });\n\n describe('generateClassesForCalDay', () => {\n let options: {\n isInvalid: boolean;\n isSelected: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isToday: boolean;\n isIncompleteDate: boolean;\n };\n beforeEach(() => {\n options = {\n isInvalid: false,\n isSelected: false,\n isEndDate: false,\n isStartDate: false,\n isToday: false,\n isIncompleteDate: false,\n };\n });\n\n it('does not return any classes when all options but isInvalid are false', () => {\n const result = generateClassesForCalDay({ ...options, isInvalid: true });\n expect(result).toEqual('');\n });\n\n it('adds is-valid when isInvalid is false', () => {\n const result = generateClassesForCalDay({ ...options, isInvalid: false });\n expect(result.split(' ')).toContain('is-valid');\n });\n\n it('adds is-selected when isSelected is true', () => {\n const result = generateClassesForCalDay({ ...options, isSelected: true });\n expect(result.split(' ')).toContain('is-selected');\n });\n\n it('adds is-end-date when isEndDate is true', () => {\n const result = generateClassesForCalDay({ ...options, isEndDate: true });\n expect(result.split(' ')).toContain('is-end-date');\n });\n\n it('adds is-start-date when isStartDate is true', () => {\n const result = generateClassesForCalDay({ ...options, isStartDate: true });\n expect(result.split(' ')).toContain('is-start-date');\n });\n\n it('adds is-today when isToday is true', () => {\n const result = generateClassesForCalDay({ ...options, isToday: true });\n expect(result.split(' ')).toContain('is-today');\n });\n\n it('adds is-unavailable when isSelect and isInvalid are true', () => {\n const result = generateClassesForCalDay({\n ...options,\n isSelected: true,\n isInvalid: true,\n });\n expect(result.split(' ')).toContain('is-unavailable');\n });\n });\n\n describe('addEmptiesMonthStart', () => {\n it('returns 0 emptyDates when monthStartDay=0', () => {\n expect(addEmptiesMonthStart(0)).toHaveLength(0);\n });\n it('returns 5 emptyDates when monthStartDay=5', () => {\n expect(addEmptiesMonthStart(5)).toHaveLength(5);\n });\n });\n\n describe('addEmptiesMonthEnd', () => {\n it('returns 0 emptyDates when monthEndDay=0', () => {\n expect(addEmptiesMonthEnd(0)).toHaveLength(0);\n });\n it('returns 3 emptyDates when monthEndDay=4', () => {\n expect(addEmptiesMonthEnd(4)).toHaveLength(3);\n });\n });\n\n describe('addEmptyDates', () => {\n it('returns 2 emptyDates when 2 and 4 are provided', () => {\n const result = addEmptyDates(2, 4);\n expect(result).toHaveLength(2);\n });\n\n it('returns 3 emptyDates when 0 and 3 are provided', () => {\n const result = addEmptyDates(0, 3);\n expect(result).toHaveLength(3);\n });\n\n it('returns 4 emptyDates when 3 and 7 are provided', () => {\n const result = addEmptyDates(3, 7);\n expect(result).toHaveLength(4);\n });\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-card.js","sourceRoot":"","sources":["../../../src/components/q2-card/q2-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,IAAI,EACJ,KAAK,EACL,CAAC,EACD,QAAQ,EACR,MAAM,EACN,OAAO,EAEP,KAAK,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7E,MAAM,iBAAiB,GAAG;IACtB,SAAS;IACT,WAAW;IACX,UAAU;IACV,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;CACd,CAAC;AAGF,MAAM,OAAO,MAAM;;QAkQf,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC;2BArPqB,KAAK;2BAGL,KAAK;;;;;;;;;uBAyET,aAAa,EAAE;;;oBAYI,WAAW;;;IAajD,aAAa;IACb,qCAAqC;IAErC,oBAAoB;;QAChB,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,gBAAgB;QACZ,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAC/C,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACnD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,aAAa;IACb,oBAAoB;IAGpB,kBAAkB,CAAC,KAAK;QACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,aAAa;IACb,wBAAwB;IAExB,kBAAkB;;QACd,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;YAAE,OAAO;QACtD,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QACjD,MAAM,WAAW,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,mCAAI,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,WAAW,mCAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,GAAG,CAAC;IACxC,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;YAAE,OAAO;QACtD,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,cAAc;QACV,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEnE,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CACH,eACI,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAC1B,QAAQ,GACT,CACd,CAAC;QACN,CAAC;aAAM,IAAI,UAAU,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;YACnD,OAAO,CACH,iBACI,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAC1B,QAAQ,GACP,CAChB,CAAC;QACN,CAAC;IACL,CAAC;IAED,wBAAwB;QACpB,MAAM,EACF,OAAO,EACP,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,IAAI,GACP,GAAG,IAAI,CAAC;QACT,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,IAAI,WAAW,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,IAAI,WAAW,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,CAAC;QAC1E,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,SAAS,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACX,OAAO,CACH,EAAC,QAAQ;YACJ,IAAI,CAAC,GAAG,IAAI,CACT,WACI,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aACnB,KAAK,EACb,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GACvB,CACV;YACA,IAAI,CAAC,cAAc,EAAE;YACtB,WACI,KAAK,EAAC,SAAS,aACP,kBAAkB,EAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAEpC,IAAI,CAAC,KAAK,IAAI,qBAAY,OAAO,IAAE,IAAI,CAAC,KAAK,CAAM;gBACnD,IAAI,CAAC,WAAW,IAAI,oBAAW,aAAa,IAAE,IAAI,CAAC,WAAW,CAAK;gBACpE,eAAQ,CACN;YACL,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAC/B,0BACY,gBAAgB,EACxB,IAAI,EAAC,eAAe,EACpB,KAAK,EAAC,iBAAiB,GAChB,CACd,CACM,CACd,CAAC;IACN,CAAC;IAED,aAAa;QACT,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,OAAO;YACH,GAAG,EAAE,IAAI;YACT,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE;SAChD,CAAC;IACN,CAAC;IAED,YAAY;QACR,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;IAC1E,CAAC;IASD,oBAAoB;QAChB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,IAAI,QAAQ,IAAI,IAAI,KAAK,eAAe;YACpC,OAAO,CACH,WACI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACrC,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAC9B,kBAAkB,IAEzB,IAAI,CAAC,eAAe,EAAE,CACrB,CACT,CAAC;aACD,IAAI,CAAC,CAAC,GAAG;YACV,OAAO,CACH,SACI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACrC,IAAI,EAAE,IAAI,CAAC,GAAG,EACd,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,EACtC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,GAAG,EAAC,qBAAqB,aACjB,kBAAkB,EAC1B,OAAO,EAAE,IAAI,CAAC,WAAW,IAExB,IAAI,CAAC,eAAe,EAAE,CACvB,CACP,CAAC;;YAEF,OAAO,CACH,cACI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACrC,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAC9B,kBAAkB,EAC1B,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,IAExB,IAAI,CAAC,eAAe,EAAE,CAClB,CACZ,CAAC;IACV,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Event,\n h,\n Fragment,\n Listen,\n Element,\n EventEmitter,\n State,\n} from '@stencil/core';\nimport { isTouchDevice, overrideFocus, isEventFromElement } from 'src/utils';\nconst PREDEFINED_COLORS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'info',\n 'success',\n 'warning',\n 'alert',\n 'accent-1',\n 'accent-2',\n 'accent-3',\n 'accent-4',\n 'accent-5',\n 'accent-6',\n 'accent-7',\n 'accent-8',\n 'accent-9',\n 'accent-10',\n 'accent-11',\n 'accent-12',\n];\n\n@Component({ tag: 'q2-card', shadow: true, styleUrl: 'q2-card.scss' })\nexport class Q2Card implements ComponentInterface {\n // #region Own Properties\n\n avatarElement: HTMLElement;\n clickableElement: HTMLElement;\n containerElement: HTMLElement;\n resizeObserver: ResizeObserver;\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 isAutoSmall: boolean = false;\n\n @State()\n isAutoTouch: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to be displayed in the avatar location. */\n @Prop({ reflect: true })\n avatarIcon: string;\n\n /** The initials to be placed in the avatar of the card. */\n @Prop({ reflect: true })\n avatarInitials: string;\n\n /** The name to be used for the avatar of the card which will be converted to initials. */\n @Prop({ reflect: true })\n avatarName: string;\n\n /** The source of the image to be displayed in the avatar location. */\n @Prop({ reflect: true })\n avatarSrc: string;\n\n /**\n * Indicates that a bar should be displayed and which color to use. Predefined colors that may be used as values are:\n *\n * - primary\n * - secondary\n * - tertiary\n * - info\n * - success\n * - warning\n * - alert\n * - accent-1\n * - accent-2\n * - accent-3\n * - accent-4\n * - accent-5\n * - accent-6\n * - accent-7\n * - accent-8\n * - accent-9\n * - accent-10\n * - accent-11\n * - accent-12\n *\n * Any other value (e.g. `\"#990000\"`, `\"purple\"`) will be treated as a custom color.\n */\n @Prop({ reflect: true })\n bar: string;\n\n /** The description of the card (truncated after two lines). */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Display the card with a view optimized for smaller displays.\n *\n * @info\n * This will be determined automatically if the attribute is not manually provided.\n */\n @Prop({ reflect: true })\n isSmall: boolean;\n\n /** Display the card with no borders, padding, drop-shadows, or clickable behavior. */\n @Prop({ reflect: true })\n isStatic: boolean;\n\n /**\n * Display the card with a view optimized for touch displays.\n *\n * @info\n * This will be determined automatically if the attribute is not manually provided.\n */\n @Prop({ reflect: true })\n isTouch: boolean = isTouchDevice();\n\n /** Target to be applied to the link when a URL is provided. */\n @Prop({ reflect: true })\n target: '_self' | '_blank' | '_parent' | '_top';\n\n /** The title of the card. */\n @Prop({ reflect: true })\n title: string;\n\n /** Alters the interactive behavior of the card while maintaining visual appearance. */\n @Prop({ reflect: true })\n type: 'clickable' | 'non-clickable' = 'clickable';\n\n /** URL to navigate the user to when the card is clicked. */\n @Prop({ reflect: true })\n url: string;\n\n // #endregion\n // #region Events\n\n /** Emitted when the card is clicked and the `url` property is not provided. */\n @Event()\n click: EventEmitter<undefined>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n componentDidLoad() {\n const { hostElement, clickableElement } = this;\n hostElement.click = () => clickableElement.click();\n overrideFocus(this.hostElement);\n\n this.resizeObserver = new ResizeObserver(() => this.determineAutoSmall());\n this.resizeObserver.observe(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.clickableElement.focus();\n }\n\n // #endregion\n // #region Local Methods\n\n determineAutoSmall() {\n if (this.isStatic) return;\n if (this.hostElement.hasAttribute('is-small')) return;\n const { containerElement, avatarElement } = this;\n const avatarWidth = avatarElement?.offsetWidth ?? 0;\n const containerWidth = containerElement?.offsetWidth ?? 0;\n const totalWidth = avatarWidth + containerWidth;\n this.isAutoSmall = totalWidth < 350;\n }\n\n determineAutoTouch() {\n if (this.hostElement.hasAttribute('is-touch')) return;\n this.isAutoTouch = isTouchDevice();\n }\n\n generateAvatar() {\n const { avatarName, avatarInitials, avatarSrc, avatarIcon } = this;\n\n if (avatarIcon) {\n return (\n <q2-icon\n type={avatarIcon}\n ref={e => (this.avatarElement = e)}\n test-id=\"avatar\"\n ></q2-icon>\n );\n } else if (avatarName || avatarInitials || avatarSrc) {\n return (\n <q2-avatar\n name={avatarName}\n initials={avatarInitials}\n src={avatarSrc}\n ref={e => (this.avatarElement = e)}\n test-id=\"avatar\"\n ></q2-avatar>\n );\n }\n }\n\n generateContainerClasses() {\n const {\n isSmall,\n isAutoSmall,\n avatarName,\n avatarInitials,\n avatarSrc,\n avatarIcon,\n isTouch,\n isAutoTouch,\n isStatic,\n type,\n } = this;\n const result = ['container', type];\n const showSmall = isSmall || isAutoSmall;\n const showTouch = isTouch || isAutoTouch;\n const hasAvatar = avatarName || avatarInitials || avatarSrc || avatarIcon;\n if (showSmall) result.push('is-small');\n if (showTouch && !isStatic) result.push('is-touch');\n if (hasAvatar) result.push('has-avatar');\n if (isStatic) result.push('is-static');\n\n return result.join(' ');\n }\n\n generateContent() {\n return (\n <Fragment>\n {this.bar && (\n <div\n class={this.getBarClasses()}\n test-id=\"bar\"\n style={this.getBarStyles()}\n ></div>\n )}\n {this.generateAvatar()}\n <div\n class=\"content\"\n test-id=\"contentContainer\"\n ref={e => (this.containerElement = e)}\n >\n {this.title && <h3 test-id=\"title\">{this.title}</h3>}\n {this.description && <p test-id=\"description\">{this.description}</p>}\n <slot />\n </div>\n {this.isTouch && !this.isStatic && (\n <q2-icon\n test-id=\"touchIndicator\"\n type=\"chevron-right\"\n class=\"touch-indicator\"\n ></q2-icon>\n )}\n </Fragment>\n );\n }\n\n getBarClasses() {\n const { bar } = this;\n\n return {\n bar: true,\n [`color-${bar}`]: this.isBarColorPredefined(),\n };\n }\n\n getBarStyles() {\n const { bar } = this;\n\n return this.isBarColorPredefined() ? {} : { '--comp-bar-color': bar };\n }\n\n handleClick = (event: MouseEvent) => {\n if (this.url) return true;\n event.preventDefault();\n event.stopPropagation();\n this.click.emit();\n };\n\n isBarColorPredefined() {\n return PREDEFINED_COLORS.includes(this.bar);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { url, isStatic, type } = this;\n if (isStatic || type === 'non-clickable')\n return (\n <div\n ref={e => (this.clickableElement = e)}\n class={this.generateContainerClasses()}\n test-id=\"clickableElement\"\n >\n {this.generateContent()}\n </div>\n );\n else if (!!url)\n return (\n <a\n ref={e => (this.clickableElement = e)}\n href={this.url}\n class={this.generateContainerClasses()}\n target={this.target}\n rel=\"noopener noreferrer\"\n test-id=\"clickableElement\"\n onClick={this.handleClick}\n >\n {this.generateContent()}\n </a>\n );\n else\n return (\n <button\n ref={e => (this.clickableElement = e)}\n class={this.generateContainerClasses()}\n test-id=\"clickableElement\"\n type=\"button\"\n onClick={this.handleClick}\n >\n {this.generateContent()}\n </button>\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-card.js","sourceRoot":"","sources":["../../../../src/components/q2-card/q2-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Event,\n h,\n Fragment,\n Listen,\n Element,\n EventEmitter,\n State,\n} from '@stencil/core';\nimport { isTouchDevice, overrideFocus, isEventFromElement } from 'src/utils';\nconst PREDEFINED_COLORS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'info',\n 'success',\n 'warning',\n 'alert',\n 'accent-1',\n 'accent-2',\n 'accent-3',\n 'accent-4',\n 'accent-5',\n 'accent-6',\n 'accent-7',\n 'accent-8',\n 'accent-9',\n 'accent-10',\n 'accent-11',\n 'accent-12',\n];\n\n@Component({ tag: 'q2-card', shadow: true, styleUrl: 'q2-card.scss' })\nexport class Q2Card implements ComponentInterface {\n // #region Own Properties\n\n avatarElement: HTMLElement;\n clickableElement: HTMLElement;\n containerElement: HTMLElement;\n resizeObserver: ResizeObserver;\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 isAutoSmall: boolean = false;\n\n @State()\n isAutoTouch: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to be displayed in the avatar location. */\n @Prop({ reflect: true })\n avatarIcon: string;\n\n /** The initials to be placed in the avatar of the card. */\n @Prop({ reflect: true })\n avatarInitials: string;\n\n /** The name to be used for the avatar of the card which will be converted to initials. */\n @Prop({ reflect: true })\n avatarName: string;\n\n /** The source of the image to be displayed in the avatar location. */\n @Prop({ reflect: true })\n avatarSrc: string;\n\n /**\n * Indicates that a bar should be displayed and which color to use. Predefined colors that may be used as values are:\n *\n * - primary\n * - secondary\n * - tertiary\n * - info\n * - success\n * - warning\n * - alert\n * - accent-1\n * - accent-2\n * - accent-3\n * - accent-4\n * - accent-5\n * - accent-6\n * - accent-7\n * - accent-8\n * - accent-9\n * - accent-10\n * - accent-11\n * - accent-12\n *\n * Any other value (e.g. `\"#990000\"`, `\"purple\"`) will be treated as a custom color.\n */\n @Prop({ reflect: true })\n bar: string;\n\n /** The description of the card (truncated after two lines). */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Display the card with a view optimized for smaller displays.\n *\n * @info\n * This will be determined automatically if the attribute is not manually provided.\n */\n @Prop({ reflect: true })\n isSmall: boolean;\n\n /** Display the card with no borders, padding, drop-shadows, or clickable behavior. */\n @Prop({ reflect: true })\n isStatic: boolean;\n\n /**\n * Display the card with a view optimized for touch displays.\n *\n * @info\n * This will be determined automatically if the attribute is not manually provided.\n */\n @Prop({ reflect: true })\n isTouch: boolean = isTouchDevice();\n\n /** Target to be applied to the link when a URL is provided. */\n @Prop({ reflect: true })\n target: '_self' | '_blank' | '_parent' | '_top';\n\n /** The title of the card. */\n @Prop({ reflect: true })\n title: string;\n\n /** Alters the interactive behavior of the card while maintaining visual appearance. */\n @Prop({ reflect: true })\n type: 'clickable' | 'non-clickable' = 'clickable';\n\n /** URL to navigate the user to when the card is clicked. */\n @Prop({ reflect: true })\n url: string;\n\n // #endregion\n // #region Events\n\n /** Emitted when the card is clicked and the `url` property is not provided. */\n @Event()\n click: EventEmitter<undefined>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n componentDidLoad() {\n const { hostElement, clickableElement } = this;\n hostElement.click = () => clickableElement.click();\n overrideFocus(this.hostElement);\n\n this.resizeObserver = new ResizeObserver(() => this.determineAutoSmall());\n this.resizeObserver.observe(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.clickableElement.focus();\n }\n\n // #endregion\n // #region Local Methods\n\n determineAutoSmall() {\n if (this.isStatic) return;\n if (this.hostElement.hasAttribute('is-small')) return;\n const { containerElement, avatarElement } = this;\n const avatarWidth = avatarElement?.offsetWidth ?? 0;\n const containerWidth = containerElement?.offsetWidth ?? 0;\n const totalWidth = avatarWidth + containerWidth;\n this.isAutoSmall = totalWidth < 350;\n }\n\n determineAutoTouch() {\n if (this.hostElement.hasAttribute('is-touch')) return;\n this.isAutoTouch = isTouchDevice();\n }\n\n generateAvatar() {\n const { avatarName, avatarInitials, avatarSrc, avatarIcon } = this;\n\n if (avatarIcon) {\n return (\n <q2-icon\n type={avatarIcon}\n ref={e => (this.avatarElement = e)}\n test-id=\"avatar\"\n ></q2-icon>\n );\n } else if (avatarName || avatarInitials || avatarSrc) {\n return (\n <q2-avatar\n name={avatarName}\n initials={avatarInitials}\n src={avatarSrc}\n ref={e => (this.avatarElement = e)}\n test-id=\"avatar\"\n ></q2-avatar>\n );\n }\n }\n\n generateContainerClasses() {\n const {\n isSmall,\n isAutoSmall,\n avatarName,\n avatarInitials,\n avatarSrc,\n avatarIcon,\n isTouch,\n isAutoTouch,\n isStatic,\n type,\n } = this;\n const result = ['container', type];\n const showSmall = isSmall || isAutoSmall;\n const showTouch = isTouch || isAutoTouch;\n const hasAvatar = avatarName || avatarInitials || avatarSrc || avatarIcon;\n if (showSmall) result.push('is-small');\n if (showTouch && !isStatic) result.push('is-touch');\n if (hasAvatar) result.push('has-avatar');\n if (isStatic) result.push('is-static');\n\n return result.join(' ');\n }\n\n generateContent() {\n return (\n <Fragment>\n {this.bar && (\n <div\n class={this.getBarClasses()}\n test-id=\"bar\"\n style={this.getBarStyles()}\n ></div>\n )}\n {this.generateAvatar()}\n <div\n class=\"content\"\n test-id=\"contentContainer\"\n ref={e => (this.containerElement = e)}\n >\n {this.title && <h3 test-id=\"title\">{this.title}</h3>}\n {this.description && <p test-id=\"description\">{this.description}</p>}\n <slot />\n </div>\n {this.isTouch && !this.isStatic && (\n <q2-icon\n test-id=\"touchIndicator\"\n type=\"chevron-right\"\n class=\"touch-indicator\"\n ></q2-icon>\n )}\n </Fragment>\n );\n }\n\n getBarClasses() {\n const { bar } = this;\n\n return {\n bar: true,\n [`color-${bar}`]: this.isBarColorPredefined(),\n };\n }\n\n getBarStyles() {\n const { bar } = this;\n\n return this.isBarColorPredefined() ? {} : { '--comp-bar-color': bar };\n }\n\n handleClick = (event: MouseEvent) => {\n if (this.url) return true;\n event.preventDefault();\n event.stopPropagation();\n this.click.emit();\n };\n\n isBarColorPredefined() {\n return PREDEFINED_COLORS.includes(this.bar);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { url, isStatic, type } = this;\n if (isStatic || type === 'non-clickable')\n return (\n <div\n ref={e => (this.clickableElement = e)}\n class={this.generateContainerClasses()}\n test-id=\"clickableElement\"\n >\n {this.generateContent()}\n </div>\n );\n else if (!!url)\n return (\n <a\n ref={e => (this.clickableElement = e)}\n href={this.url}\n class={this.generateContainerClasses()}\n target={this.target}\n rel=\"noopener noreferrer\"\n test-id=\"clickableElement\"\n onClick={this.handleClick}\n >\n {this.generateContent()}\n </a>\n );\n else\n return (\n <button\n ref={e => (this.clickableElement = e)}\n class={this.generateContainerClasses()}\n test-id=\"clickableElement\"\n type=\"button\"\n onClick={this.handleClick}\n >\n {this.generateContent()}\n </button>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-card-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-card/test/q2-card-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport {\n setup,\n dispatchEvent,\n getActiveElementTestId,\n base64Image,\n getNestedElementStyle,\n getListOfStyleCompilationIssues,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-card', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-card></q2-card>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-card')).toHaveLength(0);\n });\n\n describe('focus', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n\n it('focuses inner button when focus event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'focus');\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n const card = await page.find('q2-card');\n await card.focus();\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n });\n\n describe('auto detecting touch devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `` });\n await page.evaluate(() => ((window.ontouchstart as any) = true));\n page.setContent(`<q2-card></q2-card>`);\n await page.waitForChanges();\n });\n\n it('automatically adds is-touch class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n\n describe('auto detecting small devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card title=\"Test\"></q2-card>` });\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n });\n\n it('automatically adds is-small class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n\n it('automatically toggles on viewport resize', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n let page: E2EPage;\n let card: E2EElement;\n let clickSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n card = await page.find('q2-card');\n clickSpy = await card.spyOnEvent('click');\n });\n\n it('emits event when clickableElement is clicked', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n await clickableElement.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'click');\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when click is called on q2-card', async () => {\n await card.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n });\n });\n\n describe('Props', () => {\n describe('isStatic', () => {\n describe('when not provided', () => {\n it('adds padding', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('20px');\n expect(containerStyles.boxShadow).toEqual(\n 'rgba(0, 0, 0, 0.12) 0px 0px 2px 0px, rgba(0, 0, 0, 0.14) 0px 4px 8px 0px'\n );\n expect(containerStyles.borderRadius).toEqual('4px');\n expect(containerStyles.cursor).toEqual('pointer');\n });\n });\n\n describe('when provided', () => {\n it('removes padding', async () => {\n const page = await setup({\n html: `<q2-card is-static></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n\n describe('when bar is provided', () => {\n it('adds left padding', async () => {\n const page = await setup({\n html: `<q2-card is-static bar=\"primary\"></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px 0px 0px 20px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n });\n });\n });\n\n describe('bar', () => {\n describe('when not provided', () => {\n it('does not render the bar element', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeNull();\n });\n });\n\n describe('when provided', () => {\n const getBarColor = async (page: E2EPage) =>\n page.$eval('q2-card', element => {\n const bar = element.shadowRoot.querySelector<HTMLElement>('.bar');\n return bar.style.getPropertyValue('--comp-bar-color');\n });\n it('renders the bar element', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeTruthy();\n });\n\n const constantColors = [\n { propValue: 'info', expectedColor: 'rgb(0, 0, 1)' },\n { propValue: 'success', expectedColor: 'rgb(0, 0, 2)' },\n { propValue: 'warning', expectedColor: 'rgb(0, 0, 3)' },\n { propValue: 'alert', expectedColor: 'rgb(0, 0, 4)' },\n ];\n\n const themeColors = [\n { propValue: 'primary', expectedColor: 'rgb(0, 0, 5)' },\n { propValue: 'secondary', expectedColor: 'rgb(0, 0, 6)' },\n { propValue: 'tertiary', expectedColor: 'rgb(0, 0, 7)' },\n { propValue: 'accent-1', expectedColor: 'rgb(0, 0, 8)' },\n { propValue: 'accent-2', expectedColor: 'rgb(0, 0, 9)' },\n { propValue: 'accent-3', expectedColor: 'rgb(0, 0, 10)' },\n { propValue: 'accent-4', expectedColor: 'rgb(0, 0, 11)' },\n { propValue: 'accent-5', expectedColor: 'rgb(0, 0, 12)' },\n { propValue: 'accent-6', expectedColor: 'rgb(0, 0, 13)' },\n { propValue: 'accent-7', expectedColor: 'rgb(0, 0, 14)' },\n { propValue: 'accent-8', expectedColor: 'rgb(0, 0, 15)' },\n { propValue: 'accent-9', expectedColor: 'rgb(0, 0, 16)' },\n { propValue: 'accent-10', expectedColor: 'rgb(0, 0, 17)' },\n { propValue: 'accent-11', expectedColor: 'rgb(0, 0, 18)' },\n { propValue: 'accent-12', expectedColor: 'rgb(0, 0, 19)' },\n ];\n\n const predefinedColors = [...constantColors, ...themeColors];\n\n predefinedColors.forEach(color => {\n const { propValue, expectedColor } = color;\n\n it(`on load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${propValue}\" style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n\n it(`after load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const card = await page.find('q2-card');\n card.setAttribute('bar', propValue);\n await page.waitForChanges();\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n });\n\n constantColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --const-stoplight-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--const-stoplight-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n themeColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --t-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--t-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n it('accepts hex value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"#000000\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('#000000');\n });\n\n it('accepts hsl value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"hsl(0deg 0% 0%)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('hsl(0deg 0% 0%)');\n });\n\n it('accepts rgb value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgb(0, 0, 0)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgb(0, 0, 0)');\n });\n\n it('accepts rgba value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgba(0, 0, 0, 0.5)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgba(0, 0, 0, 0.5)');\n });\n\n it('accepts named colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"red\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('red');\n });\n });\n });\n\n describe('title', () => {\n describe('when not provided', () => {\n it('does not render the title', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=description]');\n\n expect(title).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the title', async () => {\n const page = await setup({\n html: `<q2-card title=\"Checking\"></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=title]');\n\n expect(title.textContent).toEqual('Checking');\n });\n });\n });\n\n describe('description', () => {\n describe('when not provided', () => {\n it('does not render the description', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the description', async () => {\n const page = await setup({\n html: `<q2-card description=\"This account is empty\"></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description.textContent).toEqual('This account is empty');\n });\n });\n });\n\n describe('avatar props', () => {\n describe('when no avatar props are provided', () => {\n it('does not render avatar or add the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toBeNull();\n expect(clickableElement.className).not.toContain('has-avatar');\n });\n });\n\n describe('avatarName', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-name=\"John Doe\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('name', 'John Doe');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarInitials', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-initials=\"JD\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('initials', 'JD');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarIcon', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-icon=\"star\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('type', 'star');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarSrc', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-src=${base64Image}></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('src', base64Image);\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n });\n\n describe('isSmall', () => {\n describe('when not provided', () => {\n it('does not add is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('when provided', () => {\n it('adds is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card is-small></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n });\n });\n\n describe('isTouch', () => {\n describe('when not provided', () => {\n it('does not render touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeNull();\n expect(clickableElement.className).not.toContain('is-touch');\n });\n });\n\n describe('when provided', () => {\n it('renders touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card is-touch></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeTruthy();\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n });\n\n describe('url', () => {\n describe('when not provided', () => {\n it('renders a button', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('BUTTON');\n });\n });\n\n describe('when provided', () => {\n it('renders a link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('href', 'https://www.google.com/');\n });\n });\n });\n\n describe('target', () => {\n describe('when not provided', () => {\n it('does not add the target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).not.toHaveAttribute('target');\n });\n });\n\n describe('when provided', () => {\n it('adds target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\" target=\"_blank\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('target', '_blank');\n });\n });\n });\n\n describe('non-clickable', () => {\n let page: E2EPage;\n let card: E2EElement;\n let element: E2EElement;\n describe('when provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card type=\"non-clickable\"></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <div>', () => {\n expect(element.tagName).toEqual('DIV');\n });\n it('has non-clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'non-clickable');\n });\n it('has non-clickable class name on div', () => {\n expect(element.getAttribute('class')).toContain('non-clickable');\n });\n });\n describe('when not provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <button>', () => {\n expect(element.tagName).toEqual('BUTTON');\n });\n it('has clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'clickable');\n });\n it('has clickable class name on button', () => {\n expect(element.getAttribute('class')).toContain('clickable');\n });\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({ html: '<q2-card title=\"Card Title\"></q2-card>' });\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\n// content?\n// mobile?\n"]}
|
|
1
|
+
{"version":3,"file":"q2-card-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-card/test/q2-card-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport {\n setup,\n dispatchEvent,\n getActiveElementTestId,\n base64Image,\n getNestedElementStyle,\n getListOfStyleCompilationIssues,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-card', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-card></q2-card>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-card')).toHaveLength(0);\n });\n\n describe('focus', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n\n it('focuses inner button when focus event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'focus');\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n const card = await page.find('q2-card');\n await card.focus();\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n });\n\n describe('auto detecting touch devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `` });\n await page.evaluate(() => ((window.ontouchstart as any) = true));\n page.setContent(`<q2-card></q2-card>`);\n await page.waitForChanges();\n });\n\n it('automatically adds is-touch class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n\n describe('auto detecting small devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card title=\"Test\"></q2-card>` });\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n });\n\n it('automatically adds is-small class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n\n it('automatically toggles on viewport resize', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n let page: E2EPage;\n let card: E2EElement;\n let clickSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n card = await page.find('q2-card');\n clickSpy = await card.spyOnEvent('click');\n });\n\n it('emits event when clickableElement is clicked', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n await clickableElement.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'click');\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when click is called on q2-card', async () => {\n await card.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n });\n });\n\n describe('Props', () => {\n describe('isStatic', () => {\n describe('when not provided', () => {\n it('adds padding', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('20px');\n expect(containerStyles.boxShadow).toEqual(\n 'rgba(0, 0, 0, 0.12) 0px 0px 2px 0px, rgba(0, 0, 0, 0.14) 0px 4px 8px 0px'\n );\n expect(containerStyles.borderRadius).toEqual('4px');\n expect(containerStyles.cursor).toEqual('pointer');\n });\n });\n\n describe('when provided', () => {\n it('removes padding', async () => {\n const page = await setup({\n html: `<q2-card is-static></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n\n describe('when bar is provided', () => {\n it('adds left padding', async () => {\n const page = await setup({\n html: `<q2-card is-static bar=\"primary\"></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px 0px 0px 20px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n });\n });\n });\n\n describe('bar', () => {\n describe('when not provided', () => {\n it('does not render the bar element', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeNull();\n });\n });\n\n describe('when provided', () => {\n const getBarColor = async (page: E2EPage) =>\n page.$eval('q2-card', element => {\n const bar = element.shadowRoot.querySelector<HTMLElement>('.bar');\n return bar.style.getPropertyValue('--comp-bar-color');\n });\n it('renders the bar element', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeTruthy();\n });\n\n const constantColors = [\n { propValue: 'info', expectedColor: 'rgb(0, 0, 1)' },\n { propValue: 'success', expectedColor: 'rgb(0, 0, 2)' },\n { propValue: 'warning', expectedColor: 'rgb(0, 0, 3)' },\n { propValue: 'alert', expectedColor: 'rgb(0, 0, 4)' },\n ];\n\n const themeColors = [\n { propValue: 'primary', expectedColor: 'rgb(0, 0, 5)' },\n { propValue: 'secondary', expectedColor: 'rgb(0, 0, 6)' },\n { propValue: 'tertiary', expectedColor: 'rgb(0, 0, 7)' },\n { propValue: 'accent-1', expectedColor: 'rgb(0, 0, 8)' },\n { propValue: 'accent-2', expectedColor: 'rgb(0, 0, 9)' },\n { propValue: 'accent-3', expectedColor: 'rgb(0, 0, 10)' },\n { propValue: 'accent-4', expectedColor: 'rgb(0, 0, 11)' },\n { propValue: 'accent-5', expectedColor: 'rgb(0, 0, 12)' },\n { propValue: 'accent-6', expectedColor: 'rgb(0, 0, 13)' },\n { propValue: 'accent-7', expectedColor: 'rgb(0, 0, 14)' },\n { propValue: 'accent-8', expectedColor: 'rgb(0, 0, 15)' },\n { propValue: 'accent-9', expectedColor: 'rgb(0, 0, 16)' },\n { propValue: 'accent-10', expectedColor: 'rgb(0, 0, 17)' },\n { propValue: 'accent-11', expectedColor: 'rgb(0, 0, 18)' },\n { propValue: 'accent-12', expectedColor: 'rgb(0, 0, 19)' },\n ];\n\n const predefinedColors = [...constantColors, ...themeColors];\n\n predefinedColors.forEach(color => {\n const { propValue, expectedColor } = color;\n\n it(`on load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${propValue}\" style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n\n it(`after load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const card = await page.find('q2-card');\n card.setAttribute('bar', propValue);\n await page.waitForChanges();\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n });\n\n constantColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --const-stoplight-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--const-stoplight-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n themeColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --t-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--t-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n it('accepts hex value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"#000000\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('#000000');\n });\n\n it('accepts hsl value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"hsl(0deg 0% 0%)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('hsl(0deg 0% 0%)');\n });\n\n it('accepts rgb value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgb(0, 0, 0)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgb(0, 0, 0)');\n });\n\n it('accepts rgba value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgba(0, 0, 0, 0.5)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgba(0, 0, 0, 0.5)');\n });\n\n it('accepts named colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"red\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('red');\n });\n });\n });\n\n describe('title', () => {\n describe('when not provided', () => {\n it('does not render the title', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=description]');\n\n expect(title).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the title', async () => {\n const page = await setup({\n html: `<q2-card title=\"Checking\"></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=title]');\n\n expect(title.textContent).toEqual('Checking');\n });\n });\n });\n\n describe('description', () => {\n describe('when not provided', () => {\n it('does not render the description', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the description', async () => {\n const page = await setup({\n html: `<q2-card description=\"This account is empty\"></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description.textContent).toEqual('This account is empty');\n });\n });\n });\n\n describe('avatar props', () => {\n describe('when no avatar props are provided', () => {\n it('does not render avatar or add the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toBeNull();\n expect(clickableElement.className).not.toContain('has-avatar');\n });\n });\n\n describe('avatarName', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-name=\"John Doe\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('name', 'John Doe');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarInitials', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-initials=\"JD\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('initials', 'JD');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarIcon', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-icon=\"star\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('type', 'star');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarSrc', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-src=${base64Image}></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('src', base64Image);\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n });\n\n describe('isSmall', () => {\n describe('when not provided', () => {\n it('does not add is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('when provided', () => {\n it('adds is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card is-small></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n });\n });\n\n describe('isTouch', () => {\n describe('when not provided', () => {\n it('does not render touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeNull();\n expect(clickableElement.className).not.toContain('is-touch');\n });\n });\n\n describe('when provided', () => {\n it('renders touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card is-touch></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeTruthy();\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n });\n\n describe('url', () => {\n describe('when not provided', () => {\n it('renders a button', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('BUTTON');\n });\n });\n\n describe('when provided', () => {\n it('renders a link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('href', 'https://www.google.com/');\n });\n });\n });\n\n describe('target', () => {\n describe('when not provided', () => {\n it('does not add the target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).not.toHaveAttribute('target');\n });\n });\n\n describe('when provided', () => {\n it('adds target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\" target=\"_blank\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('target', '_blank');\n });\n });\n });\n\n describe('non-clickable', () => {\n let page: E2EPage;\n let card: E2EElement;\n let element: E2EElement;\n describe('when provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card type=\"non-clickable\"></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <div>', () => {\n expect(element.tagName).toEqual('DIV');\n });\n it('has non-clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'non-clickable');\n });\n it('has non-clickable class name on div', () => {\n expect(element.getAttribute('class')).toContain('non-clickable');\n });\n });\n describe('when not provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <button>', () => {\n expect(element.tagName).toEqual('BUTTON');\n });\n it('has clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'clickable');\n });\n it('has clickable class name on button', () => {\n expect(element.getAttribute('class')).toContain('clickable');\n });\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({ html: '<q2-card title=\"Card Title\"></q2-card>' });\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\n// content?\n// mobile?\n"]}
|