q2-tecton-elements 1.46.0 → 1.46.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +71 -40
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-c385e32f.js → index-f69742cf.js} +1 -1
- package/dist/cjs/{index-c385e32f.js.map → index-f69742cf.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-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +36 -6
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
- 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-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +69 -3
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +3 -2
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +3 -3
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +12 -14
- package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-legend.cjs.entry.js +118 -0
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-list.cjs.entry.js +7 -7
- package/dist/cjs/q2-list.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 +2 -2
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-select.cjs.entry.js +55 -7
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +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/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +6 -5
- package/dist/collection/components/click-elsewhere/click-elsewhere.js +2 -8
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-carousel/q2-carousel.js +2 -2
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +36 -6
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +9 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +91 -3
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +20 -2
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +3 -2
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
- package/dist/collection/components/q2-icon/q2-icon.js +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +4 -4
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.js +23 -16
- package/dist/collection/components/q2-item/q2-item.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.css +126 -0
- package/dist/collection/components/q2-legend/q2-legend.js +271 -0
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -0
- package/dist/collection/components/q2-list/q2-list.js +7 -7
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
- package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +19 -11
- package/dist/collection/components/q2-popover/q2-popover.js +70 -32
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +64 -9
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/components/click-elsewhere2.js +2 -8
- package/dist/components/click-elsewhere2.js.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-calendar.js +1 -1
- package/dist/components/q2-carousel-pane.js +36 -6
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +2 -2
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +81 -7
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +3 -2
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-checkbox2.js +4 -2
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown-item2.js +1 -1
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +1 -1
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +1 -1
- package/dist/components/q2-icon2.js +1 -1
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +3 -3
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item.js +15 -17
- package/dist/components/q2-item.js.map +1 -1
- package/dist/components/q2-legend.d.ts +11 -0
- package/dist/components/q2-legend.js +8 -0
- package/dist/components/q2-legend.js.map +1 -0
- package/dist/components/q2-legend2.js +145 -0
- package/dist/components/q2-legend2.js.map +1 -0
- package/dist/components/q2-list.js +7 -7
- package/dist/components/q2-list.js.map +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +2 -2
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +69 -32
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +1 -1
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +57 -9
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +71 -40
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-f0dfb099.js → index-3184c760.js} +1 -1
- package/dist/esm/{index-f0dfb099.js.map → index-3184c760.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-avatar.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -2
- package/dist/esm/q2-carousel-pane.entry.js +36 -6
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +2 -2
- 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-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +69 -3
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +3 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +3 -2
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +3 -3
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-item.entry.js +14 -16
- package/dist/esm/q2-item.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +114 -0
- package/dist/esm/q2-legend.entry.js.map +1 -0
- package/dist/esm/q2-list.entry.js +7 -7
- package/dist/esm/q2-list.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 +2 -2
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +2 -2
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-select.entry.js +56 -8
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/jest.setup.js +22 -0
- package/dist/jest.setup.js.map +1 -0
- package/dist/q2-tecton-elements/{p-7e1dc7e8.entry.js → p-149044cd.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-57bf9342.entry.js → p-16f10398.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e4a2469f.entry.js → p-18ec54c0.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-515d424b.entry.js → p-2862b698.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-2967ec81.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-2967ec81.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d1522382.entry.js → p-2a248a3f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-2e146575.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-66af375f.entry.js → p-34d6977d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-34d6977d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-22661533.entry.js → p-38bd430f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-38bd430f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-fc9f43f8.entry.js → p-3dff9fb0.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-42f06b03.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f0813fb4.entry.js → p-4f2dfb4d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-4f2dfb4d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-da7fc914.entry.js → p-5945d04a.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5a786cd9.entry.js +2 -0
- package/dist/q2-tecton-elements/p-5a786cd9.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-1b37b8c6.entry.js → p-5c13ed85.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5c13ed85.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-e47dbfbe.entry.js → p-6468801f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-391acc00.entry.js → p-65ed80a5.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-65ed80a5.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-6930d8ed.entry.js +2 -0
- package/dist/q2-tecton-elements/p-6930d8ed.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-6d48e71d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4570ff06.entry.js → p-6e3887c7.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-79df783e.entry.js → p-7922dd0f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-87bbeb9c.entry.js → p-80832cb1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-aec64fcb.entry.js → p-86ebd308.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-dc057a9c.entry.js → p-87f07a6d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-176ad382.entry.js → p-912b4cad.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-91addc0e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-91addc0e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-1e927478.entry.js → p-92092954.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-968b008b.entry.js +2 -0
- package/dist/q2-tecton-elements/p-968b008b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-cb4f9b33.entry.js → p-a1ead8cd.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cb4f9b33.entry.js.map → p-a1ead8cd.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-f1265647.entry.js → p-ad090a05.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d013e05d.entry.js → p-ae0ddc57.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d013e05d.entry.js.map → p-ae0ddc57.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-c0c8f418.entry.js +2 -0
- package/dist/q2-tecton-elements/p-c0c8f418.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-c30bfa77.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6ebe37ea.entry.js → p-c575f3f9.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e3230823.entry.js → p-cfe64a8e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-195a133c.entry.js → p-d5776227.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-47868d6d.entry.js → p-d5b0aeed.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-1c4aa7e3.entry.js → p-e2337018.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e2337018.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-aed969d4.entry.js → p-e654d2d6.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e762526f.entry.js → p-ed974a59.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3c42c90f.js → p-f1e887f5.js} +1 -1
- package/dist/q2-tecton-elements/{p-ad274c67.entry.js → p-f45b3488.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-89305707.entry.js → p-f8f0b32f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-0eff37c6.entry.js → p-ff39ba49.entry.js} +2 -2
- 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/click-elsewhere-test.e2e.js +0 -18
- package/dist/test/elements/click-elsewhere-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-btn-test.e2e.js +16 -0
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +2 -2
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-pane-test.e2e.js +49 -1
- package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-pane-test.spec.js +4 -1
- package/dist/test/elements/q2-carousel-pane-test.spec.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +56 -0
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +13 -10
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-item-test.e2e.js +16 -3
- package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js +2 -14
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-icon-test.e2e.js +3 -3
- package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +68 -54
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/{q2-detail/q2-item-test.e2e.js → q2-item-test.e2e.js} +29 -1
- package/dist/test/elements/q2-item-test.e2e.js.map +1 -0
- package/dist/test/elements/q2-item-test.spec.js +32 -0
- package/dist/test/elements/q2-item-test.spec.js.map +1 -0
- package/dist/test/elements/q2-legend-test.e2e.js +19 -0
- package/dist/test/elements/q2-legend-test.e2e.js.map +1 -0
- package/dist/test/elements/q2-legend-test.spec.js +271 -0
- package/dist/test/elements/q2-legend-test.spec.js.map +1 -0
- package/dist/test/elements/q2-pill-test.e2e.js +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.e2e.js +1 -34
- package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.spec.js +739 -296
- package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +1 -1
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.spec.js +412 -0
- package/dist/test/elements/q2-select-test.spec.js.map +1 -0
- package/dist/test/elements/q2-tag-test.e2e.js +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
- package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +7 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +14 -0
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +2 -0
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +221 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
- package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +45 -0
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +136 -0
- package/dist/types/components/q2-item/q2-item.d.ts +1 -1
- package/dist/types/components/q2-legend/q2-legend.d.ts +41 -0
- package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
- package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +5 -3
- package/dist/types/components/q2-select/q2-select.d.ts +238 -0
- package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
- package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
- package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
- package/dist/types/components.d.ts +83 -0
- package/dist/types/utils/action-sheet.d.ts +12 -0
- package/package.json +3 -3
- package/dist/q2-tecton-elements/p-1b37b8c6.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-1c4aa7e3.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-22661533.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-36398b59.entry.js +0 -2
- package/dist/q2-tecton-elements/p-36398b59.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-391acc00.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4bbe563f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-66af375f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-71180fcd.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b7d5fd12.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b7d5fd12.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c56b58e9.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c56b58e9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +0 -1
- package/dist/test/elements/q2-detail/q2-item-test.e2e.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-7e1dc7e8.entry.js.map → p-149044cd.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-57bf9342.entry.js.map → p-16f10398.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e4a2469f.entry.js.map → p-18ec54c0.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-515d424b.entry.js.map → p-2862b698.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d1522382.entry.js.map → p-2a248a3f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-2e146575.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-fc9f43f8.entry.js.map → p-3dff9fb0.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-42f06b03.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-da7fc914.entry.js.map → p-5945d04a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e47dbfbe.entry.js.map → p-6468801f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-6d48e71d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4570ff06.entry.js.map → p-6e3887c7.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-79df783e.entry.js.map → p-7922dd0f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-87bbeb9c.entry.js.map → p-80832cb1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-aec64fcb.entry.js.map → p-86ebd308.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-dc057a9c.entry.js.map → p-87f07a6d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-176ad382.entry.js.map → p-912b4cad.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-1e927478.entry.js.map → p-92092954.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f1265647.entry.js.map → p-ad090a05.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-c30bfa77.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6ebe37ea.entry.js.map → p-c575f3f9.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e3230823.entry.js.map → p-cfe64a8e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-195a133c.entry.js.map → p-d5776227.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-47868d6d.entry.js.map → p-d5b0aeed.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-aed969d4.entry.js.map → p-e654d2d6.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e762526f.entry.js.map → p-ed974a59.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3c42c90f.js.map → p-f1e887f5.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ad274c67.entry.js.map → p-f45b3488.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-89305707.entry.js.map → p-f8f0b32f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0eff37c6.entry.js.map → p-ff39ba49.entry.js.map} +0 -0
- /package/dist/types/{workspace/workspace/_Gitlab_tecton-production_master → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
- /package/dist/types/{workspace/workspace/_Gitlab_tecton-production_master → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-popover-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-popover-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { getListOfStyleCompilationIssues, getNestedElementProperty, setup } from '../helpers';\nimport { Q2Popover } from '../../src/components/q2-popover/q2-popover';\n\ndescribe('q2-popover', () => {\n let page: E2EPage;\n let popover: E2EElement;\n let popoverContainer: E2EElement;\n\n const dispatchPopoverState = async (state: { open: boolean }) => {\n await page.$eval(\n 'q2-popover',\n (el, { open }) => el.dispatchEvent(new CustomEvent('popoverState', { detail: { open } })),\n state\n );\n };\n\n const getPopProperty = async (propertyName: string) => {\n return page.$eval(\n 'q2-popover',\n (el, propName) =>\n el.shadowRoot.querySelector<HTMLDivElement>('.container').style.getPropertyValue(propName),\n propertyName\n );\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-popover></q2-popover>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-popover')).toHaveLength(0);\n });\n\n describe('Props', () => {\n describe('open', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('opens the popover when the open property is changed to true', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when the open property is changed to false', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n\n it('adds and removes the currentDirection and --comp-pop-max-height property', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(popover).toHaveAttribute('open');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('390px');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n expect(popoverContainer).not.toHaveClass('down');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('');\n });\n });\n\n describe('direction', () => {\n describe('when provided a valid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"up\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('sets currentDirection to provided value', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n });\n });\n\n describe('when provided an invalid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"gibberish\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('ignores the direction and uses automated behavior', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('down');\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('popoverState', () => {\n it('opens the popover when open is passed as true', async () => {\n page = await setup({\n html: `<q2-popover></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when open is passed as false', async () => {\n page = await setup({\n html: `<q2-popover open></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).toHaveAttribute('open');\n\n await dispatchPopoverState({ open: false });\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n });\n });\n\n describe('Methods', () => {\n describe('toggle', () => {\n it('toggles the value of open', async () => {\n const popover = new Q2Popover();\n expect(popover.open).toBeUndefined();\n popover.toggle();\n expect(popover.open).toBe(true);\n popover.toggle();\n expect(popover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 2000px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n\n await popover.callMethod('scrollContainerTo', { top: 1000 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(1000);\n\n await popover.callMethod('scrollContainerTo', { top: 0 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(0);\n });\n });\n });\n\n describe('determinePopDirection', () => {\n describe('when control element has more space below it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 10px;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n // await setBodyHeight();\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be down', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('sets currentDirection state variable to down', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when control element has more space above it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 350px\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be up', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('sets currentDirection state variable to up', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when page is resized', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 50px; \" id=\"control\"></div>\n <q2-popover block>\n <div style=\"height: 800px\"></div>\n <q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('recalculates the width when block is true', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(800);\n\n await page.setViewport({ width: 200, height: 600 });\n await page.waitForChanges();\n\n width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(200);\n });\n\n it('recalculates the max-height when page orientation changes', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600, isLandscape: true });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n\n it('recalculates the max-height when the viewport is resized', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600 });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n });\n\n describe('when page is scrolled', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px\"></div>\n <div style=\"height: 50px; width: 200px; background: black;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 800px\"></div>\n </q2-popover>\n <div> style=\"height: 500px\"</div>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('maintains its current direction until closed', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n // Scroll down 300px\n await page.$eval('#control', () => {\n window.scrollBy(0, 300);\n window.visualViewport.dispatchEvent(new Event('scroll'));\n });\n await page.waitForChanges();\n expect(popoverContainer).toHaveClass('up');\n });\n });\n });\n\n describe('Accessibility', () => {\n it('does not hide q2-option elements from a screen reader (TCT-2080)', async () => {\n page = await setup({\n html: `\n <q2-popover open>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n `,\n });\n\n const snapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n\n expect(snapshot.name).toEqual('Account 1');\n });\n });\n describe('Deprecations', () => {\n describe('calls console.warn for deprecated `minHeight` prop', () => {\n it('by using handleDeprecationWarning if set on popover element', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover min-height=\"100\"></q2-popover>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('by using handleDeprecationWarning if set after componentDidLoad', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover></q2-popover>` });\n popover = await page.find('q2-popover');\n expect(warnMock).toHaveBeenCalledTimes(0);\n popover.setAttribute('min-height', '100');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2699', () => {\n it('calls viewportChanged when document is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-242px');\n });\n\n it('calls viewportChanged when another element is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px; overflow-y: auto;\" id=\"scroll\">\n <div style=\"height: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('#scroll', element => element.scrollTo(0, 500));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-442px');\n });\n\n it('correctly sets the left direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"left\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('8px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('-492px');\n });\n\n it('correctly sets the right direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"right\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-2208px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-1708px');\n });\n\n it(\"doesn't update the popover direction on scroll\", async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px; margin-top: 400px\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('200px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('500px');\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-popover-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-popover-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAEvE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,IAAI,IAAa,CAAC;IAClB,IAAI,OAAmB,CAAC;IACxB,IAAI,gBAA4B,CAAC;IAEjC,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAAwB,EAAE,EAAE;QAC5D,MAAM,IAAI,CAAC,KAAK,CACZ,YAAY,EACZ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EACzF,KAAK,CACR,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE;QAClD,OAAO,IAAI,CAAC,KAAK,CACb,YAAY,EACZ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CACb,EAAE,CAAC,UAAU,CAAC,aAAa,CAAiB,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC9F,YAAY,CACf,CAAC;IACN,CAAC,CAAC;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,+BAA+B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;YAClB,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;qBAIL;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAwB,EAAE,EAAE;oBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBAEjE,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7E,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;gBAC3E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBACjE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7E,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;gBACtF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBAEjE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEpE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;YACvB,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACzC,UAAU,CAAC,KAAK,IAAI,EAAE;oBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;wBACf,IAAI,EAAE;;;;qBAIT;qBACA,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;oBACrD,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAE5E,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7E,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;gBAC5C,UAAU,CAAC,KAAK,IAAI,EAAE;oBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;wBACf,IAAI,EAAE;;;;qBAIT;qBACA,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;oBAC/D,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAE5E,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7E,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC3D,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,2BAA2B;iBACpC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBAEjE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBAC7D,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE,gCAAgC;iBACzC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;gBAEjE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;gBACvC,MAAM,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBACzD,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;qBAIL;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAEpD,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAEhE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,MAAM,wBAAwB,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEnG,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,MAAM,wBAAwB,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC1D,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;qBAKL;iBACJ,CAAC,CAAC;gBACH,yBAAyB;gBACzB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAwB,EAAE,EAAE;oBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACtD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACtD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;gBACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC1E,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC1D,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;qBAKL;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAwB,EAAE,EAAE;oBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBACxD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACtD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;gBACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC1E,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;qBAKL;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAwB,EAAE,EAAE;oBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,IAAI,KAAK,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAE1C,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,KAAK,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,IAAI,SAAS,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAE9C,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,SAAS,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAC1D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAExC,IAAI,SAAS,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAE9C,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,SAAS,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAC1D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACnC,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;;;qBAOL;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAwB,EAAE,EAAE;oBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3C,oBAAoB;gBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;oBAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACxB,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAC9E,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;;;;iBAQL;aACJ,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/C,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAChE,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,4CAA4C,EAAE,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;gBAC1D,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACtB,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACpE,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;;;;;;;;;qBAaL;iBACJ,CAAC,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAEhE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,OAA6B,EAAE,EAAE;oBAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE/D,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACpE,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;;;;;;;;;qBAaL;iBACJ,CAAC,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAEhE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,OAA6B,EAAE,EAAE;oBAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAE/D,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACrE,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;;;;;;;;;qBAaL;iBACJ,CAAC,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAEhE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,OAA6B,EAAE,EAAE;oBAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAEpE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC5D,IAAI,GAAG,MAAM,KAAK,CAAC;oBACf,IAAI,EAAE;;;;;;;;;;;qBAWL;iBACJ,CAAC,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxC,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAEhE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,OAA6B,EAAE,EAAE;oBAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC;oBACvE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { getListOfStyleCompilationIssues, getNestedElementProperty, setup } from '../helpers';\nimport { Q2Popover } from '../../src/components/q2-popover/q2-popover';\n\ndescribe('q2-popover', () => {\n let page: E2EPage;\n let popover: E2EElement;\n let popoverContainer: E2EElement;\n\n const dispatchPopoverState = async (state: { open: boolean }) => {\n await page.$eval(\n 'q2-popover',\n (el, { open }) => el.dispatchEvent(new CustomEvent('popoverState', { detail: { open } })),\n state\n );\n };\n\n const getPopProperty = async (propertyName: string) => {\n return page.$eval(\n 'q2-popover',\n (el, propName) =>\n el.shadowRoot.querySelector<HTMLDivElement>('.container').style.getPropertyValue(propName),\n propertyName\n );\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-popover></q2-popover>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-popover')).toHaveLength(0);\n });\n\n describe('Props', () => {\n describe('open', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('opens the popover when the open property is changed to true', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when the open property is changed to false', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n\n it('adds and removes the currentDirection and --comp-pop-max-height property', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(popover).toHaveAttribute('open');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('390px');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n expect(popoverContainer).not.toHaveClass('down');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('');\n });\n });\n\n describe('direction', () => {\n describe('when provided a valid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"up\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('sets currentDirection to provided value', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n });\n });\n\n describe('when provided an invalid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"gibberish\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('ignores the direction and uses automated behavior', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('down');\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('popoverState', () => {\n it('opens the popover when open is passed as true', async () => {\n page = await setup({\n html: `<q2-popover></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when open is passed as false', async () => {\n page = await setup({\n html: `<q2-popover open></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).toHaveAttribute('open');\n\n await dispatchPopoverState({ open: false });\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n });\n });\n\n describe('Methods', () => {\n describe('toggle', () => {\n it('toggles the value of open', async () => {\n const popover = new Q2Popover();\n expect(popover.open).toBeUndefined();\n popover.toggle();\n expect(popover.open).toBe(true);\n popover.toggle();\n expect(popover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 2000px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n\n await popover.callMethod('scrollContainerTo', { top: 1000 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(1000);\n\n await popover.callMethod('scrollContainerTo', { top: 0 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(0);\n });\n });\n });\n\n describe('determinePopDirection', () => {\n describe('when control element has more space below it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 10px;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n // await setBodyHeight();\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be down', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('sets currentDirection state variable to down', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when control element has more space above it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 350px\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be up', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('sets currentDirection state variable to up', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when page is resized', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 50px; \" id=\"control\"></div>\n <q2-popover block>\n <div style=\"height: 800px\"></div>\n <q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('recalculates the width when block is true', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(800);\n\n await page.setViewport({ width: 200, height: 600 });\n await page.waitForChanges();\n\n width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(200);\n });\n\n it('recalculates the max-height when page orientation changes', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600, isLandscape: true });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n\n it('recalculates the max-height when the viewport is resized', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600 });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n });\n\n describe('when page is scrolled', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px\"></div>\n <div style=\"height: 50px; width: 200px; background: black;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 800px\"></div>\n </q2-popover>\n <div> style=\"height: 500px\"</div>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('maintains its current direction until closed', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n // Scroll down 300px\n await page.$eval('#control', () => {\n window.scrollBy(0, 300);\n window.visualViewport.dispatchEvent(new Event('scroll'));\n });\n await page.waitForChanges();\n expect(popoverContainer).toHaveClass('up');\n });\n });\n });\n\n describe('Accessibility', () => {\n it('does not hide q2-option elements from a screen reader (TCT-2080)', async () => {\n page = await setup({\n html: `\n <q2-popover open>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n `,\n });\n\n const snapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n\n expect(snapshot.name).toEqual('Account 1');\n });\n });\n describe('Deprecations', () => {\n describe('calls console.warn for deprecated `minHeight` prop', () => {\n it('by using handleDeprecationWarning if set on popover element', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover min-height=\"100\"></q2-popover>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('by using handleDeprecationWarning if set after componentDidLoad', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover></q2-popover>` });\n popover = await page.find('q2-popover');\n expect(warnMock).toHaveBeenCalledTimes(0);\n popover.setAttribute('min-height', '100');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2699', () => {\n it('calls viewportChanged when another element is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px; overflow-y: auto;\" id=\"scroll\">\n <div style=\"height: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('#scroll', element => element.scrollTo(0, 500));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-442px');\n });\n\n it('correctly sets the left direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"left\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('8px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('-492px');\n });\n\n it('correctly sets the right direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"right\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-2208px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-1708px');\n });\n\n it(\"doesn't update the popover direction on scroll\", async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px; margin-top: 400px\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n });\n });\n });\n});\n"]}
|