q2-tecton-elements 1.38.1 → 1.39.0
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 +1 -1
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-09c712ea.js → index-9113a9da.js} +2 -2
- package/dist/cjs/{index-09c712ea.js.map → index-9113a9da.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +11 -2
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +20 -23
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +30 -4
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +14 -14
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +43 -21
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +7 -4
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +1 -1
- 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-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +4 -4
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js.map +1 -1
- package/dist/collection/components/click-elsewhere/index.js +1 -1
- package/dist/collection/components/click-elsewhere/index.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/index.js +6 -3
- package/dist/collection/components/q2-action-sheet/index.js.map +1 -1
- package/dist/collection/components/q2-btn/styles.css +11 -11
- package/dist/collection/components/q2-calendar/index.js +23 -11
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-card/index.js +21 -27
- package/dist/collection/components/q2-card/index.js.map +1 -1
- package/dist/collection/components/q2-card/styles.css +57 -0
- package/dist/collection/components/q2-carousel/index.js +33 -5
- package/dist/collection/components/q2-carousel/index.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/index.js +8 -4
- package/dist/collection/components/q2-carousel-pane/index.js.map +1 -1
- package/dist/collection/components/q2-chart-area/index.js +9 -4
- package/dist/collection/components/q2-chart-area/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +58 -22
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox/index.js +5 -2
- package/dist/collection/components/q2-checkbox/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +12 -5
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/index.js +73 -29
- package/dist/collection/components/q2-data-table/index.js.map +1 -1
- package/dist/collection/components/q2-editable-field/index.js +6 -6
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +23 -19
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-input/styles.css +3 -0
- package/dist/collection/components/q2-input/types.js.map +1 -1
- package/dist/collection/components/q2-option/index.js +5 -2
- package/dist/collection/components/q2-option/index.js.map +1 -1
- package/dist/collection/components/q2-option-list/index.js +15 -9
- package/dist/collection/components/q2-option-list/index.js.map +1 -1
- package/dist/collection/components/q2-pagination/index.js +8 -5
- package/dist/collection/components/q2-pagination/index.js.map +1 -1
- package/dist/collection/components/q2-pill/index.js +5 -2
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-popover/index.js +1 -1
- package/dist/collection/components/q2-popover/index.js.map +1 -1
- package/dist/collection/components/q2-radio/index.js +3 -3
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +7 -4
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-section/index.js +7 -4
- package/dist/collection/components/q2-section/index.js.map +1 -1
- package/dist/collection/components/q2-section/styles.css +8 -6
- package/dist/collection/components/q2-select/index.js +8 -5
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-stepper/index.js +5 -2
- package/dist/collection/components/q2-stepper/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/index.js +11 -8
- package/dist/collection/components/q2-stepper-pane/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/index.js +13 -6
- package/dist/collection/components/q2-stepper-vertical/index.js.map +1 -1
- package/dist/collection/components/q2-tab-container/index.js +14 -8
- package/dist/collection/components/q2-tab-container/index.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/index.js +5 -2
- package/dist/collection/components/q2-tab-pane/index.js.map +1 -1
- package/dist/collection/components/q2-tag/index.js +1 -1
- package/dist/collection/components/q2-tag/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/index.js +14 -8
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/index.js +5 -2
- package/dist/collection/components/tecton-tab-pane/index.js.map +1 -1
- package/dist/collection/utils/index.js +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index13.js.map +1 -1
- package/dist/components/index14.js.map +1 -1
- package/dist/components/index15.js.map +1 -1
- package/dist/components/index16.js +1 -1
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/index5.js +1 -1
- package/dist/components/index5.js.map +1 -1
- package/dist/components/index6.js.map +1 -1
- package/dist/components/index9.js +6 -3
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +10 -1
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card.js +19 -22
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +32 -4
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-donut.js +16 -15
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +43 -21
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-section.js +1 -1
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +3 -3
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js.map +1 -1
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +1 -1
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-84f1034e.js → index-fbe28822.js} +2 -2
- package/dist/esm/{index-84f1034e.js.map → index-fbe28822.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +11 -2
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +20 -23
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +30 -4
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +14 -14
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +43 -21
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +7 -4
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +1 -1
- 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-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +4 -4
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tab-pane.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/p-0253a00b.entry.js +2 -0
- package/dist/q2-tecton-elements/p-0253a00b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-72b4ecc6.entry.js → p-07229496.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-07229496.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-a6b03db1.entry.js → p-0ecff52c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a6b03db1.entry.js.map → p-0ecff52c.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-f198f77b.entry.js → p-1179b32c.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-1179b32c.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-311f37e2.entry.js → p-15c69543.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9220365b.entry.js → p-212c6301.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-212c6301.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-3090b655.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3090b655.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-8f8d5362.entry.js → p-3569e648.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3569e648.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0cade28b.entry.js → p-36bff57a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-57e81863.entry.js → p-39e94e12.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-57e81863.entry.js.map → p-39e94e12.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-3f20d610.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3f20d610.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-29a7ca63.entry.js → p-44c2d7a2.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-29a7ca63.entry.js.map → p-44c2d7a2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-deb773a5.entry.js → p-461dca3d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-deb773a5.entry.js.map → p-461dca3d.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-3d82d94f.entry.js → p-5964fd50.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3d82d94f.entry.js.map → p-5964fd50.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e98d9cf2.entry.js → p-5b4c30b8.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5b4c30b8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-69dcf12e.entry.js → p-5d6c2534.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5d6c2534.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-a09c90c1.entry.js → p-66bc9475.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a09c90c1.entry.js.map → p-66bc9475.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e4dadcd7.entry.js → p-6ba6d83e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-6ba6d83e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-5843f6c8.entry.js → p-78d5707b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-78d5707b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-85dc889e.entry.js → p-7e276297.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-7e276297.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-059ea7c9.entry.js → p-81e36fcd.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8f273db2.entry.js → p-88b303a7.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8f273db2.entry.js.map → p-88b303a7.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-9889692d.entry.js +2 -0
- package/dist/q2-tecton-elements/p-9889692d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-9da0db14.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{p-c057134f.entry.js → p-9dff6592.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-9dff6592.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-145849d0.entry.js → p-a5a23edc.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a5a23edc.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-db3bbfb8.entry.js → p-a9c40d3b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a9c40d3b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-15179d55.entry.js → p-aa96f160.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5c033ed9.entry.js → p-b3a32a46.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5c033ed9.entry.js.map → p-b3a32a46.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-f3868a77.entry.js → p-b6ed1342.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f3868a77.entry.js.map → p-b6ed1342.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-52132d80.entry.js → p-ba19d09f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ba19d09f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-81b917a5.entry.js → p-cc7ba0cb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-107f07f2.entry.js → p-ce009987.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-d7fb3534.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{p-959f47ef.entry.js → p-de7352f5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6ae87415.entry.js → p-ef2e2991.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b83568e7.entry.js → p-f1479052.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-f1479052.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f34521a4.js → p-fb903495.js} +2 -2
- package/dist/q2-tecton-elements/{p-f34521a4.js.map → p-fb903495.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-2812f9d2.entry.js → p-ff137358.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ff137358.entry.js.map +1 -0
- 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/test/elements/q2-btn-test.e2e.js +31 -0
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-card-test.e2e.js +69 -11
- package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-test.e2e.js +41 -3
- package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -9
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-data-table-test.e2e.js +91 -2
- package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +165 -67
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/helpers.js +48 -0
- package/dist/test/helpers.js.map +1 -1
- package/dist/types/components/click-elsewhere/index.d.ts +3 -0
- package/dist/types/components/q2-action-sheet/index.d.ts +7 -0
- package/dist/types/components/q2-calendar/index.d.ts +23 -3
- package/dist/types/components/q2-card/index.d.ts +14 -4
- package/dist/types/components/q2-carousel/index.d.ts +8 -0
- package/dist/types/components/q2-carousel-pane/index.d.ts +7 -1
- package/dist/types/components/q2-chart-area/index.d.ts +7 -1
- package/dist/types/components/q2-chart-donut/index.d.ts +18 -3
- package/dist/types/components/q2-checkbox/index.d.ts +4 -0
- package/dist/types/components/q2-checkbox-group/index.d.ts +8 -1
- package/dist/types/components/q2-data-table/index.d.ts +43 -3
- package/dist/types/components/q2-editable-field/index.d.ts +18 -2
- package/dist/types/components/q2-input/index.d.ts +19 -2
- package/dist/types/components/q2-input/types.d.ts +1 -0
- package/dist/types/components/q2-option/index.d.ts +4 -0
- package/dist/types/components/q2-option-list/index.d.ts +15 -1
- package/dist/types/components/q2-pagination/index.d.ts +8 -2
- package/dist/types/components/q2-pill/index.d.ts +4 -0
- package/dist/types/components/q2-popover/index.d.ts +3 -0
- package/dist/types/components/q2-radio/index.d.ts +6 -1
- package/dist/types/components/q2-radio-group/index.d.ts +7 -1
- package/dist/types/components/q2-section/index.d.ts +7 -1
- package/dist/types/components/q2-select/index.d.ts +16 -1
- package/dist/types/components/q2-stepper/index.d.ts +4 -0
- package/dist/types/components/q2-stepper-pane/index.d.ts +11 -1
- package/dist/types/components/q2-stepper-vertical/index.d.ts +10 -2
- package/dist/types/components/q2-tab-container/index.d.ts +12 -2
- package/dist/types/components/q2-tab-pane/index.d.ts +4 -0
- package/dist/types/components/q2-tag/index.d.ts +5 -0
- package/dist/types/components/q2-textarea/index.d.ts +14 -2
- package/dist/types/components/tecton-tab-pane/index.d.ts +4 -0
- package/dist/types/components.d.ts +223 -27
- package/dist/types/workspace/workspace/{tecton-production_release_1.38.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
- package/package.json +4 -3
- package/dist/q2-tecton-elements/p-072bda73.entry.js +0 -2
- package/dist/q2-tecton-elements/p-072bda73.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-145849d0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-14e3c48f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-14e3c48f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2812f9d2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-52132d80.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5843f6c8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-69dcf12e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-72b4ecc6.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-85dc889e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-8f8d5362.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-9220365b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a4017e55.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a4017e55.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-af98db79.entry.js +0 -2
- package/dist/q2-tecton-elements/p-af98db79.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b83568e7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c057134f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-db3bbfb8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e4dadcd7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e98d9cf2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f198f77b.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-311f37e2.entry.js.map → p-15c69543.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0cade28b.entry.js.map → p-36bff57a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-059ea7c9.entry.js.map → p-81e36fcd.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-15179d55.entry.js.map → p-aa96f160.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-81b917a5.entry.js.map → p-cc7ba0cb.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-107f07f2.entry.js.map → p-ce009987.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-959f47ef.entry.js.map → p-de7352f5.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6ae87415.entry.js.map → p-ef2e2991.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","options","bootstrapLazy","JSON","parse"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v3.4.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim) {\n // shim css vars\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = \n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})['data-opts'] || {} : {};\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n var _a;\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n // Apply CSP nonce to the script tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n script.setAttribute('nonce', nonce);\n }\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"sFAmBA,MAAMA,EAAe,KAkCjB,MAAMC,cAAyBC,IAC/B,MAAMC,EAAqE,GAiB3E,GAAuBF,IAAe,GAAI,CACtCE,EAAKC,aAAe,IAAIC,IAAI,IAAKJ,GAAYK,IAGrD,CAcI,OAAOC,EAAeJ,EAAK,ECrF/BH,IAAeQ,MAAKC,GAEXC,EAAcC,KAAAC,MAAA,
|
|
1
|
+
{"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","options","bootstrapLazy","JSON","parse"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v3.4.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim) {\n // shim css vars\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = \n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})['data-opts'] || {} : {};\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n var _a;\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n // Apply CSP nonce to the script tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n script.setAttribute('nonce', nonce);\n }\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"sFAmBA,MAAMA,EAAe,KAkCjB,MAAMC,cAAyBC,IAC/B,MAAMC,EAAqE,GAiB3E,GAAuBF,IAAe,GAAI,CACtCE,EAAKC,aAAe,IAAIC,IAAI,IAAKJ,GAAYK,IAGrD,CAcI,OAAOC,EAAeJ,EAAK,ECrF/BH,IAAeQ,MAAKC,GAEXC,EAAcC,KAAAC,MAAA,m/fAAuCH"}
|
|
@@ -310,6 +310,37 @@ describe('q2-btn', () => {
|
|
|
310
310
|
expect(innerButton).toEqualAttribute('aria-pressed', 'true');
|
|
311
311
|
});
|
|
312
312
|
});
|
|
313
|
+
describe('size', () => {
|
|
314
|
+
beforeEach(async () => {
|
|
315
|
+
page = await setup({
|
|
316
|
+
html: `<q2-btn size='small' ></q2-btn>`,
|
|
317
|
+
});
|
|
318
|
+
button = await page.find('q2-btn');
|
|
319
|
+
});
|
|
320
|
+
describe('does not have font size overwritten', () => {
|
|
321
|
+
it(' when size set to small', async () => {
|
|
322
|
+
button.setProperty('size', 'small');
|
|
323
|
+
await page.waitForChanges();
|
|
324
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
325
|
+
const buttonCss = await innerButton.getComputedStyle();
|
|
326
|
+
expect(buttonCss.fontSize).toEqual('14px');
|
|
327
|
+
});
|
|
328
|
+
it(' when size set to medium', async () => {
|
|
329
|
+
button.setProperty('size', 'medium');
|
|
330
|
+
await page.waitForChanges();
|
|
331
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
332
|
+
const buttonCss = await innerButton.getComputedStyle();
|
|
333
|
+
expect(buttonCss.fontSize).toEqual('16px');
|
|
334
|
+
});
|
|
335
|
+
it(' when size set to large', async () => {
|
|
336
|
+
button.setProperty('size', 'large');
|
|
337
|
+
await page.waitForChanges();
|
|
338
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
339
|
+
const buttonCss = await innerButton.getComputedStyle();
|
|
340
|
+
expect(buttonCss.fontSize).toEqual('20px');
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
});
|
|
313
344
|
});
|
|
314
345
|
describe('description', () => {
|
|
315
346
|
beforeEach(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('sets aria-haspopup to true when provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='menu'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='true'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('sets aria-haspopup to false when not provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='listbox'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='false'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n describe('calls console.warn for deprecated `size` prop', () => {\n it('if set to number 1-4 by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn size='1'></q2-btn>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('if set to number 1-4 after componentDidLoad by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n button.setProperty('size', '3');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n describe('does not call console.warn for deprecated `size` prop', () => {\n it('if number never set on component prop', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n warnMock.mockReset();\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('sets aria-haspopup to true when provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='menu'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='true'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('sets aria-haspopup to false when not provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='listbox'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='false'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n\n describe('size', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn size='small' ></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('does not have font size overwritten', () => {\n it(' when size set to small', async () => {\n button.setProperty('size', 'small');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('14px');\n });\n it(' when size set to medium', async () => {\n button.setProperty('size', 'medium');\n\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('16px');\n });\n it(' when size set to large', async () => {\n button.setProperty('size', 'large');\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n expect(buttonCss.fontSize).toEqual('20px');\n });\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n describe('calls console.warn for deprecated `size` prop', () => {\n it('if set to number 1-4 by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn size='1'></q2-btn>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('if set to number 1-4 after componentDidLoad by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n button.setProperty('size', '3');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n describe('does not call console.warn for deprecated `size` prop', () => {\n it('if number never set on component prop', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n warnMock.mockReset();\n });\n });\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { setup, dispatchEvent, getActiveElementTestId, base64Image } from '../helpers';
|
|
1
|
+
import { setup, dispatchEvent, getActiveElementTestId, base64Image, getNestedElementStyle } from '../helpers';
|
|
2
2
|
describe('q2-card', () => {
|
|
3
3
|
describe('focus', () => {
|
|
4
4
|
let page;
|
|
@@ -50,7 +50,7 @@ describe('q2-card', () => {
|
|
|
50
50
|
expect(clickableElement.className).not.toContain('is-small');
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
|
-
describe('
|
|
53
|
+
describe('Events', () => {
|
|
54
54
|
describe('click', () => {
|
|
55
55
|
let page;
|
|
56
56
|
let card;
|
|
@@ -75,7 +75,7 @@ describe('q2-card', () => {
|
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
});
|
|
78
|
-
describe('
|
|
78
|
+
describe('Props', () => {
|
|
79
79
|
describe('isStatic', () => {
|
|
80
80
|
describe('when not provided', () => {
|
|
81
81
|
it('adds padding', async () => {
|
|
@@ -139,17 +139,75 @@ describe('q2-card', () => {
|
|
|
139
139
|
const bar = await page.find('q2-card >>> [test-id=bar]');
|
|
140
140
|
expect(bar).toBeTruthy();
|
|
141
141
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
const constantColors = [
|
|
143
|
+
{ propValue: 'info', expectedColor: 'rgb(0, 0, 1)' },
|
|
144
|
+
{ propValue: 'success', expectedColor: 'rgb(0, 0, 2)' },
|
|
145
|
+
{ propValue: 'warning', expectedColor: 'rgb(0, 0, 3)' },
|
|
146
|
+
{ propValue: 'alert', expectedColor: 'rgb(0, 0, 4)' },
|
|
147
|
+
];
|
|
148
|
+
const themeColors = [
|
|
149
|
+
{ propValue: 'primary', expectedColor: 'rgb(0, 0, 5)' },
|
|
150
|
+
{ propValue: 'secondary', expectedColor: 'rgb(0, 0, 6)' },
|
|
151
|
+
{ propValue: 'tertiary', expectedColor: 'rgb(0, 0, 7)' },
|
|
152
|
+
{ propValue: 'accent-1', expectedColor: 'rgb(0, 0, 8)' },
|
|
153
|
+
{ propValue: 'accent-2', expectedColor: 'rgb(0, 0, 9)' },
|
|
154
|
+
{ propValue: 'accent-3', expectedColor: 'rgb(0, 0, 10)' },
|
|
155
|
+
{ propValue: 'accent-4', expectedColor: 'rgb(0, 0, 11)' },
|
|
156
|
+
{ propValue: 'accent-5', expectedColor: 'rgb(0, 0, 12)' },
|
|
157
|
+
{ propValue: 'accent-6', expectedColor: 'rgb(0, 0, 13)' },
|
|
158
|
+
{ propValue: 'accent-7', expectedColor: 'rgb(0, 0, 14)' },
|
|
159
|
+
{ propValue: 'accent-8', expectedColor: 'rgb(0, 0, 15)' },
|
|
160
|
+
{ propValue: 'accent-9', expectedColor: 'rgb(0, 0, 16)' },
|
|
161
|
+
{ propValue: 'accent-10', expectedColor: 'rgb(0, 0, 17)' },
|
|
162
|
+
{ propValue: 'accent-11', expectedColor: 'rgb(0, 0, 18)' },
|
|
163
|
+
{ propValue: 'accent-12', expectedColor: 'rgb(0, 0, 19)' },
|
|
164
|
+
];
|
|
165
|
+
const predefinedColors = [...constantColors, ...themeColors];
|
|
166
|
+
predefinedColors.forEach(color => {
|
|
167
|
+
const { propValue, expectedColor } = color;
|
|
168
|
+
it(`on load accepts predefined ${propValue} color`, async () => {
|
|
169
|
+
const page = await setup({
|
|
170
|
+
html: `
|
|
171
|
+
<q2-card bar="${propValue}" style="--tct-card-bar-color-${propValue}: ${expectedColor}"></q2-card>
|
|
172
|
+
`,
|
|
173
|
+
});
|
|
174
|
+
const barBackgroundColor = await getNestedElementStyle(page, ['q2-card', '[test-id=bar]'], 'backgroundColor');
|
|
175
|
+
expect(barBackgroundColor).toEqual(expectedColor);
|
|
176
|
+
});
|
|
177
|
+
it(`after load accepts predefined ${propValue} color`, async () => {
|
|
178
|
+
const page = await setup({
|
|
179
|
+
html: `
|
|
180
|
+
<q2-card style="--tct-card-bar-color-${propValue}: ${expectedColor}"></q2-card>
|
|
181
|
+
`,
|
|
182
|
+
});
|
|
183
|
+
const card = await page.find('q2-card');
|
|
184
|
+
card.setAttribute('bar', propValue);
|
|
185
|
+
await page.waitForChanges();
|
|
186
|
+
const barBackgroundColor = await getNestedElementStyle(page, ['q2-card', '[test-id=bar]'], 'backgroundColor');
|
|
187
|
+
expect(barBackgroundColor).toEqual(expectedColor);
|
|
145
188
|
});
|
|
146
|
-
expect(await getBarColor(page)).toEqual('var(--t-primary)');
|
|
147
189
|
});
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
190
|
+
constantColors.forEach(color => {
|
|
191
|
+
it(`predefined color ${color.propValue} falls back to --const-stoplight-${color.propValue}`, async () => {
|
|
192
|
+
const page = await setup({
|
|
193
|
+
html: `
|
|
194
|
+
<q2-card bar="${color.propValue}" style="--const-stoplight-${color.propValue}: ${color.expectedColor}"></q2-card>
|
|
195
|
+
`,
|
|
196
|
+
});
|
|
197
|
+
const barBackgroundColor = await getNestedElementStyle(page, ['q2-card', '[test-id=bar]'], 'backgroundColor');
|
|
198
|
+
expect(barBackgroundColor).toEqual(color.expectedColor);
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
themeColors.forEach(color => {
|
|
202
|
+
it(`predefined color ${color.propValue} falls back to --t-${color.propValue}`, async () => {
|
|
203
|
+
const page = await setup({
|
|
204
|
+
html: `
|
|
205
|
+
<q2-card bar="${color.propValue}" style="--t-${color.propValue}: ${color.expectedColor}"></q2-card>
|
|
206
|
+
`,
|
|
207
|
+
});
|
|
208
|
+
const barBackgroundColor = await getNestedElementStyle(page, ['q2-card', '[test-id=bar]'], 'backgroundColor');
|
|
209
|
+
expect(barBackgroundColor).toEqual(color.expectedColor);
|
|
151
210
|
});
|
|
152
|
-
expect(await getBarColor(page)).toEqual('var(--t-primary)');
|
|
153
211
|
});
|
|
154
212
|
it('accepts hex value', async () => {
|
|
155
213
|
const page = await setup({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-card-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-card-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { setup, dispatchEvent, getActiveElementTestId, base64Image } from '../helpers';\n\ndescribe('q2-card', () => {\n describe('focus', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n\n it('focuses inner button when focus event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'focus');\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n const card = await page.find('q2-card');\n await card.focus();\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n });\n\n describe('auto detecting touch devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `` });\n await page.evaluate(() => ((window.ontouchstart as any) = true));\n page.setContent(`<q2-card></q2-card>`);\n await page.waitForChanges();\n });\n\n it('automatically adds is-touch class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n\n describe('auto detecting small devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card title=\"Test\"></q2-card>` });\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n });\n\n it('automatically adds is-small class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-small');\n });\n\n it('automatically toggles on viewport resize', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-small');\n\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('@Events', () => {\n describe('click', () => {\n let page: E2EPage;\n let card: E2EElement;\n let clickSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n card = await page.find('q2-card');\n clickSpy = await card.spyOnEvent('click');\n });\n\n it('emits event when clickableElement is clicked', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n await clickableElement.click();\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'click');\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when click is called on q2-card', async () => {\n await card.click();\n expect(clickSpy).toHaveReceivedEvent();\n });\n });\n });\n\n describe('@Props', () => {\n describe('isStatic', () => {\n describe('when not provided', () => {\n it('adds padding', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('20px');\n expect(containerStyles.boxShadow).toEqual('rgba(0, 0, 0, 0.3) 0px 3px 6px 0px');\n expect(containerStyles.borderRadius).toEqual('3px');\n expect(containerStyles.cursor).toEqual('pointer');\n });\n });\n\n describe('when provided', () => {\n it('removes padding', async () => {\n const page = await setup({\n html: `<q2-card is-static></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n\n describe('when bar is provided', () => {\n it('adds left padding', async () => {\n const page = await setup({\n html: `<q2-card is-static bar=\"primary\"></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px 0px 0px 20px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n });\n });\n });\n\n describe('bar', () => {\n describe('when not provided', () => {\n it('does not render the bar element', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeNull();\n });\n });\n\n describe('when provided', () => {\n const getBarColor = async (page: E2EPage) =>\n page.$eval('q2-card', element => {\n const bar = element.shadowRoot.querySelector<HTMLElement>('.bar');\n return bar.style.getPropertyValue('--comp-bar-color');\n });\n it('renders the bar element', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeTruthy();\n });\n\n it('accepts predefined theme colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('var(--t-primary)');\n });\n\n it('accepts predefined stoplight colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('var(--t-primary)');\n });\n\n it('accepts hex value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"#000000\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('#000000');\n });\n\n it('accepts hsl value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"hsl(0deg 0% 0%)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('hsl(0deg 0% 0%)');\n });\n\n it('accepts rgb value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgb(0, 0, 0)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgb(0, 0, 0)');\n });\n\n it('accepts rgba value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgba(0, 0, 0, 0.5)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgba(0, 0, 0, 0.5)');\n });\n\n it('accepts named colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"red\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('red');\n });\n });\n });\n\n describe('title', () => {\n describe('when not provided', () => {\n it('does not render the title', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=description]');\n\n expect(title).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the title', async () => {\n const page = await setup({\n html: `<q2-card title=\"Checking\"></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=title]');\n\n expect(title.textContent).toEqual('Checking');\n });\n });\n });\n\n describe('description', () => {\n describe('when not provided', () => {\n it('does not render the description', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the description', async () => {\n const page = await setup({\n html: `<q2-card description=\"This account is empty\"></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description.textContent).toEqual('This account is empty');\n });\n });\n });\n\n describe('avatar props', () => {\n describe('when no avatar props are provided', () => {\n it('does not render avatar or add the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toBeNull();\n expect(clickableElement.className).not.toContain('has-avatar');\n });\n });\n\n describe('avatarName', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-name=\"John Doe\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('name', 'John Doe');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarInitials', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-initials=\"JD\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('initials', 'JD');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarIcon', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-icon=\"star\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('type', 'star');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarSrc', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-src=${base64Image}></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('src', base64Image);\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n });\n\n describe('isSmall', () => {\n describe('when not provided', () => {\n it('does not add is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('when provided', () => {\n it('adds is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card is-small></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n });\n });\n\n describe('isTouch', () => {\n describe('when not provided', () => {\n it('does not render touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeNull();\n expect(clickableElement.className).not.toContain('is-touch');\n });\n });\n\n describe('when provided', () => {\n it('renders touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card is-touch></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeTruthy();\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n });\n\n describe('url', () => {\n describe('when not provided', () => {\n it('renders a button', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('BUTTON');\n });\n });\n\n describe('when provided', () => {\n it('renders a link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('href', 'https://www.google.com/');\n });\n });\n });\n\n describe('target', () => {\n describe('when not provided', () => {\n it('does not add the target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).not.toHaveAttribute('target');\n });\n });\n\n describe('when provided', () => {\n it('adds target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\" target=\"_blank\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('target', '_blank');\n });\n });\n });\n\n describe('non-clickable', () => {\n let page: E2EPage;\n let card: E2EElement;\n let element: E2EElement;\n describe('when provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card type=\"non-clickable\"></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n it('renders a <div>', () => {\n expect(element.tagName).toEqual('DIV');\n });\n it('has non-clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'non-clickable');\n });\n it('has non-clickable class name on div', () => {\n expect(element.getAttribute('class')).toContain('non-clickable');\n });\n });\n describe('when not provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n it('renders a <button>', () => {\n expect(element.tagName).toEqual('BUTTON');\n });\n it('has clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'clickable');\n });\n it('has clickable class name on button', () => {\n expect(element.getAttribute('class')).toContain('clickable');\n });\n });\n });\n });\n});\n\n// content?\n// mobile?\n"]}
|
|
1
|
+
{"version":3,"file":"q2-card-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-card-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { setup, dispatchEvent, getActiveElementTestId, base64Image, getNestedElementStyle } from '../helpers';\n\ndescribe('q2-card', () => {\n describe('focus', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n\n it('focuses inner button when focus event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'focus');\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n const card = await page.find('q2-card');\n await card.focus();\n await page.waitForChanges();\n\n expect(await getActiveElementTestId(page)).toEqual('clickableElement');\n });\n });\n\n describe('auto detecting touch devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `` });\n await page.evaluate(() => ((window.ontouchstart as any) = true));\n page.setContent(`<q2-card></q2-card>`);\n await page.waitForChanges();\n });\n\n it('automatically adds is-touch class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n\n describe('auto detecting small devices', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({ html: `<q2-card title=\"Test\"></q2-card>` });\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n });\n\n it('automatically adds is-small class to clickableElement on render', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n\n it('automatically toggles on viewport resize', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n let page: E2EPage;\n let card: E2EElement;\n let clickSpy: EventSpy;\n\n beforeEach(async () => {\n page = await setup({ html: `<q2-card></q2-card>` });\n card = await page.find('q2-card');\n clickSpy = await card.spyOnEvent('click');\n });\n\n it('emits event when clickableElement is clicked', async () => {\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n await clickableElement.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when event is dispatched', async () => {\n await dispatchEvent(page, 'q2-card', 'click');\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n\n it('emits event when click is called on q2-card', async () => {\n await card.click();\n\n expect(clickSpy).toHaveReceivedEvent();\n });\n });\n });\n\n describe('Props', () => {\n describe('isStatic', () => {\n describe('when not provided', () => {\n it('adds padding', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('20px');\n expect(containerStyles.boxShadow).toEqual('rgba(0, 0, 0, 0.3) 0px 3px 6px 0px');\n expect(containerStyles.borderRadius).toEqual('3px');\n expect(containerStyles.cursor).toEqual('pointer');\n });\n });\n\n describe('when provided', () => {\n it('removes padding', async () => {\n const page = await setup({\n html: `<q2-card is-static></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n\n describe('when bar is provided', () => {\n it('adds left padding', async () => {\n const page = await setup({\n html: `<q2-card is-static bar=\"primary\"></q2-card>`,\n });\n const container = await page.find('q2-card >>> .container');\n const containerStyles = await container.getComputedStyle();\n\n expect(containerStyles.padding).toEqual('0px 0px 0px 20px');\n expect(containerStyles.boxShadow).toEqual('none');\n expect(containerStyles.borderRadius).toEqual('0px');\n expect(containerStyles.cursor).toEqual('auto');\n });\n });\n });\n });\n\n describe('bar', () => {\n describe('when not provided', () => {\n it('does not render the bar element', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeNull();\n });\n });\n\n describe('when provided', () => {\n const getBarColor = async (page: E2EPage) =>\n page.$eval('q2-card', element => {\n const bar = element.shadowRoot.querySelector<HTMLElement>('.bar');\n return bar.style.getPropertyValue('--comp-bar-color');\n });\n it('renders the bar element', async () => {\n const page = await setup({\n html: `<q2-card bar=\"primary\"></q2-card>`,\n });\n const bar = await page.find('q2-card >>> [test-id=bar]');\n\n expect(bar).toBeTruthy();\n });\n\n const constantColors = [\n { propValue: 'info', expectedColor: 'rgb(0, 0, 1)' },\n { propValue: 'success', expectedColor: 'rgb(0, 0, 2)' },\n { propValue: 'warning', expectedColor: 'rgb(0, 0, 3)' },\n { propValue: 'alert', expectedColor: 'rgb(0, 0, 4)' },\n ];\n\n const themeColors = [\n { propValue: 'primary', expectedColor: 'rgb(0, 0, 5)' },\n { propValue: 'secondary', expectedColor: 'rgb(0, 0, 6)' },\n { propValue: 'tertiary', expectedColor: 'rgb(0, 0, 7)' },\n { propValue: 'accent-1', expectedColor: 'rgb(0, 0, 8)' },\n { propValue: 'accent-2', expectedColor: 'rgb(0, 0, 9)' },\n { propValue: 'accent-3', expectedColor: 'rgb(0, 0, 10)' },\n { propValue: 'accent-4', expectedColor: 'rgb(0, 0, 11)' },\n { propValue: 'accent-5', expectedColor: 'rgb(0, 0, 12)' },\n { propValue: 'accent-6', expectedColor: 'rgb(0, 0, 13)' },\n { propValue: 'accent-7', expectedColor: 'rgb(0, 0, 14)' },\n { propValue: 'accent-8', expectedColor: 'rgb(0, 0, 15)' },\n { propValue: 'accent-9', expectedColor: 'rgb(0, 0, 16)' },\n { propValue: 'accent-10', expectedColor: 'rgb(0, 0, 17)' },\n { propValue: 'accent-11', expectedColor: 'rgb(0, 0, 18)' },\n { propValue: 'accent-12', expectedColor: 'rgb(0, 0, 19)' },\n ];\n\n const predefinedColors = [...constantColors, ...themeColors];\n\n predefinedColors.forEach(color => {\n const { propValue, expectedColor } = color;\n\n it(`on load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${propValue}\" style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n\n it(`after load accepts predefined ${propValue} color`, async () => {\n const page = await setup({\n html: `\n <q2-card style=\"--tct-card-bar-color-${propValue}: ${expectedColor}\"></q2-card>\n `,\n });\n const card = await page.find('q2-card');\n card.setAttribute('bar', propValue);\n await page.waitForChanges();\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(expectedColor);\n });\n });\n\n constantColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --const-stoplight-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--const-stoplight-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n themeColors.forEach(color => {\n it(`predefined color ${color.propValue} falls back to --t-${color.propValue}`, async () => {\n const page = await setup({\n html: `\n <q2-card bar=\"${color.propValue}\" style=\"--t-${color.propValue}: ${color.expectedColor}\"></q2-card>\n `,\n });\n const barBackgroundColor = await getNestedElementStyle(\n page,\n ['q2-card', '[test-id=bar]'],\n 'backgroundColor'\n );\n\n expect(barBackgroundColor).toEqual(color.expectedColor);\n });\n });\n\n it('accepts hex value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"#000000\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('#000000');\n });\n\n it('accepts hsl value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"hsl(0deg 0% 0%)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('hsl(0deg 0% 0%)');\n });\n\n it('accepts rgb value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgb(0, 0, 0)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgb(0, 0, 0)');\n });\n\n it('accepts rgba value', async () => {\n const page = await setup({\n html: `<q2-card bar=\"rgba(0, 0, 0, 0.5)\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('rgba(0, 0, 0, 0.5)');\n });\n\n it('accepts named colors', async () => {\n const page = await setup({\n html: `<q2-card bar=\"red\"></q2-card>`,\n });\n\n expect(await getBarColor(page)).toEqual('red');\n });\n });\n });\n\n describe('title', () => {\n describe('when not provided', () => {\n it('does not render the title', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=description]');\n\n expect(title).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the title', async () => {\n const page = await setup({\n html: `<q2-card title=\"Checking\"></q2-card>`,\n });\n const title = await page.find('q2-card >>> [test-id=title]');\n\n expect(title.textContent).toEqual('Checking');\n });\n });\n });\n\n describe('description', () => {\n describe('when not provided', () => {\n it('does not render the description', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders the description', async () => {\n const page = await setup({\n html: `<q2-card description=\"This account is empty\"></q2-card>`,\n });\n const description = await page.find('q2-card >>> [test-id=description]');\n\n expect(description.textContent).toEqual('This account is empty');\n });\n });\n });\n\n describe('avatar props', () => {\n describe('when no avatar props are provided', () => {\n it('does not render avatar or add the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toBeNull();\n expect(clickableElement.className).not.toContain('has-avatar');\n });\n });\n\n describe('avatarName', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-name=\"John Doe\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('name', 'John Doe');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarInitials', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-initials=\"JD\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('initials', 'JD');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarIcon', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-icon=\"star\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('type', 'star');\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n\n describe('avatarSrc', () => {\n describe('when provided', () => {\n it('renders the avatar and adds the has-avatar class', async () => {\n const page = await setup({\n html: `<q2-card avatar-src=${base64Image}></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const avatar = await page.find('q2-card >>> [test-id=avatar]');\n\n expect(avatar).toEqualAttribute('src', base64Image);\n expect(clickableElement.className).toContain('has-avatar');\n });\n });\n });\n });\n\n describe('isSmall', () => {\n describe('when not provided', () => {\n it('does not add is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).not.toContain('is-small');\n });\n });\n\n describe('when provided', () => {\n it('adds is-small class to clickableElement', async () => {\n const page = await setup({\n html: `<q2-card is-small></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.className).toContain('is-small');\n });\n });\n });\n\n describe('isTouch', () => {\n describe('when not provided', () => {\n it('does not render touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeNull();\n expect(clickableElement.className).not.toContain('is-touch');\n });\n });\n\n describe('when provided', () => {\n it('renders touch indicator icon', async () => {\n const page = await setup({\n html: `<q2-card is-touch></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n const touchIndicator = await page.find('q2-card >>> [test-id=touchIndicator]');\n\n expect(touchIndicator).toBeTruthy();\n expect(clickableElement.className).toContain('is-touch');\n });\n });\n });\n\n describe('url', () => {\n describe('when not provided', () => {\n it('renders a button', async () => {\n const page = await setup({\n html: `<q2-card></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('BUTTON');\n });\n });\n\n describe('when provided', () => {\n it('renders a link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('href', 'https://www.google.com/');\n });\n });\n });\n\n describe('target', () => {\n describe('when not provided', () => {\n it('does not add the target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).not.toHaveAttribute('target');\n });\n });\n\n describe('when provided', () => {\n it('adds target attribute to link', async () => {\n const page = await setup({\n html: `<q2-card url=\"https://www.google.com/\" target=\"_blank\"></q2-card>`,\n });\n const clickableElement = await page.find('q2-card >>> [test-id=clickableElement]');\n\n expect(clickableElement.tagName).toEqual('A');\n expect(clickableElement).toEqualAttribute('target', '_blank');\n });\n });\n });\n\n describe('non-clickable', () => {\n let page: E2EPage;\n let card: E2EElement;\n let element: E2EElement;\n describe('when provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card type=\"non-clickable\"></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <div>', () => {\n expect(element.tagName).toEqual('DIV');\n });\n it('has non-clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'non-clickable');\n });\n it('has non-clickable class name on div', () => {\n expect(element.getAttribute('class')).toContain('non-clickable');\n });\n });\n describe('when not provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-card></q2-card>`,\n });\n card = await page.find('q2-card');\n element = await page.find('q2-card >>> [test-id=clickableElement]');\n });\n\n it('renders a <button>', () => {\n expect(element.tagName).toEqual('BUTTON');\n });\n it('has clickable attribute on q2-card', () => {\n expect(card).toEqualAttribute('type', 'clickable');\n });\n it('has clickable class name on button', () => {\n expect(element.getAttribute('class')).toContain('clickable');\n });\n });\n });\n });\n});\n\n// content?\n// mobile?\n"]}
|