q2-tecton-elements 1.66.2 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +3496 -3360
- package/dist/cjs/action-sheet-D71RSc-w.js.map +1 -1
- package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -0
- package/dist/cjs/{q2-option-list_2.cjs.entry.js → click-elsewhere_3.cjs.entry.js} +131 -10
- package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -0
- package/dist/cjs/{index-DyAq0y0v.js → index-YvKoRT-t.js} +61 -21
- package/dist/cjs/index-YvKoRT-t.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +33 -2
- package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js +1 -1
- package/dist/cjs/q2-btn.q2-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +18 -6
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-card-image.cjs.entry.js +3 -3
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +4 -4
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +67 -42
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +4 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-area.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +4 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +7 -3
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -0
- package/dist/cjs/q2-checkbox_2.cjs.entry.js +322 -0
- package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-context.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +13 -16
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-file-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-form.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +11 -1
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +2 -2
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +3 -3
- package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-legend.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-legend.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-link.q2-list.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js +14 -6
- package/dist/cjs/q2-link_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +3 -3
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-meter.cjs.entry.js +2 -2
- package/dist/cjs/q2-modal.cjs.entry.js +4 -21
- package/dist/cjs/q2-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +12 -7
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.entry.cjs.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-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +22 -8
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +7 -6
- package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +16 -8
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +7 -4
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-toast.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +33 -3
- package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/{sanitize-html-string-C2iwHNz5.js → sanitize-html-string-CW6y5624.js} +27 -17
- package/dist/cjs/sanitize-html-string-CW6y5624.js.map +1 -0
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/__mocks__/echarts.js +12 -0
- package/dist/collection/__mocks__/echarts.js.map +1 -0
- package/dist/collection/components/q2-avatar/q2-avatar.css +84 -89
- package/dist/collection/components/q2-avatar/q2-avatar.js +35 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
- package/dist/collection/components/q2-btn/q2-btn.css +10 -3
- package/dist/collection/components/q2-btn/q2-btn.js +38 -4
- package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.css +4 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
- package/dist/collection/components/q2-carousel/q2-carousel.css +143 -13
- package/dist/collection/components/q2-carousel/q2-carousel.js +90 -42
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +2 -11
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +18 -16
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +8 -6
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +4 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -26
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.css +4 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +38 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +1 -1
- package/dist/collection/components/q2-context/q2-context.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.css +14 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +47 -50
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +9 -9
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-grid/q2-grid.js +30 -30
- package/dist/collection/components/q2-grid-area/q2-grid-area.js +42 -42
- package/dist/collection/components/q2-icon/assets/brand.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/browsersos.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/communication.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/currencies.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/devices.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/filetypes.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/gestures.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/icon-list.json +1 -1
- package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
- package/dist/collection/components/q2-icon/assets/legacy.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/mobile.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/assets/status.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js +8 -0
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +42 -42
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.css +4 -0
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.css +3 -0
- package/dist/collection/components/q2-legend/q2-legend.js +36 -36
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.css +5 -2
- package/dist/collection/components/q2-link/q2-link.js +33 -3
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-message/q2-message.css +19 -16
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js.map +1 -1
- package/dist/collection/components/q2-meter/q2-meter.js +1 -1
- package/dist/collection/components/q2-modal/q2-modal.css +3 -3
- package/dist/collection/components/q2-modal/q2-modal.js +1 -94
- package/dist/collection/components/q2-modal/q2-modal.js.map +1 -1
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +18 -18
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +15 -10
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.css +9 -0
- package/dist/collection/components/q2-pill/q2-pill.js +13 -13
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +66 -1
- package/dist/collection/components/q2-popover/q2-popover.js +57 -4
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.css +4 -3
- package/dist/collection/components/q2-radio-group/q2-radio-group.css +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +23 -7
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.css +9 -2
- package/dist/collection/components/q2-stepper/q2-stepper.js +5 -2
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +52 -30
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +11 -2
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +20 -6
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.css +7 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.css +3 -0
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.css +1 -0
- package/dist/collection/components/q2-tooltip/q2-tooltip.css +1 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.js +34 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/index.js +59 -19
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/action-sheet.js.map +1 -1
- package/dist/components/index2.js +59 -19
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-avatar2.js +34 -2
- package/dist/components/q2-avatar2.js.map +1 -1
- package/dist/components/q2-btn2.js +18 -5
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-calendar.js +2 -2
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card-image.js +2 -2
- package/dist/components/q2-carousel-pane.js +3 -3
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +69 -55
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js +3 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +3 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +6 -2
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +1 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-checkbox2.js +13 -2
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-context.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-data-table.js +46 -25
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-editable-field.js +1 -1
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-file-picker.js.map +1 -1
- package/dist/components/q2-form.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-icon2.js +10 -0
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item2.js +2 -2
- package/dist/components/q2-item2.js.map +1 -1
- package/dist/components/q2-legend2.js +2 -2
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-link2.js +13 -4
- package/dist/components/q2-link2.js.map +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-message2.js +2 -2
- package/dist/components/q2-message2.js.map +1 -1
- package/dist/components/q2-meter.js +1 -1
- package/dist/components/q2-modal.js +2 -23
- package/dist/components/q2-modal.js.map +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-mutation-observer.js +1 -1
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +1 -1
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-pagination.js +11 -6
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +2 -2
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +39 -5
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +1 -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-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +23 -8
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +9 -6
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +16 -8
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +6 -3
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +2 -2
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -257
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/{esm/q2-tag.entry.js → components/q2-tag2.js} +68 -15
- package/dist/components/q2-tag2.js.map +1 -0
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/q2-tooltip2.js +35 -3
- package/dist/components/q2-tooltip2.js.map +1 -1
- package/dist/components/sanitize-html-string.js +25 -15
- package/dist/components/sanitize-html-string.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/action-sheet-B7adb3xs.js.map +1 -1
- package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -0
- package/dist/esm/{q2-option-list_2.entry.js → click-elsewhere_3.entry.js} +132 -12
- package/dist/esm/click-elsewhere_3.entry.js.map +1 -0
- package/dist/esm/{index-B4WYBDS9.js → index-C4PILj1_.js} +61 -21
- package/dist/esm/index-C4PILj1_.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group_2.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-avatar.entry.js +33 -2
- package/dist/esm/q2-avatar.entry.js.map +1 -1
- package/dist/esm/q2-badge.entry.js +1 -1
- package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +18 -6
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +3 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card-image.entry.js +3 -3
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +4 -4
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +67 -42
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +4 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +4 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +7 -3
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.q2-tag.entry.js.map +1 -0
- package/dist/esm/q2-checkbox_2.entry.js +319 -0
- package/dist/esm/q2-checkbox_2.entry.js.map +1 -0
- package/dist/esm/q2-context.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +13 -16
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +2 -2
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js.map +1 -1
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +11 -1
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +2 -2
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-item.entry.js +3 -3
- package/dist/esm/q2-item.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js.map +1 -1
- package/dist/esm/q2-link.q2-list.entry.js.map +1 -1
- package/dist/esm/q2-link_2.entry.js +14 -6
- package/dist/esm/q2-link_2.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +3 -3
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-meter.entry.js +2 -2
- package/dist/esm/q2-modal.entry.js +4 -21
- package/dist/esm/q2-modal.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-mutation-observer.entry.js +1 -1
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +12 -7
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +2 -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-relative-time.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +22 -8
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +7 -6
- package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +16 -8
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +7 -4
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +3 -3
- 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-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-toast.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +33 -3
- package/dist/esm/q2-tooltip.entry.js.map +1 -1
- package/dist/esm/{sanitize-html-string-BPwFpYg-.js → sanitize-html-string-B35VmRc9.js} +27 -17
- package/dist/esm/sanitize-html-string-B35VmRc9.js.map +1 -0
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/action-sheet-B7adb3xs.js.map +1 -1
- package/dist/q2-tecton-elements/assets/brand.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/browsersos.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/communication.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/currencies.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/devices.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/filetypes.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/gestures.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/icon-list.json +1 -1
- package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
- package/dist/q2-tecton-elements/assets/legacy.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/mobile.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
- package/dist/q2-tecton-elements/assets/status.symbol.svg +1 -1
- package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -0
- package/dist/q2-tecton-elements/{q2-option-list_2.entry.js → click-elsewhere_3.entry.js} +205 -91
- package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{index-B4WYBDS9.js → index-C4PILj1_.js} +53 -14
- package/dist/q2-tecton-elements/index-C4PILj1_.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-avatar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js +68 -30
- package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-badge.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-btn.q2-loading.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-btn_2.entry.js +26 -19
- package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card-image.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.js +269 -242
- package/dist/q2-tecton-elements/q2-carousel.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +6 -5
- package/dist/q2-tecton-elements/q2-chart-area.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +4 -3
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +21 -19
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -0
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +482 -0
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-context.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-currency.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +26 -28
- package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-icon.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-icon.entry.js +122 -111
- package/dist/q2-tecton-elements/q2-icon.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-input.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-input.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-input.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +34 -34
- package/dist/q2-tecton-elements/q2-item.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-link.q2-list.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-link_2.entry.js +24 -18
- package/dist/q2-tecton-elements/q2-link_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +29 -25
- package/dist/q2-tecton-elements/q2-message.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-meter.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-modal.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-modal.entry.js +65 -79
- package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +81 -81
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +43 -32
- package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +15 -15
- package/dist/q2-tecton-elements/q2-radio.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-section.entry.js +22 -22
- package/dist/q2-tecton-elements/q2-select.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.js +21 -8
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +14 -13
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +73 -67
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper.entry.js +46 -44
- package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-container.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-container.entry.js +19 -19
- package/dist/q2-tecton-elements/q2-tab-container.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +41 -5
- package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{sanitize-html-string-BPwFpYg-.js → sanitize-html-string-B35VmRc9.js} +118 -109
- package/dist/q2-tecton-elements/sanitize-html-string-B35VmRc9.js.map +1 -0
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/scripts/docs-generator/index.js +1 -1
- package/dist/scripts/docs-generator/index.js.map +1 -1
- package/dist/types/__mocks__/echarts.d.ts +16 -0
- package/dist/types/components/q2-avatar/q2-avatar.d.ts +9 -0
- package/dist/types/components/q2-btn/q2-btn.d.ts +6 -0
- package/dist/types/components/q2-calendar/q2-calendar-helpers.d.ts +3 -3
- package/dist/types/components/q2-calendar/q2-calendar-types.d.ts +2 -2
- package/dist/types/components/q2-calendar/q2-calendar-validation.d.ts +5 -5
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +8 -8
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +6 -0
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +4 -4
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +3 -3
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +9 -9
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +11 -0
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +8 -41
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +4 -4
- package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +1 -13
- package/dist/types/components/q2-input/formatting/alpha.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/alphanumeric.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/cif.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/clabe.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/credit-card.d.ts +2 -2
- package/dist/types/components/q2-input/formatting/currency.d.ts +2 -2
- package/dist/types/components/q2-input/formatting/generic.d.ts +2 -2
- package/dist/types/components/q2-input/formatting/iban.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/number.d.ts +3 -2
- package/dist/types/components/q2-input/formatting/numeric.d.ts +2 -2
- package/dist/types/components/q2-input/formatting/phone.d.ts +2 -2
- package/dist/types/components/q2-input/formatting/postal.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/routingnumber.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/ssn.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/swift.d.ts +1 -1
- package/dist/types/components/q2-input/formatting/tin.d.ts +1 -1
- package/dist/types/components/q2-input/q2-input-types.d.ts +2 -22
- package/dist/types/components/q2-input/q2-input.d.ts +16 -15
- package/dist/types/components/q2-legend/q2-legend.d.ts +11 -11
- package/dist/types/components/q2-link/q2-link.d.ts +6 -0
- package/dist/types/components/q2-modal/q2-modal.d.ts +0 -17
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +4 -4
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +2 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +5 -5
- package/dist/types/components/q2-popover/q2-popover.d.ts +7 -0
- package/dist/types/components/q2-select/q2-select.d.ts +9 -6
- package/dist/types/components/q2-stepper-pane/q2-stepper-pane.d.ts +8 -11
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +10 -7
- package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +4 -0
- package/dist/types/components.d.ts +148 -118
- package/dist/types/global.d.ts +2 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/action-sheet.d.ts +5 -5
- package/dist/types/utils/index.d.ts +13 -0
- package/package.json +69 -72
- package/dist/cjs/click-elsewhere.cjs.entry.js +0 -97
- package/dist/cjs/click-elsewhere.cjs.entry.js.map +0 -1
- package/dist/cjs/click-elsewhere.entry.cjs.js.map +0 -1
- package/dist/cjs/index-DyAq0y0v.js.map +0 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +0 -110
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-checkbox.entry.cjs.js.map +0 -1
- package/dist/cjs/q2-option-list.q2-popover.entry.cjs.js.map +0 -1
- package/dist/cjs/q2-option-list_2.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-tag.cjs.entry.js +0 -211
- package/dist/cjs/q2-tag.cjs.entry.js.map +0 -1
- package/dist/cjs/q2-tag.entry.cjs.js.map +0 -1
- package/dist/cjs/sanitize-html-string-C2iwHNz5.js.map +0 -1
- package/dist/esm/click-elsewhere.entry.js +0 -95
- package/dist/esm/click-elsewhere.entry.js.map +0 -1
- package/dist/esm/index-B4WYBDS9.js.map +0 -1
- package/dist/esm/q2-checkbox.entry.js +0 -108
- package/dist/esm/q2-checkbox.entry.js.map +0 -1
- package/dist/esm/q2-option-list.q2-popover.entry.js.map +0 -1
- package/dist/esm/q2-option-list_2.entry.js.map +0 -1
- package/dist/esm/q2-tag.entry.js.map +0 -1
- package/dist/esm/sanitize-html-string-BPwFpYg-.js.map +0 -1
- package/dist/q2-tecton-elements/click-elsewhere.entry.esm.js.map +0 -1
- package/dist/q2-tecton-elements/click-elsewhere.entry.js +0 -94
- package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +0 -1
- package/dist/q2-tecton-elements/index-B4WYBDS9.js.map +0 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.esm.js.map +0 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +0 -228
- package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +0 -1
- package/dist/q2-tecton-elements/q2-option-list.q2-popover.entry.esm.js.map +0 -1
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/q2-tag.entry.esm.js.map +0 -1
- package/dist/q2-tecton-elements/q2-tag.entry.js +0 -256
- package/dist/q2-tecton-elements/q2-tag.entry.js.map +0 -1
- package/dist/q2-tecton-elements/sanitize-html-string-BPwFpYg-.js.map +0 -1
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/jest.e2e-coverage.d.ts +0 -0
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/index.d.ts +0 -0
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/markdown-generator.d.ts +0 -0
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/tag-handlers.d.ts +0 -0
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/types.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9F
|
|
1
|
+
{"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n/**\n * @name Avatar\n * @category Display\n * @summary Use for displaying photos, initials, or icons for people, businesses, or accounts.\n *\n * @slot decorator - An optional affordance indicator to display in the top-right corner\n */\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n // #region Own Properties\n\n private decoratorObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n badSrc: boolean = false;\n\n @State()\n hasDecorator: boolean = false;\n\n @State()\n isLoaded: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** A [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display as the fallback. */\n @Prop()\n icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true })\n initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determines how large to make the avatar */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true })\n src: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n if (this.decoratorObserver) {\n this.decoratorObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.checkDecorator();\n }\n\n componentDidLoad() {\n this.setupDecoratorObserver();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n checkDecorator() {\n const decoratorElements = Array.from(this.el.children).filter(\n child => child.getAttribute('slot') === 'decorator'\n );\n this.hasDecorator = decoratorElements.length > 0;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n private setupDecoratorObserver() {\n // Set up MutationObserver to watch for changes to the host element's children\n this.decoratorObserver = new MutationObserver(() => {\n this.checkDecorator();\n });\n\n // Observe changes to the host element's children (light DOM)\n this.decoratorObserver.observe(this.el, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div class={`avatar-wrapper size-${this.size}`}>\n {this.hasDecorator && (\n <div class=\"decorator\">\n <slot name=\"decorator\" />\n </div>\n )}\n\n {showImg && (\n <img\n class={`${isLoaded ? 'avatar-img' : 'avatar-img-default'}`}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials initials-size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -272,6 +272,10 @@ button:not(.has-size):not(.icon-only) ::slotted(q2-icon) {
|
|
|
272
272
|
:host([size=large]) button:not(.icon-only) ::slotted(q2-icon) {
|
|
273
273
|
--tct-icon-size: var(--tct-btn-icon-size-large, unset);
|
|
274
274
|
}
|
|
275
|
+
:host(:not([intent])) button:focus-visible {
|
|
276
|
+
--comp-double-focus-ring-fallback: 0 0 0 2px #ffffff, 0 0 0 4px #0066cc;
|
|
277
|
+
box-shadow: var(--tct-btn-default-double-focus-visible-ring, var(--const-double-focus-ring, var(--comp-double-focus-ring-fallback)));
|
|
278
|
+
}
|
|
275
279
|
:host([color=primary]) button, :host([intent=workflow-primary]) button {
|
|
276
280
|
backdrop-filter: var(--tct-btn-primary-backdrop-filter);
|
|
277
281
|
--comp-background: var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-a11y-active-gray-color-AA, #404040)));
|
|
@@ -784,6 +788,7 @@ button:not(.has-size):not(.icon-only) ::slotted(q2-icon) {
|
|
|
784
788
|
button.icon-only {
|
|
785
789
|
width: var(--tct-btn-icon-width, var(--t-btn-icon-width, 44px));
|
|
786
790
|
height: var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px));
|
|
791
|
+
min-height: var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px));
|
|
787
792
|
border-radius: var(--tct-btn-icon-border-radius, var(--t-btn-icon-border-radius, var(--tct-btn-border-radius, 0)));
|
|
788
793
|
padding: var(--tct-btn-icon-padding, 0px);
|
|
789
794
|
}
|
|
@@ -855,8 +860,8 @@ button.intent-coin {
|
|
|
855
860
|
button.intent-coin:hover:not([disabled]), button.intent-coin:hover:focus:not(:active):not([disabled]) {
|
|
856
861
|
--const-double-focus-ring: 0 0 0 2px #ffffff,
|
|
857
862
|
0 0 0 4px var(--tct-btn-coin-focus-ring, var(--t-primary, #6a4a9e));
|
|
858
|
-
--tct-avatar-background: var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1));
|
|
859
|
-
--tct-avatar-fallback-background: var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1));
|
|
863
|
+
--tct-avatar-background: var(--tct-btn-coin-hover-background, var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1)));
|
|
864
|
+
--tct-avatar-fallback-background: var(--tct-btn-coin-hover-background, var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1)));
|
|
860
865
|
--tct-icon-stroke-primary: var(--tct-btn-coin-icon-stroke-primary, var(--t-base, #ffffff));
|
|
861
866
|
--tct-avatar-text-color: var(--tct-btn-coin-avatar-text-color, var(--t-base, #ffffff));
|
|
862
867
|
box-shadow: var(--tct-btn-coin-hover-box-shadow, var(--tct-btn-coin-box-shadow, var(--const-double-focus-ring)));
|
|
@@ -870,7 +875,9 @@ button.intent-coin:focus-visible:not([disabled]) {
|
|
|
870
875
|
0 0 0 4px var(--tct-btn-coin-focus-ring, var(--t-primary, #6a4a9e));
|
|
871
876
|
box-shadow: var(--tct-btn-coin-focus-visible-box-shadow, var(--tct-btn-coin-focus-box-shadow, var(--tct-btn-coin-box-shadow, var(--const-double-focus-ring))));
|
|
872
877
|
}
|
|
873
|
-
button.intent-coin:active:not([disabled]) {
|
|
878
|
+
button.intent-coin:focus:active:not([disabled]) {
|
|
879
|
+
--tct-avatar-background: var(--tct-btn-coin-active-background);
|
|
880
|
+
--tct-avatar-fallback-background: var(--tct-btn-coin-active-background);
|
|
874
881
|
box-shadow: none;
|
|
875
882
|
}
|
|
876
883
|
|
|
@@ -95,7 +95,7 @@ export class Q2Btn {
|
|
|
95
95
|
'grid',
|
|
96
96
|
'dialog',
|
|
97
97
|
]),
|
|
98
|
-
ariaLabel: this.
|
|
98
|
+
ariaLabel: this.composedAriaLabel,
|
|
99
99
|
ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),
|
|
100
100
|
ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),
|
|
101
101
|
description: this.description !== undefined ? this.description : undefined,
|
|
@@ -129,14 +129,26 @@ export class Q2Btn {
|
|
|
129
129
|
}
|
|
130
130
|
return classes.join(' ');
|
|
131
131
|
}
|
|
132
|
+
get composedAriaLabel() {
|
|
133
|
+
const baseText = this.label && this.hideLabel
|
|
134
|
+
? loc(this.label)
|
|
135
|
+
: this.label || this.hostElement.textContent.trim() || undefined;
|
|
136
|
+
if (!this._tooltip && !baseText)
|
|
137
|
+
return undefined;
|
|
138
|
+
if (!this._tooltip)
|
|
139
|
+
return this.hideLabel ? baseText : undefined;
|
|
140
|
+
if (!baseText)
|
|
141
|
+
return this._tooltip;
|
|
142
|
+
return `${baseText} - ${this._tooltip}`;
|
|
143
|
+
}
|
|
132
144
|
// #endregion
|
|
133
145
|
// #region Render Methods
|
|
134
146
|
renderButton() {
|
|
135
|
-
const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } = this.buttonAttributes;
|
|
136
|
-
const { iconPosition, loading, badge,
|
|
147
|
+
const { ariaExpanded, ariaHasPopup, ariaLabel, ariaSelected, ariaPressed, description, disabled, type, tabindex, } = this.buttonAttributes;
|
|
148
|
+
const { iconPosition, loading, badge, hideLabel } = this;
|
|
137
149
|
const renderLoadingSpinner = iconPosition || loading;
|
|
138
150
|
const isLoadingSpinnerInline = !iconPosition || badge;
|
|
139
|
-
return (h(Fragment, null, h("button", { ref: el => (this.primaryBtn = el !== null && el !== void 0 ? el : this.primaryBtn), "aria-expanded": ariaExpanded, "aria-haspopup": ariaHasPopup, "aria-label":
|
|
151
|
+
return (h(Fragment, null, h("button", { ref: el => (this.primaryBtn = el !== null && el !== void 0 ? el : this.primaryBtn), "aria-expanded": ariaExpanded, "aria-haspopup": ariaHasPopup, "aria-label": ariaLabel, "aria-selected": ariaSelected, "aria-pressed": ariaPressed, disabled: disabled, type: type, tabindex: tabindex, "test-id": "q2BtnInnerButton", class: this.buttonClasses, "aria-describedby": !!description ? 'hidden-description' : undefined, "aria-labelledby": this.intent === 'coin' && !hideLabel ? 'coin-label' : undefined, role: this._role || undefined }, h("div", { class: "slot-container" }, renderLoadingSpinner && (h("q2-loading", { hidden: !loading, modifiers: isLoadingSpinnerInline ? 'inline' : undefined })), this.renderDefaultLabel(), this.renderDefaultCoinSlot())), this.renderCoinLabel(), !!description && (h("div", { id: "hidden-description", "aria-hidden": "true", class: "sr" }, description))));
|
|
140
152
|
}
|
|
141
153
|
renderCoinLabel() {
|
|
142
154
|
if (this.intent !== 'coin' || this.hideLabel)
|
|
@@ -196,6 +208,28 @@ export class Q2Btn {
|
|
|
196
208
|
"setter": false,
|
|
197
209
|
"reflect": true
|
|
198
210
|
},
|
|
211
|
+
"_tooltip": {
|
|
212
|
+
"type": "string",
|
|
213
|
+
"attribute": "_tooltip",
|
|
214
|
+
"mutable": false,
|
|
215
|
+
"complexType": {
|
|
216
|
+
"original": "string",
|
|
217
|
+
"resolved": "string",
|
|
218
|
+
"references": {}
|
|
219
|
+
},
|
|
220
|
+
"required": false,
|
|
221
|
+
"optional": false,
|
|
222
|
+
"docs": {
|
|
223
|
+
"tags": [{
|
|
224
|
+
"name": "private",
|
|
225
|
+
"text": "Tooltip text set by a parent q2-tooltip component for accessibility."
|
|
226
|
+
}],
|
|
227
|
+
"text": ""
|
|
228
|
+
},
|
|
229
|
+
"getter": false,
|
|
230
|
+
"setter": false,
|
|
231
|
+
"reflect": false
|
|
232
|
+
},
|
|
199
233
|
"active": {
|
|
200
234
|
"type": "boolean",
|
|
201
235
|
"attribute": "active",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,KAAK,EACL,IAAI,EACJ,CAAC,EAED,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,GAER,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,GAAG,EACH,aAAa,EACb,wBAAwB,GAC3B,MAAM,WAAW,CAAC;AAEnB;;;;;GAKG;AAEH,MAAM,OAAO,KAAK;IADlB;QA6HI,0CAA0C;QAE1C,SAAI,GAAW,QAAQ,CAAC;QA6GxB,qBAAgB,GAAG,GAAG,EAAE;YACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;QACL,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACf,oCAAoC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBACnG,IAAI,GAAG;oBAAE,OAAO,CAAC,MAAM,EAAE,CAAC;;oBACrB,GAAG,GAAG,OAAO,CAAC;gBACnB,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,KAAK,IAAI,CAAC;YAClG,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAClG,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;YAE7D,IAAI,YAAY,CAAC;YACjB,IAAI,WAAW;gBAAE,YAAY,GAAG,MAAM,CAAC;iBAClC,IAAI,WAAW;gBAAE,YAAY,GAAG,MAAM,CAAC;iBACvC,IAAI,YAAY;gBAAE,YAAY,GAAG,OAAO,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC;KAoGL;IApOG,aAAa;IACb,qCAAqC;IAErC,oBAAoB;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,aAAa;IACb,oBAAoB;IAGpB,WAAW,CAAC,KAAY;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACjC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAGD,aAAa,CAAC,KAAiB;QAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa;IACb,mBAAmB;IAGnB,iBAAiB;QACb,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAGD,YAAY;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa;IACb,wBAAwB;IAExB,IAAI,gBAAgB;QAChB,OAAO;YACH,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE;gBAClD,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,QAAQ;aACX,CAAC;YACF,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtE,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC1E,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC7E,CAAC;IACN,CAAC;IAED,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE7C,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,gBAAgB;QAChB,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAkCD,aAAa;IACb,yBAAyB;IAEzB,YAAY;QACR,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAClG,IAAI,CAAC,gBAAgB,CAAC;QAC1B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAChE,MAAM,oBAAoB,GAAG,YAAY,IAAI,OAAO,CAAC;QACrD,MAAM,sBAAsB,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;QACtD,OAAO,CACH,EAAC,QAAQ;YACL,cACI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,UAAU,CAAC,mBACrC,YAAY,mBACZ,YAAY,gBACf,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,mBACpB,YAAY,kBACb,WAAW,EACzB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,aACV,kBAAkB,EAC1B,KAAK,EAAE,IAAI,CAAC,aAAa,sBACP,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,qBACjD,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAChF,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAE7B,WAAK,KAAK,EAAC,gBAAgB;oBACtB,oBAAoB,IAAI,CACrB,kBACI,MAAM,EAAE,CAAC,OAAO,EAChB,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAC1D,CACL;oBACA,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,CAAC,qBAAqB,EAAE,CAC3B,CACD;YACR,IAAI,CAAC,eAAe,EAAE;YACtB,CAAC,CAAC,WAAW,IAAI,CACd,WACI,EAAE,EAAC,oBAAoB,iBACX,MAAM,EAClB,KAAK,EAAC,IAAI,IAET,WAAW,CACV,CACT,CACM,CACd,CAAC;IACN,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QACrD,OAAO,CACH,WACI,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,IAE3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAClB,CAAC,CAAC,CAAC,CACA,YACI,IAAI,EAAC,YAAY,EACjB,YAAY,EAAE,IAAI,CAAC,gBAAgB,GACrC,CACL,CACC,CACT,CAAC;IACN,CAAC;IAED,qBAAqB;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACnC,OAAO,YAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CAAC;IACzD,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,YAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CAAC;IACzD,CAAC;IAED,MAAM;QACF,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;QACvF,4CAA4C;QAC5C,WACI,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,EACpE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,iBAAiB,CAAC,EAClE,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAE/C,IAAI,CAAC,YAAY,EAAE,CAClB,CACT,CAAC,CAAC,CAAC,CACA,IAAI,CAAC,YAAY,EAAE,CACtB,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Fragment,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n/**\n * @name Button\n * @category Forms\n * @summary Use for triggering actions including submit, save, cancel, or delete.\n * @slot coin-label - An optional slot to display a custom coin button label.\n */\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'coin'\n | 'neutral-text'\n | 'neutral'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'workflow-primary'\n | 'workflow-secondary';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the button is clicked.\n */\n @Event()\n tctClick: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n this.primaryBtn = null;\n this.primaryBtnWrapper = null;\n }\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n return;\n }\n this.tctClick.emit();\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || this.tabIndex === 0 ? this.tabIndex : undefined,\n };\n }\n\n get buttonClasses() {\n const classes = [];\n if (this.iconPosition) classes.push(`icon-${this.iconPosition}`);\n if (this.intent === 'coin') classes.push('intent-coin');\n if (!!this.block) classes.push('is-block');\n if (!!this.color) classes.push('has-color');\n if (!!this.intent) classes.push(`has-intent`);\n if (!!this.size) classes.push('has-size');\n if (!!this.active) classes.push('is-active');\n\n return classes.join(' ');\n }\n\n get coinLabelClasses() {\n const classes = ['coin-label'];\n if (this.disabled) {\n classes.push('disabled');\n }\n\n return classes.join(' ');\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton() {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={this.buttonClasses}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n aria-labelledby={this.intent === 'coin' && !hideLabel ? 'coin-label' : undefined}\n role={this._role || undefined}\n >\n <div class=\"slot-container\">\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {this.renderDefaultLabel()}\n {this.renderDefaultCoinSlot()}\n </div>\n </button>\n {this.renderCoinLabel()}\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n }\n\n renderCoinLabel() {\n if (this.intent !== 'coin' || this.hideLabel) return;\n return (\n <div\n id=\"coin-label\"\n class={this.coinLabelClasses}\n >\n {this.label ? (\n loc(this.label)\n ) : (\n <slot\n name=\"coin-label\"\n onSlotchange={this.handleSlotChange}\n />\n )}\n </div>\n );\n }\n\n renderDefaultCoinSlot() {\n if (this.intent !== 'coin') return;\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n renderDefaultLabel() {\n if (this.intent === 'coin') return;\n if (!this.hideLabel && this.label) return loc(this.label);\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n render() {\n return (this.size === 'small' && this.iconPosition !== 'only') || this.intent === 'coin' ? (\n // wrap only for small sized and coin intent\n <div\n class={this.size === 'small' ? 'btn-height-wrapper' : 'coin-wrapper'}\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={this.size === 'small' ? -1 : undefined}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Fragment,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n/**\n * @name Button\n * @category Forms\n * @summary Use for triggering actions including submit, save, cancel, or delete.\n * @slot coin-label - An optional slot to display a custom coin button label.\n */\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'coin'\n | 'neutral-text'\n | 'neutral'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'workflow-primary'\n | 'workflow-secondary';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the button is clicked.\n */\n @Event()\n tctClick: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n this.primaryBtn = null;\n this.primaryBtnWrapper = null;\n }\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n return;\n }\n this.tctClick.emit();\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.composedAriaLabel,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || this.tabIndex === 0 ? this.tabIndex : undefined,\n };\n }\n\n get buttonClasses() {\n const classes = [];\n if (this.iconPosition) classes.push(`icon-${this.iconPosition}`);\n if (this.intent === 'coin') classes.push('intent-coin');\n if (!!this.block) classes.push('is-block');\n if (!!this.color) classes.push('has-color');\n if (!!this.intent) classes.push(`has-intent`);\n if (!!this.size) classes.push('has-size');\n if (!!this.active) classes.push('is-active');\n\n return classes.join(' ');\n }\n\n get coinLabelClasses() {\n const classes = ['coin-label'];\n if (this.disabled) {\n classes.push('disabled');\n }\n\n return classes.join(' ');\n }\n\n get composedAriaLabel(): string | undefined {\n const baseText =\n this.label && this.hideLabel\n ? loc(this.label)\n : this.label || this.hostElement.textContent.trim() || undefined;\n\n if (!this._tooltip && !baseText) return undefined;\n if (!this._tooltip) return this.hideLabel ? baseText : undefined;\n if (!baseText) return this._tooltip;\n return `${baseText} - ${this._tooltip}`;\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton() {\n const {\n ariaExpanded,\n ariaHasPopup,\n ariaLabel,\n ariaSelected,\n ariaPressed,\n description,\n disabled,\n type,\n tabindex,\n } = this.buttonAttributes;\n const { iconPosition, loading, badge, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={ariaLabel}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={this.buttonClasses}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n aria-labelledby={this.intent === 'coin' && !hideLabel ? 'coin-label' : undefined}\n role={this._role || undefined}\n >\n <div class=\"slot-container\">\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {this.renderDefaultLabel()}\n {this.renderDefaultCoinSlot()}\n </div>\n </button>\n {this.renderCoinLabel()}\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n }\n\n renderCoinLabel() {\n if (this.intent !== 'coin' || this.hideLabel) return;\n return (\n <div\n id=\"coin-label\"\n class={this.coinLabelClasses}\n >\n {this.label ? (\n loc(this.label)\n ) : (\n <slot\n name=\"coin-label\"\n onSlotchange={this.handleSlotChange}\n />\n )}\n </div>\n );\n }\n\n renderDefaultCoinSlot() {\n if (this.intent !== 'coin') return;\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n renderDefaultLabel() {\n if (this.intent === 'coin') return;\n if (!this.hideLabel && this.label) return loc(this.label);\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n render() {\n return (this.size === 'small' && this.iconPosition !== 'only') || this.intent === 'coin' ? (\n // wrap only for small sized and coin intent\n <div\n class={this.size === 'small' ? 'btn-height-wrapper' : 'coin-wrapper'}\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={this.size === 'small' ? -1 : undefined}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-calendar-helpers.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValid as isValidDate, formatISO, setMinutes } from 'date-fns';\nimport { loc } from '../../utils';\nimport { ISelectedMonthYear, InputValidation } from './q2-calendar-types';\n\nexport interface IMomentLikeObject {\n toDate(): Date;\n}\n\nexport function formatDateISO(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n return formatISO(date, { representation: 'date' });\n}\n\nlet memoizedFormatDateShort: Intl.DateTimeFormat;\nexport function formatDateShort(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n const isoDate = date.toISOString();\n if (!memoizedFormatDateShort) {\n memoizedFormatDateShort = new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateShort.format(new Date(isoDate));\n}\n\nlet memoizedFormatDateLong: Intl.DateTimeFormat;\nexport function formatDateLong(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateLong) {\n memoizedFormatDateLong = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n return memoizedFormatDateLong.format(date);\n}\n\nlet memoizedFormatDateFull: Intl.DateTimeFormat;\nexport function formatDateFull(value: string | Date) {\n if (!value) return;\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateFull) {\n memoizedFormatDateFull = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n weekday: 'long',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateFull.format(date);\n}\n\nexport function convertMomentFormat(stringFormat: string) {\n return stringFormat\n .replace(/[d]/g, 'E')\n .replace(/[D]/g, 'd')\n .replace(/[Y]/g, 'y')\n .replace(/[l]/g, 'P')\n .replace(/[W]/g, 'I');\n}\n\nexport function stringToDate(date: string | null | void): Date | undefined {\n const isString = typeof date === 'string';\n if (!isString && date && isValidDate(new Date(date || undefined))) {\n date = formatDateISO(date);\n } else if (!date || !isValidDate(new Date(date))) {\n return undefined;\n }\n\n let result: Date;\n const dateParts = date.split(/[\\/\\-]/).map(part => part.padStart(2, '0'));\n const isIsoString = isString && date.length >= 24 && date[10] === 'T';\n const isCompleteDate = dateParts.length === 3;\n const isPartialDate = dateParts.length < 3;\n if (isIsoString) {\n date = date.split('T')[0];\n result = new Date(date);\n } else if (isCompleteDate) {\n const isStandardSlashDate = date.includes('/') && dateParts[2].length === 4;\n\n // Reorder mm/dd/yyyy dates for ISO formatting\n // [mm, dd, yyyy] -> [yyyy, mm, dd]\n if (isStandardSlashDate) dateParts.unshift(dateParts.pop());\n\n result = new Date(Date.UTC(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, parseInt(dateParts[2])));\n } else if (isPartialDate) {\n const now = new Date();\n\n let yearNumber: number;\n let monthNumber: string;\n let dayNumber: string;\n switch (dateParts.length) {\n case 1:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = '01';\n break;\n\n case 2:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = dateParts[1];\n break;\n }\n\n result = new Date(`${yearNumber}-${monthNumber}-${dayNumber}`);\n }\n\n if (!isValidDate(result)) return undefined;\n\n // result = setHours(result, 0);\n result = removeTimezoneOffset(result);\n\n return isValidDate(result) ? result : undefined;\n}\n\nexport function removeTimezoneOffset(date: Date) {\n const timeZoneOffset = date.getTimezoneOffset();\n // Minutes compensation for some timezones like India, Central Australia and etc use GMT+5:30, GMT+9:30\n return setMinutes(date, timeZoneOffset + Math.abs(timeZoneOffset % 60));\n}\n\nexport function stringArrayToDate(dateArray: string[]): Date[] {\n if (!Array.isArray(dateArray) || dateArray.length === 0) {\n return [];\n }\n return dateArray.map(date => stringToDate(date));\n}\n\nexport function setupMonthYear(value: Date | undefined = new Date()): ISelectedMonthYear {\n return {\n monthIndex: value.getMonth(),\n selectedYear: value.getFullYear(),\n };\n}\n\nexport function validateInput(\n input: string = '',\n validDays: number[] = [],\n validDates: string[] = [], // white list\n invalidDates: string[] = [], // black list\n startDate: string,\n endDate: string,\n formatString: string = 'mm/dd/yyyy',\n assume: string\n): InputValidation {\n let isValid: boolean = false;\n let isAvailable: boolean = false;\n let messageType: string = 'info';\n let message: string = `${loc('tecton.element.calendar.hint.format')}: ${formatString}`;\n if (!input) {\n return { isValid, inputDate: new Date(''), isAvailable, messageType, message };\n }\n\n const inputDate = buildInputDate(input, assume);\n const month = inputDate.getMonth() + 1;\n const date = inputDate.getDate();\n const year = inputDate.getFullYear();\n const calendarPosition = [month, date, year];\n\n if (isValidDate(inputDate)) {\n const monthName = getMonths()[inputDate.getMonth()];\n\n if (input.length === 10) {\n isValid = true;\n messageType = null;\n message = null;\n }\n\n isAvailable = validDays.includes(inputDate.getDay());\n const isoString = formatDateISO(inputDate);\n\n if (isAvailable) {\n const isNotValidDate = validDates.length && !validDates.includes(isoString);\n const isInvalidDate = invalidDates.length && invalidDates.includes(isoString);\n const isBeforeStartDate = startDate && startDate > isoString;\n const isAfterEndDate = endDate && endDate < isoString;\n\n if (isNotValidDate || isInvalidDate || isBeforeStartDate || isAfterEndDate) {\n isAvailable = false;\n }\n }\n\n if (input.length >= 5 && !isAvailable) {\n isValid = false;\n messageType = 'error';\n const isInvalid = !monthName || !date || !year;\n message = isInvalid\n ? `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`\n : loc('tecton.element.calendar.hint.notAvailableDate', [formatDateLong(inputDate)]);\n } else {\n isValid = true;\n }\n } else {\n isValid = false;\n messageType = 'error';\n message = `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`;\n }\n\n return {\n isValid,\n messageType,\n message,\n inputDate,\n isAvailable,\n calendarPosition,\n };\n}\n\nexport function buildInputDate(input: string, assume: string) {\n const now = new Date();\n // eslint-disable-next-line prefer-const\n let [month, day, year] = input.split('/');\n if (month === '0') month = '01';\n if (day === '0') day = '01';\n if (input.length === 10) {\n return new Date(input);\n } else if (month && day && Number(day) > 0) {\n const twoDigitDay = Number(day) < 10 ? `0${Number(day)}` : day;\n const fourDigitYear = !year || year.length < 4 ? assumeYear(month, day, assume) : year;\n return new Date(`${month}/${twoDigitDay}/${fourDigitYear}`);\n } else if (month) {\n return new Date(`${month}/01/${now.getFullYear()}`);\n }\n}\n\nfunction assumeYear(month: string, day: string, assume: string): string {\n const monthDay = `${month}/${day}`;\n const now = new Date();\n const mm: string = now.getMonth() < 9 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`;\n const dd: string = now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`;\n const nowLocal = `${mm}/${dd}/${now.getFullYear()}`;\n let assumedYear = now.getFullYear();\n if (assume === 'future' && nowLocal.slice(0, 5) > monthDay) {\n assumedYear = now.getFullYear() + 1;\n } else if (assume === 'past' && nowLocal.slice(0, 5) < monthDay) {\n assumedYear = now.getFullYear() - 1;\n }\n return assumedYear.toString();\n}\n\nexport function handleMissingZeros(input): string {\n if (!input) {\n return '';\n }\n if (input.match(/^[1-9]\\/$/)) {\n return `0${input}/`;\n } else if (input.match(/^[0-9]{2}\\/[1-9]{1}\\/$/)) {\n const sp = input.split('/');\n return `${sp[0]}/0${sp[1]}/`;\n }\n return input;\n}\n\nexport function reorderDateString(input: string): string {\n const dateParts = (input || '').split('-');\n if (dateParts.length !== 3) return '';\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n}\n\nexport function firstDayOfWeekInMonth(month: number, year: number): number {\n return new Date(year, month, 1, 1, 1, 1, 1).getDay();\n}\n\nexport function getDays(): string[] {\n return [\n loc('tecton.element.calendar.days.short.Sunday'),\n loc('tecton.element.calendar.days.short.Monday'),\n loc('tecton.element.calendar.days.short.Tuesday'),\n loc('tecton.element.calendar.days.short.Wednesday'),\n loc('tecton.element.calendar.days.short.Thursday'),\n loc('tecton.element.calendar.days.short.Friday'),\n loc('tecton.element.calendar.days.short.Saturday'),\n ];\n}\n\nexport function getDaysOfWeek(): string[] {\n return [\n loc('tecton.element.calendar.days.Sunday'),\n loc('tecton.element.calendar.days.Monday'),\n loc('tecton.element.calendar.days.Tuesday'),\n loc('tecton.element.calendar.days.Wednesday'),\n loc('tecton.element.calendar.days.Thursday'),\n loc('tecton.element.calendar.days.Friday'),\n loc('tecton.element.calendar.days.Saturday'),\n ];\n}\n\nexport function getMonths(): string[] {\n return [\n loc('tecton.element.calendar.months.January'),\n loc('tecton.element.calendar.months.February'),\n loc('tecton.element.calendar.months.March'),\n loc('tecton.element.calendar.months.April'),\n loc('tecton.element.calendar.months.May'),\n loc('tecton.element.calendar.months.June'),\n loc('tecton.element.calendar.months.July'),\n loc('tecton.element.calendar.months.August'),\n loc('tecton.element.calendar.months.September'),\n loc('tecton.element.calendar.months.October'),\n loc('tecton.element.calendar.months.November'),\n loc('tecton.element.calendar.months.December'),\n ];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-calendar-helpers.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValid as isValidDate, formatISO, setMinutes } from 'date-fns';\nimport { loc } from '../../utils';\nimport { SelectedMonthYear, InputValidation } from './q2-calendar-types';\n\nexport interface MomentLikeObject {\n toDate(): Date;\n}\n\nexport function formatDateISO(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n return formatISO(date, { representation: 'date' });\n}\n\nlet memoizedFormatDateShort: Intl.DateTimeFormat;\nexport function formatDateShort(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n const isoDate = date.toISOString();\n if (!memoizedFormatDateShort) {\n memoizedFormatDateShort = new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateShort.format(new Date(isoDate));\n}\n\nlet memoizedFormatDateLong: Intl.DateTimeFormat;\nexport function formatDateLong(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateLong) {\n memoizedFormatDateLong = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n return memoizedFormatDateLong.format(date);\n}\n\nlet memoizedFormatDateFull: Intl.DateTimeFormat;\nexport function formatDateFull(value: string | Date) {\n if (!value) return;\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateFull) {\n memoizedFormatDateFull = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n weekday: 'long',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateFull.format(date);\n}\n\nexport function convertMomentFormat(stringFormat: string) {\n return stringFormat\n .replace(/[d]/g, 'E')\n .replace(/[D]/g, 'd')\n .replace(/[Y]/g, 'y')\n .replace(/[l]/g, 'P')\n .replace(/[W]/g, 'I');\n}\n\nexport function stringToDate(date: string | null | void): Date | undefined {\n const isString = typeof date === 'string';\n if (!isString && date && isValidDate(new Date(date || undefined))) {\n date = formatDateISO(date);\n } else if (!date || !isValidDate(new Date(date))) {\n return undefined;\n }\n\n let result: Date;\n const dateParts = date.split(/[\\/\\-]/).map(part => part.padStart(2, '0'));\n const isIsoString = isString && date.length >= 24 && date[10] === 'T';\n const isCompleteDate = dateParts.length === 3;\n const isPartialDate = dateParts.length < 3;\n if (isIsoString) {\n date = date.split('T')[0];\n result = new Date(date);\n } else if (isCompleteDate) {\n const isStandardSlashDate = date.includes('/') && dateParts[2].length === 4;\n\n // Reorder mm/dd/yyyy dates for ISO formatting\n // [mm, dd, yyyy] -> [yyyy, mm, dd]\n if (isStandardSlashDate) dateParts.unshift(dateParts.pop());\n\n result = new Date(Date.UTC(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, parseInt(dateParts[2])));\n } else if (isPartialDate) {\n const now = new Date();\n\n let yearNumber: number;\n let monthNumber: string;\n let dayNumber: string;\n switch (dateParts.length) {\n case 1:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = '01';\n break;\n\n case 2:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = dateParts[1];\n break;\n }\n\n result = new Date(`${yearNumber}-${monthNumber}-${dayNumber}`);\n }\n\n if (!isValidDate(result)) return undefined;\n\n // result = setHours(result, 0);\n result = removeTimezoneOffset(result);\n\n return isValidDate(result) ? result : undefined;\n}\n\nexport function removeTimezoneOffset(date: Date) {\n const timeZoneOffset = date.getTimezoneOffset();\n // Minutes compensation for some timezones like India, Central Australia and etc use GMT+5:30, GMT+9:30\n return setMinutes(date, timeZoneOffset + Math.abs(timeZoneOffset % 60));\n}\n\nexport function stringArrayToDate(dateArray: string[]): Date[] {\n if (!Array.isArray(dateArray) || dateArray.length === 0) {\n return [];\n }\n return dateArray.map(date => stringToDate(date));\n}\n\nexport function setupMonthYear(value: Date | undefined = new Date()): SelectedMonthYear {\n return {\n monthIndex: value.getMonth(),\n selectedYear: value.getFullYear(),\n };\n}\n\nexport function validateInput(\n input: string = '',\n validDays: number[] = [],\n validDates: string[] = [], // white list\n invalidDates: string[] = [], // black list\n startDate: string,\n endDate: string,\n formatString: string = 'mm/dd/yyyy',\n assume: string\n): InputValidation {\n let isValid: boolean = false;\n let isAvailable: boolean = false;\n let messageType: string = 'info';\n let message: string = `${loc('tecton.element.calendar.hint.format')}: ${formatString}`;\n if (!input) {\n return { isValid, inputDate: new Date(''), isAvailable, messageType, message };\n }\n\n const inputDate = buildInputDate(input, assume);\n const month = inputDate.getMonth() + 1;\n const date = inputDate.getDate();\n const year = inputDate.getFullYear();\n const calendarPosition = [month, date, year];\n\n if (isValidDate(inputDate)) {\n const monthName = getMonths()[inputDate.getMonth()];\n\n if (input.length === 10) {\n isValid = true;\n messageType = null;\n message = null;\n }\n\n isAvailable = validDays.includes(inputDate.getDay());\n const isoString = formatDateISO(inputDate);\n\n if (isAvailable) {\n const isNotValidDate = validDates.length && !validDates.includes(isoString);\n const isInvalidDate = invalidDates.length && invalidDates.includes(isoString);\n const isBeforeStartDate = startDate && startDate > isoString;\n const isAfterEndDate = endDate && endDate < isoString;\n\n if (isNotValidDate || isInvalidDate || isBeforeStartDate || isAfterEndDate) {\n isAvailable = false;\n }\n }\n\n if (input.length >= 5 && !isAvailable) {\n isValid = false;\n messageType = 'error';\n const isInvalid = !monthName || !date || !year;\n message = isInvalid\n ? `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`\n : loc('tecton.element.calendar.hint.notAvailableDate', [formatDateLong(inputDate)]);\n } else {\n isValid = true;\n }\n } else {\n isValid = false;\n messageType = 'error';\n message = `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`;\n }\n\n return {\n isValid,\n messageType,\n message,\n inputDate,\n isAvailable,\n calendarPosition,\n };\n}\n\nexport function buildInputDate(input: string, assume: string) {\n const now = new Date();\n // eslint-disable-next-line prefer-const\n let [month, day, year] = input.split('/');\n if (month === '0') month = '01';\n if (day === '0') day = '01';\n if (input.length === 10) {\n return new Date(input);\n } else if (month && day && Number(day) > 0) {\n const twoDigitDay = Number(day) < 10 ? `0${Number(day)}` : day;\n const fourDigitYear = !year || year.length < 4 ? assumeYear(month, day, assume) : year;\n return new Date(`${month}/${twoDigitDay}/${fourDigitYear}`);\n } else if (month) {\n return new Date(`${month}/01/${now.getFullYear()}`);\n }\n}\n\nfunction assumeYear(month: string, day: string, assume: string): string {\n const monthDay = `${month}/${day}`;\n const now = new Date();\n const mm: string = now.getMonth() < 9 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`;\n const dd: string = now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`;\n const nowLocal = `${mm}/${dd}/${now.getFullYear()}`;\n let assumedYear = now.getFullYear();\n if (assume === 'future' && nowLocal.slice(0, 5) > monthDay) {\n assumedYear = now.getFullYear() + 1;\n } else if (assume === 'past' && nowLocal.slice(0, 5) < monthDay) {\n assumedYear = now.getFullYear() - 1;\n }\n return assumedYear.toString();\n}\n\nexport function handleMissingZeros(input): string {\n if (!input) {\n return '';\n }\n if (input.match(/^[1-9]\\/$/)) {\n return `0${input}/`;\n } else if (input.match(/^[0-9]{2}\\/[1-9]{1}\\/$/)) {\n const sp = input.split('/');\n return `${sp[0]}/0${sp[1]}/`;\n }\n return input;\n}\n\nexport function reorderDateString(input: string): string {\n const dateParts = (input || '').split('-');\n if (dateParts.length !== 3) return '';\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n}\n\nexport function firstDayOfWeekInMonth(month: number, year: number): number {\n return new Date(year, month, 1, 1, 1, 1, 1).getDay();\n}\n\nexport function getDays(): string[] {\n return [\n loc('tecton.element.calendar.days.short.Sunday'),\n loc('tecton.element.calendar.days.short.Monday'),\n loc('tecton.element.calendar.days.short.Tuesday'),\n loc('tecton.element.calendar.days.short.Wednesday'),\n loc('tecton.element.calendar.days.short.Thursday'),\n loc('tecton.element.calendar.days.short.Friday'),\n loc('tecton.element.calendar.days.short.Saturday'),\n ];\n}\n\nexport function getDaysOfWeek(): string[] {\n return [\n loc('tecton.element.calendar.days.Sunday'),\n loc('tecton.element.calendar.days.Monday'),\n loc('tecton.element.calendar.days.Tuesday'),\n loc('tecton.element.calendar.days.Wednesday'),\n loc('tecton.element.calendar.days.Thursday'),\n loc('tecton.element.calendar.days.Friday'),\n loc('tecton.element.calendar.days.Saturday'),\n ];\n}\n\nexport function getMonths(): string[] {\n return [\n loc('tecton.element.calendar.months.January'),\n loc('tecton.element.calendar.months.February'),\n loc('tecton.element.calendar.months.March'),\n loc('tecton.element.calendar.months.April'),\n loc('tecton.element.calendar.months.May'),\n loc('tecton.element.calendar.months.June'),\n loc('tecton.element.calendar.months.July'),\n loc('tecton.element.calendar.months.August'),\n loc('tecton.element.calendar.months.September'),\n loc('tecton.element.calendar.months.October'),\n loc('tecton.element.calendar.months.November'),\n loc('tecton.element.calendar.months.December'),\n ];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-calendar-types.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-types.ts"],"names":[],"mappings":"","sourcesContent":["export type Year = number;\nexport type Month = string;\nexport type MonthIndex = number;\nexport type Day = string;\nexport type DayOfWeek = string;\n\nexport interface
|
|
1
|
+
{"version":3,"file":"q2-calendar-types.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-types.ts"],"names":[],"mappings":"","sourcesContent":["export type Year = number;\nexport type Month = string;\nexport type MonthIndex = number;\nexport type Day = string;\nexport type DayOfWeek = string;\n\nexport interface SelectedMonthYear {\n monthIndex: number;\n selectedYear: number;\n}\n\nexport interface DateValidators {\n startDate?: Date;\n endDate?: Date;\n cutOffTime?: Date;\n}\n\nexport interface DateModel {\n date: Date;\n isEmpty: true;\n isActivity: boolean;\n integer: number;\n isToday: boolean;\n isValid: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isSelected: boolean;\n classList: string;\n}\n\nexport type DateEmpty = {\n date: null;\n isEmpty: boolean;\n integer: null;\n isActivity: false;\n isToday: false;\n isSelected: false;\n isStartDate: false;\n isEndDate: false;\n isValid: false;\n classList: string;\n};\n\nexport type InputValidation = {\n isValid: boolean;\n messageType: string;\n message: string;\n isAvailable: boolean;\n inputDate?: Date;\n calendarPosition?: number[];\n};\n\nexport type CalendarDay = DateModel | DateEmpty;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-calendar-validation.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { firstDayOfWeekInMonth } from './q2-calendar-helpers';\nimport { getDaysInMonth, isSameDay, isBefore, isAfter, isValid as isValidDate } from 'date-fns';\nimport { CalendarDay, DateEmpty, Year, IDateValidators, ISelectedMonthYear } from './q2-calendar-types';\n\n// Validation Helpers\nexport type DateList = CalendarDay[];\nexport type IsValid = boolean;\nexport type IsActivityDate = boolean;\nexport type DateValidation = (date: Date) => IsValid;\n\nexport function generateDatesFromMonthYear(month: number, year: Year): Date[] {\n const daysInMonth = getDaysInMonth(new Date(year, month));\n\n return [...Array(daysInMonth).keys()].reduce((acc, stepIndex) => {\n acc.push(new Date(year, month, stepIndex + 1));\n return acc;\n }, []);\n}\n\nexport function getValidDaysOfWeek(checksum: number = 127): number[] {\n /* tslint:disable:no-bitwise */\n const sunValid = checksum & 1;\n const monValid = checksum & 2;\n const tuesValid = checksum & 4;\n const wedsValid = checksum & 8;\n const thursValid = checksum & 16;\n const friValid = checksum & 32;\n const satValid = checksum & 64;\n /* tslint:enable:no-bitwise */\n const ret = [];\n\n if (checksum <= 0) return ret;\n if (sunValid) ret.push(0);\n if (monValid) ret.push(1);\n if (tuesValid) ret.push(2);\n if (wedsValid) ret.push(3);\n if (thursValid) ret.push(4);\n if (friValid) ret.push(5);\n if (satValid) ret.push(6);\n\n return ret;\n}\n\nexport function validateAgainstChecksum(validDaysOfWeek: number[], newDate: Date): IsValid {\n return validDaysOfWeek.includes(newDate.getDay());\n}\n\nexport function validateAgainstBlacklist(invalidDates: Date[], newDate: Date): IsValid {\n return !validateAgainstWhitelist(invalidDates, newDate);\n}\n\nexport function validateAgainstWhitelist(validDates: Date[], newDate: Date): IsValid {\n return validDates.some(validDate => isSameDay(validDate, newDate));\n}\n\nexport function buildDates(\n validDaysOfWeek: number[],\n validDates: Date[],\n invalidDates: Date[],\n selectedMonthYear: ISelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: IDateValidators,\n typedValue: string\n): DateList {\n const validationFns = [baseValidation.bind(null, dateValidators, new Date())];\n if (validDates?.length) {\n validationFns.push(validateAgainstWhitelist.bind(null, validDates));\n } else {\n validationFns.push(validateAgainstChecksum.bind(null, validDaysOfWeek));\n }\n validationFns.push(validateAgainstBlacklist.bind(null, invalidDates));\n\n return generateDateList(selectedMonthYear, currentSelection, dateValidators, validationFns, typedValue);\n}\n\nexport function generateDateList(\n { monthIndex, selectedYear }: ISelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: IDateValidators,\n validationFns: DateValidation[],\n typedValue: string\n): DateList {\n const isIncompleteDate = !isValidDate(new Date(typedValue));\n const datesInMonth = generateDatesFromMonthYear(monthIndex, selectedYear).map((dayInMonth, dateIndex) => {\n const isInvalid = validationFns.some(fn => !fn(dayInMonth));\n const dayState = getDayState(dayInMonth, dateValidators, currentSelection);\n const classList = generateClassesForCalDay({\n ...dayState,\n isInvalid,\n isIncompleteDate,\n });\n\n return {\n ...dayState,\n isValid: !isInvalid,\n date: dayInMonth,\n integer: dateIndex + 1,\n isEmpty: false,\n isActivity: false,\n classList,\n };\n });\n\n const startOfMonthEmpties = addEmptiesMonthStart(firstDayOfWeekInMonth(monthIndex, selectedYear));\n const endOfMonthEmpties = addEmptiesMonthEnd((startOfMonthEmpties.length + datesInMonth.length) % 7);\n\n return [...startOfMonthEmpties, ...datesInMonth, ...endOfMonthEmpties] as CalendarDay[];\n}\n\nexport function baseValidation(dateValidators: IDateValidators, now: Date, newDate: Date): boolean {\n const isNewDateBeforeStartDate = isAfter(dateValidators?.startDate, newDate);\n const isNewDateAfterEndDate = isBefore(dateValidators?.endDate, newDate);\n const isNowAfterCutoffTime = isSameDay(now, newDate) && isAfter(now, dateValidators?.cutOffTime);\n\n return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);\n}\n\nexport function getDayState(dayInMonth: Date, dateValidators: IDateValidators, currentDate: Date | undefined) {\n if (!currentDate) currentDate = new Date();\n const isSelected = currentDate && isSameDay(currentDate, dayInMonth);\n const isToday = isSameDay(dayInMonth, new Date());\n const isStartDate = isSameDay(dayInMonth, dateValidators?.startDate);\n const isEndDate = isSameDay(dayInMonth, dateValidators?.endDate);\n\n return { isSelected, isToday, isStartDate, isEndDate };\n}\n\nexport function generateClassesForCalDay({\n isInvalid,\n isSelected,\n isEndDate,\n isStartDate,\n isToday,\n isIncompleteDate,\n}: {\n isInvalid: boolean;\n isSelected: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isToday: boolean;\n isIncompleteDate: boolean;\n}): string {\n const classes = [];\n if (!isInvalid) classes.push('is-valid');\n if (isSelected) classes.push('is-selected');\n if (isEndDate) classes.push('is-end-date');\n if (isStartDate) classes.push('is-start-date');\n if (isToday) classes.push('is-today');\n if (isSelected && isInvalid && !isIncompleteDate) classes.push('is-unavailable');\n\n return classes.join(' ');\n}\n\nexport function addEmptiesMonthStart(monthStartDayOfWeek: number): DateEmpty[] {\n return addEmptyDates(0, monthStartDayOfWeek);\n}\n\nexport function addEmptiesMonthEnd(monthEndDayOfWeek: number): DateEmpty[] {\n if (monthEndDayOfWeek === 0) return [];\n return addEmptyDates(monthEndDayOfWeek, 7);\n}\n\nexport const emptyDate: DateEmpty = {\n date: null,\n integer: null,\n isActivity: false,\n isEmpty: true,\n isValid: false,\n isToday: false,\n isSelected: false,\n isStartDate: false,\n isEndDate: false,\n classList: '',\n};\n\nexport function addEmptyDates(from: number, to: number): DateEmpty[] {\n if (from === 7) from = 0;\n return [...Array(to - from).keys()].map(() => ({ ...emptyDate }) as DateEmpty);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-calendar-validation.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { firstDayOfWeekInMonth } from './q2-calendar-helpers';\nimport { getDaysInMonth, isSameDay, isBefore, isAfter, isValid as isValidDate } from 'date-fns';\nimport { CalendarDay, DateEmpty, Year, DateValidators, SelectedMonthYear } from './q2-calendar-types';\n\n// Validation Helpers\nexport type DateList = CalendarDay[];\nexport type IsValid = boolean;\nexport type IsActivityDate = boolean;\nexport type DateValidation = (date: Date) => IsValid;\n\nexport function generateDatesFromMonthYear(month: number, year: Year): Date[] {\n const daysInMonth = getDaysInMonth(new Date(year, month));\n\n return [...Array(daysInMonth).keys()].reduce((acc, stepIndex) => {\n acc.push(new Date(year, month, stepIndex + 1));\n return acc;\n }, []);\n}\n\nexport function getValidDaysOfWeek(checksum: number = 127): number[] {\n /* tslint:disable:no-bitwise */\n const sunValid = checksum & 1;\n const monValid = checksum & 2;\n const tuesValid = checksum & 4;\n const wedsValid = checksum & 8;\n const thursValid = checksum & 16;\n const friValid = checksum & 32;\n const satValid = checksum & 64;\n /* tslint:enable:no-bitwise */\n const ret = [];\n\n if (checksum <= 0) return ret;\n if (sunValid) ret.push(0);\n if (monValid) ret.push(1);\n if (tuesValid) ret.push(2);\n if (wedsValid) ret.push(3);\n if (thursValid) ret.push(4);\n if (friValid) ret.push(5);\n if (satValid) ret.push(6);\n\n return ret;\n}\n\nexport function validateAgainstChecksum(validDaysOfWeek: number[], newDate: Date): IsValid {\n return validDaysOfWeek.includes(newDate.getDay());\n}\n\nexport function validateAgainstBlacklist(invalidDates: Date[], newDate: Date): IsValid {\n return !validateAgainstWhitelist(invalidDates, newDate);\n}\n\nexport function validateAgainstWhitelist(validDates: Date[], newDate: Date): IsValid {\n return validDates.some(validDate => isSameDay(validDate, newDate));\n}\n\nexport function buildDates(\n validDaysOfWeek: number[],\n validDates: Date[],\n invalidDates: Date[],\n selectedMonthYear: SelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: DateValidators,\n typedValue: string\n): DateList {\n const validationFns = [baseValidation.bind(null, dateValidators, new Date())];\n if (validDates?.length) {\n validationFns.push(validateAgainstWhitelist.bind(null, validDates));\n } else {\n validationFns.push(validateAgainstChecksum.bind(null, validDaysOfWeek));\n }\n validationFns.push(validateAgainstBlacklist.bind(null, invalidDates));\n\n return generateDateList(selectedMonthYear, currentSelection, dateValidators, validationFns, typedValue);\n}\n\nexport function generateDateList(\n { monthIndex, selectedYear }: SelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: DateValidators,\n validationFns: DateValidation[],\n typedValue: string\n): DateList {\n const isIncompleteDate = !isValidDate(new Date(typedValue));\n const datesInMonth = generateDatesFromMonthYear(monthIndex, selectedYear).map((dayInMonth, dateIndex) => {\n const isInvalid = validationFns.some(fn => !fn(dayInMonth));\n const dayState = getDayState(dayInMonth, dateValidators, currentSelection);\n const classList = generateClassesForCalDay({\n ...dayState,\n isInvalid,\n isIncompleteDate,\n });\n\n return {\n ...dayState,\n isValid: !isInvalid,\n date: dayInMonth,\n integer: dateIndex + 1,\n isEmpty: false,\n isActivity: false,\n classList,\n };\n });\n\n const startOfMonthEmpties = addEmptiesMonthStart(firstDayOfWeekInMonth(monthIndex, selectedYear));\n const endOfMonthEmpties = addEmptiesMonthEnd((startOfMonthEmpties.length + datesInMonth.length) % 7);\n\n return [...startOfMonthEmpties, ...datesInMonth, ...endOfMonthEmpties] as CalendarDay[];\n}\n\nexport function baseValidation(dateValidators: DateValidators, now: Date, newDate: Date): boolean {\n const isNewDateBeforeStartDate = isAfter(dateValidators?.startDate, newDate);\n const isNewDateAfterEndDate = isBefore(dateValidators?.endDate, newDate);\n const isNowAfterCutoffTime = isSameDay(now, newDate) && isAfter(now, dateValidators?.cutOffTime);\n\n return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);\n}\n\nexport function getDayState(dayInMonth: Date, dateValidators: DateValidators, currentDate: Date | undefined) {\n if (!currentDate) currentDate = new Date();\n const isSelected = currentDate && isSameDay(currentDate, dayInMonth);\n const isToday = isSameDay(dayInMonth, new Date());\n const isStartDate = isSameDay(dayInMonth, dateValidators?.startDate);\n const isEndDate = isSameDay(dayInMonth, dateValidators?.endDate);\n\n return { isSelected, isToday, isStartDate, isEndDate };\n}\n\nexport function generateClassesForCalDay({\n isInvalid,\n isSelected,\n isEndDate,\n isStartDate,\n isToday,\n isIncompleteDate,\n}: {\n isInvalid: boolean;\n isSelected: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isToday: boolean;\n isIncompleteDate: boolean;\n}): string {\n const classes = [];\n if (!isInvalid) classes.push('is-valid');\n if (isSelected) classes.push('is-selected');\n if (isEndDate) classes.push('is-end-date');\n if (isStartDate) classes.push('is-start-date');\n if (isToday) classes.push('is-today');\n if (isSelected && isInvalid && !isIncompleteDate) classes.push('is-unavailable');\n\n return classes.join(' ');\n}\n\nexport function addEmptiesMonthStart(monthStartDayOfWeek: number): DateEmpty[] {\n return addEmptyDates(0, monthStartDayOfWeek);\n}\n\nexport function addEmptiesMonthEnd(monthEndDayOfWeek: number): DateEmpty[] {\n if (monthEndDayOfWeek === 0) return [];\n return addEmptyDates(monthEndDayOfWeek, 7);\n}\n\nexport const emptyDate: DateEmpty = {\n date: null,\n integer: null,\n isActivity: false,\n isEmpty: true,\n isValid: false,\n isToday: false,\n isSelected: false,\n isStartDate: false,\n isEndDate: false,\n classList: '',\n};\n\nexport function addEmptyDates(from: number, to: number): DateEmpty[] {\n if (from === 7) from = 0;\n return [...Array(to - from).keys()].map(() => ({ ...emptyDate }) as DateEmpty);\n}\n"]}
|
|
@@ -177,7 +177,10 @@ td[aria-selected=true] {
|
|
|
177
177
|
box-shadow: 0 0 0 2px var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))));
|
|
178
178
|
}
|
|
179
179
|
td[aria-selected=true]:focus {
|
|
180
|
-
box-shadow: 0 0 0 2px var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1)))), 0 0 0 4px var(--const-focus-color, #0066cc);
|
|
180
|
+
box-shadow: 0 0 0 2px var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1)))), 0 0 0 4px var(--tct-calendar-day-focused-outer-ring-color, var(--const-focus-color, #0066cc));
|
|
181
|
+
}
|
|
182
|
+
td:focus-visible {
|
|
183
|
+
box-shadow: 0 0 0 2px var(--tct-calendar-day-focus-visible-inner-ring-color, #ffffff), 0 0 0 4px var(--tct-calendar-day-focus-visible-outer-ring-color, --const-focus-color, #0066cc);
|
|
181
184
|
}
|
|
182
185
|
|
|
183
186
|
.today-decorator {
|
|
@@ -799,7 +799,7 @@ export class Q2Calendar {
|
|
|
799
799
|
return (h("q2-input", { ref: el => (this.controlElement = el), class: "calendar-input-field", value: this.formattedValue, label: loc(this.label), hideLabel: this.hideLabel, disabled: !!this.disabled, readonly: !!this.readonly, clearable: this.canClear, placeholder: this.computedPlaceholder, optional: !!this.optional, "aria-expanded": `${!!this.open}`, "aria-controls": "calendar-popover", hints: this.hintList, errors: this.errorList, onClick: isTypeable ? undefined : this.onInputClick, onChange: e => e.stopImmediatePropagation(), onTctChange: e => e.stopImmediatePropagation(), onInput: e => e.stopImmediatePropagation(), onTctInput: this.onInputInput, onKeyDown: this.onInputKeydown, onKeyUp: this.onInputKeyup, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "icon-right": isTypeable ? undefined : 'calendar', "format-modifier": isTypeable ? this.formatModifier : this.displayFormat || this.formatModifier, type: "date", "hide-messages": !isTypeable, "test-id": "inputAndCalendarToggle", _role: "combobox", _preventEntry: !isTypeable }, isTypeable && (h("q2-btn", { ref: el => (this.btnCalendarToggle = el), slot: "input-right", onClick: this.onInputClick, "test-id": "calendarToggle", label: "tecton.element.calendar.toggleAriaLabel", "hide-label": true }, h("q2-icon", { type: "calendar" })))));
|
|
800
800
|
}
|
|
801
801
|
render() {
|
|
802
|
-
return (h("click-elsewhere", { key: '
|
|
802
|
+
return (h("click-elsewhere", { key: 'b56461b08364576460861bfacee8da16e482d85b', class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, this.renderInputField(), h("q2-popover", { key: '9bba51d05ce0752dd874361c7f3b9b82db86bc70', ref: el => (this.popoverElement = el), id: "calendar-popover", controlElement: this.innerInputContainer, open: this.open, direction: this.popoverDirection, minHeight: this.popoverMinHeight, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: true }, this.renderHintField(), this.renderCalendarPopover())));
|
|
803
803
|
}
|
|
804
804
|
static get is() { return "q2-calendar"; }
|
|
805
805
|
static get encapsulation() { return "shadow"; }
|