q2-tecton-elements 1.66.2 → 1.67.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +3106 -2970
- 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} +168 -20
- 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 +3 -3
- package/dist/cjs/q2-action-sheet.cjs.entry.js +3 -3
- 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 +22 -8
- 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 +3 -3
- 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 +2 -2
- 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-grid-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-grid.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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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/collection-manifest.json +3 -3
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- 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 +42 -6
- 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-checkbox-group/q2-checkbox-group.js +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-dropdown/q2-dropdown.js +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
- 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 +1 -1
- package/dist/collection/components/q2-grid-area/q2-grid-area.js +1 -1
- 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 +13 -13
- 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 +94 -14
- 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/q2-radio.js +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.css +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-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-textarea/q2-textarea.js +1 -1
- 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-action-group2.js +1 -1
- package/dist/components/q2-action-sheet.js +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 +22 -7
- 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 +2 -2
- 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-dropdown.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-grid-area.js +1 -1
- package/dist/components/q2-grid.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 +76 -15
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +2 -2
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +2 -2
- 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 +2 -2
- 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} +169 -22
- 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 +3 -3
- package/dist/esm/q2-action-sheet.entry.js +3 -3
- 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 +22 -8
- 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 +3 -3
- 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 +2 -2
- 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-grid-area.entry.js +1 -1
- package/dist/esm/q2-grid.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 +3 -3
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +3 -3
- 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 +3 -3
- 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} +357 -224
- 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 +5 -5
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +10 -10
- 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 +30 -21
- 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 +13 -11
- 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 +8 -8
- 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 +16 -16
- package/dist/q2-tecton-elements/q2-currency.entry.js +8 -8
- 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 +79 -79
- 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-grid-area.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-grid.entry.js +3 -3
- 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 +40 -40
- 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 +30 -30
- 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 +40 -40
- 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 +8 -8
- 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 +23 -23
- 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 +12 -12
- 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 +16 -15
- 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 +38 -36
- 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 +4 -4
- 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 +8 -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 +8 -9
- 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
|
@@ -351,6 +351,15 @@ export class Q2DataTable {
|
|
|
351
351
|
(this.hasExpandableRows ? 1 : 0) +
|
|
352
352
|
(this.hasDropdowns ? 1 : 0));
|
|
353
353
|
}
|
|
354
|
+
_badgeColumnContent(cell) {
|
|
355
|
+
var _a;
|
|
356
|
+
if ((_a = cell.tags) === null || _a === void 0 ? void 0 : _a.length) {
|
|
357
|
+
return (h("div", { class: "tag-table" }, cell.tags.map(x => {
|
|
358
|
+
return (h("q2-tag", { theme: x.badgeTheme, label: x.value }));
|
|
359
|
+
})));
|
|
360
|
+
}
|
|
361
|
+
return (h("q2-badge", { "aria-label": cell.ariaLabel, value: typeof cell.value !== 'boolean' ? cell.value : cell.value ? 1 : 0, theme: cell.badgeTheme, status: cell.badgeStatus, size: "large" }));
|
|
362
|
+
}
|
|
354
363
|
getSelectRowLabel(row) {
|
|
355
364
|
const { selectAriaLabel, cells } = row;
|
|
356
365
|
if (typeof selectAriaLabel === 'string') {
|
|
@@ -389,7 +398,7 @@ export class Q2DataTable {
|
|
|
389
398
|
// #region Render Methods
|
|
390
399
|
render() {
|
|
391
400
|
const { caption } = this;
|
|
392
|
-
return (h("div", { key: '
|
|
401
|
+
return (h("div", { key: 'c60810b5cc26058b94829ee4f7942df9804403e9', class: "container" }, h("table", { key: '5fab9778577ef7b24955e3219a1bc054db6703f9' }, caption && h("caption", { key: 'daa8d4647859d4eeace2b9f4103bd73e5494b633', class: this.hideCaption ? 'sr' : undefined }, caption), this.renderTableColGroup(), this.renderTableHeader(), this.renderEmptyState(), this.renderTableRows())));
|
|
393
402
|
}
|
|
394
403
|
renderCellContent(cell) {
|
|
395
404
|
if (!cell)
|
|
@@ -399,19 +408,7 @@ export class Q2DataTable {
|
|
|
399
408
|
return;
|
|
400
409
|
switch (type) {
|
|
401
410
|
case 'badge':
|
|
402
|
-
|
|
403
|
-
switch (typeof value) {
|
|
404
|
-
case 'string':
|
|
405
|
-
valueAsInt = parseFloat(value);
|
|
406
|
-
break;
|
|
407
|
-
case 'boolean':
|
|
408
|
-
valueAsInt = value ? 1 : 0;
|
|
409
|
-
break;
|
|
410
|
-
default:
|
|
411
|
-
valueAsInt = value;
|
|
412
|
-
break;
|
|
413
|
-
}
|
|
414
|
-
return (h("q2-badge", { "aria-label": ariaLabel, value: valueAsInt, theme: cell.badgeTheme, status: cell.badgeStatus, size: "large" }));
|
|
411
|
+
return this._badgeColumnContent(cell);
|
|
415
412
|
case 'icon':
|
|
416
413
|
const valueAsString = typeof value === 'string' ? value : `${value}`;
|
|
417
414
|
return (h("q2-icon", { label: ariaLabel, type: valueAsString }));
|
|
@@ -653,9 +650,9 @@ export class Q2DataTable {
|
|
|
653
650
|
"resolved": "Q2DataTableHeader[]",
|
|
654
651
|
"references": {
|
|
655
652
|
"Q2DataTableHeader": {
|
|
656
|
-
"location": "
|
|
657
|
-
"path": "
|
|
658
|
-
"id": "
|
|
653
|
+
"location": "import",
|
|
654
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
655
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableHeader"
|
|
659
656
|
}
|
|
660
657
|
}
|
|
661
658
|
},
|
|
@@ -740,9 +737,9 @@ export class Q2DataTable {
|
|
|
740
737
|
"resolved": "Q2DataTableRow[]",
|
|
741
738
|
"references": {
|
|
742
739
|
"Q2DataTableRow": {
|
|
743
|
-
"location": "
|
|
744
|
-
"path": "
|
|
745
|
-
"id": "
|
|
740
|
+
"location": "import",
|
|
741
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
742
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableRow"
|
|
746
743
|
}
|
|
747
744
|
}
|
|
748
745
|
},
|
|
@@ -809,9 +806,9 @@ export class Q2DataTable {
|
|
|
809
806
|
"resolved": "Q2DataTableRow[]",
|
|
810
807
|
"references": {
|
|
811
808
|
"Q2DataTableRow": {
|
|
812
|
-
"location": "
|
|
813
|
-
"path": "
|
|
814
|
-
"id": "
|
|
809
|
+
"location": "import",
|
|
810
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
811
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableRow"
|
|
815
812
|
}
|
|
816
813
|
}
|
|
817
814
|
},
|
|
@@ -940,9 +937,9 @@ export class Q2DataTable {
|
|
|
940
937
|
"resolved": "{ row: Q2DataTableSerializedRow; }",
|
|
941
938
|
"references": {
|
|
942
939
|
"Q2DataTableSerializedRow": {
|
|
943
|
-
"location": "
|
|
944
|
-
"path": "
|
|
945
|
-
"id": "
|
|
940
|
+
"location": "import",
|
|
941
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
942
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
946
943
|
}
|
|
947
944
|
}
|
|
948
945
|
}
|
|
@@ -964,9 +961,9 @@ export class Q2DataTable {
|
|
|
964
961
|
"resolved": "{ row: Q2DataTableSerializedRow; rows: Q2DataTableSerializedRow[]; allSelected: boolean; }",
|
|
965
962
|
"references": {
|
|
966
963
|
"Q2DataTableSerializedRow": {
|
|
967
|
-
"location": "
|
|
968
|
-
"path": "
|
|
969
|
-
"id": "
|
|
964
|
+
"location": "import",
|
|
965
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
966
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
970
967
|
}
|
|
971
968
|
}
|
|
972
969
|
}
|
|
@@ -1006,9 +1003,9 @@ export class Q2DataTable {
|
|
|
1006
1003
|
"resolved": "{ header: Q2DataTableHeader; direction: \"ASC\" | \"DESC\"; }",
|
|
1007
1004
|
"references": {
|
|
1008
1005
|
"Q2DataTableHeader": {
|
|
1009
|
-
"location": "
|
|
1010
|
-
"path": "
|
|
1011
|
-
"id": "
|
|
1006
|
+
"location": "import",
|
|
1007
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1008
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableHeader"
|
|
1012
1009
|
}
|
|
1013
1010
|
}
|
|
1014
1011
|
}
|
|
@@ -1027,9 +1024,9 @@ export class Q2DataTable {
|
|
|
1027
1024
|
"resolved": "{ row: Q2DataTableSerializedRow; }",
|
|
1028
1025
|
"references": {
|
|
1029
1026
|
"Q2DataTableSerializedRow": {
|
|
1030
|
-
"location": "
|
|
1031
|
-
"path": "
|
|
1032
|
-
"id": "
|
|
1027
|
+
"location": "import",
|
|
1028
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1029
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
1033
1030
|
}
|
|
1034
1031
|
}
|
|
1035
1032
|
}
|
|
@@ -1048,9 +1045,9 @@ export class Q2DataTable {
|
|
|
1048
1045
|
"resolved": "{ row: Q2DataTableSerializedRow; rows: Q2DataTableSerializedRow[]; allSelected: boolean; }",
|
|
1049
1046
|
"references": {
|
|
1050
1047
|
"Q2DataTableSerializedRow": {
|
|
1051
|
-
"location": "
|
|
1052
|
-
"path": "
|
|
1053
|
-
"id": "
|
|
1048
|
+
"location": "import",
|
|
1049
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1050
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
1054
1051
|
}
|
|
1055
1052
|
}
|
|
1056
1053
|
}
|
|
@@ -1084,9 +1081,9 @@ export class Q2DataTable {
|
|
|
1084
1081
|
"resolved": "{ header: Q2DataTableHeader; direction: \"ASC\" | \"DESC\"; }",
|
|
1085
1082
|
"references": {
|
|
1086
1083
|
"Q2DataTableHeader": {
|
|
1087
|
-
"location": "
|
|
1088
|
-
"path": "
|
|
1089
|
-
"id": "
|
|
1084
|
+
"location": "import",
|
|
1085
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1086
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableHeader"
|
|
1090
1087
|
}
|
|
1091
1088
|
}
|
|
1092
1089
|
}
|
|
@@ -1105,9 +1102,9 @@ export class Q2DataTable {
|
|
|
1105
1102
|
"resolved": "{ row: Q2DataTableSerializedRow; }",
|
|
1106
1103
|
"references": {
|
|
1107
1104
|
"Q2DataTableSerializedRow": {
|
|
1108
|
-
"location": "
|
|
1109
|
-
"path": "
|
|
1110
|
-
"id": "
|
|
1105
|
+
"location": "import",
|
|
1106
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1107
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
1111
1108
|
}
|
|
1112
1109
|
}
|
|
1113
1110
|
}
|
|
@@ -1129,9 +1126,9 @@ export class Q2DataTable {
|
|
|
1129
1126
|
"resolved": "{ row: Q2DataTableSerializedRow; }",
|
|
1130
1127
|
"references": {
|
|
1131
1128
|
"Q2DataTableSerializedRow": {
|
|
1132
|
-
"location": "
|
|
1133
|
-
"path": "
|
|
1134
|
-
"id": "
|
|
1129
|
+
"location": "import",
|
|
1130
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1131
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableSerializedRow"
|
|
1135
1132
|
}
|
|
1136
1133
|
}
|
|
1137
1134
|
}
|
|
@@ -1209,9 +1206,9 @@ export class Q2DataTable {
|
|
|
1209
1206
|
"id": "global::Promise"
|
|
1210
1207
|
},
|
|
1211
1208
|
"Q2DataTableHeader": {
|
|
1212
|
-
"location": "
|
|
1213
|
-
"path": "
|
|
1214
|
-
"id": "
|
|
1209
|
+
"location": "import",
|
|
1210
|
+
"path": "q2-tecton-common/lib/types/elements",
|
|
1211
|
+
"id": "../q2-tecton-common/lib/types/elements.d.ts::Q2DataTableHeader"
|
|
1215
1212
|
},
|
|
1216
1213
|
"HTMLQ2BtnElement": {
|
|
1217
1214
|
"location": "global",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-data-table.js","sourceRoot":"","sources":["../../../../src/components/q2-data-table/q2-data-table.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Event,\n Element,\n EventEmitter,\n Fragment,\n Listen,\n Method,\n} from '@stencil/core';\nimport { loc, resizeIframe } from '../../utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\nexport type Q2DataTableCellAlignOptions = 'start' | 'center' | 'end';\n\nexport type Q2DataTableCellType =\n | {\n // defines the type of cell\n type?: 'text' | 'number' | 'icon' | 'boolean' | 'code';\n }\n | {\n // when type='badge'\n type?: 'badge';\n badgeStatus?: HTMLQ2BadgeElement['status'];\n badgeTheme?: HTMLQ2BadgeElement['theme'];\n };\n\nexport type Q2DataTableHeader = {\n title: string;\n align?: Q2DataTableCellAlignOptions;\n // Will be autogenerated from the title if not provided\n // The key is used to grab the data from the row data\n key?: string;\n // Enables sorting for this column when true\n // Manual will prevent automatic sorting and updating of the sorting indicators in the header\n sortable?: boolean | 'auto' | 'manual';\n width?: string;\n // defines background for the column\n backgroundColor?: string;\n sorted?: 'ASC' | 'DESC';\n ariaLabel?: string;\n lineClamp?: number;\n verticalAlign?: 'top' | 'bottom';\n} & Partial<Q2DataTableCellType>;\n\nexport type Q2DataTableCell = {\n value: string | number | boolean;\n align?: Q2DataTableCellAlignOptions;\n ariaLabel?: string;\n lineClamp?: number;\n verticalAlign?: 'top' | 'bottom';\n} & Q2DataTableCellType;\n\nexport type Q2DataTableBaseRow = {\n id: string | number;\n selected?: boolean;\n expanded?: boolean;\n disabled?: boolean;\n selectAriaLabel?: string | string[];\n};\n\nexport type Q2DataTableCells = Record<string, string | number | Q2DataTableCell>;\nexport type Q2DataTableSerializedCells = Record<string, Q2DataTableCell>;\n\nexport type Q2DataTableRow = Q2DataTableBaseRow & {\n cells: Q2DataTableCells;\n};\nexport type Q2DataTableSerializedRow = Q2DataTableBaseRow & {\n cells: Q2DataTableSerializedCells;\n};\n\n/**\n * @name Data Table\n * @category Display\n * @summary Use for displaying large datasets with sorting, filtering, and selecting.\n * @slot row-<id>-cell-<key> - A slot for overriding the content of any cell in any row of the table with custom content.\n * @slot header-cell-<key> - A slot for the content of any cell in the header of the table.\n * @slot row-<id>-dropdown - A slot to provide a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/) for a row.\n * @slot row-<id>-expandable-content - A slot that makes the row expandable and displays the provided content.\n * @slot empty-table - An optional slot to display custom content when the table is empty.\n */\n@Component({ tag: 'q2-data-table', shadow: true, styleUrl: 'q2-data-table.scss' })\nexport class Q2DataTable implements ComponentInterface {\n // #region Own Properties\n\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\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 allRowsSelected: boolean = false;\n\n @State()\n checkSlotCount: number = 0;\n\n @State()\n hasDropdowns: boolean = false;\n\n @State()\n hasExpandableRows: boolean = false;\n\n @State()\n hasRowData: boolean = false;\n\n @State()\n serializedHeaders: Q2DataTableHeader[] = [];\n\n @State()\n serializedRows: Q2DataTableSerializedRow[] = [];\n\n @State()\n someRowsSelected: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Adds borders between rows and/or columns in the table. */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean | 'horizontal' | 'vertical' | 'grid';\n\n /** Provides a caption for the data table. */\n @Prop({ mutable: true })\n caption: string;\n\n /** Adds the ability to click a row and have the table emit an event with the selected row's data. */\n @Prop({ mutable: true, reflect: true })\n clickable: boolean;\n\n /** Determines the amount of padding for each of the cells in the table. */\n @Prop({ mutable: true, reflect: true })\n density: 'compact' | 'normal' | 'comfortable';\n\n /** Determines the `q2-icon` that will display when `rows` has no value. */\n @Prop({ reflect: true })\n emptyIcon: string = 'inbox';\n\n /** Determines the message that will display when `rows` has no value.\n * @localizable\n */\n @Prop({ reflect: true })\n emptyMessage: string = 'tecton.element.dataTable.emptyMessage';\n\n /**\n * Defines the headers of the table.\n *\n * **Example:**\n * @snippet\n * element.headers = [\n * {\n * title: 'Day of the Week',\n * key: 'day',\n * },\n * {\n * title: 'Sales',\n * key: 'sales',\n * align: 'end',\n * }\n * ]\n *\n */\n @Prop({ mutable: true })\n headers: Q2DataTableHeader[];\n\n /** Hides the caption from view, but still makes it available to screen readers for accessibility purposes. */\n @Prop({ mutable: true, reflect: true })\n hideCaption: boolean;\n\n /**\n * Visually hides the `Select` button that displays when `clickable=true`. It will still be discoverable by assistive technologies.\n *\n * @info\n * Use of this property requires `clickable` to be set to `true`.\n */\n @Prop({ mutable: true })\n hideClickable: boolean;\n\n /** Displays a loading state on the table to indicate background activity. */\n @Prop({ mutable: true, reflect: true })\n loading: boolean;\n\n /**\n * Defines the rows of the table.\n *\n * **Example:**\n * @snippet\n * element.rows = [\n * {\n * id: 1,\n * cells: {\n * day: 'Monday',\n * sales: 93\n * }\n * },\n * {\n * id: 2,\n * cells: {\n * day: 'Tuesday',\n * sales: 127\n * }\n * },\n * {\n * id: 3,\n * cells: {\n * day: 'Wednesday',\n * sales: 121\n * }\n * ]\n */\n @Prop({ mutable: true })\n rows: Q2DataTableRow[];\n\n /** Adds a checkbox to each row of the table making it selectable. */\n @Prop({ mutable: true, reflect: true })\n selectable: boolean;\n\n /**\n * Controls the position of the checkbox column when `selectable` is true.\n * When set to 'right', the checkbox column will appear on the right side of the table.\n *\n * @warning\n * Use of this property requires `selectable` to be set to `true`.\n */\n @Prop({ mutable: true })\n selectAlign: 'left' | 'right' = 'left';\n\n /**\n * Returns selected rows.\n * @readonly\n */\n @Prop({ mutable: true })\n get selectedRows(): Q2DataTableRow[] {\n return this.serializedRows?.filter(({ selected }) => !!selected) || [];\n }\n\n set selectedRows(_) {\n console.error('Direct assignment to selectedRows is not allowed.');\n }\n\n /**\n * Determines if the selectable checkboxes allow for multi-select or not. If set to \"single\", once a row is selected, all other rows will be disabled.\n * See the documentation on the `select` event for how to handle selections.\n *\n * @warning\n * Use of this property requires `selectable` to be set to `true`.\n */\n @Prop({ mutable: true })\n selectMode: 'multiple' | 'single' = 'multiple';\n\n /** Adds a shadow to the table */\n @Prop({ mutable: true, reflect: true })\n shadowed: boolean;\n\n /** Makes table header sticky */\n @Prop({ reflect: true })\n sticky: boolean;\n\n /** Enables alternating background colors for the table rows */\n @Prop({ reflect: true })\n striped: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a row is clicked.\n *\n * Requires the `clickable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default click behavior.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when a row is selected.\n *\n * Requires the `selectable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default selection behavior.\n * @deprecated Use 'tctSelect' instead\n */\n @Event()\n select: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n\n /**\n * Emitted when the select-all checkbox is toggled.\n *\n * Requires the `selectable` prop to be set to `true` and the `selectMode` prop to be set to `multiple`.\n *\n * Call `event.preventDefault()` to prevent the default behavior.\n * @deprecated Use 'tctSelectAllRows' instead\n */\n @Event()\n selectAllRows: EventEmitter<{ checked: boolean }>;\n\n /**\n * Emitted when a column is sorted.\n *\n * Requires the `sortable` prop to be set to `true` on the column.\n *\n * Call `event.preventDefault()` to prevent the default sorting behavior.\n * @deprecated Use 'tctSort' instead\n */\n @Event()\n sort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n /**\n * Emitted when a row is clicked.\n *\n * Requires the `clickable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default click behavior.\n */\n @Event()\n tctClick: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when a row is selected.\n *\n * Requires the `selectable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default selection behavior.\n */\n @Event()\n tctSelect: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n\n /**\n * Emitted when the select-all checkbox is toggled.\n *\n * Requires the `selectable` prop to be set to `true` and the `selectMode` prop to be set to `multiple`.\n *\n * Call `event.preventDefault()` to prevent the default behavior.\n */\n @Event()\n tctSelectAllRows: EventEmitter<{ checked: boolean }>;\n\n /**\n * Emitted when a column is sorted.\n *\n * Requires the `sortable` prop to be set to `true` on the column.\n *\n * Call `event.preventDefault()` to prevent the default sorting behavior.\n */\n @Event()\n tctSort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n /**\n * Emitted when an expandable row is toggled.\n *\n * Requires content in the `row-{id}-expandable-content` slot.\n *\n * Call `event.preventDefault()` to prevent the default toggling behavior.\n */\n @Event()\n tctToggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when an expandable row is toggled.\n *\n * Requires content in the `row-{id}-expandable-content` slot.\n *\n * Call `event.preventDefault()` to prevent the default toggling behavior.\n * @deprecated Use 'tctToggle' instead\n */\n @Event()\n toggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n componentWillLoad() {\n this.headersHandler(this.headers);\n this.rowsHandler(this.rows);\n }\n\n componentDidLoad(): void {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => this.checkSlots());\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => resizeIframe());\n this.resizeObserver.observe(this.hostElement);\n }\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onClickListener(event: MouseEvent) {\n if (event instanceof PointerEvent) event.stopImmediatePropagation();\n }\n\n @Listen('selectAllRows')\n onSelectAllRows(event: CustomEvent<{ checked: boolean }>) {\n event.stopPropagation();\n const { checked } = event.detail;\n const selectedRows = checked\n ? this.serializedRows.map(row => {\n if (row.disabled) {\n return row;\n } else {\n return {\n ...row,\n selected: checked,\n };\n }\n })\n : [];\n const selectEvent = mirrorEmit(this, ['select', 'tctSelect'], {\n row: undefined,\n rows: selectedRows,\n allSelected: checked,\n });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n if (row.disabled) return row;\n row.selected = checked;\n return row;\n });\n this.allRowsSelected = checked;\n this.someRowsSelected = false;\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method to click a row that accepts a row ID that is will be clicked.\n *\n * @testOnly\n */\n @Method()\n async clickRow(rowId: number | string) {\n const btn = this.hostElement.shadowRoot.querySelector(`#row-${rowId} q2-btn[test-id=\"clickable-row-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method that returns the plain text value of a particular cell (including slot content).\n *\n * @testOnly\n */\n @Method()\n async getCellContent(rowId: number | string, columnKey: string) {\n const slotContent = this.hostElement.querySelector(`[slot=row-${rowId}-cell-${columnKey}`)?.textContent;\n const text = this.hostElement.shadowRoot.querySelector(\n `slot[name=row-${rowId}-cell-${columnKey}]`\n )?.textContent;\n return slotContent || text || '';\n }\n\n /**\n * A method to sort a column that accepts a header object with key</b> and <b>sorted</b> property.\n *\n * @testOnly\n */\n @Method()\n async sortColumn(header: Q2DataTableHeader) {\n const btn = this.hostElement.shadowRoot.querySelector(`#header-${header.key} q2-btn[test-id=\"sort-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method to toggle row expansion that accepts a row ID that will be clicked to expand or collapse the expandable content\n *\n * @testOnly\n */\n @Method()\n async toggleRowExpansion(rowId: number | string) {\n const btn = this.hostElement.shadowRoot.querySelector(`#row-${rowId} q2-btn[test-id=\"expandable-row-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method to toggle row selection that accepts a row ID whose checkbox will be checked, if the feature is enabled.\n *\n * @testOnly\n */\n @Method()\n async toggleRowSelect(rowId: number | string) {\n const chk = this.hostElement.shadowRoot.querySelector(\n `#row-${rowId} q2-checkbox[test-id=\"select-row-control\"]`\n );\n (chk as HTMLQ2CheckboxElement)?.click();\n }\n\n /**\n * A method to toggle select all button (checkbox) on left top corner.\n *\n * @testOnly\n */\n @Method()\n async toggleSelectAllRows() {\n if (!this.selectable) return;\n const chk = this.hostElement.shadowRoot.querySelector(`q2-checkbox[test-id=\"select-all-rows-control\"]`);\n (chk as HTMLQ2CheckboxElement)?.click();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('headers')\n headersHandler(headers: Q2DataTableHeader[] = []) {\n this.serializedHeaders = headers.map<Q2DataTableHeader>(header => {\n const { title } = header;\n let { key } = header;\n\n // If no key is provided, generate one from the title\n if (!key) key = title.toLowerCase().replace(/\\s/g, '-');\n\n return {\n key,\n ...header,\n };\n });\n }\n\n @Watch('rows')\n rowsHandler(rows: Q2DataTableRow[] = []) {\n const { serializedHeaders, mappedHeaders } = this;\n const defaultRow = {\n id: null,\n cells: {},\n selected: false,\n expanded: false,\n disabled: false,\n };\n\n // tracks if the select-all checkbox should be visually updated as the `rows` are built\n let isAllSelected = true;\n let isIndeterminate = false;\n\n const serializedRows = rows.map(({ id, cells, selected, expanded, disabled, selectAriaLabel }) => {\n const serializedCells = Object.entries(cells).reduce<Q2DataTableSerializedCells>(\n (accum, [cellKey, cellData]) => {\n const header = mappedHeaders[cellKey] || ({} as Q2DataTableHeader);\n const { align, type = 'text', lineClamp, verticalAlign } = header;\n\n const isBadge = 'type' in header && header.type === 'badge';\n const defaultCell: Q2DataTableCell = {\n value: '',\n ariaLabel: undefined,\n type,\n align,\n lineClamp,\n verticalAlign,\n badgeStatus: isBadge ? header.badgeStatus : undefined,\n badgeTheme: isBadge ? header.badgeTheme : undefined,\n };\n\n const result: Q2DataTableCell =\n typeof cellData === 'object'\n ? { ...defaultCell, ...cellData }\n : { ...defaultCell, value: cellData };\n\n accum[cellKey] = result;\n return accum;\n },\n {}\n );\n\n if (isAllSelected && !selected) isAllSelected = false;\n if (!isAllSelected && selected) isIndeterminate = true;\n return {\n ...defaultRow,\n id,\n selected: !!selected,\n expanded: !!expanded,\n disabled: !!disabled,\n selectAriaLabel,\n cells: serializedCells,\n };\n });\n\n const sortedHeader = serializedHeaders.find(({ sorted }) => sorted);\n const shouldAutoSort = !!sortedHeader && sortedHeader.sortable !== 'manual';\n\n this.hasRowData = !!rows.length;\n this.allRowsSelected = this.hasRowData && isAllSelected;\n this.someRowsSelected = this.hasRowData && isIndeterminate;\n\n this.serializedRows = !!shouldAutoSort ? this.sortRows(serializedRows, sortedHeader) : serializedRows;\n this.checkSlots();\n }\n\n @Watch('selectable')\n selectableHandler() {\n if (this.selectable === false) {\n mirrorEmit(this, ['selectAllRows', 'tctSelectAllRows'], { checked: false });\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get mappedHeaders() {\n return this.serializedHeaders.reduce<Record<string, Q2DataTableHeader>>((accum, header) => {\n accum[header.key] = header;\n return accum;\n }, {});\n }\n\n get numberOfColumns() {\n return (\n (this.serializedHeaders?.length ?? 0) +\n (this.selectable ? 1 : 0) +\n (this.clickable ? 1 : 0) +\n (this.hasExpandableRows ? 1 : 0) +\n (this.hasDropdowns ? 1 : 0)\n );\n }\n\n checkSlots = () => {\n this.hasExpandableRows = !!(this.hostElement?.querySelector(`[slot$=\"-expandable-content\"]`) ?? false);\n this.hasDropdowns = !!(this.hostElement?.querySelector(`[slot$=\"-dropdown\"]`) ?? false);\n\n // The booleans above may not change, even if the slot has content\n // So we increment this property to force a re-render and ensure proper rendering\n this.checkSlotCount += 1;\n };\n\n getSelectRowLabel(row: Q2DataTableSerializedRow): string {\n const { selectAriaLabel, cells } = row;\n\n if (typeof selectAriaLabel === 'string') {\n return selectAriaLabel;\n }\n\n if (Array.isArray(selectAriaLabel)) {\n const labelParts = selectAriaLabel.map(key => {\n const cell = cells[key];\n const header = this.serializedHeaders.find(h => h.key === key);\n if (cell?.value === undefined || !header) return undefined;\n return `${header.title} ${cell.value}`;\n });\n const allKeysValid = labelParts.every(part => part !== undefined);\n\n if (allKeysValid) {\n return `Select row for ${labelParts.join(', ')}`;\n }\n }\n\n return loc('tecton.element.dataTable.selectRow');\n }\n\n onClickRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n mirrorEmit(this, ['click', 'tctClick'], { row });\n };\n\n onClickTableRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n if (this.clickable) {\n this.onClickRow(event, row);\n } else if (this.hasExpandableRows) {\n this.onToggleRow(event, row);\n }\n };\n\n onControlContainerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n onSelectRow = (event: CustomEvent<{ checked: boolean }>, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const { selectMode, serializedRows, selectedRows: currentlySelectedRows = [] } = this;\n const { checked } = event.detail;\n\n const selectedRow = { ...row, selected: checked };\n let selectedRows;\n if (selectMode === 'single') {\n selectedRows = checked ? [selectedRow] : [];\n } else {\n selectedRows = checked\n ? [...currentlySelectedRows, selectedRow]\n : currentlySelectedRows.filter(row => row.id !== selectedRow.id);\n }\n\n const allRowsSelected = selectedRows.length === serializedRows.length;\n const isIndeterminate = !allRowsSelected && selectedRows.length > 0;\n const selectEvent = mirrorEmit(this, ['select', 'tctSelect'], {\n row: selectedRow,\n rows: selectedRows,\n allSelected: allRowsSelected,\n });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => (row.id === selectedRow.id ? selectedRow : row));\n this.allRowsSelected = allRowsSelected;\n this.someRowsSelected = isIndeterminate;\n };\n\n onSort = (header: Q2DataTableHeader) => {\n const direction = header.sorted === 'ASC' ? 'DESC' : 'ASC';\n const sortKey = header.key;\n const sortEvent = mirrorEmit(this, ['sort', 'tctSort'], { header, direction });\n if (sortEvent.defaultPrevented) return;\n\n const shouldAutoSort = header.sortable !== 'manual';\n if (!shouldAutoSort) return;\n\n this.serializedHeaders = this.serializedHeaders.map<Q2DataTableHeader>(serializedHeader => {\n const sorted = sortKey === serializedHeader.key ? direction : undefined;\n return { ...serializedHeader, sorted };\n });\n\n this.serializedRows = this.sortRows(this.serializedRows, { ...header, sorted: direction });\n };\n\n onToggleRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const selectedRow = { ...row, expanded: !row.expanded };\n const toggleEvent = mirrorEmit(this, ['toggle', 'tctToggle'], { row: selectedRow });\n if (toggleEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n if (row.id === selectedRow.id) return selectedRow;\n else return { ...row };\n });\n };\n\n sortRows(rows: Q2DataTableSerializedRow[], header: Q2DataTableHeader) {\n const { key, sorted } = header;\n const direction = sorted || 'ASC';\n\n const sortedRows = [...rows].sort((a, b) => {\n const aValue = a.cells[key].value;\n const bValue = b.cells[key].value;\n\n if (aValue < bValue) return direction === 'ASC' ? -1 : 1;\n if (aValue > bValue) return direction === 'ASC' ? 1 : -1;\n return 0;\n });\n\n return sortedRows;\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { caption } = this;\n return (\n <div class=\"container\">\n <table>\n {caption && <caption class={this.hideCaption ? 'sr' : undefined}>{caption}</caption>}\n {this.renderTableColGroup()}\n {this.renderTableHeader()}\n {this.renderEmptyState()}\n {this.renderTableRows()}\n </table>\n </div>\n );\n }\n\n renderCellContent(cell: Q2DataTableCell) {\n if (!cell) return;\n\n const { type, ariaLabel, value } = cell;\n\n if ([undefined, null].includes(value)) return;\n\n switch (type) {\n case 'badge':\n let valueAsInt;\n switch (typeof value) {\n case 'string':\n valueAsInt = parseFloat(value);\n break;\n\n case 'boolean':\n valueAsInt = value ? 1 : 0;\n break;\n\n default:\n valueAsInt = value;\n break;\n }\n\n return (\n <q2-badge\n aria-label={ariaLabel}\n value={valueAsInt}\n theme={cell.badgeTheme}\n status={cell.badgeStatus}\n size=\"large\"\n ></q2-badge>\n );\n\n case 'icon':\n const valueAsString = typeof value === 'string' ? value : `${value}`;\n return (\n <q2-icon\n label={ariaLabel}\n type={valueAsString}\n ></q2-icon>\n );\n\n case 'boolean':\n return !!value ? (\n <q2-icon\n label={loc('tecton.element.dataTable.booleanTrue')}\n type=\"checkmark\"\n ></q2-icon>\n ) : (\n <div aria-label={loc('tecton.element.dataTable.booleanFalse')}></div>\n );\n\n case 'code':\n return <code aria-label={ariaLabel}>{value}</code>;\n\n default:\n return <div aria-label={ariaLabel}>{value}</div>;\n }\n }\n\n renderEmptyState() {\n const { hasRowData, numberOfColumns, emptyIcon, emptyMessage, loading } = this;\n if (hasRowData || loading) return null;\n\n return (\n <tbody>\n <tr class=\"empty-state\">\n <td colSpan={numberOfColumns}>\n <slot name=\"empty-table\">\n <div class=\"empty-state-content\">\n <q2-icon type={emptyIcon}></q2-icon>\n <p>{loc(emptyMessage)}</p>\n </div>\n </slot>\n </td>\n </tr>\n </tbody>\n );\n }\n\n renderTableColGroup() {\n const {\n serializedHeaders: headers,\n selectable,\n selectAlign,\n clickable,\n hasExpandableRows,\n hasDropdowns,\n } = this;\n\n if (!headers.length) return null;\n\n return (\n <colgroup>\n {selectable && selectAlign === 'left' && <col class=\"select-column\" />}\n {headers.map(({ width, backgroundColor }) => (\n <col style={{ width, backgroundColor }} />\n ))}\n {clickable && <col class=\"click-column\" />}\n {hasExpandableRows && <col class=\"expandable-row-control-column\" />}\n {hasDropdowns && <col class=\"dropdown-column\" />}\n {selectable && selectAlign === 'right' && <col class=\"select-column\" />}\n </colgroup>\n );\n }\n\n renderTableHeader() {\n const {\n serializedHeaders: headers,\n selectable,\n clickable,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n allRowsSelected,\n someRowsSelected,\n hasRowData,\n loading,\n } = this;\n\n if (!headers.length) return null;\n\n const selectCheckboxColumn = selectable ? (\n <th class=\"select-column\">\n {selectMode === 'multiple' ? (\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectAllRows')}\n hide-label\n onChange={() =>\n mirrorEmit(this, ['selectAllRows', 'tctSelectAllRows'], {\n checked: !allRowsSelected,\n })\n }\n checked={hasRowData && allRowsSelected && !someRowsSelected}\n indeterminate={hasRowData && someRowsSelected && !allRowsSelected}\n disabled={loading || !hasRowData}\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n ) : (\n <span class=\"sr\">{loc('tecton.element.dataTable.selectRow')}</span>\n )}\n </th>\n ) : null;\n\n return (\n <thead>\n <tr>\n {selectable && this.selectAlign === 'left' && selectCheckboxColumn}\n {headers.map(header => {\n const { align, sorted, verticalAlign } = header;\n const headerClasses = [];\n if (align) headerClasses.push(`align-${align}`);\n if (verticalAlign) headerClasses.push(`vertical-align-${verticalAlign}`);\n if (!!sorted) headerClasses.push('sorted');\n return (\n <th\n class={headerClasses.join(' ')}\n id={`header-${header.key}`}\n >\n {header.sortable ? (\n <q2-btn\n onClick={() => this.onSort(header)}\n test-id=\"sort-control\"\n disabled={this.loading}\n >\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n <slot name={`header-cell-${header.key}`}>{header.title}</slot>\n\n {!!sorted ? (\n <q2-icon\n class={`sorted-indicator direction-${sorted}`}\n type=\"arrow-down\"\n label={\n sorted === 'ASC'\n ? loc('tecton.element.dataTable.sortedAscending')\n : loc('tecton.element.dataTable.sortedDescending')\n }\n test-id=\"sorted-indicator\"\n ></q2-icon>\n ) : (\n <q2-icon\n class={`sorted-indicator`}\n type=\"sort\"\n label={loc('tecton.element.dataTable.clickToSort')}\n test-id=\"sorted-indicator\"\n ></q2-icon>\n )}\n </div>\n </q2-btn>\n ) : (\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n <slot name={`header-cell-${header.key}`}>{header.title}</slot>\n </div>\n )}\n </th>\n );\n })}\n {selectable && this.selectAlign === 'right' && selectCheckboxColumn}\n {clickable && (\n <th\n id=\"click\"\n class={hideClickable ? 'sr' : undefined}\n >\n <span class=\"sr\">{loc('tecton.element.dataTable.clickRow')}</span>\n </th>\n )}\n {hasExpandableRows && (\n <th id=\"toggle\">\n <span class=\"sr\">{loc('tecton.element.dataTable.toggleRow')}</span>\n </th>\n )}\n {hasDropdowns && (\n <th>\n <span class=\"sr\">{loc('tecton.element.dataTable.dropdown')}</span>\n </th>\n )}\n </tr>\n </thead>\n );\n }\n\n renderTableRows() {\n const {\n serializedHeaders: headers,\n serializedRows: rows,\n selectable,\n clickable,\n striped,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n numberOfColumns,\n loading,\n } = this;\n\n if (loading) {\n return (\n <tbody>\n <tr class=\"loading-row\">\n <td colSpan={numberOfColumns}>\n <q2-loading inline></q2-loading>\n </td>\n </tr>\n </tbody>\n );\n }\n\n let isSelectDisabled = false;\n let selectedRow;\n if (selectMode === 'single') {\n selectedRow = this.serializedRows.find(({ selected }) => !!selected);\n isSelectDisabled = !!selectedRow;\n }\n const clickableClasses = [];\n if (clickable) clickableClasses.push('click-column');\n if (hideClickable) clickableClasses.push('sr');\n const clickableClassString = clickableClasses.join(' ');\n\n return (\n <tbody>\n {rows.map((row, index) => {\n const cellSlotPrefix = `row-${row.id}-cell`;\n const expandableRowName = `row-${row.id}-expandable-content`;\n const dropdownCellName = `row-${row.id}-dropdown`;\n const rowHasExpandableSlot =\n hasExpandableRows && !!this.hostElement.querySelector(`[slot=\"${expandableRowName}\"]`);\n const rowHasDropdownSlot =\n hasDropdowns && !!this.hostElement.querySelector(`[slot=\"${dropdownCellName}\"]`);\n const rowClasses = [];\n if (rowHasExpandableSlot) rowClasses.push('expandable');\n if (clickable) rowClasses.push('clickable');\n if (striped) rowClasses.push(`striped-${index % 2 ? 'even' : 'odd'}`);\n if (row.expanded) rowClasses.push('expanded');\n if (row.selected) rowClasses.push('selected');\n const rowIsClickable = clickable || rowHasExpandableSlot;\n\n const selectCheckboxCell = selectable ? (\n <td\n class=\"select-column\"\n onClick={this.onControlContainerClick}\n >\n <q2-checkbox\n label={this.getSelectRowLabel(row)}\n hide-label\n checked={row.selected}\n disabled={(isSelectDisabled && row !== selectedRow) || row.disabled}\n onChange={e => this.onSelectRow(e, row)}\n test-id=\"select-row-control\"\n ></q2-checkbox>\n </td>\n ) : null;\n\n return (\n <Fragment>\n <tr\n id={`row-${row.id}`}\n class={rowClasses.join(' ')}\n onClick={rowIsClickable && (e => this.onClickTableRow(e, row))}\n tabIndex={rowIsClickable ? -1 : undefined}\n >\n {selectable && this.selectAlign === 'left' && selectCheckboxCell}\n {headers.map(({ key }) => {\n const cell = row.cells[key];\n const lineClamp = cell?.lineClamp;\n const cellAlign = cell?.align;\n const cellVerticalAlign = cell?.verticalAlign;\n const cellClasses = [];\n if (cellAlign) cellClasses.push(`align-${cellAlign}`);\n if (cellVerticalAlign) cellClasses.push(`vertical-align-${cellVerticalAlign}`);\n if (lineClamp) cellClasses.push('clamped');\n const cellStyles = lineClamp\n ? { '--comp-line-clamp-count': `${lineClamp}` }\n : undefined;\n\n return (\n <td\n class={cellClasses.join(' ')}\n style={cellStyles}\n >\n <slot name={`${cellSlotPrefix}-${key}`}>\n {this.renderCellContent(cell)}\n </slot>\n </td>\n );\n })}\n {selectable && this.selectAlign === 'right' && selectCheckboxCell}\n {clickable && (\n <td class={clickableClassString}>\n <q2-btn\n intent=\"neutral\"\n size=\"small\"\n onClick={e => this.onClickRow(e, row)}\n test-id=\"clickable-row-control\"\n >\n {loc('tecton.element.dataTable.clickRow')}\n </q2-btn>\n </td>\n )}\n {hasExpandableRows && (\n <td\n class=\"expandable-row-control-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasExpandableSlot && (\n <q2-btn\n onClick={e => this.onToggleRow(e, row)}\n ariaExpanded={`${row.expanded}`}\n ariaControls={expandableRowName}\n ariaLabel={loc('tecton.element.dataTable.toggleRow')}\n test-id=\"expandable-row-control\"\n >\n <q2-icon\n type=\"chevron-down\"\n class=\"toggle-expandable-row\"\n ></q2-icon>\n </q2-btn>\n )}\n </td>\n )}\n {hasDropdowns && (\n <td\n class=\"dropdown-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasDropdownSlot && <slot name={dropdownCellName}></slot>}\n </td>\n )}\n </tr>\n {rowHasExpandableSlot && (\n <tr\n id={expandableRowName}\n class=\"expandable-row\"\n hidden={!row.expanded}\n aria-hidden={!row.expanded}\n >\n <td\n colSpan={numberOfColumns}\n headers=\"toggle\"\n >\n <div class=\"expandable-content\">\n <slot name={expandableRowName}></slot>\n </div>\n </td>\n </tr>\n )}\n </Fragment>\n );\n })}\n </tbody>\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-data-table.js","sourceRoot":"","sources":["../../../../src/components/q2-data-table/q2-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Event,\n Element,\n EventEmitter,\n Fragment,\n Listen,\n Method,\n} from '@stencil/core';\nimport { loc, resizeIframe } from '../../utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\nimport type {\n Q2DataTableHeader,\n Q2DataTableCell,\n Q2DataTableSerializedCells,\n Q2DataTableRow,\n Q2DataTableSerializedRow,\n} from 'q2-tecton-common/lib/types/elements';\n\nexport type Q2DataTableBadgeCell = Q2DataTableCell & {\n type: 'badge';\n tags: {\n value: any;\n badgeTheme: HTMLQ2BadgeElement['theme'];\n }[];\n};\n\n/**\n * @name Data Table\n * @category Display\n * @summary Use for displaying large datasets with sorting, filtering, and selecting.\n * @slot row-<id>-cell-<key> - A slot for overriding the content of any cell in any row of the table with custom content.\n * @slot header-cell-<key> - A slot for the content of any cell in the header of the table.\n * @slot row-<id>-dropdown - A slot to provide a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/) for a row.\n * @slot row-<id>-expandable-content - A slot that makes the row expandable and displays the provided content.\n * @slot empty-table - An optional slot to display custom content when the table is empty.\n */\n@Component({ tag: 'q2-data-table', shadow: true, styleUrl: 'q2-data-table.scss' })\nexport class Q2DataTable implements ComponentInterface {\n // #region Own Properties\n\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\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 allRowsSelected: boolean = false;\n\n @State()\n checkSlotCount: number = 0;\n\n @State()\n hasDropdowns: boolean = false;\n\n @State()\n hasExpandableRows: boolean = false;\n\n @State()\n hasRowData: boolean = false;\n\n @State()\n serializedHeaders: Q2DataTableHeader[] = [];\n\n @State()\n serializedRows: Q2DataTableSerializedRow[] = [];\n\n @State()\n someRowsSelected: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Adds borders between rows and/or columns in the table. */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean | 'horizontal' | 'vertical' | 'grid';\n\n /** Provides a caption for the data table. */\n @Prop({ mutable: true })\n caption: string;\n\n /** Adds the ability to click a row and have the table emit an event with the selected row's data. */\n @Prop({ mutable: true, reflect: true })\n clickable: boolean;\n\n /** Determines the amount of padding for each of the cells in the table. */\n @Prop({ mutable: true, reflect: true })\n density: 'compact' | 'normal' | 'comfortable';\n\n /** Determines the `q2-icon` that will display when `rows` has no value. */\n @Prop({ reflect: true })\n emptyIcon: string = 'inbox';\n\n /** Determines the message that will display when `rows` has no value.\n * @localizable\n */\n @Prop({ reflect: true })\n emptyMessage: string = 'tecton.element.dataTable.emptyMessage';\n\n /**\n * Defines the headers of the table.\n *\n * **Example:**\n * @snippet\n * element.headers = [\n * {\n * title: 'Day of the Week',\n * key: 'day',\n * },\n * {\n * title: 'Sales',\n * key: 'sales',\n * align: 'end',\n * }\n * ]\n *\n */\n @Prop({ mutable: true })\n headers: Q2DataTableHeader[];\n\n /** Hides the caption from view, but still makes it available to screen readers for accessibility purposes. */\n @Prop({ mutable: true, reflect: true })\n hideCaption: boolean;\n\n /**\n * Visually hides the `Select` button that displays when `clickable=true`. It will still be discoverable by assistive technologies.\n *\n * @info\n * Use of this property requires `clickable` to be set to `true`.\n */\n @Prop({ mutable: true })\n hideClickable: boolean;\n\n /** Displays a loading state on the table to indicate background activity. */\n @Prop({ mutable: true, reflect: true })\n loading: boolean;\n\n /**\n * Defines the rows of the table.\n *\n * **Example:**\n * @snippet\n * element.rows = [\n * {\n * id: 1,\n * cells: {\n * day: 'Monday',\n * sales: 93\n * }\n * },\n * {\n * id: 2,\n * cells: {\n * day: 'Tuesday',\n * sales: 127\n * }\n * },\n * {\n * id: 3,\n * cells: {\n * day: 'Wednesday',\n * sales: 121\n * }\n * ]\n */\n @Prop({ mutable: true })\n rows: Q2DataTableRow[];\n\n /** Adds a checkbox to each row of the table making it selectable. */\n @Prop({ mutable: true, reflect: true })\n selectable: boolean;\n\n /**\n * Controls the position of the checkbox column when `selectable` is true.\n * When set to 'right', the checkbox column will appear on the right side of the table.\n *\n * @warning\n * Use of this property requires `selectable` to be set to `true`.\n */\n @Prop({ mutable: true })\n selectAlign: 'left' | 'right' = 'left';\n\n /**\n * Returns selected rows.\n * @readonly\n */\n @Prop({ mutable: true })\n get selectedRows(): Q2DataTableRow[] {\n return this.serializedRows?.filter(({ selected }) => !!selected) || [];\n }\n\n set selectedRows(_) {\n console.error('Direct assignment to selectedRows is not allowed.');\n }\n\n /**\n * Determines if the selectable checkboxes allow for multi-select or not. If set to \"single\", once a row is selected, all other rows will be disabled.\n * See the documentation on the `select` event for how to handle selections.\n *\n * @warning\n * Use of this property requires `selectable` to be set to `true`.\n */\n @Prop({ mutable: true })\n selectMode: 'multiple' | 'single' = 'multiple';\n\n /** Adds a shadow to the table */\n @Prop({ mutable: true, reflect: true })\n shadowed: boolean;\n\n /** Makes table header sticky */\n @Prop({ reflect: true })\n sticky: boolean;\n\n /** Enables alternating background colors for the table rows */\n @Prop({ reflect: true })\n striped: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a row is clicked.\n *\n * Requires the `clickable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default click behavior.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when a row is selected.\n *\n * Requires the `selectable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default selection behavior.\n * @deprecated Use 'tctSelect' instead\n */\n @Event()\n select: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n\n /**\n * Emitted when the select-all checkbox is toggled.\n *\n * Requires the `selectable` prop to be set to `true` and the `selectMode` prop to be set to `multiple`.\n *\n * Call `event.preventDefault()` to prevent the default behavior.\n * @deprecated Use 'tctSelectAllRows' instead\n */\n @Event()\n selectAllRows: EventEmitter<{ checked: boolean }>;\n\n /**\n * Emitted when a column is sorted.\n *\n * Requires the `sortable` prop to be set to `true` on the column.\n *\n * Call `event.preventDefault()` to prevent the default sorting behavior.\n * @deprecated Use 'tctSort' instead\n */\n @Event()\n sort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n /**\n * Emitted when a row is clicked.\n *\n * Requires the `clickable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default click behavior.\n */\n @Event()\n tctClick: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when a row is selected.\n *\n * Requires the `selectable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default selection behavior.\n */\n @Event()\n tctSelect: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n\n /**\n * Emitted when the select-all checkbox is toggled.\n *\n * Requires the `selectable` prop to be set to `true` and the `selectMode` prop to be set to `multiple`.\n *\n * Call `event.preventDefault()` to prevent the default behavior.\n */\n @Event()\n tctSelectAllRows: EventEmitter<{ checked: boolean }>;\n\n /**\n * Emitted when a column is sorted.\n *\n * Requires the `sortable` prop to be set to `true` on the column.\n *\n * Call `event.preventDefault()` to prevent the default sorting behavior.\n */\n @Event()\n tctSort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n /**\n * Emitted when an expandable row is toggled.\n *\n * Requires content in the `row-{id}-expandable-content` slot.\n *\n * Call `event.preventDefault()` to prevent the default toggling behavior.\n */\n @Event()\n tctToggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when an expandable row is toggled.\n *\n * Requires content in the `row-{id}-expandable-content` slot.\n *\n * Call `event.preventDefault()` to prevent the default toggling behavior.\n * @deprecated Use 'tctToggle' instead\n */\n @Event()\n toggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n componentWillLoad() {\n this.headersHandler(this.headers);\n this.rowsHandler(this.rows);\n }\n\n componentDidLoad(): void {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => this.checkSlots());\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => resizeIframe());\n this.resizeObserver.observe(this.hostElement);\n }\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onClickListener(event: MouseEvent) {\n if (event instanceof PointerEvent) event.stopImmediatePropagation();\n }\n\n @Listen('selectAllRows')\n onSelectAllRows(event: CustomEvent<{ checked: boolean }>) {\n event.stopPropagation();\n const { checked } = event.detail;\n const selectedRows = checked\n ? this.serializedRows.map(row => {\n if (row.disabled) {\n return row;\n } else {\n return {\n ...row,\n selected: checked,\n };\n }\n })\n : [];\n const selectEvent = mirrorEmit(this, ['select', 'tctSelect'], {\n row: undefined,\n rows: selectedRows,\n allSelected: checked,\n });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n if (row.disabled) return row;\n row.selected = checked;\n return row;\n });\n this.allRowsSelected = checked;\n this.someRowsSelected = false;\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method to click a row that accepts a row ID that is will be clicked.\n *\n * @testOnly\n */\n @Method()\n async clickRow(rowId: number | string) {\n const btn = this.hostElement.shadowRoot.querySelector(`#row-${rowId} q2-btn[test-id=\"clickable-row-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method that returns the plain text value of a particular cell (including slot content).\n *\n * @testOnly\n */\n @Method()\n async getCellContent(rowId: number | string, columnKey: string) {\n const slotContent = this.hostElement.querySelector(`[slot=row-${rowId}-cell-${columnKey}`)?.textContent;\n const text = this.hostElement.shadowRoot.querySelector(\n `slot[name=row-${rowId}-cell-${columnKey}]`\n )?.textContent;\n return slotContent || text || '';\n }\n\n /**\n * A method to sort a column that accepts a header object with key</b> and <b>sorted</b> property.\n *\n * @testOnly\n */\n @Method()\n async sortColumn(header: Q2DataTableHeader) {\n const btn = this.hostElement.shadowRoot.querySelector(`#header-${header.key} q2-btn[test-id=\"sort-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method to toggle row expansion that accepts a row ID that will be clicked to expand or collapse the expandable content\n *\n * @testOnly\n */\n @Method()\n async toggleRowExpansion(rowId: number | string) {\n const btn = this.hostElement.shadowRoot.querySelector(`#row-${rowId} q2-btn[test-id=\"expandable-row-control\"]`);\n (btn as HTMLQ2BtnElement)?.click();\n }\n\n /**\n * A method to toggle row selection that accepts a row ID whose checkbox will be checked, if the feature is enabled.\n *\n * @testOnly\n */\n @Method()\n async toggleRowSelect(rowId: number | string) {\n const chk = this.hostElement.shadowRoot.querySelector(\n `#row-${rowId} q2-checkbox[test-id=\"select-row-control\"]`\n );\n (chk as HTMLQ2CheckboxElement)?.click();\n }\n\n /**\n * A method to toggle select all button (checkbox) on left top corner.\n *\n * @testOnly\n */\n @Method()\n async toggleSelectAllRows() {\n if (!this.selectable) return;\n const chk = this.hostElement.shadowRoot.querySelector(`q2-checkbox[test-id=\"select-all-rows-control\"]`);\n (chk as HTMLQ2CheckboxElement)?.click();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('headers')\n headersHandler(headers: Q2DataTableHeader[] = []) {\n this.serializedHeaders = headers.map<Q2DataTableHeader>(header => {\n const { title } = header;\n let { key } = header;\n\n // If no key is provided, generate one from the title\n if (!key) key = title.toLowerCase().replace(/\\s/g, '-');\n\n return {\n key,\n ...header,\n };\n });\n }\n\n @Watch('rows')\n rowsHandler(rows: Q2DataTableRow[] = []) {\n const { serializedHeaders, mappedHeaders } = this;\n const defaultRow = {\n id: null,\n cells: {},\n selected: false,\n expanded: false,\n disabled: false,\n };\n\n // tracks if the select-all checkbox should be visually updated as the `rows` are built\n let isAllSelected = true;\n let isIndeterminate = false;\n\n const serializedRows = rows.map(({ id, cells, selected, expanded, disabled, selectAriaLabel }) => {\n const serializedCells = Object.entries(cells).reduce<Q2DataTableSerializedCells>(\n (accum, [cellKey, cellData]) => {\n const header = mappedHeaders[cellKey] || ({} as Q2DataTableHeader);\n const { align, type = 'text', lineClamp, verticalAlign } = header;\n\n const isBadge = 'type' in header && header.type === 'badge';\n const defaultCell: Q2DataTableCell = {\n value: '',\n ariaLabel: undefined,\n type,\n align,\n lineClamp,\n verticalAlign,\n badgeStatus: isBadge ? header.badgeStatus : undefined,\n badgeTheme: isBadge ? header.badgeTheme : undefined,\n };\n\n const result: Q2DataTableCell =\n typeof cellData === 'object'\n ? { ...defaultCell, ...cellData }\n : { ...defaultCell, value: cellData };\n\n accum[cellKey] = result;\n return accum;\n },\n {}\n );\n\n if (isAllSelected && !selected) isAllSelected = false;\n if (!isAllSelected && selected) isIndeterminate = true;\n return {\n ...defaultRow,\n id,\n selected: !!selected,\n expanded: !!expanded,\n disabled: !!disabled,\n selectAriaLabel,\n cells: serializedCells,\n };\n });\n\n const sortedHeader = serializedHeaders.find(({ sorted }) => sorted);\n const shouldAutoSort = !!sortedHeader && sortedHeader.sortable !== 'manual';\n\n this.hasRowData = !!rows.length;\n this.allRowsSelected = this.hasRowData && isAllSelected;\n this.someRowsSelected = this.hasRowData && isIndeterminate;\n\n this.serializedRows = !!shouldAutoSort ? this.sortRows(serializedRows, sortedHeader) : serializedRows;\n this.checkSlots();\n }\n\n @Watch('selectable')\n selectableHandler() {\n if (this.selectable === false) {\n mirrorEmit(this, ['selectAllRows', 'tctSelectAllRows'], { checked: false });\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get mappedHeaders() {\n return this.serializedHeaders.reduce<Record<string, Q2DataTableHeader>>((accum, header) => {\n accum[header.key] = header;\n return accum;\n }, {});\n }\n\n get numberOfColumns() {\n return (\n (this.serializedHeaders?.length ?? 0) +\n (this.selectable ? 1 : 0) +\n (this.clickable ? 1 : 0) +\n (this.hasExpandableRows ? 1 : 0) +\n (this.hasDropdowns ? 1 : 0)\n );\n }\n\n _badgeColumnContent(cell: Q2DataTableBadgeCell) {\n if (cell.tags?.length) {\n return (\n <div class=\"tag-table\">\n {cell.tags.map(x => {\n return (\n <q2-tag\n theme={x.badgeTheme}\n label={x.value}\n />\n );\n })}\n </div>\n );\n }\n\n return (\n <q2-badge\n aria-label={cell.ariaLabel}\n value={typeof cell.value !== 'boolean' ? cell.value : cell.value ? 1 : 0}\n theme={cell.badgeTheme}\n status={cell.badgeStatus}\n size=\"large\"\n />\n );\n }\n\n checkSlots = () => {\n this.hasExpandableRows = !!(this.hostElement?.querySelector(`[slot$=\"-expandable-content\"]`) ?? false);\n this.hasDropdowns = !!(this.hostElement?.querySelector(`[slot$=\"-dropdown\"]`) ?? false);\n\n // The booleans above may not change, even if the slot has content\n // So we increment this property to force a re-render and ensure proper rendering\n this.checkSlotCount += 1;\n };\n\n getSelectRowLabel(row: Q2DataTableSerializedRow): string {\n const { selectAriaLabel, cells } = row;\n\n if (typeof selectAriaLabel === 'string') {\n return selectAriaLabel;\n }\n\n if (Array.isArray(selectAriaLabel)) {\n const labelParts = selectAriaLabel.map(key => {\n const cell = cells[key];\n const header = this.serializedHeaders.find(h => h.key === key);\n if (cell?.value === undefined || !header) return undefined;\n return `${header.title} ${cell.value}`;\n });\n const allKeysValid = labelParts.every(part => part !== undefined);\n\n if (allKeysValid) {\n return `Select row for ${labelParts.join(', ')}`;\n }\n }\n\n return loc('tecton.element.dataTable.selectRow');\n }\n\n onClickRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n mirrorEmit(this, ['click', 'tctClick'], { row });\n };\n\n onClickTableRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n if (this.clickable) {\n this.onClickRow(event, row);\n } else if (this.hasExpandableRows) {\n this.onToggleRow(event, row);\n }\n };\n\n onControlContainerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n onSelectRow = (event: CustomEvent<{ checked: boolean }>, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const { selectMode, serializedRows, selectedRows: currentlySelectedRows = [] } = this;\n const { checked } = event.detail;\n\n const selectedRow = { ...row, selected: checked };\n let selectedRows;\n if (selectMode === 'single') {\n selectedRows = checked ? [selectedRow] : [];\n } else {\n selectedRows = checked\n ? [...currentlySelectedRows, selectedRow]\n : currentlySelectedRows.filter(row => row.id !== selectedRow.id);\n }\n\n const allRowsSelected = selectedRows.length === serializedRows.length;\n const isIndeterminate = !allRowsSelected && selectedRows.length > 0;\n const selectEvent = mirrorEmit(this, ['select', 'tctSelect'], {\n row: selectedRow,\n rows: selectedRows,\n allSelected: allRowsSelected,\n });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => (row.id === selectedRow.id ? selectedRow : row));\n this.allRowsSelected = allRowsSelected;\n this.someRowsSelected = isIndeterminate;\n };\n\n onSort = (header: Q2DataTableHeader) => {\n const direction = header.sorted === 'ASC' ? 'DESC' : 'ASC';\n const sortKey = header.key;\n const sortEvent = mirrorEmit(this, ['sort', 'tctSort'], { header, direction });\n if (sortEvent.defaultPrevented) return;\n\n const shouldAutoSort = header.sortable !== 'manual';\n if (!shouldAutoSort) return;\n\n this.serializedHeaders = this.serializedHeaders.map<Q2DataTableHeader>(serializedHeader => {\n const sorted = sortKey === serializedHeader.key ? direction : undefined;\n return { ...serializedHeader, sorted };\n });\n\n this.serializedRows = this.sortRows(this.serializedRows, { ...header, sorted: direction });\n };\n\n onToggleRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const selectedRow = { ...row, expanded: !row.expanded };\n const toggleEvent = mirrorEmit(this, ['toggle', 'tctToggle'], { row: selectedRow });\n if (toggleEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n if (row.id === selectedRow.id) return selectedRow;\n else return { ...row };\n });\n };\n\n sortRows(rows: Q2DataTableSerializedRow[], header: Q2DataTableHeader) {\n const { key, sorted } = header;\n const direction = sorted || 'ASC';\n\n const sortedRows = [...rows].sort((a, b) => {\n const aValue = a.cells[key].value;\n const bValue = b.cells[key].value;\n\n if (aValue < bValue) return direction === 'ASC' ? -1 : 1;\n if (aValue > bValue) return direction === 'ASC' ? 1 : -1;\n return 0;\n });\n\n return sortedRows;\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { caption } = this;\n return (\n <div class=\"container\">\n <table>\n {caption && <caption class={this.hideCaption ? 'sr' : undefined}>{caption}</caption>}\n {this.renderTableColGroup()}\n {this.renderTableHeader()}\n {this.renderEmptyState()}\n {this.renderTableRows()}\n </table>\n </div>\n );\n }\n\n renderCellContent(cell: Q2DataTableCell) {\n if (!cell) return;\n\n const { type, ariaLabel, value } = cell;\n\n if ([undefined, null].includes(value)) return;\n\n switch (type) {\n case 'badge':\n return this._badgeColumnContent(cell as Q2DataTableBadgeCell);\n\n case 'icon':\n const valueAsString = typeof value === 'string' ? value : `${value}`;\n return (\n <q2-icon\n label={ariaLabel}\n type={valueAsString}\n ></q2-icon>\n );\n\n case 'boolean':\n return !!value ? (\n <q2-icon\n label={loc('tecton.element.dataTable.booleanTrue')}\n type=\"checkmark\"\n ></q2-icon>\n ) : (\n <div aria-label={loc('tecton.element.dataTable.booleanFalse')}></div>\n );\n\n case 'code':\n return <code aria-label={ariaLabel}>{value}</code>;\n\n default:\n return <div aria-label={ariaLabel}>{value}</div>;\n }\n }\n\n renderEmptyState() {\n const { hasRowData, numberOfColumns, emptyIcon, emptyMessage, loading } = this;\n if (hasRowData || loading) return null;\n\n return (\n <tbody>\n <tr class=\"empty-state\">\n <td colSpan={numberOfColumns}>\n <slot name=\"empty-table\">\n <div class=\"empty-state-content\">\n <q2-icon type={emptyIcon}></q2-icon>\n <p>{loc(emptyMessage)}</p>\n </div>\n </slot>\n </td>\n </tr>\n </tbody>\n );\n }\n\n renderTableColGroup() {\n const {\n serializedHeaders: headers,\n selectable,\n selectAlign,\n clickable,\n hasExpandableRows,\n hasDropdowns,\n } = this;\n\n if (!headers.length) return null;\n\n return (\n <colgroup>\n {selectable && selectAlign === 'left' && <col class=\"select-column\" />}\n {headers.map(({ width, backgroundColor }) => (\n <col style={{ width, backgroundColor }} />\n ))}\n {clickable && <col class=\"click-column\" />}\n {hasExpandableRows && <col class=\"expandable-row-control-column\" />}\n {hasDropdowns && <col class=\"dropdown-column\" />}\n {selectable && selectAlign === 'right' && <col class=\"select-column\" />}\n </colgroup>\n );\n }\n\n renderTableHeader() {\n const {\n serializedHeaders: headers,\n selectable,\n clickable,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n allRowsSelected,\n someRowsSelected,\n hasRowData,\n loading,\n } = this;\n\n if (!headers.length) return null;\n\n const selectCheckboxColumn = selectable ? (\n <th class=\"select-column\">\n {selectMode === 'multiple' ? (\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectAllRows')}\n hide-label\n onChange={() =>\n mirrorEmit(this, ['selectAllRows', 'tctSelectAllRows'], {\n checked: !allRowsSelected,\n })\n }\n checked={hasRowData && allRowsSelected && !someRowsSelected}\n indeterminate={hasRowData && someRowsSelected && !allRowsSelected}\n disabled={loading || !hasRowData}\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n ) : (\n <span class=\"sr\">{loc('tecton.element.dataTable.selectRow')}</span>\n )}\n </th>\n ) : null;\n\n return (\n <thead>\n <tr>\n {selectable && this.selectAlign === 'left' && selectCheckboxColumn}\n {headers.map(header => {\n const { align, sorted, verticalAlign } = header;\n const headerClasses = [];\n if (align) headerClasses.push(`align-${align}`);\n if (verticalAlign) headerClasses.push(`vertical-align-${verticalAlign}`);\n if (!!sorted) headerClasses.push('sorted');\n return (\n <th\n class={headerClasses.join(' ')}\n id={`header-${header.key}`}\n >\n {header.sortable ? (\n <q2-btn\n onClick={() => this.onSort(header)}\n test-id=\"sort-control\"\n disabled={this.loading}\n >\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n <slot name={`header-cell-${header.key}`}>{header.title}</slot>\n\n {!!sorted ? (\n <q2-icon\n class={`sorted-indicator direction-${sorted}`}\n type=\"arrow-down\"\n label={\n sorted === 'ASC'\n ? loc('tecton.element.dataTable.sortedAscending')\n : loc('tecton.element.dataTable.sortedDescending')\n }\n test-id=\"sorted-indicator\"\n ></q2-icon>\n ) : (\n <q2-icon\n class={`sorted-indicator`}\n type=\"sort\"\n label={loc('tecton.element.dataTable.clickToSort')}\n test-id=\"sorted-indicator\"\n ></q2-icon>\n )}\n </div>\n </q2-btn>\n ) : (\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n <slot name={`header-cell-${header.key}`}>{header.title}</slot>\n </div>\n )}\n </th>\n );\n })}\n {selectable && this.selectAlign === 'right' && selectCheckboxColumn}\n {clickable && (\n <th\n id=\"click\"\n class={hideClickable ? 'sr' : undefined}\n >\n <span class=\"sr\">{loc('tecton.element.dataTable.clickRow')}</span>\n </th>\n )}\n {hasExpandableRows && (\n <th id=\"toggle\">\n <span class=\"sr\">{loc('tecton.element.dataTable.toggleRow')}</span>\n </th>\n )}\n {hasDropdowns && (\n <th>\n <span class=\"sr\">{loc('tecton.element.dataTable.dropdown')}</span>\n </th>\n )}\n </tr>\n </thead>\n );\n }\n\n renderTableRows() {\n const {\n serializedHeaders: headers,\n serializedRows: rows,\n selectable,\n clickable,\n striped,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n numberOfColumns,\n loading,\n } = this;\n\n if (loading) {\n return (\n <tbody>\n <tr class=\"loading-row\">\n <td colSpan={numberOfColumns}>\n <q2-loading inline></q2-loading>\n </td>\n </tr>\n </tbody>\n );\n }\n\n let isSelectDisabled = false;\n let selectedRow;\n if (selectMode === 'single') {\n selectedRow = this.serializedRows.find(({ selected }) => !!selected);\n isSelectDisabled = !!selectedRow;\n }\n const clickableClasses = [];\n if (clickable) clickableClasses.push('click-column');\n if (hideClickable) clickableClasses.push('sr');\n const clickableClassString = clickableClasses.join(' ');\n\n return (\n <tbody>\n {rows.map((row, index) => {\n const cellSlotPrefix = `row-${row.id}-cell`;\n const expandableRowName = `row-${row.id}-expandable-content`;\n const dropdownCellName = `row-${row.id}-dropdown`;\n const rowHasExpandableSlot =\n hasExpandableRows && !!this.hostElement.querySelector(`[slot=\"${expandableRowName}\"]`);\n const rowHasDropdownSlot =\n hasDropdowns && !!this.hostElement.querySelector(`[slot=\"${dropdownCellName}\"]`);\n const rowClasses = [];\n if (rowHasExpandableSlot) rowClasses.push('expandable');\n if (clickable) rowClasses.push('clickable');\n if (striped) rowClasses.push(`striped-${index % 2 ? 'even' : 'odd'}`);\n if (row.expanded) rowClasses.push('expanded');\n if (row.selected) rowClasses.push('selected');\n const rowIsClickable = clickable || rowHasExpandableSlot;\n\n const selectCheckboxCell = selectable ? (\n <td\n class=\"select-column\"\n onClick={this.onControlContainerClick}\n >\n <q2-checkbox\n label={this.getSelectRowLabel(row)}\n hide-label\n checked={row.selected}\n disabled={(isSelectDisabled && row !== selectedRow) || row.disabled}\n onChange={e => this.onSelectRow(e, row)}\n test-id=\"select-row-control\"\n ></q2-checkbox>\n </td>\n ) : null;\n\n return (\n <Fragment>\n <tr\n id={`row-${row.id}`}\n class={rowClasses.join(' ')}\n onClick={rowIsClickable && (e => this.onClickTableRow(e, row))}\n tabIndex={rowIsClickable ? -1 : undefined}\n >\n {selectable && this.selectAlign === 'left' && selectCheckboxCell}\n {headers.map(({ key }) => {\n const cell = row.cells[key];\n const lineClamp = cell?.lineClamp;\n const cellAlign = cell?.align;\n const cellVerticalAlign = cell?.verticalAlign;\n const cellClasses = [];\n if (cellAlign) cellClasses.push(`align-${cellAlign}`);\n if (cellVerticalAlign) cellClasses.push(`vertical-align-${cellVerticalAlign}`);\n if (lineClamp) cellClasses.push('clamped');\n const cellStyles = lineClamp\n ? { '--comp-line-clamp-count': `${lineClamp}` }\n : undefined;\n\n return (\n <td\n class={cellClasses.join(' ')}\n style={cellStyles}\n >\n <slot name={`${cellSlotPrefix}-${key}`}>\n {this.renderCellContent(cell)}\n </slot>\n </td>\n );\n })}\n {selectable && this.selectAlign === 'right' && selectCheckboxCell}\n {clickable && (\n <td class={clickableClassString}>\n <q2-btn\n intent=\"neutral\"\n size=\"small\"\n onClick={e => this.onClickRow(e, row)}\n test-id=\"clickable-row-control\"\n >\n {loc('tecton.element.dataTable.clickRow')}\n </q2-btn>\n </td>\n )}\n {hasExpandableRows && (\n <td\n class=\"expandable-row-control-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasExpandableSlot && (\n <q2-btn\n onClick={e => this.onToggleRow(e, row)}\n ariaExpanded={`${row.expanded}`}\n ariaControls={expandableRowName}\n ariaLabel={loc('tecton.element.dataTable.toggleRow')}\n test-id=\"expandable-row-control\"\n >\n <q2-icon\n type=\"chevron-down\"\n class=\"toggle-expandable-row\"\n ></q2-icon>\n </q2-btn>\n )}\n </td>\n )}\n {hasDropdowns && (\n <td\n class=\"dropdown-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasDropdownSlot && <slot name={dropdownCellName}></slot>}\n </td>\n )}\n </tr>\n {rowHasExpandableSlot && (\n <tr\n id={expandableRowName}\n class=\"expandable-row\"\n hidden={!row.expanded}\n aria-hidden={!row.expanded}\n >\n <td\n colSpan={numberOfColumns}\n headers=\"toggle\"\n >\n <div class=\"expandable-content\">\n <slot name={expandableRowName}></slot>\n </div>\n </td>\n </tr>\n )}\n </Fragment>\n );\n })}\n </tbody>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -107,7 +107,7 @@ export class Q2Detail {
|
|
|
107
107
|
// #endregion
|
|
108
108
|
// #region Render Methods
|
|
109
109
|
render() {
|
|
110
|
-
return (h("div", { key: '
|
|
110
|
+
return (h("div", { key: 'd92d66fcec6add5b649aa45fd11c5c778d5be0b3', class: this.detailClasses }, this.hasLabel && (h("div", { key: 'c4538e909b1c4ac9e298a9ec25240e56eba42cfd', class: this.labelClasses, "aria-describedby": !!this.description ? 'label-description' : undefined }, !!this.label ? loc(this.label) : this.hasLabelSlotContent ? h("slot", { name: "label" }) : '')), this.hasDescripiton && (h("div", { key: 'f6ce65ea2ad6b1d6c64d0ff69a66bd1fa5aa868d', id: "label-description", class: this.descriptionClasses }, !!this.description ? loc(this.description) : this.hasDefaultSlotContent ? h("slot", null) : ''))));
|
|
111
111
|
}
|
|
112
112
|
static get is() { return "q2-detail"; }
|
|
113
113
|
static get encapsulation() { return "shadow"; }
|
|
@@ -366,7 +366,7 @@ export class Q2Dropdown {
|
|
|
366
366
|
// #region Render Methods
|
|
367
367
|
render() {
|
|
368
368
|
const btnProps = this.toggleButtonProps;
|
|
369
|
-
return (h("click-elsewhere", { key: '
|
|
369
|
+
return (h("click-elsewhere", { key: '23504511d2b87c3159647349f905de98de329db5', class: this.open ? 'dropdown-open' : '', onChange: this.onClickElsewhere, "test-id": "dropdownContainer" }, h("q2-btn", { key: 'dc0b8de4939d8ac3414c470b329e775342a4879d', tabIndex: 0, ref: el => (this.controlElement = el), class: btnProps.className, onClick: this.onToggleClick, onKeyDown: this.onToggleKeydown, fab: btnProps.fab, intent: btnProps.intent, onFocusout: this.handleFocusOut, active: btnProps.active, disabled: btnProps.disabled, ariaExpanded: `${!!btnProps.ariaExpanded}`, label: this.hideLabel && this.label ? loc(this.label) : undefined, hideLabel: this.hideLabel, ariaHasPopup: "menu", "test-id": "dropdownButton", block: this.block, description: loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount]) }, this.hasCustomControl ? (h("div", { "test-id": "dropdownControl", class: btnProps.custom ? '' : 'hidden' }, h("slot", { name: "control" }))) : (h(Fragment, null, this.label && !this.hideLabel && (h("span", { class: "dropdown-button-text" }, loc(this.label))), this.icon ? h("q2-icon", { type: this.icon }) : ' '))), h("q2-popover", { key: '25345315dc70726e152793271c446ed34a4fcc0c', ref: el => (this.popoverElement = el), controlElement: this.controlElement, open: this.open, "max-height": this.popoverMaxHeight, onFocusout: this.handleFocusOut, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: this.block }, h("slot", { key: '4c885f96ce096b0a1a2a743892531910c82cfa5c', name: "popover-top" }), h("q2-option-list", { key: 'c4a045130b22ce5e5c462811cb8980310b16d50e', onPopoverState: this.onPopoverState, id: "option-list", ref: el => (this.optionList = el), type: "menu", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '9b5955c327df96213e10971fef01aadcc253a1d5' })), h("slot", { key: 'ac3d4f37bfdbef9239e389401cdfc4dfadf497dc', name: "popover-bottom" }))));
|
|
370
370
|
}
|
|
371
371
|
static get is() { return "q2-dropdown"; }
|
|
372
372
|
static get encapsulation() { return "shadow"; }
|
|
@@ -206,7 +206,7 @@ export class Q2EditableField {
|
|
|
206
206
|
// #endregion
|
|
207
207
|
// #region Render Methods
|
|
208
208
|
render() {
|
|
209
|
-
return (h("div", { key: '
|
|
209
|
+
return (h("div", { key: '2a71fc720f0f0ea686e34509d3a78a86a9100bd9' }, this.generateEditStateDOM(), this.generateReadStateDOM()));
|
|
210
210
|
}
|
|
211
211
|
static get is() { return "q2-editable-field"; }
|
|
212
212
|
static get encapsulation() { return "shadow"; }
|
|
@@ -465,7 +465,7 @@ export class Q2EditableField {
|
|
|
465
465
|
"mutable": false,
|
|
466
466
|
"complexType": {
|
|
467
467
|
"original": "Q2Input['type']",
|
|
468
|
-
"resolved": "\"number\" | \"text\" | \"search\" | \"date\" | \"numeric\" | \"
|
|
468
|
+
"resolved": "\"number\" | \"text\" | \"search\" | \"date\" | \"numeric\" | \"currency\" | \"tel\" | \"url\" | \"email\" | \"password\" | \"phone\" | \"ssn\" | \"alphanumeric\" | \"alpha\" | \"percentage\" | \"postal\" | \"credit-card\" | \"cif\" | \"routingnumber\" | \"swift\" | \"iban\" | \"clabe\"",
|
|
469
469
|
"references": {
|
|
470
470
|
"Q2Input": {
|
|
471
471
|
"location": "import",
|