q2-tecton-elements 1.72.0 → 1.73.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +39545 -34361
- package/dist/cjs/{charting-ClN1ldqv.js → charting-CdNTrVBe.js} +80 -0
- package/dist/cjs/click-elsewhere_3.cjs.entry.js +81 -14
- package/dist/cjs/{dataSample-BYR-wrOn.js → dataSample-B4blhlH4.js} +1 -1
- package/dist/cjs/date-picker-helpers-UYvPn98R.js +257 -0
- package/dist/cjs/{index-BY3aao8R.js → index-BqyWHpNu.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +98 -18
- package/dist/cjs/q2-avatar.cjs.entry.js +34 -1
- package/dist/cjs/q2-badge_2.cjs.entry.js +3 -3
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-calendar.cjs.entry.js +9 -4
- package/dist/cjs/q2-card-image.cjs.entry.js +3 -3
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +20 -6
- package/dist/cjs/q2-chart-area.cjs.entry.js +38 -7
- package/dist/cjs/q2-chart-bar.cjs.entry.js +39 -8
- package/dist/cjs/q2-chart-donut.cjs.entry.js +31 -13
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox_2.cjs.entry.js +8 -5
- package/dist/cjs/q2-context.cjs.entry.js +4 -4
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +7 -7
- package/dist/cjs/q2-date-calendar.cjs.entry.js +452 -0
- package/dist/cjs/q2-date-picker_2.cjs.entry.js +968 -0
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
- package/dist/cjs/q2-editable-field.cjs.entry.js +20 -7
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-form.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +20 -2
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +3 -3
- package/dist/cjs/q2-meter.cjs.entry.js +2 -2
- package/dist/cjs/q2-modal.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-otp.cjs.entry.js +5 -5
- package/dist/cjs/q2-pagination.cjs.entry.js +12 -6
- package/dist/cjs/q2-pill.cjs.entry.js +8 -5
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-search.cjs.entry.js +3 -3
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +8 -4
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-surface.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-toast.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/{sectorHelper-9TWL-3dw.js → sectorHelper-CxhDl5ql.js} +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +52 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +98 -18
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.vr.js +124 -0
- package/dist/collection/components/q2-avatar/q2-avatar.js +34 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +79 -4
- package/dist/collection/components/q2-btn/q2-btn.css +84 -136
- package/dist/collection/components/q2-btn/q2-btn.js +10 -4
- package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +99 -43
- package/dist/collection/components/q2-calendar/q2-calendar.js +16 -5
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +3 -13
- package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
- package/dist/collection/components/q2-carousel/q2-carousel.js +19 -5
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +32 -0
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.css +11 -0
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +53 -7
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +14 -0
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +11 -0
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +50 -4
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +14 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -10
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +25 -0
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +6 -3
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +6 -3
- package/dist/collection/components/q2-context/q2-context.js +3 -3
- package/dist/collection/components/q2-context/test/q2-context-test.vr.js +3 -3
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.css +3 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +5 -5
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +47 -0
- package/dist/collection/components/q2-date-calendar/q2-date-calendar.css +393 -0
- package/dist/collection/components/q2-date-calendar/q2-date-calendar.js +1022 -0
- package/dist/collection/components/q2-date-calendar/test/q2-date-calendar-test.vr.js +111 -0
- package/dist/collection/components/q2-date-picker/q2-date-picker.css +138 -0
- package/dist/collection/components/q2-date-picker/q2-date-picker.js +2010 -0
- package/dist/collection/components/q2-date-picker/test/q2-date-picker-test.vr.js +179 -0
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -5
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +27 -8
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +1 -1
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-input/formatting/phone-number-formats.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js +6 -3
- package/dist/collection/components/q2-item/q2-item.js +19 -1
- package/dist/collection/components/q2-item/test/q2-item-test.vr.js +2 -2
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-message/q2-message.css +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.vr.js +11 -2
- package/dist/collection/components/q2-meter/q2-meter.js +1 -1
- package/dist/collection/components/q2-modal/q2-modal.js +1 -1
- package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +7 -7
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +36 -4
- package/dist/collection/components/q2-otp/q2-otp.js +4 -4
- package/dist/collection/components/q2-pagination/q2-pagination.css +17 -0
- package/dist/collection/components/q2-pagination/q2-pagination.js +10 -4
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js +39 -0
- package/dist/collection/components/q2-pill/q2-pill.css +14 -10
- package/dist/collection/components/q2-pill/q2-pill.js +6 -3
- package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +25 -0
- package/dist/collection/components/q2-popover/q2-popover.css +1 -0
- package/dist/collection/components/q2-popover/q2-popover.js +43 -8
- package/dist/collection/components/q2-radio/q2-radio.js +5 -2
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +6 -3
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-search/q2-search.js +6 -3
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +12 -5
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-surface/q2-surface.js +1 -1
- package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +2 -2
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +6 -3
- package/dist/collection/components/q2-textarea/q2-textarea.js +6 -3
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/utils/chart-keyboard.js +76 -0
- package/dist/collection/utils/date-picker/date-picker-helpers.js +239 -0
- package/dist/collection/utils/date-picker/date-picker-types.js +1 -0
- package/dist/collection/utils/index.js +1 -1
- package/dist/components/charting.js +1603 -1532
- package/dist/components/dataSample.js +7 -7
- package/dist/components/index.js +57 -53
- package/dist/components/index2.js +2 -2
- package/dist/components/q2-action-sheet.js +224 -103
- package/dist/components/q2-avatar2.js +41 -27
- package/dist/components/q2-btn2.js +2 -2
- package/dist/components/q2-calendar.js +6 -3
- package/dist/components/q2-card-image.js +2 -2
- package/dist/components/q2-carousel-pane2.js +3 -3
- package/dist/components/q2-carousel.js +37 -24
- package/dist/components/q2-chart-area.js +415 -369
- package/dist/components/q2-chart-bar.js +193 -148
- package/dist/components/q2-chart-donut.js +185 -158
- package/dist/components/q2-checkbox-group.js +6 -6
- package/dist/components/q2-checkbox2.js +11 -11
- package/dist/components/q2-context.js +20 -20
- package/dist/components/q2-currency.js +9 -9
- package/dist/components/q2-data-table.js +111 -111
- package/dist/components/q2-date-calendar.d.ts +11 -0
- package/dist/components/q2-date-calendar.js +5 -0
- package/dist/components/q2-date-calendar2.js +678 -0
- package/dist/components/q2-date-picker.d.ts +11 -0
- package/dist/components/q2-date-picker.js +5 -0
- package/dist/components/q2-date-picker2.js +875 -0
- package/dist/components/q2-detail.js +3 -3
- package/dist/components/q2-dropdown.js +17 -17
- package/dist/components/q2-editable-field.js +16 -5
- package/dist/components/q2-example.js +11 -11
- package/dist/components/q2-file-picker.js +1 -1
- package/dist/components/q2-form.js +6 -6
- package/dist/components/q2-formatted-text.js +2 -2
- package/dist/components/q2-input2.js +6 -6
- package/dist/components/q2-item2.js +32 -22
- package/dist/components/q2-legend2.js +7 -7
- package/dist/components/q2-list2.js +6 -6
- package/dist/components/q2-message2.js +10 -10
- package/dist/components/q2-meter.js +7 -7
- package/dist/components/q2-modal.js +22 -22
- package/dist/components/q2-month-picker.js +17 -17
- package/dist/components/q2-mutation-observer.js +1 -1
- package/dist/components/q2-optgroup2.js +7 -7
- package/dist/components/q2-option-list2.js +55 -34
- package/dist/components/q2-otp.js +8 -8
- package/dist/components/q2-pagination.js +70 -68
- package/dist/components/q2-pill.js +51 -46
- package/dist/components/q2-popover2.js +70 -49
- package/dist/components/q2-radio-group.js +7 -7
- package/dist/components/q2-radio.js +6 -6
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-search.js +5 -5
- package/dist/components/q2-section.js +17 -17
- package/dist/components/q2-select2.js +2 -2
- package/dist/components/q2-stepper-pane.js +29 -29
- package/dist/components/q2-stepper-vertical.js +4 -4
- package/dist/components/q2-stepper.js +57 -57
- package/dist/components/q2-surface.js +3 -3
- package/dist/components/q2-tab-container.js +21 -21
- package/dist/components/q2-tab-pane.js +6 -6
- package/dist/components/q2-tag2.js +8 -6
- package/dist/components/q2-textarea.js +3 -3
- package/dist/components/sectorHelper.js +78 -78
- package/dist/components/tecton-tab-pane.js +10 -10
- package/dist/esm/{charting-DOZct-UB.js → charting-DFXJklqs.js} +79 -1
- package/dist/esm/click-elsewhere_3.entry.js +81 -14
- package/dist/esm/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +1 -1
- package/dist/esm/date-picker-helpers-D8QnN_AS.js +242 -0
- package/dist/esm/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +99 -19
- package/dist/esm/q2-avatar.entry.js +34 -1
- package/dist/esm/q2-badge_2.entry.js +3 -3
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-calendar.entry.js +9 -4
- package/dist/esm/q2-card-image.entry.js +3 -3
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +20 -6
- package/dist/esm/q2-chart-area.entry.js +38 -7
- package/dist/esm/q2-chart-bar.entry.js +39 -8
- package/dist/esm/q2-chart-donut.entry.js +31 -13
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox_2.entry.js +8 -5
- package/dist/esm/q2-context.entry.js +4 -4
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +7 -7
- package/dist/esm/q2-date-calendar.entry.js +450 -0
- package/dist/esm/q2-date-picker_2.entry.js +965 -0
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +3 -3
- package/dist/esm/q2-editable-field.entry.js +20 -7
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +2 -2
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-item.entry.js +20 -2
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-link_2.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +3 -3
- package/dist/esm/q2-meter.entry.js +2 -2
- package/dist/esm/q2-modal.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-mutation-observer.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-otp.entry.js +5 -5
- package/dist/esm/q2-pagination.entry.js +12 -6
- package/dist/esm/q2-pill.entry.js +8 -5
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-search.entry.js +3 -3
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +8 -4
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-surface.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +2 -2
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-toast.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/{charting-DOZct-UB.js → charting-DFXJklqs.js} +1625 -1554
- package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +85 -43
- package/dist/q2-tecton-elements/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +33 -33
- package/dist/q2-tecton-elements/date-picker-helpers-D8QnN_AS.js +153 -0
- package/dist/q2-tecton-elements/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
- package/dist/q2-tecton-elements/q2-action-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +169 -84
- package/dist/q2-tecton-elements/q2-avatar.entry.js +24 -10
- package/dist/q2-tecton-elements/q2-badge_2.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-btn_2.entry.js +23 -23
- package/dist/q2-tecton-elements/q2-calendar.entry.js +7 -4
- package/dist/q2-tecton-elements/q2-card-image.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-carousel.entry.js +24 -11
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +187 -141
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +377 -333
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +184 -158
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +20 -18
- package/dist/q2-tecton-elements/q2-context.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-currency.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-data-table.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-date-calendar.entry.js +438 -0
- package/dist/q2-tecton-elements/q2-date-picker_2.entry.js +792 -0
- package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +16 -16
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +17 -6
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +26 -16
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-modal.entry.js +18 -18
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-otp.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-pagination.entry.js +51 -49
- package/dist/q2-tecton-elements/q2-pill.entry.js +22 -17
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-radio.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +13 -13
- package/dist/q2-tecton-elements/q2-search.entry.js +31 -31
- package/dist/q2-tecton-elements/q2-section.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-select.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +10 -10
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-stepper.entry.js +45 -45
- package/dist/q2-tecton-elements/q2-surface.entry.js +15 -15
- package/dist/q2-tecton-elements/q2-tab-container.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-tab-pane.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +56 -56
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +21 -1
- package/dist/types/components/q2-action-sheet/test/q2-action-sheet-test.vr.d.ts +1 -0
- package/dist/types/components/q2-avatar/q2-avatar.d.ts +5 -0
- package/dist/types/components/q2-btn/q2-btn.d.ts +7 -3
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +10 -2
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +5 -0
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +11 -2
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +9 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -0
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +4 -3
- package/dist/types/components/q2-checkbox-group/q2-checkbox-group.d.ts +4 -2
- package/dist/types/components/q2-date-calendar/q2-date-calendar.d.ts +122 -0
- package/dist/types/components/q2-date-calendar/test/q2-date-calendar-test.vr.d.ts +1 -0
- package/dist/types/components/q2-date-picker/q2-date-picker.d.ts +304 -0
- package/dist/types/components/q2-date-picker/test/q2-date-picker-test.vr.d.ts +1 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +3 -3
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +14 -1
- package/dist/types/components/q2-input/q2-input.d.ts +4 -2
- package/dist/types/components/q2-item/q2-item.d.ts +3 -0
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +1 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -0
- package/dist/types/components/q2-radio/q2-radio.d.ts +3 -2
- package/dist/types/components/q2-radio-group/q2-radio-group.d.ts +4 -2
- package/dist/types/components/q2-search/q2-search.d.ts +3 -1
- package/dist/types/components/q2-select/q2-select.d.ts +4 -2
- package/dist/types/components/q2-textarea/q2-textarea.d.ts +4 -2
- package/dist/types/components.d.ts +858 -49
- package/dist/types/global.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/chart-keyboard.d.ts +16 -0
- package/dist/types/utils/date-picker/date-picker-helpers.d.ts +47 -0
- package/dist/types/utils/date-picker/date-picker-types.d.ts +42 -0
- package/package.json +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +0 -70
- package/dist/esm/q2-optgroup.entry.js +0 -68
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +0 -88
|
@@ -0,0 +1,2010 @@
|
|
|
1
|
+
import { h, } from "@stencil/core";
|
|
2
|
+
import { isValid as isValidDate } from "date-fns";
|
|
3
|
+
import { handleDeprecationWarning, hasSlotContent, isEventFromElement, loc, overrideFocus, waitForNextPaint, } from "../../utils";
|
|
4
|
+
import { shouldShowActionSheet } from "../../utils/action-sheet";
|
|
5
|
+
import mirrorEmit from "../../utils/mirror-emit";
|
|
6
|
+
import { buildInputDate, formatDisplayDate, formatDateISO, formatLegacyDisplayDate, isDateSelectable, isRangeSelectable, localizeDatePickerString, normalizeDatePickerValue, normalizeDisplayFormat, parseDatePickerValue, } from "../../utils/date-picker/date-picker-helpers";
|
|
7
|
+
/**
|
|
8
|
+
* @name Date Picker
|
|
9
|
+
* @category Forms
|
|
10
|
+
* @summary Use for selecting a date or date range with an input and calendar popup.
|
|
11
|
+
* @slot label - Custom content for the input label.
|
|
12
|
+
*/
|
|
13
|
+
export class Q2DatePicker {
|
|
14
|
+
constructor() {
|
|
15
|
+
var _a;
|
|
16
|
+
this.committingValue = false;
|
|
17
|
+
this.normalizedDateLists = new WeakMap();
|
|
18
|
+
// #endregion
|
|
19
|
+
// #region State Properties
|
|
20
|
+
this.activePopoverDirection = 'down';
|
|
21
|
+
this.typeableValue = '';
|
|
22
|
+
// #endregion
|
|
23
|
+
// #region Public Property API
|
|
24
|
+
/**
|
|
25
|
+
* Renders the calendar panel inline with behavior specific to being hosted by `q2-action-sheet`.
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
this._actionSheet = false;
|
|
29
|
+
/**
|
|
30
|
+
* Determines the year for a committed month/day typeable date with no year.
|
|
31
|
+
* `future` selects the next year for dates before today, while `past` selects the prior year for dates after today.
|
|
32
|
+
* Only applies to `single-typeable` mode with a month-first or day-first display format.
|
|
33
|
+
*/
|
|
34
|
+
this.assume = 'current';
|
|
35
|
+
/** Displays a button in the input field allowing the user to clear the selected date or range. */
|
|
36
|
+
this.clearable = false;
|
|
37
|
+
/** Delay in milliseconds before the popover closes after selection. Explicitly undefined or non-positive values close immediately. */
|
|
38
|
+
this.closeDelay = 400;
|
|
39
|
+
/** Indicates the date picker cannot be focused or interacted with. */
|
|
40
|
+
this.disabled = false;
|
|
41
|
+
/**
|
|
42
|
+
* Hides the input field's visible label while retaining its accessible name.
|
|
43
|
+
* @warning
|
|
44
|
+
* Hides the label visually. `label` text is still required for screenreader compliance.
|
|
45
|
+
*/
|
|
46
|
+
this.hideLabel = false;
|
|
47
|
+
/**
|
|
48
|
+
* Instructs the component to use the action sheet workflow for displaying its calendar.
|
|
49
|
+
*
|
|
50
|
+
* For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).
|
|
51
|
+
*/
|
|
52
|
+
this.hoist = ((_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.useActionSheets) ? true : undefined;
|
|
53
|
+
/** Shows the input field's error visual state. */
|
|
54
|
+
this.invalid = false;
|
|
55
|
+
/** Formats selected dates using the provided locale. Accepts multiple locales in an array as sequential fallbacks. */
|
|
56
|
+
this.locale = document.documentElement.lang || 'en-US';
|
|
57
|
+
/**
|
|
58
|
+
* Selects calendar or typeable behavior for a single date or date range.
|
|
59
|
+
* Enabling the legacy `typeable` prop uses `single-typeable` when `mode` is left at its default; an explicit mode takes precedence.
|
|
60
|
+
*/
|
|
61
|
+
this.mode = 'single';
|
|
62
|
+
/** Controls whether the date picker popover is open or closed. */
|
|
63
|
+
this.open = false;
|
|
64
|
+
/** Appends "(optional)" to the input label and marks the field as not required. */
|
|
65
|
+
this.optional = false;
|
|
66
|
+
/** Aligns the calendar popover to the left or right side of the input field. */
|
|
67
|
+
this.popoverAlignment = 'left';
|
|
68
|
+
/** @deprecated Retained for compatibility with `q2-date-picker`. */
|
|
69
|
+
this.popoverMinHeight = 355;
|
|
70
|
+
/**
|
|
71
|
+
* Uses absolute positioning for the popover when set to `legacy`.
|
|
72
|
+
*
|
|
73
|
+
* This compatibility option supports layouts where transformed ancestors interfere with fixed positioning.
|
|
74
|
+
*/
|
|
75
|
+
this.popoverMode = null;
|
|
76
|
+
/**
|
|
77
|
+
* The field's content is not editable, but the field remains focusable.
|
|
78
|
+
*
|
|
79
|
+
* Appends "(read only)" to the field label.
|
|
80
|
+
*/
|
|
81
|
+
this.readonly = false;
|
|
82
|
+
/** Enables the legacy single-date typeable input behavior. */
|
|
83
|
+
this.typeable = false;
|
|
84
|
+
/** Shows the input field's success visual state when no errors are active. */
|
|
85
|
+
this.valid = false;
|
|
86
|
+
this.onCalendarCancel = (event) => {
|
|
87
|
+
event.stopPropagation();
|
|
88
|
+
this.calendarError = '';
|
|
89
|
+
if (this._actionSheet) {
|
|
90
|
+
this.tctCancel.emit();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.closeCalendar();
|
|
94
|
+
};
|
|
95
|
+
this.onCalendarCommit = (event) => {
|
|
96
|
+
event.stopPropagation();
|
|
97
|
+
if (this.disabled || this.readonly)
|
|
98
|
+
return;
|
|
99
|
+
if (!event.detail)
|
|
100
|
+
return;
|
|
101
|
+
this.calendarError = '';
|
|
102
|
+
const { value, rangeStart, rangeEnd } = event.detail;
|
|
103
|
+
if (this.isRangeMode) {
|
|
104
|
+
if (!rangeStart || !rangeEnd)
|
|
105
|
+
return;
|
|
106
|
+
this.rangeStart = rangeStart;
|
|
107
|
+
this.rangeEnd = rangeEnd;
|
|
108
|
+
mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
|
|
109
|
+
this.closeCalendar(true, true);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (!value)
|
|
113
|
+
return;
|
|
114
|
+
this.commitSingleValue(value);
|
|
115
|
+
this.closeAfterSelection();
|
|
116
|
+
};
|
|
117
|
+
this.onCalendarDismiss = (event) => {
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
this.calendarError = '';
|
|
120
|
+
if (this._actionSheet) {
|
|
121
|
+
this.tctCancel.emit();
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
this.closeCalendar();
|
|
125
|
+
};
|
|
126
|
+
this.onCalendarError = (event) => {
|
|
127
|
+
event.stopPropagation();
|
|
128
|
+
this.calendarError = event.detail;
|
|
129
|
+
if (this._actionSheet) {
|
|
130
|
+
this.tctClose.emit({ error: event.detail });
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.closeCalendar(true, true);
|
|
134
|
+
};
|
|
135
|
+
this.onCalendarToggleClick = (event) => {
|
|
136
|
+
event.stopPropagation();
|
|
137
|
+
this.toggleCalendar();
|
|
138
|
+
};
|
|
139
|
+
this.onClear = () => {
|
|
140
|
+
this.calendarError = '';
|
|
141
|
+
this.typeableError = '';
|
|
142
|
+
this.typeableValue = '';
|
|
143
|
+
if (this.isRangeMode) {
|
|
144
|
+
this.rangeStart = undefined;
|
|
145
|
+
this.rangeEnd = undefined;
|
|
146
|
+
mirrorEmit(this, ['change', 'tctChange'], { rangeStart: null, rangeEnd: null });
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.value = undefined;
|
|
150
|
+
mirrorEmit(this, ['change', 'tctChange'], { value: null });
|
|
151
|
+
};
|
|
152
|
+
this.onClickElsewhere = (event) => {
|
|
153
|
+
if (event.target.localName !== 'click-elsewhere')
|
|
154
|
+
return;
|
|
155
|
+
event.stopPropagation();
|
|
156
|
+
this.closeCalendar(false);
|
|
157
|
+
};
|
|
158
|
+
this.onInputClick = () => {
|
|
159
|
+
if (this.acceptsTypeableInput)
|
|
160
|
+
return;
|
|
161
|
+
this.toggleCalendar();
|
|
162
|
+
};
|
|
163
|
+
this.onInputKeydown = (event) => {
|
|
164
|
+
if (this.disabled || this.readonly)
|
|
165
|
+
return;
|
|
166
|
+
if (this.acceptsTypeableInput) {
|
|
167
|
+
if (event.metaKey || event.ctrlKey || event.altKey || event.key.length !== 1)
|
|
168
|
+
return;
|
|
169
|
+
if (!this.typeableAllowedCharacters.test(event.key))
|
|
170
|
+
event.preventDefault();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (shouldShowActionSheet({ hoist: this.hoist }, event)) {
|
|
174
|
+
event.preventDefault();
|
|
175
|
+
this.showActionSheet();
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (event.key === 'Escape' && this.open) {
|
|
179
|
+
event.preventDefault();
|
|
180
|
+
this.closeCalendar();
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (!['Enter', ' ', 'ArrowDown'].includes(event.key) || this.open)
|
|
184
|
+
return;
|
|
185
|
+
event.preventDefault();
|
|
186
|
+
this.setActivePopoverDirection();
|
|
187
|
+
this.open = true;
|
|
188
|
+
requestAnimationFrame(() => this.focusRenderedDate());
|
|
189
|
+
};
|
|
190
|
+
this.onTypeableChange = (event) => {
|
|
191
|
+
event.stopImmediatePropagation();
|
|
192
|
+
if (this.disabled || this.readonly)
|
|
193
|
+
return;
|
|
194
|
+
if (this.isSingleTypeable) {
|
|
195
|
+
const date = this.parseTypeableDate(this.typeableValue);
|
|
196
|
+
if (!date || !this.isDateValid(date)) {
|
|
197
|
+
this.setTypeableError(this.dateFormatValidationError);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
this.setTypeableError('');
|
|
201
|
+
const value = formatDateISO(date);
|
|
202
|
+
this.commitSingleValue(value);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const [startValue, endValue] = this.typeableValue.split(' - ');
|
|
206
|
+
const start = this.parseTypeableDate(startValue);
|
|
207
|
+
const end = this.parseTypeableDate(endValue);
|
|
208
|
+
if (!start || !end) {
|
|
209
|
+
this.setTypeableError(this.rangeFormatValidationError);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const rangeError = this.typeableRangeError(start, end);
|
|
213
|
+
if (rangeError) {
|
|
214
|
+
this.setTypeableError(rangeError);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
this.setTypeableError('');
|
|
218
|
+
const rangeStart = formatDateISO(start);
|
|
219
|
+
const rangeEnd = formatDateISO(end);
|
|
220
|
+
this.rangeStart = rangeStart;
|
|
221
|
+
this.rangeEnd = rangeEnd;
|
|
222
|
+
mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
|
|
223
|
+
};
|
|
224
|
+
this.onTypeableInput = (event) => {
|
|
225
|
+
var _a;
|
|
226
|
+
event.stopImmediatePropagation();
|
|
227
|
+
if (this.disabled || this.readonly)
|
|
228
|
+
return;
|
|
229
|
+
const maxDigits = this.isRangeTypeable ? 16 : 8;
|
|
230
|
+
const digits = String(((_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) || '')
|
|
231
|
+
.replace(/\D/g, '')
|
|
232
|
+
.slice(0, maxDigits);
|
|
233
|
+
this.typeableValue =
|
|
234
|
+
this.isRangeTypeable && digits.length > 8
|
|
235
|
+
? `${this.formatTypeableDate(digits.slice(0, 8))} - ${this.formatTypeableDate(digits.slice(8))}`
|
|
236
|
+
: this.formatTypeableDate(digits);
|
|
237
|
+
this.validateTypeableValue();
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
// #endregion
|
|
241
|
+
// #region Component Lifecycle Events
|
|
242
|
+
connectedCallback() {
|
|
243
|
+
const normalizedValue = this.normalizedValue;
|
|
244
|
+
if (normalizedValue && this.value !== normalizedValue)
|
|
245
|
+
this.value = normalizedValue;
|
|
246
|
+
this.activePopoverDirection = this.effectivePopoverDirection || 'down';
|
|
247
|
+
this.typeableValue = this.formattedTypeableValue;
|
|
248
|
+
this.validateCurrentValue();
|
|
249
|
+
}
|
|
250
|
+
disconnectedCallback() {
|
|
251
|
+
clearTimeout(this.closeTimeout);
|
|
252
|
+
}
|
|
253
|
+
componentWillLoad() {
|
|
254
|
+
if (this.popDirection)
|
|
255
|
+
handleDeprecationWarning(this, 'popDirection', 'prop');
|
|
256
|
+
}
|
|
257
|
+
componentDidLoad() {
|
|
258
|
+
overrideFocus(this.hostElement);
|
|
259
|
+
}
|
|
260
|
+
componentDidRender() {
|
|
261
|
+
if (this.open && this.activePopoverDirection === 'up')
|
|
262
|
+
this.scrollUpCalendarToBottom();
|
|
263
|
+
}
|
|
264
|
+
// #endregion
|
|
265
|
+
// #region Listeners
|
|
266
|
+
beforeInputHandler(event) {
|
|
267
|
+
if (this.acceptsTypeableInput && event.data && !this.typeableAllowedCharacters.test(event.data)) {
|
|
268
|
+
event.preventDefault();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
delegateFocus(event) {
|
|
272
|
+
var _a;
|
|
273
|
+
if (!isEventFromElement(event, this.hostElement))
|
|
274
|
+
return;
|
|
275
|
+
(_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
276
|
+
}
|
|
277
|
+
popoverStateHandler({ detail: { open } }) {
|
|
278
|
+
if (this.open !== open)
|
|
279
|
+
this.open = open;
|
|
280
|
+
}
|
|
281
|
+
// #endregion
|
|
282
|
+
// #region Public Methods API
|
|
283
|
+
/** Closes the calendar popover if it is open. */
|
|
284
|
+
async closePopover() {
|
|
285
|
+
this.closeCalendar();
|
|
286
|
+
}
|
|
287
|
+
/** Moves the visible month to the provided date and focuses that day. */
|
|
288
|
+
async focusDate(date) {
|
|
289
|
+
var _a;
|
|
290
|
+
if (!isValidDate(date))
|
|
291
|
+
return;
|
|
292
|
+
await waitForNextPaint();
|
|
293
|
+
await ((_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.focusDate(date));
|
|
294
|
+
}
|
|
295
|
+
/** Opens the calendar popover if it is closed. */
|
|
296
|
+
async openPopover() {
|
|
297
|
+
var _a;
|
|
298
|
+
if (this.open || this.disabled || this.readonly || this._actionSheet)
|
|
299
|
+
return;
|
|
300
|
+
this.setActivePopoverDirection();
|
|
301
|
+
this.open = true;
|
|
302
|
+
await waitForNextPaint();
|
|
303
|
+
const toggleElement = this.acceptsTypeableInput
|
|
304
|
+
? (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.querySelector('[test-id="datePickerCalendarToggle"]')
|
|
305
|
+
: this.controlElement;
|
|
306
|
+
toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.focus();
|
|
307
|
+
toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.dispatchEvent(new FocusEvent('focus'));
|
|
308
|
+
}
|
|
309
|
+
/** Clears selected values, uncommitted typeable input, and error state without changing configuration props. */
|
|
310
|
+
async reset() {
|
|
311
|
+
clearTimeout(this.closeTimeout);
|
|
312
|
+
this.value = undefined;
|
|
313
|
+
this.rangeStart = undefined;
|
|
314
|
+
this.rangeEnd = undefined;
|
|
315
|
+
this.errors = undefined;
|
|
316
|
+
this.invalid = false;
|
|
317
|
+
this.calendarError = '';
|
|
318
|
+
this.typeableError = '';
|
|
319
|
+
this.typeableValue = '';
|
|
320
|
+
}
|
|
321
|
+
/** Opens the calendar and selects the provided date when it is valid. */
|
|
322
|
+
async setValue(value) {
|
|
323
|
+
var _a;
|
|
324
|
+
const date = parseDatePickerValue(normalizeDatePickerValue(value));
|
|
325
|
+
if (this.disabled || this.readonly || this.isRangeTypeable || !isValidDate(date) || !this.isDateValid(date)) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
if (!this._actionSheet) {
|
|
329
|
+
this.setActivePopoverDirection();
|
|
330
|
+
this.open = true;
|
|
331
|
+
await waitForNextPaint();
|
|
332
|
+
}
|
|
333
|
+
await ((_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.setValue(date));
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Focuses the single typeable input and stages a valid date without committing it.
|
|
337
|
+
*
|
|
338
|
+
* @warning
|
|
339
|
+
* Only applicable when the effective mode is `single-typeable`.
|
|
340
|
+
*/
|
|
341
|
+
async typeValue(value) {
|
|
342
|
+
var _a;
|
|
343
|
+
if (!this.isSingleTypeable)
|
|
344
|
+
return;
|
|
345
|
+
const date = parseDatePickerValue(normalizeDatePickerValue(value));
|
|
346
|
+
if (!isValidDate(date))
|
|
347
|
+
return;
|
|
348
|
+
await ((_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.setValue(this.formatDateWithModifier(date)));
|
|
349
|
+
}
|
|
350
|
+
// #endregion
|
|
351
|
+
// #region Watchers
|
|
352
|
+
constraintsChanged() {
|
|
353
|
+
if (this.committingValue)
|
|
354
|
+
return;
|
|
355
|
+
if (this.acceptsTypeableInput)
|
|
356
|
+
this.revalidateTypeableValue();
|
|
357
|
+
if (!this.typeableError)
|
|
358
|
+
this.validateCurrentValue();
|
|
359
|
+
}
|
|
360
|
+
disabledChanged(disabled) {
|
|
361
|
+
if (disabled)
|
|
362
|
+
this.closeCalendar(false);
|
|
363
|
+
}
|
|
364
|
+
displayFormatChanged() {
|
|
365
|
+
this.calendarError = '';
|
|
366
|
+
this.typeableError = '';
|
|
367
|
+
this.typeableValue = this.formattedTypeableValue;
|
|
368
|
+
}
|
|
369
|
+
modeChanged() {
|
|
370
|
+
this.open = false;
|
|
371
|
+
this.calendarError = '';
|
|
372
|
+
this.typeableError = '';
|
|
373
|
+
this.typeableValue = this.formattedTypeableValue;
|
|
374
|
+
}
|
|
375
|
+
openChanged(open) {
|
|
376
|
+
if (!open)
|
|
377
|
+
return;
|
|
378
|
+
this.setActivePopoverDirection();
|
|
379
|
+
if (this.isRangeMode && this.activePopoverDirection === 'down')
|
|
380
|
+
this.scrollDownCalendarToTop();
|
|
381
|
+
}
|
|
382
|
+
popDirectionChanged() {
|
|
383
|
+
if (this.popDirection)
|
|
384
|
+
handleDeprecationWarning(this, 'popDirection', 'prop');
|
|
385
|
+
this.setActivePopoverDirection();
|
|
386
|
+
}
|
|
387
|
+
popoverDirectionChanged() {
|
|
388
|
+
this.setActivePopoverDirection();
|
|
389
|
+
}
|
|
390
|
+
rangeEndChanged() {
|
|
391
|
+
if (!this.isRangeMode)
|
|
392
|
+
return;
|
|
393
|
+
this.calendarError = '';
|
|
394
|
+
if (this.isRangeTypeable)
|
|
395
|
+
this.syncTypeableValue();
|
|
396
|
+
}
|
|
397
|
+
rangeStartChanged() {
|
|
398
|
+
if (!this.isRangeMode)
|
|
399
|
+
return;
|
|
400
|
+
this.calendarError = '';
|
|
401
|
+
if (this.isRangeTypeable)
|
|
402
|
+
this.syncTypeableValue();
|
|
403
|
+
}
|
|
404
|
+
readonlyChanged(readonly) {
|
|
405
|
+
if (readonly)
|
|
406
|
+
this.closeCalendar(false);
|
|
407
|
+
}
|
|
408
|
+
valueChanged(value) {
|
|
409
|
+
const normalizedValue = normalizeDatePickerValue(value);
|
|
410
|
+
if (normalizedValue && value !== normalizedValue) {
|
|
411
|
+
this.value = normalizedValue;
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
if (this.isRangeMode || this.committingValue)
|
|
415
|
+
return;
|
|
416
|
+
this.calendarError = '';
|
|
417
|
+
if (this.isSingleTypeable)
|
|
418
|
+
this.syncTypeableValue();
|
|
419
|
+
this.validateCurrentValue();
|
|
420
|
+
}
|
|
421
|
+
// #endregion
|
|
422
|
+
// #region Local Methods
|
|
423
|
+
get acceptsTypeableInput() {
|
|
424
|
+
return this.isRangeTypeable || this.isSingleTypeable;
|
|
425
|
+
}
|
|
426
|
+
get actionSheetData() {
|
|
427
|
+
return {
|
|
428
|
+
appearance: 'date-picker',
|
|
429
|
+
title: this.localizeForLocale(this.calendarLabel || 'Choose a date'),
|
|
430
|
+
datePickerProps: {
|
|
431
|
+
calendarLabel: this.calendarLabel,
|
|
432
|
+
closeDelay: this.closeDelay,
|
|
433
|
+
cutoffTime: this.cutoffTime,
|
|
434
|
+
daysOfWeekChecksum: this.daysOfWeekChecksum,
|
|
435
|
+
disclaimer: this.disclaimer,
|
|
436
|
+
endDate: normalizeDatePickerValue(this.endDate),
|
|
437
|
+
displayFormat: this.normalizedDisplayFormat,
|
|
438
|
+
invalidDates: this.normalizedInvalidDates,
|
|
439
|
+
locale: this.locale,
|
|
440
|
+
mode: this.isRangeMode ? 'range' : 'single',
|
|
441
|
+
rangeEnd: normalizeDatePickerValue(this.rangeEnd),
|
|
442
|
+
rangeStart: normalizeDatePickerValue(this.rangeStart),
|
|
443
|
+
startDate: normalizeDatePickerValue(this.startDate),
|
|
444
|
+
validDates: this.normalizedValidDates,
|
|
445
|
+
value: this.normalizedValue,
|
|
446
|
+
},
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
get automaticPopoverDirection() {
|
|
450
|
+
var _a, _b;
|
|
451
|
+
const { top = 0, bottom = 0 } = ((_b = (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect) === null || _b === void 0 ? void 0 : _b.call(_a)) || {};
|
|
452
|
+
return top > window.innerHeight - bottom ? 'up' : 'down';
|
|
453
|
+
}
|
|
454
|
+
get canClear() {
|
|
455
|
+
return this.clearable && (this.isRangeMode ? !!this.rangeStart || !!this.rangeEnd : !!this.normalizedValue);
|
|
456
|
+
}
|
|
457
|
+
get computedErrors() {
|
|
458
|
+
const errors = [...(this.errors || [])];
|
|
459
|
+
const internalError = this.typeableError || this.calendarError;
|
|
460
|
+
if (internalError)
|
|
461
|
+
errors.push(internalError);
|
|
462
|
+
if (!errors.length && this.invalid)
|
|
463
|
+
errors.push('tecton.element.calendar.invalid');
|
|
464
|
+
return errors.length ? [errors[0]] : undefined;
|
|
465
|
+
}
|
|
466
|
+
get computedPlaceholder() {
|
|
467
|
+
if (this.disabled && this.disabledMsg)
|
|
468
|
+
return this.localizeForLocale(this.disabledMsg);
|
|
469
|
+
return this.localizeForLocale(this.placeholder);
|
|
470
|
+
}
|
|
471
|
+
get dateFormatValidationError() {
|
|
472
|
+
return this.localizeForLocale('tecton.element.datePicker.validation.dateFormat', {
|
|
473
|
+
format: this.normalizedDisplayFormat,
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
get effectiveMode() {
|
|
477
|
+
if (this.mode !== 'single')
|
|
478
|
+
return this.mode;
|
|
479
|
+
return this.typeable ? 'single-typeable' : 'single';
|
|
480
|
+
}
|
|
481
|
+
get effectivePopoverDirection() {
|
|
482
|
+
return this.popoverDirection || this.popDirection;
|
|
483
|
+
}
|
|
484
|
+
get formattedTypeableValue() {
|
|
485
|
+
if (!this.selectedDate)
|
|
486
|
+
return '';
|
|
487
|
+
if (!this.isRangeTypeable)
|
|
488
|
+
return this.formatDateWithModifier(this.selectedDate);
|
|
489
|
+
if (!this.rangeEndDate)
|
|
490
|
+
return '';
|
|
491
|
+
return `${this.formatDateWithModifier(this.selectedDate)} - ${this.formatDateWithModifier(this.rangeEndDate)}`;
|
|
492
|
+
}
|
|
493
|
+
get formattedValue() {
|
|
494
|
+
if (!this.selectedDate)
|
|
495
|
+
return '';
|
|
496
|
+
const formatDate = (date) => this.displayFormat ? formatLegacyDisplayDate(date, this.displayFormat) : this.formatLongDate(date);
|
|
497
|
+
if (this.effectiveMode !== 'range' || !this.rangeEndDate)
|
|
498
|
+
return formatDate(this.selectedDate);
|
|
499
|
+
return `${formatDate(this.selectedDate)} – ${formatDate(this.rangeEndDate)}`;
|
|
500
|
+
}
|
|
501
|
+
get isRangeMode() {
|
|
502
|
+
return this.effectiveMode === 'range' || this.isRangeTypeable;
|
|
503
|
+
}
|
|
504
|
+
get isRangeTypeable() {
|
|
505
|
+
return this.effectiveMode === 'range-typeable';
|
|
506
|
+
}
|
|
507
|
+
get isSingleTypeable() {
|
|
508
|
+
return this.effectiveMode === 'single-typeable';
|
|
509
|
+
}
|
|
510
|
+
get normalizedDisplayFormat() {
|
|
511
|
+
return normalizeDisplayFormat(this.displayFormat);
|
|
512
|
+
}
|
|
513
|
+
get normalizedInvalidDates() {
|
|
514
|
+
return this.normalizeDateList(this.invalidDates);
|
|
515
|
+
}
|
|
516
|
+
get normalizedValidDates() {
|
|
517
|
+
return this.normalizeDateList(this.validDates);
|
|
518
|
+
}
|
|
519
|
+
get normalizedValue() {
|
|
520
|
+
return normalizeDatePickerValue(this.value);
|
|
521
|
+
}
|
|
522
|
+
get rangeEndDate() {
|
|
523
|
+
const date = parseDatePickerValue(normalizeDatePickerValue(this.rangeEnd));
|
|
524
|
+
return isValidDate(date) ? date : undefined;
|
|
525
|
+
}
|
|
526
|
+
get rangeFormatValidationError() {
|
|
527
|
+
return this.localizeForLocale('tecton.element.datePicker.validation.rangeFormat', {
|
|
528
|
+
format: this.rangeTypeableFormat,
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
get rangeOrderValidationError() {
|
|
532
|
+
return this.localizeForLocale('tecton.element.datePicker.validation.rangeOrder');
|
|
533
|
+
}
|
|
534
|
+
get rangeTypeableFormat() {
|
|
535
|
+
return `${this.normalizedDisplayFormat} - ${this.normalizedDisplayFormat}`;
|
|
536
|
+
}
|
|
537
|
+
get rangeValidationError() {
|
|
538
|
+
return this.localizeForLocale('tecton.element.datePicker.validation.rangeUnavailable');
|
|
539
|
+
}
|
|
540
|
+
get selectedDate() {
|
|
541
|
+
const date = parseDatePickerValue(this.isRangeMode ? normalizeDatePickerValue(this.rangeStart) : this.normalizedValue);
|
|
542
|
+
return isValidDate(date) ? date : undefined;
|
|
543
|
+
}
|
|
544
|
+
get typeableAllowedCharacters() {
|
|
545
|
+
const formatSeparators = this.normalizedDisplayFormat.replace(/[MDY]/g, '');
|
|
546
|
+
const rangeSeparator = this.isRangeTypeable ? ' -' : '';
|
|
547
|
+
const escapedSeparators = `${formatSeparators}${rangeSeparator}`.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
548
|
+
return new RegExp(`^[0-9${escapedSeparators}]+$`);
|
|
549
|
+
}
|
|
550
|
+
closeAfterSelection() {
|
|
551
|
+
clearTimeout(this.closeTimeout);
|
|
552
|
+
const closeDelay = Number(this.closeDelay);
|
|
553
|
+
if (!closeDelay || closeDelay <= 0) {
|
|
554
|
+
this.closeCalendar(true, true);
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
this.closeTimeout = setTimeout(() => this.closeCalendar(true, true), closeDelay);
|
|
558
|
+
}
|
|
559
|
+
closeCalendar(returnFocus = true, emitClose = false) {
|
|
560
|
+
var _a;
|
|
561
|
+
if (!this.open)
|
|
562
|
+
return;
|
|
563
|
+
this.open = false;
|
|
564
|
+
if (emitClose)
|
|
565
|
+
this.tctClose.emit();
|
|
566
|
+
if (returnFocus)
|
|
567
|
+
(_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
568
|
+
}
|
|
569
|
+
commitSingleValue(value) {
|
|
570
|
+
if (this.committingValue)
|
|
571
|
+
return;
|
|
572
|
+
// Watchers and consumer change handlers may update constraints during either event alias.
|
|
573
|
+
this.committingValue = true;
|
|
574
|
+
try {
|
|
575
|
+
this.value = value;
|
|
576
|
+
mirrorEmit(this, ['change', 'tctChange'], { value });
|
|
577
|
+
}
|
|
578
|
+
finally {
|
|
579
|
+
this.committingValue = false;
|
|
580
|
+
}
|
|
581
|
+
if (this.isSingleTypeable)
|
|
582
|
+
this.syncTypeableValue();
|
|
583
|
+
if (!this.typeableError)
|
|
584
|
+
this.validateCurrentValue();
|
|
585
|
+
}
|
|
586
|
+
emitValidationError(message) {
|
|
587
|
+
if (this.isRangeMode)
|
|
588
|
+
return;
|
|
589
|
+
mirrorEmit(this, ['error', 'tctError'], {
|
|
590
|
+
errors: [{ message, errorCode: 'generalInvalid' }],
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
emitValidationSuccess(value) {
|
|
594
|
+
if (this.isRangeMode)
|
|
595
|
+
return;
|
|
596
|
+
mirrorEmit(this, ['success', 'tctSuccess'], { value });
|
|
597
|
+
}
|
|
598
|
+
focusRenderedDate(value) {
|
|
599
|
+
var _a;
|
|
600
|
+
(_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent('tctCalendarFocus', {
|
|
601
|
+
detail: { value },
|
|
602
|
+
}));
|
|
603
|
+
}
|
|
604
|
+
formatDateWithModifier(date) {
|
|
605
|
+
return formatDisplayDate(date, this.normalizedDisplayFormat);
|
|
606
|
+
}
|
|
607
|
+
formatLongDate(date) {
|
|
608
|
+
return new Intl.DateTimeFormat(this.locale, {
|
|
609
|
+
year: 'numeric',
|
|
610
|
+
month: 'long',
|
|
611
|
+
day: 'numeric',
|
|
612
|
+
}).format(date);
|
|
613
|
+
}
|
|
614
|
+
formatTypeableDate(value) {
|
|
615
|
+
const separator = this.normalizedDisplayFormat.includes('-') ? '-' : '/';
|
|
616
|
+
const dateParts = this.normalizedDisplayFormat.startsWith('YYYY')
|
|
617
|
+
? [value.slice(0, 4), value.slice(4, 6), value.slice(6, 8)]
|
|
618
|
+
: [value.slice(0, 2), value.slice(2, 4), value.slice(4, 8)];
|
|
619
|
+
return dateParts.filter(Boolean).join(separator);
|
|
620
|
+
}
|
|
621
|
+
isDateValid(date) {
|
|
622
|
+
return isDateSelectable(date, {
|
|
623
|
+
cutoffTime: this.cutoffTime,
|
|
624
|
+
daysOfWeekChecksum: this.daysOfWeekChecksum,
|
|
625
|
+
endDate: normalizeDatePickerValue(this.endDate),
|
|
626
|
+
invalidDates: this.normalizedInvalidDates,
|
|
627
|
+
startDate: normalizeDatePickerValue(this.startDate),
|
|
628
|
+
validDates: this.normalizedValidDates,
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
isRangeValid(start, end) {
|
|
632
|
+
return isRangeSelectable(start, end, {
|
|
633
|
+
cutoffTime: this.cutoffTime,
|
|
634
|
+
daysOfWeekChecksum: this.daysOfWeekChecksum,
|
|
635
|
+
endDate: normalizeDatePickerValue(this.endDate),
|
|
636
|
+
invalidDates: this.normalizedInvalidDates,
|
|
637
|
+
startDate: normalizeDatePickerValue(this.startDate),
|
|
638
|
+
validDates: this.normalizedValidDates,
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
isTypeableDatePrefixInvalid(digits) {
|
|
642
|
+
const isYearFirst = this.normalizedDisplayFormat.startsWith('YYYY');
|
|
643
|
+
const isDayFirst = this.normalizedDisplayFormat.startsWith('DD');
|
|
644
|
+
const firstPart = isYearFirst ? digits.slice(0, 4) : digits.slice(0, 2);
|
|
645
|
+
const secondPart = isYearFirst ? digits.slice(4, 6) : digits.slice(2, 4);
|
|
646
|
+
const monthPart = isYearFirst || isDayFirst ? secondPart : firstPart;
|
|
647
|
+
const dayPart = isYearFirst ? digits.slice(6, 8) : isDayFirst ? firstPart : secondPart;
|
|
648
|
+
const isSegmentInvalid = (segment, maximum) => {
|
|
649
|
+
if (!segment)
|
|
650
|
+
return false;
|
|
651
|
+
if (segment.length === 1)
|
|
652
|
+
return Number(segment) > Math.floor(maximum / 10);
|
|
653
|
+
const value = Number(segment);
|
|
654
|
+
return value < 1 || value > maximum;
|
|
655
|
+
};
|
|
656
|
+
if (isSegmentInvalid(monthPart, 12) || isSegmentInvalid(dayPart, 31))
|
|
657
|
+
return true;
|
|
658
|
+
if (monthPart.length < 2 || dayPart.length < 2)
|
|
659
|
+
return false;
|
|
660
|
+
return Number(dayPart) > new Date(2000, Number(monthPart), 0).getDate();
|
|
661
|
+
}
|
|
662
|
+
localizeForLocale(value, substitutions = {}) {
|
|
663
|
+
return localizeDatePickerString(value, substitutions);
|
|
664
|
+
}
|
|
665
|
+
normalizeDateList(values) {
|
|
666
|
+
if (!values)
|
|
667
|
+
return;
|
|
668
|
+
// Stable references prevent child constraint watchers from clearing errors on unrelated renders.
|
|
669
|
+
if (!this.normalizedDateLists.has(values)) {
|
|
670
|
+
this.normalizedDateLists.set(values, values.map(value => normalizeDatePickerValue(value)).filter((value) => !!value));
|
|
671
|
+
}
|
|
672
|
+
return this.normalizedDateLists.get(values);
|
|
673
|
+
}
|
|
674
|
+
parseTypeableDate(value) {
|
|
675
|
+
var _a;
|
|
676
|
+
const separator = this.normalizedDisplayFormat.includes('-') ? '-' : '/';
|
|
677
|
+
const escapedSeparator = separator === '-' ? '\\-' : '/';
|
|
678
|
+
const isYearFirst = this.normalizedDisplayFormat.startsWith('YYYY');
|
|
679
|
+
const pattern = isYearFirst
|
|
680
|
+
? `^\\d{4}${escapedSeparator}\\d{2}${escapedSeparator}\\d{2}$`
|
|
681
|
+
: `^\\d{2}${escapedSeparator}\\d{2}(?:${escapedSeparator}\\d{4})?$`;
|
|
682
|
+
if (!new RegExp(pattern).test(value || ''))
|
|
683
|
+
return;
|
|
684
|
+
const dateParts = value.split(separator);
|
|
685
|
+
const [yearPart, monthPart, dayPart] = isYearFirst
|
|
686
|
+
? dateParts
|
|
687
|
+
: this.normalizedDisplayFormat.startsWith('DD')
|
|
688
|
+
? [dateParts[2], dateParts[1], dateParts[0]]
|
|
689
|
+
: [dateParts[2], dateParts[0], dateParts[1]];
|
|
690
|
+
const month = Number(monthPart);
|
|
691
|
+
const day = Number(dayPart);
|
|
692
|
+
const year = yearPart ? Number(yearPart) : (_a = buildInputDate(`${month}/${day}`, this.assume)) === null || _a === void 0 ? void 0 : _a.getFullYear();
|
|
693
|
+
if (!year)
|
|
694
|
+
return;
|
|
695
|
+
const date = new Date(year, month - 1, day);
|
|
696
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
|
|
697
|
+
return;
|
|
698
|
+
return date;
|
|
699
|
+
}
|
|
700
|
+
/**
|
|
701
|
+
* Recomputes the typeable error from the current `typeableValue`, applying the same range checks the commit path
|
|
702
|
+
* uses so a stale error cannot outlive the text that produced it.
|
|
703
|
+
*/
|
|
704
|
+
revalidateTypeableValue() {
|
|
705
|
+
this.validateTypeableValue();
|
|
706
|
+
if (this.typeableError || !this.isRangeTypeable)
|
|
707
|
+
return;
|
|
708
|
+
const [startValue, endValue] = this.typeableValue.split(' - ');
|
|
709
|
+
const start = this.parseTypeableDate(startValue);
|
|
710
|
+
const end = this.parseTypeableDate(endValue);
|
|
711
|
+
if (!start || !end)
|
|
712
|
+
return;
|
|
713
|
+
this.typeableError = this.typeableRangeError(start, end);
|
|
714
|
+
}
|
|
715
|
+
async scrollDownCalendarToTop() {
|
|
716
|
+
var _a;
|
|
717
|
+
if (!this.open || !this.isRangeMode || this.activePopoverDirection !== 'down')
|
|
718
|
+
return;
|
|
719
|
+
await waitForNextPaint();
|
|
720
|
+
await waitForNextPaint();
|
|
721
|
+
if (!this.open || !this.isRangeMode || this.activePopoverDirection !== 'down')
|
|
722
|
+
return;
|
|
723
|
+
await ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.scrollContainerTo({ top: 0 }));
|
|
724
|
+
}
|
|
725
|
+
async scrollUpCalendarToBottom() {
|
|
726
|
+
var _a;
|
|
727
|
+
if (!this.open || this.activePopoverDirection !== 'up')
|
|
728
|
+
return;
|
|
729
|
+
await waitForNextPaint();
|
|
730
|
+
await waitForNextPaint();
|
|
731
|
+
if (!this.open || this.activePopoverDirection !== 'up')
|
|
732
|
+
return;
|
|
733
|
+
await ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.scrollContainerTo({ top: Number.MAX_SAFE_INTEGER }));
|
|
734
|
+
}
|
|
735
|
+
setActivePopoverDirection() {
|
|
736
|
+
this.activePopoverDirection = this.effectivePopoverDirection || this.automaticPopoverDirection;
|
|
737
|
+
}
|
|
738
|
+
setTypeableError(error) {
|
|
739
|
+
if (this.typeableError === error)
|
|
740
|
+
return;
|
|
741
|
+
this.typeableError = error;
|
|
742
|
+
if (error)
|
|
743
|
+
this.emitValidationError(error);
|
|
744
|
+
}
|
|
745
|
+
async showActionSheet() {
|
|
746
|
+
var _a, _b;
|
|
747
|
+
const result = (await ((_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.showActionSheet(this.actionSheetData)));
|
|
748
|
+
(_b = this.controlElement) === null || _b === void 0 ? void 0 : _b.focus();
|
|
749
|
+
if (result === null || result === void 0 ? void 0 : result.error) {
|
|
750
|
+
this.calendarError = result.error;
|
|
751
|
+
this.tctClose.emit({ error: result.error });
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
if (!result || result.type === 'cancel')
|
|
755
|
+
return;
|
|
756
|
+
if (this.isRangeMode) {
|
|
757
|
+
const { rangeStart, rangeEnd } = result;
|
|
758
|
+
if (!rangeStart || !rangeEnd)
|
|
759
|
+
return;
|
|
760
|
+
this.rangeStart = rangeStart;
|
|
761
|
+
this.rangeEnd = rangeEnd;
|
|
762
|
+
mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
|
|
763
|
+
this.tctClose.emit();
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
if (!result.value)
|
|
767
|
+
return;
|
|
768
|
+
this.commitSingleValue(result.value);
|
|
769
|
+
this.tctClose.emit();
|
|
770
|
+
}
|
|
771
|
+
syncTypeableValue() {
|
|
772
|
+
this.typeableValue = this.formattedTypeableValue;
|
|
773
|
+
this.revalidateTypeableValue();
|
|
774
|
+
}
|
|
775
|
+
toggleCalendar() {
|
|
776
|
+
if (this.disabled || this.readonly)
|
|
777
|
+
return;
|
|
778
|
+
if (shouldShowActionSheet({ hoist: this.hoist })) {
|
|
779
|
+
this.showActionSheet();
|
|
780
|
+
return;
|
|
781
|
+
}
|
|
782
|
+
if (!this.open)
|
|
783
|
+
this.setActivePopoverDirection();
|
|
784
|
+
this.open = !this.open;
|
|
785
|
+
}
|
|
786
|
+
typeableRangeError(start, end) {
|
|
787
|
+
if (start.getTime() > end.getTime())
|
|
788
|
+
return this.rangeOrderValidationError;
|
|
789
|
+
if (!this.isRangeValid(start, end))
|
|
790
|
+
return this.rangeValidationError;
|
|
791
|
+
return '';
|
|
792
|
+
}
|
|
793
|
+
validateCurrentValue(value = this.value) {
|
|
794
|
+
if (!value || this.isRangeMode)
|
|
795
|
+
return;
|
|
796
|
+
const normalizedValue = normalizeDatePickerValue(value);
|
|
797
|
+
const date = parseDatePickerValue(normalizedValue);
|
|
798
|
+
if (!normalizedValue || !isValidDate(date) || !this.isDateValid(date)) {
|
|
799
|
+
this.emitValidationError(`Value passed is invalid: The date ${value} is not valid`);
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
this.emitValidationSuccess(normalizedValue);
|
|
803
|
+
}
|
|
804
|
+
validateTypeableValue() {
|
|
805
|
+
const digits = this.typeableValue.replace(/\D/g, '');
|
|
806
|
+
if (!digits) {
|
|
807
|
+
this.setTypeableError('');
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
const dateParts = this.isRangeTypeable ? [digits.slice(0, 8), digits.slice(8)] : [digits];
|
|
811
|
+
const containsInvalidDate = dateParts.some(part => {
|
|
812
|
+
if (this.isTypeableDatePrefixInvalid(part))
|
|
813
|
+
return true;
|
|
814
|
+
if (part.length !== 8)
|
|
815
|
+
return false;
|
|
816
|
+
const date = this.parseTypeableDate(this.formatTypeableDate(part));
|
|
817
|
+
return !date || !this.isDateValid(date);
|
|
818
|
+
});
|
|
819
|
+
this.setTypeableError(containsInvalidDate
|
|
820
|
+
? this.isRangeTypeable
|
|
821
|
+
? this.rangeFormatValidationError
|
|
822
|
+
: this.dateFormatValidationError
|
|
823
|
+
: '');
|
|
824
|
+
}
|
|
825
|
+
// #endregion
|
|
826
|
+
// #region Render Methods
|
|
827
|
+
renderCalendar() {
|
|
828
|
+
return (h("q2-date-calendar", { ref: element => (this.calendarElement = element), class: this._actionSheet ? 'is-action-sheet' : undefined, accessibleLabel: this.calendarLabel || 'Choose a date', actionSheet: this._actionSheet, calendarLabel: this.calendarLabel, cutoffTime: this.cutoffTime, daysOfWeekChecksum: this.daysOfWeekChecksum, direction: this.activePopoverDirection, disabled: this.disabled, disclaimer: this.disclaimer, displayFormat: this.normalizedDisplayFormat, endDate: normalizeDatePickerValue(this.endDate), invalidDates: this.normalizedInvalidDates, locale: this.locale, mode: this.effectiveMode, open: this.open, rangeEnd: normalizeDatePickerValue(this.rangeEnd), rangeStart: normalizeDatePickerValue(this.rangeStart), readonly: this.readonly, startDate: normalizeDatePickerValue(this.startDate), validDates: this.normalizedValidDates, value: this.normalizedValue, onTctCalendarCancel: this.onCalendarCancel, onTctCalendarCommit: this.onCalendarCommit, onTctCalendarDismiss: this.onCalendarDismiss, onTctCalendarError: this.onCalendarError }));
|
|
829
|
+
}
|
|
830
|
+
render() {
|
|
831
|
+
if (this._actionSheet)
|
|
832
|
+
return this.renderCalendar();
|
|
833
|
+
return (h("click-elsewhere", { class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, h("q2-input", { ref: element => (this.controlElement = element), class: "date-picker-input", clearable: this.canClear, disabled: this.disabled, errors: this.computedErrors, hideLabel: this.hideLabel, hints: this.hints, readonly: this.readonly, optional: this.optional, valid: this.valid, value: this.acceptsTypeableInput ? this.typeableValue : this.formattedValue, label: loc(this.label), placeholder: this.computedPlaceholder, "icon-right": this.acceptsTypeableInput ? undefined : 'calendar', autocomplete: "off", maxlength: this.isRangeTypeable ? 23 : this.isSingleTypeable ? 10 : undefined, "aria-haspopup": "dialog", "aria-expanded": `${this.open}`, "aria-controls": "date-picker-popover", onClick: this.acceptsTypeableInput ? undefined : this.onInputClick, onChange: event => event.stopImmediatePropagation(), onTctChange: this.acceptsTypeableInput ? this.onTypeableChange : event => event.stopImmediatePropagation(), onInput: event => event.stopImmediatePropagation(), onTctInput: this.acceptsTypeableInput ? this.onTypeableInput : event => event.stopImmediatePropagation(), onTctClear: this.onClear, onKeyDown: this.onInputKeydown, "test-id": "datePickerToggle", _preventEntry: !this.acceptsTypeableInput }, hasSlotContent(this.hostElement, 'label') && (h("slot", { name: "label", slot: "label" })), this.acceptsTypeableInput && (h("q2-btn", { slot: "input-right", "hide-label": true, disabled: this.disabled || this.readonly, label: "tecton.element.calendar.toggleAriaLabel", onClick: this.onCalendarToggleClick, "test-id": "datePickerCalendarToggle" }, h("q2-icon", { type: "calendar" })))), h("q2-popover", { ref: element => (this.popoverElement = element), id: "date-picker-popover", controlElement: this.controlElement, open: this.open, direction: this.effectivePopoverDirection, align: this.popoverAlignment, minHeight: this.popoverMinHeight, mode: this.popoverMode || undefined }, this.renderCalendar())));
|
|
834
|
+
}
|
|
835
|
+
static get is() { return "q2-date-picker"; }
|
|
836
|
+
static get encapsulation() { return "shadow"; }
|
|
837
|
+
static get originalStyleUrls() {
|
|
838
|
+
return {
|
|
839
|
+
"$": ["q2-date-picker.scss"]
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
static get styleUrls() {
|
|
843
|
+
return {
|
|
844
|
+
"$": ["q2-date-picker.css"]
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
static get properties() {
|
|
848
|
+
return {
|
|
849
|
+
"_actionSheet": {
|
|
850
|
+
"type": "boolean",
|
|
851
|
+
"mutable": false,
|
|
852
|
+
"complexType": {
|
|
853
|
+
"original": "boolean",
|
|
854
|
+
"resolved": "boolean",
|
|
855
|
+
"references": {}
|
|
856
|
+
},
|
|
857
|
+
"required": false,
|
|
858
|
+
"optional": false,
|
|
859
|
+
"docs": {
|
|
860
|
+
"tags": [{
|
|
861
|
+
"name": "private",
|
|
862
|
+
"text": undefined
|
|
863
|
+
}],
|
|
864
|
+
"text": "Renders the calendar panel inline with behavior specific to being hosted by `q2-action-sheet`."
|
|
865
|
+
},
|
|
866
|
+
"getter": false,
|
|
867
|
+
"setter": false,
|
|
868
|
+
"reflect": false,
|
|
869
|
+
"attribute": "_action-sheet",
|
|
870
|
+
"defaultValue": "false"
|
|
871
|
+
},
|
|
872
|
+
"assume": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"mutable": false,
|
|
875
|
+
"complexType": {
|
|
876
|
+
"original": "'current' | 'future' | 'past'",
|
|
877
|
+
"resolved": "\"current\" | \"future\" | \"past\"",
|
|
878
|
+
"references": {}
|
|
879
|
+
},
|
|
880
|
+
"required": false,
|
|
881
|
+
"optional": false,
|
|
882
|
+
"docs": {
|
|
883
|
+
"tags": [],
|
|
884
|
+
"text": "Determines the year for a committed month/day typeable date with no year.\n`future` selects the next year for dates before today, while `past` selects the prior year for dates after today.\nOnly applies to `single-typeable` mode with a month-first or day-first display format."
|
|
885
|
+
},
|
|
886
|
+
"getter": false,
|
|
887
|
+
"setter": false,
|
|
888
|
+
"reflect": true,
|
|
889
|
+
"attribute": "assume",
|
|
890
|
+
"defaultValue": "'current'"
|
|
891
|
+
},
|
|
892
|
+
"calendarLabel": {
|
|
893
|
+
"type": "string",
|
|
894
|
+
"mutable": false,
|
|
895
|
+
"complexType": {
|
|
896
|
+
"original": "string",
|
|
897
|
+
"resolved": "string",
|
|
898
|
+
"references": {}
|
|
899
|
+
},
|
|
900
|
+
"required": false,
|
|
901
|
+
"optional": false,
|
|
902
|
+
"docs": {
|
|
903
|
+
"tags": [],
|
|
904
|
+
"text": "A label shown above the date picker navigation."
|
|
905
|
+
},
|
|
906
|
+
"getter": false,
|
|
907
|
+
"setter": false,
|
|
908
|
+
"reflect": true,
|
|
909
|
+
"attribute": "calendar-label"
|
|
910
|
+
},
|
|
911
|
+
"clearable": {
|
|
912
|
+
"type": "boolean",
|
|
913
|
+
"mutable": false,
|
|
914
|
+
"complexType": {
|
|
915
|
+
"original": "boolean",
|
|
916
|
+
"resolved": "boolean",
|
|
917
|
+
"references": {}
|
|
918
|
+
},
|
|
919
|
+
"required": false,
|
|
920
|
+
"optional": false,
|
|
921
|
+
"docs": {
|
|
922
|
+
"tags": [],
|
|
923
|
+
"text": "Displays a button in the input field allowing the user to clear the selected date or range."
|
|
924
|
+
},
|
|
925
|
+
"getter": false,
|
|
926
|
+
"setter": false,
|
|
927
|
+
"reflect": true,
|
|
928
|
+
"attribute": "clearable",
|
|
929
|
+
"defaultValue": "false"
|
|
930
|
+
},
|
|
931
|
+
"closeDelay": {
|
|
932
|
+
"type": "number",
|
|
933
|
+
"mutable": false,
|
|
934
|
+
"complexType": {
|
|
935
|
+
"original": "number | undefined",
|
|
936
|
+
"resolved": "number",
|
|
937
|
+
"references": {}
|
|
938
|
+
},
|
|
939
|
+
"required": false,
|
|
940
|
+
"optional": false,
|
|
941
|
+
"docs": {
|
|
942
|
+
"tags": [],
|
|
943
|
+
"text": "Delay in milliseconds before the popover closes after selection. Explicitly undefined or non-positive values close immediately."
|
|
944
|
+
},
|
|
945
|
+
"getter": false,
|
|
946
|
+
"setter": false,
|
|
947
|
+
"reflect": true,
|
|
948
|
+
"attribute": "close-delay",
|
|
949
|
+
"defaultValue": "400"
|
|
950
|
+
},
|
|
951
|
+
"cutoffTime": {
|
|
952
|
+
"type": "string",
|
|
953
|
+
"mutable": false,
|
|
954
|
+
"complexType": {
|
|
955
|
+
"original": "string",
|
|
956
|
+
"resolved": "string",
|
|
957
|
+
"references": {}
|
|
958
|
+
},
|
|
959
|
+
"required": false,
|
|
960
|
+
"optional": false,
|
|
961
|
+
"docs": {
|
|
962
|
+
"tags": [{
|
|
963
|
+
"name": "warning",
|
|
964
|
+
"text": "Must be a valid ISO date string."
|
|
965
|
+
}],
|
|
966
|
+
"text": "Specifies a time of day after which a date is no longer valid."
|
|
967
|
+
},
|
|
968
|
+
"getter": false,
|
|
969
|
+
"setter": false,
|
|
970
|
+
"reflect": true,
|
|
971
|
+
"attribute": "cutoff-time"
|
|
972
|
+
},
|
|
973
|
+
"daysOfWeekChecksum": {
|
|
974
|
+
"type": "number",
|
|
975
|
+
"mutable": false,
|
|
976
|
+
"complexType": {
|
|
977
|
+
"original": "number",
|
|
978
|
+
"resolved": "number",
|
|
979
|
+
"references": {}
|
|
980
|
+
},
|
|
981
|
+
"required": false,
|
|
982
|
+
"optional": false,
|
|
983
|
+
"docs": {
|
|
984
|
+
"tags": [],
|
|
985
|
+
"text": "Defines valid days of the week using the calendar checksum values.\n\nSunday begins at `1` and each following day doubles through Saturday at `64`."
|
|
986
|
+
},
|
|
987
|
+
"getter": false,
|
|
988
|
+
"setter": false,
|
|
989
|
+
"reflect": true,
|
|
990
|
+
"attribute": "days-of-week-checksum"
|
|
991
|
+
},
|
|
992
|
+
"disabled": {
|
|
993
|
+
"type": "boolean",
|
|
994
|
+
"mutable": false,
|
|
995
|
+
"complexType": {
|
|
996
|
+
"original": "boolean",
|
|
997
|
+
"resolved": "boolean",
|
|
998
|
+
"references": {}
|
|
999
|
+
},
|
|
1000
|
+
"required": false,
|
|
1001
|
+
"optional": false,
|
|
1002
|
+
"docs": {
|
|
1003
|
+
"tags": [],
|
|
1004
|
+
"text": "Indicates the date picker cannot be focused or interacted with."
|
|
1005
|
+
},
|
|
1006
|
+
"getter": false,
|
|
1007
|
+
"setter": false,
|
|
1008
|
+
"reflect": true,
|
|
1009
|
+
"attribute": "disabled",
|
|
1010
|
+
"defaultValue": "false"
|
|
1011
|
+
},
|
|
1012
|
+
"disabledMsg": {
|
|
1013
|
+
"type": "string",
|
|
1014
|
+
"mutable": false,
|
|
1015
|
+
"complexType": {
|
|
1016
|
+
"original": "string",
|
|
1017
|
+
"resolved": "string",
|
|
1018
|
+
"references": {}
|
|
1019
|
+
},
|
|
1020
|
+
"required": false,
|
|
1021
|
+
"optional": false,
|
|
1022
|
+
"docs": {
|
|
1023
|
+
"tags": [],
|
|
1024
|
+
"text": "Text displayed as the input placeholder when the field is disabled."
|
|
1025
|
+
},
|
|
1026
|
+
"getter": false,
|
|
1027
|
+
"setter": false,
|
|
1028
|
+
"reflect": true,
|
|
1029
|
+
"attribute": "disabled-msg"
|
|
1030
|
+
},
|
|
1031
|
+
"disclaimer": {
|
|
1032
|
+
"type": "string",
|
|
1033
|
+
"mutable": false,
|
|
1034
|
+
"complexType": {
|
|
1035
|
+
"original": "string",
|
|
1036
|
+
"resolved": "string",
|
|
1037
|
+
"references": {}
|
|
1038
|
+
},
|
|
1039
|
+
"required": false,
|
|
1040
|
+
"optional": false,
|
|
1041
|
+
"docs": {
|
|
1042
|
+
"tags": [],
|
|
1043
|
+
"text": "Text shown below the date grid."
|
|
1044
|
+
},
|
|
1045
|
+
"getter": false,
|
|
1046
|
+
"setter": false,
|
|
1047
|
+
"reflect": true,
|
|
1048
|
+
"attribute": "disclaimer"
|
|
1049
|
+
},
|
|
1050
|
+
"displayFormat": {
|
|
1051
|
+
"type": "string",
|
|
1052
|
+
"mutable": false,
|
|
1053
|
+
"complexType": {
|
|
1054
|
+
"original": "string",
|
|
1055
|
+
"resolved": "string",
|
|
1056
|
+
"references": {}
|
|
1057
|
+
},
|
|
1058
|
+
"required": false,
|
|
1059
|
+
"optional": true,
|
|
1060
|
+
"docs": {
|
|
1061
|
+
"tags": [],
|
|
1062
|
+
"text": "Formats the displayed date using legacy Moment-style tokens. Typeable modes support the numeric formats defined\nby `DatePickerDisplayFormat` and fall back to `MM/DD/YYYY` for other formats."
|
|
1063
|
+
},
|
|
1064
|
+
"getter": false,
|
|
1065
|
+
"setter": false,
|
|
1066
|
+
"reflect": true,
|
|
1067
|
+
"attribute": "display-format"
|
|
1068
|
+
},
|
|
1069
|
+
"endDate": {
|
|
1070
|
+
"type": "string",
|
|
1071
|
+
"mutable": false,
|
|
1072
|
+
"complexType": {
|
|
1073
|
+
"original": "string",
|
|
1074
|
+
"resolved": "string",
|
|
1075
|
+
"references": {}
|
|
1076
|
+
},
|
|
1077
|
+
"required": false,
|
|
1078
|
+
"optional": false,
|
|
1079
|
+
"docs": {
|
|
1080
|
+
"tags": [],
|
|
1081
|
+
"text": "Defines the last selectable date. ISO date strings are preferred; legacy date strings and\ntimestamps are normalized to their calendar date, without shifting timestamp time zones."
|
|
1082
|
+
},
|
|
1083
|
+
"getter": false,
|
|
1084
|
+
"setter": false,
|
|
1085
|
+
"reflect": true,
|
|
1086
|
+
"attribute": "end-date"
|
|
1087
|
+
},
|
|
1088
|
+
"errors": {
|
|
1089
|
+
"type": "unknown",
|
|
1090
|
+
"mutable": true,
|
|
1091
|
+
"complexType": {
|
|
1092
|
+
"original": "string[]",
|
|
1093
|
+
"resolved": "string[]",
|
|
1094
|
+
"references": {}
|
|
1095
|
+
},
|
|
1096
|
+
"required": false,
|
|
1097
|
+
"optional": false,
|
|
1098
|
+
"docs": {
|
|
1099
|
+
"tags": [],
|
|
1100
|
+
"text": "Consumer-provided error messages displayed below the input field."
|
|
1101
|
+
},
|
|
1102
|
+
"getter": false,
|
|
1103
|
+
"setter": false
|
|
1104
|
+
},
|
|
1105
|
+
"hideLabel": {
|
|
1106
|
+
"type": "boolean",
|
|
1107
|
+
"mutable": true,
|
|
1108
|
+
"complexType": {
|
|
1109
|
+
"original": "boolean",
|
|
1110
|
+
"resolved": "boolean",
|
|
1111
|
+
"references": {}
|
|
1112
|
+
},
|
|
1113
|
+
"required": false,
|
|
1114
|
+
"optional": false,
|
|
1115
|
+
"docs": {
|
|
1116
|
+
"tags": [{
|
|
1117
|
+
"name": "warning",
|
|
1118
|
+
"text": "Hides the label visually. `label` text is still required for screenreader compliance."
|
|
1119
|
+
}],
|
|
1120
|
+
"text": "Hides the input field's visible label while retaining its accessible name."
|
|
1121
|
+
},
|
|
1122
|
+
"getter": false,
|
|
1123
|
+
"setter": false,
|
|
1124
|
+
"reflect": true,
|
|
1125
|
+
"attribute": "hide-label",
|
|
1126
|
+
"defaultValue": "false"
|
|
1127
|
+
},
|
|
1128
|
+
"hints": {
|
|
1129
|
+
"type": "unknown",
|
|
1130
|
+
"mutable": true,
|
|
1131
|
+
"complexType": {
|
|
1132
|
+
"original": "string[]",
|
|
1133
|
+
"resolved": "string[]",
|
|
1134
|
+
"references": {}
|
|
1135
|
+
},
|
|
1136
|
+
"required": false,
|
|
1137
|
+
"optional": false,
|
|
1138
|
+
"docs": {
|
|
1139
|
+
"tags": [],
|
|
1140
|
+
"text": "Consumer-provided hint messages displayed below the input field."
|
|
1141
|
+
},
|
|
1142
|
+
"getter": false,
|
|
1143
|
+
"setter": false
|
|
1144
|
+
},
|
|
1145
|
+
"hoist": {
|
|
1146
|
+
"type": "boolean",
|
|
1147
|
+
"mutable": false,
|
|
1148
|
+
"complexType": {
|
|
1149
|
+
"original": "boolean | undefined",
|
|
1150
|
+
"resolved": "boolean",
|
|
1151
|
+
"references": {}
|
|
1152
|
+
},
|
|
1153
|
+
"required": false,
|
|
1154
|
+
"optional": false,
|
|
1155
|
+
"docs": {
|
|
1156
|
+
"tags": [],
|
|
1157
|
+
"text": "Instructs the component to use the action sheet workflow for displaying its calendar.\n\nFor more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/)."
|
|
1158
|
+
},
|
|
1159
|
+
"getter": false,
|
|
1160
|
+
"setter": false,
|
|
1161
|
+
"reflect": false,
|
|
1162
|
+
"attribute": "hoist",
|
|
1163
|
+
"defaultValue": "window.Tecton?.useActionSheets ? true : undefined"
|
|
1164
|
+
},
|
|
1165
|
+
"invalid": {
|
|
1166
|
+
"type": "boolean",
|
|
1167
|
+
"mutable": true,
|
|
1168
|
+
"complexType": {
|
|
1169
|
+
"original": "boolean",
|
|
1170
|
+
"resolved": "boolean",
|
|
1171
|
+
"references": {}
|
|
1172
|
+
},
|
|
1173
|
+
"required": false,
|
|
1174
|
+
"optional": false,
|
|
1175
|
+
"docs": {
|
|
1176
|
+
"tags": [],
|
|
1177
|
+
"text": "Shows the input field's error visual state."
|
|
1178
|
+
},
|
|
1179
|
+
"getter": false,
|
|
1180
|
+
"setter": false,
|
|
1181
|
+
"reflect": true,
|
|
1182
|
+
"attribute": "invalid",
|
|
1183
|
+
"defaultValue": "false"
|
|
1184
|
+
},
|
|
1185
|
+
"invalidDates": {
|
|
1186
|
+
"type": "unknown",
|
|
1187
|
+
"mutable": false,
|
|
1188
|
+
"complexType": {
|
|
1189
|
+
"original": "string[]",
|
|
1190
|
+
"resolved": "string[]",
|
|
1191
|
+
"references": {}
|
|
1192
|
+
},
|
|
1193
|
+
"required": false,
|
|
1194
|
+
"optional": false,
|
|
1195
|
+
"docs": {
|
|
1196
|
+
"tags": [],
|
|
1197
|
+
"text": "Defines an explicit date blacklist. ISO dates, legacy date strings, and timestamps are normalized to calendar dates.\n\nAssign a new array when changing this property. Mutating the existing array does not trigger validation updates."
|
|
1198
|
+
},
|
|
1199
|
+
"getter": false,
|
|
1200
|
+
"setter": false
|
|
1201
|
+
},
|
|
1202
|
+
"label": {
|
|
1203
|
+
"type": "string",
|
|
1204
|
+
"mutable": true,
|
|
1205
|
+
"complexType": {
|
|
1206
|
+
"original": "string",
|
|
1207
|
+
"resolved": "string",
|
|
1208
|
+
"references": {}
|
|
1209
|
+
},
|
|
1210
|
+
"required": false,
|
|
1211
|
+
"optional": false,
|
|
1212
|
+
"docs": {
|
|
1213
|
+
"tags": [{
|
|
1214
|
+
"name": "warning",
|
|
1215
|
+
"text": "Required for screen reader compliance even when `hideLabel` is `true`."
|
|
1216
|
+
}],
|
|
1217
|
+
"text": "The visible label for the date picker input field."
|
|
1218
|
+
},
|
|
1219
|
+
"getter": false,
|
|
1220
|
+
"setter": false,
|
|
1221
|
+
"reflect": true,
|
|
1222
|
+
"attribute": "label"
|
|
1223
|
+
},
|
|
1224
|
+
"locale": {
|
|
1225
|
+
"type": "string",
|
|
1226
|
+
"mutable": false,
|
|
1227
|
+
"complexType": {
|
|
1228
|
+
"original": "string | string[]",
|
|
1229
|
+
"resolved": "string | string[]",
|
|
1230
|
+
"references": {}
|
|
1231
|
+
},
|
|
1232
|
+
"required": false,
|
|
1233
|
+
"optional": false,
|
|
1234
|
+
"docs": {
|
|
1235
|
+
"tags": [],
|
|
1236
|
+
"text": "Formats selected dates using the provided locale. Accepts multiple locales in an array as sequential fallbacks."
|
|
1237
|
+
},
|
|
1238
|
+
"getter": false,
|
|
1239
|
+
"setter": false,
|
|
1240
|
+
"reflect": true,
|
|
1241
|
+
"attribute": "locale",
|
|
1242
|
+
"defaultValue": "document.documentElement.lang || 'en-US'"
|
|
1243
|
+
},
|
|
1244
|
+
"mode": {
|
|
1245
|
+
"type": "string",
|
|
1246
|
+
"mutable": false,
|
|
1247
|
+
"complexType": {
|
|
1248
|
+
"original": "DatePickerMode",
|
|
1249
|
+
"resolved": "\"range\" | \"range-typeable\" | \"single\" | \"single-typeable\"",
|
|
1250
|
+
"references": {
|
|
1251
|
+
"DatePickerMode": {
|
|
1252
|
+
"location": "import",
|
|
1253
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1254
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerMode",
|
|
1255
|
+
"referenceLocation": "DatePickerMode"
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
},
|
|
1259
|
+
"required": false,
|
|
1260
|
+
"optional": false,
|
|
1261
|
+
"docs": {
|
|
1262
|
+
"tags": [],
|
|
1263
|
+
"text": "Selects calendar or typeable behavior for a single date or date range.\nEnabling the legacy `typeable` prop uses `single-typeable` when `mode` is left at its default; an explicit mode takes precedence."
|
|
1264
|
+
},
|
|
1265
|
+
"getter": false,
|
|
1266
|
+
"setter": false,
|
|
1267
|
+
"reflect": true,
|
|
1268
|
+
"attribute": "mode",
|
|
1269
|
+
"defaultValue": "'single'"
|
|
1270
|
+
},
|
|
1271
|
+
"open": {
|
|
1272
|
+
"type": "boolean",
|
|
1273
|
+
"mutable": true,
|
|
1274
|
+
"complexType": {
|
|
1275
|
+
"original": "boolean",
|
|
1276
|
+
"resolved": "boolean",
|
|
1277
|
+
"references": {}
|
|
1278
|
+
},
|
|
1279
|
+
"required": false,
|
|
1280
|
+
"optional": false,
|
|
1281
|
+
"docs": {
|
|
1282
|
+
"tags": [],
|
|
1283
|
+
"text": "Controls whether the date picker popover is open or closed."
|
|
1284
|
+
},
|
|
1285
|
+
"getter": false,
|
|
1286
|
+
"setter": false,
|
|
1287
|
+
"reflect": true,
|
|
1288
|
+
"attribute": "open",
|
|
1289
|
+
"defaultValue": "false"
|
|
1290
|
+
},
|
|
1291
|
+
"optional": {
|
|
1292
|
+
"type": "boolean",
|
|
1293
|
+
"mutable": false,
|
|
1294
|
+
"complexType": {
|
|
1295
|
+
"original": "boolean",
|
|
1296
|
+
"resolved": "boolean",
|
|
1297
|
+
"references": {}
|
|
1298
|
+
},
|
|
1299
|
+
"required": false,
|
|
1300
|
+
"optional": false,
|
|
1301
|
+
"docs": {
|
|
1302
|
+
"tags": [],
|
|
1303
|
+
"text": "Appends \"(optional)\" to the input label and marks the field as not required."
|
|
1304
|
+
},
|
|
1305
|
+
"getter": false,
|
|
1306
|
+
"setter": false,
|
|
1307
|
+
"reflect": true,
|
|
1308
|
+
"attribute": "optional",
|
|
1309
|
+
"defaultValue": "false"
|
|
1310
|
+
},
|
|
1311
|
+
"placeholder": {
|
|
1312
|
+
"type": "string",
|
|
1313
|
+
"mutable": false,
|
|
1314
|
+
"complexType": {
|
|
1315
|
+
"original": "string",
|
|
1316
|
+
"resolved": "string",
|
|
1317
|
+
"references": {}
|
|
1318
|
+
},
|
|
1319
|
+
"required": false,
|
|
1320
|
+
"optional": false,
|
|
1321
|
+
"docs": {
|
|
1322
|
+
"tags": [],
|
|
1323
|
+
"text": "Text shown in the input field when no date is selected."
|
|
1324
|
+
},
|
|
1325
|
+
"getter": false,
|
|
1326
|
+
"setter": false,
|
|
1327
|
+
"reflect": true,
|
|
1328
|
+
"attribute": "placeholder"
|
|
1329
|
+
},
|
|
1330
|
+
"popDirection": {
|
|
1331
|
+
"type": "string",
|
|
1332
|
+
"mutable": false,
|
|
1333
|
+
"complexType": {
|
|
1334
|
+
"original": "'up' | 'down'",
|
|
1335
|
+
"resolved": "\"down\" | \"up\"",
|
|
1336
|
+
"references": {}
|
|
1337
|
+
},
|
|
1338
|
+
"required": false,
|
|
1339
|
+
"optional": false,
|
|
1340
|
+
"docs": {
|
|
1341
|
+
"tags": [{
|
|
1342
|
+
"name": "deprecated",
|
|
1343
|
+
"text": "Use `popoverDirection` instead."
|
|
1344
|
+
}],
|
|
1345
|
+
"text": "Forces the direction of the popover when it opens."
|
|
1346
|
+
},
|
|
1347
|
+
"getter": false,
|
|
1348
|
+
"setter": false,
|
|
1349
|
+
"reflect": true,
|
|
1350
|
+
"attribute": "pop-direction"
|
|
1351
|
+
},
|
|
1352
|
+
"popoverAlignment": {
|
|
1353
|
+
"type": "string",
|
|
1354
|
+
"mutable": false,
|
|
1355
|
+
"complexType": {
|
|
1356
|
+
"original": "'left' | 'right'",
|
|
1357
|
+
"resolved": "\"left\" | \"right\"",
|
|
1358
|
+
"references": {}
|
|
1359
|
+
},
|
|
1360
|
+
"required": false,
|
|
1361
|
+
"optional": false,
|
|
1362
|
+
"docs": {
|
|
1363
|
+
"tags": [],
|
|
1364
|
+
"text": "Aligns the calendar popover to the left or right side of the input field."
|
|
1365
|
+
},
|
|
1366
|
+
"getter": false,
|
|
1367
|
+
"setter": false,
|
|
1368
|
+
"reflect": true,
|
|
1369
|
+
"attribute": "popover-alignment",
|
|
1370
|
+
"defaultValue": "'left'"
|
|
1371
|
+
},
|
|
1372
|
+
"popoverDirection": {
|
|
1373
|
+
"type": "string",
|
|
1374
|
+
"mutable": false,
|
|
1375
|
+
"complexType": {
|
|
1376
|
+
"original": "'up' | 'down'",
|
|
1377
|
+
"resolved": "\"down\" | \"up\"",
|
|
1378
|
+
"references": {}
|
|
1379
|
+
},
|
|
1380
|
+
"required": false,
|
|
1381
|
+
"optional": false,
|
|
1382
|
+
"docs": {
|
|
1383
|
+
"tags": [],
|
|
1384
|
+
"text": "Forces the direction of the popover when it opens.\n\nIf no value is passed, the popover automatically selects a direction based on available space.\nUse `up` to place navigation below the date grid."
|
|
1385
|
+
},
|
|
1386
|
+
"getter": false,
|
|
1387
|
+
"setter": false,
|
|
1388
|
+
"reflect": true,
|
|
1389
|
+
"attribute": "popover-direction"
|
|
1390
|
+
},
|
|
1391
|
+
"popoverMinHeight": {
|
|
1392
|
+
"type": "number",
|
|
1393
|
+
"mutable": false,
|
|
1394
|
+
"complexType": {
|
|
1395
|
+
"original": "number",
|
|
1396
|
+
"resolved": "number",
|
|
1397
|
+
"references": {}
|
|
1398
|
+
},
|
|
1399
|
+
"required": false,
|
|
1400
|
+
"optional": false,
|
|
1401
|
+
"docs": {
|
|
1402
|
+
"tags": [{
|
|
1403
|
+
"name": "deprecated",
|
|
1404
|
+
"text": "Retained for compatibility with `q2-date-picker`."
|
|
1405
|
+
}],
|
|
1406
|
+
"text": ""
|
|
1407
|
+
},
|
|
1408
|
+
"getter": false,
|
|
1409
|
+
"setter": false,
|
|
1410
|
+
"reflect": false,
|
|
1411
|
+
"attribute": "popover-min-height",
|
|
1412
|
+
"defaultValue": "355"
|
|
1413
|
+
},
|
|
1414
|
+
"popoverMode": {
|
|
1415
|
+
"type": "string",
|
|
1416
|
+
"mutable": true,
|
|
1417
|
+
"complexType": {
|
|
1418
|
+
"original": "'legacy'",
|
|
1419
|
+
"resolved": "\"legacy\"",
|
|
1420
|
+
"references": {}
|
|
1421
|
+
},
|
|
1422
|
+
"required": false,
|
|
1423
|
+
"optional": false,
|
|
1424
|
+
"docs": {
|
|
1425
|
+
"tags": [],
|
|
1426
|
+
"text": "Uses absolute positioning for the popover when set to `legacy`.\n\nThis compatibility option supports layouts where transformed ancestors interfere with fixed positioning."
|
|
1427
|
+
},
|
|
1428
|
+
"getter": false,
|
|
1429
|
+
"setter": false,
|
|
1430
|
+
"reflect": false,
|
|
1431
|
+
"attribute": "popover-mode",
|
|
1432
|
+
"defaultValue": "null"
|
|
1433
|
+
},
|
|
1434
|
+
"rangeEnd": {
|
|
1435
|
+
"type": "string",
|
|
1436
|
+
"mutable": true,
|
|
1437
|
+
"complexType": {
|
|
1438
|
+
"original": "string",
|
|
1439
|
+
"resolved": "string",
|
|
1440
|
+
"references": {}
|
|
1441
|
+
},
|
|
1442
|
+
"required": false,
|
|
1443
|
+
"optional": false,
|
|
1444
|
+
"docs": {
|
|
1445
|
+
"tags": [],
|
|
1446
|
+
"text": "The selected range end. ISO dates, legacy date strings, and timestamps are accepted."
|
|
1447
|
+
},
|
|
1448
|
+
"getter": false,
|
|
1449
|
+
"setter": false,
|
|
1450
|
+
"reflect": true,
|
|
1451
|
+
"attribute": "range-end"
|
|
1452
|
+
},
|
|
1453
|
+
"rangeStart": {
|
|
1454
|
+
"type": "string",
|
|
1455
|
+
"mutable": true,
|
|
1456
|
+
"complexType": {
|
|
1457
|
+
"original": "string",
|
|
1458
|
+
"resolved": "string",
|
|
1459
|
+
"references": {}
|
|
1460
|
+
},
|
|
1461
|
+
"required": false,
|
|
1462
|
+
"optional": false,
|
|
1463
|
+
"docs": {
|
|
1464
|
+
"tags": [],
|
|
1465
|
+
"text": "The selected range start. ISO dates, legacy date strings, and timestamps are accepted."
|
|
1466
|
+
},
|
|
1467
|
+
"getter": false,
|
|
1468
|
+
"setter": false,
|
|
1469
|
+
"reflect": true,
|
|
1470
|
+
"attribute": "range-start"
|
|
1471
|
+
},
|
|
1472
|
+
"readonly": {
|
|
1473
|
+
"type": "boolean",
|
|
1474
|
+
"mutable": false,
|
|
1475
|
+
"complexType": {
|
|
1476
|
+
"original": "boolean",
|
|
1477
|
+
"resolved": "boolean",
|
|
1478
|
+
"references": {}
|
|
1479
|
+
},
|
|
1480
|
+
"required": false,
|
|
1481
|
+
"optional": false,
|
|
1482
|
+
"docs": {
|
|
1483
|
+
"tags": [],
|
|
1484
|
+
"text": "The field's content is not editable, but the field remains focusable.\n\nAppends \"(read only)\" to the field label."
|
|
1485
|
+
},
|
|
1486
|
+
"getter": false,
|
|
1487
|
+
"setter": false,
|
|
1488
|
+
"reflect": true,
|
|
1489
|
+
"attribute": "readonly",
|
|
1490
|
+
"defaultValue": "false"
|
|
1491
|
+
},
|
|
1492
|
+
"startDate": {
|
|
1493
|
+
"type": "string",
|
|
1494
|
+
"mutable": false,
|
|
1495
|
+
"complexType": {
|
|
1496
|
+
"original": "string",
|
|
1497
|
+
"resolved": "string",
|
|
1498
|
+
"references": {}
|
|
1499
|
+
},
|
|
1500
|
+
"required": false,
|
|
1501
|
+
"optional": false,
|
|
1502
|
+
"docs": {
|
|
1503
|
+
"tags": [],
|
|
1504
|
+
"text": "Defines the first selectable date. ISO date strings are preferred; legacy date strings and\ntimestamps are normalized to their calendar date, without shifting timestamp time zones."
|
|
1505
|
+
},
|
|
1506
|
+
"getter": false,
|
|
1507
|
+
"setter": false,
|
|
1508
|
+
"reflect": true,
|
|
1509
|
+
"attribute": "start-date"
|
|
1510
|
+
},
|
|
1511
|
+
"typeable": {
|
|
1512
|
+
"type": "boolean",
|
|
1513
|
+
"mutable": false,
|
|
1514
|
+
"complexType": {
|
|
1515
|
+
"original": "boolean",
|
|
1516
|
+
"resolved": "boolean",
|
|
1517
|
+
"references": {}
|
|
1518
|
+
},
|
|
1519
|
+
"required": false,
|
|
1520
|
+
"optional": false,
|
|
1521
|
+
"docs": {
|
|
1522
|
+
"tags": [],
|
|
1523
|
+
"text": "Enables the legacy single-date typeable input behavior."
|
|
1524
|
+
},
|
|
1525
|
+
"getter": false,
|
|
1526
|
+
"setter": false,
|
|
1527
|
+
"reflect": true,
|
|
1528
|
+
"attribute": "typeable",
|
|
1529
|
+
"defaultValue": "false"
|
|
1530
|
+
},
|
|
1531
|
+
"valid": {
|
|
1532
|
+
"type": "boolean",
|
|
1533
|
+
"mutable": false,
|
|
1534
|
+
"complexType": {
|
|
1535
|
+
"original": "boolean",
|
|
1536
|
+
"resolved": "boolean",
|
|
1537
|
+
"references": {}
|
|
1538
|
+
},
|
|
1539
|
+
"required": false,
|
|
1540
|
+
"optional": false,
|
|
1541
|
+
"docs": {
|
|
1542
|
+
"tags": [],
|
|
1543
|
+
"text": "Shows the input field's success visual state when no errors are active."
|
|
1544
|
+
},
|
|
1545
|
+
"getter": false,
|
|
1546
|
+
"setter": false,
|
|
1547
|
+
"reflect": true,
|
|
1548
|
+
"attribute": "valid",
|
|
1549
|
+
"defaultValue": "false"
|
|
1550
|
+
},
|
|
1551
|
+
"validDates": {
|
|
1552
|
+
"type": "unknown",
|
|
1553
|
+
"mutable": false,
|
|
1554
|
+
"complexType": {
|
|
1555
|
+
"original": "string[]",
|
|
1556
|
+
"resolved": "string[]",
|
|
1557
|
+
"references": {}
|
|
1558
|
+
},
|
|
1559
|
+
"required": false,
|
|
1560
|
+
"optional": false,
|
|
1561
|
+
"docs": {
|
|
1562
|
+
"tags": [],
|
|
1563
|
+
"text": "Defines an explicit date whitelist. ISO dates, legacy date strings, and timestamps are normalized to calendar dates.\n\nAssign a new array when changing this property. Mutating the existing array does not trigger validation updates."
|
|
1564
|
+
},
|
|
1565
|
+
"getter": false,
|
|
1566
|
+
"setter": false
|
|
1567
|
+
},
|
|
1568
|
+
"value": {
|
|
1569
|
+
"type": "string",
|
|
1570
|
+
"mutable": true,
|
|
1571
|
+
"complexType": {
|
|
1572
|
+
"original": "DatePickerValue",
|
|
1573
|
+
"resolved": "DatePickerMomentLike | string",
|
|
1574
|
+
"references": {
|
|
1575
|
+
"DatePickerValue": {
|
|
1576
|
+
"location": "import",
|
|
1577
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1578
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerValue",
|
|
1579
|
+
"referenceLocation": "DatePickerValue"
|
|
1580
|
+
}
|
|
1581
|
+
}
|
|
1582
|
+
},
|
|
1583
|
+
"required": false,
|
|
1584
|
+
"optional": false,
|
|
1585
|
+
"docs": {
|
|
1586
|
+
"tags": [],
|
|
1587
|
+
"text": "The selected date. ISO date strings are preferred; legacy date strings and Moment-like values are normalized to\nan ISO date string."
|
|
1588
|
+
},
|
|
1589
|
+
"getter": false,
|
|
1590
|
+
"setter": false,
|
|
1591
|
+
"reflect": true,
|
|
1592
|
+
"attribute": "value"
|
|
1593
|
+
}
|
|
1594
|
+
};
|
|
1595
|
+
}
|
|
1596
|
+
static get states() {
|
|
1597
|
+
return {
|
|
1598
|
+
"activePopoverDirection": {},
|
|
1599
|
+
"calendarError": {},
|
|
1600
|
+
"typeableError": {},
|
|
1601
|
+
"typeableValue": {}
|
|
1602
|
+
};
|
|
1603
|
+
}
|
|
1604
|
+
static get events() {
|
|
1605
|
+
return [{
|
|
1606
|
+
"method": "change",
|
|
1607
|
+
"name": "change",
|
|
1608
|
+
"bubbles": true,
|
|
1609
|
+
"cancelable": true,
|
|
1610
|
+
"composed": true,
|
|
1611
|
+
"docs": {
|
|
1612
|
+
"tags": [{
|
|
1613
|
+
"name": "legacyEvent",
|
|
1614
|
+
"text": undefined
|
|
1615
|
+
}, {
|
|
1616
|
+
"name": "deprecated",
|
|
1617
|
+
"text": "Use `tctChange` instead."
|
|
1618
|
+
}],
|
|
1619
|
+
"text": "Emitted when a date is selected."
|
|
1620
|
+
},
|
|
1621
|
+
"complexType": {
|
|
1622
|
+
"original": "DatePickerChangeDetail",
|
|
1623
|
+
"resolved": "DatePickerChangeDetail",
|
|
1624
|
+
"references": {
|
|
1625
|
+
"DatePickerChangeDetail": {
|
|
1626
|
+
"location": "import",
|
|
1627
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1628
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerChangeDetail",
|
|
1629
|
+
"referenceLocation": "DatePickerChangeDetail"
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1633
|
+
}, {
|
|
1634
|
+
"method": "error",
|
|
1635
|
+
"name": "error",
|
|
1636
|
+
"bubbles": true,
|
|
1637
|
+
"cancelable": true,
|
|
1638
|
+
"composed": true,
|
|
1639
|
+
"docs": {
|
|
1640
|
+
"tags": [{
|
|
1641
|
+
"name": "deprecated",
|
|
1642
|
+
"text": "Use `tctError` instead."
|
|
1643
|
+
}],
|
|
1644
|
+
"text": "Emitted when an invalid single date is entered or assigned."
|
|
1645
|
+
},
|
|
1646
|
+
"complexType": {
|
|
1647
|
+
"original": "DatePickerErrorDetail",
|
|
1648
|
+
"resolved": "DatePickerErrorDetail",
|
|
1649
|
+
"references": {
|
|
1650
|
+
"DatePickerErrorDetail": {
|
|
1651
|
+
"location": "import",
|
|
1652
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1653
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerErrorDetail",
|
|
1654
|
+
"referenceLocation": "DatePickerErrorDetail"
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1658
|
+
}, {
|
|
1659
|
+
"method": "success",
|
|
1660
|
+
"name": "success",
|
|
1661
|
+
"bubbles": true,
|
|
1662
|
+
"cancelable": true,
|
|
1663
|
+
"composed": true,
|
|
1664
|
+
"docs": {
|
|
1665
|
+
"tags": [{
|
|
1666
|
+
"name": "deprecated",
|
|
1667
|
+
"text": "Use `tctSuccess` instead."
|
|
1668
|
+
}],
|
|
1669
|
+
"text": "Emitted when a valid single date is entered, selected, or assigned."
|
|
1670
|
+
},
|
|
1671
|
+
"complexType": {
|
|
1672
|
+
"original": "DatePickerSuccessDetail",
|
|
1673
|
+
"resolved": "DatePickerSuccessDetail",
|
|
1674
|
+
"references": {
|
|
1675
|
+
"DatePickerSuccessDetail": {
|
|
1676
|
+
"location": "import",
|
|
1677
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1678
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerSuccessDetail",
|
|
1679
|
+
"referenceLocation": "DatePickerSuccessDetail"
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1683
|
+
}, {
|
|
1684
|
+
"method": "tctCancel",
|
|
1685
|
+
"name": "tctCancel",
|
|
1686
|
+
"bubbles": true,
|
|
1687
|
+
"cancelable": true,
|
|
1688
|
+
"composed": true,
|
|
1689
|
+
"docs": {
|
|
1690
|
+
"tags": [],
|
|
1691
|
+
"text": "Emitted when an action-sheet date range is cancelled."
|
|
1692
|
+
},
|
|
1693
|
+
"complexType": {
|
|
1694
|
+
"original": "void",
|
|
1695
|
+
"resolved": "void",
|
|
1696
|
+
"references": {}
|
|
1697
|
+
}
|
|
1698
|
+
}, {
|
|
1699
|
+
"method": "tctChange",
|
|
1700
|
+
"name": "tctChange",
|
|
1701
|
+
"bubbles": true,
|
|
1702
|
+
"cancelable": true,
|
|
1703
|
+
"composed": true,
|
|
1704
|
+
"docs": {
|
|
1705
|
+
"tags": [],
|
|
1706
|
+
"text": "Emitted when a date is selected."
|
|
1707
|
+
},
|
|
1708
|
+
"complexType": {
|
|
1709
|
+
"original": "DatePickerChangeDetail",
|
|
1710
|
+
"resolved": "DatePickerChangeDetail",
|
|
1711
|
+
"references": {
|
|
1712
|
+
"DatePickerChangeDetail": {
|
|
1713
|
+
"location": "import",
|
|
1714
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1715
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerChangeDetail",
|
|
1716
|
+
"referenceLocation": "DatePickerChangeDetail"
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
}, {
|
|
1721
|
+
"method": "tctClose",
|
|
1722
|
+
"name": "tctClose",
|
|
1723
|
+
"bubbles": true,
|
|
1724
|
+
"cancelable": true,
|
|
1725
|
+
"composed": true,
|
|
1726
|
+
"docs": {
|
|
1727
|
+
"tags": [],
|
|
1728
|
+
"text": "Emitted when the picker closes after confirmation. Includes validation details when confirmation fails."
|
|
1729
|
+
},
|
|
1730
|
+
"complexType": {
|
|
1731
|
+
"original": "DatePickerCloseDetail | void",
|
|
1732
|
+
"resolved": "DatePickerCloseDetail | void",
|
|
1733
|
+
"references": {
|
|
1734
|
+
"DatePickerCloseDetail": {
|
|
1735
|
+
"location": "import",
|
|
1736
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1737
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerCloseDetail",
|
|
1738
|
+
"referenceLocation": "DatePickerCloseDetail"
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
}, {
|
|
1743
|
+
"method": "tctError",
|
|
1744
|
+
"name": "tctError",
|
|
1745
|
+
"bubbles": true,
|
|
1746
|
+
"cancelable": true,
|
|
1747
|
+
"composed": true,
|
|
1748
|
+
"docs": {
|
|
1749
|
+
"tags": [],
|
|
1750
|
+
"text": "Emitted when an invalid single date is entered or assigned."
|
|
1751
|
+
},
|
|
1752
|
+
"complexType": {
|
|
1753
|
+
"original": "DatePickerErrorDetail",
|
|
1754
|
+
"resolved": "DatePickerErrorDetail",
|
|
1755
|
+
"references": {
|
|
1756
|
+
"DatePickerErrorDetail": {
|
|
1757
|
+
"location": "import",
|
|
1758
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1759
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerErrorDetail",
|
|
1760
|
+
"referenceLocation": "DatePickerErrorDetail"
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
}, {
|
|
1765
|
+
"method": "tctSuccess",
|
|
1766
|
+
"name": "tctSuccess",
|
|
1767
|
+
"bubbles": true,
|
|
1768
|
+
"cancelable": true,
|
|
1769
|
+
"composed": true,
|
|
1770
|
+
"docs": {
|
|
1771
|
+
"tags": [],
|
|
1772
|
+
"text": "Emitted when a valid single date is entered, selected, or assigned."
|
|
1773
|
+
},
|
|
1774
|
+
"complexType": {
|
|
1775
|
+
"original": "DatePickerSuccessDetail",
|
|
1776
|
+
"resolved": "DatePickerSuccessDetail",
|
|
1777
|
+
"references": {
|
|
1778
|
+
"DatePickerSuccessDetail": {
|
|
1779
|
+
"location": "import",
|
|
1780
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1781
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerSuccessDetail",
|
|
1782
|
+
"referenceLocation": "DatePickerSuccessDetail"
|
|
1783
|
+
}
|
|
1784
|
+
}
|
|
1785
|
+
}
|
|
1786
|
+
}];
|
|
1787
|
+
}
|
|
1788
|
+
static get methods() {
|
|
1789
|
+
return {
|
|
1790
|
+
"closePopover": {
|
|
1791
|
+
"complexType": {
|
|
1792
|
+
"signature": "() => Promise<void>",
|
|
1793
|
+
"parameters": [],
|
|
1794
|
+
"references": {
|
|
1795
|
+
"Promise": {
|
|
1796
|
+
"location": "global",
|
|
1797
|
+
"id": "global::Promise"
|
|
1798
|
+
}
|
|
1799
|
+
},
|
|
1800
|
+
"return": "Promise<void>"
|
|
1801
|
+
},
|
|
1802
|
+
"docs": {
|
|
1803
|
+
"text": "Closes the calendar popover if it is open.",
|
|
1804
|
+
"tags": []
|
|
1805
|
+
}
|
|
1806
|
+
},
|
|
1807
|
+
"focusDate": {
|
|
1808
|
+
"complexType": {
|
|
1809
|
+
"signature": "(date: Date) => Promise<void>",
|
|
1810
|
+
"parameters": [{
|
|
1811
|
+
"name": "date",
|
|
1812
|
+
"type": "Date",
|
|
1813
|
+
"docs": ""
|
|
1814
|
+
}],
|
|
1815
|
+
"references": {
|
|
1816
|
+
"Promise": {
|
|
1817
|
+
"location": "global",
|
|
1818
|
+
"id": "global::Promise"
|
|
1819
|
+
},
|
|
1820
|
+
"Date": {
|
|
1821
|
+
"location": "global",
|
|
1822
|
+
"id": "global::Date"
|
|
1823
|
+
}
|
|
1824
|
+
},
|
|
1825
|
+
"return": "Promise<void>"
|
|
1826
|
+
},
|
|
1827
|
+
"docs": {
|
|
1828
|
+
"text": "Moves the visible month to the provided date and focuses that day.",
|
|
1829
|
+
"tags": []
|
|
1830
|
+
}
|
|
1831
|
+
},
|
|
1832
|
+
"openPopover": {
|
|
1833
|
+
"complexType": {
|
|
1834
|
+
"signature": "() => Promise<void>",
|
|
1835
|
+
"parameters": [],
|
|
1836
|
+
"references": {
|
|
1837
|
+
"Promise": {
|
|
1838
|
+
"location": "global",
|
|
1839
|
+
"id": "global::Promise"
|
|
1840
|
+
},
|
|
1841
|
+
"HTMLQ2BtnElement": {
|
|
1842
|
+
"location": "global",
|
|
1843
|
+
"id": "global::HTMLQ2BtnElement"
|
|
1844
|
+
}
|
|
1845
|
+
},
|
|
1846
|
+
"return": "Promise<void>"
|
|
1847
|
+
},
|
|
1848
|
+
"docs": {
|
|
1849
|
+
"text": "Opens the calendar popover if it is closed.",
|
|
1850
|
+
"tags": []
|
|
1851
|
+
}
|
|
1852
|
+
},
|
|
1853
|
+
"reset": {
|
|
1854
|
+
"complexType": {
|
|
1855
|
+
"signature": "() => Promise<void>",
|
|
1856
|
+
"parameters": [],
|
|
1857
|
+
"references": {
|
|
1858
|
+
"Promise": {
|
|
1859
|
+
"location": "global",
|
|
1860
|
+
"id": "global::Promise"
|
|
1861
|
+
}
|
|
1862
|
+
},
|
|
1863
|
+
"return": "Promise<void>"
|
|
1864
|
+
},
|
|
1865
|
+
"docs": {
|
|
1866
|
+
"text": "Clears selected values, uncommitted typeable input, and error state without changing configuration props.",
|
|
1867
|
+
"tags": []
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1870
|
+
"setValue": {
|
|
1871
|
+
"complexType": {
|
|
1872
|
+
"signature": "(value: string | Date | DatePickerMomentLike) => Promise<void>",
|
|
1873
|
+
"parameters": [{
|
|
1874
|
+
"name": "value",
|
|
1875
|
+
"type": "string | Date | DatePickerMomentLike",
|
|
1876
|
+
"docs": ""
|
|
1877
|
+
}],
|
|
1878
|
+
"references": {
|
|
1879
|
+
"Promise": {
|
|
1880
|
+
"location": "global",
|
|
1881
|
+
"id": "global::Promise"
|
|
1882
|
+
},
|
|
1883
|
+
"Date": {
|
|
1884
|
+
"location": "global",
|
|
1885
|
+
"id": "global::Date"
|
|
1886
|
+
},
|
|
1887
|
+
"DatePickerMomentLike": {
|
|
1888
|
+
"location": "import",
|
|
1889
|
+
"path": "@/utils/date-picker/date-picker-types",
|
|
1890
|
+
"id": "src/utils/date-picker/date-picker-types.ts::DatePickerMomentLike",
|
|
1891
|
+
"referenceLocation": "DatePickerMomentLike"
|
|
1892
|
+
}
|
|
1893
|
+
},
|
|
1894
|
+
"return": "Promise<void>"
|
|
1895
|
+
},
|
|
1896
|
+
"docs": {
|
|
1897
|
+
"text": "Opens the calendar and selects the provided date when it is valid.",
|
|
1898
|
+
"tags": []
|
|
1899
|
+
}
|
|
1900
|
+
},
|
|
1901
|
+
"typeValue": {
|
|
1902
|
+
"complexType": {
|
|
1903
|
+
"signature": "(value: string | Date) => Promise<void>",
|
|
1904
|
+
"parameters": [{
|
|
1905
|
+
"name": "value",
|
|
1906
|
+
"type": "string | Date",
|
|
1907
|
+
"docs": ""
|
|
1908
|
+
}],
|
|
1909
|
+
"references": {
|
|
1910
|
+
"Promise": {
|
|
1911
|
+
"location": "global",
|
|
1912
|
+
"id": "global::Promise"
|
|
1913
|
+
},
|
|
1914
|
+
"Date": {
|
|
1915
|
+
"location": "global",
|
|
1916
|
+
"id": "global::Date"
|
|
1917
|
+
}
|
|
1918
|
+
},
|
|
1919
|
+
"return": "Promise<void>"
|
|
1920
|
+
},
|
|
1921
|
+
"docs": {
|
|
1922
|
+
"text": "Focuses the single typeable input and stages a valid date without committing it.",
|
|
1923
|
+
"tags": [{
|
|
1924
|
+
"name": "warning",
|
|
1925
|
+
"text": "Only applicable when the effective mode is `single-typeable`."
|
|
1926
|
+
}]
|
|
1927
|
+
}
|
|
1928
|
+
}
|
|
1929
|
+
};
|
|
1930
|
+
}
|
|
1931
|
+
static get elementRef() { return "hostElement"; }
|
|
1932
|
+
static get watchers() {
|
|
1933
|
+
return [{
|
|
1934
|
+
"propName": "cutoffTime",
|
|
1935
|
+
"methodName": "constraintsChanged"
|
|
1936
|
+
}, {
|
|
1937
|
+
"propName": "assume",
|
|
1938
|
+
"methodName": "constraintsChanged"
|
|
1939
|
+
}, {
|
|
1940
|
+
"propName": "daysOfWeekChecksum",
|
|
1941
|
+
"methodName": "constraintsChanged"
|
|
1942
|
+
}, {
|
|
1943
|
+
"propName": "endDate",
|
|
1944
|
+
"methodName": "constraintsChanged"
|
|
1945
|
+
}, {
|
|
1946
|
+
"propName": "invalidDates",
|
|
1947
|
+
"methodName": "constraintsChanged"
|
|
1948
|
+
}, {
|
|
1949
|
+
"propName": "startDate",
|
|
1950
|
+
"methodName": "constraintsChanged"
|
|
1951
|
+
}, {
|
|
1952
|
+
"propName": "validDates",
|
|
1953
|
+
"methodName": "constraintsChanged"
|
|
1954
|
+
}, {
|
|
1955
|
+
"propName": "disabled",
|
|
1956
|
+
"methodName": "disabledChanged"
|
|
1957
|
+
}, {
|
|
1958
|
+
"propName": "displayFormat",
|
|
1959
|
+
"methodName": "displayFormatChanged"
|
|
1960
|
+
}, {
|
|
1961
|
+
"propName": "mode",
|
|
1962
|
+
"methodName": "modeChanged"
|
|
1963
|
+
}, {
|
|
1964
|
+
"propName": "typeable",
|
|
1965
|
+
"methodName": "modeChanged"
|
|
1966
|
+
}, {
|
|
1967
|
+
"propName": "open",
|
|
1968
|
+
"methodName": "openChanged"
|
|
1969
|
+
}, {
|
|
1970
|
+
"propName": "popDirection",
|
|
1971
|
+
"methodName": "popDirectionChanged"
|
|
1972
|
+
}, {
|
|
1973
|
+
"propName": "popoverDirection",
|
|
1974
|
+
"methodName": "popoverDirectionChanged"
|
|
1975
|
+
}, {
|
|
1976
|
+
"propName": "rangeEnd",
|
|
1977
|
+
"methodName": "rangeEndChanged"
|
|
1978
|
+
}, {
|
|
1979
|
+
"propName": "rangeStart",
|
|
1980
|
+
"methodName": "rangeStartChanged"
|
|
1981
|
+
}, {
|
|
1982
|
+
"propName": "readonly",
|
|
1983
|
+
"methodName": "readonlyChanged"
|
|
1984
|
+
}, {
|
|
1985
|
+
"propName": "value",
|
|
1986
|
+
"methodName": "valueChanged"
|
|
1987
|
+
}];
|
|
1988
|
+
}
|
|
1989
|
+
static get listeners() {
|
|
1990
|
+
return [{
|
|
1991
|
+
"name": "beforeinput",
|
|
1992
|
+
"method": "beforeInputHandler",
|
|
1993
|
+
"target": undefined,
|
|
1994
|
+
"capture": false,
|
|
1995
|
+
"passive": false
|
|
1996
|
+
}, {
|
|
1997
|
+
"name": "focus",
|
|
1998
|
+
"method": "delegateFocus",
|
|
1999
|
+
"target": undefined,
|
|
2000
|
+
"capture": false,
|
|
2001
|
+
"passive": false
|
|
2002
|
+
}, {
|
|
2003
|
+
"name": "popoverStateChanged",
|
|
2004
|
+
"method": "popoverStateHandler",
|
|
2005
|
+
"target": undefined,
|
|
2006
|
+
"capture": false,
|
|
2007
|
+
"passive": false
|
|
2008
|
+
}];
|
|
2009
|
+
}
|
|
2010
|
+
}
|