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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-select/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n State,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n} from '@stencil/core';\nimport { IEventDetail, Q2InputCustomEvent, Q2OptionListCustomEvent } from 'src/components';\nimport {\n handleAriaLabel,\n isEventFromElement,\n isHostLosingFocus,\n isRelatedTargetWithinHost,\n loc,\n overrideFocus,\n} from '../../utils';\nimport { IOptionValue } from '../q2-option-list';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n@Component({\n tag: 'q2-select',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Select implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ mutable: true }) value: string;\n @Prop({ mutable: true }) selectedOptions: string[] = [];\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) invalid: boolean;\n @Prop() listLabel: string = loc('tecton.element.select.listLabel');\n @Prop() errors: string[];\n @Prop({ reflect: true }) multiple: boolean = false;\n @Prop() minRows: number = 3;\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n @Prop({ reflect: true }) searchable: boolean = false;\n @Prop({ reflect: true }) multilineOptions: boolean = false;\n @Prop({ reflect: true }) optional: boolean = false;\n @Prop({ reflect: true }) placeholder: string;\n @Prop() hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n\n @State() open: boolean = false;\n @State() showSelected: boolean = false;\n @State() searchText: string = '';\n @State() hasCustomDisplay: boolean = false;\n @State() inputFocused: boolean = false;\n @State() statusMessage: string;\n @State() prioritizeSearch: boolean = false;\n @State() structuredSelectedOptions: IOptionValue[] = [];\n\n inputField?: HTMLQ2InputElement;\n optionList: HTMLQ2OptionListElement;\n popoverElement?: HTMLQ2PopoverElement;\n multiSelectHeader?: HTMLDivElement;\n scheduledAfterRender: (() => void)[] = [];\n mutationObserver: MutationObserver;\n\n /// Lifecycle Hooks ///\n componentWillLoad() {\n handleAriaLabel(this);\n this.buildStructuredSelectedOptions();\n this.handleMultilineOptionsUpdate(this.multilineOptions, false);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n overrideFocus(this.hostElement);\n setTimeout(() => this.checkSelectedDisplay(), 0);\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n /// Getters ///\n get innerInputField(): HTMLElement {\n return this.inputField?.shadowRoot?.querySelector('.input-field');\n }\n\n get badgeValue(): string {\n if (!this.multiple) return null;\n const optionsLength = this.selectedOptions?.length ?? 0;\n if (this.open && this.searchable) return optionsLength ? `${optionsLength}` : null;\n else return optionsLength > 1 ? `+${optionsLength - 1}` : null;\n }\n\n get popoverMinHeight() {\n const { minRows } = this;\n const firstOption = this.hostElement.querySelector<HTMLQ2OptionElement>('q2-option:not([hidden])');\n let minHeight = firstOption && window.getComputedStyle(firstOption).minHeight;\n\n // Safari doesn't return a min-height for non-visible items\n if (!minHeight || minHeight === '0px') minHeight = '44px';\n\n return minRows * parseInt(minHeight);\n }\n\n get selectedDisplay() {\n if (this.prioritizeSearch || this.searchText) return this.searchText;\n if (this.hasCustomDisplay) return '';\n return this.multiple ? this.calculateMultiSelectSelectedDisplay() : this.calculateSingleSelectSelectedDisplay();\n }\n\n get selectedDisplaySlot() {\n return this.hostElement.querySelector<HTMLElement>('[slot=\"_selected-display\"]');\n }\n\n get firstSelectedValue() {\n return this.multiple ? this.selectedOptions?.[0] : this.value;\n }\n\n get firstSelectedOptionElement() {\n const { firstSelectedValue } = this;\n return firstSelectedValue ? this.optionElements.find(({ value }) => value === firstSelectedValue) : null;\n }\n\n get optionElements() {\n return Array.from(this.hostElement.querySelectorAll<HTMLQ2OptionElement>('q2-option'));\n }\n\n get wrapperClasses() {\n const { errors } = this;\n const classes = ['q2-select-container'];\n if (Array.isArray(errors) && errors.length > 0) classes.push('has-error');\n if (this.inputFocused) classes.push('is-focused');\n if (this.searchable) classes.push('is-searchable');\n return classes.join(' ');\n }\n\n /// Watchers ///\n @Watch('value')\n @Watch('selectedOptions')\n buildStructuredSelectedOptions() {\n const { multiple, selectedOptions, value } = this;\n if (multiple) {\n this.structuredSelectedOptions = !!selectedOptions?.length\n ? selectedOptions.map(option => (typeof option === 'string' ? { value: option } : option))\n : [];\n } else {\n this.structuredSelectedOptions = value ? [{ value }] : [];\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueUpdated() {\n if (this.multiple) return;\n this.clearSearchText();\n }\n\n @Watch('multilineOptions')\n handleMultilineOptionsUpdate(newValue, oldValue) {\n if (newValue === oldValue) return;\n this.optionElements.forEach(element => (element.multiline = newValue));\n }\n\n @Watch('open')\n openChanged(isOpen) {\n this.scheduledAfterRender.push(() => {\n const { multiple, multiSelectHeader, popoverElement } = this;\n const height = (isOpen && multiple && multiSelectHeader?.offsetHeight) || 0;\n if (height) {\n popoverElement.style.setProperty('--comp-multi-select-header-height', `${height}px`);\n } else {\n popoverElement.style.removeProperty('--comp-multi-select-header-height');\n }\n });\n }\n\n /// Events ///\n @Event() change: EventEmitter<{ value: string; selectedOptions: string[] }>;\n @Event() input: EventEmitter;\n\n /// Listeners ///\n @Listen('keydown')\n keydownHandler(event: KeyboardEvent) {\n this.inputKeydownHandler(event);\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent<{ value: string; selectedOptions: string[] }>) {\n if (this.readonly || this.disabled) return;\n if (event.target !== this.hostElement || this.hostElement.onchange) return;\n if (this.multiple) {\n this.value = null;\n this.selectedOptions = event.detail.selectedOptions;\n } else {\n this.value = event.detail.value;\n this.selectedOptions = [];\n }\n }\n\n @Listen('input')\n onHostElementInput(event: CustomEvent) {\n if (!this.searchable || event.target !== this.hostElement || this.hostElement.oninput) return;\n const options = this.optionElements;\n const query = this.searchText.trim().toLocaleLowerCase();\n let matchedCount = 0;\n options.forEach(option => {\n if (query === '') {\n option.hidden = false;\n return;\n }\n\n const title =\n option.firstElementChild?.tagName === 'Q2-CARD'\n ? (option.firstElementChild as HTMLQ2CardElement).title\n : null;\n const { display = '', innerText = '' } = option;\n const searchParams = [display, title, innerText];\n const matched = searchParams.some(text => text?.toLocaleLowerCase().includes(query) ?? false);\n\n option.hidden = !matched;\n if (matched) matchedCount++;\n });\n\n const statusMessageLocString = query\n ? 'tecton.element.select.searchable.results'\n : 'tecton.element.select.allOptions';\n const count = query ? matchedCount : options.length;\n this.setStatusMessage(loc(statusMessageLocString, [count]));\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n const fromHost = isRelatedTargetWithinHost(event, this.hostElement);\n const prioritizeSearch = (this.prioritizeSearch = fromHost && this.searchable);\n if (prioritizeSearch) {\n this.clearSelectedDisplay();\n } else if (isEventFromElement(event, this.hostElement)) {\n this.inputField.shadowRoot.querySelector<HTMLElement>('.input-field').focus();\n }\n }\n\n @Listen('focusout')\n handleFocusout(event: FocusEvent) {\n const isLeavingHost = isHostLosingFocus(event, this.hostElement);\n if (isLeavingHost) this.closeDropdown();\n this.prioritizeSearch = !isLeavingHost && this.searchable;\n }\n\n @Listen('displayChanged')\n handleSelectedDisplay(event: CustomEvent) {\n if (this.multiple) return;\n this.inputField.value = event.detail.display;\n }\n\n /// Helpers ///\n async executeActionSheet(event: MouseEvent | KeyboardEvent) {\n const result = await showActionSheetList(this, event);\n this.handleSelectionChanges(result);\n }\n\n handleSelectionChanges(changeDetails: { value?: string; values?: IOptionValue[] }) {\n const { value = '', values = [] } = changeDetails;\n const selectedOptionValues = values.map(value => value.value);\n const { multiple } = this;\n if (!this.hostElement.onchange) {\n this.selectedOptions = selectedOptionValues;\n }\n\n this.change.emit({\n value: multiple ? undefined : value,\n selectedOptions: multiple ? selectedOptionValues : undefined,\n });\n }\n\n showSelectedOptions = () => {\n this.showSelected = true;\n };\n\n showAllOptions = () => {\n this.showSelected = false;\n };\n\n clearValue() {\n const { multiple } = this;\n this.value = '';\n this.selectedOptions = [];\n this.change.emit({ value: multiple ? undefined : '', selectedOptions: multiple ? [] : undefined });\n }\n\n calculateMultiSelectSelectedDisplay() {\n const { firstSelectedOptionElement, firstSelectedValue, multilineOptions } = this;\n if (!firstSelectedValue) return '';\n if (firstSelectedOptionElement?.display) return loc(firstSelectedOptionElement.display);\n if (multilineOptions && this.searchable) return this.searchText;\n if (multilineOptions) return '';\n return (\n firstSelectedOptionElement?.textContent?.trim() ?? firstSelectedOptionElement?.value ?? firstSelectedValue\n );\n }\n\n calculateSingleSelectSelectedDisplay() {\n const { firstSelectedOptionElement, multilineOptions } = this;\n if (multilineOptions) {\n return (firstSelectedOptionElement?.display && loc(firstSelectedOptionElement.display)) || this.value || '';\n } else {\n return (\n (firstSelectedOptionElement?.display && loc(firstSelectedOptionElement.display)) ||\n firstSelectedOptionElement?.textContent?.trim() ||\n this.value ||\n ''\n );\n }\n }\n\n onMutationObserved = () => {\n const slotContainer = this.hostElement.querySelector('.custom-display-content');\n const displaySlot = this.hostElement.shadowRoot.querySelector<HTMLSlotElement>(\n 'slot[name=\"q2-select-display\"]'\n );\n const hasCustomDisplay = !!displaySlot\n ? displaySlot.assignedNodes().length > 0\n : slotContainer.children.length > 0;\n\n if (this.hasCustomDisplay !== hasCustomDisplay) {\n this.hasCustomDisplay = hasCustomDisplay;\n }\n };\n\n onOptionListChange = (event: Q2OptionListCustomEvent<{ value: string; values: IOptionValue[] }>) => {\n event.stopPropagation();\n const { values } = event.detail;\n\n if (values.length === 0) this.showAllOptions();\n this.handleSelectionChanges(event.detail);\n };\n\n openDropdownWithoutActiveElement() {\n if (this.readonly || this.disabled) return;\n this.optionList.setActiveElement(null);\n this.open = true;\n }\n\n closeDropdown() {\n this.open = false;\n this.clearSearchText();\n }\n\n clearSearchText() {\n if (!this.searchText) return;\n this.searchText = '';\n this.input.emit({ query: '' });\n }\n\n toggleDropdown() {\n if (this.readonly || this.disabled) return;\n\n if (this.open && !this.searchText) {\n this.closeDropdown();\n } else {\n this.openDropdownWithoutActiveElement();\n }\n }\n\n focusInput() {\n this.inputField?.dispatchEvent(new FocusEvent('focus'));\n }\n\n statusMessageTimer: NodeJS.Timeout;\n setStatusMessage(message) {\n clearTimeout(this.statusMessageTimer);\n this.statusMessage = '';\n this.statusMessageTimer = setTimeout(() => {\n this.statusMessage = message;\n }, 1000);\n }\n\n clearSelectedDisplay() {\n this.selectedDisplaySlot?.remove();\n }\n\n checkSelectedDisplay() {\n let namedSlot = this.selectedDisplaySlot;\n const { value, multiple, selectedOptions, multilineOptions, firstSelectedOptionElement, prioritizeSearch } =\n this;\n const hasNoValue = !value && multiple && !selectedOptions?.length;\n if (prioritizeSearch || !multilineOptions || hasNoValue) return this.clearSelectedDisplay();\n\n if (!firstSelectedOptionElement || firstSelectedOptionElement.display) return this.clearSelectedDisplay();\n\n // Clone selected option and remove elements with hide-on-select attribute\n const selectionClone = firstSelectedOptionElement.firstElementChild.cloneNode(true) as HTMLElement;\n selectionClone.querySelectorAll('[hide-on-select]').forEach(element => element.remove());\n\n if (namedSlot) {\n const height = namedSlot.clientHeight === 0 ? 'auto' : `${namedSlot.clientHeight}px`;\n namedSlot.style.setProperty('--comp-selected-display-height', height);\n if (namedSlot.firstElementChild.outerHTML !== selectionClone.outerHTML) {\n namedSlot.replaceChild(selectionClone, namedSlot.firstElementChild);\n }\n } else {\n namedSlot = document.createElement('div');\n namedSlot.slot = '_selected-display';\n namedSlot.appendChild(selectionClone);\n this.hostElement.appendChild(namedSlot);\n }\n return namedSlot;\n }\n\n checkSelectedDisplayHeight() {\n const { selectedDisplaySlot } = this;\n if (!selectedDisplaySlot) return;\n selectedDisplaySlot.style.setProperty('--comp-selected-display-height', '44px');\n }\n\n /// Event handlers ///\n popoverStateChanged = ({ detail: { open } }: CustomEvent<{ open: boolean }>) => {\n if (this.open === open) return;\n this.open = open;\n if (open && !this.searchText) return;\n this.optionList.setActiveElement(null);\n this.inputField.focus();\n };\n\n inputKeydownHandler = (event: KeyboardEvent) => {\n if (this.readonly || this.disabled) return;\n const keysForOptionListToHandle = [\n 'ArrowDown',\n 'ArrowUp',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n 'Escape',\n 'Tab',\n ];\n if (shouldShowActionSheet(this, event)) {\n return this.executeActionSheet(event);\n }\n if (this.searchable && !keysForOptionListToHandle.includes(event.key)) return;\n if (this.shouldClearSearchText(event)) this.clearSearchText();\n\n // Prevent click event from firing when spacebar is pressed\n if (event.key === ' ') event.preventDefault();\n\n this.optionList.handleExternalKeydown(event);\n };\n\n shouldClearSearchText(event: KeyboardEvent) {\n return this.searchable && !!this.searchText && event.key === 'Escape';\n }\n\n visibilityToggleKeyDown = (event: KeyboardEvent) => {\n const key = event.key;\n const isShiftTab = key === 'Tab' && event.shiftKey;\n const isRadioControlKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key);\n if (isRadioControlKey) event.stopPropagation();\n if (isShiftTab) {\n event.stopPropagation();\n this.optionList.setDefaultActiveElement();\n }\n };\n\n inputClickHandler = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n return this.executeActionSheet(event);\n }\n this.toggleDropdown();\n this.focusInput();\n };\n\n inputInputHandler = (event: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n event.stopPropagation();\n const inputValue = this.inputField.value;\n const eventValue = event.detail.value;\n const didChangeText = inputValue !== eventValue;\n const shouldClearValue = !!this.value && didChangeText;\n\n if (shouldClearValue) this.clearValue();\n if (!this.open) this.openDropdownWithoutActiveElement();\n\n this.prioritizeSearch = true;\n this.searchText = eventValue;\n this.input.emit({ query: eventValue });\n };\n\n inputFocusHandler = () => {\n this.inputFocused = true;\n };\n\n inputBlurHandler = () => {\n this.inputFocused = false;\n };\n\n inputChangeHandler = (event: Event) => {\n event.stopPropagation();\n };\n\n clickedElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName !== 'click-elsewhere') return;\n event.stopPropagation();\n if (!this.open) return;\n this.closeDropdown();\n };\n\n onCustomDisplayClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.focusInput();\n this.toggleDropdown();\n };\n\n /// DOM ///\n renderCustomDisplay() {\n const hasSelectedDisplay = this.checkSelectedDisplay();\n if (!hasSelectedDisplay) return;\n this.checkSelectedDisplayHeight();\n\n return (\n <slot\n name=\"_selected-display\"\n slot=\"custom-display\"\n />\n );\n }\n\n render() {\n const showAsPseudo = !this.searchable;\n\n return (\n <click-elsewhere\n class={this.wrapperClasses}\n onChange={this.clickedElsewhere}\n >\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n role=\"status\"\n class=\"sr\"\n >\n {this.statusMessage}\n </div>\n <q2-input\n ref={el => (this.inputField = el)}\n class=\"q2-select-input\"\n label={(this.label && loc(this.label)) || ''}\n value={this.selectedDisplay}\n errors={\n (Array.isArray(this.errors) &&\n this.errors.length > 0 &&\n this.errors.map(error => loc(error))) ||\n (this.invalid && ['tecton.element.select.invalid']) ||\n []\n }\n disabled={this.disabled}\n optional={this.optional}\n readonly={this.readonly}\n placeholder={this.placeholder || undefined}\n hideLabel={this.hideLabel}\n ariaExpanded={`${this.open}`}\n ariaControls=\"option-list\"\n ariaHaspopup=\"listbox\"\n role=\"combobox\"\n pseudo={showAsPseudo}\n test-id=\"toggleDropdown\"\n hide-messages\n iconRight=\"chevron-down\"\n onClick={this.inputClickHandler}\n onInput={this.inputInputHandler}\n onKeyDown={this.inputKeydownHandler}\n onFocus={this.inputFocusHandler}\n onBlur={this.inputBlurHandler}\n onChange={this.inputChangeHandler}\n badgeValue={this.badgeValue}\n badgeTheme={this.inputFocused ? 'primary' : undefined}\n >\n {this.renderCustomDisplay()}\n </q2-input>\n <div\n class=\"custom-display-content\"\n hidden={!this.hasCustomDisplay || !!this.searchText}\n onClick={this.onCustomDisplayClick}\n >\n <slot name=\"q2-select-display\" />\n </div>\n {this.optionsDropdown()}\n </click-elsewhere>\n );\n }\n\n optionsDropdown() {\n return (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.innerInputField}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popDirection}\n onPopoverStateChanged={this.popoverStateChanged}\n block\n >\n <div\n class=\"popover-content\"\n tabindex=\"-1\"\n >\n <q2-option-list\n ref={el => (this.optionList = el)}\n type=\"listbox\"\n id=\"option-list\"\n show-selected={this.showSelected}\n aria-label={this.listLabel}\n multiple={this.multiple}\n selectedOptions={this.structuredSelectedOptions}\n onChange={this.onOptionListChange}\n >\n <slot />\n </q2-option-list>\n {this.multiple && this.visibilityToggle()}\n </div>\n </q2-popover>\n );\n }\n\n visibilityToggle() {\n const selectedOptionsCount = this.selectedOptions?.length ?? 0;\n const { showSelected } = this;\n return (\n <div\n class=\"multi-select-header\"\n ref={el => (this.multiSelectHeader = el)}\n >\n <fieldset>\n <legend aria-label={loc('tecton.element.select.multiHeader.showing')}>\n {loc('tecton.element.select.multiHeader.showing')}\n </legend>\n <div>\n <input\n class=\"sr\"\n type=\"radio\"\n id=\"all\"\n name=\"viewDisplay\"\n value=\"all\"\n checked={!showSelected}\n aria-label={loc('tecton.element.select.multiHeader.allAriaLabel')}\n test-id=\"allOptionsButton\"\n onClick={this.showAllOptions}\n onKeyDown={this.visibilityToggleKeyDown}\n />\n <label htmlFor=\"all\">{loc('tecton.element.select.multiHeader.all')}</label>\n </div>\n\n <div>\n <input\n class=\"sr\"\n type=\"radio\"\n id=\"selected\"\n disabled={selectedOptionsCount === 0}\n name=\"viewDisplay\"\n value=\"selected\"\n aria-label={loc('tecton.element.select.multiHeader.selectedAriaLabel', [\n selectedOptionsCount,\n ])}\n checked={showSelected}\n test-id=\"selectedOptionsButton\"\n onClick={this.showSelectedOptions}\n onKeyDown={this.visibilityToggleKeyDown}\n />\n <label htmlFor=\"selected\">\n {loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount])}\n </label>\n </div>\n </fieldset>\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-select/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n State,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n Method,\n} from '@stencil/core';\nimport { IEventDetail, Q2InputCustomEvent, Q2OptionListCustomEvent } from 'src/components';\nimport {\n handleAriaLabel,\n isEventFromElement,\n isHostLosingFocus,\n isRelatedTargetWithinHost,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from '../../utils';\nimport { IOptionValue } from '../q2-option-list';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n@Component({\n tag: 'q2-select',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Select implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ mutable: true }) value: string;\n @Prop({ mutable: true }) selectedOptions: string[] = [];\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) invalid: boolean;\n @Prop() listLabel: string = loc('tecton.element.select.listLabel');\n @Prop() errors: string[];\n @Prop({ reflect: true }) multiple: boolean = false;\n @Prop() minRows: number = 3;\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n @Prop({ reflect: true }) searchable: boolean = false;\n @Prop({ reflect: true }) multilineOptions: boolean = false;\n @Prop({ reflect: true }) optional: boolean = false;\n @Prop({ reflect: true }) placeholder: string;\n @Prop() hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n\n @State() open: boolean = false;\n @State() showSelected: boolean = false;\n @State() searchText: string = '';\n @State() hasCustomDisplay: boolean = false;\n @State() inputFocused: boolean = false;\n @State() statusMessage: string;\n @State() prioritizeSearch: boolean = false;\n @State() structuredSelectedOptions: IOptionValue[] = [];\n\n inputField?: HTMLQ2InputElement;\n optionList: HTMLQ2OptionListElement;\n popoverElement?: HTMLQ2PopoverElement;\n multiSelectHeader?: HTMLDivElement;\n scheduledAfterRender: (() => void)[] = [];\n mutationObserver: MutationObserver;\n\n /// Lifecycle Hooks ///\n componentWillLoad() {\n handleAriaLabel(this);\n this.buildStructuredSelectedOptions();\n this.handleMultilineOptionsUpdate(this.multilineOptions, false);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n overrideFocus(this.hostElement);\n setTimeout(() => this.checkSelectedDisplay(), 0);\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n /// Getters ///\n get innerInputField(): HTMLInputElement | HTMLButtonElement {\n return this.inputField?.shadowRoot?.querySelector('.input-field');\n }\n\n get badgeValue(): string {\n if (!this.multiple) return null;\n const optionsLength = this.selectedOptions?.length ?? 0;\n if (this.open && this.searchable) return optionsLength ? `${optionsLength}` : null;\n else return optionsLength > 1 ? `+${optionsLength - 1}` : null;\n }\n\n get popoverMinHeight() {\n const { minRows } = this;\n const firstOption = this.hostElement.querySelector<HTMLQ2OptionElement>('q2-option:not([hidden])');\n let minHeight = firstOption && window.getComputedStyle(firstOption).minHeight;\n\n // Safari doesn't return a min-height for non-visible items\n if (!minHeight || minHeight === '0px') minHeight = '44px';\n\n return minRows * parseInt(minHeight);\n }\n\n get selectedDisplay() {\n if (this.prioritizeSearch || this.searchText) return this.searchText;\n if (this.hasCustomDisplay) return '';\n return this.multiple ? this.calculateMultiSelectSelectedDisplay() : this.calculateSingleSelectSelectedDisplay();\n }\n\n get selectedDisplaySlot() {\n return this.hostElement.querySelector<HTMLElement>('[slot=\"_selected-display\"]');\n }\n\n get firstSelectedValue() {\n return this.multiple ? this.selectedOptions?.[0] : this.value;\n }\n\n get firstSelectedOptionElement() {\n const { firstSelectedValue } = this;\n return firstSelectedValue ? this.optionElements.find(({ value }) => value === firstSelectedValue) : null;\n }\n\n get optionElements() {\n return Array.from(this.hostElement.querySelectorAll<HTMLQ2OptionElement>('q2-option'));\n }\n\n get wrapperClasses() {\n const { errors } = this;\n const classes = ['q2-select-container'];\n if (Array.isArray(errors) && errors.length > 0) classes.push('has-error');\n if (this.inputFocused) classes.push('is-focused');\n if (this.searchable) classes.push('is-searchable');\n return classes.join(' ');\n }\n\n /// Watchers ///\n @Watch('value')\n @Watch('selectedOptions')\n buildStructuredSelectedOptions() {\n const { multiple, selectedOptions, value } = this;\n if (multiple) {\n this.structuredSelectedOptions = !!selectedOptions?.length\n ? selectedOptions.map(option => (typeof option === 'string' ? { value: option } : option))\n : [];\n } else {\n this.structuredSelectedOptions = value ? [{ value }] : [];\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueUpdated() {\n if (this.multiple) return;\n this.clearSearchText();\n }\n\n @Watch('multilineOptions')\n handleMultilineOptionsUpdate(newValue, oldValue) {\n if (newValue === oldValue) return;\n this.optionElements.forEach(element => (element.multiline = newValue));\n }\n\n @Watch('open')\n openChanged(isOpen) {\n this.scheduledAfterRender.push(() => {\n const { multiple, multiSelectHeader, popoverElement } = this;\n const height = (isOpen && multiple && multiSelectHeader?.offsetHeight) || 0;\n if (height) {\n popoverElement.style.setProperty('--comp-multi-select-header-height', `${height}px`);\n } else {\n popoverElement.style.removeProperty('--comp-multi-select-header-height');\n }\n });\n }\n\n /// Events ///\n @Event() change: EventEmitter<{ value: string; selectedOptions: string[] }>;\n @Event() input: EventEmitter;\n\n /// Methods ///\n _togglePopover() {\n const { innerInputField } = this;\n innerInputField?.click();\n innerInputField?.focus();\n innerInputField.dispatchEvent(new FocusEvent('focus'));\n }\n\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n @Method()\n async setValue(values: string | string[], options: { closePopover?: boolean } = { closePopover: true }) {\n const valuesSet = new Set(Array.isArray(values) ? values : [values]);\n if (!this.open) {\n await this.openPopover();\n await waitForNextPaint();\n }\n\n valuesSet.forEach(value => {\n this.optionElements.find(option => option.value === value)?.click();\n });\n\n if (options.closePopover) {\n await this.closePopover();\n await waitForNextPaint();\n }\n }\n\n @Method()\n searchOptions(query: string) {\n if (!this.searchable) return;\n\n const { innerInputField } = this;\n innerInputField.focus();\n innerInputField.dispatchEvent(new FocusEvent('focus'));\n innerInputField.value = query;\n innerInputField.dispatchEvent(new InputEvent('input'));\n }\n\n /// Listeners ///\n @Listen('keydown')\n keydownHandler(event: KeyboardEvent) {\n this.inputKeydownHandler(event);\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent<{ value: string; selectedOptions: string[] }>) {\n if (this.readonly || this.disabled) return;\n if (event.target !== this.hostElement || this.hostElement.onchange) return;\n if (this.multiple) {\n this.value = null;\n this.selectedOptions = event.detail.selectedOptions;\n } else {\n this.value = event.detail.value;\n this.selectedOptions = [];\n }\n }\n\n @Listen('input')\n onHostElementInput(event: CustomEvent) {\n if (!this.searchable || event.target !== this.hostElement || this.hostElement.oninput) return;\n const options = this.optionElements;\n const query = this.searchText.trim().toLocaleLowerCase();\n let matchedCount = 0;\n options.forEach(option => {\n if (query === '') {\n option.hidden = false;\n return;\n }\n\n const title =\n option.firstElementChild?.tagName === 'Q2-CARD'\n ? (option.firstElementChild as HTMLQ2CardElement).title\n : null;\n const { display = '', innerText = '' } = option;\n const searchParams = [display, title, innerText];\n const matched = searchParams.some(text => text?.toLocaleLowerCase().includes(query) ?? false);\n\n option.hidden = !matched;\n if (matched) matchedCount++;\n });\n\n const statusMessageLocString = query\n ? 'tecton.element.select.searchable.results'\n : 'tecton.element.select.allOptions';\n const count = query ? matchedCount : options.length;\n this.setStatusMessage(loc(statusMessageLocString, [count]));\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n const fromHost = isRelatedTargetWithinHost(event, this.hostElement);\n const prioritizeSearch = (this.prioritizeSearch = fromHost && this.searchable);\n if (prioritizeSearch) {\n this.clearSelectedDisplay();\n } else if (isEventFromElement(event, this.hostElement)) {\n this.inputField.shadowRoot.querySelector<HTMLElement>('.input-field').focus();\n }\n }\n\n @Listen('focusout')\n handleFocusout(event: FocusEvent) {\n const isLeavingHost = isHostLosingFocus(event, this.hostElement);\n if (isLeavingHost) this.closeDropdown();\n this.prioritizeSearch = !isLeavingHost && this.searchable;\n }\n\n @Listen('displayChanged')\n handleSelectedDisplay(event: CustomEvent) {\n if (this.multiple) return;\n this.inputField.value = event.detail.display;\n }\n\n /// Helpers ///\n async executeActionSheet(event: MouseEvent | KeyboardEvent) {\n const result = await showActionSheetList(this, event);\n this.handleSelectionChanges(result);\n }\n\n handleSelectionChanges(changeDetails: { value?: string; values?: IOptionValue[] }) {\n const { value = '', values = [] } = changeDetails;\n const selectedOptionValues = values.map(value => value.value);\n const { multiple } = this;\n if (!this.hostElement.onchange) {\n this.selectedOptions = selectedOptionValues;\n }\n\n this.change.emit({\n value: multiple ? undefined : value,\n selectedOptions: multiple ? selectedOptionValues : undefined,\n });\n }\n\n showSelectedOptions = () => {\n this.showSelected = true;\n };\n\n showAllOptions = () => {\n this.showSelected = false;\n };\n\n clearValue() {\n const { multiple } = this;\n this.value = '';\n this.selectedOptions = [];\n this.change.emit({ value: multiple ? undefined : '', selectedOptions: multiple ? [] : undefined });\n }\n\n calculateMultiSelectSelectedDisplay() {\n const { firstSelectedOptionElement, firstSelectedValue, multilineOptions } = this;\n if (!firstSelectedValue) return '';\n if (firstSelectedOptionElement?.display) return loc(firstSelectedOptionElement.display);\n if (multilineOptions && this.searchable) return this.searchText;\n if (multilineOptions) return '';\n return (\n firstSelectedOptionElement?.textContent?.trim() ?? firstSelectedOptionElement?.value ?? firstSelectedValue\n );\n }\n\n calculateSingleSelectSelectedDisplay() {\n const { firstSelectedOptionElement, multilineOptions } = this;\n if (multilineOptions) {\n return (firstSelectedOptionElement?.display && loc(firstSelectedOptionElement.display)) || this.value || '';\n } else {\n return (\n (firstSelectedOptionElement?.display && loc(firstSelectedOptionElement.display)) ||\n firstSelectedOptionElement?.textContent?.trim() ||\n this.value ||\n ''\n );\n }\n }\n\n onMutationObserved = () => {\n const slotContainer = this.hostElement.querySelector('.custom-display-content');\n const displaySlot = this.hostElement.shadowRoot.querySelector<HTMLSlotElement>(\n 'slot[name=\"q2-select-display\"]'\n );\n const hasCustomDisplay = !!displaySlot\n ? displaySlot.assignedNodes().length > 0\n : slotContainer.children.length > 0;\n\n if (this.hasCustomDisplay !== hasCustomDisplay) {\n this.hasCustomDisplay = hasCustomDisplay;\n }\n };\n\n onOptionListChange = (event: Q2OptionListCustomEvent<{ value: string; values: IOptionValue[] }>) => {\n event.stopPropagation();\n const { values } = event.detail;\n\n if (values.length === 0) this.showAllOptions();\n this.handleSelectionChanges(event.detail);\n };\n\n openDropdownWithoutActiveElement() {\n if (this.readonly || this.disabled) return;\n this.optionList.setActiveElement(null);\n this.open = true;\n }\n\n closeDropdown() {\n this.open = false;\n this.clearSearchText();\n }\n\n clearSearchText() {\n if (!this.searchText) return;\n this.searchText = '';\n this.input.emit({ query: '' });\n }\n\n toggleDropdown() {\n if (this.readonly || this.disabled) return;\n\n if (this.open && !this.searchText) {\n this.closeDropdown();\n } else {\n this.openDropdownWithoutActiveElement();\n }\n }\n\n focusInput() {\n this.inputField?.dispatchEvent(new FocusEvent('focus'));\n }\n\n statusMessageTimer: NodeJS.Timeout;\n setStatusMessage(message) {\n clearTimeout(this.statusMessageTimer);\n this.statusMessage = '';\n this.statusMessageTimer = setTimeout(() => {\n this.statusMessage = message;\n }, 1000);\n }\n\n clearSelectedDisplay() {\n this.selectedDisplaySlot?.remove();\n }\n\n checkSelectedDisplay() {\n let namedSlot = this.selectedDisplaySlot;\n const { value, multiple, selectedOptions, multilineOptions, firstSelectedOptionElement, prioritizeSearch } =\n this;\n const hasNoValue = !value && multiple && !selectedOptions?.length;\n if (prioritizeSearch || !multilineOptions || hasNoValue) return this.clearSelectedDisplay();\n\n if (!firstSelectedOptionElement || firstSelectedOptionElement.display) return this.clearSelectedDisplay();\n\n // Clone selected option and remove elements with hide-on-select attribute\n const selectionClone = firstSelectedOptionElement.firstElementChild.cloneNode(true) as HTMLElement;\n selectionClone.querySelectorAll('[hide-on-select]').forEach(element => element.remove());\n\n if (namedSlot) {\n const height = namedSlot.clientHeight === 0 ? 'auto' : `${namedSlot.clientHeight}px`;\n namedSlot.style.setProperty('--comp-selected-display-height', height);\n if (namedSlot.firstElementChild.outerHTML !== selectionClone.outerHTML) {\n namedSlot.replaceChild(selectionClone, namedSlot.firstElementChild);\n }\n } else {\n namedSlot = document.createElement('div');\n namedSlot.slot = '_selected-display';\n namedSlot.appendChild(selectionClone);\n this.hostElement.appendChild(namedSlot);\n }\n return namedSlot;\n }\n\n checkSelectedDisplayHeight() {\n const { selectedDisplaySlot } = this;\n if (!selectedDisplaySlot) return;\n selectedDisplaySlot.style.setProperty('--comp-selected-display-height', '44px');\n }\n\n /// Event handlers ///\n popoverStateChanged = ({ detail: { open } }: CustomEvent<{ open: boolean }>) => {\n if (this.open === open) return;\n this.open = open;\n if (open && !this.searchText) return;\n this.optionList.setActiveElement(null);\n this.inputField.focus();\n };\n\n inputKeydownHandler = (event: KeyboardEvent) => {\n if (this.readonly || this.disabled) return;\n const keysForOptionListToHandle = [\n 'ArrowDown',\n 'ArrowUp',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n 'Escape',\n 'Tab',\n ];\n if (shouldShowActionSheet(this, event)) {\n return this.executeActionSheet(event);\n }\n if (this.searchable && !keysForOptionListToHandle.includes(event.key)) return;\n if (this.shouldClearSearchText(event)) this.clearSearchText();\n\n // Prevent click event from firing when spacebar is pressed\n if (event.key === ' ') event.preventDefault();\n\n this.optionList.handleExternalKeydown(event);\n };\n\n shouldClearSearchText(event: KeyboardEvent) {\n return this.searchable && !!this.searchText && event.key === 'Escape';\n }\n\n visibilityToggleKeyDown = (event: KeyboardEvent) => {\n const key = event.key;\n const isShiftTab = key === 'Tab' && event.shiftKey;\n const isRadioControlKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key);\n if (isRadioControlKey) event.stopPropagation();\n if (isShiftTab) {\n event.stopPropagation();\n this.optionList.setDefaultActiveElement();\n }\n };\n\n inputClickHandler = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n return this.executeActionSheet(event);\n }\n this.toggleDropdown();\n this.focusInput();\n };\n\n inputInputHandler = (event: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n event.stopPropagation();\n const eventValue = event.detail.value;\n const shouldClearValue = !!this.value;\n\n if (shouldClearValue) this.clearValue();\n if (!this.open) this.openDropdownWithoutActiveElement();\n\n this.prioritizeSearch = true;\n this.searchText = eventValue;\n this.input.emit({ query: eventValue });\n };\n\n inputFocusHandler = () => {\n this.inputFocused = true;\n };\n\n inputBlurHandler = () => {\n this.inputFocused = false;\n };\n\n inputChangeHandler = (event: Event) => {\n event.stopPropagation();\n };\n\n clickedElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName !== 'click-elsewhere') return;\n event.stopPropagation();\n if (!this.open) return;\n this.closeDropdown();\n };\n\n onCustomDisplayClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.focusInput();\n this.toggleDropdown();\n };\n\n /// DOM ///\n renderCustomDisplay() {\n const hasSelectedDisplay = this.checkSelectedDisplay();\n if (!hasSelectedDisplay) return;\n this.checkSelectedDisplayHeight();\n\n return (\n <slot\n name=\"_selected-display\"\n slot=\"custom-display\"\n />\n );\n }\n\n onOptionListSlotChange = async () => {\n const options = (await this.optionList.getOptions()).map(option => option.value);\n if (this.multiple) {\n // allow only intersectioned value\n this.selectedOptions = this.selectedOptions.filter(option => options.includes(option));\n } else if (!options.includes(this.value)) {\n this.value = undefined;\n }\n };\n\n render() {\n const showAsPseudo = !this.searchable;\n\n return (\n <click-elsewhere\n class={this.wrapperClasses}\n onChange={this.clickedElsewhere}\n >\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n role=\"status\"\n class=\"sr\"\n >\n {this.statusMessage}\n </div>\n <q2-input\n ref={el => (this.inputField = el)}\n class=\"q2-select-input\"\n label={(this.label && loc(this.label)) || ''}\n value={this.selectedDisplay}\n errors={\n (Array.isArray(this.errors) &&\n this.errors.length > 0 &&\n this.errors.map(error => loc(error))) ||\n (this.invalid && ['tecton.element.select.invalid']) ||\n []\n }\n disabled={this.disabled}\n optional={this.optional}\n readonly={this.readonly}\n placeholder={this.placeholder || undefined}\n hideLabel={this.hideLabel}\n ariaExpanded={`${this.open}`}\n ariaControls=\"option-list\"\n ariaHaspopup=\"listbox\"\n role=\"combobox\"\n pseudo={showAsPseudo}\n test-id=\"toggleDropdown\"\n hide-messages\n iconRight=\"chevron-down\"\n onClick={this.inputClickHandler}\n onInput={this.inputInputHandler}\n onKeyDown={this.inputKeydownHandler}\n onFocus={this.inputFocusHandler}\n onBlur={this.inputBlurHandler}\n onChange={this.inputChangeHandler}\n badgeValue={this.badgeValue}\n badgeTheme={this.inputFocused ? 'primary' : undefined}\n >\n {this.renderCustomDisplay()}\n </q2-input>\n <div\n class=\"custom-display-content\"\n hidden={!this.hasCustomDisplay || !!this.searchText}\n onClick={this.onCustomDisplayClick}\n >\n <slot name=\"q2-select-display\" />\n </div>\n {this.optionsDropdown()}\n </click-elsewhere>\n );\n }\n\n optionsDropdown() {\n return (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.innerInputField}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popDirection}\n onPopoverStateChanged={this.popoverStateChanged}\n block\n >\n <div\n class=\"popover-content\"\n tabindex=\"-1\"\n >\n <q2-option-list\n ref={el => (this.optionList = el)}\n type=\"listbox\"\n id=\"option-list\"\n show-selected={this.showSelected}\n aria-label={this.listLabel}\n multiple={this.multiple}\n selectedOptions={this.structuredSelectedOptions}\n onChange={this.onOptionListChange}\n >\n <slot onSlotchange={this.onOptionListSlotChange} />\n </q2-option-list>\n {this.multiple && this.visibilityToggle()}\n </div>\n </q2-popover>\n );\n }\n\n visibilityToggle() {\n const selectedOptionsCount = this.selectedOptions?.length ?? 0;\n const { showSelected } = this;\n return (\n <div\n class=\"multi-select-header\"\n ref={el => (this.multiSelectHeader = el)}\n >\n <fieldset>\n <legend aria-label={loc('tecton.element.select.multiHeader.showing')}>\n {loc('tecton.element.select.multiHeader.showing')}\n </legend>\n <div>\n <input\n class=\"sr\"\n type=\"radio\"\n id=\"all\"\n name=\"viewDisplay\"\n value=\"all\"\n checked={!showSelected}\n aria-label={loc('tecton.element.select.multiHeader.allAriaLabel')}\n test-id=\"allOptionsButton\"\n onClick={this.showAllOptions}\n onKeyDown={this.visibilityToggleKeyDown}\n />\n <label htmlFor=\"all\">{loc('tecton.element.select.multiHeader.all')}</label>\n </div>\n\n <div>\n <input\n class=\"sr\"\n type=\"radio\"\n id=\"selected\"\n disabled={selectedOptionsCount === 0}\n name=\"viewDisplay\"\n value=\"selected\"\n aria-label={loc('tecton.element.select.multiHeader.selectedAriaLabel', [\n selectedOptionsCount,\n ])}\n checked={showSelected}\n test-id=\"selectedOptionsButton\"\n onClick={this.showSelectedOptions}\n onKeyDown={this.visibilityToggleKeyDown}\n />\n <label htmlFor=\"selected\">\n {loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount])}\n </label>\n </div>\n </fieldset>\n </div>\n );\n }\n}\n"]}
|
|
@@ -171,6 +171,18 @@ export class Q2Textarea {
|
|
|
171
171
|
this.value = event.detail.value;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
+
onHostElementInput(event) {
|
|
175
|
+
if (event.target === this.hostElement && !this.hostElement.oninput) {
|
|
176
|
+
this.value = event.detail.value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/// Methods ///
|
|
180
|
+
setValue(value) {
|
|
181
|
+
const { textareaField } = this;
|
|
182
|
+
textareaField.focus();
|
|
183
|
+
textareaField.value = value;
|
|
184
|
+
textareaField.dispatchEvent(new InputEvent('input'));
|
|
185
|
+
}
|
|
174
186
|
setWidth(event) {
|
|
175
187
|
var _a, _b;
|
|
176
188
|
const { contentContainer, resize, downParams: { width, x }, } = this;
|
|
@@ -509,6 +521,25 @@ export class Q2Textarea {
|
|
|
509
521
|
}
|
|
510
522
|
}];
|
|
511
523
|
}
|
|
524
|
+
static get methods() {
|
|
525
|
+
return {
|
|
526
|
+
"setValue": {
|
|
527
|
+
"complexType": {
|
|
528
|
+
"signature": "(value: string) => Promise<void>",
|
|
529
|
+
"parameters": [{
|
|
530
|
+
"tags": [],
|
|
531
|
+
"text": ""
|
|
532
|
+
}],
|
|
533
|
+
"references": {},
|
|
534
|
+
"return": "Promise<void>"
|
|
535
|
+
},
|
|
536
|
+
"docs": {
|
|
537
|
+
"text": "",
|
|
538
|
+
"tags": []
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
};
|
|
542
|
+
}
|
|
512
543
|
static get elementRef() { return "hostElement"; }
|
|
513
544
|
static get watchers() {
|
|
514
545
|
return [{
|
|
@@ -541,6 +572,12 @@ export class Q2Textarea {
|
|
|
541
572
|
"target": undefined,
|
|
542
573
|
"capture": false,
|
|
543
574
|
"passive": false
|
|
575
|
+
}, {
|
|
576
|
+
"name": "input",
|
|
577
|
+
"method": "onHostElementInput",
|
|
578
|
+
"target": undefined,
|
|
579
|
+
"capture": false,
|
|
580
|
+
"passive": false
|
|
544
581
|
}];
|
|
545
582
|
}
|
|
546
583
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-textarea/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAOxH,MAAM,OAAO,UAAU;;IAIX,yBAAoB,GAAmB,EAAE,CAAC;IAC1C,SAAI,GAAG,UAAU,EAAE,CAAC;IAuC5B,cAAS,GAAG,GAAG,EAAE;MACb,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;MAE/D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;MAC7D,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,gBAAgB,CAAC,YAAY,IAAI,CAAC;MACrE,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,cAAS,GAAG,GAAG,EAAE;MACb,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;MAE/D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;MAC3D,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,gBAAgB,CAAC,WAAW,IAAI,CAAC;MACnE,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC;IA6FF,sBAAsB;IAEtB,oBAAe,GAAG,GAAG,EAAE;MACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;MACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;MAC/B,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,mBAAc,GAAG,GAAG,EAAE;MAClB,MAAM,EACF,YAAY,EACZ,aAAa,EAAE,EAAE,KAAK,EAAE,GAC3B,GAAG,IAAI,CAAC;MACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;MACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;MACvB,IAAI,YAAY,KAAK,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,oBAAe,GAAG,CAAC,KAAiB,EAAE,EAAE;MACpC,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,MAAM,KAAK,GAAI,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC;MAE1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,qBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;MACrC,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,MAAM,KAAK,GAAI,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC;MAE1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;MAChC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;MAClC,IAAI,CAAC,UAAU,GAAG;QACd,KAAK,EAAE,gBAAgB,CAAC,WAAW;QACnC,MAAM,EAAE,gBAAgB,CAAC,YAAY;QACrC,CAAC,EAAE,KAAK,CAAC,OAAO;QAChB,CAAC,EAAE,KAAK,CAAC,OAAO;OACnB,CAAC;MACF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;MACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;MAChC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,iBAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;MACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;MAEvC,KAAK,CAAC,cAAc,EAAE,CAAC;MAEvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;MAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;MAEpC,IAAI,CAAC,UAAU,GAAG;QACd,KAAK,EAAE,gBAAgB,CAAC,WAAW;QACnC,MAAM,EAAE,gBAAgB,CAAC,YAAY;QACrC,CAAC,EAAE,UAAU,CAAC,KAAK;QACnB,CAAC,EAAE,UAAU,CAAC,KAAK;OACtB,CAAC;MAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;MACzD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;MAChC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IA+BF,cAAS,GAAG,GAAG,EAAE;MACb,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;MAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC,CAAC;;;;;;;;;;;;;kBA7O6E,UAAU;;;;;;EAOzF,gCAAgC;EAEhC,iBAAiB;IACb,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;MACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;EACL,CAAC;EAED,kBAAkB;IACd,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;EACnC,CAAC;EAED,gBAAgB;IACZ,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;EACpC,CAAC;EAoBD,IAAI,QAAQ;IACR,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EAChE,CAAC;EAED,IAAI,QAAQ;IACR,OAAO,CACH,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;MACtD,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;MACnD,EAAE,CACL,CAAC;EACN,CAAC;EAED,IAAI,YAAY;IACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;EAC1D,CAAC;EAED,IAAI,OAAO;IACP,OAAO,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC;EACrC,CAAC;EAED,IAAI,gBAAgB;IAChB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;EACzE,CAAC;EAED,IAAI,cAAc;IACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAErD,OAAO,kBAAkB,UAAU,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;EACpE,CAAC;EAED,IAAI,UAAU;IACV,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;EACvC,CAAC;EAED,6BAA6B;EAG7B,aAAa;IACT,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,SAAS;MAAE,OAAO;IAEvB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,KAAK;MAAE,OAAO;IAErC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;EAChD,CAAC;EAGD,YAAY;IACR,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EAC9C,CAAC;EAGD,YAAY;IACR,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;EAC7C,CAAC;EAGD,aAAa;IACT,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;EAClF,CAAC;EAGD,cAAc;IACV,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;EAClF,CAAC;EAED,oCAAoC;EAEpC,kBAAkB,CAAC,KAAY;IAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;MAAE,OAAO;IACzD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;EAC/B,CAAC;EAGD,mBAAmB,CAAC,KAAkB;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;MACjE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnC;EACL,CAAC;EAgFD,QAAQ,CAAC,KAA8B;;IACnC,MAAM,EACF,gBAAgB,EAChB,MAAM,EACN,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAC3B,GAAG,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO;MAAE,OAAO;IACrB,MAAM,MAAM,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,mCAAI,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,IAAI,CAAC;EACnD,CAAC;EAED,SAAS,CAAC,KAA8B;;IACpC,MAAM,EACF,gBAAgB,EAChB,MAAM,EACN,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAC5B,GAAG,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO;MAAE,OAAO;IACrB,MAAM,MAAM,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,mCAAI,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACxC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;EACrD,CAAC;EAOD,4BAA4B;EAE5B,MAAM;IACF,OAAO,CACH,WAAK,KAAK,EAAE,IAAI,CAAC,cAAc;MAC1B,QAAQ,CAAC,IAAI,CAAC;MACf,WACI,KAAK,EAAC,mBAAmB,EACzB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;QACzC,WAAW,CAAC,IAAI,CAAC,CAChB,CACJ,CACT,CAAC;EACN,CAAC;EAED,YAAY;;IACR,OAAO,CACH,WACI,KAAK,EAAC,YAAY,iBACN,MAAM;MAEjB,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,KAAI,CAAC;;MAAG,IAAI,CAAC,SAAS,CACvC,CACT,CAAC;EACN,CAAC;EAED,QAAQ;IACJ,OAAO,CACH,WAAK,KAAK,EAAC,iBAAiB;MACxB,gBACI,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,SAAS,aAC7D,YAAY,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,sBACP,IAAI,CAAC,gBAAgB,kBACzB,GAAG,IAAI,CAAC,QAAQ,EAAE,mBACjB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,gBACtB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EACpC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,MAAM,EAAE,IAAI,CAAC,cAAc,GACnB;MACX,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACb,eACI,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,YAAY,GACpB,CACL,CAAC,CAAC,CAAC,CACA,EAAE,CACL;MACA,IAAI,CAAC,UAAU,IAAI,CAChB,cACI,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,KAAK,EAAC,YAAY,gBACN,GAAG,CAAC,6BAA6B,CAAC,EAC9C,QAAQ,EAAE,CAAC,CAAC;QAEZ,0BACgB,MAAM,EAClB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B;UAElC,YACI,CAAC,EAAC,oCAAoC,EACtC,IAAI,EAAC,MAAM,2BACW,QAAQ,GAChC,CACA,CACD,CACZ,CACC,CACT,CAAC;EACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, EventEmitter, Prop, Event, Element, State, h, Watch, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport { createGuid, isEventFromElement, labelDOM, loc, messagesDOM, overrideFocus, setMessageHeight } from 'src/utils';\n\n@Component({\n tag: 'q2-textarea',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Textarea {\n private textareaField?: HTMLTextAreaElement;\n private contentContainer?: HTMLDivElement;\n private valueOnFocus: string;\n private scheduledAfterRender: (() => void)[] = [];\n private guid = createGuid();\n\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true }) hideLabel: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) spellcheck: boolean;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) rows: number;\n @Prop({ reflect: true }) cols: number;\n @Prop({ reflect: true }) resize: 'none' | 'vertical' | 'horizontal' | 'both' = 'vertical';\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() hasFocus: boolean;\n @State() downParams: IDict<number>;\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n }\n\n componentDidRender() {\n this.scheduledAfterRender.push(this.checkRows, this.checkCols);\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n }\n\n checkRows = () => {\n const { contentContainer, rows, textareaField, resize } = this;\n\n if (!rows || ['none', 'horizontal'].includes(resize)) return;\n contentContainer.style.height = `${contentContainer.offsetHeight}px`;\n textareaField.removeAttribute('rows');\n };\n\n checkCols = () => {\n const { contentContainer, cols, textareaField, resize } = this;\n\n if (!cols || ['none', 'vertical'].includes(resize)) return;\n contentContainer.style.width = `${contentContainer.offsetWidth}px`;\n textareaField.removeAttribute('cols');\n };\n\n @Element() hostElement: HTMLElement;\n\n get hasError() {\n return Array.isArray(this.errors) && this.errors.length > 0;\n }\n\n get messages(): string[] {\n return (\n (this.errors && this.errors.length > 0 && this.errors) ||\n (this.hints && this.hints.length > 0 && this.hints) ||\n []\n );\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n get inputId() {\n return `input-guid-${this.guid}`;\n }\n\n get inputDescribedBy() {\n return this.showMessages ? `${this.inputId}-description` : undefined;\n }\n\n get wrapperClasses() {\n const errorClass = this.hasError ? ' has-error' : '';\n const valueClass = !!this.value ? ' has-value' : '';\n const focusClass = this.hasFocus ? ' has-focus' : '';\n\n return `field-container${errorClass}${valueClass}${focusClass}`;\n }\n\n get showResize() {\n const { resize } = this;\n return resize && resize !== 'none';\n }\n\n //////// OBSERVERS //////////\n\n @Watch('value')\n valueObserver() {\n const { maxlength, value = '' } = this;\n if (!maxlength) return;\n\n const truncatedValue = value.substr(0, maxlength);\n if (truncatedValue === value) return;\n\n this.change.emit({ value: truncatedValue });\n }\n\n @Watch('rows')\n rowsObserver() {\n this.contentContainer.style.height = null;\n }\n\n @Watch('cols')\n colsObserver() {\n this.contentContainer.style.width = null;\n }\n\n @Watch('hints')\n hintsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n @Watch('errors')\n errorsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event: Event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.textareaField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n ///////// Events /////////\n\n @Event() input: EventEmitter<any>;\n @Event() change: EventEmitter<any>;\n\n ///// ACTIONS ////////\n\n onTextareaFocus = () => {\n this.hasFocus = true;\n this.valueOnFocus = this.value;\n setMessageHeight(this);\n };\n\n onTextareaBlur = () => {\n const {\n valueOnFocus,\n textareaField: { value },\n } = this;\n this.hasFocus = false;\n setMessageHeight(this);\n if (valueOnFocus !== value) this.change.emit({ value });\n };\n\n onTextareaInput = (event: InputEvent) => {\n event.stopPropagation();\n const value = (event.target as HTMLTextAreaElement).value;\n\n this.input.emit({ value });\n };\n\n onTextareaChange = (event: InputEvent) => {\n event.stopPropagation();\n const value = (event.target as HTMLTextAreaElement).value;\n\n this.change.emit({ value });\n };\n\n onMouseDown = (event: MouseEvent) => {\n const { contentContainer } = this;\n this.downParams = {\n width: contentContainer.offsetWidth,\n height: contentContainer.offsetHeight,\n x: event.clientX,\n y: event.clientY,\n };\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('mouseup', this.onMouseUp);\n };\n\n onMouseMove = (event: MouseEvent) => {\n this.setHeight(event);\n this.setWidth(event);\n };\n\n onTouchStart = (event: TouchEvent) => {\n if (event.touches.length !== 1) return;\n\n event.preventDefault();\n\n const { contentContainer } = this;\n const firstTouch = event.touches[0];\n\n this.downParams = {\n width: contentContainer.offsetWidth,\n height: contentContainer.offsetHeight,\n x: firstTouch.pageX,\n y: firstTouch.pageY,\n };\n\n document.addEventListener('touchmove', this.onTouchMove);\n document.addEventListener('touchend', this.onTouchMove);\n };\n\n onTouchMove = (event: TouchEvent) => {\n this.setHeight(event);\n this.setWidth(event);\n };\n\n setWidth(event: MouseEvent | TouchEvent) {\n const {\n contentContainer,\n resize,\n downParams: { width, x },\n } = this;\n\n const resizeX = ['both', 'horizontal'].includes(resize);\n\n if (!resizeX) return;\n const eventX = event instanceof MouseEvent ? event.clientX : event.touches[0]?.pageX ?? 0;\n const newWidth = width - (x - eventX);\n contentContainer.style.width = `${newWidth}px`;\n }\n\n setHeight(event: MouseEvent | TouchEvent) {\n const {\n contentContainer,\n resize,\n downParams: { height, y },\n } = this;\n\n const resizeY = ['both', 'vertical'].includes(resize);\n if (!resizeY) return;\n const eventY = event instanceof MouseEvent ? event.clientY : event.touches[0]?.pageY ?? 0;\n const newHeight = height - (y - eventY);\n contentContainer.style.height = `${newHeight}px`;\n }\n\n onMouseUp = () => {\n document.removeEventListener('mousemove', this.onMouseMove);\n this.downParams = null;\n };\n\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n {labelDOM(this)}\n <div\n class=\"content-container\"\n ref={el => (this.contentContainer = el)}\n >\n {this.inputDOM()}\n {this.maxlength ? this.maxLengthDOM() : ''}\n {messagesDOM(this)}\n </div>\n </div>\n );\n }\n\n maxLengthDOM() {\n return (\n <div\n class=\"max-length\"\n aria-hidden=\"true\"\n >\n {this.value?.length || 0}/{this.maxlength}\n </div>\n );\n }\n\n inputDOM() {\n return (\n <div class=\"input-container\">\n <textarea\n id={this.inputId}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n test-id=\"inputField\"\n maxLength={this.maxlength}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-required={`${!this.optional}`}\n aria-label={this.hideLabel && this.label}\n spellcheck={this.spellcheck}\n rows={this.rows || 3}\n cols={this.cols}\n value={this.value}\n ref={el => (this.textareaField = el)}\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n maxlength={this.maxlength}\n onInput={this.onTextareaInput}\n onChange={this.onTextareaChange}\n onFocus={this.onTextareaFocus}\n onBlur={this.onTextareaBlur}\n ></textarea>\n {this.hasError ? (\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n />\n ) : (\n ''\n )}\n {this.showResize && (\n <button\n onMouseDown={this.onMouseDown}\n onTouchStart={this.onTouchStart}\n class=\"btn-resize\"\n aria-label={loc('tecton.element.input.resize')}\n tabIndex={-1}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 11.5l3-3m-7 3l7-7m-11 7l11-11\"\n fill=\"none\"\n stroke-stroke-linecap=\"square\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-textarea/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Prop, Event, Element, State, h, Watch, Listen, Method } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport { createGuid, isEventFromElement, labelDOM, loc, messagesDOM, overrideFocus, setMessageHeight } from 'src/utils';\n\n@Component({\n tag: 'q2-textarea',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Textarea {\n private textareaField?: HTMLTextAreaElement;\n private contentContainer?: HTMLDivElement;\n private valueOnFocus: string;\n private scheduledAfterRender: (() => void)[] = [];\n private guid = createGuid();\n\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true }) hideLabel: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) spellcheck: boolean;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) rows: number;\n @Prop({ reflect: true }) cols: number;\n @Prop({ reflect: true }) resize: 'none' | 'vertical' | 'horizontal' | 'both' = 'vertical';\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() hasFocus: boolean;\n @State() downParams: IDict<number>;\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n }\n\n componentDidRender() {\n this.scheduledAfterRender.push(this.checkRows, this.checkCols);\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n }\n\n checkRows = () => {\n const { contentContainer, rows, textareaField, resize } = this;\n\n if (!rows || ['none', 'horizontal'].includes(resize)) return;\n contentContainer.style.height = `${contentContainer.offsetHeight}px`;\n textareaField.removeAttribute('rows');\n };\n\n checkCols = () => {\n const { contentContainer, cols, textareaField, resize } = this;\n\n if (!cols || ['none', 'vertical'].includes(resize)) return;\n contentContainer.style.width = `${contentContainer.offsetWidth}px`;\n textareaField.removeAttribute('cols');\n };\n\n @Element() hostElement: HTMLElement;\n\n get hasError() {\n return Array.isArray(this.errors) && this.errors.length > 0;\n }\n\n get messages(): string[] {\n return (\n (this.errors && this.errors.length > 0 && this.errors) ||\n (this.hints && this.hints.length > 0 && this.hints) ||\n []\n );\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n get inputId() {\n return `input-guid-${this.guid}`;\n }\n\n get inputDescribedBy() {\n return this.showMessages ? `${this.inputId}-description` : undefined;\n }\n\n get wrapperClasses() {\n const errorClass = this.hasError ? ' has-error' : '';\n const valueClass = !!this.value ? ' has-value' : '';\n const focusClass = this.hasFocus ? ' has-focus' : '';\n\n return `field-container${errorClass}${valueClass}${focusClass}`;\n }\n\n get showResize() {\n const { resize } = this;\n return resize && resize !== 'none';\n }\n\n //////// OBSERVERS //////////\n\n @Watch('value')\n valueObserver() {\n const { maxlength, value = '' } = this;\n if (!maxlength) return;\n\n const truncatedValue = value.substr(0, maxlength);\n if (truncatedValue === value) return;\n\n this.change.emit({ value: truncatedValue });\n }\n\n @Watch('rows')\n rowsObserver() {\n this.contentContainer.style.height = null;\n }\n\n @Watch('cols')\n colsObserver() {\n this.contentContainer.style.width = null;\n }\n\n @Watch('hints')\n hintsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n @Watch('errors')\n errorsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event: Event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.textareaField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('input')\n onHostElementInput(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.oninput) {\n this.value = event.detail.value;\n }\n }\n\n ///////// Events /////////\n\n @Event() input: EventEmitter<any>;\n @Event() change: EventEmitter<any>;\n\n /// Methods ///\n @Method()\n setValue(value: string) {\n const { textareaField } = this;\n textareaField.focus();\n textareaField.value = value;\n textareaField.dispatchEvent(new InputEvent('input'));\n }\n\n ///// ACTIONS ////////\n\n onTextareaFocus = () => {\n this.hasFocus = true;\n this.valueOnFocus = this.value;\n setMessageHeight(this);\n };\n\n onTextareaBlur = () => {\n const {\n valueOnFocus,\n textareaField: { value },\n } = this;\n this.hasFocus = false;\n setMessageHeight(this);\n if (valueOnFocus !== value) this.change.emit({ value });\n };\n\n onTextareaInput = (event: InputEvent) => {\n event.stopPropagation();\n const value = (event.target as HTMLTextAreaElement).value;\n\n this.input.emit({ value });\n };\n\n onTextareaChange = (event: InputEvent) => {\n event.stopPropagation();\n const value = (event.target as HTMLTextAreaElement).value;\n\n this.change.emit({ value });\n };\n\n onMouseDown = (event: MouseEvent) => {\n const { contentContainer } = this;\n this.downParams = {\n width: contentContainer.offsetWidth,\n height: contentContainer.offsetHeight,\n x: event.clientX,\n y: event.clientY,\n };\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('mouseup', this.onMouseUp);\n };\n\n onMouseMove = (event: MouseEvent) => {\n this.setHeight(event);\n this.setWidth(event);\n };\n\n onTouchStart = (event: TouchEvent) => {\n if (event.touches.length !== 1) return;\n\n event.preventDefault();\n\n const { contentContainer } = this;\n const firstTouch = event.touches[0];\n\n this.downParams = {\n width: contentContainer.offsetWidth,\n height: contentContainer.offsetHeight,\n x: firstTouch.pageX,\n y: firstTouch.pageY,\n };\n\n document.addEventListener('touchmove', this.onTouchMove);\n document.addEventListener('touchend', this.onTouchMove);\n };\n\n onTouchMove = (event: TouchEvent) => {\n this.setHeight(event);\n this.setWidth(event);\n };\n\n setWidth(event: MouseEvent | TouchEvent) {\n const {\n contentContainer,\n resize,\n downParams: { width, x },\n } = this;\n\n const resizeX = ['both', 'horizontal'].includes(resize);\n\n if (!resizeX) return;\n const eventX = event instanceof MouseEvent ? event.clientX : event.touches[0]?.pageX ?? 0;\n const newWidth = width - (x - eventX);\n contentContainer.style.width = `${newWidth}px`;\n }\n\n setHeight(event: MouseEvent | TouchEvent) {\n const {\n contentContainer,\n resize,\n downParams: { height, y },\n } = this;\n\n const resizeY = ['both', 'vertical'].includes(resize);\n if (!resizeY) return;\n const eventY = event instanceof MouseEvent ? event.clientY : event.touches[0]?.pageY ?? 0;\n const newHeight = height - (y - eventY);\n contentContainer.style.height = `${newHeight}px`;\n }\n\n onMouseUp = () => {\n document.removeEventListener('mousemove', this.onMouseMove);\n this.downParams = null;\n };\n\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n {labelDOM(this)}\n <div\n class=\"content-container\"\n ref={el => (this.contentContainer = el)}\n >\n {this.inputDOM()}\n {this.maxlength ? this.maxLengthDOM() : ''}\n {messagesDOM(this)}\n </div>\n </div>\n );\n }\n\n maxLengthDOM() {\n return (\n <div\n class=\"max-length\"\n aria-hidden=\"true\"\n >\n {this.value?.length || 0}/{this.maxlength}\n </div>\n );\n }\n\n inputDOM() {\n return (\n <div class=\"input-container\">\n <textarea\n id={this.inputId}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n test-id=\"inputField\"\n maxLength={this.maxlength}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-required={`${!this.optional}`}\n aria-label={this.hideLabel && this.label}\n spellcheck={this.spellcheck}\n rows={this.rows || 3}\n cols={this.cols}\n value={this.value}\n ref={el => (this.textareaField = el)}\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n maxlength={this.maxlength}\n onInput={this.onTextareaInput}\n onChange={this.onTextareaChange}\n onFocus={this.onTextareaFocus}\n onBlur={this.onTextareaBlur}\n ></textarea>\n {this.hasError ? (\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n />\n ) : (\n ''\n )}\n {this.showResize && (\n <button\n onMouseDown={this.onMouseDown}\n onTouchStart={this.onTouchStart}\n class=\"btn-resize\"\n aria-label={loc('tecton.element.input.resize')}\n tabIndex={-1}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 11.5l3-3m-7 3l7-7m-11 7l11-11\"\n fill=\"none\"\n stroke-stroke-linecap=\"square\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n }\n}\n"]}
|
|
@@ -81,17 +81,19 @@ export function loc(key, subs) {
|
|
|
81
81
|
return (_c = (_b = window === null || window === void 0 ? void 0 : window.TectonElements) === null || _b === void 0 ? void 0 : _b.loc(key, subs)) !== null && _c !== void 0 ? _c : key;
|
|
82
82
|
}
|
|
83
83
|
export function labelDOM(target) {
|
|
84
|
-
const { label, hideLabel } = target;
|
|
85
|
-
|
|
86
|
-
return;
|
|
84
|
+
const { label, hideLabel, optional, readonly } = target;
|
|
85
|
+
const labelClasses = ['input-label'];
|
|
87
86
|
let helpText = '';
|
|
88
|
-
if (
|
|
87
|
+
if (hideLabel)
|
|
88
|
+
labelClasses.push('sr');
|
|
89
|
+
if (optional) {
|
|
89
90
|
helpText = h("span", { class: "optional-tag" }, loc('tecton.element.input.optional'));
|
|
90
91
|
}
|
|
91
|
-
if (
|
|
92
|
+
if (readonly) {
|
|
92
93
|
helpText = h("span", { class: "optional-tag" }, loc('tecton.element.input.readonly'));
|
|
94
|
+
labelClasses.push('readonly-field');
|
|
93
95
|
}
|
|
94
|
-
return (h("label", { htmlFor: target.inputId, class:
|
|
96
|
+
return (h("label", { htmlFor: target.inputId, class: labelClasses.join(' ') }, h("slot", { name: "label" }, label ? loc(label) : undefined, helpText)));
|
|
95
97
|
}
|
|
96
98
|
export function handleAriaLabel(target) {
|
|
97
99
|
const { ariaLabel } = target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox';\nimport { Q2Dropdown } from 'src/components/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio';\nimport { Q2Select } from 'src/components/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\nimport smoothScroll from 'smoothscroll-polyfill';\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function addSmoothScrollPolyfill() {\n if (!isSafari()) return false;\n smoothScroll.polyfill();\n return (window.__forceSmoothScrollPolyfill__ = true);\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function labelDOM(target: FormFieldTypes) {\n const { label, hideLabel } = target;\n if (!label || hideLabel) return;\n let helpText = '';\n if (target.optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (target.readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n }\n return (\n <label\n htmlFor={target.inputId}\n class={target.readonly ? 'readonly-field' : ''}\n >\n {loc(target.label)}\n {helpText}\n </label>\n );\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming relase. Instead please use typeof string with any of the following values: \"small\" / \"medium\" / \"large\" / \"none\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function messagesDOM(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox';\nimport { Q2Dropdown } from 'src/components/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio';\nimport { Q2Select } from 'src/components/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\nimport smoothScroll from 'smoothscroll-polyfill';\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function addSmoothScrollPolyfill() {\n if (!isSafari()) return false;\n smoothScroll.polyfill();\n return (window.__forceSmoothScrollPolyfill__ = true);\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function labelDOM(target: FormFieldTypes) {\n const { label, hideLabel, optional, readonly } = target;\n const labelClasses: string[] = ['input-label'];\n let helpText = '';\n\n if (hideLabel) labelClasses.push('sr');\n if (optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n labelClasses.push('readonly-field');\n }\n return (\n <label\n htmlFor={target.inputId}\n class={labelClasses.join(' ')}\n >\n <slot name=\"label\">\n {label ? loc(label) : undefined}\n {helpText}\n </slot>\n </label>\n );\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming relase. Instead please use typeof string with any of the following values: \"small\" / \"medium\" / \"large\" / \"none\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function messagesDOM(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
-
import { q as isFirefox, o as overrideFocus, n as nextPaint, i as isEventFromElement } from './index16.js';
|
|
2
|
+
import { q as isFirefox, o as overrideFocus, n as nextPaint, i as isEventFromElement, l as loc } from './index16.js';
|
|
3
3
|
import { d as defineCustomElement$1 } from './index8.js';
|
|
4
4
|
|
|
5
5
|
const stylesCss = "*{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))}";
|
|
@@ -39,7 +39,19 @@ const Q2Message = /*@__PURE__*/ proxyCustomElement(class Q2Message extends HTMLE
|
|
|
39
39
|
const addAriaHiddenForAriaLive = isFirefox && this.presentToggle;
|
|
40
40
|
const addDivForAriaLive = !isFirefox && this.presentToggle;
|
|
41
41
|
const { description } = this;
|
|
42
|
-
|
|
42
|
+
const messageLabel = loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);
|
|
43
|
+
return (h("div", { tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { class: "sr" }), h("div", { class: "sr message-label" }, messageLabel), h("div", { class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", null))));
|
|
44
|
+
}
|
|
45
|
+
messageIcon(type) {
|
|
46
|
+
const iconMap = {
|
|
47
|
+
success: 'success',
|
|
48
|
+
warning: 'warning',
|
|
49
|
+
danger: 'error',
|
|
50
|
+
error: 'error',
|
|
51
|
+
info: 'info',
|
|
52
|
+
};
|
|
53
|
+
const iconType = iconMap[type] || iconMap.info;
|
|
54
|
+
return (h("q2-icon", { type: iconType, class: "message-icon" }));
|
|
43
55
|
}
|
|
44
56
|
get hostElement() { return this; }
|
|
45
57
|
static get style() { return stylesCss; }
|
|
@@ -50,17 +62,6 @@ const Q2Message = /*@__PURE__*/ proxyCustomElement(class Q2Message extends HTMLE
|
|
|
50
62
|
"presentToggle": [32],
|
|
51
63
|
"present": [64]
|
|
52
64
|
}, [[0, "focus", "delegateFocus"]]]);
|
|
53
|
-
function generateIcon(type) {
|
|
54
|
-
const iconMap = {
|
|
55
|
-
success: 'success',
|
|
56
|
-
warning: 'warning',
|
|
57
|
-
danger: 'error',
|
|
58
|
-
error: 'error',
|
|
59
|
-
info: 'info',
|
|
60
|
-
};
|
|
61
|
-
const icon = iconMap[type] || iconMap.info;
|
|
62
|
-
return (h("q2-icon", { type: icon, class: "message-icon" }));
|
|
63
|
-
}
|
|
64
65
|
function defineCustomElement() {
|
|
65
66
|
if (typeof customElements === "undefined") {
|
|
66
67
|
return;
|