q2-tecton-elements 1.36.0 → 1.37.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/cjs/click-elsewhere_2.cjs.entry.js +1 -1
- package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
- package/dist/cjs/index-6f9f259c.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +17 -10
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +14 -13
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +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-radio-group.cjs.entry.js +9 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +12 -3
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +54 -5
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/q2-action-sheet/styles.css +0 -8
- package/dist/collection/components/q2-calendar/index.js +120 -2
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-area/index.js +1 -1
- package/dist/collection/components/q2-chart-area/index.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/index.js +1 -1
- package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +11 -7
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +45 -5
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/styles.css +37 -36
- package/dist/collection/components/q2-editable-field/index.js +96 -6
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +48 -10
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-message/index.js +14 -13
- package/dist/collection/components/q2-message/index.js.map +1 -1
- package/dist/collection/components/q2-pill/index.js +2 -2
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-radio/index.js +29 -3
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +27 -0
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-select/index.js +127 -5
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/index.js +37 -0
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/utils/index.js +8 -6
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index11.js +14 -13
- package/dist/components/index11.js.map +1 -1
- package/dist/components/index16.js +11 -8
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index9.js +19 -10
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +51 -4
- package/dist/components/q2-calendar.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 +11 -7
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +26 -6
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-editable-field.js +39 -7
- package/dist/components/q2-editable-field.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-radio-group.js +10 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +13 -3
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-select.js +59 -6
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-textarea.js +15 -2
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/docs.json +224 -9
- package/dist/esm/click-elsewhere_2.entry.js +1 -1
- package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
- package/dist/esm/index-74a659a5.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +46 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +12 -8
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +25 -6
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +34 -6
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +17 -10
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +14 -13
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +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 +9 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +12 -3
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +54 -5
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +13 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
- package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c3650c2e.entry.js → p-597f8656.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-15ca5c98.entry.js → p-9d743327.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-6e6b160d.entry.js → p-ac82ea35.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
- package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
- package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +150 -9
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-message-test.e2e.js +38 -1
- package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +37 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-test.e2e.js +100 -15
- package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +203 -0
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js +5 -0
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
- package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
- package/dist/types/components/q2-calendar/index.d.ts +8 -1
- package/dist/types/components/q2-chart-donut/index.d.ts +1 -1
- package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
- package/dist/types/components/q2-editable-field/index.d.ts +10 -2
- package/dist/types/components/q2-input/index.d.ts +2 -0
- package/dist/types/components/q2-message/index.d.ts +1 -0
- package/dist/types/components/q2-radio/index.d.ts +1 -0
- package/dist/types/components/q2-radio-group/index.d.ts +1 -0
- package/dist/types/components/q2-select/index.d.ts +9 -1
- package/dist/types/components/q2-textarea/index.d.ts +2 -0
- package/dist/types/components.d.ts +19 -0
- package/package.json +3 -3
- package/dist/cjs/index-f6545293.js.map +0 -1
- package/dist/esm/index-35ff2881.js.map +0 -1
- package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c3650c2e.entry.js.map → p-597f8656.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-15ca5c98.entry.js.map → p-9d743327.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6e6b160d.entry.js.map → p-ac82ea35.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","Q2DataTable","this","checkSlots","hasExpandableRows","_b","_a","hostElement","querySelector","hasDropdowns","_d","_c","checkSlotCount","onSort","header","direction","sorted","sortKey","key","sortEvent","sort","emit","defaultPrevented","serializedHeaders","map","serializedHeader","undefined","Object","assign","serializedRows","sortRows","onSelectAllRows","event","stopPropagation","checked","detail","selectedRows","row","selected","selectEvent","select","rows","allSelected","allRowsSelected","onSelectRow","selectMode","currentlySelectedRows","selectedRow","filter","id","length","onClickTableRow","clickable","onClickRow","onToggleRow","click","expanded","toggleEvent","toggle","onControlContainerClick","componentWillLoad","headersHandler","headers","rowsHandler","componentDidLoad","MutationObserver","observer","observe","childList","subtree","attributes","mutationObserver","ResizeObserver","resizeObserver","resizeIframe","disconnectedCallback","disconnect","find","numberOfColumns","selectable","mappedHeaders","reduce","accum","sortedRows","a","b","aValue","cells","value","bValue","title","toLowerCase","replace","defaultRow","serializedCells","entries","cellKey","cellData","align","type","lineClamp","isBadge","defaultCell","ariaLabel","badgeStatus","badgeTheme","result","sortedHeader","onClickListener","PointerEvent","stopImmediatePropagation","render","caption","h","class","hideCaption","renderTableColGroup","renderTableHeader","renderTableRows","width","backgroundColor","style","hideClickable","label","loc","onChange","disabled","loading","headerClasses","push","join","sortable","onClick","colSpan","inline","isSelectDisabled","clickableClasses","clickableClassString","cellSlotPrefix","expandableRowName","dropdownCellName","rowHasExpandableSlot","rowHasDropdownSlot","rowClasses","rowIsClickable","Fragment","e","tabIndex","cell","cellAlign","cellClasses","cellStyles","name","renderCellContent","intent","size","ariaExpanded","ariaControls","hidden","includes","valueAsInt","parseFloat","theme","status","valueAsString"],"sources":["./src/components/q2-data-table/styles.scss?tag=q2-data-table&encapsulation=shadow","./src/components/q2-data-table/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.container {\n --comp-cell-padding: #{var-list(--tct-table-cell-padding, --app-scale-3x, 15px)};\n --comp-select-column-width: #{var-list(--tct-table-select-column-width, --tct-checkbox-size, 20px)};\n --comp-dropdown-column-width: #{var-list(--tct-table-dropdown-column-width, --tct-btn-icon-width, 44px)};\n --comp-expandable-row-control-column-width: #{var-list(\n --tct-table-expandable-row-control-column-width,\n --tct-btn-icon-width,\n 44px\n )};\n\n overflow: auto;\n @include tiny-scrollbar();\n\n :host([shadowed]:not([shadowed='false'])) & {\n box-shadow: var-list(--tct-table-shadow, --app-shadow-1, unquote('0 2px 4px rgba(0, 0, 0, 0.3)'));\n }\n\n :host([density='compact']) & {\n --comp-cell-padding: #{var-list(--tct-table-cell-padding-compact, --app-scale-1x, 5px)};\n }\n\n :host([density='comfortable']) & {\n --comp-cell-padding: #{var-list(--tct-table-cell-padding-comfortable, --app-scale-5x, 25px)};\n }\n}\n\ntable {\n table-layout: var-list(--tct-table-layout, auto);\n border-collapse: collapse;\n border-spacing: 0;\n width: var-list(--tct-table-width);\n min-width: 100%;\n background: var-list(--tct-table-background, --t-base, #ffffff);\n caption-side: var-list(--tct-table-caption-side, bottom);\n}\n\nthead {\n border-width: var-list(--tct-table-header-border-width, unquote('0 0 2px 0'));\n border-style: var-list(--tct-table-header-border-style, solid);\n border-color: var-list(--tct-table-header-border-color, --t-gray-9, #999999);\n background: var-list(--tct-table-header-background);\n}\n\ncol {\n &.select-column {\n width: var(--comp-select-column-width);\n }\n\n &.expandable-row-control-column {\n width: var(--comp-expandable-row-control-column-width);\n }\n\n &.dropdown-column {\n width: var(--comp-dropdown-column-width);\n }\n}\n\ntd,\nth {\n padding: var(--comp-cell-padding);\n text-align: start;\n\n &.align-end {\n text-align: end;\n }\n &.align-center {\n text-align: center;\n }\n}\n\nth {\n .header-content {\n font-weight: var-list(--tct-table-header-font-weight, 400);\n }\n\n &.sorted {\n .header-content {\n font-weight: var-list(--tct-table-header-sorted-font-weight, 600);\n }\n }\n\n .sorted-indicator {\n --comp-header-sortable-icon-size: #{var-list(--tct-table-header-sortable-icon-size, --app-scale-3x, 15px)};\n --tct-icon-stroke-width: 2;\n\n width: var(--comp-header-sortable-icon-size);\n height: var(--comp-header-sortable-icon-size);\n\n &.direction-ASC {\n transform: rotate(180deg);\n }\n }\n\n q2-btn {\n .header-content {\n display: flex;\n align-items: center;\n gap: var-list(--tct-table-header-content-gap, --app-scale-2x, 10px);\n }\n }\n}\n\ntr {\n &.expandable,\n &.clickable {\n cursor: pointer;\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n }\n\n &.expandable {\n &:hover {\n background: var-list(--tct-table-expandable-row-hover-background, --t-gray-14, #f2f2f2);\n }\n }\n\n &.clickable {\n &:hover {\n background: var-list(--tct-table-clickable-row-hover-background, --t-gray-14, #f2f2f2);\n }\n }\n\n &.selected {\n background: var-list(--tct-table-selected-row-background, --t-gray-14, #f2f2f2);\n }\n\n &.expanded {\n background: var-list(--tct-table-expanded-row-background, --t-gray-14, #f2f2f2);\n\n .toggle-expandable-row {\n transform: rotate(180deg);\n }\n }\n\n :host([bordered]:not([bordered='false'])) tbody & {\n border-width: var-list(--tct-table-row-border-width, unquote('0 0 1px 0'));\n border-style: var-list(--tct-table-row-border-style, solid);\n border-color: var-list(--tct-table-row-border-color, --t-gray-9, #999999);\n }\n\n &.loading-row {\n background: var-list(--tct-table-loading-row-background, --t-base, #ffffff);\n td {\n text-align: center;\n }\n\n q2-loading {\n font-size: 4em;\n }\n }\n\n &.expandable-row {\n background: var-list(--tct-table-expanded-row-background, --t-gray-14, #f2f2f2);\n }\n}\n\ntd {\n &.clamped {\n div {\n text-overflow: ellipsis;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: var(--comp-line-clamp-count, 1);\n -webkit-box-orient: vertical;\n }\n }\n\n &.expandable-row-control-column {\n --tct-btn-icon-hover-bg: transparent;\n padding: var-list(--tct-table-expandable-row-control-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n\n &.dropdown-column {\n padding: var-list(--tct-table-dropdown-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n\n &.click-column:not(.sr) {\n padding: var-list(--tct-table-clickable-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n}\n\ncaption {\n padding: var-list(--tct-table-caption-padding, --app-scale-2x, 10px);\n font-size: var-list(--tct-table-caption-font-size, inherit);\n font-weight: var-list(--tct-table-caption-font-weight, 600);\n text-align: var-list(--tct-table-caption-text-align, center);\n color: var-list(--tct-table-caption-color, inherit);\n}\n\nq2-checkbox {\n padding: 0;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Event,\n Element,\n EventEmitter,\n Fragment,\n Listen,\n} from '@stencil/core';\nimport { loc, resizeIframe } from '../../utils';\n\nexport type Q2DataTableCellAlignOptions = 'start' | 'center' | 'end';\nexport type Q2DataTableCellType =\n | {\n type?: 'text' | 'number' | 'icon' | 'boolean' | 'code';\n }\n | {\n type?: 'badge';\n badgeStatus?: HTMLQ2BadgeElement['status'];\n badgeTheme?: HTMLQ2BadgeElement['theme'];\n };\n\nexport type Q2DataTableHeader = {\n title: string;\n align?: Q2DataTableCellAlignOptions;\n key?: string;\n sortable?: boolean;\n width?: string;\n backgroundColor?: string;\n sorted?: 'ASC' | 'DESC';\n ariaLabel?: string;\n lineClamp?: number;\n} & Partial<Q2DataTableCellType>;\n\nexport type Q2DataTableCell = {\n value: string | number | boolean;\n align?: Q2DataTableCellAlignOptions;\n ariaLabel?: string;\n lineClamp?: number;\n} & Q2DataTableCellType;\n\nexport type Q2DataTableBaseRow = {\n id: string | number;\n selected?: boolean;\n expanded?: boolean;\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@Component({\n tag: 'q2-data-table',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2DataTable implements ComponentInterface {\n @Prop({ mutable: true, reflect: true }) density: 'compact' | 'normal' | 'comfortable';\n @Prop({ mutable: true, reflect: true }) bordered: boolean;\n @Prop({ mutable: true, reflect: true }) shadowed: boolean;\n @Prop({ mutable: true, reflect: true }) selectable: boolean;\n @Prop({ mutable: true, reflect: true }) clickable: boolean;\n @Prop({ mutable: true, reflect: true }) loading: boolean;\n @Prop({ mutable: true, reflect: true }) hideCaption: boolean;\n @Prop({ mutable: true }) caption: string;\n @Prop({ mutable: true }) selectMode: 'multiple' | 'single' = 'multiple';\n @Prop({ mutable: true }) hideClickable: boolean;\n\n @Prop({ mutable: true }) headers: Q2DataTableHeader[];\n @Prop({ mutable: true }) rows: Q2DataTableRow[];\n\n @Element() hostElement: HTMLElement;\n\n @State() serializedHeaders: Q2DataTableHeader[] = [];\n @State() serializedRows: Q2DataTableSerializedRow[] = [];\n @State() hasExpandableRows: boolean = false;\n @State() hasDropdowns: boolean = false;\n @State() allRowsSelected: boolean = false;\n @State() checkSlotCount: number = 0;\n\n @Event() select: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n @Event() click: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n @Event() toggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n @Event() sort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\n\n /// LifeCycle Hooks ///\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 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 /// Getters ///\n get selectedRows() {\n return this.serializedRows.filter(({ selected }) => selected);\n }\n\n get selectedRow() {\n return this.selectedRows.find(({ selected }) => !!selected);\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 get mappedHeaders() {\n return this.serializedHeaders.reduce<Record<string, Q2DataTableHeader>>((accum, header) => {\n accum[header.key] = header;\n return accum;\n }, {});\n }\n\n /// Helpers ///\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 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, event if the slot content\n // So we increment this property to force a re-render and ensure proper rendering\n this.checkSlotCount += 1;\n };\n\n /// Watchers ///\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 };\n\n const serializedRows = rows.map(({ id, cells, selected, expanded }) => {\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 } = 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 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 return { ...defaultRow, id, selected: !!selected, expanded: !!expanded, cells: serializedCells };\n });\n\n const sortedHeader = serializedHeaders.find(({ sorted }) => sorted);\n\n this.serializedRows = !!sortedHeader ? this.sortRows(serializedRows, sortedHeader) : serializedRows;\n this.checkSlots();\n }\n\n /// Listeners ///\n @Listen('click')\n onClickListener(event: MouseEvent) {\n if (event instanceof PointerEvent) event.stopImmediatePropagation();\n }\n\n /// Event Handlers ///\n onSort = (header: Q2DataTableHeader) => {\n const direction = header.sorted === 'ASC' ? 'DESC' : 'ASC';\n const sortKey = header.key;\n const sortEvent = this.sort.emit({ header, direction });\n if (sortEvent.defaultPrevented) return;\n\n this.serializedHeaders = this.serializedHeaders.map<Q2DataTableHeader>(serializedHeader => {\n const sorted = sortKey === serializedHeader.key ? direction : undefined;\n return { ...serializedHeader, sorted };\n });\n this.serializedRows = this.sortRows(this.serializedRows, { ...header, sorted: direction });\n };\n\n onSelectAllRows = (event: CustomEvent<{ checked: boolean }>) => {\n event.stopPropagation();\n const { checked } = event.detail;\n const selectedRows = checked\n ? this.serializedRows.map(row => ({\n ...row,\n selected: checked,\n }))\n : [];\n const selectEvent = this.select.emit({ row: undefined, rows: selectedRows, allSelected: checked });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n row.selected = checked;\n return row;\n });\n this.allRowsSelected = checked;\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 selectEvent = this.select.emit({ row: selectedRow, rows: selectedRows, allSelected: allRowsSelected });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => (row.id === selectedRow.id ? selectedRow : row));\n this.allRowsSelected = allRowsSelected;\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 onClickRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n this.click.emit({ row });\n };\n\n onToggleRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const selectedRow = { ...row, expanded: !row.expanded };\n const toggleEvent = this.toggle.emit({ 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 onControlContainerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n /// DOM ///\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.renderTableRows()}\n </table>\n </div>\n );\n }\n\n renderTableColGroup() {\n const { serializedHeaders: headers, selectable, clickable, hasExpandableRows, hasDropdowns } = this;\n\n if (!headers.length) return null;\n\n return (\n <colgroup>\n {selectable && <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 </colgroup>\n );\n }\n\n renderTableHeader() {\n const {\n serializedHeaders: headers,\n selectable,\n clickable,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n } = this;\n\n if (!headers.length) return null;\n\n return (\n <thead>\n <tr>\n {selectable && (\n <th>\n {selectMode === 'multiple' && (\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectAllRows')}\n hide-label\n onChange={this.onSelectAllRows}\n checked={this.allRowsSelected}\n disabled={this.loading}\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n )}\n </th>\n )}\n {headers.map(header => {\n const { align, sorted } = header;\n const headerClasses = [];\n if (align) headerClasses.push(`align-${align}`);\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 {header.title}\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 {header.title}\n </div>\n )}\n </th>\n );\n })}\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 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 if (!rows.length) return;\n\n let isSelectDisabled = false;\n let selectedRow;\n if (selectMode === 'single') {\n selectedRow = this.selectedRow;\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 => {\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 (row.expanded) rowClasses.push('expanded');\n if (row.selected) rowClasses.push('selected');\n const rowIsClickable = clickable || rowHasExpandableSlot;\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 && (\n <td\n class=\"select-column\"\n onClick={this.onControlContainerClick}\n >\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectRow')}\n hide-label\n checked={row.selected}\n disabled={isSelectDisabled && row !== selectedRow}\n onChange={e => this.onSelectRow(e, row)}\n test-id=\"select-row-control\"\n ></q2-checkbox>\n </td>\n )}\n {headers.map(({ key }) => {\n const cell = row.cells[key];\n const lineClamp = cell?.lineClamp;\n const cellAlign = cell?.align;\n const cellClasses = [];\n if (cellAlign) cellClasses.push(`align-${cellAlign}`);\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 {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 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"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as s,g as e}from"./p-277dc8cd.js";import{j as a,o,n as r,i}from"./p-99ab3236.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}:host([hidden]){display:none}.message{border-left-width:var(--tct-message-bar-width, var(--t-message-bar-width, var(--app-scale-1x, 5px)));border-left-style:solid;--comp-line-height:var(--tct-message-line-height, var(--t-message-line-height, var(--app-line-height, 1.428571429em)));display:grid;gap:var(--tct-scale-1, var(--app-scale-1x, 5px));align-items:flex-start;background:var(--tct-message-background, var(--tct-message-bg, var(--t-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));color:var(--tct-message-font-color, var(--t-message-font-color, inherit));box-shadow:var(--tct-message-box-shadow, var(--t-message-box-shadow, inherit));border-radius:var(--tct-message-border-radius, var(--t-message-border-radius, inherit))}.message:focus{box-shadow:var(--const-global-focus)}.message-icon{--comp-top-offset:calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);--tct-icon-size:var(--comp-icon-size);top:var(--comp-top-offset);margin-bottom:calc(var(--comp-top-offset) * -1)}.message-content{flex:1;line-height:var(--comp-line-height)}::slotted(ul){padding-left:var(--tct-scale-l3, var(--app-scale-3x, 15px))}:host(:not([appearance])),:host([appearance=standard]){margin:var(--tct-scale-l3, var(--app-scale-3x, 15px)) 0}:host(:not([appearance])) .message,:host([appearance=standard]) .message{--comp-icon-size:var(--tct-message-icon-size, var(--t-message-icon-size, 24px));--comp-padding:var(--tct-message-padding, var(--t-message-padding, var(--app-scale-3x, 15px)));grid-template-columns:var(--comp-icon-size) 1fr;padding:var(--comp-padding);padding-left:calc(var(--comp-padding) - var(--tct-scale-2, var(--app-scale-2x, 10px)));padding-bottom:calc(var(--comp-padding) - var(--tct-scale-1, var(--app-scale-1x, 5px)))}:host(:not([appearance])) ::slotted(ul),:host([appearance=standard]) ::slotted(ul){margin:var(--tct-scale-l3, var(--app-scale-3x, 15px)) 0}:host([appearance=minimal]){margin:0}:host([appearance=minimal]) .message{padding:var(--tct-message-minimal-padding, var(--t-message-minimal-padding, var(--app-scale-2x, 10px)));grid-template-columns:1fr}:host([appearance=minimal]) ::slotted(ul){margin:var(--tct-scale-1, var(--app-scale-1x, 5px)) 0}:host(:not([type])) .message,:host([type=info]) .message{border-left-color:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host(:not([type])) .message-icon,:host([type=info]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1));--tct-icon-stroke-secondary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]) .message{border-left-color:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=success]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00));--tct-icon-stroke-secondary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]) .message{border-left-color:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500))}:host([type=warning]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500));--tct-icon-stroke-secondary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500))}:host([type=error]) .message,:host([type=danger]) .message{border-left-color:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000))}:host([type=error]) .message-icon,:host([type=danger]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));--tct-icon-stroke-secondary:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000))}";const c=class{constructor(s){t(this,s);this.type="info";this.appearance="standard";this.description=false;this.presentToggle=undefined}get isFirefox(){return a()}componentDidLoad(){o(this.hostElement)}async present(){const{isFirefox:t}=this;this.presentToggle=!this.presentToggle;if(!t)return;r((()=>{this.presentToggle=false}))}delegateFocus(t){if(!i(t,this.hostElement))return;this.hostElement.shadowRoot.querySelector(".message").focus()}render(){const{isFirefox:t}=this;const e=t&&this.presentToggle;const a=!t&&this.presentToggle;const{description:o}=this;return s("div",{tabindex:"-1",class:"message",role:o?undefined:"alert","aria-live":o?undefined:"assertive","aria-atomic":o?undefined:"true","aria-relevant":o?undefined:"all","test-id":"messageContainer"},this.appearance==="standard"?p(this.type):"",a&&s("div",{class:"sr"}),s("div",{class:"message-content","aria-hidden":e?"true":undefined},s("slot",null)))}get hostElement(){return e(this)}};function p(t){const e={success:"success",warning:"warning",danger:"error",error:"error",info:"info"};const a=e[t]||e.info;return s("q2-icon",{type:a,class:"message-icon"})}c.style=n;export{c as q2_message};
|
|
2
|
-
//# sourceMappingURL=p-2987498c.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","Q2Message","isFirefox","checkIfFirefox","componentDidLoad","overrideFocus","this","hostElement","async","presentToggle","nextPaint","delegateFocus","event","isEventFromElement","shadowRoot","querySelector","focus","render","addAriaHiddenForAriaLive","addDivForAriaLive","description","h","tabindex","class","role","undefined","appearance","generateIcon","type","iconMap","success","warning","danger","error","info","icon"],"sources":["./src/components/q2-message/styles.scss?tag=q2-message&encapsulation=shadow","./src/components/q2-message/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.message {\n border-left-width: #{var-list(var-prefixer(message-bar-width), --app-scale-1x, 5px)};\n border-left-style: solid;\n --comp-line-height: #{var-list(var-prefixer(message-line-height), --app-line-height, 1.428571429em)};\n display: grid;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n align-items: flex-start;\n background: var-list(\n --tct-message-background,\n var-prefixer(message-bg),\n --tct-gray-14,\n --t-gray-14,\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n color: #{var-list(var-prefixer(message-font-color), inherit)};\n box-shadow: #{var-list(var-prefixer(message-box-shadow), inherit)};\n border-radius: #{var-list(var-prefixer(message-border-radius), inherit)};\n\n &:focus {\n box-shadow: var(--const-global-focus);\n }\n}\n\n.message-icon {\n --comp-top-offset: calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);\n --tct-icon-size: var(--comp-icon-size);\n top: var(--comp-top-offset);\n margin-bottom: calc(var(--comp-top-offset) * -1);\n}\n\n.message-content {\n flex: 1;\n line-height: var(--comp-line-height);\n}\n\n::slotted(ul) {\n padding-left: var-list(--tct-scale-l3, --app-scale-3x, 15px);\n}\n\n:host(:not([appearance])),\n:host([appearance='standard']) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n\n .message {\n --comp-icon-size: #{var-list(var-prefixer(message-icon-size), 24px)};\n --comp-padding: #{var-list(var-prefixer(message-padding), --app-scale-3x, 15px)};\n grid-template-columns: var(--comp-icon-size) 1fr;\n padding: var(--comp-padding);\n padding-left: calc(var(--comp-padding) - #{var-list(--tct-scale-2, --app-scale-2x, 10px)});\n padding-bottom: calc(var(--comp-padding) - #{var-list(--tct-scale-1, --app-scale-1x, 5px)});\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n }\n}\n\n:host([appearance='minimal']) {\n margin: 0;\n\n .message {\n padding: var-list(var-prefixer(message-minimal-padding), --app-scale-2x, 10px);\n grid-template-columns: 1fr;\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-1, --app-scale-1x, 5px) 0;\n }\n}\n\n:host(:not([type])),\n:host([type='info']) {\n .message {\n border-left-color: var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n }\n}\n\n:host([type='success']) {\n .message {\n border-left-color: var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n }\n}\n\n:host([type='warning']) {\n .message {\n border-left-color: var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n }\n}\n\n:host([type='error']),\n:host([type='danger']) {\n .message {\n border-left-color: var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n }\n}\n","import { Component, Prop, h, Method, State, Element, Listen } from '@stencil/core';\nimport { isEventFromElement, isFirefox as checkIfFirefox, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-message',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Message {\n @Prop({ reflect: true }) type: 'info' | 'error' | 'danger' | 'warning' | 'success' = 'info';\n @Prop({ reflect: true }) appearance: 'minimal' | 'standard' = 'standard';\n @Prop({ reflect: true }) description: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @State() presentToggle: boolean;\n\n get isFirefox() {\n return checkIfFirefox();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n @Method()\n async present() {\n const { isFirefox } = this;\n this.presentToggle = !this.presentToggle;\n if (!isFirefox) return;\n nextPaint(() => {\n this.presentToggle = false;\n });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector<HTMLElement>('.message').focus();\n }\n\n render() {\n const { isFirefox } = this;\n const addAriaHiddenForAriaLive = isFirefox && this.presentToggle;\n const addDivForAriaLive = !isFirefox && this.presentToggle;\n const { description } = this;\n return (\n <div\n tabindex=\"-1\"\n class=\"message\"\n role={description ? undefined : 'alert'}\n aria-live={description ? undefined : 'assertive'}\n aria-atomic={description ? undefined : 'true'}\n aria-relevant={description ? undefined : 'all'}\n test-id=\"messageContainer\"\n >\n {this.appearance === 'standard' ? generateIcon(this.type) : ''}\n {addDivForAriaLive && <div class=\"sr\"></div>}\n <div\n class=\"message-content\"\n aria-hidden={addAriaHiddenForAriaLive ? 'true' : undefined}\n >\n <slot />\n </div>\n </div>\n );\n }\n}\n\nfunction generateIcon(type: string) {\n const iconMap = {\n success: 'success',\n warning: 'warning',\n danger: 'error',\n error: 'error',\n info: 'info',\n };\n\n const icon: string = iconMap[type] || iconMap.info;\n\n return (\n <q2-icon\n type={icon}\n class=\"message-icon\"\n />\n );\n}\n"],"mappings":"iGAAA,MAAMA,EAAY,+yI,MCQLC,EAAS,M,mCACmE,O,gBACvB,W,iBACd,M,6BAM5CC,gBACA,OAAOC,G,CAGXC,mBACIC,EAAcC,KAAKC,Y,CAIvBC,gBACI,MAAMN,UAAEA,GAAcI,KACtBA,KAAKG,eAAiBH,KAAKG,cAC3B,IAAKP,EAAW,OAChBQ,GAAU,KACNJ,KAAKG,cAAgB,KAAK,G,CAKlCE,cAAcC,GACV,IAAKC,EAAmBD,EAAON,KAAKC,aAAc,OAClDD,KAAKC,YAAYO,WAAWC,cAA2B,YAAYC,O,CAGvEC,SACI,MAAMf,UAAEA,GAAcI,KACtB,MAAMY,EAA2BhB,GAAaI,KAAKG,cACnD,MAAMU,GAAqBjB,GAAaI,KAAKG,cAC7C,MAAMW,YAAEA,GAAgBd,KACxB,OACIe,EAAA,OACIC,SAAS,KACTC,MAAM,UACNC,KAAMJ,EAAcK,UAAY,QAAO,YAC5BL,EAAcK,UAAY,YAAW,cACnCL,EAAcK,UAAY,OAAM,gBAC9BL,EAAcK,UAAY,MAAK,UACtC,oBAEPnB,KAAKoB,aAAe,WAAaC,EAAarB,KAAKsB,MAAQ,GAC3DT,GAAqBE,EAAA,OAAKE,MAAM,OACjCF,EAAA,OACIE,MAAM,kBAAiB,cACVL,EAA2B,OAASO,WAEjDJ,EAAA,c,oCAOpB,SAASM,EAAaC,GAClB,MAAMC,EAAU,CACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,QACRC,MAAO,QACPC,KAAM,QAGV,MAAMC,EAAeN,EAAQD,IAASC,EAAQK,KAE9C,OACIb,EAAA,WACIO,KAAMO,EACNZ,MAAM,gBAGlB,C"}
|