q2-tecton-elements 1.53.1 → 1.53.3
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 +73 -69
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-07285783.js → index-7aecfed8.js} +30 -18
- package/dist/cjs/index-7aecfed8.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +4 -4
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +4 -2
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +2 -2
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +130 -14
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +3 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +5 -17
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-example/q2-example.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-item/q2-item.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
- package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js.map +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +2 -2
- 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 +74 -69
- 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 +902 -511
- 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 +151 -16
- 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 +552 -0
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/charting.js.map +1 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js +37 -0
- 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 +29 -17
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown.js +3 -1
- package/dist/components/q2-dropdown.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-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 +73 -69
- 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 +133 -17
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +73 -69
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-d18e2a20.js → index-99c46474.js} +30 -18
- package/dist/esm/index-99c46474.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +4 -4
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-donut.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +4 -2
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-item_3.entry.js +3 -3
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +2 -2
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +131 -15
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/jest.setup.js +33 -0
- package/dist/jest.setup.js.map +1 -0
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +103 -92
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{index-d18e2a20.js → index-99c46474.js} +24 -17
- package/dist/q2-tecton-elements/index-99c46474.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +80 -80
- 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 +13 -11
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-loc.entry.js +2 -2
- 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 +5 -5
- 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 +196 -93
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-tag.entry.js +25 -25
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +10 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +23 -0
- package/dist/types/utils/index.d.ts +3 -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
|
@@ -100,7 +100,7 @@ export class Q2Item {
|
|
|
100
100
|
// #region Render Methods
|
|
101
101
|
render() {
|
|
102
102
|
const { clickable } = this;
|
|
103
|
-
return (h("div", { key: '
|
|
103
|
+
return (h("div", { key: '2511d34e01575fe19d4a9becdce7a44ccc8736e7', "test-id": "itemContainer", class: this.itemClasses, ref: el => (this.itemElement = el), role: clickable ? 'button' : undefined, tabIndex: clickable ? 0 : undefined }, this.hasBulletSlotContent && (h("div", { key: '47595ae0c96465a0524c4b08f7c77997fa5ad012', class: this.bulletClasses }, h("slot", { key: '0e446493744bdc304336f20e5bab89864b430cec', name: "bullet" }))), h("div", { key: '061814832dc71b7bbe239cddb2e474f7ea91558c', class: this.mainClasses }, this.hasHeaderSlotContent && (h("div", { key: '9f27b6fa63241088951935cff169385ef23b55e4', class: "header" }, h("slot", { key: '9c99e37648c9c4c5a8b981aa16ec8a7b42a1887a', name: "header" }))), this.hasBodySlotContent && (h("div", { key: 'e8a788366c10d06fef823b9be88c40fba65d4e71', class: "body" }, h("slot", { key: '617965a59d689b0679e920794ebf9a36848f4eab', name: "body" })))), this.hasActionSlotContent && (h("div", { key: '38c6a30f60c6a8bc8c953ed4b74a3687a0ba03a1', class: this.actionClasses }, h("slot", { key: '76efb6ba1377adcb3fc850d8966ecc49b55896b5', name: "action" }))), this.hasFooterSlotContent && (h("div", { key: '9a9bf0234ebac99487797bc93afa6e73097f1e68', class: this.footerClasses }, h("slot", { key: '91abd31668cff2657ecf57ce8b9d6f63e8d375ae', name: "footer" })))));
|
|
104
104
|
}
|
|
105
105
|
static get is() { return "q2-item"; }
|
|
106
106
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-item.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-item.js","sourceRoot":"","sources":["../../../../src/components/q2-item/q2-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO1D,MAAM,OAAO,MAAM;;6BAgBS,CAAC;;;IASzB,aAAa;IACb,qCAAqC;IAErC,gBAAgB;QACZ,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACrC,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,aAAa;IACb,oBAAoB;IAGpB,aAAa,CAAC,KAAiB;;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,aAAa;IACb,wBAAwB;IAExB,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,oBAAoB;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,kBAAkB;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,oBAAoB;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,oBAAoB;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,oBAAoB;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,WAAW;QACX,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,WAAW;QACX,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,OAAO,CACH,uEACY,eAAe,EACvB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACtC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAElC,IAAI,CAAC,oBAAoB,IAAI,CAC1B,4DAAK,KAAK,EAAE,IAAI,CAAC,aAAa;gBAC1B,6DAAM,IAAI,EAAC,QAAQ,GAAG,CACpB,CACT;YACD,4DAAK,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,IAAI,CAAC,oBAAoB,IAAI,CAC1B,4DAAK,KAAK,EAAC,QAAQ;oBACf,6DAAM,IAAI,EAAC,QAAQ,GAAG,CACpB,CACT;gBACA,IAAI,CAAC,kBAAkB,IAAI,CACxB,4DAAK,KAAK,EAAC,MAAM;oBACb,6DAAM,IAAI,EAAC,MAAM,GAAG,CAClB,CACT,CACC;YACL,IAAI,CAAC,oBAAoB,IAAI,CAC1B,4DAAK,KAAK,EAAE,IAAI,CAAC,aAAa;gBAC1B,6DAAM,IAAI,EAAC,QAAQ,GAAG,CACpB,CACT;YACA,IAAI,CAAC,oBAAoB,IAAI,CAC1B,4DAAK,KAAK,EAAE,IAAI,CAAC,aAAa;gBAC1B,6DAAM,IAAI,EAAC,QAAQ,GAAG,CACpB,CACT,CACC,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import { Component, Element, Listen, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-item',\n styleUrl: 'q2-item.scss',\n shadow: true,\n})\nexport class Q2Item {\n // #region Own Properties\n\n itemElement: HTMLDivElement;\n mutationObserver: MutationObserver;\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Makes the item clickable. */\n @Prop({ reflect: true })\n clickable: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidLoad() {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => (this.renderTrigger += 1));\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (this.clickable) {\n this.itemElement?.focus();\n } else {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get actionClasses() {\n const classes = ['action'];\n if (!this.hasBulletSlotContent) {\n classes.push(`action-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get bulletClasses() {\n const classes = ['bullet'];\n if (!this.hasFooterSlotContent) {\n classes.push(`bullet-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get footerClasses() {\n const classes = ['footer'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`footer-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`footer-no-action`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`footer-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get hasActionSlotContent() {\n return hasSlotContent(this.hostElement, 'action');\n }\n\n get hasBodySlotContent() {\n return hasSlotContent(this.hostElement, 'body');\n }\n\n get hasBulletSlotContent() {\n return hasSlotContent(this.hostElement, 'bullet');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n get hasHeaderSlotContent() {\n return hasSlotContent(this.hostElement, 'header');\n }\n\n get itemClasses() {\n const classes = ['item'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`item-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`item-no-action`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`item-no-bullet`);\n }\n if (!this.hasFooterSlotContent) {\n classes.push(`item-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get mainClasses() {\n const classes = ['main'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`main-no-action-nor-bullet`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`main-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { clickable } = this;\n return (\n <div\n test-id=\"itemContainer\"\n class={this.itemClasses}\n ref={el => (this.itemElement = el)}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n >\n {this.hasBulletSlotContent && (\n <div class={this.bulletClasses}>\n <slot name=\"bullet\" />\n </div>\n )}\n <div class={this.mainClasses}>\n {this.hasHeaderSlotContent && (\n <div class=\"header\">\n <slot name=\"header\" />\n </div>\n )}\n {this.hasBodySlotContent && (\n <div class=\"body\">\n <slot name=\"body\" />\n </div>\n )}\n </div>\n {this.hasActionSlotContent && (\n <div class={this.actionClasses}>\n <slot name=\"action\" />\n </div>\n )}\n {this.hasFooterSlotContent && (\n <div class={this.footerClasses}>\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-item-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-item/test/q2-item-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from '@/utils/helpers';\n\ndescribe('q2-item', () => {\n describe('Props', () => {});\n describe('Slots', () => {\n describe('action', () => {\n it('when set content displayed as action', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const action = await page.find('q2-item >>> .action');\n\n expect(item).toEqualText('Test Action');\n expect(action).toBeTruthy();\n });\n it('when removed conatiner removed', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Body</div>\n </q2-item>\n `,\n });\n let actionSlot = await page.find('q2-item > [slot=\"action\"]');\n let actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeTruthy();\n expect(actionContainer).toBeTruthy();\n\n await page.evaluate(() => {\n const actionSlot = document.querySelector('q2-item > [slot=\"action\"]');\n if (actionSlot && actionSlot.parentNode) {\n actionSlot.parentNode.removeChild(actionSlot);\n }\n });\n await page.waitForChanges();\n actionSlot = await page.find('q2-item > [slot=\"action\"]');\n actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeFalsy();\n expect(actionContainer).toBeFalsy();\n });\n it('when not set action not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const action = await page.find('q2-item >>> .action');\n\n expect(action).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action');\n expect(footer).toHaveClass('footer-no-action');\n });\n });\n describe('body', () => {\n it('when set content displayed as body', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const body = await page.find('q2-item >>> .body');\n\n expect(item).toEqualText('Test Body');\n expect(body).toBeTruthy();\n });\n it('when not set body not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const body = await page.find('q2-item >>> .body');\n\n expect(body).toBeFalsy();\n });\n });\n describe('bullet', () => {\n it('when set content displayed as bullet', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(item).toEqualText('Test Bullet');\n expect(bullet).toBeTruthy();\n });\n it('when not set bullet not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(bullet).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const action = await page.find('q2-item >>> .action');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-bullet');\n expect(action).toHaveClass('action-no-bullet');\n expect(main).toHaveClass('main-no-bullet');\n expect(footer).toHaveClass('footer-no-bullet');\n });\n });\n describe('footer', () => {\n it('when set content displayed as footer', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(item).toEqualText('Test Footer');\n expect(footer).toBeTruthy();\n });\n it('when not set footer not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const footer = await page.find('q2-item >>> .footer');\n\n expect(footer).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(itemContainer).toHaveClass('item-no-footer');\n expect(bullet).toHaveClass('bullet-no-footer');\n });\n });\n describe('header/defalult', () => {\n it('when set content displayed as header', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const header = await page.find('q2-item >>> .header');\n\n expect(item).toEqualText('Test Header');\n expect(header).toBeTruthy();\n });\n it('when not set header not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const header = await page.find('q2-item >>> .header');\n\n expect(header).toBeFalsy();\n });\n it('when action and bullet missing CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action-nor-bullet');\n expect(main).toHaveClass('main-no-action-nor-bullet');\n expect(footer).toHaveClass('footer-no-action-nor-bullet');\n });\n });\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let item: E2EElement;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-item clickable>\n <div slot=\"header\">Header Text</div>\n </q2-item>\n `,\n });\n item = await page.find('q2-item');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-item', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await item.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await item.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\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-item />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when slots are used', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <q2-avatar icon=\"home\" slot=\"bullet\">\n </q2-avatar>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <q2-dropdown slot=\"action\" type=\"icon\" label=\"My dropdown\" icon=\"options\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-item>\n `,\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-item-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-item/test/q2-item-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from '@/utils/helpers';\n\ndescribe('q2-item', () => {\n describe('Props', () => {});\n describe('Slots', () => {\n describe('action', () => {\n it('when set content displayed as action', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const action = await page.find('q2-item >>> .action');\n\n expect(item).toEqualText('Test Action');\n expect(action).toBeTruthy();\n });\n it('when removed conatiner removed', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Body</div>\n </q2-item>\n `,\n });\n let actionSlot = await page.find('q2-item > [slot=\"action\"]');\n let actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeTruthy();\n expect(actionContainer).toBeTruthy();\n\n await page.evaluate(() => {\n const actionSlot = document.querySelector('q2-item > [slot=\"action\"]');\n if (actionSlot && actionSlot.parentNode) {\n actionSlot.parentNode.removeChild(actionSlot);\n }\n });\n await page.waitForChanges();\n actionSlot = await page.find('q2-item > [slot=\"action\"]');\n actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeFalsy();\n expect(actionContainer).toBeFalsy();\n });\n it('when not set action not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const action = await page.find('q2-item >>> .action');\n\n expect(action).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action');\n expect(footer).toHaveClass('footer-no-action');\n });\n });\n describe('body', () => {\n it('when set content displayed as body', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const body = await page.find('q2-item >>> .body');\n\n expect(item).toEqualText('Test Body');\n expect(body).toBeTruthy();\n });\n it('when not set body not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const body = await page.find('q2-item >>> .body');\n\n expect(body).toBeFalsy();\n });\n });\n describe('bullet', () => {\n it('when set content displayed as bullet', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(item).toEqualText('Test Bullet');\n expect(bullet).toBeTruthy();\n });\n it('when not set bullet not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(bullet).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const action = await page.find('q2-item >>> .action');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-bullet');\n expect(action).toHaveClass('action-no-bullet');\n expect(main).toHaveClass('main-no-bullet');\n expect(footer).toHaveClass('footer-no-bullet');\n });\n });\n describe('footer', () => {\n it('when set content displayed as footer', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(item).toEqualText('Test Footer');\n expect(footer).toBeTruthy();\n });\n it('when not set footer not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const footer = await page.find('q2-item >>> .footer');\n\n expect(footer).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(itemContainer).toHaveClass('item-no-footer');\n expect(bullet).toHaveClass('bullet-no-footer');\n });\n });\n describe('header/defalult', () => {\n it('when set content displayed as header', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const header = await page.find('q2-item >>> .header');\n\n expect(item).toEqualText('Test Header');\n expect(header).toBeTruthy();\n });\n it('when not set header not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const header = await page.find('q2-item >>> .header');\n\n expect(header).toBeFalsy();\n });\n it('when action and bullet missing CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action-nor-bullet');\n expect(main).toHaveClass('main-no-action-nor-bullet');\n expect(footer).toHaveClass('footer-no-action-nor-bullet');\n });\n });\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let item: E2EElement;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-item clickable>\n <div slot=\"header\">Header Text</div>\n </q2-item>\n `,\n });\n item = await page.find('q2-item');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-item', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await item.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await item.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\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-item />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n\n it('does not have accessibility violations when slots are used', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <q2-avatar icon=\"home\" slot=\"bullet\">\n </q2-avatar>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <q2-dropdown slot=\"action\" type=\"icon\" label=\"My dropdown\" icon=\"options\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-item>\n `,\n });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-item-test.spec.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-item-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-item/test/q2-item-test.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,IAAI,QAAkB,CAAC;IAEvB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;YACvB,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC1E,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,qBAAqB;iBAC9B,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;;;;iBAInE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,+BAA+B;iBACxC,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;;;;iBAInE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2Item } from 'src/components/q2-item/q2-item';\n\ndescribe('q2-item', () => {\n let specPage: SpecPage;\n\n describe('Props', () => {\n describe('clickable', () => {\n it('does not make the item clickable when not provided (default)', async () => {\n specPage = await newSpecPage({\n components: [Q2Item],\n html: `<q2-item></q2-item>`,\n });\n expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`\n <div class=\"item item-no-action-nor-bullet item-no-footer\" test-id=\"itemContainer\">\n <div class=\"main main-no-action-nor-bullet\"></div>\n </div>\n `);\n });\n\n it('makes the item clickable when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Item],\n html: `<q2-item clickable></q2-item>`,\n });\n expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`\n <div class=\"item item-no-action-nor-bullet item-no-footer\" role=\"button\" tabindex=\"0\" test-id=\"itemContainer\">\n <div class=\"main main-no-action-nor-bullet\"></div>\n </div>\n `);\n });\n });\n });\n});\n"]}
|
|
@@ -94,7 +94,7 @@ export class Q2Legend {
|
|
|
94
94
|
// #endregion
|
|
95
95
|
// #region Render Methods
|
|
96
96
|
render() {
|
|
97
|
-
return (h("click-elsewhere", { key: '
|
|
97
|
+
return (h("click-elsewhere", { key: '14c2b27428cc8a8e95bf8df62aac0c235bd65606', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: 'b597b625d0abb353d7752a9ca6ccedc9dc4eea6a' }, this.dataWithClasses.map(item => (h("li", { class: "item" }, h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), h("span", { "test-id": "itemName", class: "item-name" }, item.name), h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
|
|
98
98
|
}
|
|
99
99
|
static get is() { return "q2-legend"; }
|
|
100
100
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-legend.js","sourceRoot":"","sources":["../../../src/components/q2-legend/q2-legend.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\n@Component({\n tag: 'q2-legend',\n shadow: true,\n styleUrl: 'q2-legend.scss',\n})\nexport class Q2Legend implements ComponentInterface {\n // #region State Properties\n\n @State()\n hoveredItemIndex: number = -1;\n\n @State()\n selectedItemIndex: number = -1;\n\n // #endregion\n // #region Public Property API\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** The format of the value displayed in the legend. */\n @Prop({ reflect: true })\n format: 'default' | 'currency' = 'default';\n\n /** The id of the item to set as hovered. */\n @Prop({ reflect: true })\n hoveredItemId: string = null;\n\n /** The id of the item to set as selected. */\n @Prop({ reflect: true })\n selectedItemId: string = null;\n\n // #endregion\n // #region Events\n\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseenter: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseleave: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.watchHoveredItemId(this.hoveredItemId);\n this.watchSelectedItemId(this.selectedItemId);\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('hoveredItemId')\n watchHoveredItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.hoveredItemIndex = newItemIndex;\n }\n\n @Watch('selectedItemId')\n watchSelectedItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.selectedItemIndex = newItemIndex;\n }\n\n // #endregion\n // #region Local Methods\n\n get dataWithClasses() {\n return this.data.map((item, index) => ({\n ...item,\n classes: {\n 'item-button': true,\n 'item-button-faded': this.isItemButtonFaded(index),\n 'item-button-selected': this.isItemButtonSelected(index),\n },\n }));\n }\n\n formatValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n }\n\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n\n getDataIndexForId(id: string) {\n const index = this.data.findIndex(item => item.id === id);\n return index >= 0 ? index : -1;\n }\n\n isItemButtonFaded(index: number) {\n if (this.isItemButtonSelected(index) || index == this.hoveredItemIndex) return false;\n\n if (this.selectedItemIndex >= 0 && this.hoveredItemIndex === -1) return true;\n\n return this.hoveredItemIndex >= 0 && index !== this.hoveredItemIndex;\n }\n\n isItemButtonSelected(index: number) {\n return index === this.selectedItemIndex;\n }\n\n onClick(event: MouseEvent, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n if (this.selectedItemIndex === itemIndex) {\n this.selectedItemIndex = -1;\n if (event.detail === 0) {\n // Keyboard click\n this.hoveredItemIndex = -1;\n } else {\n // Mouse click\n this.hoveredItemIndex = itemIndex;\n }\n this.click.emit(null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n this.click.emit(this.data[itemIndex]);\n }\n\n onClickElsewhere(obj) {\n obj.selectedItemIndex = -1;\n }\n\n onMouseEnter(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = itemIndex;\n this.mouseenter.emit(this.data[itemIndex]);\n }\n\n onMouseLeave(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = -1;\n this.mouseleave.emit(this.data[itemIndex]);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <click-elsewhere onChange={() => this.onClickElsewhere(this)}>\n <ul>\n {this.dataWithClasses.map(item => (\n <li class=\"item\">\n <button\n test-id=\"item\"\n aria-label={`${item.name} ${this.formatValue(item.value)}`}\n class={item.classes}\n onClick={event => this.onClick(event, item)}\n onMouseEnter={event => this.onMouseEnter(event, item)}\n onMouseLeave={event => this.onMouseLeave(event, item)}\n >\n <span\n test-id=\"itemColor\"\n class=\"item-color-indicator\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n <span\n test-id=\"itemName\"\n class=\"item-name\"\n >\n {item.name}\n </span>\n <span\n id={`item-${item.id}`}\n test-id=\"itemValue\"\n class=\"item-value\"\n >\n {this.formatValue(item.value)}\n </span>\n </button>\n </li>\n ))}\n </ul>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-legend.js","sourceRoot":"","sources":["../../../../src/components/q2-legend/q2-legend.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\n@Component({\n tag: 'q2-legend',\n shadow: true,\n styleUrl: 'q2-legend.scss',\n})\nexport class Q2Legend implements ComponentInterface {\n // #region State Properties\n\n @State()\n hoveredItemIndex: number = -1;\n\n @State()\n selectedItemIndex: number = -1;\n\n // #endregion\n // #region Public Property API\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** The format of the value displayed in the legend. */\n @Prop({ reflect: true })\n format: 'default' | 'currency' = 'default';\n\n /** The id of the item to set as hovered. */\n @Prop({ reflect: true })\n hoveredItemId: string = null;\n\n /** The id of the item to set as selected. */\n @Prop({ reflect: true })\n selectedItemId: string = null;\n\n // #endregion\n // #region Events\n\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseenter: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseleave: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.watchHoveredItemId(this.hoveredItemId);\n this.watchSelectedItemId(this.selectedItemId);\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('hoveredItemId')\n watchHoveredItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.hoveredItemIndex = newItemIndex;\n }\n\n @Watch('selectedItemId')\n watchSelectedItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.selectedItemIndex = newItemIndex;\n }\n\n // #endregion\n // #region Local Methods\n\n get dataWithClasses() {\n return this.data.map((item, index) => ({\n ...item,\n classes: {\n 'item-button': true,\n 'item-button-faded': this.isItemButtonFaded(index),\n 'item-button-selected': this.isItemButtonSelected(index),\n },\n }));\n }\n\n formatValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n }\n\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n\n getDataIndexForId(id: string) {\n const index = this.data.findIndex(item => item.id === id);\n return index >= 0 ? index : -1;\n }\n\n isItemButtonFaded(index: number) {\n if (this.isItemButtonSelected(index) || index == this.hoveredItemIndex) return false;\n\n if (this.selectedItemIndex >= 0 && this.hoveredItemIndex === -1) return true;\n\n return this.hoveredItemIndex >= 0 && index !== this.hoveredItemIndex;\n }\n\n isItemButtonSelected(index: number) {\n return index === this.selectedItemIndex;\n }\n\n onClick(event: MouseEvent, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n if (this.selectedItemIndex === itemIndex) {\n this.selectedItemIndex = -1;\n if (event.detail === 0) {\n // Keyboard click\n this.hoveredItemIndex = -1;\n } else {\n // Mouse click\n this.hoveredItemIndex = itemIndex;\n }\n this.click.emit(null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n this.click.emit(this.data[itemIndex]);\n }\n\n onClickElsewhere(obj) {\n obj.selectedItemIndex = -1;\n }\n\n onMouseEnter(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = itemIndex;\n this.mouseenter.emit(this.data[itemIndex]);\n }\n\n onMouseLeave(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = -1;\n this.mouseleave.emit(this.data[itemIndex]);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <click-elsewhere onChange={() => this.onClickElsewhere(this)}>\n <ul>\n {this.dataWithClasses.map(item => (\n <li class=\"item\">\n <button\n test-id=\"item\"\n aria-label={`${item.name} ${this.formatValue(item.value)}`}\n class={item.classes}\n onClick={event => this.onClick(event, item)}\n onMouseEnter={event => this.onMouseEnter(event, item)}\n onMouseLeave={event => this.onMouseLeave(event, item)}\n >\n <span\n test-id=\"itemColor\"\n class=\"item-color-indicator\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n <span\n test-id=\"itemName\"\n class=\"item-name\"\n >\n {item.name}\n </span>\n <span\n id={`item-${item.id}`}\n test-id=\"itemValue\"\n class=\"item-value\"\n >\n {this.formatValue(item.value)}\n </span>\n </button>\n </li>\n ))}\n </ul>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-legend-test.e2e.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-legend-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-legend/test/q2-legend-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,MAAM,QAAQ,GAAG;QACb,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;QAC7D,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QAC1D,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;KAC9D,CAAC;IAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAiC,CAAC;gBAC9E,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAE/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from '@/utils/helpers';\n\ndescribe('q2-legend', () => {\n const testData = [\n { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },\n { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },\n { color: 'green', id: 'item3', name: 'Item 3', value: 300 },\n ];\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-legend />` });\n const legend = (await page.find('q2-legend')) as E2EElement & { data: any[] };\n legend.setProperty('data', testData);\n await page.waitForChanges();\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-legend-test.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-legend/test/q2-legend-test.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { Q2Legend } from '../q2-legend';\n\ndescribe('q2-legend', () => {\n const setupSpecPage = async (attributes = {}) => {\n const page = await newSpecPage({\n components: [Q2Legend],\n template: () => (\n <q2-legend\n data={testData}\n {...attributes}\n />\n ),\n });\n page.waitForChanges();\n\n return page;\n };\n\n const testData = [\n { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },\n { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },\n { color: 'green', id: 'item3', name: 'Item 3', value: 300 },\n ];\n\n describe('Props', () => {\n describe('data', () => {\n it('when set set legend items rendered', async () => {\n const page = await setupSpecPage();\n const legendItems = page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const legendItemColor = legendItems[0].querySelector('[test-id=\"itemColor\"]')?.getAttribute('style');\n const legendItemName = legendItems[0].querySelector('[test-id=\"itemName\"]').innerHTML;\n const legendItemValue = legendItems[0].querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItems).toHaveLength(testData.length);\n expect(legendItemColor).toContain(`background-color: ${testData[0].color}`);\n expect(legendItemName).toEqual(testData[0].name);\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n });\n\n describe('format', () => {\n it('when set to \"default\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'default' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n it('when set to \"currency\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'currency' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(\n Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(testData[0].value)\n );\n });\n });\n\n describe('hoveredItemId', () => {\n it('when set to existing index all items except the corresponding item should be faded', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is highlighted', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.hoveredItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n\n describe('selectedItemId', () => {\n it('when set to existing index the corresponding item should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is selected', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.selectedItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n it('when a legend item is clicked an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('click', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n await legendItemButton.click();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseenter', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseenter', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseenterEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseleave', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseleave', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseleaveEvent = new MouseEvent('mouseleave', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseleaveEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n });\n\n describe('Behavior', () => {\n it('when a legend item is clicked it should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend item is clicked it should be deselected and the other items should remain faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend is deselected via the keyboard no items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const keyboardSelectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardSelectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const keyboardUnselectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardUnselectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n it('when a legend item is hovered over all other items should be faded except for selected items', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const secondLegendItemButton = legendItemButtons[1];\n await secondLegendItemButton.click();\n await page.waitForChanges();\n const firstLegendItemButton = legendItemButtons[0];\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await firstLegendItemButton.dispatchEvent(mouseenterEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n expect(item).not.toHaveClass('item-button-selected');\n } else if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('after clicking outside of the legend all items should not be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const clickElsewhere = page.root.shadowRoot.querySelector('click-elsewhere');\n const changeEvent = new Event('change');\n await clickElsewhere.dispatchEvent(changeEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-legend-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-legend/test/q2-legend-test.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { Q2Legend } from '../q2-legend';\n\ndescribe('q2-legend', () => {\n const setupSpecPage = async (attributes = {}) => {\n const page = await newSpecPage({\n components: [Q2Legend],\n template: () => (\n <q2-legend\n data={testData}\n {...attributes}\n />\n ),\n });\n page.waitForChanges();\n\n return page;\n };\n\n const testData = [\n { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },\n { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },\n { color: 'green', id: 'item3', name: 'Item 3', value: 300 },\n ];\n\n describe('Props', () => {\n describe('data', () => {\n it('when set set legend items rendered', async () => {\n const page = await setupSpecPage();\n const legendItems = page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const legendItemColor = legendItems[0].querySelector('[test-id=\"itemColor\"]')?.getAttribute('style');\n const legendItemName = legendItems[0].querySelector('[test-id=\"itemName\"]').innerHTML;\n const legendItemValue = legendItems[0].querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItems).toHaveLength(testData.length);\n expect(legendItemColor).toContain(`background-color: ${testData[0].color}`);\n expect(legendItemName).toEqual(testData[0].name);\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n });\n\n describe('format', () => {\n it('when set to \"default\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'default' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n it('when set to \"currency\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'currency' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(\n Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(testData[0].value)\n );\n });\n });\n\n describe('hoveredItemId', () => {\n it('when set to existing index all items except the corresponding item should be faded', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is highlighted', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.hoveredItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n\n describe('selectedItemId', () => {\n it('when set to existing index the corresponding item should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is selected', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.selectedItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n it('when a legend item is clicked an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('click', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n await legendItemButton.click();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseenter', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseenter', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseenterEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseleave', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseleave', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseleaveEvent = new MouseEvent('mouseleave', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseleaveEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n });\n\n describe('Behavior', () => {\n it('when a legend item is clicked it should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend item is clicked it should be deselected and the other items should remain faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend is deselected via the keyboard no items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const keyboardSelectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardSelectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const keyboardUnselectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardUnselectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n it('when a legend item is hovered over all other items should be faded except for selected items', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const secondLegendItemButton = legendItemButtons[1];\n await secondLegendItemButton.click();\n await page.waitForChanges();\n const firstLegendItemButton = legendItemButtons[0];\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await firstLegendItemButton.dispatchEvent(mouseenterEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n expect(item).not.toHaveClass('item-button-selected');\n } else if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('after clicking outside of the legend all items should not be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const clickElsewhere = page.root.shadowRoot.querySelector('click-elsewhere');\n const changeEvent = new Event('change');\n await clickElsewhere.dispatchEvent(changeEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-link.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-link.js","sourceRoot":"","sources":["../../../../src/components/q2-link/q2-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** The disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = '#';\n\n /** The label to display. */\n @Prop({ reflect: true })\n label: string;\n\n /** The [referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy) */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** The target. */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** The title attribute on a tag in shadowRoot. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** The value link to display. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event()\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes() {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return this.variant === 'standalone' ? (\n <div\n class={this.classes}\n aria-label={this.label}\n >\n <a\n class=\"link\"\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n <span class=\"label\">{this.label}</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n ) : (\n <a\n class={this.classes}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-link-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-link/test/q2-link-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { setup, evaluateA11y, getListOfStyleCompilationIssues } from '@/utils/helpers';\nimport { Q2Link } from '../q2-link';\n\nfunction createNewSpecPage(props: {\n label?: string;\n href?: string;\n target?: string;\n variant?: string;\n referrerpolicy?: string;\n disabled?: boolean;\n}) {\n let htmlProps: string = '';\n if (!!props.label) {\n htmlProps += ` label=\"${props.label}\"`;\n }\n if (!!props.href) {\n htmlProps += ` href=\"${props.href}\"`;\n }\n if (!!props.target) {\n htmlProps += ` target=\"${props.target}\"`;\n }\n if (!!props.variant) {\n htmlProps += ` variant=\"${props.variant || 'inline'}\"`;\n }\n if (!!props.referrerpolicy) {\n htmlProps += ` referrerpolicy=\"${props.referrerpolicy}\"`;\n }\n if (!!props.disabled) {\n htmlProps += ` disabled=\"\"`;\n }\n\n return newSpecPage({\n components: [Q2Link],\n html: `<q2-link ${htmlProps}></q2-link>`,\n });\n}\n\ndescribe('q2-link', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-link></q2-link>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-link')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations for inline variant(default)', async () => {\n const page = await setup({ html: `<q2-link label=\"Click me\" href=\"https://q2.com\" />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n it('Does not have accessibility violations for standalone variant', async () => {\n const page = await setup({\n html: `<q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\" />`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n let page: SpecPage;\n\n it('renders', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n variant: 'standalone',\n });\n\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\">\n <mock:shadow-root>\n <div aria-label=\"Click me\" class=\"link-container standalone\">\n <a class=\"link\" href=\"https://q2.com\" target=\"_self\" test-id=\"linkAnchor\">\n <span class=\"label\">Click me</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n\n describe('Props', () => {\n it('should render with properties', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n variant: 'standalone',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root.href).toBe('https://q2.com');\n expect(page.root.target).toBe('_blank');\n expect(page.root.variant).toBe('standalone');\n expect(page.root.referrerpolicy).toBe('no-referrer');\n });\n it('should render with standalone variant', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n variant: 'standalone',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\" target=\"_blank\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <div aria-label=\"Click me\" class=\"link-container standalone\">\n <a class=\"link\" href=\"https://q2.com\" target=\"_blank\" referrerpolicy=\"no-referrer\" test-id=\"linkAnchor\">\n <span class=\"label\">Click me</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n it('should render with inline variant', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"inline\" target=\"_blank\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <a href=\"https://q2.com\" target=\"_blank\" class=\"link-container inline\" referrerpolicy=\"no-referrer\" test-id=\"linkAnchor\">\n Click me\n </a>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n });\n\n describe('Test methods', () => {\n it('clickLink()', async () => {\n const page = await setup({\n html: `\n <q2-link label=\"Click me\"\n href=\"https://q2.com\"\n variant=\"inline\"\n target=\"_blank\"\n referrerpolicy=\"no-referrer\">\n </q2-link>\n `,\n });\n await page.waitForChanges();\n const sortSpy = await page.spyOnEvent('tctClick');\n const link = await page.find('q2-link');\n await link.callMethod('clickLink');\n await page.waitForChanges();\n expect(sortSpy).toHaveReceivedEventTimes(1);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-link-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-link/test/q2-link-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { setup, evaluateA11y, getListOfStyleCompilationIssues } from '@/utils/helpers';\nimport { Q2Link } from '../q2-link';\n\nfunction createNewSpecPage(props: {\n label?: string;\n href?: string;\n target?: string;\n variant?: string;\n referrerpolicy?: string;\n disabled?: boolean;\n}) {\n let htmlProps: string = '';\n if (!!props.label) {\n htmlProps += ` label=\"${props.label}\"`;\n }\n if (!!props.href) {\n htmlProps += ` href=\"${props.href}\"`;\n }\n if (!!props.target) {\n htmlProps += ` target=\"${props.target}\"`;\n }\n if (!!props.variant) {\n htmlProps += ` variant=\"${props.variant || 'inline'}\"`;\n }\n if (!!props.referrerpolicy) {\n htmlProps += ` referrerpolicy=\"${props.referrerpolicy}\"`;\n }\n if (!!props.disabled) {\n htmlProps += ` disabled=\"\"`;\n }\n\n return newSpecPage({\n components: [Q2Link],\n html: `<q2-link ${htmlProps}></q2-link>`,\n });\n}\n\ndescribe('q2-link', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-link></q2-link>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-link')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations for inline variant(default)', async () => {\n const page = await setup({ html: `<q2-link label=\"Click me\" href=\"https://q2.com\" />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n it('Does not have accessibility violations for standalone variant', async () => {\n const page = await setup({\n html: `<q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\" />`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n let page: SpecPage;\n\n it('renders', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n variant: 'standalone',\n });\n\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\">\n <mock:shadow-root>\n <div aria-label=\"Click me\" class=\"link-container standalone\">\n <a class=\"link\" href=\"https://q2.com\" target=\"_self\" test-id=\"linkAnchor\">\n <span class=\"label\">Click me</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n\n describe('Props', () => {\n it('should render with properties', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n variant: 'standalone',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root.href).toBe('https://q2.com');\n expect(page.root.target).toBe('_blank');\n expect(page.root.variant).toBe('standalone');\n expect(page.root.referrerpolicy).toBe('no-referrer');\n });\n it('should render with standalone variant', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n variant: 'standalone',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"standalone\" target=\"_blank\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <div aria-label=\"Click me\" class=\"link-container standalone\">\n <a class=\"link\" href=\"https://q2.com\" target=\"_blank\" referrerpolicy=\"no-referrer\" test-id=\"linkAnchor\">\n <span class=\"label\">Click me</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n it('should render with inline variant', async () => {\n page = await createNewSpecPage({\n label: 'Click me',\n href: 'https://q2.com',\n target: '_blank',\n referrerpolicy: 'no-referrer',\n });\n expect(page.root.label).toBe('Click me');\n expect(page.root).toEqualHtml(`\n <q2-link label=\"Click me\" href=\"https://q2.com\" variant=\"inline\" target=\"_blank\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <a href=\"https://q2.com\" target=\"_blank\" class=\"link-container inline\" referrerpolicy=\"no-referrer\" test-id=\"linkAnchor\">\n Click me\n </a>\n </mock:shadow-root>\n </q2-link>\n `);\n });\n });\n\n describe('Test methods', () => {\n it('clickLink()', async () => {\n const page = await setup({\n html: `\n <q2-link label=\"Click me\"\n href=\"https://q2.com\"\n variant=\"inline\"\n target=\"_blank\"\n referrerpolicy=\"no-referrer\">\n </q2-link>\n `,\n });\n await page.waitForChanges();\n const sortSpy = await page.spyOnEvent('tctClick');\n const link = await page.find('q2-link');\n await link.callMethod('clickLink');\n await page.waitForChanges();\n expect(sortSpy).toHaveReceivedEventTimes(1);\n });\n });\n});\n"]}
|
|
@@ -63,7 +63,7 @@ export class Q2List {
|
|
|
63
63
|
// #endregion
|
|
64
64
|
// #region Render Methods
|
|
65
65
|
render() {
|
|
66
|
-
return (h("div", { key: '
|
|
66
|
+
return (h("div", { key: 'a748db824284ab2660f437fa8687dd274247d61c', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: '71e253d36bade6a67869db2562534728d51e4db3', class: this.headerClasses }, h("div", { key: '1cae46b23e094964fccbb404fc96c33d31485b16', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: 'e2697d250030f34b125df9a5af14f29d733e1c72', name: "filter" }))), h("div", { key: '9b2ab45f809fa53a00cfd2fa967402b09da70ffa', role: "list" }, h("slot", { key: '6ce5ba056277fca5a01cd7a94f832bc68ef16078' }))));
|
|
67
67
|
}
|
|
68
68
|
static get is() { return "q2-list"; }
|
|
69
69
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-list.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"q2-list.js","sourceRoot":"","sources":["../../../../src/components/q2-list/q2-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|