q2-tecton-elements 1.63.2 → 1.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +2382 -3464
- package/dist/cjs/action-sheet-D3n8vaeA.js.map +1 -1
- package/dist/cjs/index-CyqXtdz-.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-action-sheet.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +4 -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-btn.q2-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +5 -5
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-area.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- 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 +5 -5
- 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.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +15 -10
- 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-dropdown-item.cjs.entry.js +3 -3
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +24 -17
- 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-formatted-text.cjs.entry.js +7 -7
- package/dist/cjs/q2-formatted-text.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-formatted-text.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -0
- 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 +8 -8
- 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-legend.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-modal.cjs.entry.js +1 -1
- 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-mutation-observer.cjs.entry.js +106 -0
- package/dist/cjs/q2-mutation-observer.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-mutation-observer.entry.cjs.js.map +1 -0
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +25 -5
- 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 +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
- package/dist/cjs/q2-section-container.cjs.entry.js +102 -0
- package/dist/cjs/q2-section-container.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-section-container.entry.cjs.js.map +1 -0
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +7 -7
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.css +69 -13
- package/dist/collection/components/q2-avatar/q2-avatar.js +23 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
- package/dist/collection/components/q2-card/q2-card.js +5 -5
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- 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 +1 -1
- 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 +17 -8
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +4 -4
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.css +14 -2
- package/dist/collection/components/q2-data-table/q2-data-table.css +8 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +67 -16
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +22 -5
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +2 -2
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +30 -23
- package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +27 -27
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
- package/dist/collection/components/q2-grid/q2-grid.js +30 -30
- package/dist/collection/components/q2-grid-area/q2-grid-area.js +42 -42
- package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -2
- 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/standard.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +11 -11
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.js +1 -1
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-loading/q2-loading.css +32 -20
- package/dist/collection/components/q2-loading/q2-loading.js +1 -1
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-modal/q2-modal.js +5 -5
- package/dist/collection/components/q2-modal/q2-modal.js.map +1 -1
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +233 -0
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js.map +1 -0
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
- package/dist/collection/components/q2-pagination/q2-pagination.js +45 -5
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.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-section-container/q2-section-container.js +198 -0
- package/dist/collection/components/q2-section-container/q2-section-container.js.map +1 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/utils/action-sheet.js.map +1 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/action-sheet.js.map +1 -1
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-avatar2.js +5 -2
- package/dist/components/q2-avatar2.js.map +1 -1
- package/dist/components/q2-card.js +5 -5
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +5 -5
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox2.js +1 -1
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-data-table.js +17 -10
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-dropdown-item2.js +3 -3
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +1 -1
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-file-picker.js +25 -18
- package/dist/components/q2-file-picker.js.map +1 -1
- package/dist/components/q2-formatted-text.js +9 -9
- package/dist/components/q2-formatted-text.js.map +1 -1
- package/dist/components/q2-icon2.js +1 -0
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +9 -9
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-link2.js +1 -1
- package/dist/components/q2-link2.js.map +1 -1
- package/dist/components/q2-loading2.js +2 -2
- package/dist/components/q2-loading2.js.map +1 -1
- package/dist/components/q2-modal.js +1 -1
- package/dist/components/q2-modal.js.map +1 -1
- package/dist/components/q2-mutation-observer.d.ts +11 -0
- package/dist/components/q2-mutation-observer.js +130 -0
- package/dist/components/q2-mutation-observer.js.map +1 -0
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-pagination.js +26 -5
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +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-container.d.ts +11 -0
- package/dist/components/q2-section-container.js +128 -0
- package/dist/components/q2-section-container.js.map +1 -0
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/action-sheet-D3xPdhm8.js.map +1 -1
- package/dist/esm/index-YJ5sXwiE.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group_2.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js +4 -2
- package/dist/esm/q2-avatar.entry.js.map +1 -1
- package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +5 -5
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +5 -5
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +15 -10
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +3 -3
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-file-picker.entry.js +24 -17
- package/dist/esm/q2-file-picker.entry.js.map +1 -1
- package/dist/esm/q2-formatted-text.entry.js +7 -7
- package/dist/esm/q2-formatted-text.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -0
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +8 -8
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/q2-link_2.entry.js.map +1 -1
- package/dist/esm/q2-modal.entry.js +1 -1
- package/dist/esm/q2-modal.entry.js.map +1 -1
- package/dist/esm/q2-mutation-observer.entry.js +104 -0
- package/dist/esm/q2-mutation-observer.entry.js.map +1 -0
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +25 -5
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +1 -1
- package/dist/esm/q2-section-container.entry.js +100 -0
- package/dist/esm/q2-section-container.entry.js.map +1 -0
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/action-sheet-D3xPdhm8.js.map +1 -1
- package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -2
- 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/standard.symbol.svg +1 -1
- package/dist/q2-tecton-elements/charting-Ckq0XMDu.js.map +1 -0
- package/dist/q2-tecton-elements/index-CvNuBFrq.js.map +1 -0
- package/dist/q2-tecton-elements/index-DIB7EjIC.js.map +1 -0
- package/dist/q2-tecton-elements/index-RUz6101x.js.map +1 -0
- package/dist/q2-tecton-elements/index-YJ5sXwiE.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-group_2.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +62 -62
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js +26 -25
- package/dist/q2-tecton-elements/q2-avatar.entry.js.map +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 +11 -6
- package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-card.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 +2 -2
- 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 +2 -2
- 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 +48 -47
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +23 -19
- package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +23 -21
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +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 +42 -35
- package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-icon.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-icon.entry.js +1 -0
- 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-legend.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- 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 +1 -0
- package/dist/q2-tecton-elements/q2-link_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-modal.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-modal.entry.js +23 -23
- package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.esm.js.map +1 -0
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +107 -0
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-pagination.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +50 -38
- package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section-container.entry.esm.js.map +1 -0
- package/dist/q2-tecton-elements/q2-section-container.entry.js +95 -0
- package/dist/q2-tecton-elements/q2-section-container.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-section.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-stepper.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-tab-container.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-tag.entry.js +15 -15
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- package/dist/q2-tecton-elements/sanitize-html-string-Csx7LCh3.js.map +1 -0
- package/dist/q2-tecton-elements/shapes-BJsBbYur.js.map +1 -0
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +1 -1
- package/dist/types/components/q2-avatar/q2-avatar.d.ts +2 -0
- package/dist/types/components/q2-card/q2-card.d.ts +1 -1
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +1 -1
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +1 -1
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -1
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +9 -3
- package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +3 -1
- package/dist/types/components/q2-formatted-text/q2-formatted-text.d.ts +6 -6
- package/dist/types/components/q2-icon/q2-icon-types.d.ts +1 -2
- package/dist/types/components/q2-input/q2-input.d.ts +1 -1
- package/dist/types/components/q2-legend/q2-legend.d.ts +1 -1
- package/dist/types/components/q2-modal/q2-modal.d.ts +1 -1
- package/dist/types/components/q2-mutation-observer/q2-mutation-observer.d.ts +40 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +2 -0
- package/dist/types/components/q2-section-container/q2-section-container.d.ts +34 -0
- package/dist/types/components/q2-textarea/q2-textarea.d.ts +1 -2
- package/dist/types/components.d.ts +175 -4
- package/dist/types/global.d.ts +3 -3
- package/dist/types/util.d.ts +6 -6
- package/dist/types/utils/action-sheet.d.ts +1 -1
- package/dist/types/utils/helpers.d.ts +2 -3
- package/dist/types/utils/index.d.ts +2 -2
- package/package.json +5 -5
- /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
|
@@ -12,6 +12,7 @@ const l = class {
|
|
|
12
12
|
// #region Public Property API
|
|
13
13
|
/** Indicates the horizontal alignment of pagination elements */ this.alignment = "right";
|
|
14
14
|
/** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */ this.autoSize = true;
|
|
15
|
+
/** Allows the component to be disabled should the state of the page require this */ this.disabled = false;
|
|
15
16
|
this.checkSize = () => {
|
|
16
17
|
const {hostElement: t, containerElement: e} = this;
|
|
17
18
|
const i = this.containerWidth > t.clientWidth;
|
|
@@ -25,6 +26,7 @@ const l = class {
|
|
|
25
26
|
}));
|
|
26
27
|
};
|
|
27
28
|
this.handlePageChange = t => {
|
|
29
|
+
if (this.disabled) return;
|
|
28
30
|
const {totalPages: e, inputField: i} = this;
|
|
29
31
|
t = parseInt(`${t}`);
|
|
30
32
|
if (isNaN(t) || t < 1) {
|
|
@@ -41,6 +43,7 @@ const l = class {
|
|
|
41
43
|
});
|
|
42
44
|
};
|
|
43
45
|
this.handlePerPageChange = t => {
|
|
46
|
+
if (this.disabled) return;
|
|
44
47
|
this.perPage = t.detail.value * 1;
|
|
45
48
|
};
|
|
46
49
|
}
|
|
@@ -61,6 +64,7 @@ const l = class {
|
|
|
61
64
|
// #region Listeners
|
|
62
65
|
onHostElementFocus(t) {
|
|
63
66
|
var e;
|
|
67
|
+
if (this.disabled) return;
|
|
64
68
|
if (!o(t, this.hostElement)) return;
|
|
65
69
|
const {isFullViewHidden: i, containerElement: n, inputField: a} = this;
|
|
66
70
|
if (i) {
|
|
@@ -78,6 +82,7 @@ const l = class {
|
|
|
78
82
|
* @testOnly
|
|
79
83
|
*/
|
|
80
84
|
async clickFirstPage() {
|
|
85
|
+
if (this.disabled) return;
|
|
81
86
|
const t = this.firstPageBtn;
|
|
82
87
|
if (t === null || t === void 0 ? void 0 : t.disabled) return;
|
|
83
88
|
t.click();
|
|
@@ -88,6 +93,7 @@ const l = class {
|
|
|
88
93
|
* If the `<button>` is disabled, this method does nothing.
|
|
89
94
|
* @testOnly
|
|
90
95
|
*/ async clickLastPage() {
|
|
96
|
+
if (this.disabled) return;
|
|
91
97
|
const t = this.lastPageBtn;
|
|
92
98
|
if (t === null || t === void 0 ? void 0 : t.disabled) return;
|
|
93
99
|
t.click();
|
|
@@ -98,6 +104,7 @@ const l = class {
|
|
|
98
104
|
* If the `<button>` is disabled, this method does nothing.
|
|
99
105
|
* @testOnly
|
|
100
106
|
*/ async clickNextPage() {
|
|
107
|
+
if (this.disabled) return;
|
|
101
108
|
const t = this.nextPageBtn;
|
|
102
109
|
if (t === null || t === void 0 ? void 0 : t.disabled) return;
|
|
103
110
|
t.click();
|
|
@@ -108,6 +115,7 @@ const l = class {
|
|
|
108
115
|
* If the `<button>` is disabled, this method does nothing.
|
|
109
116
|
* @testOnly
|
|
110
117
|
*/ async clickPreviousPage() {
|
|
118
|
+
if (this.disabled) return;
|
|
111
119
|
const t = this.prevPageBtn;
|
|
112
120
|
if (t === null || t === void 0 ? void 0 : t.disabled) return;
|
|
113
121
|
t.click();
|
|
@@ -120,6 +128,7 @@ const l = class {
|
|
|
120
128
|
* @testOnly
|
|
121
129
|
*/ async selectPerPageIncrementValue(t) {
|
|
122
130
|
var e;
|
|
131
|
+
if (this.disabled) return;
|
|
123
132
|
if (isNaN(t) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(t)) return;
|
|
124
133
|
this.perPageSelect.focus();
|
|
125
134
|
this.perPageSelect.click();
|
|
@@ -134,6 +143,7 @@ const l = class {
|
|
|
134
143
|
* @testOnly
|
|
135
144
|
*/ async setPageValue(t) {
|
|
136
145
|
var e, i;
|
|
146
|
+
if (this.disabled) return;
|
|
137
147
|
if (!this.inputField || isNaN(t) || t < 1 || t > this.totalPages) return;
|
|
138
148
|
(e = this.inputField) === null || e === void 0 ? void 0 : e.focus();
|
|
139
149
|
this.inputField.value = `${t}`;
|
|
@@ -230,7 +240,8 @@ const l = class {
|
|
|
230
240
|
return i("q2-select", {
|
|
231
241
|
ref: t => this.perPageSelect = t,
|
|
232
242
|
onChange: this.handlePerPageChange,
|
|
233
|
-
value: this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined
|
|
243
|
+
value: this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined,
|
|
244
|
+
disabled: this.disabled
|
|
234
245
|
}, t.map((t => i("q2-option", {
|
|
235
246
|
value: `${t}`,
|
|
236
247
|
display: `${r("tecton.element.pagination.view")} ${t}`
|
|
@@ -238,39 +249,39 @@ const l = class {
|
|
|
238
249
|
}
|
|
239
250
|
render() {
|
|
240
251
|
var t;
|
|
241
|
-
const {pagesOnly: e, recordsOnly: n, isFullViewHidden: a, recordTypeWithDefault: s, totalPages: o, totalWithDefault: c, pageWithDefault: l, currentRange: h, nextRange:
|
|
242
|
-
const
|
|
243
|
-
const
|
|
244
|
-
let
|
|
245
|
-
let
|
|
252
|
+
const {pagesOnly: e, recordsOnly: n, isFullViewHidden: a, recordTypeWithDefault: s, totalPages: o, totalWithDefault: c, pageWithDefault: l, currentRange: h, nextRange: d, prevRange: p, showPerPageSelect: g, disabled: f} = this;
|
|
253
|
+
const u = l < 2;
|
|
254
|
+
const b = l === o;
|
|
255
|
+
let v = r("tecton.element.pagination.goToNext");
|
|
256
|
+
let y = r("tecton.element.pagination.goToPrevious");
|
|
246
257
|
if (e) {
|
|
247
|
-
|
|
258
|
+
y = r("tecton.element.pagination.goToPages", {
|
|
248
259
|
next: l - 1,
|
|
249
260
|
total: o
|
|
250
261
|
});
|
|
251
|
-
|
|
262
|
+
v = r("tecton.element.pagination.goToPages", {
|
|
252
263
|
next: l + 1,
|
|
253
264
|
total: o
|
|
254
265
|
});
|
|
255
266
|
} else if (n) {
|
|
256
|
-
|
|
257
|
-
range:
|
|
267
|
+
y = r("tecton.element.pagination.goToRecords", {
|
|
268
|
+
range: p,
|
|
258
269
|
recordType: s.toLowerCase(),
|
|
259
270
|
total: c
|
|
260
271
|
});
|
|
261
|
-
|
|
262
|
-
range:
|
|
272
|
+
v = r("tecton.element.pagination.goToRecords", {
|
|
273
|
+
range: d,
|
|
263
274
|
recordType: s.toLowerCase(),
|
|
264
275
|
total: c
|
|
265
276
|
});
|
|
266
277
|
}
|
|
267
278
|
return i("nav", {
|
|
268
|
-
key: "
|
|
279
|
+
key: "e361c761f1215578c0ae8c92d9aed8a3a7b3db2c",
|
|
269
280
|
class: this.containerClasses.join(" "),
|
|
270
281
|
ref: t => this.containerElement = t,
|
|
271
282
|
"aria-label": r("tecton.element.pagination.title")
|
|
272
283
|
}, i("div", {
|
|
273
|
-
key: "
|
|
284
|
+
key: "1f24bdc3815f324339071c66159d9075e806c51f",
|
|
274
285
|
class: "description",
|
|
275
286
|
"test-id": "description"
|
|
276
287
|
}, e ? r("tecton.element.pagination.pages", {
|
|
@@ -281,47 +292,47 @@ const l = class {
|
|
|
281
292
|
recordType: s.toLowerCase(),
|
|
282
293
|
total: c.toLocaleString()
|
|
283
294
|
})), i("div", {
|
|
284
|
-
key: "
|
|
295
|
+
key: "7e57d4ca13d2607d35819d6742e2f75ecc217ced",
|
|
285
296
|
class: "controls"
|
|
286
297
|
}, i("div", {
|
|
287
|
-
key: "
|
|
298
|
+
key: "a19255ad887040652c2095e38765cf28ee59f4bc",
|
|
288
299
|
class: "btn-group"
|
|
289
300
|
}, i("q2-btn", {
|
|
290
|
-
key: "
|
|
301
|
+
key: "739c592502590b9c29f9e1cad0618c2b3c78f9a5",
|
|
291
302
|
ref: t => this.firstPageBtn = t,
|
|
292
303
|
label: r("tecton.element.pagination.goToFirstPage"),
|
|
293
|
-
disabled: f,
|
|
304
|
+
disabled: f || u,
|
|
294
305
|
hidden: a,
|
|
295
306
|
onClick: () => this.handlePageChange(1),
|
|
296
307
|
"test-id": "firstPageBtn",
|
|
297
308
|
"hide-label": true
|
|
298
309
|
}, i("q2-icon", {
|
|
299
|
-
key: "
|
|
310
|
+
key: "2f3548edc4ef3ef35f49a14bb6e16c909f15b9ef",
|
|
300
311
|
type: "chevron-double-left"
|
|
301
312
|
})), i("q2-btn", {
|
|
302
|
-
key: "
|
|
313
|
+
key: "57e5ecacd4149bf540f476d8a9e9dce7de5d4812",
|
|
303
314
|
ref: t => this.prevPageBtn = t,
|
|
304
|
-
label:
|
|
305
|
-
disabled: f,
|
|
315
|
+
label: y,
|
|
316
|
+
disabled: f || u,
|
|
306
317
|
onClick: () => this.handlePageChange(l - 1),
|
|
307
318
|
"test-id": "prevPageBtn",
|
|
308
319
|
"hide-label": true
|
|
309
320
|
}, i("q2-icon", {
|
|
310
|
-
key: "
|
|
321
|
+
key: "382d537e1a8d61c8212cf0a17a2f6be5c85d7da6",
|
|
311
322
|
type: "chevron-left"
|
|
312
323
|
}))), i("div", {
|
|
313
|
-
key: "
|
|
324
|
+
key: "dd6afd78e533ff445912854131757f13d92bb8f1",
|
|
314
325
|
class: "input-display",
|
|
315
326
|
hidden: a
|
|
316
327
|
}, i("span", {
|
|
317
|
-
key: "
|
|
328
|
+
key: "a016b75b1e9de2446f8e90e3ed73db296bfc1c20",
|
|
318
329
|
"aria-hidden": "true"
|
|
319
330
|
}, r("tecton.element.pagination.page")), i("div", {
|
|
320
|
-
key: "
|
|
331
|
+
key: "f5a2ef87d3382cd6cf4ea7311c2a71184648d825",
|
|
321
332
|
class: "input-wrapper",
|
|
322
333
|
onClick: () => this.inputField.dispatchEvent(new FocusEvent("focus"))
|
|
323
334
|
}, i("q2-input", {
|
|
324
|
-
key: "
|
|
335
|
+
key: "1cb2e7458d9c085068c80043f1a3e05d7ab16867",
|
|
325
336
|
ref: t => this.inputField = t,
|
|
326
337
|
type: "number",
|
|
327
338
|
value: `${l}`,
|
|
@@ -335,38 +346,39 @@ const l = class {
|
|
|
335
346
|
this.handlePageChange(t.detail.value);
|
|
336
347
|
},
|
|
337
348
|
"test-id": "pageInput",
|
|
338
|
-
current: "page"
|
|
349
|
+
current: "page",
|
|
350
|
+
disabled: f
|
|
339
351
|
})), i("span", {
|
|
340
|
-
key: "
|
|
352
|
+
key: "38eb5fd6b5da163ef1ea61e9c3faa2e8e78ab555",
|
|
341
353
|
"aria-hidden": "true"
|
|
342
354
|
}, r("tecton.element.pagination.ofPages", [ o.toLocaleString() ]))), i("div", {
|
|
343
|
-
key: "
|
|
355
|
+
key: "eb1511ae4ccfd6bd88f858deadfffe0a5a3d791d",
|
|
344
356
|
class: "btn-group"
|
|
345
357
|
}, i("q2-btn", {
|
|
346
|
-
key: "
|
|
358
|
+
key: "c16ad56cac594f73eafcec87d613768b6a4771a6",
|
|
347
359
|
ref: t => this.nextPageBtn = t,
|
|
348
|
-
label:
|
|
349
|
-
disabled:
|
|
360
|
+
label: v,
|
|
361
|
+
disabled: f || b,
|
|
350
362
|
onClick: () => this.handlePageChange(l + 1),
|
|
351
363
|
"test-id": "nextPageBtn",
|
|
352
364
|
"hide-label": true
|
|
353
365
|
}, i("q2-icon", {
|
|
354
|
-
key: "
|
|
366
|
+
key: "5ed0f655aad405b41d16f6f70a2f5f2355163918",
|
|
355
367
|
type: "chevron-right"
|
|
356
368
|
})), i("q2-btn", {
|
|
357
|
-
key: "
|
|
369
|
+
key: "3f32e59bb7063093f08663b175ebc736cb02dd6a",
|
|
358
370
|
ref: t => this.lastPageBtn = t,
|
|
359
371
|
label: "tecton.element.pagination.goToLastPage",
|
|
360
|
-
disabled:
|
|
372
|
+
disabled: f || b,
|
|
361
373
|
hidden: a,
|
|
362
374
|
onClick: () => this.handlePageChange(o),
|
|
363
375
|
"test-id": "lastPageBtn",
|
|
364
376
|
"hide-label": true
|
|
365
377
|
}, i("q2-icon", {
|
|
366
|
-
key: "
|
|
378
|
+
key: "2fcebb986383e784c91a7c828f20de7503b07d6e",
|
|
367
379
|
type: "chevron-double-right"
|
|
368
380
|
})))), i("div", {
|
|
369
|
-
key: "
|
|
381
|
+
key: "08af55bdfd90c01f1491d4000ea1db4fc9684e51",
|
|
370
382
|
class: "per-page",
|
|
371
383
|
hidden: a || !((t = this.perPageIncrements) === null || t === void 0 ? void 0 : t.length)
|
|
372
384
|
}, g && this.renderPerPage()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2PaginationCss","Q2Pagination","constructor","hostRef","this","alignment","autoSize","checkSize","hostElement","containerElement","isOverflowing","containerWidth","clientWidth","isSmall","nextPaint","containerWidthHasNotChanged","handlePageChange","page","totalPages","inputField","parseInt","isNaN","value","onchange","change","emit","handlePerPageChange","event","perPage","detail","disconnectedCallback","removeResizeObserver","componentWillLoad","checkDisplayTypes","manageResizeObserver","componentDidLoad","overrideFocus","onHostElementFocus","isEventFromElement","isFullViewHidden","_a","querySelector","focus","clickFirstPage","button","firstPageBtn","disabled","click","clickLastPage","lastPageBtn","clickNextPage","nextPageBtn","clickPreviousPage","prevPageBtn","selectPerPageIncrementValue","showPerPageSelect","perPageIncrementsArray","includes","perPageSelect","options","Array","from","querySelectorAll","find","option","setPageValue","_b","blur","resizeObserver","ResizeObserver","observe","window","addEventListener","pagesOnly","recordsOnly","stacked","containerClasses","classes","push","currentRange","perPageWithDefault","totalWithDefault","total","pageWithDefault","start","end","Math","min","nextRange","isArray","perPageIncrements","map","num","Number","trim","replace","split","prevRange","max","recordTypeWithDefault","recordType","loc","length","pages","ceil","disconnect","removeEventListener","renderPerPage","increments","sort","a","b","undefined","join","h","ref","el","onChange","display","render","onFirstPage","onLastPage","nextButtonLabel","prevButtonLabel","next","range","toLowerCase","key","class","current","toLocaleString","label","hidden","onClick","type","dispatchEvent","FocusEvent","hideLabel","optional","stopPropagation"],"sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.container {\n display: inline-flex;\n column-gap: var-list(var-prefixer(pagination-column-gap), --app-scale-2x, 10px);\n align-items: center;\n height: var-list(var-prefixer(pagination-height), 44px);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 50px) auto;\n align-items: center;\n gap: var-list(var-prefixer(pagination-controls-gap), --app-scale-1x, 5px);\n\n &[hidden] {\n display: none;\n }\n}\n\n.input-wrapper {\n height: var-list(var-prefixer(pagination-height), 44px);\n display: flex;\n align-items: center;\n}\n\nq2-btn {\n --tct-btn-border-radius: #{var-list(var-prefixer(pagination-btn-border-radius))};\n --tct-btn-border: #{var-list(var-prefixer(pagination-btn-border))};\n --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(pagination-icon-size), 12px)};\n color: var-list(var-prefixer(pagination-icon-color), --t-text, #4d4d4d);\n}\n\nq2-input {\n --tct-input-margin-top: 0;\n --tct-input-margin-bottom: 0;\n --tct-input-height: #{var-list(var-prefixer(pagination-input-height), 30px)};\n --tct-input-min-height: var(--tct-input-height);\n --tct-input-align: center;\n}\n\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\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 isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /** Indicates the horizontal alignment of pagination elements */\n @Prop()\n alignment: 'left' | 'center' | 'right' = 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /** Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature. */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ page: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const { isFullViewHidden, containerElement, inputField } = this;\n if (isFullViewHidden) {\n containerElement.querySelector<HTMLElement>('q2-btn:not([disabled])')?.focus();\n } else {\n inputField.focus();\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => this.checkSize());\n this.resizeObserver.observe(this.hostElement);\n window.addEventListener('resize', this.checkSize);\n } else {\n this.isSmall = false;\n this.removeResizeObserver();\n }\n }\n\n @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\n }\n\n get totalPages() {\n const { pagesOnly, totalWithDefault: total, perPageWithDefault: perPage, pages } = this;\n\n if (pagesOnly && pages && !isNaN(parseInt(`${pages}`))) return pages;\n\n return Math.ceil(total / perPage);\n }\n\n get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\n if (isOverflowing) return;\n\n nextPaint(() => {\n const containerWidthHasNotChanged = this.containerWidth === containerElement.clientWidth;\n if (containerWidthHasNotChanged) return;\n this.containerWidth = containerElement.clientWidth;\n this.checkSize();\n });\n };\n\n handlePageChange = (page: number) => {\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || page < 1) {\n page = 1;\n } else if (page > totalPages) {\n page = totalPages;\n }\n\n if (inputField.value !== `${page}`) inputField.value = `${page}`;\n\n if (!this.hostElement.onchange) {\n this.page = page;\n }\n\n this.change.emit({ page });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n this.perPage = event.detail.value * 1;\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={this.handlePerPageChange}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\n ref={el => (this.containerElement = el)}\n aria-label={loc('tecton.element.pagination.title')}\n >\n <div\n class=\"description\"\n test-id=\"description\"\n >\n {pagesOnly\n ? loc('tecton.element.pagination.pages', {\n current: page,\n total: totalPages,\n })\n : loc('tecton.element.pagination.description', {\n range: currentRange,\n recordType: recordType.toLowerCase(),\n total: total.toLocaleString(),\n })}\n </div>\n <div class=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={onFirstPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(1)}\n test-id=\"firstPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-left\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={onFirstPage}\n onClick={() => this.handlePageChange(page - 1)}\n test-id=\"prevPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n <div\n class=\"input-display\"\n hidden={isFullViewHidden}\n >\n <span aria-hidden=\"true\">{loc('tecton.element.pagination.page')}</span>\n <div\n class=\"input-wrapper\"\n onClick={() => this.inputField.dispatchEvent(new FocusEvent('focus'))}\n >\n <q2-input\n ref={el => (this.inputField = el)}\n type=\"number\"\n value={`${page}`}\n min={1}\n max={this.totalPages}\n hideLabel\n optional\n label={`${loc('tecton.element.pagination.page')} (${loc(\n 'tecton.element.pagination.ofPages',\n [totalPages.toLocaleString()]\n )})`}\n onChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n ></q2-input>\n </div>\n <span aria-hidden=\"true\">\n {loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])}\n </span>\n </div>\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={onLastPage}\n onClick={() => this.handlePageChange(page + 1)}\n test-id=\"nextPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={onLastPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["q2PaginationCss","Q2Pagination","constructor","hostRef","this","alignment","autoSize","disabled","checkSize","hostElement","containerElement","isOverflowing","containerWidth","clientWidth","isSmall","nextPaint","containerWidthHasNotChanged","handlePageChange","page","totalPages","inputField","parseInt","isNaN","value","onchange","change","emit","handlePerPageChange","event","perPage","detail","disconnectedCallback","removeResizeObserver","componentWillLoad","checkDisplayTypes","manageResizeObserver","componentDidLoad","overrideFocus","onHostElementFocus","isEventFromElement","isFullViewHidden","_a","querySelector","focus","clickFirstPage","button","firstPageBtn","click","clickLastPage","lastPageBtn","clickNextPage","nextPageBtn","clickPreviousPage","prevPageBtn","selectPerPageIncrementValue","showPerPageSelect","perPageIncrementsArray","includes","perPageSelect","options","Array","from","querySelectorAll","find","option","setPageValue","_b","blur","resizeObserver","ResizeObserver","observe","window","addEventListener","pagesOnly","recordsOnly","stacked","containerClasses","classes","push","currentRange","perPageWithDefault","totalWithDefault","total","pageWithDefault","start","end","Math","min","nextRange","isArray","perPageIncrements","map","num","Number","trim","replace","split","prevRange","max","recordTypeWithDefault","recordType","loc","length","pages","ceil","disconnect","removeEventListener","renderPerPage","increments","sort","a","b","undefined","join","h","ref","el","onChange","display","render","onFirstPage","onLastPage","nextButtonLabel","prevButtonLabel","next","range","toLowerCase","key","class","current","toLocaleString","label","hidden","onClick","type","dispatchEvent","FocusEvent","hideLabel","optional","stopPropagation"],"sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.container {\n display: inline-flex;\n column-gap: var-list(var-prefixer(pagination-column-gap), --app-scale-2x, 10px);\n align-items: center;\n height: var-list(var-prefixer(pagination-height), 44px);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 50px) auto;\n align-items: center;\n gap: var-list(var-prefixer(pagination-controls-gap), --app-scale-1x, 5px);\n\n &[hidden] {\n display: none;\n }\n}\n\n.input-wrapper {\n height: var-list(var-prefixer(pagination-height), 44px);\n display: flex;\n align-items: center;\n}\n\nq2-btn {\n --tct-btn-border-radius: #{var-list(var-prefixer(pagination-btn-border-radius))};\n --tct-btn-border: #{var-list(var-prefixer(pagination-btn-border))};\n --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(pagination-icon-size), 12px)};\n color: var-list(var-prefixer(pagination-icon-color), --t-text, #4d4d4d);\n}\n\nq2-input {\n --tct-input-margin-top: 0;\n --tct-input-margin-bottom: 0;\n --tct-input-height: #{var-list(var-prefixer(pagination-input-height), 30px)};\n --tct-input-min-height: var(--tct-input-height);\n --tct-input-align: center;\n}\n\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\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 isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /** Indicates the horizontal alignment of pagination elements */\n @Prop()\n alignment: 'left' | 'center' | 'right' = 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** Allows the component to be disabled should the state of the page require this */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /** Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature. */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ page: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (this.disabled) return;\n if (!isEventFromElement(event, this.hostElement)) return;\n const { isFullViewHidden, containerElement, inputField } = this;\n if (isFullViewHidden) {\n containerElement.querySelector<HTMLElement>('q2-btn:not([disabled])')?.focus();\n } else {\n inputField.focus();\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n if (this.disabled) return;\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n if (this.disabled) return;\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n if (this.disabled) return;\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n if (this.disabled) return;\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (this.disabled) return;\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (this.disabled) return;\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => this.checkSize());\n this.resizeObserver.observe(this.hostElement);\n window.addEventListener('resize', this.checkSize);\n } else {\n this.isSmall = false;\n this.removeResizeObserver();\n }\n }\n\n @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\n }\n\n get totalPages() {\n const { pagesOnly, totalWithDefault: total, perPageWithDefault: perPage, pages } = this;\n\n if (pagesOnly && pages && !isNaN(parseInt(`${pages}`))) return pages;\n\n return Math.ceil(total / perPage);\n }\n\n get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\n if (isOverflowing) return;\n\n nextPaint(() => {\n const containerWidthHasNotChanged = this.containerWidth === containerElement.clientWidth;\n if (containerWidthHasNotChanged) return;\n this.containerWidth = containerElement.clientWidth;\n this.checkSize();\n });\n };\n\n handlePageChange = (page: number) => {\n if (this.disabled) return;\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || page < 1) {\n page = 1;\n } else if (page > totalPages) {\n page = totalPages;\n }\n\n if (inputField.value !== `${page}`) inputField.value = `${page}`;\n\n if (!this.hostElement.onchange) {\n this.page = page;\n }\n\n this.change.emit({ page });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n if (this.disabled) return;\n this.perPage = event.detail.value * 1;\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={this.handlePerPageChange}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n disabled={this.disabled}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n disabled,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\n ref={el => (this.containerElement = el)}\n aria-label={loc('tecton.element.pagination.title')}\n >\n <div\n class=\"description\"\n test-id=\"description\"\n >\n {pagesOnly\n ? loc('tecton.element.pagination.pages', {\n current: page,\n total: totalPages,\n })\n : loc('tecton.element.pagination.description', {\n range: currentRange,\n recordType: recordType.toLowerCase(),\n total: total.toLocaleString(),\n })}\n </div>\n <div class=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={disabled || onFirstPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(1)}\n test-id=\"firstPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-left\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={disabled || onFirstPage}\n onClick={() => this.handlePageChange(page - 1)}\n test-id=\"prevPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n <div\n class=\"input-display\"\n hidden={isFullViewHidden}\n >\n <span aria-hidden=\"true\">{loc('tecton.element.pagination.page')}</span>\n <div\n class=\"input-wrapper\"\n onClick={() => this.inputField.dispatchEvent(new FocusEvent('focus'))}\n >\n <q2-input\n ref={el => (this.inputField = el)}\n type=\"number\"\n value={`${page}`}\n min={1}\n max={this.totalPages}\n hideLabel\n optional\n label={`${loc('tecton.element.pagination.page')} (${loc(\n 'tecton.element.pagination.ofPages',\n [totalPages.toLocaleString()]\n )})`}\n onChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n disabled={disabled}\n ></q2-input>\n </div>\n <span aria-hidden=\"true\">\n {loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])}\n </span>\n </div>\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={disabled || onLastPage}\n onClick={() => this.handlePageChange(page + 1)}\n test-id=\"nextPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={disabled || onLastPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -359,19 +359,19 @@ const v = class {
|
|
|
359
359
|
if (t || i) r.push("has-icon");
|
|
360
360
|
if (t) r.push("has-options");
|
|
361
361
|
return o("click-elsewhere", {
|
|
362
|
-
key: "
|
|
362
|
+
key: "e7808292f13c5065a372be65944d789e6908a551",
|
|
363
363
|
onChange: this.onClickElsewhere
|
|
364
364
|
}, o("div", {
|
|
365
|
-
key: "
|
|
365
|
+
key: "c9708498aa93476eff3cc68b3ef741c31c8ad9b1",
|
|
366
366
|
class: r.join(" ")
|
|
367
367
|
}, o("div", {
|
|
368
|
-
key: "
|
|
368
|
+
key: "9b756d3fc7dcf8209a4ecf880611a405947ef2b4",
|
|
369
369
|
class: "btn-height-wrapper",
|
|
370
370
|
ref: t => this.primaryBtnWrapper = t,
|
|
371
371
|
onClick: this.handleWrapperClick,
|
|
372
372
|
tabIndex: -1
|
|
373
373
|
}, o("button", {
|
|
374
|
-
key: "
|
|
374
|
+
key: "5167564d23175ea50dcff0c12d0bf22c691c863a",
|
|
375
375
|
class: "btn-primary",
|
|
376
376
|
"test-id": "btn-control",
|
|
377
377
|
type: "button",
|
|
@@ -387,7 +387,7 @@ const v = class {
|
|
|
387
387
|
"aria-label": `${this.buttonContent}${!t && i ? ` ${s("tecton.element.pill.active")}` : ""}`,
|
|
388
388
|
"aria-describedby": t && "option-description" || undefined
|
|
389
389
|
}, this.truncatedButtonContent)), this.renderIcon(), !!t && this.renderHiddenElement()), this.optionCount > 0 && o("q2-popover", {
|
|
390
|
-
key: "
|
|
390
|
+
key: "df99bf0be930209e56de6e0b091e6847643df41d",
|
|
391
391
|
ref: t => this.popoverElement = t,
|
|
392
392
|
controlElement: this.primaryBtn,
|
|
393
393
|
open: this.open,
|
|
@@ -397,20 +397,20 @@ const v = class {
|
|
|
397
397
|
align: this.popoverAlignment,
|
|
398
398
|
onFocusout: this.handleFocusOut
|
|
399
399
|
}, o("div", {
|
|
400
|
-
key: "
|
|
400
|
+
key: "da8d529eb84d83fc126aff7d8f7af5cc8c28090b",
|
|
401
401
|
class: "popover-content"
|
|
402
402
|
}, o("div", {
|
|
403
|
-
key: "
|
|
403
|
+
key: "1c8edb11248927a81138333abcfc7937c7c8b4e3",
|
|
404
404
|
ref: t => this.popoverTopContainer = t,
|
|
405
405
|
class: "popover-top-container",
|
|
406
406
|
tabindex: "-1",
|
|
407
407
|
hidden: !this.hasPopoverTop,
|
|
408
408
|
onKeyDown: this.handleKeydown
|
|
409
409
|
}, o("slot", {
|
|
410
|
-
key: "
|
|
410
|
+
key: "6969d464fdee4f40f2753c0deed463c1b1de2bf1",
|
|
411
411
|
name: "popover-top"
|
|
412
412
|
})), o("q2-option-list", {
|
|
413
|
-
key: "
|
|
413
|
+
key: "b6d68ff335503eb7e2b50d210a57d94b1a66f93d",
|
|
414
414
|
type: "listbox",
|
|
415
415
|
ref: t => this.optionList = t,
|
|
416
416
|
id: "option-list",
|
|
@@ -421,16 +421,16 @@ const v = class {
|
|
|
421
421
|
onPopoverState: this.onPopoverState,
|
|
422
422
|
label: s("tecton.element.optionList.label", [ this.optionListLabel ])
|
|
423
423
|
}, o("slot", {
|
|
424
|
-
key: "
|
|
424
|
+
key: "2995021179f4597fb47796b16ddb5db5b26b1a60"
|
|
425
425
|
})), o("div", {
|
|
426
|
-
key: "
|
|
426
|
+
key: "8f916f36da1a3809f8003659789a1d3792394f11",
|
|
427
427
|
ref: t => this.popoverBottomContainer = t,
|
|
428
428
|
class: "popover-bottom-container",
|
|
429
429
|
tabindex: "-1",
|
|
430
430
|
hidden: !this.hasPopoverBottom,
|
|
431
431
|
onKeyDown: this.handleKeydown
|
|
432
432
|
}, o("slot", {
|
|
433
|
-
key: "
|
|
433
|
+
key: "ec1a18a9651cca88e07c486d9b886ffc8c833277",
|
|
434
434
|
name: "popover-bottom"
|
|
435
435
|
})))));
|
|
436
436
|
}
|
|
@@ -141,7 +141,7 @@ const o = class {
|
|
|
141
141
|
render() {
|
|
142
142
|
const {shouldShow: e, displayedMessage: s} = this;
|
|
143
143
|
return t(i, {
|
|
144
|
-
key: "
|
|
144
|
+
key: "28fd755c61e0bac9a47f06496d90ddcee8034caa"
|
|
145
145
|
}, e ? t("time", {
|
|
146
146
|
dateTime: s
|
|
147
147
|
}, s) : null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-section-container.entry.esm.js","sources":["src/components/q2-section-container/q2-section-container.tsx"],"sourcesContent":["import { Component, Element, ComponentInterface, h, Prop, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-section-container', shadow: true })\nexport class Q2SectonContainer implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Determines if a single or multiple sections can be open at a time.\n */\n @Prop({ mutable: true })\n openMode: 'multiple' | 'single' = 'single';\n\n /**\n * Determines which section starts open.\n */\n @Prop()\n openPaneIndex: number = 0;\n\n /**\n * Determines if all sections inside the section-container start opened or closed.\n *\n * @info\n * If you have openMode set to multiple, all panes will start open.\n */\n @Prop({ mutable: true })\n startAllOpen: boolean = false;\n\n /**\n * Determines if the section-container starts opened or closed.\n *\n * @info\n * If you have openMode set to single, the pane specified in openPaneIndex will start open, or the first pane if unspecified.\n * If you have openMode set to multiple, you can also select startAllOpen to open all panes.\n * @warning\n * OpenMode = multiple and StartAllOpen=true does not work correctly inside of a q2-tab that starts closed.\n */\n @Prop({ mutable: true })\n startOpen: boolean = true;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.filterSlottedElements();\n this.fixSlottedElements();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('openMode')\n @Watch('openPaneIndex')\n @Watch('startAllOpen')\n @Watch('startOpen')\n handleOpenStateChange() {\n this.fixSlottedElements();\n }\n\n // #endregion\n // #region Local Methods\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n Array.from(this.hostElement.children).forEach(el => {\n if ('Q2-SECTION' !== el.tagName) {\n el.remove();\n }\n });\n };\n\n fixSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n Array.from(this.hostElement.children).forEach((el, i) => {\n el.setAttribute('collapsible', '');\n if (this.openMode === 'single') {\n el.addEventListener('change', event => {\n const target = event.target as HTMLElement;\n const children = Array.from(target.parentElement.children);\n const siblings = children.filter(child => child !== target);\n siblings.forEach(el => el.setAttribute('expanded', 'false'));\n });\n }\n\n if (!el.getAttribute('label')) {\n el.setAttribute('label', 'Section ' + (i + 1));\n }\n\n if (!this.startOpen) {\n el.removeAttribute('expanded');\n } else {\n if (this.openPaneIndex === i || (this.openMode === 'multiple' && this.startAllOpen)) {\n el.setAttribute('expanded', '');\n } else {\n el.removeAttribute('expanded');\n }\n }\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render = () => <slot />;\n\n // #endregion\n}\n"],"names":[],"mappings":";;MAGa,iBAAiB,GAAA,MAAA;AAD9B,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAUI;;AAEG;AAEH,QAAA,IAAQ,CAAA,QAAA,GAA0B,QAAQ;AAE1C;;AAEG;AAEH,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC;AAEzB;;;;;AAKG;AAEH,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK;AAE7B;;;;;;;;AAQG;AAEH,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;;;AAwBzB,QAAA,IAAqB,CAAA,qBAAA,GAAG,MAAK;AACzB,YAAA,IAAI,EAAE,iBAAiB,IAAI,MAAM,CAAC;gBAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;AAC/C,gBAAA,IAAI,YAAY,KAAK,EAAE,CAAC,OAAO,EAAE;oBAC7B,EAAE,CAAC,MAAM,EAAE;;AAEnB,aAAC,CAAC;AACN,SAAC;AAED,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAK;AACtB,YAAA,IAAI,EAAE,iBAAiB,IAAI,MAAM,CAAC;gBAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;AACpD,gBAAA,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;AAClC,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,IAAG;AAClC,wBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;AAC1C,wBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC1D,wBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3D,wBAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChE,qBAAC,CAAC;;gBAGN,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AAC3B,oBAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;AAGlD,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,oBAAA,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;;qBAC3B;AACH,oBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACjF,wBAAA,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;;yBAC5B;AACH,wBAAA,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;;;AAG1C,aAAC,CAAC;AACN,SAAC;;;AAKD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,eAAQ;AAG1B;;;IA/DG,iBAAiB,GAAA;QACb,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,kBAAkB,EAAE;;;;IAU7B,qBAAqB,GAAA;QACjB,IAAI,CAAC,kBAAkB,EAAE;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { r as e, h as t, g as n } from "./index-CGkHOjh1.js";
|
|
2
|
+
|
|
3
|
+
const s = class {
|
|
4
|
+
constructor(n) {
|
|
5
|
+
e(this, n);
|
|
6
|
+
// #endregion
|
|
7
|
+
// #region Public Property API
|
|
8
|
+
/**
|
|
9
|
+
* Determines if a single or multiple sections can be open at a time.
|
|
10
|
+
*/ this.openMode = "single";
|
|
11
|
+
/**
|
|
12
|
+
* Determines which section starts open.
|
|
13
|
+
*/ this.openPaneIndex = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Determines if all sections inside the section-container start opened or closed.
|
|
16
|
+
*
|
|
17
|
+
* @info
|
|
18
|
+
* If you have openMode set to multiple, all panes will start open.
|
|
19
|
+
*/ this.startAllOpen = false;
|
|
20
|
+
/**
|
|
21
|
+
* Determines if the section-container starts opened or closed.
|
|
22
|
+
*
|
|
23
|
+
* @info
|
|
24
|
+
* If you have openMode set to single, the pane specified in openPaneIndex will start open, or the first pane if unspecified.
|
|
25
|
+
* If you have openMode set to multiple, you can also select startAllOpen to open all panes.
|
|
26
|
+
* @warning
|
|
27
|
+
* OpenMode = multiple and StartAllOpen=true does not work correctly inside of a q2-tab that starts closed.
|
|
28
|
+
*/ this.startOpen = true;
|
|
29
|
+
// #endregion
|
|
30
|
+
// #region Local Methods
|
|
31
|
+
this.filterSlottedElements = () => {
|
|
32
|
+
if (!("HTMLSlotElement" in window)) return;
|
|
33
|
+
Array.from(this.hostElement.children).forEach((e => {
|
|
34
|
+
if ("Q2-SECTION" !== e.tagName) {
|
|
35
|
+
e.remove();
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
};
|
|
39
|
+
this.fixSlottedElements = () => {
|
|
40
|
+
if (!("HTMLSlotElement" in window)) return;
|
|
41
|
+
Array.from(this.hostElement.children).forEach(((e, t) => {
|
|
42
|
+
e.setAttribute("collapsible", "");
|
|
43
|
+
if (this.openMode === "single") {
|
|
44
|
+
e.addEventListener("change", (e => {
|
|
45
|
+
const t = e.target;
|
|
46
|
+
const n = Array.from(t.parentElement.children);
|
|
47
|
+
const s = n.filter((e => e !== t));
|
|
48
|
+
s.forEach((e => e.setAttribute("expanded", "false")));
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
if (!e.getAttribute("label")) {
|
|
52
|
+
e.setAttribute("label", "Section " + (t + 1));
|
|
53
|
+
}
|
|
54
|
+
if (!this.startOpen) {
|
|
55
|
+
e.removeAttribute("expanded");
|
|
56
|
+
} else {
|
|
57
|
+
if (this.openPaneIndex === t || this.openMode === "multiple" && this.startAllOpen) {
|
|
58
|
+
e.setAttribute("expanded", "");
|
|
59
|
+
} else {
|
|
60
|
+
e.removeAttribute("expanded");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
// #endregion
|
|
66
|
+
// #region Render Methods
|
|
67
|
+
this.render = () => t("slot", null);
|
|
68
|
+
}
|
|
69
|
+
// #endregion
|
|
70
|
+
// #region Component Lifecycle Events
|
|
71
|
+
componentWillLoad() {
|
|
72
|
+
this.filterSlottedElements();
|
|
73
|
+
this.fixSlottedElements();
|
|
74
|
+
}
|
|
75
|
+
// #endregion
|
|
76
|
+
// #region Watchers
|
|
77
|
+
handleOpenStateChange() {
|
|
78
|
+
this.fixSlottedElements();
|
|
79
|
+
}
|
|
80
|
+
get hostElement() {
|
|
81
|
+
return n(this);
|
|
82
|
+
}
|
|
83
|
+
static get watchers() {
|
|
84
|
+
return {
|
|
85
|
+
openMode: [ "handleOpenStateChange" ],
|
|
86
|
+
openPaneIndex: [ "handleOpenStateChange" ],
|
|
87
|
+
startAllOpen: [ "handleOpenStateChange" ],
|
|
88
|
+
startOpen: [ "handleOpenStateChange" ]
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export { s as q2_section_container };
|
|
94
|
+
//# sourceMappingURL=q2-section-container.entry.esm.js.map
|
|
95
|
+
//# sourceMappingURL=q2-section-container.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Q2SectonContainer","constructor","hostRef","this","openMode","openPaneIndex","startAllOpen","startOpen","filterSlottedElements","window","Array","from","hostElement","children","forEach","el","tagName","remove","fixSlottedElements","i","setAttribute","addEventListener","event","target","parentElement","siblings","filter","child","getAttribute","removeAttribute","render","h","componentWillLoad","handleOpenStateChange"],"sources":["src/components/q2-section-container/q2-section-container.tsx"],"sourcesContent":["import { Component, Element, ComponentInterface, h, Prop, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-section-container', shadow: true })\nexport class Q2SectonContainer implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Determines if a single or multiple sections can be open at a time.\n */\n @Prop({ mutable: true })\n openMode: 'multiple' | 'single' = 'single';\n\n /**\n * Determines which section starts open.\n */\n @Prop()\n openPaneIndex: number = 0;\n\n /**\n * Determines if all sections inside the section-container start opened or closed.\n *\n * @info\n * If you have openMode set to multiple, all panes will start open.\n */\n @Prop({ mutable: true })\n startAllOpen: boolean = false;\n\n /**\n * Determines if the section-container starts opened or closed.\n *\n * @info\n * If you have openMode set to single, the pane specified in openPaneIndex will start open, or the first pane if unspecified.\n * If you have openMode set to multiple, you can also select startAllOpen to open all panes.\n * @warning\n * OpenMode = multiple and StartAllOpen=true does not work correctly inside of a q2-tab that starts closed.\n */\n @Prop({ mutable: true })\n startOpen: boolean = true;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.filterSlottedElements();\n this.fixSlottedElements();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('openMode')\n @Watch('openPaneIndex')\n @Watch('startAllOpen')\n @Watch('startOpen')\n handleOpenStateChange() {\n this.fixSlottedElements();\n }\n\n // #endregion\n // #region Local Methods\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n Array.from(this.hostElement.children).forEach(el => {\n if ('Q2-SECTION' !== el.tagName) {\n el.remove();\n }\n });\n };\n\n fixSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n Array.from(this.hostElement.children).forEach((el, i) => {\n el.setAttribute('collapsible', '');\n if (this.openMode === 'single') {\n el.addEventListener('change', event => {\n const target = event.target as HTMLElement;\n const children = Array.from(target.parentElement.children);\n const siblings = children.filter(child => child !== target);\n siblings.forEach(el => el.setAttribute('expanded', 'false'));\n });\n }\n\n if (!el.getAttribute('label')) {\n el.setAttribute('label', 'Section ' + (i + 1));\n }\n\n if (!this.startOpen) {\n el.removeAttribute('expanded');\n } else {\n if (this.openPaneIndex === i || (this.openMode === 'multiple' && this.startAllOpen)) {\n el.setAttribute('expanded', '');\n } else {\n el.removeAttribute('expanded');\n }\n }\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render = () => <slot />;\n\n // #endregion\n}\n"],"mappings":";;MAGaA,IAAiB;EAD9B,WAAAC,CAAAC;;;;;;eAcIC,KAAQC,WAA0B;;;eAMlCD,KAAaE,gBAAW;;;;;;eASxBF,KAAYG,eAAY;;;;;;;;;eAYxBH,KAASI,YAAY;;;QAwBrBJ,KAAqBK,wBAAG;MACpB,MAAM,qBAAqBC,SAAS;MACpCC,MAAMC,KAAKR,KAAKS,YAAYC,UAAUC,SAAQC;QAC1C,IAAI,iBAAiBA,EAAGC,SAAS;UAC7BD,EAAGE;;;AAET;IAGNd,KAAkBe,qBAAG;MACjB,MAAM,qBAAqBT,SAAS;MACpCC,MAAMC,KAAKR,KAAKS,YAAYC,UAAUC,SAAQ,CAACC,GAAII;QAC/CJ,EAAGK,aAAa,eAAe;QAC/B,IAAIjB,KAAKC,aAAa,UAAU;UAC5BW,EAAGM,iBAAiB,WAAUC;YAC1B,MAAMC,IAASD,EAAMC;YACrB,MAAMV,IAAWH,MAAMC,KAAKY,EAAOC,cAAcX;YACjD,MAAMY,IAAWZ,EAASa,QAAOC,KAASA,MAAUJ;YACpDE,EAASX,SAAQC,KAAMA,EAAGK,aAAa,YAAY;AAAS;;QAIpE,KAAKL,EAAGa,aAAa,UAAU;UAC3Bb,EAAGK,aAAa,SAAS,cAAcD,IAAI;;QAG/C,KAAKhB,KAAKI,WAAW;UACjBQ,EAAGc,gBAAgB;eAChB;UACH,IAAI1B,KAAKE,kBAAkBc,KAAMhB,KAAKC,aAAa,cAAcD,KAAKG,cAAe;YACjFS,EAAGK,aAAa,YAAY;iBACzB;YACHL,EAAGc,gBAAgB;;;;AAG7B;;;QAMN1B,KAAA2B,SAAS,MAAMC,EAAA;AAGlB;;;EA/DG,iBAAAC;IACI7B,KAAKK;IACLL,KAAKe;;;;EAUT,qBAAAe;IACI9B,KAAKe","ignoreList":[]}
|