q2-tecton-elements 1.37.1 → 1.38.1
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 +68 -58
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-6f9f259c.js → index-09c712ea.js} +13 -2
- package/dist/cjs/index-09c712ea.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +3 -3
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +38 -4
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +2 -2
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +11 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +7 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +26 -3
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +2 -2
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +125 -12
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +5 -2
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +19 -11
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +7 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +73 -20
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +16 -10
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +39 -6
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/styles.css +1 -1
- package/dist/collection/components/q2-avatar/styles.css +1 -1
- package/dist/collection/components/q2-badge/styles.css +1 -1
- package/dist/collection/components/q2-btn/styles.css +18 -3
- package/dist/collection/components/q2-calendar/index.js +59 -10
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.css +1 -1
- package/dist/collection/components/q2-calendar/styles.css +1 -1
- package/dist/collection/components/q2-card/styles.css +1 -1
- package/dist/collection/components/q2-carousel/styles.css +1 -1
- package/dist/collection/components/q2-carousel-pane/styles.css +1 -1
- package/dist/collection/components/q2-chart-area/styles.css +1 -1
- package/dist/collection/components/q2-chart-bar/styles.css +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +12 -3
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/styles.css +1 -1
- package/dist/collection/components/q2-checkbox/styles.css +84 -20
- package/dist/collection/components/q2-checkbox-group/index.js +10 -2
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/styles.css +1 -1
- package/dist/collection/components/q2-data-table/index.js +6 -6
- package/dist/collection/components/q2-data-table/styles.css +1 -1
- package/dist/collection/components/q2-dropdown/styles.css +1 -1
- package/dist/collection/components/q2-dropdown-item/styles.css +1 -1
- package/dist/collection/components/q2-editable-field/index.js +44 -9
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-editable-field/styles.css +1 -1
- package/dist/collection/components/q2-icon/styles.css +1 -1
- package/dist/collection/components/q2-input/formatting/date.js +1 -1
- package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +156 -16
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-input/styles.css +64 -51
- package/dist/collection/components/q2-loading/styles.css +1 -1
- package/dist/collection/components/q2-loc/styles.css +1 -1
- package/dist/collection/components/q2-message/index.js +4 -1
- package/dist/collection/components/q2-message/index.js.map +1 -1
- package/dist/collection/components/q2-message/styles.css +1 -1
- package/dist/collection/components/q2-optgroup/styles.css +2 -2
- package/dist/collection/components/q2-option/styles.css +1 -1
- package/dist/collection/components/q2-option-list/index.js +19 -11
- package/dist/collection/components/q2-option-list/index.js.map +1 -1
- package/dist/collection/components/q2-option-list/styles.css +1 -1
- package/dist/collection/components/q2-pagination/styles.css +1 -1
- package/dist/collection/components/q2-pill/styles.css +7 -7
- package/dist/collection/components/q2-popover/index.js +90 -73
- package/dist/collection/components/q2-popover/index.js.map +1 -1
- package/dist/collection/components/q2-popover/styles.css +13 -13
- package/dist/collection/components/q2-radio/styles.css +36 -13
- package/dist/collection/components/q2-radio-group/index.js +10 -2
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/styles.css +1 -1
- package/dist/collection/components/q2-section/styles.css +1 -1
- package/dist/collection/components/q2-select/index.js +96 -26
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-select/styles.css +18 -10
- package/dist/collection/components/q2-stepper/styles.css +2 -12
- package/dist/collection/components/q2-stepper-pane/index.js +2 -2
- package/dist/collection/components/q2-stepper-pane/styles.css +1 -1
- package/dist/collection/components/q2-stepper-vertical/styles.css +1 -1
- package/dist/collection/components/q2-tab-container/index.js +14 -8
- package/dist/collection/components/q2-tab-container/index.js.map +1 -1
- package/dist/collection/components/q2-tab-container/styles.css +1 -1
- package/dist/collection/components/q2-tab-pane/styles.css +1 -1
- package/dist/collection/components/q2-tag/styles.css +4 -4
- package/dist/collection/components/q2-textarea/index.js +44 -8
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/styles.css +69 -11
- package/dist/collection/components/q2-tooltip/styles.css +1 -1
- package/dist/collection/components/tecton-tab-pane/styles.css +1 -1
- package/dist/collection/utils/index.js +11 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index10.js +1 -1
- package/dist/components/index10.js.map +1 -1
- package/dist/components/index11.js +5 -2
- package/dist/components/index11.js.map +1 -1
- package/dist/components/index12.js +1 -1
- package/dist/components/index12.js.map +1 -1
- package/dist/components/index13.js +1 -1
- package/dist/components/index13.js.map +1 -1
- package/dist/components/index14.js +18 -10
- package/dist/components/index14.js.map +1 -1
- package/dist/components/index15.js +69 -59
- package/dist/components/index15.js.map +1 -1
- package/dist/components/index16.js +12 -2
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index3.js +1 -1
- package/dist/components/index3.js.map +1 -1
- package/dist/components/index4.js +1 -1
- package/dist/components/index4.js.map +1 -1
- package/dist/components/index5.js +1 -1
- package/dist/components/index5.js.map +1 -1
- package/dist/components/index6.js +1 -1
- package/dist/components/index6.js.map +1 -1
- package/dist/components/index7.js +1 -1
- package/dist/components/index7.js.map +1 -1
- package/dist/components/index8.js +1 -1
- package/dist/components/index8.js.map +1 -1
- package/dist/components/index9.js +127 -12
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +37 -3
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card.js +1 -1
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-carousel-pane.js +1 -1
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +1 -1
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +10 -1
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +6 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.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 +25 -2
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-loc.js.map +1 -1
- package/dist/components/q2-month-picker.js +1 -1
- package/dist/components/q2-month-picker.js.map +1 -1
- package/dist/components/q2-pagination.js +1 -1
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js +6 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-section.js +1 -1
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select.js +74 -19
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +1 -1
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +15 -9
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tab-pane.js.map +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +38 -5
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/q2-tooltip.js +1 -1
- package/dist/components/q2-tooltip.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +1 -1
- package/dist/components/tecton-tab-pane.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +68 -58
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-74a659a5.js → index-84f1034e.js} +13 -3
- package/dist/esm/index-84f1034e.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js.map +1 -1
- package/dist/esm/q2-badge.entry.js +1 -1
- package/dist/esm/q2-badge.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +3 -3
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +38 -4
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +2 -2
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +11 -2
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +7 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +2 -2
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +2 -2
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +26 -3
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +2 -2
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +125 -12
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js.map +1 -1
- package/dist/esm/q2-message.entry.js +5 -2
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js.map +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +3 -3
- package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
- package/dist/esm/q2-option-list.entry.js +19 -11
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +2 -2
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +7 -2
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +73 -20
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +16 -10
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tab-pane.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +39 -6
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js.map +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/p-059ea7c9.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-bfd69d42.entry.js.map → p-059ea7c9.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-072bda73.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-077107c1.entry.js.map → p-072bda73.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-0cade28b.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-47c60d4a.entry.js.map → p-0cade28b.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-0fb2be4c.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-536978fe.entry.js.map → p-0fb2be4c.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-107f07f2.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-4abbd0b1.entry.js.map → p-107f07f2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-145849d0.entry.js +2 -0
- package/dist/q2-tecton-elements/p-145849d0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-14e3c48f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-14e3c48f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-15179d55.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-46287c02.entry.js.map → p-15179d55.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-2812f9d2.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-58cdb9c7.entry.js.map → p-2812f9d2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-29a7ca63.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-a52371cf.entry.js.map → p-29a7ca63.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-311f37e2.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-1c993698.entry.js.map → p-311f37e2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-9ef2829e.entry.js → p-3d82d94f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9ef2829e.entry.js.map → p-3d82d94f.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-8e7b762a.entry.js → p-52132d80.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8e7b762a.entry.js.map → p-52132d80.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-57e81863.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-e45856f7.entry.js.map → p-57e81863.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-5843f6c8.entry.js +2 -0
- package/dist/q2-tecton-elements/p-5843f6c8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-5c033ed9.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-09d4b3d3.entry.js.map → p-5c033ed9.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-a60f82c0.entry.js → p-69dcf12e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a60f82c0.entry.js.map → p-69dcf12e.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-6ae87415.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-9d743327.entry.js.map → p-6ae87415.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-72b4ecc6.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-597f8656.entry.js.map → p-72b4ecc6.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-81b917a5.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-9c9a2550.entry.js.map → p-81b917a5.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-85dc889e.entry.js +2 -0
- package/dist/q2-tecton-elements/p-85dc889e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-8f273db2.entry.js +2 -0
- package/dist/q2-tecton-elements/p-8f273db2.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-8f8d5362.entry.js +2 -0
- package/dist/q2-tecton-elements/p-8f8d5362.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-9220365b.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-6cacc879.entry.js.map → p-9220365b.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-75fd6df5.entry.js → p-959f47ef.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-75fd6df5.entry.js.map → p-959f47ef.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-9da0db14.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-6170e44c.entry.js.map → p-9da0db14.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-a09c90c1.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-efbe6c17.entry.js.map → p-a09c90c1.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-a4017e55.entry.js +2 -0
- package/dist/q2-tecton-elements/p-a4017e55.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-a6b03db1.entry.js +2 -0
- package/dist/q2-tecton-elements/p-a6b03db1.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-af98db79.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-59d34a17.entry.js.map → p-af98db79.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e8858d0d.entry.js → p-b83568e7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-b83568e7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-bb0d4f5a.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-ff6afb42.entry.js.map → p-bb0d4f5a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-c057134f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-c057134f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-d7fb3534.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-3505f25c.entry.js.map → p-d7fb3534.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-db3bbfb8.entry.js +2 -0
- package/dist/q2-tecton-elements/p-db3bbfb8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-deb773a5.entry.js +2 -0
- package/dist/q2-tecton-elements/p-deb773a5.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-e4dadcd7.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-9a28b93a.entry.js.map → p-e4dadcd7.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-e98d9cf2.entry.js +2 -0
- package/dist/q2-tecton-elements/p-e98d9cf2.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-f198f77b.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f198f77b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-f34521a4.js +2 -0
- package/dist/q2-tecton-elements/p-f34521a4.js.map +1 -0
- package/dist/q2-tecton-elements/p-f3868a77.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f3868a77.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +109 -47
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js +156 -0
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js +27 -0
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +88 -4
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-option-list-test.e2e.js +40 -10
- package/dist/test/elements/q2-option-list-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.e2e.js +269 -79
- package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +117 -42
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tab-container-test.e2e.js +2 -2
- package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-textarea-test.e2e.js +879 -199
- package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
- package/dist/test/helpers.js +2 -1
- package/dist/test/helpers.js.map +1 -1
- package/dist/types/components/q2-calendar/index.d.ts +31 -0
- package/dist/types/components/q2-chart-donut/index.d.ts +9 -0
- package/dist/types/components/q2-checkbox-group/index.d.ts +5 -0
- package/dist/types/components/q2-editable-field/index.d.ts +23 -0
- package/dist/types/components/q2-input/index.d.ts +28 -2
- package/dist/types/components/q2-message/index.d.ts +3 -0
- package/dist/types/components/q2-popover/index.d.ts +9 -1
- package/dist/types/components/q2-radio-group/index.d.ts +5 -0
- package/dist/types/components/q2-select/index.d.ts +33 -3
- package/dist/types/components/q2-textarea/index.d.ts +12 -1
- package/dist/types/components.d.ts +93 -2
- package/dist/types/global.d.ts +2 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +3 -3
- package/dist/cjs/index-6f9f259c.js.map +0 -1
- package/dist/docs.d.ts +0 -322
- package/dist/docs.json +0 -10294
- package/dist/esm/index-74a659a5.js.map +0 -1
- package/dist/q2-tecton-elements/p-077107c1.entry.js +0 -2
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +0 -2
- package/dist/q2-tecton-elements/p-0d4aec6e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-0d4aec6e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-1c993698.entry.js +0 -2
- package/dist/q2-tecton-elements/p-252889b7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-252889b7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-25bd1b18.entry.js +0 -2
- package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2a975246.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2a975246.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-30facf35.entry.js +0 -2
- package/dist/q2-tecton-elements/p-30facf35.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-3505f25c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-46287c02.entry.js +0 -2
- package/dist/q2-tecton-elements/p-47c60d4a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4abbd0b1.entry.js +0 -2
- package/dist/q2-tecton-elements/p-536978fe.entry.js +0 -2
- package/dist/q2-tecton-elements/p-570c1d3d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-578e3f98.entry.js +0 -2
- package/dist/q2-tecton-elements/p-578e3f98.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-597f8656.entry.js +0 -2
- package/dist/q2-tecton-elements/p-59d34a17.entry.js +0 -2
- package/dist/q2-tecton-elements/p-5bc4d94c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-5bc4d94c.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-6170e44c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-67f33354.entry.js +0 -2
- package/dist/q2-tecton-elements/p-67f33354.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-680929be.entry.js +0 -2
- package/dist/q2-tecton-elements/p-680929be.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-6cacc879.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7366d36d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7366d36d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-9a28b93a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-9c9a2550.entry.js +0 -2
- package/dist/q2-tecton-elements/p-9d743327.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a52371cf.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a53e9f1e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a53e9f1e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ac82ea35.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ac82ea35.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-bfd69d42.entry.js +0 -2
- package/dist/q2-tecton-elements/p-db6921fb.entry.js +0 -2
- package/dist/q2-tecton-elements/p-db6921fb.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e45856f7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ef856249.js +0 -2
- package/dist/q2-tecton-elements/p-ef856249.js.map +0 -1
- package/dist/q2-tecton-elements/p-efbe6c17.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ff6afb42.entry.js +0 -2
- /package/dist/types/workspace/workspace/{tecton-production_release_1.37.x → tecton-production_release_1.38.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-editable-field-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-editable-field-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EACd,KAAK,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;EAC/B,IAAI,IAAa,CAAC;EAClB,IAAI,aAAyB,CAAC;EAC9B,IAAI,UAAsB,CAAC;EAC3B,IAAI,UAAsB,CAAC;EAC3B,IAAI,UAAsB,CAAC;EAC3B,IAAI,YAAwB,CAAC;EAE7B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACpD,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC;IAExE,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAErD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE3D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC1G,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAE1G,mCAAmC;IACnC,MAAM,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;IACtC,MAAM,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;EAC1C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;IAC1E,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,4DAA4D;KACrE,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC1G,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAExE,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpD,mCAAmC;IACnC,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,sBAAsB;IACtB,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;EACpC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;IACzE,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,gGAAgG;KACzG,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC1G,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAElF,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IACpC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAEpF,mCAAmC;IACnC,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAExE,sBAAsB;IACtB,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;EACpC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAC9C,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC1G,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAErE,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEhD,gBAAgB;IAChB,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEzD,oCAAoC;IACpC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAEpE,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;EACjC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IAC/D,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,2JAA2J;KACpK,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEjE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAErD,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;EACrD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK;IAClD,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE;MAClE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE;KACvE,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC,CAAC,yBAAyB,CAAC;MAC5C,KAAK,EAAE,WAAW;MAClB,cAAc,EAAE,oBAAoB;KACvC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK;IAC7C,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEhE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAExE,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC;MAC7C,KAAK,EAAE,YAAY;MACnB,OAAO,EAAE,KAAK;MACd,IAAI,EAAE,MAAM;MACZ,cAAc,EAAE,YAAY;KAC/B,CAAC,CAAC;IAEH,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzE,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAElF,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAE1E,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;EACzF,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK;IACjE,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,IAAI,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE3D,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,aAAa;MACxD,aAA4C,CAAC,QAAQ,GAAG,UAAU,CAAc;QAC7E,iEAAiE;QAChE,CAAC,CAAC,MAAqC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;MACzE,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAExE,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvD,mEAAmE;IACnE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,gDAAgD;IAChD,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE5C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzE,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvD,iBAAiB;IACjB,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK;IACnE,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEhE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE3F,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAErF,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzE,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAElF,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE;MACpE,GAAG,EAAE,OAAO;MACZ,OAAO,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC;MAC7C,IAAI,EAAE,MAAM;MACZ,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,YAAY;MACnB,cAAc,EAAE,YAAY;KAC/B,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK;IACtC,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,4DAA4D;KACrE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzE,gDAAgD;IAChD,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IAEjF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE1D,MAAM,CAAC,eAAe,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAExE,wDAAwD;IACxD,MAAM,CAAC,eAAe,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;EACvF,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK;IAC/C,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IAEH,cAAc,CAAC,IAAI,EAAE;MACjB,yBAAyB,EAAE,YAAY;MACvC,6BAA6B,EAAE,iBAAiB;KACnD,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrE,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAErD,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAErD,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;IACtE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;EACrD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK;IAC3D,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,oEAAoE;KAC7E,CAAC,CAAC;IACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE;MACrE,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE;MACtE,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE;MACrE,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE;MACvE,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC;IAC7B,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,qCAAqC,YAAY,wBAAwB;KAClF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1E,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EAC7C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK;IAChE,MAAM,YAAY,GAAG,eAAe,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC;IAC7B,IAAI,GAAG,MAAM,KAAK,CAAC;MACf,IAAI,EAAE,qCAAqC,YAAY,wBAAwB;KAClF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE3F,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EAC7C,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;MACnD,IAAI,GAAG,MAAM,KAAK,CAAC;QACf,IAAI,EAAE,yEAAyE;OAClF,CAAC,CAAC;MACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;MAClE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;MACjE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;MAC3E,IAAI,GAAG,MAAM,KAAK,CAAC;QACf,IAAI,EAAE,yEAAyE;OAClF,CAAC,CAAC;MAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;MAClE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;MACjE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;MAE3E,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,UAAU,CAAC,KAAK,IAAI,EAAE;MAClB,IAAI,GAAG,MAAM,KAAK,CAAC;QACf,IAAI,EAAE,gEAAgE;OACzE,CAAC,CAAC;MACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MACrD,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;MAC9E,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;MAC3E,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;MAC3E,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;MACvB,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;MACxE,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MACrE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,CAAC,oBAAoB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,oBAAoB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MACrE,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,CAAC,oBAAoB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,oBAAoB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;MACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;MACvB,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MACrE,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;MACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;MACtB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC;QAE7B,MAAM,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,CACF,MAAM,wBAAwB,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC5F,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MACrE,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC;QAE7B,MAAM,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxE,MAAM,CACF,MAAM,wBAAwB,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC5F,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;MACxE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;MACnC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,UAAU,CAAC,KAAK,IAAI,EAAE;UAClB,IAAI,GAAG,MAAM,KAAK,CAAC;YACf,IAAI,EAAE,4DAA4D;WACrE,CAAC,CAAC;UACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;UACnD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC;UAC1D,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;UACpD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;UAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,UAAU,CAAC,KAAK,IAAI,EAAE;UAClB,IAAI,GAAG,MAAM,KAAK,CAAC;YACf,IAAI,EAAE,oEAAoE;WAC7E,CAAC,CAAC;UACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;UAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC;UAC1D,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;UAC9C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;UAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;MAClC,IAAI,aAAyB,CAAC;MAC9B,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,MAAM,KAAK,CAAC;UACf,IAAI,EAAE,wFAAwF;SACjG,CAAC,CAAC;QACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MACzD,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,UAAU,CAAC,KAAK,IAAI,EAAE;UAClB,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;UAC5D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;UACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;UAC9E,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;UACtB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC;UAElF,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;UACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;UAC9E,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;UACtB,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;UACjE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC;UAElF,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;MACpC,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,MAAM,KAAK,CAAC;UACf,IAAI,EAAE,wFAAwF;SACjG,CAAC,CAAC;QACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MACzD,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,UAAU,CAAC,KAAK,IAAI,EAAE;UAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;UAC9E,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;UACtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;UACpC,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;UACjE,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;UAC5D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;UACnC,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;UACtD,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;UAC5D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,MAAM,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACxC,UAAU,CAAC,KAAK,IAAI,EAAE;UAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;UACpC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;UAChD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;UACzC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,EAAE,OAAO,CAAC,CAAC;UACpF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;UACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;UAChD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;UACzC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,CAAC;UACvF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,IAAI,IAAa,CAAC;IAClB,IAAI,aAAyB,CAAC;IAE9B,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;MAC7C,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,MAAM,KAAK,CAAC;UACf,IAAI,EAAE,kEAAkE;SAC3E,CAAC,CAAC;QACH,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MACzD,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;MAC5D,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;MAC3C,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACpE,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAC9C,IAAI,EACJ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,EACnD,SAAS,CACZ,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;MAC3C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;MACjD,MAAM,KAAK,GAAG,UAAU,CAAC;MACzB,IAAI,GAAG,MAAM,KAAK,CAAC;QACf,IAAI,EAAE,kCAAkC,KAAK,wBAAwB;OACxE,CAAC,CAAC;MACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAC5B,MAAM,uBAAuB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;MAC3E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;MAErE,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;MACpD,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n setTestStrings,\n setup,\n dispatchEvent,\n getActiveElementTestId,\n testDeprecatedAriaLabel,\n getNestedElementStyle,\n getNestedElementProperty,\n} from '../helpers';\n\ndescribe('q2-editable-field', () => {\n let page: E2EPage;\n let editableField: E2EElement;\n let inputField: E2EElement;\n let editButton: E2EElement;\n let saveButton: E2EElement;\n let cancelButton: E2EElement;\n\n it('should render the component in the dom', async () => {\n page = await setup({ html: `<q2-editable-field></q2-editable-field>` });\n\n editableField = await page.find('q2-editable-field');\n\n expect(editableField.tagName).toEqual('Q2-EDITABLE-FIELD');\n\n const editStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(1)');\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n\n // both edit and read states render\n expect(editStateWrapper).toBeTruthy();\n expect(readStateWrapper).toBeTruthy();\n });\n\n it('it correctly renders the read state when label not persisted', async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n const readStateHidden = await readStateWrapper.getProperty('hidden');\n const readStateTextWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n const editButton = await page.find('q2-editable-field >>> .begin-edit');\n\n expect(readStateHidden).toEqual(false);\n\n expect(readStateWrapper).not.toHaveClass('editing');\n\n // value rendered into text wrapper\n expect(readStateTextWrapper.textContent).toEqual('Test Value');\n\n // edit button renders\n expect(editButton).toBeTruthy();\n });\n\n it('it correctly renders the read state when label is persisted', async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" label=\"Test Label\" persistent-label></q2-editable-field>`,\n });\n\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n expect(readStateWrapper).not.toHaveClass('editing');\n expect(await readStateWrapper.getProperty('hidden')).toEqual(false);\n\n const readStateLabel = await page.find('q2-editable-field >>> .read-state-label');\n\n expect(readStateLabel).not.toBeNull;\n expect(readStateLabel.tagName).toEqual('DT');\n expect(readStateLabel.textContent).toEqual('Test Label');\n\n const readStateTextWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n\n // value rendered into text wrapper\n expect(readStateTextWrapper.textContent).toEqual('Test Value');\n\n const editButton = await page.find('q2-editable-field >>> .begin-edit');\n\n // edit button renders\n expect(editButton).toBeTruthy();\n });\n\n it('correctly renders the edit state', async () => {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n\n const editStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(1)');\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n expect(editStateWrapper).toHaveClass('editing');\n\n // input renders\n expect(innerInput).toBeTruthy();\n\n const inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual('Test Value');\n\n const cancelBtn = await page.find('q2-editable-field >>> .cancel-edit');\n const saveBtn = await page.find('q2-editable-field >>> .save-edit');\n\n expect(cancelBtn).toBeTruthy();\n expect(saveBtn).toBeTruthy();\n });\n\n it('passes appropriate properties through to q2-input', async () => {\n page = await setup({\n html: `<q2-editable-field editing label=\"Test Label\" type=\"testType\" format-modifier=\"testFormatModifier\" maxlength=\"10\" value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n editableField.setProperty('errors', ['error1', 'error2']);\n editableField.setProperty('hints', ['hint1', 'hint2']);\n\n await page.waitForChanges();\n\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n const inputType = await innerInput.getProperty('type');\n const inputErrors = await innerInput.getProperty('errors');\n const inputHints = await innerInput.getProperty('hints');\n const inputLabel = await innerInput.getProperty('label');\n const inputFormatter = await innerInput.getProperty('formatModifier');\n const inputMaxLength = await innerInput.getProperty('maxlength');\n\n expect(inputType).toEqual('testType');\n expect(inputErrors).toEqual(['error1', 'error2']);\n expect(inputHints).toEqual(['hint1', 'hint2']);\n expect(inputLabel).toEqual('Test Label');\n expect(inputFormatter).toEqual('testFormatModifier');\n expect(inputMaxLength).toEqual(10);\n expect(innerInput).not.toHaveAttribute('hide-label');\n\n editableField.setProperty('ariaLabel', 'Test aria-label');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Test aria-label');\n expect(innerInput).toHaveAttribute('hide-label');\n });\n\n it('correctly bubbles the q2-input input event', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const inputEventSpy = await editableField.spyOnEvent('input');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'input', {\n detail: { value: 'testValue', formattedValue: 'formattedTestValue' },\n });\n\n expect(inputEventSpy).toHaveReceivedEventDetail({\n value: 'testValue',\n formattedValue: 'formattedTestValue',\n });\n });\n\n it('correctly emits the change event data', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const changeEventSpy = await editableField.spyOnEvent('change');\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({\n value: 'Test Value',\n editing: false,\n name: 'save',\n formattedValue: 'Test Value',\n });\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ editing: true, name: 'edit' });\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ editing: false, name: 'cancel' });\n });\n\n it('allows custom handler to control the change event effects', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n let isEditing = await editableField.getProperty('editing');\n\n await page.$eval('q2-editable-field', function (editableField) {\n (editableField as HTMLQ2EditableFieldElement).onchange = function (e: CustomEvent) {\n // basically don't allow editing value to change via change event\n (e.target as HTMLQ2EditableFieldElement).editing = !e.detail.editing;\n };\n });\n\n await page.waitForChanges();\n\n expect(isEditing).toEqual(true);\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n isEditing = await editableField.getProperty('editing');\n\n // still editable because onchange event overwrote default behavior\n expect(isEditing).toEqual(true);\n\n // manually set editing to false to test inverse\n editableField.setProperty('editing', false);\n\n await page.waitForChanges();\n\n isEditing = await editableField.getProperty('editing');\n\n expect(isEditing).toEqual(false);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n isEditing = await editableField.getProperty('editing');\n\n // still false...\n expect(isEditing).toEqual(false);\n });\n\n it('triggers change event from Escape and Enter keyboard events', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const changeEventSpy = await editableField.spyOnEvent('change');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', { key: 'Escape' });\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ name: 'cancel', editing: false });\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ name: 'edit', editing: true });\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', {\n key: 'Enter',\n bubbles: true,\n });\n\n expect(changeEventSpy).toHaveReceivedEventDetail({\n name: 'save',\n editing: false,\n value: 'Test Value',\n formattedValue: 'Test Value',\n });\n });\n\n it('shifts focus on editing change', async function () {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n const editBtn = await page.find('q2-editable-field >>> .begin-edit');\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n const inputFocusSpy = await innerInput.spyOnEvent('focus');\n\n expect(inputFocusSpy).toHaveReceivedEventTimes(0);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n // focus on input when switched to editing state\n expect(inputFocusSpy).toHaveReceivedEventTimes(2); // 2 because of focus bubbling\n\n const editBtnFocusSpy = await editBtn.spyOnEvent('focus');\n\n expect(editBtnFocusSpy).toHaveReceivedEventTimes(0);\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n // edit button focused when changed to no longer editing\n expect(editBtnFocusSpy).toHaveReceivedEventTimes(2); // 2 because of focus bubbling\n });\n\n it('localizes appropriate attribute strings', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n\n setTestStrings(page, {\n 'q2-editable-field.label': 'Label Text',\n 'q2-editable-field.ariaLabel': 'Aria-Label Text',\n });\n\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n editableField = await page.find('q2-editable-field');\n\n editableField.setProperty('label', 'q2-editable-field.label');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Label Text');\n expect(innerInput).not.toHaveAttribute('hide-label');\n\n editableField.setProperty('ariaLabel', 'q2-editable-field.ariaLabel');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Aria-Label Text');\n expect(innerInput).toHaveAttribute('hide-label');\n });\n\n it('prevents click propagation from interation elements', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const clickEventSpy = await editableField.spyOnEvent('click');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'click', { composed: true });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click', { composed: true });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.text-wrapper'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).toHaveReceivedEventTimes(1);\n });\n\n it('correctly restore previous value when cancel button clicked', async function () {\n const defaultValue = 'Default Value';\n const newValue = 'New Value';\n page = await setup({\n html: `<q2-editable-field editing value=\"${defaultValue}\"></q2-editable-field>`,\n });\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n let inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual(defaultValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n innerInput.setProperty('value', newValue);\n await page.waitForChanges();\n\n inputValue = await innerInput.getProperty('value');\n expect(inputValue).toEqual(newValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click');\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n });\n\n it('correctly restore previous value when escape key pressed', async function () {\n const defaultValue = 'Default Value';\n const newValue = 'New Value';\n page = await setup({\n html: `<q2-editable-field editing value=\"${defaultValue}\"></q2-editable-field>`,\n });\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n let inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual(defaultValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n innerInput.setProperty('value', newValue);\n await page.waitForChanges();\n\n inputValue = await innerInput.getProperty('value');\n expect(inputValue).toEqual(newValue);\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', { key: 'Escape' });\n\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n });\n\n describe('when value and type are provided to q2-editable-field', () => {\n it('maintains formatted value in q2-input', async () => {\n page = await setup({\n html: `<q2-editable-field type='phone' value='1234567890'></q2-editable-field>`,\n });\n const q2Input = await page.find('q2-editable-field >>> q2-input');\n const formattedVal = await q2Input.getProperty('formattedValue');\n expect(formattedVal).toBe('(123) 456-7890');\n });\n\n it('displays formattedValue in .text-wrapper on q2-editable-field', async () => {\n page = await setup({\n html: `<q2-editable-field type='phone' value='1234567890'></q2-editable-field>`,\n });\n\n const q2Input = await page.find('q2-editable-field >>> q2-input');\n const formattedVal = await q2Input.getProperty('formattedValue');\n const textWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n\n expect(formattedVal).toBe(textWrapper.innerText);\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Original Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n inputField = await page.find('q2-editable-field >>> [test-id=editableInput]');\n editButton = await page.find('q2-editable-field >>> [test-id=editButton]');\n saveButton = await page.find('q2-editable-field >>> [test-id=saveButton]');\n cancelButton = await page.find('q2-editable-field >>> [test-id=cancelButton]');\n });\n\n describe('clickEdit', () => {\n it('clicks the edit button and enters editing mode', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickEdit');\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(true);\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n\n it('does nothing if already in editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickEdit');\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n });\n });\n\n describe('clickCancel', () => {\n it('clicks the cancel button and exits editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const cancelButtonClickSpy = await cancelButton.spyOnEvent('click');\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickCancel');\n page.waitForChanges();\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('does nothing if not in editing mode', async () => {\n const cancelButtonClickSpy = await cancelButton.spyOnEvent('click');\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickCancel');\n page.waitForChanges();\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n });\n });\n\n describe('clickSave', () => {\n it('clicks the save button and exits editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickSave');\n page.waitForChanges();\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('does nothing if not in editing mode', async () => {\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickSave');\n page.waitForChanges();\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n });\n });\n\n describe('setValue', () => {\n it('clicks edit button, updates value, and clicks save button', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n const newValue = 'New Value';\n\n await editableField.callMethod('setValue', newValue);\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await editableField.getProperty('value')).toEqual(newValue);\n expect(await inputField.getProperty('value')).toEqual(newValue);\n expect(\n await getNestedElementProperty(page, ['q2-editable-field', 'q2-input', 'input'], 'value')\n ).toEqual(newValue);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('clicks edit button, updates value, but does NOT click save when told not to', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n const newValue = 'New Value';\n\n await editableField.callMethod('setValue', newValue, { clickSave: false });\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n expect(await editableField.getProperty('value')).toEqual('Original Value');\n expect(await inputField.getProperty('value')).toEqual('Original Value');\n expect(\n await getNestedElementProperty(page, ['q2-editable-field', 'q2-input', 'input'], 'value')\n ).toEqual(newValue);\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n });\n\n describe('focus', () => {\n describe('when invoked directly', () => {\n describe('when in default mode', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('focuses edit button on event dispatch', async () => {\n await dispatchEvent(page, ['q2-editable-field'], 'focus');\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('focuses edit button when method called', async () => {\n await editableField.focus();\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n });\n\n describe('when in edit mode', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('focuses input on event dispatch', async () => {\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-editable-field'], 'focus');\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n\n it('focuses input when method called', async () => {\n await editableField.focus();\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n });\n\n describe('when save is clicked', () => {\n let editableField: E2EElement;\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing onchange=\"() => {}\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n describe('when there are errors', () => {\n beforeEach(async () => {\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n });\n\n it('focuses the input field', async () => {\n await page.waitForChanges();\n\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n await dispatchEvent(page, ['q2-editable-field', '[test-id=saveButton]'], 'click');\n\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n\n describe('when there are not errors', () => {\n it('does not change focus', async () => {\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=saveButton]'], 'click');\n\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n });\n });\n });\n\n describe('when errors is updated', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing onchange=\"() => {}\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n describe('when component has focus', () => {\n beforeEach(async () => {\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n await page.waitForChanges();\n });\n\n it('focuses on input field', async () => {\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n\n describe('when component does not have focus', () => {\n it('does not change focus', async () => {\n expect(await getActiveElementTestId(page)).toBeNull();\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n\n describe('when component is disabled', () => {\n beforeEach(async () => {\n page = await setup({ html: `<q2-editable-field disabled> Hello </q2-editable-field>` });\n });\n\n it('editButton is disabled', async () => {\n const el = await page.find('q2-editable-field');\n const spy = await el.spyOnEvent('click');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=\"editButton\"]'], 'click');\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('editableInput is disabled', async () => {\n const el = await page.find('q2-editable-field');\n const spy = await el.spyOnEvent('click');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=\"editableInput\"]'], 'click');\n expect(spy).not.toHaveReceivedEvent();\n });\n });\n });\n });\n\n describe('display block', () => {\n let page: E2EPage;\n let editableField: E2EElement;\n\n describe('when block property is provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field block value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('block property passes to q2-editable-field', async () => {\n expect(editableField).toHaveAttribute('block');\n expect(editableField.getAttribute('block')).toEqual('');\n });\n\n it('sets CSS to display: block', async () => {\n const editFieldDisplay = await getNestedElementStyle(page, 'q2-editable-field', 'display');\n expect(editFieldDisplay).toBe('block');\n });\n\n it('sets the q2-editable-field-wrapper CSS to display:grid', async () => {\n editableField.setProperty('editing', true);\n await page.waitForChanges();\n const wrapperDisplay = await getNestedElementStyle(\n page,\n ['q2-editable-field', '.q2-editable-field-wrapper'],\n 'display'\n );\n expect(wrapperDisplay).toEqual('grid');\n });\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({\n html: `<q2-editable-field aria-label=\"${label}\"></q2-editable-field>`,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-editable-field'), label);\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n expect(innerInput).toEqualAttribute('label', label);\n expect(innerInput).toHaveAttribute('hide-label');\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-editable-field-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-editable-field-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n setTestStrings,\n setup,\n dispatchEvent,\n getActiveElementTestId,\n testDeprecatedAriaLabel,\n getNestedElementStyle,\n getNestedElementProperty,\n} from '../helpers';\n\ndescribe('q2-editable-field', () => {\n let page: E2EPage;\n let editableField: E2EElement;\n let inputField: E2EElement;\n let editButton: E2EElement;\n let saveButton: E2EElement;\n let cancelButton: E2EElement;\n\n it('should render the component in the dom', async () => {\n page = await setup({ html: `<q2-editable-field></q2-editable-field>` });\n\n editableField = await page.find('q2-editable-field');\n\n expect(editableField.tagName).toEqual('Q2-EDITABLE-FIELD');\n\n const editStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(1)');\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n\n // both edit and read states render\n expect(editStateWrapper).toBeTruthy();\n expect(readStateWrapper).toBeTruthy();\n });\n\n it('it correctly renders the read state when label not persisted', async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n const readStateHidden = await readStateWrapper.getProperty('hidden');\n const readStateTextWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n const editButton = await page.find('q2-editable-field >>> .begin-edit');\n\n expect(readStateHidden).toEqual(false);\n\n expect(readStateWrapper).not.toHaveClass('editing');\n\n // value rendered into text wrapper\n expect(readStateTextWrapper.textContent).toEqual('Test Value');\n\n // edit button renders\n expect(editButton).toBeTruthy();\n });\n\n it('it correctly renders the read state when label is persisted', async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" label=\"Test Label\" persistent-label></q2-editable-field>`,\n });\n\n const readStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(2)');\n expect(readStateWrapper).not.toHaveClass('editing');\n expect(await readStateWrapper.getProperty('hidden')).toEqual(false);\n\n const readStateLabel = await page.find('q2-editable-field >>> .read-state-label');\n\n expect(readStateLabel).not.toBeNull;\n expect(readStateLabel.tagName).toEqual('DT');\n expect(readStateLabel.textContent).toEqual('Test Label');\n\n const readStateTextWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n\n // value rendered into text wrapper\n expect(readStateTextWrapper.textContent).toEqual('Test Value');\n\n const editButton = await page.find('q2-editable-field >>> .begin-edit');\n\n // edit button renders\n expect(editButton).toBeTruthy();\n });\n\n it('correctly renders the edit state', async () => {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n\n const editStateWrapper = await page.find('q2-editable-field >>> .q2-editable-field-wrapper:nth-child(1)');\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n expect(editStateWrapper).toHaveClass('editing');\n\n // input renders\n expect(innerInput).toBeTruthy();\n\n const inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual('Test Value');\n\n const cancelBtn = await page.find('q2-editable-field >>> .cancel-edit');\n const saveBtn = await page.find('q2-editable-field >>> .save-edit');\n\n expect(cancelBtn).toBeTruthy();\n expect(saveBtn).toBeTruthy();\n });\n\n it('passes appropriate properties through to q2-input', async () => {\n page = await setup({\n html: `<q2-editable-field editing label=\"Test Label\" type=\"testType\" format-modifier=\"testFormatModifier\" maxlength=\"10\" value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n editableField.setProperty('errors', ['error1', 'error2']);\n editableField.setProperty('hints', ['hint1', 'hint2']);\n\n await page.waitForChanges();\n\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n const inputType = await innerInput.getProperty('type');\n const inputErrors = await innerInput.getProperty('errors');\n const inputHints = await innerInput.getProperty('hints');\n const inputLabel = await innerInput.getProperty('label');\n const inputFormatter = await innerInput.getProperty('formatModifier');\n const inputMaxLength = await innerInput.getProperty('maxlength');\n\n expect(inputType).toEqual('testType');\n expect(inputErrors).toEqual(['error1', 'error2']);\n expect(inputHints).toEqual(['hint1', 'hint2']);\n expect(inputLabel).toEqual('Test Label');\n expect(inputFormatter).toEqual('testFormatModifier');\n expect(inputMaxLength).toEqual(10);\n expect(innerInput).not.toHaveAttribute('hide-label');\n\n editableField.setProperty('ariaLabel', 'Test aria-label');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Test aria-label');\n expect(innerInput).toHaveAttribute('hide-label');\n });\n\n it('correctly bubbles the q2-input input event', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const inputEventSpy = await editableField.spyOnEvent('input');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'input', {\n detail: { value: 'testValue', formattedValue: 'formattedTestValue' },\n });\n\n expect(inputEventSpy).toHaveReceivedEventDetail({\n value: 'testValue',\n formattedValue: 'formattedTestValue',\n });\n });\n\n it('correctly emits the change event data', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const changeEventSpy = await editableField.spyOnEvent('change');\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({\n value: 'Test Value',\n editing: false,\n name: 'save',\n formattedValue: 'Test Value',\n });\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ editing: true, name: 'edit' });\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ editing: false, name: 'cancel' });\n });\n\n it('allows custom handler to control the change event effects', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n let isEditing = await editableField.getProperty('editing');\n\n await page.$eval('q2-editable-field', function (editableField) {\n (editableField as HTMLQ2EditableFieldElement).onchange = function (e: CustomEvent) {\n // basically don't allow editing value to change via change event\n (e.target as HTMLQ2EditableFieldElement).editing = !e.detail.editing;\n };\n });\n\n await page.waitForChanges();\n\n expect(isEditing).toEqual(true);\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n isEditing = await editableField.getProperty('editing');\n\n // still editable because onchange event overwrote default behavior\n expect(isEditing).toEqual(true);\n\n // manually set editing to false to test inverse\n editableField.setProperty('editing', false);\n\n await page.waitForChanges();\n\n isEditing = await editableField.getProperty('editing');\n\n expect(isEditing).toEqual(false);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n isEditing = await editableField.getProperty('editing');\n\n // still false...\n expect(isEditing).toEqual(false);\n });\n\n it('triggers change event from Escape and Enter keyboard events', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const changeEventSpy = await editableField.spyOnEvent('change');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', { key: 'Escape' });\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ name: 'cancel', editing: false });\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ name: 'edit', editing: true });\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', {\n key: 'Enter',\n bubbles: true,\n });\n\n expect(changeEventSpy).toHaveReceivedEventDetail({\n name: 'save',\n editing: false,\n value: 'Test Value',\n formattedValue: 'Test Value',\n });\n });\n\n it('shifts focus on editing change', async function () {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n const editBtn = await page.find('q2-editable-field >>> .begin-edit');\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n const inputFocusSpy = await innerInput.spyOnEvent('focus');\n\n expect(inputFocusSpy).toHaveReceivedEventTimes(0);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n\n // focus on input when switched to editing state\n expect(inputFocusSpy).toHaveReceivedEventTimes(2); // 2 because of focus bubbling\n\n const editBtnFocusSpy = await editBtn.spyOnEvent('focus');\n\n expect(editBtnFocusSpy).toHaveReceivedEventTimes(0);\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n\n // edit button focused when changed to no longer editing\n expect(editBtnFocusSpy).toHaveReceivedEventTimes(2); // 2 because of focus bubbling\n });\n\n it('localizes appropriate attribute strings', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n\n setTestStrings(page, {\n 'q2-editable-field.label': 'Label Text',\n 'q2-editable-field.ariaLabel': 'Aria-Label Text',\n });\n\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n editableField = await page.find('q2-editable-field');\n\n editableField.setProperty('label', 'q2-editable-field.label');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Label Text');\n expect(innerInput).not.toHaveAttribute('hide-label');\n\n editableField.setProperty('ariaLabel', 'q2-editable-field.ariaLabel');\n await page.waitForChanges();\n\n expect(innerInput).toEqualAttribute('label', 'Aria-Label Text');\n expect(innerInput).toHaveAttribute('hide-label');\n });\n\n it('prevents click propagation from interation elements', async function () {\n page = await setup({\n html: `<q2-editable-field editing value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n const clickEventSpy = await editableField.spyOnEvent('click');\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'click', { composed: true });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click', { composed: true });\n expect(clickEventSpy).not.toHaveReceivedEvent();\n\n await dispatchEvent(page, ['q2-editable-field', '.text-wrapper'], 'click', {\n composed: true,\n });\n expect(clickEventSpy).toHaveReceivedEventTimes(1);\n });\n\n it('correctly restore previous value when cancel button clicked', async function () {\n const defaultValue = 'Default Value';\n const newValue = 'New Value';\n page = await setup({\n html: `<q2-editable-field editing value=\"${defaultValue}\"></q2-editable-field>`,\n });\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n let inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual(defaultValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n innerInput.setProperty('value', newValue);\n await page.waitForChanges();\n\n inputValue = await innerInput.getProperty('value');\n expect(inputValue).toEqual(newValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click');\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n });\n\n it('correctly restore previous value when calcel button clicked and save button clicked', async function () {\n const defaultValue = 'Default Value';\n const newValue = 'New Value';\n page = await setup({\n html: `<q2-editable-field editing value=\"${defaultValue}\"></q2-editable-field>`,\n });\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n let inputValue;\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n innerInput.setProperty('value', newValue);\n await page.waitForChanges();\n inputValue = await innerInput.getProperty('value');\n expect(inputValue).toEqual(newValue);\n\n // should not save after cancel buton clicked\n await dispatchEvent(page, ['q2-editable-field', '.cancel-edit'], 'click');\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n await dispatchEvent(page, ['q2-editable-field', '.save-edit'], 'click');\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n });\n\n it('correctly restore previous value when escape key pressed', async function () {\n const defaultValue = 'Default Value';\n const newValue = 'New Value';\n page = await setup({\n html: `<q2-editable-field editing value=\"${defaultValue}\"></q2-editable-field>`,\n });\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n let inputValue = await innerInput.getProperty('value');\n\n // input value matches element value\n expect(inputValue).toEqual(defaultValue);\n\n await dispatchEvent(page, ['q2-editable-field', '.begin-edit'], 'click');\n innerInput.setProperty('value', newValue);\n await page.waitForChanges();\n\n inputValue = await innerInput.getProperty('value');\n expect(inputValue).toEqual(newValue);\n\n await dispatchEvent(page, ['q2-editable-field', 'q2-input'], 'keydown', { key: 'Escape' });\n\n inputValue = await innerInput.getProperty('value');\n await page.waitForChanges();\n expect(inputValue).toEqual(defaultValue);\n });\n\n describe('when value and type are provided to q2-editable-field', () => {\n it('maintains formatted value in q2-input', async () => {\n page = await setup({\n html: `<q2-editable-field type='phone' value='1234567890'></q2-editable-field>`,\n });\n const q2Input = await page.find('q2-editable-field >>> q2-input');\n const formattedVal = await q2Input.getProperty('formattedValue');\n expect(formattedVal).toBe('(123) 456-7890');\n });\n\n it('displays formattedValue in .text-wrapper on q2-editable-field', async () => {\n page = await setup({\n html: `<q2-editable-field type='phone' value='1234567890'></q2-editable-field>`,\n });\n\n const q2Input = await page.find('q2-editable-field >>> q2-input');\n const formattedVal = await q2Input.getProperty('formattedValue');\n const textWrapper = await page.find('q2-editable-field >>> .text-wrapper');\n\n expect(formattedVal).toBe(textWrapper.innerText);\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Original Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n inputField = await page.find('q2-editable-field >>> [test-id=editableInput]');\n editButton = await page.find('q2-editable-field >>> [test-id=editButton]');\n saveButton = await page.find('q2-editable-field >>> [test-id=saveButton]');\n cancelButton = await page.find('q2-editable-field >>> [test-id=cancelButton]');\n });\n\n describe('clickEdit', () => {\n it('clicks the edit button and enters editing mode', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickEdit');\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(true);\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n\n it('does nothing if already in editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickEdit');\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n });\n });\n\n describe('clickCancel', () => {\n it('clicks the cancel button and exits editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const cancelButtonClickSpy = await cancelButton.spyOnEvent('click');\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickCancel');\n page.waitForChanges();\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('does nothing if not in editing mode', async () => {\n const cancelButtonClickSpy = await cancelButton.spyOnEvent('click');\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickCancel');\n page.waitForChanges();\n\n expect(cancelButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n });\n });\n\n describe('clickSave', () => {\n it('clicks the save button and exits editing mode', async () => {\n await editableField.setProperty('editing', true);\n await page.waitForChanges();\n\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n\n await editableField.callMethod('clickSave');\n page.waitForChanges();\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('does nothing if not in editing mode', async () => {\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n\n await editableField.callMethod('clickSave');\n page.waitForChanges();\n\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n });\n });\n\n describe('setValue', () => {\n it('clicks edit button, updates value, and clicks save button', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n const newValue = 'New Value';\n\n await editableField.callMethod('setValue', newValue);\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(await editableField.getProperty('editing')).toEqual(false);\n expect(await editableField.getProperty('value')).toEqual(newValue);\n expect(await inputField.getProperty('value')).toEqual(newValue);\n expect(\n await getNestedElementProperty(page, ['q2-editable-field', 'q2-input', 'input'], 'value')\n ).toEqual(newValue);\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('clicks edit button, updates value, but does NOT click save when told not to', async () => {\n const editButtonClickSpy = await editButton.spyOnEvent('click');\n const saveButtonClickSpy = await saveButton.spyOnEvent('click');\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(false);\n const newValue = 'New Value';\n\n await editableField.callMethod('setValue', newValue, { clickSave: false });\n page.waitForChanges();\n\n expect(editButtonClickSpy).toHaveReceivedEventTimes(1);\n expect(saveButtonClickSpy).toHaveReceivedEventTimes(0);\n expect(await editableField.getProperty('editing')).toEqual(true);\n expect(await editableField.getProperty('value')).toEqual('Original Value');\n expect(await inputField.getProperty('value')).toEqual('Original Value');\n expect(\n await getNestedElementProperty(page, ['q2-editable-field', 'q2-input', 'input'], 'value')\n ).toEqual(newValue);\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n });\n\n describe('focus', () => {\n describe('when invoked directly', () => {\n describe('when in default mode', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('focuses edit button on event dispatch', async () => {\n await dispatchEvent(page, ['q2-editable-field'], 'focus');\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n\n it('focuses edit button when method called', async () => {\n await editableField.focus();\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editButton');\n });\n });\n\n describe('when in edit mode', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('focuses input on event dispatch', async () => {\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-editable-field'], 'focus');\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n\n it('focuses input when method called', async () => {\n await editableField.focus();\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n });\n\n describe('when save is clicked', () => {\n let editableField: E2EElement;\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing onchange=\"() => {}\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n describe('when there are errors', () => {\n beforeEach(async () => {\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n });\n\n it('focuses the input field', async () => {\n await page.waitForChanges();\n\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n await dispatchEvent(page, ['q2-editable-field', '[test-id=saveButton]'], 'click');\n\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n\n describe('when there are not errors', () => {\n it('does not change focus', async () => {\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=saveButton]'], 'click');\n\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n });\n });\n });\n\n describe('when errors is updated', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field value=\"Test Value\" editing onchange=\"() => {}\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n describe('when component has focus', () => {\n beforeEach(async () => {\n const saveBtn = await page.find('q2-editable-field >>> [test-id=saveButton]');\n await saveBtn.focus();\n await page.waitForChanges();\n });\n\n it('focuses on input field', async () => {\n expect(await getActiveElementTestId(page)).toEqual('saveButton');\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toEqual('editableInput');\n });\n });\n\n describe('when component does not have focus', () => {\n it('does not change focus', async () => {\n expect(await getActiveElementTestId(page)).toBeNull();\n await editableField.setProperty('errors', [\"It's busted.\"]);\n await page.waitForChanges();\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n\n describe('when component is disabled', () => {\n beforeEach(async () => {\n page = await setup({ html: `<q2-editable-field disabled> Hello </q2-editable-field>` });\n });\n\n it('editButton is disabled', async () => {\n const el = await page.find('q2-editable-field');\n const spy = await el.spyOnEvent('click');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=\"editButton\"]'], 'click');\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('editableInput is disabled', async () => {\n const el = await page.find('q2-editable-field');\n const spy = await el.spyOnEvent('click');\n await dispatchEvent(page, ['q2-editable-field', '[test-id=\"editableInput\"]'], 'click');\n expect(spy).not.toHaveReceivedEvent();\n });\n });\n });\n });\n\n describe('display block', () => {\n let page: E2EPage;\n let editableField: E2EElement;\n\n describe('when block property is provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-editable-field block value=\"Test Value\"></q2-editable-field>`,\n });\n editableField = await page.find('q2-editable-field');\n });\n\n it('block property passes to q2-editable-field', async () => {\n expect(editableField).toHaveAttribute('block');\n expect(editableField.getAttribute('block')).toEqual('');\n });\n\n it('sets CSS to display: block', async () => {\n const editFieldDisplay = await getNestedElementStyle(page, 'q2-editable-field', 'display');\n expect(editFieldDisplay).toBe('block');\n });\n\n it('sets the q2-editable-field-wrapper CSS to display:grid', async () => {\n editableField.setProperty('editing', true);\n await page.waitForChanges();\n const wrapperDisplay = await getNestedElementStyle(\n page,\n ['q2-editable-field', '.q2-editable-field-wrapper'],\n 'display'\n );\n expect(wrapperDisplay).toEqual('grid');\n });\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({\n html: `<q2-editable-field aria-label=\"${label}\"></q2-editable-field>`,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-editable-field'), label);\n const innerInput = await page.find('q2-editable-field >>> q2-input');\n\n expect(innerInput).toEqualAttribute('label', label);\n expect(innerInput).toHaveAttribute('hide-label');\n });\n });\n});\n"]}
|
|
@@ -1195,20 +1195,21 @@ describe('q2-input', () => {
|
|
|
1195
1195
|
await innerInput.press('o');
|
|
1196
1196
|
expect(await innerInput.getProperty('value')).toEqual('aafo');
|
|
1197
1197
|
});
|
|
1198
|
-
it('should move the cursor to the end if type is currency when first character is deleted', async () => {
|
|
1198
|
+
it('should not move the cursor to the end if type is currency when first character is deleted', async () => {
|
|
1199
1199
|
const page = await setup({
|
|
1200
1200
|
html: '<q2-input type="currency" value="123"></q2input>',
|
|
1201
1201
|
});
|
|
1202
1202
|
const innerInput = await page.find('q2-input >>> .input-field');
|
|
1203
1203
|
await page.waitForChanges();
|
|
1204
1204
|
const currentPosition = await innerInput.getProperty('selectionStart');
|
|
1205
|
+
// For loop pushes cursor to left end position of input.value
|
|
1205
1206
|
for (let i = 0; i < currentPosition - 1; i++) {
|
|
1206
1207
|
await innerInput.press('ArrowLeft');
|
|
1207
1208
|
}
|
|
1208
1209
|
await innerInput.press('Backspace');
|
|
1209
1210
|
await page.waitForChanges();
|
|
1210
1211
|
const newPosition = await innerInput.getProperty('selectionStart');
|
|
1211
|
-
expect(newPosition).toEqual(
|
|
1212
|
+
expect(newPosition).toEqual(0); // 0 represents that cursor stays at far left (begining position of input.value)
|
|
1212
1213
|
});
|
|
1213
1214
|
it('should not move the cursor position if type is not currency when first character is deleted', async () => {
|
|
1214
1215
|
const page = await setup({
|
|
@@ -1619,6 +1620,47 @@ describe('q2-input', () => {
|
|
|
1619
1620
|
});
|
|
1620
1621
|
});
|
|
1621
1622
|
});
|
|
1623
|
+
describe('hideLabel', () => {
|
|
1624
|
+
describe('when hideLabel is provided', () => {
|
|
1625
|
+
it('hides the label element', async () => {
|
|
1626
|
+
const page = await setup({ html: '<q2-input hide-label/>' });
|
|
1627
|
+
const input = await page.find('q2-input');
|
|
1628
|
+
expect(input).toHaveAttribute('hide-label');
|
|
1629
|
+
input.setProperty('label', 'My Label');
|
|
1630
|
+
await page.waitForChanges();
|
|
1631
|
+
expect(input).toHaveAttribute('hide-label');
|
|
1632
|
+
input.setAttribute('label', 'Your Label');
|
|
1633
|
+
await page.waitForChanges();
|
|
1634
|
+
expect(input).toHaveAttribute('hide-label');
|
|
1635
|
+
});
|
|
1636
|
+
});
|
|
1637
|
+
describe('when hideLabel is NOT provided', () => {
|
|
1638
|
+
it('when optional is provided, it hides the label element', async () => {
|
|
1639
|
+
const page = await setup({ html: '<q2-input optional/>' });
|
|
1640
|
+
const label = await page.find('q2-input >>> label');
|
|
1641
|
+
const hasSRClass = label.classList.contains('sr');
|
|
1642
|
+
expect(hasSRClass).toBeTruthy();
|
|
1643
|
+
});
|
|
1644
|
+
it('when readonly is provided, it hides the label element', async () => {
|
|
1645
|
+
const page = await setup({ html: '<q2-input readonly/>' });
|
|
1646
|
+
const label = await page.find('q2-input >>> label');
|
|
1647
|
+
const hasSRClass = label.classList.contains('sr');
|
|
1648
|
+
expect(hasSRClass).toBeTruthy();
|
|
1649
|
+
});
|
|
1650
|
+
it('when label is provided, it shows the label element', async () => {
|
|
1651
|
+
const page = await setup({ html: '<q2-input label="My Label"/>' });
|
|
1652
|
+
const label = await page.find('q2-input >>> label');
|
|
1653
|
+
const hasSRClass = label.classList.contains('sr');
|
|
1654
|
+
expect(hasSRClass).toBeFalsy();
|
|
1655
|
+
});
|
|
1656
|
+
it('when label is not provided, it hides the label element', async () => {
|
|
1657
|
+
const page = await setup({ html: '<q2-input />' });
|
|
1658
|
+
const label = await page.find('q2-input >>> label');
|
|
1659
|
+
const hasSRClass = label.classList.contains('sr');
|
|
1660
|
+
expect(hasSRClass).toBeTruthy();
|
|
1661
|
+
});
|
|
1662
|
+
});
|
|
1663
|
+
});
|
|
1622
1664
|
});
|
|
1623
1665
|
describe('Methods', () => {
|
|
1624
1666
|
describe('setValue', () => {
|
|
@@ -1749,7 +1791,7 @@ describe('q2-input', () => {
|
|
|
1749
1791
|
<q2-input></q2-input>
|
|
1750
1792
|
`,
|
|
1751
1793
|
});
|
|
1752
|
-
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).
|
|
1794
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toBeUndefined();
|
|
1753
1795
|
});
|
|
1754
1796
|
it('has a node assigned to it when provided', async () => {
|
|
1755
1797
|
const page = await setup({
|
|
@@ -1761,6 +1803,27 @@ describe('q2-input', () => {
|
|
|
1761
1803
|
});
|
|
1762
1804
|
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);
|
|
1763
1805
|
});
|
|
1806
|
+
it('automatically updates when added at runtime', async () => {
|
|
1807
|
+
const page = await setup({
|
|
1808
|
+
html: `
|
|
1809
|
+
<q2-input></q2-input>
|
|
1810
|
+
`,
|
|
1811
|
+
});
|
|
1812
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toBeUndefined();
|
|
1813
|
+
await page.$eval('q2-input', (element) => {
|
|
1814
|
+
const slotDiv = document.createElement('div');
|
|
1815
|
+
slotDiv.slot = 'input-right';
|
|
1816
|
+
slotDiv.textContent = 'Test';
|
|
1817
|
+
element.appendChild(slotDiv);
|
|
1818
|
+
});
|
|
1819
|
+
await page.waitForChanges();
|
|
1820
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toEqual(1);
|
|
1821
|
+
await page.$eval('[slot=input-right]', (element) => {
|
|
1822
|
+
element.remove();
|
|
1823
|
+
});
|
|
1824
|
+
await page.waitForChanges();
|
|
1825
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-right]'])).toBeUndefined();
|
|
1826
|
+
});
|
|
1764
1827
|
});
|
|
1765
1828
|
describe('input-left', () => {
|
|
1766
1829
|
it('does not have any nodes assigned to it when not provided', async () => {
|
|
@@ -1769,7 +1832,7 @@ describe('q2-input', () => {
|
|
|
1769
1832
|
<q2-input></q2-input>
|
|
1770
1833
|
`,
|
|
1771
1834
|
});
|
|
1772
|
-
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).
|
|
1835
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toBeUndefined();
|
|
1773
1836
|
});
|
|
1774
1837
|
it('has a node assigned to it when provided', async () => {
|
|
1775
1838
|
const page = await setup({
|
|
@@ -1781,6 +1844,27 @@ describe('q2-input', () => {
|
|
|
1781
1844
|
});
|
|
1782
1845
|
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);
|
|
1783
1846
|
});
|
|
1847
|
+
it('automatically updates when added at runtime', async () => {
|
|
1848
|
+
const page = await setup({
|
|
1849
|
+
html: `
|
|
1850
|
+
<q2-input></q2-input>
|
|
1851
|
+
`,
|
|
1852
|
+
});
|
|
1853
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toBeUndefined();
|
|
1854
|
+
await page.$eval('q2-input', (element) => {
|
|
1855
|
+
const slotDiv = document.createElement('div');
|
|
1856
|
+
slotDiv.slot = 'input-left';
|
|
1857
|
+
slotDiv.textContent = 'Test';
|
|
1858
|
+
element.appendChild(slotDiv);
|
|
1859
|
+
});
|
|
1860
|
+
await page.waitForChanges();
|
|
1861
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toEqual(1);
|
|
1862
|
+
await page.$eval('[slot=input-left]', (element) => {
|
|
1863
|
+
element.remove();
|
|
1864
|
+
});
|
|
1865
|
+
await page.waitForChanges();
|
|
1866
|
+
expect(await getNestedAssignedElementLength(page, ['q2-input', 'slot[name=input-left]'])).toBeUndefined();
|
|
1867
|
+
});
|
|
1784
1868
|
});
|
|
1785
1869
|
describe('label', () => {
|
|
1786
1870
|
it('does not have any nodes assigned to it when not provided', async () => {
|