q2-tecton-elements 1.38.2 → 1.39.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/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-09c712ea.js → index-9113a9da.js} +2 -2
- package/dist/cjs/{index-09c712ea.js.map → index-9113a9da.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +11 -2
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +20 -23
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +30 -4
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +14 -14
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- 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-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +43 -21
- 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 +1 -1
- 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 +6 -3
- 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 +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-optgroup_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +1 -1
- 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-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +4 -4
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js.map +1 -1
- package/dist/collection/components/click-elsewhere/index.js +1 -1
- package/dist/collection/components/click-elsewhere/index.js.map +1 -1
- package/dist/collection/components/q2-action-sheet/index.js +6 -3
- package/dist/collection/components/q2-action-sheet/index.js.map +1 -1
- package/dist/collection/components/q2-btn/styles.css +11 -11
- package/dist/collection/components/q2-calendar/index.js +23 -11
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-card/index.js +21 -27
- package/dist/collection/components/q2-card/index.js.map +1 -1
- package/dist/collection/components/q2-card/styles.css +57 -0
- package/dist/collection/components/q2-carousel/index.js +33 -5
- package/dist/collection/components/q2-carousel/index.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/index.js +8 -4
- package/dist/collection/components/q2-carousel-pane/index.js.map +1 -1
- package/dist/collection/components/q2-chart-area/index.js +9 -4
- package/dist/collection/components/q2-chart-area/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +58 -22
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox/index.js +5 -2
- package/dist/collection/components/q2-checkbox/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +12 -5
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/index.js +73 -29
- package/dist/collection/components/q2-data-table/index.js.map +1 -1
- package/dist/collection/components/q2-editable-field/index.js +6 -6
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js +1 -1
- package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +23 -19
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-input/types.js.map +1 -1
- package/dist/collection/components/q2-option/index.js +5 -2
- package/dist/collection/components/q2-option/index.js.map +1 -1
- package/dist/collection/components/q2-option-list/index.js +15 -9
- package/dist/collection/components/q2-option-list/index.js.map +1 -1
- package/dist/collection/components/q2-pagination/index.js +8 -5
- package/dist/collection/components/q2-pagination/index.js.map +1 -1
- package/dist/collection/components/q2-pill/index.js +5 -2
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-popover/index.js +1 -1
- package/dist/collection/components/q2-popover/index.js.map +1 -1
- package/dist/collection/components/q2-radio/index.js +3 -3
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +7 -4
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-section/index.js +7 -4
- package/dist/collection/components/q2-section/index.js.map +1 -1
- package/dist/collection/components/q2-section/styles.css +8 -6
- package/dist/collection/components/q2-select/index.js +8 -5
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-stepper/index.js +5 -2
- package/dist/collection/components/q2-stepper/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/index.js +11 -8
- package/dist/collection/components/q2-stepper-pane/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/index.js +13 -6
- package/dist/collection/components/q2-stepper-vertical/index.js.map +1 -1
- package/dist/collection/components/q2-tab-container/index.js +14 -8
- package/dist/collection/components/q2-tab-container/index.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/index.js +5 -2
- package/dist/collection/components/q2-tab-pane/index.js.map +1 -1
- package/dist/collection/components/q2-tag/index.js +1 -1
- package/dist/collection/components/q2-tag/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/index.js +14 -8
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/index.js +5 -2
- package/dist/collection/components/tecton-tab-pane/index.js.map +1 -1
- package/dist/collection/utils/index.js +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index13.js.map +1 -1
- package/dist/components/index14.js.map +1 -1
- package/dist/components/index15.js.map +1 -1
- package/dist/components/index16.js +1 -1
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/index5.js +1 -1
- package/dist/components/index5.js.map +1 -1
- package/dist/components/index6.js.map +1 -1
- package/dist/components/index9.js +5 -2
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +10 -1
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card.js +19 -22
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel.js +32 -4
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-donut.js +16 -15
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +43 -21
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-section.js +1 -1
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +3 -3
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js.map +1 -1
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +1 -1
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-84f1034e.js → index-fbe28822.js} +2 -2
- package/dist/esm/{index-84f1034e.js.map → index-fbe28822.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +11 -2
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +20 -23
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +30 -4
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +14 -14
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +43 -21
- 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 +1 -1
- 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 +6 -3
- 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 +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-optgroup_2.entry.js.map +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +1 -1
- 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-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +4 -4
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tab-pane.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/p-0253a00b.entry.js +2 -0
- package/dist/q2-tecton-elements/p-0253a00b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-72b4ecc6.entry.js → p-07229496.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-07229496.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-a6b03db1.entry.js → p-0ecff52c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a6b03db1.entry.js.map → p-0ecff52c.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-f198f77b.entry.js → p-1179b32c.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-1179b32c.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-311f37e2.entry.js → p-15c69543.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9220365b.entry.js → p-212c6301.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-212c6301.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-3090b655.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3090b655.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-8f8d5362.entry.js → p-3569e648.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3569e648.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0cade28b.entry.js → p-36bff57a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-57e81863.entry.js → p-39e94e12.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-57e81863.entry.js.map → p-39e94e12.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-3f20d610.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3f20d610.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-29a7ca63.entry.js → p-44c2d7a2.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-29a7ca63.entry.js.map → p-44c2d7a2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-deb773a5.entry.js → p-461dca3d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-deb773a5.entry.js.map → p-461dca3d.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-3d82d94f.entry.js → p-5964fd50.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3d82d94f.entry.js.map → p-5964fd50.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e98d9cf2.entry.js → p-5b4c30b8.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5b4c30b8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-69dcf12e.entry.js → p-5d6c2534.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5d6c2534.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-a09c90c1.entry.js → p-66bc9475.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a09c90c1.entry.js.map → p-66bc9475.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e4dadcd7.entry.js → p-6ba6d83e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-6ba6d83e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-5843f6c8.entry.js → p-78d5707b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-78d5707b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-85dc889e.entry.js → p-7e276297.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-7e276297.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-059ea7c9.entry.js → p-81e36fcd.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8f273db2.entry.js → p-88b303a7.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8f273db2.entry.js.map → p-88b303a7.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-9889692d.entry.js +2 -0
- package/dist/q2-tecton-elements/p-9889692d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-9da0db14.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{p-c057134f.entry.js → p-9dff6592.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-9dff6592.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-145849d0.entry.js → p-a5a23edc.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a5a23edc.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-db3bbfb8.entry.js → p-a9c40d3b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a9c40d3b.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-15179d55.entry.js → p-aa96f160.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5c033ed9.entry.js → p-b3a32a46.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5c033ed9.entry.js.map → p-b3a32a46.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-f3868a77.entry.js → p-b6ed1342.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f3868a77.entry.js.map → p-b6ed1342.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-52132d80.entry.js → p-ba19d09f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ba19d09f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-81b917a5.entry.js → p-cc7ba0cb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-107f07f2.entry.js → p-ce009987.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-d7fb3534.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{p-959f47ef.entry.js → p-de7352f5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6ae87415.entry.js → p-ef2e2991.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b83568e7.entry.js → p-f1479052.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-f1479052.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f34521a4.js → p-fb903495.js} +2 -2
- package/dist/q2-tecton-elements/{p-f34521a4.js.map → p-fb903495.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-2812f9d2.entry.js → p-ff137358.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ff137358.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-btn-test.e2e.js +31 -0
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-card-test.e2e.js +69 -11
- package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-carousel-test.e2e.js +41 -3
- package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -9
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-data-table-test.e2e.js +91 -2
- package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +151 -67
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/helpers.js +48 -0
- package/dist/test/helpers.js.map +1 -1
- package/dist/types/components/click-elsewhere/index.d.ts +3 -0
- package/dist/types/components/q2-action-sheet/index.d.ts +7 -0
- package/dist/types/components/q2-calendar/index.d.ts +23 -3
- package/dist/types/components/q2-card/index.d.ts +14 -4
- package/dist/types/components/q2-carousel/index.d.ts +8 -0
- package/dist/types/components/q2-carousel-pane/index.d.ts +7 -1
- package/dist/types/components/q2-chart-area/index.d.ts +7 -1
- package/dist/types/components/q2-chart-donut/index.d.ts +18 -3
- package/dist/types/components/q2-checkbox/index.d.ts +4 -0
- package/dist/types/components/q2-checkbox-group/index.d.ts +8 -1
- package/dist/types/components/q2-data-table/index.d.ts +43 -3
- package/dist/types/components/q2-editable-field/index.d.ts +18 -2
- package/dist/types/components/q2-input/index.d.ts +19 -2
- package/dist/types/components/q2-input/types.d.ts +1 -0
- package/dist/types/components/q2-option/index.d.ts +4 -0
- package/dist/types/components/q2-option-list/index.d.ts +15 -1
- package/dist/types/components/q2-pagination/index.d.ts +8 -2
- package/dist/types/components/q2-pill/index.d.ts +4 -0
- package/dist/types/components/q2-popover/index.d.ts +3 -0
- package/dist/types/components/q2-radio/index.d.ts +6 -1
- package/dist/types/components/q2-radio-group/index.d.ts +7 -1
- package/dist/types/components/q2-section/index.d.ts +7 -1
- package/dist/types/components/q2-select/index.d.ts +16 -1
- package/dist/types/components/q2-stepper/index.d.ts +4 -0
- package/dist/types/components/q2-stepper-pane/index.d.ts +11 -1
- package/dist/types/components/q2-stepper-vertical/index.d.ts +10 -2
- package/dist/types/components/q2-tab-container/index.d.ts +12 -2
- package/dist/types/components/q2-tab-pane/index.d.ts +4 -0
- package/dist/types/components/q2-tag/index.d.ts +5 -0
- package/dist/types/components/q2-textarea/index.d.ts +14 -2
- package/dist/types/components/tecton-tab-pane/index.d.ts +4 -0
- package/dist/types/components.d.ts +223 -27
- package/dist/types/workspace/workspace/{tecton-production_release_1.38.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
- package/package.json +4 -3
- package/dist/q2-tecton-elements/p-072bda73.entry.js +0 -2
- package/dist/q2-tecton-elements/p-072bda73.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-145849d0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2812f9d2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-52132d80.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5843f6c8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-69dcf12e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-72b4ecc6.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-85dc889e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-8f8d5362.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-9220365b.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a4017e55.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a4017e55.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-af98db79.entry.js +0 -2
- package/dist/q2-tecton-elements/p-af98db79.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b83568e7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c0334e63.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c0334e63.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c057134f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-db3bbfb8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e4dadcd7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e98d9cf2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f198f77b.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-311f37e2.entry.js.map → p-15c69543.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0cade28b.entry.js.map → p-36bff57a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-059ea7c9.entry.js.map → p-81e36fcd.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-15179d55.entry.js.map → p-aa96f160.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-81b917a5.entry.js.map → p-cc7ba0cb.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-107f07f2.entry.js.map → p-ce009987.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-959f47ef.entry.js.map → p-de7352f5.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6ae87415.entry.js.map → p-ef2e2991.entry.js.map} +0 -0
|
@@ -49,7 +49,7 @@ export class Q2Input {
|
|
|
49
49
|
};
|
|
50
50
|
this.onInputFocus = () => {
|
|
51
51
|
if (this.inputField.tagName === 'INPUT') {
|
|
52
|
-
this.scheduledAfterRender.push(() => this.
|
|
52
|
+
this.scheduledAfterRender.push(() => this.shouldCursorStartAtEnd
|
|
53
53
|
? this.placeCursorAtEnd()
|
|
54
54
|
: this.setCursorPosition(this.calculateCursorPositionOnFocus()));
|
|
55
55
|
}
|
|
@@ -234,6 +234,9 @@ export class Q2Input {
|
|
|
234
234
|
var _a;
|
|
235
235
|
return this.clearable && !!(((_a = this.inputField) === null || _a === void 0 ? void 0 : _a.value) || this.value);
|
|
236
236
|
}
|
|
237
|
+
get shouldCursorStartAtEnd() {
|
|
238
|
+
return this.type === 'currency';
|
|
239
|
+
}
|
|
237
240
|
get shouldCursorStayAtEnd() {
|
|
238
241
|
return this.isMobile && this.type === 'currency';
|
|
239
242
|
}
|
|
@@ -675,7 +678,7 @@ export class Q2Input {
|
|
|
675
678
|
"references": {
|
|
676
679
|
"InputType": {
|
|
677
680
|
"location": "local",
|
|
678
|
-
"path": "/workspace/workspace/
|
|
681
|
+
"path": "/workspace/workspace/_Gitlab_tecton-production_master/packages/q2-tecton-elements/src/components/q2-input/index.tsx"
|
|
679
682
|
}
|
|
680
683
|
}
|
|
681
684
|
},
|
|
@@ -1284,8 +1287,11 @@ export class Q2Input {
|
|
|
1284
1287
|
"cancelable": true,
|
|
1285
1288
|
"composed": true,
|
|
1286
1289
|
"docs": {
|
|
1287
|
-
"tags": [
|
|
1288
|
-
|
|
1290
|
+
"tags": [{
|
|
1291
|
+
"name": "legacyEvent",
|
|
1292
|
+
"text": undefined
|
|
1293
|
+
}],
|
|
1294
|
+
"text": "Emitted when the field value is updated."
|
|
1289
1295
|
},
|
|
1290
1296
|
"complexType": {
|
|
1291
1297
|
"original": "IEventDetail",
|
|
@@ -1304,8 +1310,11 @@ export class Q2Input {
|
|
|
1304
1310
|
"cancelable": true,
|
|
1305
1311
|
"composed": true,
|
|
1306
1312
|
"docs": {
|
|
1307
|
-
"tags": [
|
|
1308
|
-
|
|
1313
|
+
"tags": [{
|
|
1314
|
+
"name": "legacyEvent",
|
|
1315
|
+
"text": undefined
|
|
1316
|
+
}],
|
|
1317
|
+
"text": "Emitted when the field loses focus after the value has been changed."
|
|
1309
1318
|
},
|
|
1310
1319
|
"complexType": {
|
|
1311
1320
|
"original": "IEventDetail",
|
|
@@ -1325,17 +1334,12 @@ export class Q2Input {
|
|
|
1325
1334
|
"composed": true,
|
|
1326
1335
|
"docs": {
|
|
1327
1336
|
"tags": [],
|
|
1328
|
-
"text": ""
|
|
1337
|
+
"text": "Emitted when the field value is cleared.\n\nRequires the `clearable` prop to be set to `true`."
|
|
1329
1338
|
},
|
|
1330
1339
|
"complexType": {
|
|
1331
|
-
"original": "
|
|
1332
|
-
"resolved": "
|
|
1333
|
-
"references": {
|
|
1334
|
-
"IEventDetail": {
|
|
1335
|
-
"location": "import",
|
|
1336
|
-
"path": "./types"
|
|
1337
|
-
}
|
|
1338
|
-
}
|
|
1340
|
+
"original": "undefined",
|
|
1341
|
+
"resolved": "undefined",
|
|
1342
|
+
"references": {}
|
|
1339
1343
|
}
|
|
1340
1344
|
}, {
|
|
1341
1345
|
"method": "formatted",
|
|
@@ -1345,13 +1349,13 @@ export class Q2Input {
|
|
|
1345
1349
|
"composed": true,
|
|
1346
1350
|
"docs": {
|
|
1347
1351
|
"tags": [],
|
|
1348
|
-
"text": ""
|
|
1352
|
+
"text": "Emitted when the field value is formatted."
|
|
1349
1353
|
},
|
|
1350
1354
|
"complexType": {
|
|
1351
|
-
"original": "
|
|
1352
|
-
"resolved": "
|
|
1355
|
+
"original": "IFormatterValueObject",
|
|
1356
|
+
"resolved": "IFormatterValueObject",
|
|
1353
1357
|
"references": {
|
|
1354
|
-
"
|
|
1358
|
+
"IFormatterValueObject": {
|
|
1355
1359
|
"location": "import",
|
|
1356
1360
|
"path": "./types"
|
|
1357
1361
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-input/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n h,\n Watch,\n Listen,\n Fragment,\n Method,\n} from '@stencil/core';\nimport {\n createGuid,\n labelDOM,\n loc,\n messagesDOM,\n setMessageHeight,\n handleAriaLabel,\n overrideFocus,\n isEventFromElement,\n isMobile,\n hasSlotContent,\n nextPaint,\n} from 'src/utils';\nimport { IFormatterValueObject, ICursorData, IEventDetail } from './types';\nimport formatCurrency from './formatting/currency';\nimport formatPhoneNumber from './formatting/phone';\nimport formatSSN from './formatting/ssn';\nimport formatTIN from './formatting/tin';\nimport formatAlphanumeric from './formatting/alphanumeric';\nimport formatAlpha from './formatting/alpha';\nimport formatNumeric, { formatPercentage } from './formatting/numeric';\nimport formatPostalCode from './formatting/postal';\nimport formatDate from './formatting/date';\nimport formatCreditCard from './formatting/credit-card';\nimport { Q2Icon } from '../q2-icon';\nimport { Q2Badge } from '../q2-badge';\n\nconst inputTypeMap = {\n text: 'text',\n tel: 'tel',\n number: 'number',\n password: 'text',\n search: 'search',\n url: 'url',\n email: 'email',\n currency: 'text',\n phone: 'tel',\n ssn: 'text',\n alphanumeric: 'text',\n alpha: 'text',\n numeric: 'text',\n percentage: 'text',\n postal: 'text',\n date: 'text',\n 'credit-card': 'text',\n};\n\nexport type InputType = keyof typeof inputTypeMap;\n\n@Component({\n tag: 'q2-input',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Input {\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) type: InputType = 'text';\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) autocomplete: string;\n @Prop({ reflect: true }) autocorrect: 'on' | 'off';\n @Prop({ reflect: true }) autocapitalize: string;\n @Prop({ reflect: true }) autofocus: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) iconLeft: Q2Icon['type'];\n @Prop({ reflect: true }) iconRight: Q2Icon['type'];\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) showCount: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) min: number;\n @Prop({ reflect: true }) max: number;\n @Prop({ reflect: true }) step: number;\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) pseudo: boolean;\n @Prop({ reflect: true }) showVisibilityToggle: boolean = false;\n @Prop({ reflect: true, mutable: true }) textHidden: boolean;\n @Prop({ reflect: true }) badgeValue: string;\n @Prop({ reflect: true }) badgeTheme: Q2Badge['theme'];\n @Prop() role: string;\n @Prop() ariaControls: string;\n @Prop() ariaOwns: string;\n @Prop() ariaHaspopup: string;\n @Prop() ariaExpanded: string;\n @Prop() ariaActivedescendant: string;\n @Prop() current: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() formattedValueObject: IFormatterValueObject;\n @State() hasFocus: boolean;\n @State() isSmall: boolean = false;\n @State() checkSlotCount: number = 0;\n\n @Element() hostElement: HTMLElement;\n\n resizeObserver: ResizeObserver;\n scheduledAfterRender: (() => void)[] = [];\n valueOnFocus: string;\n isMobile: boolean = isMobile();\n mutationObserver: MutationObserver;\n textSelectedForDeletion: boolean;\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n Object.defineProperty(this.hostElement, 'formattedValue', {\n get: () => this.formattedValueObject?.formattedValue ?? '',\n });\n\n handleAriaLabel(this);\n if (this.textHidden === undefined) {\n this.textHidden = this.type === 'password';\n }\n\n this.manageClearableResizeObserver(this.clearable);\n }\n\n componentDidLoad() {\n if (!this.pseudo) {\n this.inputField.value = this.formattedValueObject.formattedValue;\n }\n\n if (this.autofocus === true) {\n this.inputField.focus();\n }\n\n overrideFocus(this.hostElement);\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.manageClearableResizeObserver();\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n onMutationObserved = () => {\n // Updating checkSlotCount to force re-render when slot content changes\n this.checkSlotCount = this.checkSlotCount + 1;\n };\n\n getFormattedValue(value: string, valueChangedFromProperty: boolean): IFormatterValueObject {\n const formattingFunctions = {\n currency: formatCurrency,\n phone: formatPhoneNumber,\n ssn: formatSSN,\n tin: formatTIN,\n alphanumeric: formatAlphanumeric,\n alpha: formatAlpha,\n numeric: formatNumeric,\n percentage: formatPercentage,\n postal: formatPostalCode,\n date: formatDate,\n 'credit-card': formatCreditCard.format,\n };\n\n if (formattingFunctions[this.type]) {\n return formattingFunctions[this.type](value, this.formatModifier, valueChangedFromProperty);\n }\n\n return {\n value,\n formattedValue: value,\n fullyFormattedValue: value,\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n get hasCustomDisplaySlot() {\n return !!this.hostElement.querySelector('[slot=custom-display]');\n }\n\n get canClear() {\n return this.clearable && !!(this.inputField?.value || this.value);\n }\n\n get shouldCursorStayAtEnd() {\n return this.isMobile && this.type === 'currency';\n }\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 inputField() {\n return this.hostElement.shadowRoot.querySelector<HTMLInputElement>('.input-field');\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n guid = createGuid();\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 hasInputLeftSlot() {\n return hasSlotContent(this.hostElement, 'input-left');\n }\n\n get hasInputRightSlot() {\n return hasSlotContent(this.hostElement, 'input-right');\n }\n\n get isMaskedType(): boolean {\n const maskedTypes: string[] = [\n 'currency',\n 'phone',\n 'ssn',\n 'tin',\n 'alphanumeric',\n 'alpha',\n 'numeric',\n 'percentage',\n 'postal',\n 'date',\n 'credit-card',\n ];\n\n return maskedTypes.includes(this.type);\n }\n\n get wrapperClasses() {\n const classNames = ['field-container'];\n if (this.hasError) classNames.push('has-error');\n if (!!this.value) classNames.push('has-value');\n if (this.clearable && !!this.value) classNames.push('has-clear');\n if (this.hasFocus) classNames.push('has-focus');\n if (this.isSmall) classNames.push('is-small');\n if (this.formattedValueObject.prefix) classNames.push('has-prefix');\n if (this.computedIconLeft) classNames.push('has-icon-left');\n if (this.showIconSeparator) classNames.push('has-icon-separator');\n if (this.formattedValueObject.suffix) classNames.push('has-suffix');\n if (!this.formattedValueObject.suffix && this.iconRight) classNames.push('has-icon-right');\n if (this.type === 'currency') classNames.push('right-aligned');\n else classNames.push('left-aligned');\n if (this.hasCustomDisplaySlot) classNames.push('has-custom-display');\n\n return classNames.join(' ');\n }\n\n get computedType() {\n if (['password', 'text', 'ssn'].includes(this.type) && this.textHidden) {\n return 'password';\n } else {\n return (this.type && inputTypeMap[this.type]) || 'text';\n }\n }\n\n get computedAutocomplete() {\n // force off for currency type\n if (this.type === 'currency') return 'transaction-amount';\n return this.autocomplete || 'off';\n }\n\n get computedIconLeft(): string | undefined {\n if (this.formattedValueObject.prefix) {\n return;\n }\n\n if (this.type === 'search') {\n return 'search';\n }\n\n if (this.formattedValueObject.leftIcon) {\n return this.formattedValueObject.leftIcon;\n }\n\n return this.iconLeft;\n }\n\n get showIconSeparator(): boolean {\n return this.type === 'credit-card' || !!this.formattedValueObject.prefix;\n }\n\n get computedClassForIconLeft(): string | undefined {\n let className = 'icon-left';\n if (this.formattedValueObject.leftIconMuted) {\n className += ' icon-left-muted';\n }\n return className;\n }\n\n get stringValue(): string {\n return (this.value && String(this.value)) || '';\n }\n\n get canSetSelection(): boolean {\n // email and number type don't support setSelectionRange\n return !['email', 'number'].includes(this.computedType);\n }\n\n get visibilityToggleText(): string {\n return loc(`tecton.element.input.toggle.${this.textHidden ? 'show' : 'hide'}`);\n }\n\n formatAndUpdateValueFromProp() {\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n if (!this.pseudo) {\n const setValue = () => {\n this.inputField.value = this.formattedValueObject.formattedValue;\n };\n\n this.inputField ? setValue() : this.scheduledAfterRender.push(() => setValue());\n }\n }\n\n get inputMode() {\n const inputModeMap = {\n currency: 'numeric',\n ssn: 'numeric',\n tin: 'numeric',\n numeric: 'decimal',\n percentage: 'decimal',\n postal: 'numeric',\n date: 'numeric',\n 'credit-card': 'numeric',\n };\n\n return (this.type && inputModeMap[this.type]) || undefined;\n }\n\n //////// OBSERVERS //////////\n\n @Watch('clearable')\n manageClearableResizeObserver(clearable?: boolean) {\n const isSmallThreshold = 190;\n if (clearable) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(([entry]) => {\n this.isSmall = isSmallThreshold > entry.contentRect.width;\n });\n this.resizeObserver.observe(this.hostElement);\n } else {\n this.isSmall = false;\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formattedValueObject')\n formattedValueObjectObserver() {\n this.formatted.emit(this.formattedValueObject);\n }\n\n @Watch('type')\n typeObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formatModifier')\n formatModifierObserver() {\n this.formatAndUpdateValueFromProp();\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 /// Methods ///\n /**\n * Emulates focusing the `<input>`, entering the provided value, and emitting an `input` event.\n *\n * This method leaves the focus on the `<input>` and as a result does not trigger the `change` event. If you want\n * to trigger the` change` event, move the focus to another element after calling this method.\n *\n * @testOnly\n */\n @Method()\n setValue(value: string) {\n const { inputField } = this;\n inputField.focus();\n inputField.dispatchEvent(new FocusEvent('focus'));\n inputField.value = value;\n inputField.dispatchEvent(new InputEvent('input'));\n }\n\n /**\n * Emulates clicking the clear button when the input is clearable.\n *\n * @warning\n * Only applicable when the input is clearable.\n *\n * @testOnly\n */\n @Method()\n clearValue() {\n if (!this.clearable) return;\n this.onClearInput();\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.inputField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n event.stopPropagation();\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<IEventDetail>;\n @Event() change: EventEmitter<IEventDetail>;\n @Event() clear: EventEmitter<IEventDetail>;\n @Event() formatted: EventEmitter<IEventDetail>;\n\n ///// ACTIONS ////////\n\n onToggleVisibility = () => {\n this.hostElement.dispatchEvent(new FocusEvent('focus'));\n this.textHidden = !this.textHidden;\n };\n\n onInputClick = () => {\n if (this.shouldCursorStayAtEnd) this.placeCursorAtEnd();\n };\n\n onInputFocus = () => {\n if (this.inputField.tagName === 'INPUT') {\n this.scheduledAfterRender.push(() =>\n this.shouldCursorStayAtEnd\n ? this.placeCursorAtEnd()\n : this.setCursorPosition(this.calculateCursorPositionOnFocus())\n );\n }\n this.hasFocus = true;\n setMessageHeight(this);\n this.valueOnFocus = this.value;\n };\n\n onInputBlur = () => {\n this.hasFocus = false;\n setMessageHeight(this);\n if (this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onInputInput = (event: InputEvent) => {\n event.stopPropagation();\n\n if (this.type === 'currency') this.handleCurrencyDeletion(event);\n const newFormattedValue = this.getFormattedValue((event.target as HTMLInputElement).value, false);\n this.handleDataInput(newFormattedValue);\n };\n\n handleCurrencyDeletion(event: InputEvent) {\n // Don't do anything if text was selected for deletion\n if (this.textSelectedForDeletion) {\n this.textSelectedForDeletion = false;\n return;\n }\n // We only care about \"Backspace\" and \"Delete\" events\n if (event.inputType !== 'deleteContentBackward' && event.inputType !== 'deleteContentForward') return;\n\n const input = event.target as HTMLInputElement;\n const cursorPosition = input.selectionStart;\n const { formattedValue } = this.formattedValueObject;\n\n if (cursorPosition === null) return;\n\n let cursorMap;\n switch (event.inputType) {\n case 'deleteContentBackward':\n const valueBeforeCursor = formattedValue.substring(0, cursorPosition + 1);\n const isPrevCharAlphaNum = /[a-zA-Z0-9]$/.test(valueBeforeCursor);\n cursorMap = {\n leftIndex: isPrevCharAlphaNum ? cursorPosition : cursorPosition - 1,\n rightIndex: isPrevCharAlphaNum ? cursorPosition + 1 : cursorPosition,\n afterCursorOffset: 0,\n newCursorOffset: 1,\n };\n break;\n case 'deleteContentForward':\n const valueAfterCursor = formattedValue.substring(cursorPosition);\n const isNextCharAlphaNum = /^[a-zA-Z0-9]/.test(valueAfterCursor);\n cursorMap = {\n leftIndex: isNextCharAlphaNum ? cursorPosition : cursorPosition + 1,\n rightIndex: isNextCharAlphaNum ? cursorPosition + 1 : cursorPosition + 2,\n afterCursorOffset: 1,\n newCursorOffset: 0,\n };\n break;\n default:\n return;\n }\n\n // Ensure the cursor doesn't move with a newly formatted value\n const newValue = [\n formattedValue.substring(0, cursorMap.leftIndex),\n formattedValue.substring(cursorMap.rightIndex),\n ].join('');\n const charactersAfterCursor = formattedValue.length - cursorPosition - cursorMap.afterCursorOffset;\n const newFormattedValue = this.getFormattedValue(newValue, false).formattedValue;\n const newCursorPosition = Math.max(\n newFormattedValue.length - charactersAfterCursor + cursorMap.newCursorOffset,\n 0\n );\n\n input.value = newFormattedValue;\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n\n // This handles a runtime issue when a character is deleted from the beginning of the input\n if (newCursorPosition === 0) {\n nextPaint(() => input.setSelectionRange(newCursorPosition, newCursorPosition));\n }\n }\n\n onInputPaste = (event: ClipboardEvent) => {\n if (this.type === 'currency') {\n const clipboardData = event.clipboardData.getData('text');\n const newFormattedValue = this.getFormattedValue(clipboardData, true);\n event.preventDefault();\n this.handleDataInput(newFormattedValue);\n }\n };\n\n handleDataInput(newFormattedValue: IFormatterValueObject) {\n if (\n this.maxlength === undefined ||\n newFormattedValue.unformattedValue.length <= this.maxlength ||\n newFormattedValue.unformattedValue.length <= this.formattedValueObject.unformattedValue.length\n ) {\n this.formattedValueObject = newFormattedValue;\n } else if (this.maxlength) {\n newFormattedValue = this.getFormattedValue(\n newFormattedValue.unformattedValue.substring(0, this.maxlength),\n false\n );\n this.formattedValueObject = newFormattedValue;\n }\n this.handleValueAndCursor();\n }\n\n handleValueAndCursor = () => {\n // ORDER IMPORTANT: calculate cursor position -> set value -> set cursor position\n const cursorPosition = this.calculateCursorPositionOnInput();\n // when type=number: returns only valid decimal on input event, should not update itself (e.g. typing \"1.\" )\n if (this.type !== 'number') this.inputField.value = this.formattedValueObject.formattedValue;\n this.input.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n if (!this.formattedValueObject.value) {\n this.clear.emit();\n }\n this.setCursorPosition(cursorPosition);\n };\n\n // Sets textSelectedForDeletion to true if the user has selected text for deletion\n // This is used to prevent other logic from running when text is deleted\n handleCurrencyKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Backspace' && event.key !== 'Delete') return;\n const inputElement = this.inputField;\n this.textSelectedForDeletion = inputElement.selectionStart !== inputElement.selectionEnd;\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const keysThatMoveCursor = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];\n const { key } = event;\n\n if (this.type === 'currency') this.handleCurrencyKeydown(event);\n if (this.shouldCursorStayAtEnd && keysThatMoveCursor.includes(key)) event.preventDefault();\n if (key === 'Enter' && this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onClearInput = () => {\n const eventDetail = {\n value: '',\n formattedValue: '',\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n };\n this.input.emit(eventDetail);\n this.change.emit(eventDetail);\n this.clear.emit();\n this.inputField.focus();\n };\n\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n <div class=\"label-wrapper\">\n {labelDOM(this)}\n {this.countDOM()}\n </div>\n {this.inputContainerDOM()}\n {messagesDOM(this)}\n </div>\n );\n }\n\n countDOM() {\n if (!this.showCount) return;\n const { maxlength, formattedValueObject } = this;\n\n return (\n <div class=\"count-tag\">\n {formattedValueObject.unformattedValue.length}\n {maxlength && `/${maxlength}`}\n </div>\n );\n }\n\n /* tslint:disable:cyclomatic-complexity */\n inputContainerDOM() {\n const { hasInputLeftSlot, hasInputRightSlot } = this;\n return (\n <div\n class=\"input-container\"\n tabindex={-1}\n test-id=\"inputContainer\"\n >\n <div class=\"input-icons-container-left\">\n {this.formattedValueObject.prefix && (\n <div class=\"input-prefix\">{this.formattedValueObject.prefix}</div>\n )}\n {this.computedIconLeft && (\n <div>\n <q2-icon\n type={this.computedIconLeft}\n class={this.computedClassForIconLeft}\n />\n </div>\n )}\n {hasInputLeftSlot && <slot name=\"input-left\" />}\n {this.showIconSeparator && <div class=\"vertical-separator\" />}\n {this.hasError && this.type === 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n </div>\n {this.pseudo ? this.pseudoInputDOM() : this.standardInputDOM()}\n <div class=\"input-icons-container-right\">\n {this.canClear && (\n <q2-btn\n class=\"btn-clear\"\n ariaLabel={loc('tecton.element.input.clear', [this.label])}\n test-id=\"clearButton\"\n onClick={this.onClearInput}\n >\n <q2-icon\n type=\"close\"\n class=\"icon-clear\"\n />\n </q2-btn>\n )}\n {['password', 'text', 'ssn', 'tin'].includes(this.type) && this.showVisibilityToggle && (\n <q2-btn\n class=\"btn-visibility-toggle\"\n test-id=\"toggleVisibilityButton\"\n onClick={this.onToggleVisibility}\n >\n {this.visibilityToggleText}\n </q2-btn>\n )}\n {this.formattedValueObject.suffix && (\n <span class=\"input-suffix\">{this.formattedValueObject.suffix}</span>\n )}\n {this.badgeValue && (\n <q2-badge\n size=\"large\"\n theme={this.badgeTheme}\n >\n {this.badgeValue}\n </q2-badge>\n )}\n {this.hasError && this.type !== 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n {this.iconRight && !this.formattedValueObject.suffix && (\n <div>\n <q2-icon\n type={this.iconRight}\n class=\"icon-right\"\n />\n </div>\n )}\n {hasInputRightSlot && <slot name=\"input-right\" />}\n </div>\n </div>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n /* tslint:disable:cyclomatic-complexity */\n standardInputDOM() {\n const { hasCustomDisplaySlot } = this;\n const inputClasses = ['input-field'];\n if (hasCustomDisplaySlot) inputClasses.push('sr');\n return (\n <Fragment>\n {hasCustomDisplaySlot && (\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\"></slot>\n </div>\n )}\n <input\n class={inputClasses.join(' ')}\n id={this.inputId}\n type={this.computedType}\n size={this.formattedValueObject.prefix ? 10 : undefined}\n max={this.max}\n min={this.min}\n step={this.step}\n aria-current={this.current || undefined}\n aria-describedby={this.inputDescribedBy}\n aria-required={`${!this.optional}`}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={(!!this.ariaExpanded && `${!!this.ariaExpanded}`) || undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n autocomplete={this.computedAutocomplete}\n autocapitalize={this.autocapitalize}\n autocorrect={this.autocorrect === 'on' ? 'on' : 'off'}\n autofocus={this.autofocus}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n role={(this.role && `${this.role}`) || undefined}\n test-id=\"inputField\"\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onClick={this.onInputClick}\n onKeyDown={this.onInputKeydown}\n onInput={this.onInputInput}\n onPaste={this.onInputPaste}\n inputmode={this.inputMode}\n />\n </Fragment>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n pseudoInputDOM() {\n const showPlaceholder = !this.value && !!this.placeholder;\n return (\n <div class=\"pseudo-input-container\">\n <button\n class=\"input-field\"\n type=\"button\"\n id={this.inputId}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={this.ariaExpanded === 'true' ? 'true' : undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n role={(this.role && `${this.role}`) || undefined}\n disabled={!!this.disabled}\n test-id=\"q2InputInnerClearButton\"\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n >\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\">\n <span class={showPlaceholder ? 'placeholder-text' : ''}>\n {showPlaceholder ? this.placeholder : this.value}\n </span>\n </slot>\n </div>\n </button>\n </div>\n );\n }\n\n placeCursorAtEnd() {\n const { inputField } = this;\n inputField.selectionStart = inputField.selectionEnd = inputField.value.length;\n }\n\n calculateCursorPositionOnInput(): ICursorData {\n const input = this.inputField;\n const formattedLength = this.formattedValueObject.formattedValue.length;\n const currentValueLength = input.value.length;\n const defaultPosition = this.type === 'currency' ? formattedLength : 0;\n return {\n startingPosition: (input && input.selectionStart) || defaultPosition,\n valueLength: formattedLength,\n previousValueLength: input && currentValueLength,\n hasSelection: false,\n };\n }\n\n calculateCursorPositionOnFocus(): ICursorData {\n const { inputField } = this;\n const valueLength = inputField?.value?.length ?? 0;\n const startingPosition = inputField?.selectionStart ?? valueLength;\n\n return {\n startingPosition,\n valueLength,\n previousValueLength: valueLength,\n hasSelection: getSelection().toString().length > 0,\n };\n }\n\n setCursorPosition(cursorData: ICursorData) {\n if (this.canSetSelection && !cursorData.hasSelection) {\n const input = this.inputField;\n const { valueLength, previousValueLength, startingPosition } = cursorData;\n\n if (this.type === 'currency') {\n if (previousValueLength - valueLength === 1) {\n input.setSelectionRange(startingPosition - 1, startingPosition - 1);\n } else {\n const difference = previousValueLength - valueLength;\n input.setSelectionRange(startingPosition - difference, startingPosition - difference);\n }\n }\n\n if (this.type !== 'currency') {\n const difference = valueLength - previousValueLength;\n // Never allow the cursor to move in reverse\n const newPosition = startingPosition + (difference > 0 ? difference : 0);\n input.setSelectionRange(newPosition, newPosition);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-input/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n h,\n Watch,\n Listen,\n Fragment,\n Method,\n} from '@stencil/core';\nimport {\n createGuid,\n labelDOM,\n loc,\n messagesDOM,\n setMessageHeight,\n handleAriaLabel,\n overrideFocus,\n isEventFromElement,\n isMobile,\n hasSlotContent,\n nextPaint,\n} from 'src/utils';\nimport { IFormatterValueObject, ICursorData, IEventDetail } from './types';\nimport formatCurrency from './formatting/currency';\nimport formatPhoneNumber from './formatting/phone';\nimport formatSSN from './formatting/ssn';\nimport formatTIN from './formatting/tin';\nimport formatAlphanumeric from './formatting/alphanumeric';\nimport formatAlpha from './formatting/alpha';\nimport formatNumeric, { formatPercentage } from './formatting/numeric';\nimport formatPostalCode from './formatting/postal';\nimport formatDate from './formatting/date';\nimport formatCreditCard from './formatting/credit-card';\nimport { Q2Icon } from '../q2-icon';\nimport { Q2Badge } from '../q2-badge';\n\nconst inputTypeMap = {\n text: 'text',\n tel: 'tel',\n number: 'number',\n password: 'text',\n search: 'search',\n url: 'url',\n email: 'email',\n currency: 'text',\n phone: 'tel',\n ssn: 'text',\n alphanumeric: 'text',\n alpha: 'text',\n numeric: 'text',\n percentage: 'text',\n postal: 'text',\n date: 'text',\n 'credit-card': 'text',\n};\n\nexport type InputType = keyof typeof inputTypeMap;\n\n@Component({\n tag: 'q2-input',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Input {\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) type: InputType = 'text';\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) autocomplete: string;\n @Prop({ reflect: true }) autocorrect: 'on' | 'off';\n @Prop({ reflect: true }) autocapitalize: string;\n @Prop({ reflect: true }) autofocus: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) iconLeft: Q2Icon['type'];\n @Prop({ reflect: true }) iconRight: Q2Icon['type'];\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) showCount: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) min: number;\n @Prop({ reflect: true }) max: number;\n @Prop({ reflect: true }) step: number;\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) pseudo: boolean;\n @Prop({ reflect: true }) showVisibilityToggle: boolean = false;\n @Prop({ reflect: true, mutable: true }) textHidden: boolean;\n @Prop({ reflect: true }) badgeValue: string;\n @Prop({ reflect: true }) badgeTheme: Q2Badge['theme'];\n @Prop() role: string;\n @Prop() ariaControls: string;\n @Prop() ariaOwns: string;\n @Prop() ariaHaspopup: string;\n @Prop() ariaExpanded: string;\n @Prop() ariaActivedescendant: string;\n @Prop() current: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() formattedValueObject: IFormatterValueObject;\n @State() hasFocus: boolean;\n @State() isSmall: boolean = false;\n @State() checkSlotCount: number = 0;\n\n @Element() hostElement: HTMLElement;\n\n resizeObserver: ResizeObserver;\n scheduledAfterRender: (() => void)[] = [];\n valueOnFocus: string;\n isMobile: boolean = isMobile();\n mutationObserver: MutationObserver;\n textSelectedForDeletion: boolean;\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n Object.defineProperty(this.hostElement, 'formattedValue', {\n get: () => this.formattedValueObject?.formattedValue ?? '',\n });\n\n handleAriaLabel(this);\n if (this.textHidden === undefined) {\n this.textHidden = this.type === 'password';\n }\n\n this.manageClearableResizeObserver(this.clearable);\n }\n\n componentDidLoad() {\n if (!this.pseudo) {\n this.inputField.value = this.formattedValueObject.formattedValue;\n }\n\n if (this.autofocus === true) {\n this.inputField.focus();\n }\n\n overrideFocus(this.hostElement);\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.manageClearableResizeObserver();\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n onMutationObserved = () => {\n // Updating checkSlotCount to force re-render when slot content changes\n this.checkSlotCount = this.checkSlotCount + 1;\n };\n\n getFormattedValue(value: string, valueChangedFromProperty: boolean): IFormatterValueObject {\n const formattingFunctions = {\n currency: formatCurrency,\n phone: formatPhoneNumber,\n ssn: formatSSN,\n tin: formatTIN,\n alphanumeric: formatAlphanumeric,\n alpha: formatAlpha,\n numeric: formatNumeric,\n percentage: formatPercentage,\n postal: formatPostalCode,\n date: formatDate,\n 'credit-card': formatCreditCard.format,\n };\n\n if (formattingFunctions[this.type]) {\n return formattingFunctions[this.type](value, this.formatModifier, valueChangedFromProperty);\n }\n\n return {\n value,\n formattedValue: value,\n fullyFormattedValue: value,\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n get hasCustomDisplaySlot() {\n return !!this.hostElement.querySelector('[slot=custom-display]');\n }\n\n get canClear() {\n return this.clearable && !!(this.inputField?.value || this.value);\n }\n\n get shouldCursorStartAtEnd() {\n return this.type === 'currency';\n }\n\n get shouldCursorStayAtEnd() {\n return this.isMobile && this.type === 'currency';\n }\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 inputField() {\n return this.hostElement.shadowRoot.querySelector<HTMLInputElement>('.input-field');\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n guid = createGuid();\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 hasInputLeftSlot() {\n return hasSlotContent(this.hostElement, 'input-left');\n }\n\n get hasInputRightSlot() {\n return hasSlotContent(this.hostElement, 'input-right');\n }\n\n get isMaskedType(): boolean {\n const maskedTypes: string[] = [\n 'currency',\n 'phone',\n 'ssn',\n 'tin',\n 'alphanumeric',\n 'alpha',\n 'numeric',\n 'percentage',\n 'postal',\n 'date',\n 'credit-card',\n ];\n\n return maskedTypes.includes(this.type);\n }\n\n get wrapperClasses() {\n const classNames = ['field-container'];\n if (this.hasError) classNames.push('has-error');\n if (!!this.value) classNames.push('has-value');\n if (this.clearable && !!this.value) classNames.push('has-clear');\n if (this.hasFocus) classNames.push('has-focus');\n if (this.isSmall) classNames.push('is-small');\n if (this.formattedValueObject.prefix) classNames.push('has-prefix');\n if (this.computedIconLeft) classNames.push('has-icon-left');\n if (this.showIconSeparator) classNames.push('has-icon-separator');\n if (this.formattedValueObject.suffix) classNames.push('has-suffix');\n if (!this.formattedValueObject.suffix && this.iconRight) classNames.push('has-icon-right');\n if (this.type === 'currency') classNames.push('right-aligned');\n else classNames.push('left-aligned');\n if (this.hasCustomDisplaySlot) classNames.push('has-custom-display');\n\n return classNames.join(' ');\n }\n\n get computedType() {\n if (['password', 'text', 'ssn'].includes(this.type) && this.textHidden) {\n return 'password';\n } else {\n return (this.type && inputTypeMap[this.type]) || 'text';\n }\n }\n\n get computedAutocomplete() {\n // force off for currency type\n if (this.type === 'currency') return 'transaction-amount';\n return this.autocomplete || 'off';\n }\n\n get computedIconLeft(): string | undefined {\n if (this.formattedValueObject.prefix) {\n return;\n }\n\n if (this.type === 'search') {\n return 'search';\n }\n\n if (this.formattedValueObject.leftIcon) {\n return this.formattedValueObject.leftIcon;\n }\n\n return this.iconLeft;\n }\n\n get showIconSeparator(): boolean {\n return this.type === 'credit-card' || !!this.formattedValueObject.prefix;\n }\n\n get computedClassForIconLeft(): string | undefined {\n let className = 'icon-left';\n if (this.formattedValueObject.leftIconMuted) {\n className += ' icon-left-muted';\n }\n return className;\n }\n\n get stringValue(): string {\n return (this.value && String(this.value)) || '';\n }\n\n get canSetSelection(): boolean {\n // email and number type don't support setSelectionRange\n return !['email', 'number'].includes(this.computedType);\n }\n\n get visibilityToggleText(): string {\n return loc(`tecton.element.input.toggle.${this.textHidden ? 'show' : 'hide'}`);\n }\n\n formatAndUpdateValueFromProp() {\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n if (!this.pseudo) {\n const setValue = () => {\n this.inputField.value = this.formattedValueObject.formattedValue;\n };\n\n this.inputField ? setValue() : this.scheduledAfterRender.push(() => setValue());\n }\n }\n\n get inputMode() {\n const inputModeMap = {\n currency: 'numeric',\n ssn: 'numeric',\n tin: 'numeric',\n numeric: 'decimal',\n percentage: 'decimal',\n postal: 'numeric',\n date: 'numeric',\n 'credit-card': 'numeric',\n };\n\n return (this.type && inputModeMap[this.type]) || undefined;\n }\n\n //////// OBSERVERS //////////\n\n @Watch('clearable')\n manageClearableResizeObserver(clearable?: boolean) {\n const isSmallThreshold = 190;\n if (clearable) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(([entry]) => {\n this.isSmall = isSmallThreshold > entry.contentRect.width;\n });\n this.resizeObserver.observe(this.hostElement);\n } else {\n this.isSmall = false;\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formattedValueObject')\n formattedValueObjectObserver() {\n this.formatted.emit(this.formattedValueObject);\n }\n\n @Watch('type')\n typeObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formatModifier')\n formatModifierObserver() {\n this.formatAndUpdateValueFromProp();\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 /// Methods ///\n /**\n * Emulates focusing the `<input>`, entering the provided value, and emitting an `input` event.\n *\n * This method leaves the focus on the `<input>` and as a result does not trigger the `change` event. If you want\n * to trigger the` change` event, move the focus to another element after calling this method.\n *\n * @testOnly\n */\n @Method()\n setValue(value: string) {\n const { inputField } = this;\n inputField.focus();\n inputField.dispatchEvent(new FocusEvent('focus'));\n inputField.value = value;\n inputField.dispatchEvent(new InputEvent('input'));\n }\n\n /**\n * Emulates clicking the clear button when the input is clearable.\n *\n * @warning\n * Only applicable when the input is clearable.\n *\n * @testOnly\n */\n @Method()\n clearValue() {\n if (!this.clearable) return;\n this.onClearInput();\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.inputField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n event.stopPropagation();\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n ///////// Events /////////\n\n /**\n * Emitted when the field value is updated.\n * @legacyEvent\n */\n @Event() input: EventEmitter<IEventDetail>;\n\n /**\n * Emitted when the field loses focus after the value has been changed.\n * @legacyEvent\n */\n @Event() change: EventEmitter<IEventDetail>;\n\n /**\n * Emitted when the field value is cleared.\n *\n * Requires the `clearable` prop to be set to `true`.\n */\n @Event() clear: EventEmitter<undefined>;\n\n /**\n * Emitted when the field value is formatted.\n */\n @Event() formatted: EventEmitter<IFormatterValueObject>;\n\n ///// ACTIONS ////////\n\n onToggleVisibility = () => {\n this.hostElement.dispatchEvent(new FocusEvent('focus'));\n this.textHidden = !this.textHidden;\n };\n\n onInputClick = () => {\n if (this.shouldCursorStayAtEnd) this.placeCursorAtEnd();\n };\n\n onInputFocus = () => {\n if (this.inputField.tagName === 'INPUT') {\n this.scheduledAfterRender.push(() =>\n this.shouldCursorStartAtEnd\n ? this.placeCursorAtEnd()\n : this.setCursorPosition(this.calculateCursorPositionOnFocus())\n );\n }\n this.hasFocus = true;\n setMessageHeight(this);\n this.valueOnFocus = this.value;\n };\n\n onInputBlur = () => {\n this.hasFocus = false;\n setMessageHeight(this);\n if (this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onInputInput = (event: InputEvent) => {\n event.stopPropagation();\n\n if (this.type === 'currency') this.handleCurrencyDeletion(event);\n const newFormattedValue = this.getFormattedValue((event.target as HTMLInputElement).value, false);\n this.handleDataInput(newFormattedValue);\n };\n\n handleCurrencyDeletion(event: InputEvent) {\n // Don't do anything if text was selected for deletion\n if (this.textSelectedForDeletion) {\n this.textSelectedForDeletion = false;\n return;\n }\n // We only care about \"Backspace\" and \"Delete\" events\n if (event.inputType !== 'deleteContentBackward' && event.inputType !== 'deleteContentForward') return;\n\n const input = event.target as HTMLInputElement;\n const cursorPosition = input.selectionStart;\n const { formattedValue } = this.formattedValueObject;\n\n if (cursorPosition === null) return;\n\n let cursorMap;\n switch (event.inputType) {\n case 'deleteContentBackward':\n const valueBeforeCursor = formattedValue.substring(0, cursorPosition + 1);\n const isPrevCharAlphaNum = /[a-zA-Z0-9]$/.test(valueBeforeCursor);\n cursorMap = {\n leftIndex: isPrevCharAlphaNum ? cursorPosition : cursorPosition - 1,\n rightIndex: isPrevCharAlphaNum ? cursorPosition + 1 : cursorPosition,\n afterCursorOffset: 0,\n newCursorOffset: 1,\n };\n break;\n case 'deleteContentForward':\n const valueAfterCursor = formattedValue.substring(cursorPosition);\n const isNextCharAlphaNum = /^[a-zA-Z0-9]/.test(valueAfterCursor);\n cursorMap = {\n leftIndex: isNextCharAlphaNum ? cursorPosition : cursorPosition + 1,\n rightIndex: isNextCharAlphaNum ? cursorPosition + 1 : cursorPosition + 2,\n afterCursorOffset: 1,\n newCursorOffset: 0,\n };\n break;\n default:\n return;\n }\n\n // Ensure the cursor doesn't move with a newly formatted value\n const newValue = [\n formattedValue.substring(0, cursorMap.leftIndex),\n formattedValue.substring(cursorMap.rightIndex),\n ].join('');\n const charactersAfterCursor = formattedValue.length - cursorPosition - cursorMap.afterCursorOffset;\n const newFormattedValue = this.getFormattedValue(newValue, false).formattedValue;\n const newCursorPosition = Math.max(\n newFormattedValue.length - charactersAfterCursor + cursorMap.newCursorOffset,\n 0\n );\n\n input.value = newFormattedValue;\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n\n // This handles a runtime issue when a character is deleted from the beginning of the input\n if (newCursorPosition === 0) {\n nextPaint(() => input.setSelectionRange(newCursorPosition, newCursorPosition));\n }\n }\n\n onInputPaste = (event: ClipboardEvent) => {\n if (this.type === 'currency') {\n const clipboardData = event.clipboardData.getData('text');\n const newFormattedValue = this.getFormattedValue(clipboardData, true);\n event.preventDefault();\n this.handleDataInput(newFormattedValue);\n }\n };\n\n handleDataInput(newFormattedValue: IFormatterValueObject) {\n if (\n this.maxlength === undefined ||\n newFormattedValue.unformattedValue.length <= this.maxlength ||\n newFormattedValue.unformattedValue.length <= this.formattedValueObject.unformattedValue.length\n ) {\n this.formattedValueObject = newFormattedValue;\n } else if (this.maxlength) {\n newFormattedValue = this.getFormattedValue(\n newFormattedValue.unformattedValue.substring(0, this.maxlength),\n false\n );\n this.formattedValueObject = newFormattedValue;\n }\n this.handleValueAndCursor();\n }\n\n handleValueAndCursor = () => {\n // ORDER IMPORTANT: calculate cursor position -> set value -> set cursor position\n const cursorPosition = this.calculateCursorPositionOnInput();\n // when type=number: returns only valid decimal on input event, should not update itself (e.g. typing \"1.\" )\n if (this.type !== 'number') this.inputField.value = this.formattedValueObject.formattedValue;\n this.input.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n if (!this.formattedValueObject.value) {\n this.clear.emit();\n }\n this.setCursorPosition(cursorPosition);\n };\n\n // Sets textSelectedForDeletion to true if the user has selected text for deletion\n // This is used to prevent other logic from running when text is deleted\n handleCurrencyKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Backspace' && event.key !== 'Delete') return;\n const inputElement = this.inputField;\n this.textSelectedForDeletion = inputElement.selectionStart !== inputElement.selectionEnd;\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const keysThatMoveCursor = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];\n const { key } = event;\n\n if (this.type === 'currency') this.handleCurrencyKeydown(event);\n if (this.shouldCursorStayAtEnd && keysThatMoveCursor.includes(key)) event.preventDefault();\n if (key === 'Enter' && this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onClearInput = () => {\n const eventDetail = {\n value: '',\n formattedValue: '',\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n };\n this.input.emit(eventDetail);\n this.change.emit(eventDetail);\n this.clear.emit();\n this.inputField.focus();\n };\n\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n <div class=\"label-wrapper\">\n {labelDOM(this)}\n {this.countDOM()}\n </div>\n {this.inputContainerDOM()}\n {messagesDOM(this)}\n </div>\n );\n }\n\n countDOM() {\n if (!this.showCount) return;\n const { maxlength, formattedValueObject } = this;\n\n return (\n <div class=\"count-tag\">\n {formattedValueObject.unformattedValue.length}\n {maxlength && `/${maxlength}`}\n </div>\n );\n }\n\n /* tslint:disable:cyclomatic-complexity */\n inputContainerDOM() {\n const { hasInputLeftSlot, hasInputRightSlot } = this;\n return (\n <div\n class=\"input-container\"\n tabindex={-1}\n test-id=\"inputContainer\"\n >\n <div class=\"input-icons-container-left\">\n {this.formattedValueObject.prefix && (\n <div class=\"input-prefix\">{this.formattedValueObject.prefix}</div>\n )}\n {this.computedIconLeft && (\n <div>\n <q2-icon\n type={this.computedIconLeft}\n class={this.computedClassForIconLeft}\n />\n </div>\n )}\n {hasInputLeftSlot && <slot name=\"input-left\" />}\n {this.showIconSeparator && <div class=\"vertical-separator\" />}\n {this.hasError && this.type === 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n </div>\n {this.pseudo ? this.pseudoInputDOM() : this.standardInputDOM()}\n <div class=\"input-icons-container-right\">\n {this.canClear && (\n <q2-btn\n class=\"btn-clear\"\n ariaLabel={loc('tecton.element.input.clear', [this.label])}\n test-id=\"clearButton\"\n onClick={this.onClearInput}\n >\n <q2-icon\n type=\"close\"\n class=\"icon-clear\"\n />\n </q2-btn>\n )}\n {['password', 'text', 'ssn', 'tin'].includes(this.type) && this.showVisibilityToggle && (\n <q2-btn\n class=\"btn-visibility-toggle\"\n test-id=\"toggleVisibilityButton\"\n onClick={this.onToggleVisibility}\n >\n {this.visibilityToggleText}\n </q2-btn>\n )}\n {this.formattedValueObject.suffix && (\n <span class=\"input-suffix\">{this.formattedValueObject.suffix}</span>\n )}\n {this.badgeValue && (\n <q2-badge\n size=\"large\"\n theme={this.badgeTheme}\n >\n {this.badgeValue}\n </q2-badge>\n )}\n {this.hasError && this.type !== 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n {this.iconRight && !this.formattedValueObject.suffix && (\n <div>\n <q2-icon\n type={this.iconRight}\n class=\"icon-right\"\n />\n </div>\n )}\n {hasInputRightSlot && <slot name=\"input-right\" />}\n </div>\n </div>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n /* tslint:disable:cyclomatic-complexity */\n standardInputDOM() {\n const { hasCustomDisplaySlot } = this;\n const inputClasses = ['input-field'];\n if (hasCustomDisplaySlot) inputClasses.push('sr');\n return (\n <Fragment>\n {hasCustomDisplaySlot && (\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\"></slot>\n </div>\n )}\n <input\n class={inputClasses.join(' ')}\n id={this.inputId}\n type={this.computedType}\n size={this.formattedValueObject.prefix ? 10 : undefined}\n max={this.max}\n min={this.min}\n step={this.step}\n aria-current={this.current || undefined}\n aria-describedby={this.inputDescribedBy}\n aria-required={`${!this.optional}`}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={(!!this.ariaExpanded && `${!!this.ariaExpanded}`) || undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n autocomplete={this.computedAutocomplete}\n autocapitalize={this.autocapitalize}\n autocorrect={this.autocorrect === 'on' ? 'on' : 'off'}\n autofocus={this.autofocus}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n role={(this.role && `${this.role}`) || undefined}\n test-id=\"inputField\"\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onClick={this.onInputClick}\n onKeyDown={this.onInputKeydown}\n onInput={this.onInputInput}\n onPaste={this.onInputPaste}\n inputmode={this.inputMode}\n />\n </Fragment>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n pseudoInputDOM() {\n const showPlaceholder = !this.value && !!this.placeholder;\n return (\n <div class=\"pseudo-input-container\">\n <button\n class=\"input-field\"\n type=\"button\"\n id={this.inputId}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={this.ariaExpanded === 'true' ? 'true' : undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n role={(this.role && `${this.role}`) || undefined}\n disabled={!!this.disabled}\n test-id=\"q2InputInnerClearButton\"\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n >\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\">\n <span class={showPlaceholder ? 'placeholder-text' : ''}>\n {showPlaceholder ? this.placeholder : this.value}\n </span>\n </slot>\n </div>\n </button>\n </div>\n );\n }\n\n placeCursorAtEnd() {\n const { inputField } = this;\n inputField.selectionStart = inputField.selectionEnd = inputField.value.length;\n }\n\n calculateCursorPositionOnInput(): ICursorData {\n const input = this.inputField;\n const formattedLength = this.formattedValueObject.formattedValue.length;\n const currentValueLength = input.value.length;\n const defaultPosition = this.type === 'currency' ? formattedLength : 0;\n return {\n startingPosition: (input && input.selectionStart) || defaultPosition,\n valueLength: formattedLength,\n previousValueLength: input && currentValueLength,\n hasSelection: false,\n };\n }\n\n calculateCursorPositionOnFocus(): ICursorData {\n const { inputField } = this;\n const valueLength = inputField?.value?.length ?? 0;\n const startingPosition = inputField?.selectionStart ?? valueLength;\n\n return {\n startingPosition,\n valueLength,\n previousValueLength: valueLength,\n hasSelection: getSelection().toString().length > 0,\n };\n }\n\n setCursorPosition(cursorData: ICursorData) {\n if (this.canSetSelection && !cursorData.hasSelection) {\n const input = this.inputField;\n const { valueLength, previousValueLength, startingPosition } = cursorData;\n\n if (this.type === 'currency') {\n if (previousValueLength - valueLength === 1) {\n input.setSelectionRange(startingPosition - 1, startingPosition - 1);\n } else {\n const difference = previousValueLength - valueLength;\n input.setSelectionRange(startingPosition - difference, startingPosition - difference);\n }\n }\n\n if (this.type !== 'currency') {\n const difference = valueLength - previousValueLength;\n // Never allow the cursor to move in reverse\n const newPosition = startingPosition + (difference > 0 ? difference : 0);\n input.setSelectionRange(newPosition, newPosition);\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/q2-input/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IValueObject {\n value: string;\n formattedValue: string;\n}\n\nexport interface IFormatterValueObject extends IValueObject {\n fullyFormattedValue: string;\n prefix?: string;\n suffix?: string;\n formattingCharacterCount?: number;\n maxlength?: number;\n minFormattedLength?: number;\n unformattedValue?: string;\n type?: string;\n leftIcon?: string;\n leftIconMuted?: boolean;\n}\n\nexport interface IEventDetail extends IValueObject {\n minFormattedLength?: number;\n}\n\nexport interface ICursorData {\n startingPosition: number;\n valueLength: number;\n previousValueLength: number;\n hasSelection: boolean;\n}\n\nexport interface INumberInputFormatOptions {\n prefix: string;\n suffix: string;\n decimals: number;\n decimalSeparator: string;\n thousandsSeparator: string;\n allowDecimal?: boolean;\n allowNegative?: boolean;\n maxLength?: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/q2-input/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IValueObject {\n value: string;\n formattedValue: string;\n}\n\nexport interface IFormatterValueObject extends IValueObject {\n fullyFormattedValue: string;\n prefix?: string;\n suffix?: string;\n formattingCharacterCount?: number;\n maxlength?: number;\n minFormattedLength?: number;\n unformattedValue?: string;\n type?: string;\n leftIcon?: string;\n leftIconMuted?: boolean;\n}\n\nexport interface IEventDetail extends IValueObject {\n minFormattedLength?: number;\n // Credit card type\n type?: string;\n}\n\nexport interface ICursorData {\n startingPosition: number;\n valueLength: number;\n previousValueLength: number;\n hasSelection: boolean;\n}\n\nexport interface INumberInputFormatOptions {\n prefix: string;\n suffix: string;\n decimals: number;\n decimalSeparator: string;\n thousandsSeparator: string;\n allowDecimal?: boolean;\n allowNegative?: boolean;\n maxLength?: number;\n}\n"]}
|
|
@@ -249,8 +249,11 @@ export class Q2Option {
|
|
|
249
249
|
"cancelable": true,
|
|
250
250
|
"composed": true,
|
|
251
251
|
"docs": {
|
|
252
|
-
"tags": [
|
|
253
|
-
|
|
252
|
+
"tags": [{
|
|
253
|
+
"name": "private",
|
|
254
|
+
"text": undefined
|
|
255
|
+
}],
|
|
256
|
+
"text": "Used by consuming elements to indicate the display value of the option has changed."
|
|
254
257
|
},
|
|
255
258
|
"complexType": {
|
|
256
259
|
"original": "{ value: string; display: string }",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-option/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAsB,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAO3G,MAAM,OAAO,QAAQ;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-option/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, ComponentInterface, Host, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'q2-option',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Option implements ComponentInterface {\n /**\n * Used by q2-option-list to set a role on the option\n * @type {('option' | 'menuitem')}\n * @private\n */\n @Prop({ reflect: true }) role: string = 'option';\n @Prop({ mutable: true }) display: string;\n @Prop({ reflect: true }) value: string;\n @Prop({ reflect: true }) disabled: boolean;\n /**\n * Used by consuming elements to disable all options in the group\n * @private\n */\n @Prop({ reflect: true }) disabledGroup: boolean;\n /**\n * Used by q2-option-list to indicate the option is selected\n * @private\n */\n @Prop({ reflect: true }) selected: boolean;\n /**\n * Used by consuming elements to enable multiline content support\n * @private\n */\n @Prop({ reflect: true }) multiline: boolean;\n /**\n * Used by q2-option-list to indicate the option is active\n * @private\n */\n @Prop({ reflect: true }) active: boolean;\n @Prop({ reflect: true, attribute: '_multiSelectHidden' }) _multiSelectHidden: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Used by consuming elements to indicate the display value of the option has changed.\n * @private\n */\n @Event() displayChanged: EventEmitter<{ value: string; display: string }>;\n\n mutationObserver: MutationObserver;\n\n componentWillLoad() {\n this.initDisplay();\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.mutationHandler);\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true, characterData: true });\n this.mutationObserver = observer;\n }\n\n initDisplay() {\n if (this.multiline) return;\n if (this.display && !this.hostElement?.textContent?.trim()) {\n this.hostElement.textContent = this.display;\n } else if (!this.display && this.hostElement.textContent.trim()) {\n this.display = this.hostElement.textContent.trim();\n }\n }\n\n mutationHandler = (mutations: MutationRecord[]) => {\n const display = (this.display || '').trim();\n const textContent = (this.hostElement?.textContent || '').trim();\n if (display === textContent || this.multiline) return;\n for (const mut of mutations) {\n if (mut.type === 'childList' || mut.type === 'characterData') {\n this.display = textContent;\n } else if (mut.type === 'attributes' && mut.attributeName === 'display') {\n this.hostElement.textContent = display;\n }\n }\n if (this.hostElement.ariaSelected) this.displayChanged.emit({ display: this.display, value: this.value });\n };\n\n render() {\n const { disabled, disabledGroup, selected, _multiSelectHidden } = this;\n const isDisabled = disabled || disabledGroup;\n\n return (\n <Host\n tabindex=\"-1\"\n aria-disabled={isDisabled ? 'true' : undefined}\n aria-selected={`${!!selected}`}\n aria-hidden={_multiSelectHidden ? 'true' : undefined}\n display={this.display}\n >\n {this.selected && <q2-icon type=\"checkmark\" />}\n <div class=\"content\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -604,7 +604,7 @@ export class Q2OptionList {
|
|
|
604
604
|
"references": {
|
|
605
605
|
"IOptionValue": {
|
|
606
606
|
"location": "local",
|
|
607
|
-
"path": "/workspace/workspace/
|
|
607
|
+
"path": "/workspace/workspace/_Gitlab_tecton-production_master/packages/q2-tecton-elements/src/components/q2-option-list/index.tsx"
|
|
608
608
|
}
|
|
609
609
|
}
|
|
610
610
|
},
|
|
@@ -722,7 +722,7 @@ export class Q2OptionList {
|
|
|
722
722
|
"composed": true,
|
|
723
723
|
"docs": {
|
|
724
724
|
"tags": [],
|
|
725
|
-
"text": ""
|
|
725
|
+
"text": "Emitted when an option is selected or deselected.\n\nWhen the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property\nwill contain the selected option values."
|
|
726
726
|
},
|
|
727
727
|
"complexType": {
|
|
728
728
|
"original": "{ value: string; values: IOptionValue[] }",
|
|
@@ -730,7 +730,7 @@ export class Q2OptionList {
|
|
|
730
730
|
"references": {
|
|
731
731
|
"IOptionValue": {
|
|
732
732
|
"location": "local",
|
|
733
|
-
"path": "/workspace/workspace/
|
|
733
|
+
"path": "/workspace/workspace/_Gitlab_tecton-production_master/packages/q2-tecton-elements/src/components/q2-option-list/index.tsx"
|
|
734
734
|
}
|
|
735
735
|
}
|
|
736
736
|
}
|
|
@@ -741,8 +741,11 @@ export class Q2OptionList {
|
|
|
741
741
|
"cancelable": true,
|
|
742
742
|
"composed": true,
|
|
743
743
|
"docs": {
|
|
744
|
-
"tags": [
|
|
745
|
-
|
|
744
|
+
"tags": [{
|
|
745
|
+
"name": "private",
|
|
746
|
+
"text": undefined
|
|
747
|
+
}],
|
|
748
|
+
"text": "Emitted to indicate the intended state of the popover."
|
|
746
749
|
},
|
|
747
750
|
"complexType": {
|
|
748
751
|
"original": "{ open: boolean; action: 'close' | 'select' | 'open' }",
|
|
@@ -756,12 +759,15 @@ export class Q2OptionList {
|
|
|
756
759
|
"cancelable": true,
|
|
757
760
|
"composed": true,
|
|
758
761
|
"docs": {
|
|
759
|
-
"tags": [
|
|
760
|
-
|
|
762
|
+
"tags": [{
|
|
763
|
+
"name": "private",
|
|
764
|
+
"text": undefined
|
|
765
|
+
}],
|
|
766
|
+
"text": "Emitted when the component has finished rendering."
|
|
761
767
|
},
|
|
762
768
|
"complexType": {
|
|
763
|
-
"original": "
|
|
764
|
-
"resolved": "
|
|
769
|
+
"original": "undefined",
|
|
770
|
+
"resolved": "undefined",
|
|
765
771
|
"references": {}
|
|
766
772
|
}
|
|
767
773
|
}];
|