q2-tecton-elements 1.35.2 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/charting-d02cba1f.js.map +1 -1
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
- package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
- package/dist/cjs/index-6f9f259c.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +17 -10
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +14 -13
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +37 -11
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +12 -3
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +54 -5
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/q2-action-sheet/styles.css +0 -8
- package/dist/collection/components/q2-calendar/index.js +120 -2
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-area/index.js +2 -2
- package/dist/collection/components/q2-chart-area/index.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/index.js +2 -2
- package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +13 -9
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +45 -5
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/index.js +6 -6
- package/dist/collection/components/q2-data-table/styles.css +37 -36
- package/dist/collection/components/q2-dropdown/index.js +1 -1
- package/dist/collection/components/q2-dropdown/index.js.map +1 -1
- package/dist/collection/components/q2-dropdown/styles.css +4 -0
- package/dist/collection/components/q2-editable-field/index.js +96 -6
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +49 -11
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-message/index.js +14 -13
- package/dist/collection/components/q2-message/index.js.map +1 -1
- package/dist/collection/components/q2-option-list/index.js +2 -2
- package/dist/collection/components/q2-pagination/index.js +60 -9
- package/dist/collection/components/q2-pagination/index.js.map +1 -1
- package/dist/collection/components/q2-pagination/styles.css +1 -0
- package/dist/collection/components/q2-pill/index.js +2 -2
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-radio/index.js +29 -3
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +27 -0
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-select/index.js +127 -5
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/index.js +2 -2
- package/dist/collection/components/q2-tab-container/index.js +1 -1
- package/dist/collection/components/q2-tab-container/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/index.js +37 -0
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/utils/charting.js.map +1 -1
- package/dist/collection/utils/index.js +8 -6
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/charting.js.map +1 -1
- package/dist/components/index11.js +14 -13
- package/dist/components/index11.js.map +1 -1
- package/dist/components/index16.js +11 -8
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index9.js +19 -10
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +51 -4
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +11 -7
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +26 -6
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-dropdown.js +2 -2
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +39 -7
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-pagination.js +37 -10
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +2 -2
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js +10 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +13 -3
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-select.js +59 -6
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-textarea.js +15 -2
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/docs.json +241 -9
- package/dist/esm/charting-2a73ba8e.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +1 -1
- package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
- package/dist/esm/index-74a659a5.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +46 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +12 -8
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +25 -6
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +3 -3
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +34 -6
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +17 -10
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +14 -13
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +37 -11
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +9 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +12 -3
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +54 -5
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +2 -2
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +13 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
- package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-458b1987.js.map +1 -1
- package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-597f8656.entry.js +2 -0
- package/dist/q2-tecton-elements/p-597f8656.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-9d743327.entry.js +2 -0
- package/dist/q2-tecton-elements/p-9d743327.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f6be73b7.entry.js → p-ac82ea35.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f6be73b7.entry.js.map → p-ac82ea35.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
- package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
- package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js +28 -0
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +150 -9
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-message-test.e2e.js +38 -1
- package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +37 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-test.e2e.js +100 -15
- package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +203 -0
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js +5 -0
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
- package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
- package/dist/types/components/q2-calendar/index.d.ts +8 -1
- package/dist/types/components/q2-chart-area/index.d.ts +1 -1
- package/dist/types/components/q2-chart-bar/index.d.ts +1 -1
- package/dist/types/components/q2-chart-donut/index.d.ts +2 -5
- package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
- package/dist/types/components/q2-editable-field/index.d.ts +10 -2
- package/dist/types/components/q2-input/index.d.ts +2 -0
- package/dist/types/components/q2-message/index.d.ts +1 -0
- package/dist/types/components/q2-pagination/index.d.ts +4 -0
- package/dist/types/components/q2-radio/index.d.ts +1 -0
- package/dist/types/components/q2-radio-group/index.d.ts +1 -0
- package/dist/types/components/q2-select/index.d.ts +9 -1
- package/dist/types/components/q2-textarea/index.d.ts +2 -0
- package/dist/types/components.d.ts +23 -4
- package/dist/types/utils/charting.d.ts +0 -6
- package/package.json +3 -3
- package/dist/cjs/index-f6545293.js.map +0 -1
- package/dist/esm/index-35ff2881.js.map +0 -1
- package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-57838409.entry.js +0 -2
- package/dist/q2-tecton-elements/p-57838409.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-deb1e1c8.entry.js +0 -2
- package/dist/q2-tecton-elements/p-deb1e1c8.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
- /package/dist/types/workspace/workspace/{tecton-production_release_1.35.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-c2597758.js');
|
|
6
|
-
const index$1 = require('./index-
|
|
6
|
+
const index$1 = require('./index-6f9f259c.js');
|
|
7
7
|
|
|
8
8
|
const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block}:host([block]){display:block}.tooltip{--comp-background:var(--tct-tooltip-background, var(--tct-tooltip-background-color, var(--t-tooltip-background-color, var(--t-top-a3, rgba(13, 13, 13, 0.85)))));--comp-offset-default:calc(var(--app-scale-1x, 5px) * -1);--comp-offset:var(--tct-tooltip-offset, var(--t-tooltip-offset, var(--comp-offset-default)));--comp-position:var(--tct-tooltip-position, var(--t-tooltip-position, var(--app-scale-1x, 5px)));--comp-body-offset-default:calc(var(--app-scale-3x, 15px) * -1);--comp-body-offset:var(--tct-tooltip-body-offset, var(--t-tooltip-body-offset, var(--comp-body-offset-default)));--comp-duration:var(--tct-tooltip-transition-duration, var(--t-tooltip-transition-duration, var(--app-duration-1, 0.2s)));--comp-visible-duration:var(--tct-tooltip-transition-visible-duration, var(--t-tooltip-transition-visible-duration, 2s));--comp-delay:var(--tct-tooltip-transition-delay, var(--t-tooltip-transition-delay, 0s));display:inline-block;position:relative}.tooltip:hover{--comp-delay:var(--tct-tooltip-transition-delay, var(--t-tooltip-transition-delay, 1s))}.tooltip:before{position:absolute;z-index:2;width:0;height:0;color:var(--comp-background);pointer-events:none;content:\"\";border:var(--tct-tooltip-arrow-size, var(--t-tooltip-arrow-size, var(--app-scale-1x, 5px))) solid transparent}.tooltip:after{--comp-padding:var(--app-scale-1x, 5px) 8px;position:absolute;z-index:1;padding:var(--tct-tooltip-padding, var(--t-tooltip-padding, var(--comp-padding)));font-weight:var(--tct-tooltip-font-weight, var(--t-tooltip-font-weight, 600));font-size:var(--tct-tooltip-font-size, var(--t-tooltip-font-size, var(--app-font-size-small, 12px)));line-height:1.5;color:var(--tct-tooltip-color, var(--t-tooltip-color, var(--app-white, #ffffff)));text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--comp-background);border-radius:var(--tct-tooltip-border-radius, var(--t-tooltip-border-radius, var(--app-border-radius-1, 3px)))}.tooltip:before,.tooltip:after{display:inline-block;visibility:hidden;opacity:0;transition:all var(--comp-duration) ease-in-out var(--comp-delay)}:host([block]) .tooltip{display:block}.tooltip:hover:before,.tooltip:hover:after,.tooltip.has-keyboard-focus:focus-within:before,.tooltip.has-keyboard-focus:focus-within:after,:host([persistent]) .tooltip:before,:host([persistent]) .tooltip:after{text-decoration:none;visibility:visible;opacity:1}@keyframes tooltippedFade{from{opacity:0}to{opacity:1}}.tooltip.has-generic-focus:focus-within:before,.tooltip.has-generic-focus:focus-within:after{visibility:visible;opacity:0;transition:none;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-name:tooltippedFade, tooltippedFade;animation-direction:normal, reverse;animation-duration:var(--comp-duration);animation-delay:0ms, calc(var(--comp-visible-duration) + var(--comp-duration))}.tooltip.has-generic-focus-out:before,.tooltip.has-generic-focus-out:after{visibility:visible;opacity:0;transition:none;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-name:tooltippedFade;animation-direction:reverse;animation-duration:var(--comp-duration)}:host([multiline]) .tooltip:after{width:max-content;max-width:var(--tct-tooltip-max-width, var(--t-tooltip-max-width, 200px));word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate;text-align:left}:host([position=s]) :host([multiline]) .tooltip:after,:host([position=n]) :host([multiline]) .tooltip:after{right:auto;left:50%;transform:translateX(-50%)}:host([position=w]) :host([multiline]) .tooltip:after,:host([position=e]) :host([multiline]) .tooltip:after{right:100%}:host([multiline]) .tooltip:hover:after,:host([multiline]) .tooltip:active:after,:host([multiline]) .tooltip:focus:after{display:table-cell}:host([multiline]) .tooltip:focus-within:after{display:table-cell}:host([position=s]) .tooltip:after,:host([position=se]) .tooltip:after,:host([position=sw]) .tooltip:after{top:100%;right:50%;margin-top:var(--comp-position)}:host([position=s]) .tooltip:before,:host([position=se]) .tooltip:before,:host([position=sw]) .tooltip:before{top:auto;right:50%;bottom:var(--comp-offset);margin-right:var(--comp-offset);border-bottom-color:var(--comp-background)}:host([position=n]) .tooltip:after,:host([position=ne]) .tooltip:after,:host([position=nw]) .tooltip:after{right:50%;bottom:100%;margin-bottom:var(--comp-position)}:host([position=n]) .tooltip:before,:host([position=ne]) .tooltip:before,:host([position=nw]) .tooltip:before{top:var(--comp-offset);right:50%;bottom:auto;margin-right:var(--comp-offset);border-top-color:var(--comp-background)}:host([position=se]) .tooltip:after,:host([position=ne]) .tooltip:after{right:auto;left:50%;margin-left:var(--comp-body-offset)}:host([position=sw]) .tooltip:after{margin-right:var(--comp-body-offset)}:host([position=nw]) .tooltip:after{margin-right:var(--comp-body-offset)}:host([position=s]) .tooltip:after,:host([position=n]) .tooltip:after{transform:translateX(50%)}:host([position=w]) .tooltip:after{right:100%;bottom:50%;margin-right:var(--comp-position);transform:translateY(50%)}:host([position=w]) .tooltip:before{top:50%;bottom:50%;left:var(--comp-offset);margin-top:var(--comp-offset);border-left-color:var(--comp-background)}:host([position=e]) .tooltip:after{bottom:50%;left:100%;margin-left:var(--comp-position);transform:translateY(50%)}:host([position=e]) .tooltip:before{top:50%;right:var(--comp-offset);bottom:50%;margin-top:var(--comp-offset);border-right-color:var(--comp-background)}";
|
|
9
9
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"entries": [
|
|
3
3
|
"./components/q2-btn/index.js",
|
|
4
|
-
"./components/q2-chart-donut/index.js",
|
|
5
4
|
"./components/q2-data-table/index.js",
|
|
6
5
|
"./components/q2-icon/index.js",
|
|
7
6
|
"./components/q2-badge/index.js",
|
|
@@ -26,6 +25,7 @@
|
|
|
26
25
|
"./components/q2-carousel-pane/index.js",
|
|
27
26
|
"./components/q2-chart-area/index.js",
|
|
28
27
|
"./components/q2-chart-bar/index.js",
|
|
28
|
+
"./components/q2-chart-donut/index.js",
|
|
29
29
|
"./components/q2-checkbox-group/index.js",
|
|
30
30
|
"./components/q2-loading/skeleton/q2-loading-element/index.js",
|
|
31
31
|
"./components/q2-loc/index.js",
|
|
@@ -184,14 +184,6 @@ dialog[open].is-closing::backdrop {
|
|
|
184
184
|
width: 100%;
|
|
185
185
|
z-index: 1;
|
|
186
186
|
}
|
|
187
|
-
.interior.is-list header:before {
|
|
188
|
-
top: calc(100% + var(--comp-dialog-gap));
|
|
189
|
-
background: linear-gradient(to bottom, var(--t-base) 0%, var(--t-base-a0) 100%);
|
|
190
|
-
}
|
|
191
|
-
.interior.is-list footer:before {
|
|
192
|
-
top: calc((var(--comp-dialog-gap) + var(--comp-content-gradient-height)) * -1);
|
|
193
|
-
background: linear-gradient(to top, var(--t-base) 0%, var(--t-base-a0) 100%);
|
|
194
|
-
}
|
|
195
187
|
|
|
196
188
|
header {
|
|
197
189
|
display: grid;
|
|
@@ -455,6 +455,49 @@ export class Q2Calendar {
|
|
|
455
455
|
if (this.open !== open)
|
|
456
456
|
this.open = open;
|
|
457
457
|
}
|
|
458
|
+
/// Methods ///
|
|
459
|
+
_togglePopover() {
|
|
460
|
+
const toggleElement = this.typeable ? this.btnCalendarToggle : this.innerInputField;
|
|
461
|
+
toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.click();
|
|
462
|
+
toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.focus();
|
|
463
|
+
toggleElement.dispatchEvent(new FocusEvent('focus'));
|
|
464
|
+
}
|
|
465
|
+
openPopover() {
|
|
466
|
+
if (this.open)
|
|
467
|
+
return;
|
|
468
|
+
this._togglePopover();
|
|
469
|
+
}
|
|
470
|
+
closePopover() {
|
|
471
|
+
if (!this.open)
|
|
472
|
+
return;
|
|
473
|
+
this._togglePopover();
|
|
474
|
+
}
|
|
475
|
+
async setValue(value) {
|
|
476
|
+
var _a;
|
|
477
|
+
const date = typeof value === 'string' ? stringToDate(value) : value;
|
|
478
|
+
if (!isValidDate(date))
|
|
479
|
+
return;
|
|
480
|
+
await this.openPopover();
|
|
481
|
+
await waitForNextPaint();
|
|
482
|
+
this.goToMonthYear(date.getMonth(), date.getFullYear());
|
|
483
|
+
await waitForNextPaint();
|
|
484
|
+
const tableCell = (_a = this.calendarTable) === null || _a === void 0 ? void 0 : _a.querySelector(`td[data-date="${formatDateISO(date)}"]`);
|
|
485
|
+
tableCell === null || tableCell === void 0 ? void 0 : tableCell.click();
|
|
486
|
+
}
|
|
487
|
+
async typeValue(value) {
|
|
488
|
+
if (!this.typeable)
|
|
489
|
+
return;
|
|
490
|
+
const date = typeof value === 'string' ? stringToDate(value) : value;
|
|
491
|
+
const formattedDate = formatDateShort(date);
|
|
492
|
+
if (!isValidDate(date))
|
|
493
|
+
return;
|
|
494
|
+
const { innerInputField, controlElement } = this;
|
|
495
|
+
innerInputField.focus();
|
|
496
|
+
innerInputField.dispatchEvent(new FocusEvent('focus'));
|
|
497
|
+
innerInputField.value = formattedDate;
|
|
498
|
+
innerInputField.dispatchEvent(new InputEvent('input'));
|
|
499
|
+
controlElement.dispatchEvent(new KeyboardEvent('keyup'));
|
|
500
|
+
}
|
|
458
501
|
//////// Observers //////////
|
|
459
502
|
popDirectionHandler() {
|
|
460
503
|
handleRenamedProp(this, 'popDirection', 'popoverDirection');
|
|
@@ -631,14 +674,14 @@ export class Q2Calendar {
|
|
|
631
674
|
}
|
|
632
675
|
inputField() {
|
|
633
676
|
const { isTypeable } = this;
|
|
634
|
-
return (h("q2-input", { ref: el => (this.controlElement = el), class: "calendar-input-field", value: this.formattedValue, label: loc(this.label), hideLabel: this.hideLabel, disabled: !!this.disabled, readonly: !!this.readonly, clearable: this.canClear, placeholder: this.computedPlaceholder, optional: !!this.optional, ariaExpanded: `${!!this.open}`, hints: this.hintList, errors: this.errorList, onClick: isTypeable ? undefined : this.onInputClick, onChange: this.onInputChange, onInput: this.onInputInput, onKeyDown: this.onInputKeydown, onKeyUp: this.onInputKeyup, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "icon-right": isTypeable ? undefined : 'calendar', "format-modifier": isTypeable ? this.formatModifier : '', pseudo: !isTypeable, type: "date", "hide-messages": !isTypeable, "test-id": "inputAndCalendarToggle" }, isTypeable && (h("q2-btn", { slot: "input-right", onClick: this.onInputClick, "test-id": "calendarToggle", label: "tecton.element.calendar.toggleAriaLabel", "hide-label": true }, h("q2-icon", { type: "calendar" })))));
|
|
677
|
+
return (h("q2-input", { ref: el => (this.controlElement = el), class: "calendar-input-field", value: this.formattedValue, label: loc(this.label), hideLabel: this.hideLabel, disabled: !!this.disabled, readonly: !!this.readonly, clearable: this.canClear, placeholder: this.computedPlaceholder, optional: !!this.optional, ariaExpanded: `${!!this.open}`, hints: this.hintList, errors: this.errorList, onClick: isTypeable ? undefined : this.onInputClick, onChange: this.onInputChange, onInput: this.onInputInput, onKeyDown: this.onInputKeydown, onKeyUp: this.onInputKeyup, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "icon-right": isTypeable ? undefined : 'calendar', "format-modifier": isTypeable ? this.formatModifier : '', pseudo: !isTypeable, type: "date", "hide-messages": !isTypeable, "test-id": "inputAndCalendarToggle" }, isTypeable && (h("q2-btn", { ref: el => (this.btnCalendarToggle = el), slot: "input-right", onClick: this.onInputClick, "test-id": "calendarToggle", label: "tecton.element.calendar.toggleAriaLabel", "hide-label": true }, h("q2-icon", { type: "calendar" })))));
|
|
635
678
|
}
|
|
636
679
|
calendarPopover() {
|
|
637
680
|
const { monthIndex, selectedYear } = this.selectedMonthYear;
|
|
638
681
|
return (h("div", { class: "calendar-field-popup", onKeyUp: this.onPopupKeyup }, this.calendarLabel && h("p", { class: "calendar-label" }, loc(this.calendarLabel)), h("div", { class: "cal-month-heading" }, h("q2-btn", { label: loc('tecton.element.calendar.previousMonth'), "hide-label": true, ref: elm => (this.btnPrevMonth = elm), class: "cal-nav-btn prev-month", "test-id": "previousMonthButton", onClick: () => this.goToMonthYear(monthIndex - 1, selectedYear) }, h("q2-icon", { type: "chevron-left" })), h("span", { class: "cal-month-text" }, this.monthStrings[monthIndex]), h("q2-btn", { label: loc('tecton.element.calendar.nextMonth'), "hide-label": true, class: "cal-nav-btn next-month", ref: elm => (this.btnNextMonth = elm), "test-id": "nextMonthButton", onClick: () => this.goToMonthYear(monthIndex + 1, selectedYear) }, h("q2-icon", { type: "chevron-right" })), h("q2-btn", { label: loc('tecton.element.calendar.previousYear'), "hide-label": true, class: "cal-nav-btn prev-year", ref: elm => (this.btnPrevYear = elm), "test-id": "previousYearButton", onClick: () => this.goToMonthYear(monthIndex, selectedYear - 1) }, h("q2-icon", { type: "chevron-left" })), h("span", { class: "cal-year-text" }, this.selectedMonthYear.selectedYear), h("q2-btn", { label: loc('tecton.element.calendar.nextYear'), "hide-label": true, class: "cal-nav-btn next-year", ref: elm => (this.btnNextYear = elm), "test-id": "nextYearButton", onClick: () => this.goToMonthYear(monthIndex, selectedYear + 1) }, h("q2-icon", { type: "chevron-right" }))), h("div", { class: "sr", "aria-live": "polite", id: "table-label" }, `${this.monthStrings[monthIndex]} ${selectedYear}`), this.calendarDays(), this.disclaimer && h("div", { class: "calendar-disclaimer" }, loc(this.disclaimer)), h("q2-btn", { class: "sr refocus-popup", onFocus: this.onRefocus })));
|
|
639
682
|
}
|
|
640
683
|
calendarDays() {
|
|
641
|
-
return (h("table", { role: "grid", "aria-labelledby": "table-label" }, h("thead", null, h("tr", null, [...Array(7).keys()].map(index => (h("th", { scope: "col", "aria-label": this.dayStrings[index] }, this.dayAbbrStrings[index]))))), h("tbody", { onClick: this.onDateSelection, onKeyDown: this.onDateKeydown, ref: elm => (this.calendarBody = elm), "test-id": "calendarTableBody" }, this.currentWeeks.map(week => (h("tr", null, week.map(day => {
|
|
684
|
+
return (h("table", { role: "grid", "aria-labelledby": "table-label", ref: ref => (this.calendarTable = ref) }, h("thead", null, h("tr", null, [...Array(7).keys()].map(index => (h("th", { scope: "col", "aria-label": this.dayStrings[index] }, this.dayAbbrStrings[index]))))), h("tbody", { onClick: this.onDateSelection, onKeyDown: this.onDateKeydown, ref: elm => (this.calendarBody = elm), "test-id": "calendarTableBody" }, this.currentWeeks.map(week => (h("tr", null, week.map(day => {
|
|
642
685
|
var _a;
|
|
643
686
|
let ariaLabel = '';
|
|
644
687
|
if (day.isToday)
|
|
@@ -1261,6 +1304,81 @@ export class Q2Calendar {
|
|
|
1261
1304
|
}
|
|
1262
1305
|
}];
|
|
1263
1306
|
}
|
|
1307
|
+
static get methods() {
|
|
1308
|
+
return {
|
|
1309
|
+
"openPopover": {
|
|
1310
|
+
"complexType": {
|
|
1311
|
+
"signature": "() => Promise<void>",
|
|
1312
|
+
"parameters": [],
|
|
1313
|
+
"references": {},
|
|
1314
|
+
"return": "Promise<void>"
|
|
1315
|
+
},
|
|
1316
|
+
"docs": {
|
|
1317
|
+
"text": "",
|
|
1318
|
+
"tags": []
|
|
1319
|
+
}
|
|
1320
|
+
},
|
|
1321
|
+
"closePopover": {
|
|
1322
|
+
"complexType": {
|
|
1323
|
+
"signature": "() => Promise<void>",
|
|
1324
|
+
"parameters": [],
|
|
1325
|
+
"references": {},
|
|
1326
|
+
"return": "Promise<void>"
|
|
1327
|
+
},
|
|
1328
|
+
"docs": {
|
|
1329
|
+
"text": "",
|
|
1330
|
+
"tags": []
|
|
1331
|
+
}
|
|
1332
|
+
},
|
|
1333
|
+
"setValue": {
|
|
1334
|
+
"complexType": {
|
|
1335
|
+
"signature": "(value: string | Date) => Promise<void>",
|
|
1336
|
+
"parameters": [{
|
|
1337
|
+
"tags": [],
|
|
1338
|
+
"text": ""
|
|
1339
|
+
}],
|
|
1340
|
+
"references": {
|
|
1341
|
+
"Promise": {
|
|
1342
|
+
"location": "global"
|
|
1343
|
+
},
|
|
1344
|
+
"Date": {
|
|
1345
|
+
"location": "global"
|
|
1346
|
+
},
|
|
1347
|
+
"HTMLTableCellElement": {
|
|
1348
|
+
"location": "global"
|
|
1349
|
+
}
|
|
1350
|
+
},
|
|
1351
|
+
"return": "Promise<void>"
|
|
1352
|
+
},
|
|
1353
|
+
"docs": {
|
|
1354
|
+
"text": "",
|
|
1355
|
+
"tags": []
|
|
1356
|
+
}
|
|
1357
|
+
},
|
|
1358
|
+
"typeValue": {
|
|
1359
|
+
"complexType": {
|
|
1360
|
+
"signature": "(value: string | Date) => Promise<void>",
|
|
1361
|
+
"parameters": [{
|
|
1362
|
+
"tags": [],
|
|
1363
|
+
"text": ""
|
|
1364
|
+
}],
|
|
1365
|
+
"references": {
|
|
1366
|
+
"Promise": {
|
|
1367
|
+
"location": "global"
|
|
1368
|
+
},
|
|
1369
|
+
"Date": {
|
|
1370
|
+
"location": "global"
|
|
1371
|
+
}
|
|
1372
|
+
},
|
|
1373
|
+
"return": "Promise<void>"
|
|
1374
|
+
},
|
|
1375
|
+
"docs": {
|
|
1376
|
+
"text": "",
|
|
1377
|
+
"tags": []
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
};
|
|
1381
|
+
}
|
|
1264
1382
|
static get elementRef() { return "hostElement"; }
|
|
1265
1383
|
static get watchers() {
|
|
1266
1384
|
return [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/index.tsx"],"names":[],"mappings":"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AC;EACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Listen,\n Watch,\n h,\n} from '@stencil/core';\nimport { ISelectedMonthYear, CalendarDay, IDateValidators } from './types';\nimport { addDays, isSameDay, format, isValid as isValidDate } from 'date-fns';\nimport {\n stringToDate,\n setupMonthYear,\n getMonths,\n getDays,\n getDaysOfWeek,\n stringArrayToDate,\n convertMomentFormat,\n validateInput,\n handleMissingZeros,\n formatDateISO,\n formatDateShort,\n IMomentLikeObject,\n removeTimezoneOffset,\n reorderDateString,\n formatDateFull,\n} from './helpers';\nimport { buildDates, getValidDaysOfWeek, DateList } from './validation';\nimport {\n handleAriaLabel,\n loc,\n overrideFocus,\n isEventFromElement,\n handleRenamedProp,\n waitForNextPaint,\n} from '../../utils';\nimport { IEventDetail } from '../q2-input/types';\nimport { Q2InputCustomEvent } from 'src/components';\n\n@Component({\n tag: 'q2-calendar',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Calendar implements ComponentInterface {\n @Prop({ mutable: true, reflect: true }) value: string | { toDate(): Date };\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true, mutable: true }) invalid: boolean;\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) typeable: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabledMsg: string;\n @Prop({ reflect: true }) calendarLabel: string;\n @Prop({ reflect: true }) disclaimer: string;\n @Prop({ reflect: true }) displayFormat: string;\n @Prop({ reflect: true }) startDate: string;\n @Prop({ reflect: true }) endDate: string;\n @Prop({ reflect: true }) cutoffTime: string;\n @Prop({ reflect: true }) daysOfWeekChecksum: number;\n @Prop({ reflect: true }) assume: 'current' | 'future' | 'past' = 'current';\n @Prop({ mutable: true }) hints: string[];\n @Prop({ mutable: true }) errors: string[];\n @Prop() invalidDates: string[];\n @Prop() validDates: string[];\n @Prop({ mutable: true }) popoverDirection: 'up' | 'down';\n @Prop() popoverAlignment: 'left' | 'right';\n @Prop() popoverMinHeight: number = 355;\n\n /** @deprecated */\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop() onsuccess: (e: CustomEvent) => void;\n\n /** @deprecated */\n @Prop({ reflect: true }) buttonLabel: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n\n @State() keyboardSelection: boolean = false;\n @State() typedValue: string = '';\n @State() dateList: CalendarDay[];\n @State() hintMessage: string = this.defaultHintMessage;\n @State() hintMessageType: 'info' | 'error' = 'info';\n formatModifier: string = 'M/D/YYYY'; // To allow missing leading zero, 4/3/2021 => converts into 04/03/2021\n hintMessageElement: HTMLQ2MessageElement;\n controlElement: HTMLQ2InputElement;\n btnPrevMonth: HTMLQ2BtnElement;\n btnNextMonth: HTMLQ2BtnElement;\n btnPrevYear: HTMLQ2BtnElement;\n btnNextYear: HTMLQ2BtnElement;\n calendarBody: HTMLDivElement;\n defaultFormatString = 'mm/dd/yyyy';\n selectedMonthYear: ISelectedMonthYear;\n scheduledAfterRender: (() => void)[] = [];\n privatePopDirection: 'up' | 'down';\n popoverElement?: HTMLQ2PopoverElement;\n\n connectedCallback() {\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n if (this.value && this.isTypeable && !this.typedValue) {\n this.typedValue = reorderDateString(this.value as string);\n }\n this.validateDate();\n }\n\n componentWillLoad() {\n this.popDirectionHandler();\n handleAriaLabel(this);\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n dayAbbrStrings = getDays();\n dayStrings = getDaysOfWeek();\n monthStrings = getMonths();\n\n get selectedDate() {\n const selectedCell = this.calendarBody?.querySelector<HTMLTableCellElement>('[aria-selected=\"true\"]');\n return selectedCell ? removeTimezoneOffset(new Date(selectedCell.dataset.date)) : null;\n }\n\n get innerInputField(): HTMLElement {\n return this.controlElement?.shadowRoot?.querySelector('.input-field');\n }\n\n get defaultHintMessage() {\n return this.typeable\n ? loc('tecton.element.calendar.hint.format') + ': ' + this.defaultFormatString\n : loc('tecton.element.calendar.hint.select');\n }\n\n get canClear() {\n if (this.isTypeable) {\n return this.clearable && !!this.typedValue;\n } else {\n return this.clearable && !!this.value;\n }\n }\n\n get currentWeeks() {\n const weeks = this.dateList.reduce<CalendarDay[][]>((accum, item, index) => {\n const chunkIndex = Math.floor(index / 7);\n\n if (!accum[chunkIndex]) {\n accum[chunkIndex] = [];\n }\n\n accum[chunkIndex].push(item);\n\n return accum;\n }, []);\n\n return weeks;\n }\n\n get formattedValue() {\n const { typedValue, dateValue, displayFormat, isTypeable } = this;\n if (isTypeable) return typedValue;\n\n if (dateValue === undefined) return '';\n if (displayFormat) return format(dateValue, convertMomentFormat(displayFormat));\n\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n }).format(dateValue);\n }\n\n get computedPlaceholder(): string {\n if (this.disabled && this.disabledMsg) {\n return loc(this.disabledMsg);\n }\n\n if (this.buttonLabel && (this.disabled || this.placeholder)) {\n return loc(this.buttonLabel);\n }\n\n return (this.placeholder && loc(this.placeholder)) || '';\n }\n\n get dateValue(): Date | undefined {\n if (this.isTypeable) {\n return stringToDate(this.typedValue);\n } else {\n let { value } = this;\n const isMoment = value && typeof value !== 'string' && 'toDate' in value;\n if (isMoment) return (value as IMomentLikeObject).toDate();\n\n // stringified moment value assigned in html template e.g.) handlebar\n const isMomentString =\n typeof value === 'string' && value.split(' ').length === 6 && /GMT-\\d{4}/g.test(value);\n if (isMomentString) {\n value = formatDateISO(value as string);\n }\n\n return stringToDate(value as string);\n }\n }\n\n get dateValidators(): IDateValidators {\n const ct = new Date(this.cutoffTime || ''); // should fallback to InvalidDate\n return {\n startDate: stringToDate(this.startDate),\n endDate: stringToDate(this.endDate),\n cutOffTime: isValidDate(ct) ? ct : undefined,\n };\n }\n\n get isTypeable(): boolean {\n return this.typeable;\n }\n\n get errorList() {\n const { errors, hintMessageType, hintMessage, invalid } = this;\n if (Array.isArray(errors) && errors.length) return errors.filter(error => !!error).map(error => loc(error));\n if (hintMessageType === 'error' && hintMessage) return [hintMessage];\n if (invalid) return ['tecton.element.calendar.invalid'];\n return [];\n }\n\n get hintList() {\n const { hints, hintMessageType, hintMessage } = this;\n if (Array.isArray(hints) && hints.length) return hints.filter(hint => !!hint).map(hint => loc(hint));\n if (hintMessageType === 'info' && hintMessage) return [hintMessage];\n return [];\n }\n\n //////// Host Element Events ////////\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange && !!event.detail) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('error')\n defaultErrorHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onerror) {\n const { errors } = this;\n if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {\n return;\n }\n this.errors = (errors || []).concat(['tecton.element.calendar.hint.invalidDate']);\n }\n }\n\n @Listen('success')\n defaultSuccessHandler(event: CustomEvent) {\n if (event.target !== this.hostElement) {\n return;\n }\n\n if (typeof this.onsuccess === 'function') {\n this.onsuccess(event);\n } else {\n const { errors } = this;\n if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {\n this.errors = errors.filter(x => x !== 'tecton.element.calendar.hint.invalidDate');\n }\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.controlElement.shadowRoot.querySelector<HTMLElement>('.input-field').focus();\n }\n\n @Listen('clear')\n handleClear() {\n this.change.emit({ value: null });\n this.value = null;\n this.typedValue = '';\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n }\n\n //////// Observers //////////\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('typeable')\n typeableChanged() {\n this.valueObserver(this.value);\n }\n\n @Watch('value')\n valueObserver(newValue: string | IMomentLikeObject) {\n // resetting by empty string\n if (newValue === '') {\n this.value = undefined;\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n return;\n }\n const isMoment = newValue && typeof newValue !== 'string' && 'toDate' in newValue;\n const newDate = isMoment ? (newValue as IMomentLikeObject).toDate() : stringToDate(newValue as string);\n const shortFormattedValue = formatDateShort(newDate);\n if (this.isTypeable) {\n this.typedValue = shortFormattedValue;\n } else {\n this.controlElement.value = shortFormattedValue;\n this.selectedMonthYear = setupMonthYear(newDate);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n // reset hint when value is cleared\n if (this.invalid) return;\n\n if (shortFormattedValue) {\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n } else {\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n }\n }\n\n @Watch('daysOfWeekChecksum')\n daysOfWeekChecksumObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('validDates')\n validDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('invalidDates')\n invalidDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('startDate')\n startDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('endDate')\n endDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('cutoffTime')\n cutoffTimeObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n ///////// Event /////////\n @Event() change: EventEmitter;\n @Event() error: EventEmitter;\n @Event() success: EventEmitter;\n\n ///// Actions ////////\n\n buildDateList(monthYear: ISelectedMonthYear): DateList {\n const invalidDates = stringArrayToDate(this.invalidDates);\n const validDaysOfWeek = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const validDates = stringArrayToDate(this.validDates);\n return buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n monthYear,\n this.dateValue,\n this.dateValidators,\n this.typedValue\n );\n }\n\n validateDate() {\n try {\n if (!!this.value) {\n const { dateValue } = this;\n const month = dateValue?.getMonth() ?? undefined;\n const year = dateValue?.getFullYear() ?? undefined;\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n\n const isSelectedMonthAndYear = month === monthIndex && year === selectedYear;\n let calculationDateList = [];\n\n if (!dateValue) {\n calculationDateList = [];\n } else if (isSelectedMonthAndYear) {\n calculationDateList = this.dateList;\n } else {\n calculationDateList = this.buildDateList({\n monthIndex: month,\n selectedYear: year,\n });\n }\n\n const dateValueDayOfMonth = dateValue?.getDate() ?? undefined;\n const isDateValueInvalid = dateValueDayOfMonth\n ? !calculationDateList.find(({ integer }) => integer === dateValueDayOfMonth).isValid\n : true;\n\n if (isDateValueInvalid) {\n this.error.emit({\n errors: [\n {\n message: `Value passed is invalid: The date ${this.value} is not valid`,\n errorCode: 'generalInvalid',\n },\n ],\n });\n } else {\n this.success.emit({ value: formatDateISO(dateValue) });\n }\n }\n } catch (error) {\n console.warn('Invalid moment value ', this.dateValue);\n }\n }\n\n focusInput() {\n this.controlElement?.focus();\n }\n\n closeCalendar = () => {\n if (!this.open) return;\n this.open = false;\n this.focusInput();\n };\n\n openCalendar = () => {\n if (this.readonly || this.open) return;\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.open = true;\n };\n\n toggleCalendar = () => {\n if (this.readonly) return;\n if (this.open) {\n this.closeCalendar();\n } else {\n this.openCalendar();\n }\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n this.closeCalendar();\n }\n };\n\n onPopupKeyup = (event: KeyboardEvent) => {\n if (event.key === 'Escape' || event.key === 'Esc') {\n this.onInputBlur();\n this.closeCalendar();\n }\n };\n\n onInputInput = ({ detail: { value } }: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n this.typedValue = value;\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const { dateValue } = this;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.openCalendar();\n this.activateDay(dateValue || new Date());\n break;\n }\n };\n\n onInputKeyup = (event: KeyboardEvent) => {\n if (this.disabled) {\n return;\n }\n\n switch (event.key) {\n case 'Escape':\n this.onInputBlur();\n this.closeCalendar();\n break;\n }\n\n if (!this.isTypeable) return;\n\n // handle missing zero in month and date\n this.typedValue = handleMissingZeros(this.typedValue);\n const { typedValue } = this;\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { isValid, message, messageType, inputDate, isAvailable, calendarPosition } = validateInput(\n typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (calendarPosition) {\n const [mm, dd, yyyy] = calendarPosition;\n const date = new Date(`${yyyy}-${mm}-${dd}`);\n\n if (isValidDate(date)) {\n this.selectedMonthYear = setupMonthYear(date);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n }\n\n if (event.key === 'Enter') {\n if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n\n if (this.keyboardSelection) {\n this.keyboardSelection = false;\n this.closeCalendar();\n } else {\n this.toggleCalendar();\n }\n } else {\n this.setHints({ isValid, message, messageType });\n }\n };\n\n onInputChange = (event: Event) => {\n event.stopPropagation();\n };\n\n onInputBlur = () => {\n if (!this.isTypeable) return;\n\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { typedValue } = this;\n const { isValid, inputDate, isAvailable } = validateInput(\n this.typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (!typedValue && inputDate?.toString() === 'Invalid Date') {\n // initial/clear state\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n } else if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n };\n\n onInputFocus = (event: FocusEvent) => {\n if (!this.isTypeable) return;\n if (event.target === this.controlElement) this.closeCalendar();\n };\n\n onInputClick = () => {\n if (this.disabled) return;\n this.toggleCalendar();\n };\n\n onRefocus = () => {\n this.btnPrevMonth?.dispatchEvent(new FocusEvent('focus'));\n };\n\n goToMonthYear = (monthIndex: number, year: number) => {\n if (monthIndex < 0) {\n monthIndex = 11;\n year--;\n } else if (monthIndex > 11) {\n monthIndex = 0;\n year++;\n }\n this.selectedMonthYear = {\n monthIndex,\n selectedYear: year,\n };\n this.dateList = this.buildDateList(this.selectedMonthYear);\n\n this.scheduledAfterRender.push(() => this.checkActiveCellForBlankness());\n };\n\n checkActiveCellForBlankness() {\n const activeElement = this.hostElement.shadowRoot.activeElement;\n if (!activeElement || activeElement.tagName !== 'TD' || !activeElement.hasAttribute('aria-hidden')) return;\n\n const { calendarBody } = this;\n const calendarCells = Array.from(calendarBody.querySelectorAll<Element>('td'));\n const indexOfCell = Array.from(calendarCells).indexOf(activeElement);\n\n const dayToFocus =\n indexOfCell < 15 ? 1 : calendarCells.filter(cell => !cell.hasAttribute('aria-hidden')).length;\n\n this.focusDay(this.generateDateFromDay(dayToFocus));\n }\n\n selectDate = (newDate: Date) => {\n const { isValid } = this.dateList.find(({ date }) => isSameDay(date, newDate));\n if (!isValid) return;\n this.change.emit({ value: formatDateISO(newDate) });\n this.typedValue = formatDateShort(newDate);\n this.invalid = false;\n };\n\n onDateSelection = (event: MouseEvent) => {\n const dateCell = (event.target as HTMLElement).closest<HTMLElement>('td:not([aria-hidden])');\n if (!dateCell) return;\n const clickedDate = removeTimezoneOffset(new Date(dateCell.dataset.date));\n this.selectDate(clickedDate);\n this.closeCalendar();\n };\n\n generateDateFromDay(day: number) {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return new Date(selectedYear, monthIndex, day);\n }\n\n onDateKeydown = (event: KeyboardEvent) => {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n const currentDay = parseInt((event.target as HTMLElement).dataset.day);\n const currentDate = this.generateDateFromDay(currentDay);\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -7));\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 7));\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 1));\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -1));\n break;\n\n case 'PageUp':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear - 1);\n else this.goToMonthYear(monthIndex - 1, selectedYear);\n break;\n\n case 'PageDown':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear + 1);\n else this.goToMonthYear(monthIndex + 1, selectedYear);\n break;\n\n case 'Home':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -currentDate.getDay()));\n break;\n\n case 'End':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 6 - currentDate.getDay()));\n break;\n\n case 'Escape':\n event.preventDefault();\n this.closeCalendar();\n this.focusInput();\n break;\n\n case 'Enter':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.closeCalendar();\n this.focusInput();\n break;\n\n case ' ':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.focusInput();\n break;\n }\n };\n\n activateDay(date: Date) {\n this.goToMonthYear(date.getMonth(), date.getFullYear());\n this.scheduledAfterRender.push(() => this.focusDay(date));\n }\n\n async focusDay(date: Date) {\n if (!date) return;\n await waitForNextPaint();\n this.calendarBody.querySelector<HTMLElement>(`td[data-day=\"${date.getDate()}\"]`)?.focus();\n }\n\n render() {\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : undefined}\n onChange={this.onClickElsewhere}\n >\n {this.inputField()}\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.innerInputField}\n open={this.open}\n direction={this.popoverDirection}\n aria-label={loc('tecton.element.calendar.dialogLabel')}\n minHeight={this.popoverMinHeight}\n align={this.popoverAlignment}\n block\n >\n {this.hintField()}\n {this.calendarPopover()}\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n hintField() {\n if (!this.hintMessage) return;\n\n return (\n <q2-message\n class=\"calendar-hint sr\"\n ref={el => (this.hintMessageElement = el)}\n type={this.hintMessageType}\n >\n {this.hintMessage}\n </q2-message>\n );\n }\n\n setHints({ isValid, message, messageType }) {\n if (message === this.hintMessage) return this.hintMessageElement?.present();\n this.invalid = !isValid;\n this.hintMessage = message;\n this.hintMessageType = messageType;\n }\n\n setCompleteInput(inputDate: Date) {\n const formattedDate = formatDateShort(inputDate);\n this.change.emit({ value: formatDateISO(inputDate) });\n this.typedValue = formattedDate;\n\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n }\n\n inputField() {\n const { isTypeable } = this;\n return (\n <q2-input\n ref={el => (this.controlElement = el)}\n class=\"calendar-input-field\"\n value={this.formattedValue}\n label={loc(this.label)}\n hideLabel={this.hideLabel}\n disabled={!!this.disabled}\n readonly={!!this.readonly}\n clearable={this.canClear}\n placeholder={this.computedPlaceholder}\n optional={!!this.optional}\n ariaExpanded={`${!!this.open}`}\n hints={this.hintList}\n errors={this.errorList}\n onClick={isTypeable ? undefined : this.onInputClick}\n onChange={this.onInputChange}\n onInput={this.onInputInput}\n onKeyDown={this.onInputKeydown}\n onKeyUp={this.onInputKeyup}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n icon-right={isTypeable ? undefined : 'calendar'}\n format-modifier={isTypeable ? this.formatModifier : ''}\n pseudo={!isTypeable}\n type=\"date\"\n hide-messages={!isTypeable}\n test-id=\"inputAndCalendarToggle\"\n >\n {isTypeable && (\n <q2-btn\n slot=\"input-right\"\n onClick={this.onInputClick}\n test-id=\"calendarToggle\"\n label=\"tecton.element.calendar.toggleAriaLabel\"\n hide-label\n >\n <q2-icon type=\"calendar\" />\n </q2-btn>\n )}\n </q2-input>\n );\n }\n\n calendarPopover() {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return (\n <div\n class=\"calendar-field-popup\"\n onKeyUp={this.onPopupKeyup}\n >\n {this.calendarLabel && <p class=\"calendar-label\">{loc(this.calendarLabel)}</p>}\n <div class=\"cal-month-heading\">\n <q2-btn\n label={loc('tecton.element.calendar.previousMonth')}\n hide-label\n ref={elm => (this.btnPrevMonth = elm)}\n class=\"cal-nav-btn prev-month\"\n test-id=\"previousMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex - 1, selectedYear)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-month-text\">{this.monthStrings[monthIndex]}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextMonth')}\n hide-label\n class=\"cal-nav-btn next-month\"\n ref={elm => (this.btnNextMonth = elm)}\n test-id=\"nextMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex + 1, selectedYear)}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n label={loc('tecton.element.calendar.previousYear')}\n hide-label\n class=\"cal-nav-btn prev-year\"\n ref={elm => (this.btnPrevYear = elm)}\n test-id=\"previousYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear - 1)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-year-text\">{this.selectedMonthYear.selectedYear}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextYear')}\n hide-label\n class=\"cal-nav-btn next-year\"\n ref={elm => (this.btnNextYear = elm)}\n test-id=\"nextYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear + 1)}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n </div>\n <div\n class=\"sr\"\n aria-live=\"polite\"\n id=\"table-label\"\n >\n {`${this.monthStrings[monthIndex]} ${selectedYear}`}\n </div>\n {this.calendarDays()}\n {this.disclaimer && <div class=\"calendar-disclaimer\">{loc(this.disclaimer)}</div>}\n <q2-btn\n class=\"sr refocus-popup\"\n onFocus={this.onRefocus}\n />\n </div>\n );\n }\n\n calendarDays() {\n return (\n <table\n role=\"grid\"\n aria-labelledby=\"table-label\"\n >\n <thead>\n <tr>\n {[...Array(7).keys()].map(index => (\n <th\n scope=\"col\"\n aria-label={this.dayStrings[index]}\n >\n {this.dayAbbrStrings[index]}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n onClick={this.onDateSelection}\n onKeyDown={this.onDateKeydown}\n ref={elm => (this.calendarBody = elm)}\n test-id=\"calendarTableBody\"\n >\n {this.currentWeeks.map(week => (\n <tr>\n {week.map(day => {\n let ariaLabel = '';\n if (day.isToday) ariaLabel = `${loc('tecton.element.calendar.today')}, `;\n ariaLabel += formatDateFull(day.date);\n if (day.isSelected) ariaLabel += ` (${loc('tecton.element.calendar.selected')})`;\n return (\n <td\n class={day.classList}\n aria-hidden={day.isEmpty ? 'true' : undefined}\n tabindex={day.isSelected ? 0 : -1}\n role={day.isSelected ? 'gridcell' : undefined}\n aria-selected={day.isSelected ? 'true' : undefined}\n aria-disabled={day.isValid ? undefined : 'true'}\n data-day={day.integer || undefined}\n data-date={day.date ? formatDateISO(day.date) : undefined}\n >\n {day?.isToday && (\n <div\n class=\"today-decorator\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.calendar.today')}\n </div>\n )}\n <div aria-label={ariaLabel}>{day?.integer ?? ''}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Listen,\n Watch,\n Method,\n h,\n} from '@stencil/core';\nimport { ISelectedMonthYear, CalendarDay, IDateValidators } from './types';\nimport { addDays, isSameDay, format, isValid as isValidDate } from 'date-fns';\nimport {\n stringToDate,\n setupMonthYear,\n getMonths,\n getDays,\n getDaysOfWeek,\n stringArrayToDate,\n convertMomentFormat,\n validateInput,\n handleMissingZeros,\n formatDateISO,\n formatDateShort,\n IMomentLikeObject,\n removeTimezoneOffset,\n reorderDateString,\n formatDateFull,\n} from './helpers';\nimport { buildDates, getValidDaysOfWeek, DateList } from './validation';\nimport {\n handleAriaLabel,\n loc,\n overrideFocus,\n isEventFromElement,\n handleRenamedProp,\n waitForNextPaint,\n} from '../../utils';\nimport { IEventDetail } from '../q2-input/types';\nimport { Q2InputCustomEvent } from 'src/components';\n\n@Component({\n tag: 'q2-calendar',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Calendar implements ComponentInterface {\n @Prop({ mutable: true, reflect: true }) value: string | { toDate(): Date };\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true, mutable: true }) invalid: boolean;\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) typeable: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabledMsg: string;\n @Prop({ reflect: true }) calendarLabel: string;\n @Prop({ reflect: true }) disclaimer: string;\n @Prop({ reflect: true }) displayFormat: string;\n @Prop({ reflect: true }) startDate: string;\n @Prop({ reflect: true }) endDate: string;\n @Prop({ reflect: true }) cutoffTime: string;\n @Prop({ reflect: true }) daysOfWeekChecksum: number;\n @Prop({ reflect: true }) assume: 'current' | 'future' | 'past' = 'current';\n @Prop({ mutable: true }) hints: string[];\n @Prop({ mutable: true }) errors: string[];\n @Prop() invalidDates: string[];\n @Prop() validDates: string[];\n @Prop({ mutable: true }) popoverDirection: 'up' | 'down';\n @Prop() popoverAlignment: 'left' | 'right';\n @Prop() popoverMinHeight: number = 355;\n\n /** @deprecated */\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop() onsuccess: (e: CustomEvent) => void;\n\n /** @deprecated */\n @Prop({ reflect: true }) buttonLabel: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n\n @State() keyboardSelection: boolean = false;\n @State() typedValue: string = '';\n @State() dateList: CalendarDay[];\n @State() hintMessage: string = this.defaultHintMessage;\n @State() hintMessageType: 'info' | 'error' = 'info';\n formatModifier: string = 'M/D/YYYY'; // To allow missing leading zero, 4/3/2021 => converts into 04/03/2021\n hintMessageElement: HTMLQ2MessageElement;\n controlElement: HTMLQ2InputElement;\n btnCalendarToggle: HTMLQ2BtnElement;\n calendarTable: HTMLTableElement;\n btnPrevMonth: HTMLQ2BtnElement;\n btnNextMonth: HTMLQ2BtnElement;\n btnPrevYear: HTMLQ2BtnElement;\n btnNextYear: HTMLQ2BtnElement;\n calendarBody: HTMLDivElement;\n defaultFormatString = 'mm/dd/yyyy';\n selectedMonthYear: ISelectedMonthYear;\n scheduledAfterRender: (() => void)[] = [];\n privatePopDirection: 'up' | 'down';\n popoverElement?: HTMLQ2PopoverElement;\n\n connectedCallback() {\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n if (this.value && this.isTypeable && !this.typedValue) {\n this.typedValue = reorderDateString(this.value as string);\n }\n this.validateDate();\n }\n\n componentWillLoad() {\n this.popDirectionHandler();\n handleAriaLabel(this);\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n dayAbbrStrings = getDays();\n dayStrings = getDaysOfWeek();\n monthStrings = getMonths();\n\n get selectedDate() {\n const selectedCell = this.calendarBody?.querySelector<HTMLTableCellElement>('[aria-selected=\"true\"]');\n return selectedCell ? removeTimezoneOffset(new Date(selectedCell.dataset.date)) : null;\n }\n\n get innerInputField(): HTMLInputElement | HTMLButtonElement {\n return this.controlElement?.shadowRoot?.querySelector('.input-field');\n }\n\n get defaultHintMessage() {\n return this.typeable\n ? loc('tecton.element.calendar.hint.format') + ': ' + this.defaultFormatString\n : loc('tecton.element.calendar.hint.select');\n }\n\n get canClear() {\n if (this.isTypeable) {\n return this.clearable && !!this.typedValue;\n } else {\n return this.clearable && !!this.value;\n }\n }\n\n get currentWeeks() {\n const weeks = this.dateList.reduce<CalendarDay[][]>((accum, item, index) => {\n const chunkIndex = Math.floor(index / 7);\n\n if (!accum[chunkIndex]) {\n accum[chunkIndex] = [];\n }\n\n accum[chunkIndex].push(item);\n\n return accum;\n }, []);\n\n return weeks;\n }\n\n get formattedValue() {\n const { typedValue, dateValue, displayFormat, isTypeable } = this;\n if (isTypeable) return typedValue;\n\n if (dateValue === undefined) return '';\n if (displayFormat) return format(dateValue, convertMomentFormat(displayFormat));\n\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n }).format(dateValue);\n }\n\n get computedPlaceholder(): string {\n if (this.disabled && this.disabledMsg) {\n return loc(this.disabledMsg);\n }\n\n if (this.buttonLabel && (this.disabled || this.placeholder)) {\n return loc(this.buttonLabel);\n }\n\n return (this.placeholder && loc(this.placeholder)) || '';\n }\n\n get dateValue(): Date | undefined {\n if (this.isTypeable) {\n return stringToDate(this.typedValue);\n } else {\n let { value } = this;\n const isMoment = value && typeof value !== 'string' && 'toDate' in value;\n if (isMoment) return (value as IMomentLikeObject).toDate();\n\n // stringified moment value assigned in html template e.g.) handlebar\n const isMomentString =\n typeof value === 'string' && value.split(' ').length === 6 && /GMT-\\d{4}/g.test(value);\n if (isMomentString) {\n value = formatDateISO(value as string);\n }\n\n return stringToDate(value as string);\n }\n }\n\n get dateValidators(): IDateValidators {\n const ct = new Date(this.cutoffTime || ''); // should fallback to InvalidDate\n return {\n startDate: stringToDate(this.startDate),\n endDate: stringToDate(this.endDate),\n cutOffTime: isValidDate(ct) ? ct : undefined,\n };\n }\n\n get isTypeable(): boolean {\n return this.typeable;\n }\n\n get errorList() {\n const { errors, hintMessageType, hintMessage, invalid } = this;\n if (Array.isArray(errors) && errors.length) return errors.filter(error => !!error).map(error => loc(error));\n if (hintMessageType === 'error' && hintMessage) return [hintMessage];\n if (invalid) return ['tecton.element.calendar.invalid'];\n return [];\n }\n\n get hintList() {\n const { hints, hintMessageType, hintMessage } = this;\n if (Array.isArray(hints) && hints.length) return hints.filter(hint => !!hint).map(hint => loc(hint));\n if (hintMessageType === 'info' && hintMessage) return [hintMessage];\n return [];\n }\n\n //////// Host Element Events ////////\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange && !!event.detail) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('error')\n defaultErrorHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onerror) {\n const { errors } = this;\n if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {\n return;\n }\n this.errors = (errors || []).concat(['tecton.element.calendar.hint.invalidDate']);\n }\n }\n\n @Listen('success')\n defaultSuccessHandler(event: CustomEvent) {\n if (event.target !== this.hostElement) {\n return;\n }\n\n if (typeof this.onsuccess === 'function') {\n this.onsuccess(event);\n } else {\n const { errors } = this;\n if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {\n this.errors = errors.filter(x => x !== 'tecton.element.calendar.hint.invalidDate');\n }\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.controlElement.shadowRoot.querySelector<HTMLElement>('.input-field').focus();\n }\n\n @Listen('clear')\n handleClear() {\n this.change.emit({ value: null });\n this.value = null;\n this.typedValue = '';\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n }\n\n /// Methods ///\n _togglePopover() {\n const toggleElement = this.typeable ? this.btnCalendarToggle : this.innerInputField;\n toggleElement?.click();\n toggleElement?.focus();\n toggleElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n @Method()\n openPopover() {\n if (this.open) return;\n this._togglePopover();\n }\n\n @Method()\n closePopover() {\n if (!this.open) return;\n this._togglePopover();\n }\n\n @Method()\n async setValue(value: string | Date) {\n const date = typeof value === 'string' ? stringToDate(value) : value;\n if (!isValidDate(date)) return;\n\n await this.openPopover();\n await waitForNextPaint();\n\n this.goToMonthYear(date.getMonth(), date.getFullYear());\n await waitForNextPaint();\n const tableCell = this.calendarTable?.querySelector<HTMLTableCellElement>(\n `td[data-date=\"${formatDateISO(date)}\"]`\n );\n tableCell?.click();\n }\n\n @Method()\n async typeValue(value: string | Date) {\n if (!this.typeable) return;\n\n const date = typeof value === 'string' ? stringToDate(value) : value;\n const formattedDate = formatDateShort(date);\n if (!isValidDate(date)) return;\n\n const { innerInputField, controlElement } = this;\n innerInputField.focus();\n innerInputField.dispatchEvent(new FocusEvent('focus'));\n innerInputField.value = formattedDate;\n innerInputField.dispatchEvent(new InputEvent('input'));\n controlElement.dispatchEvent(new KeyboardEvent('keyup'));\n }\n\n //////// Observers //////////\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('typeable')\n typeableChanged() {\n this.valueObserver(this.value);\n }\n\n @Watch('value')\n valueObserver(newValue: string | IMomentLikeObject) {\n // resetting by empty string\n if (newValue === '') {\n this.value = undefined;\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n return;\n }\n const isMoment = newValue && typeof newValue !== 'string' && 'toDate' in newValue;\n const newDate = isMoment ? (newValue as IMomentLikeObject).toDate() : stringToDate(newValue as string);\n const shortFormattedValue = formatDateShort(newDate);\n if (this.isTypeable) {\n this.typedValue = shortFormattedValue;\n } else {\n this.controlElement.value = shortFormattedValue;\n this.selectedMonthYear = setupMonthYear(newDate);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n // reset hint when value is cleared\n if (this.invalid) return;\n\n if (shortFormattedValue) {\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n } else {\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n }\n }\n\n @Watch('daysOfWeekChecksum')\n daysOfWeekChecksumObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('validDates')\n validDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('invalidDates')\n invalidDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('startDate')\n startDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('endDate')\n endDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('cutoffTime')\n cutoffTimeObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n ///////// Event /////////\n @Event() change: EventEmitter;\n @Event() error: EventEmitter;\n @Event() success: EventEmitter;\n\n ///// Actions ////////\n\n buildDateList(monthYear: ISelectedMonthYear): DateList {\n const invalidDates = stringArrayToDate(this.invalidDates);\n const validDaysOfWeek = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const validDates = stringArrayToDate(this.validDates);\n return buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n monthYear,\n this.dateValue,\n this.dateValidators,\n this.typedValue\n );\n }\n\n validateDate() {\n try {\n if (!!this.value) {\n const { dateValue } = this;\n const month = dateValue?.getMonth() ?? undefined;\n const year = dateValue?.getFullYear() ?? undefined;\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n\n const isSelectedMonthAndYear = month === monthIndex && year === selectedYear;\n let calculationDateList = [];\n\n if (!dateValue) {\n calculationDateList = [];\n } else if (isSelectedMonthAndYear) {\n calculationDateList = this.dateList;\n } else {\n calculationDateList = this.buildDateList({\n monthIndex: month,\n selectedYear: year,\n });\n }\n\n const dateValueDayOfMonth = dateValue?.getDate() ?? undefined;\n const isDateValueInvalid = dateValueDayOfMonth\n ? !calculationDateList.find(({ integer }) => integer === dateValueDayOfMonth).isValid\n : true;\n\n if (isDateValueInvalid) {\n this.error.emit({\n errors: [\n {\n message: `Value passed is invalid: The date ${this.value} is not valid`,\n errorCode: 'generalInvalid',\n },\n ],\n });\n } else {\n this.success.emit({ value: formatDateISO(dateValue) });\n }\n }\n } catch (error) {\n console.warn('Invalid moment value ', this.dateValue);\n }\n }\n\n focusInput() {\n this.controlElement?.focus();\n }\n\n closeCalendar = () => {\n if (!this.open) return;\n this.open = false;\n this.focusInput();\n };\n\n openCalendar = () => {\n if (this.readonly || this.open) return;\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.open = true;\n };\n\n toggleCalendar = () => {\n if (this.readonly) return;\n if (this.open) {\n this.closeCalendar();\n } else {\n this.openCalendar();\n }\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n this.closeCalendar();\n }\n };\n\n onPopupKeyup = (event: KeyboardEvent) => {\n if (event.key === 'Escape' || event.key === 'Esc') {\n this.onInputBlur();\n this.closeCalendar();\n }\n };\n\n onInputInput = ({ detail: { value } }: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n this.typedValue = value;\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const { dateValue } = this;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.openCalendar();\n this.activateDay(dateValue || new Date());\n break;\n }\n };\n\n onInputKeyup = (event: KeyboardEvent) => {\n if (this.disabled) {\n return;\n }\n\n switch (event.key) {\n case 'Escape':\n this.onInputBlur();\n this.closeCalendar();\n break;\n }\n\n if (!this.isTypeable) return;\n\n // handle missing zero in month and date\n this.typedValue = handleMissingZeros(this.typedValue);\n const { typedValue } = this;\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { isValid, message, messageType, inputDate, isAvailable, calendarPosition } = validateInput(\n typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (calendarPosition) {\n const [mm, dd, yyyy] = calendarPosition;\n const date = new Date(`${yyyy}-${mm}-${dd}`);\n\n if (isValidDate(date)) {\n this.selectedMonthYear = setupMonthYear(date);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n }\n\n if (event.key === 'Enter') {\n if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n\n if (this.keyboardSelection) {\n this.keyboardSelection = false;\n this.closeCalendar();\n } else {\n this.toggleCalendar();\n }\n } else {\n this.setHints({ isValid, message, messageType });\n }\n };\n\n onInputChange = (event: Event) => {\n event.stopPropagation();\n };\n\n onInputBlur = () => {\n if (!this.isTypeable) return;\n\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { typedValue } = this;\n const { isValid, inputDate, isAvailable } = validateInput(\n this.typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (!typedValue && inputDate?.toString() === 'Invalid Date') {\n // initial/clear state\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n } else if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n };\n\n onInputFocus = (event: FocusEvent) => {\n if (!this.isTypeable) return;\n if (event.target === this.controlElement) this.closeCalendar();\n };\n\n onInputClick = () => {\n if (this.disabled) return;\n this.toggleCalendar();\n };\n\n onRefocus = () => {\n this.btnPrevMonth?.dispatchEvent(new FocusEvent('focus'));\n };\n\n goToMonthYear = (monthIndex: number, year: number) => {\n if (monthIndex < 0) {\n monthIndex = 11;\n year--;\n } else if (monthIndex > 11) {\n monthIndex = 0;\n year++;\n }\n this.selectedMonthYear = {\n monthIndex,\n selectedYear: year,\n };\n this.dateList = this.buildDateList(this.selectedMonthYear);\n\n this.scheduledAfterRender.push(() => this.checkActiveCellForBlankness());\n };\n\n checkActiveCellForBlankness() {\n const activeElement = this.hostElement.shadowRoot.activeElement;\n if (!activeElement || activeElement.tagName !== 'TD' || !activeElement.hasAttribute('aria-hidden')) return;\n\n const { calendarBody } = this;\n const calendarCells = Array.from(calendarBody.querySelectorAll<Element>('td'));\n const indexOfCell = Array.from(calendarCells).indexOf(activeElement);\n\n const dayToFocus =\n indexOfCell < 15 ? 1 : calendarCells.filter(cell => !cell.hasAttribute('aria-hidden')).length;\n\n this.focusDay(this.generateDateFromDay(dayToFocus));\n }\n\n selectDate = (newDate: Date) => {\n const { isValid } = this.dateList.find(({ date }) => isSameDay(date, newDate));\n if (!isValid) return;\n this.change.emit({ value: formatDateISO(newDate) });\n this.typedValue = formatDateShort(newDate);\n this.invalid = false;\n };\n\n onDateSelection = (event: MouseEvent) => {\n const dateCell = (event.target as HTMLElement).closest<HTMLElement>('td:not([aria-hidden])');\n if (!dateCell) return;\n const clickedDate = removeTimezoneOffset(new Date(dateCell.dataset.date));\n this.selectDate(clickedDate);\n this.closeCalendar();\n };\n\n generateDateFromDay(day: number) {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return new Date(selectedYear, monthIndex, day);\n }\n\n onDateKeydown = (event: KeyboardEvent) => {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n const currentDay = parseInt((event.target as HTMLElement).dataset.day);\n const currentDate = this.generateDateFromDay(currentDay);\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -7));\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 7));\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 1));\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -1));\n break;\n\n case 'PageUp':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear - 1);\n else this.goToMonthYear(monthIndex - 1, selectedYear);\n break;\n\n case 'PageDown':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear + 1);\n else this.goToMonthYear(monthIndex + 1, selectedYear);\n break;\n\n case 'Home':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -currentDate.getDay()));\n break;\n\n case 'End':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 6 - currentDate.getDay()));\n break;\n\n case 'Escape':\n event.preventDefault();\n this.closeCalendar();\n this.focusInput();\n break;\n\n case 'Enter':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.closeCalendar();\n this.focusInput();\n break;\n\n case ' ':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.focusInput();\n break;\n }\n };\n\n activateDay(date: Date) {\n this.goToMonthYear(date.getMonth(), date.getFullYear());\n this.scheduledAfterRender.push(() => this.focusDay(date));\n }\n\n async focusDay(date: Date) {\n if (!date) return;\n await waitForNextPaint();\n this.calendarBody.querySelector<HTMLElement>(`td[data-day=\"${date.getDate()}\"]`)?.focus();\n }\n\n render() {\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : undefined}\n onChange={this.onClickElsewhere}\n >\n {this.inputField()}\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.innerInputField}\n open={this.open}\n direction={this.popoverDirection}\n aria-label={loc('tecton.element.calendar.dialogLabel')}\n minHeight={this.popoverMinHeight}\n align={this.popoverAlignment}\n block\n >\n {this.hintField()}\n {this.calendarPopover()}\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n hintField() {\n if (!this.hintMessage) return;\n\n return (\n <q2-message\n class=\"calendar-hint sr\"\n ref={el => (this.hintMessageElement = el)}\n type={this.hintMessageType}\n >\n {this.hintMessage}\n </q2-message>\n );\n }\n\n setHints({ isValid, message, messageType }) {\n if (message === this.hintMessage) return this.hintMessageElement?.present();\n this.invalid = !isValid;\n this.hintMessage = message;\n this.hintMessageType = messageType;\n }\n\n setCompleteInput(inputDate: Date) {\n const formattedDate = formatDateShort(inputDate);\n this.change.emit({ value: formatDateISO(inputDate) });\n this.typedValue = formattedDate;\n\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n }\n\n inputField() {\n const { isTypeable } = this;\n return (\n <q2-input\n ref={el => (this.controlElement = el)}\n class=\"calendar-input-field\"\n value={this.formattedValue}\n label={loc(this.label)}\n hideLabel={this.hideLabel}\n disabled={!!this.disabled}\n readonly={!!this.readonly}\n clearable={this.canClear}\n placeholder={this.computedPlaceholder}\n optional={!!this.optional}\n ariaExpanded={`${!!this.open}`}\n hints={this.hintList}\n errors={this.errorList}\n onClick={isTypeable ? undefined : this.onInputClick}\n onChange={this.onInputChange}\n onInput={this.onInputInput}\n onKeyDown={this.onInputKeydown}\n onKeyUp={this.onInputKeyup}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n icon-right={isTypeable ? undefined : 'calendar'}\n format-modifier={isTypeable ? this.formatModifier : ''}\n pseudo={!isTypeable}\n type=\"date\"\n hide-messages={!isTypeable}\n test-id=\"inputAndCalendarToggle\"\n >\n {isTypeable && (\n <q2-btn\n ref={el => (this.btnCalendarToggle = el)}\n slot=\"input-right\"\n onClick={this.onInputClick}\n test-id=\"calendarToggle\"\n label=\"tecton.element.calendar.toggleAriaLabel\"\n hide-label\n >\n <q2-icon type=\"calendar\" />\n </q2-btn>\n )}\n </q2-input>\n );\n }\n\n calendarPopover() {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return (\n <div\n class=\"calendar-field-popup\"\n onKeyUp={this.onPopupKeyup}\n >\n {this.calendarLabel && <p class=\"calendar-label\">{loc(this.calendarLabel)}</p>}\n <div class=\"cal-month-heading\">\n <q2-btn\n label={loc('tecton.element.calendar.previousMonth')}\n hide-label\n ref={elm => (this.btnPrevMonth = elm)}\n class=\"cal-nav-btn prev-month\"\n test-id=\"previousMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex - 1, selectedYear)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-month-text\">{this.monthStrings[monthIndex]}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextMonth')}\n hide-label\n class=\"cal-nav-btn next-month\"\n ref={elm => (this.btnNextMonth = elm)}\n test-id=\"nextMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex + 1, selectedYear)}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n label={loc('tecton.element.calendar.previousYear')}\n hide-label\n class=\"cal-nav-btn prev-year\"\n ref={elm => (this.btnPrevYear = elm)}\n test-id=\"previousYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear - 1)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-year-text\">{this.selectedMonthYear.selectedYear}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextYear')}\n hide-label\n class=\"cal-nav-btn next-year\"\n ref={elm => (this.btnNextYear = elm)}\n test-id=\"nextYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear + 1)}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n </div>\n <div\n class=\"sr\"\n aria-live=\"polite\"\n id=\"table-label\"\n >\n {`${this.monthStrings[monthIndex]} ${selectedYear}`}\n </div>\n {this.calendarDays()}\n {this.disclaimer && <div class=\"calendar-disclaimer\">{loc(this.disclaimer)}</div>}\n <q2-btn\n class=\"sr refocus-popup\"\n onFocus={this.onRefocus}\n />\n </div>\n );\n }\n\n calendarDays() {\n return (\n <table\n role=\"grid\"\n aria-labelledby=\"table-label\"\n ref={ref => (this.calendarTable = ref)}\n >\n <thead>\n <tr>\n {[...Array(7).keys()].map(index => (\n <th\n scope=\"col\"\n aria-label={this.dayStrings[index]}\n >\n {this.dayAbbrStrings[index]}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n onClick={this.onDateSelection}\n onKeyDown={this.onDateKeydown}\n ref={elm => (this.calendarBody = elm)}\n test-id=\"calendarTableBody\"\n >\n {this.currentWeeks.map(week => (\n <tr>\n {week.map(day => {\n let ariaLabel = '';\n if (day.isToday) ariaLabel = `${loc('tecton.element.calendar.today')}, `;\n ariaLabel += formatDateFull(day.date);\n if (day.isSelected) ariaLabel += ` (${loc('tecton.element.calendar.selected')})`;\n return (\n <td\n class={day.classList}\n aria-hidden={day.isEmpty ? 'true' : undefined}\n tabindex={day.isSelected ? 0 : -1}\n role={day.isSelected ? 'gridcell' : undefined}\n aria-selected={day.isSelected ? 'true' : undefined}\n aria-disabled={day.isValid ? undefined : 'true'}\n data-day={day.integer || undefined}\n data-date={day.date ? formatDateISO(day.date) : undefined}\n >\n {day?.isToday && (\n <div\n class=\"today-decorator\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.calendar.today')}\n </div>\n )}\n <div aria-label={ariaLabel}>{day?.integer ?? ''}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n}\n"]}
|
|
@@ -143,7 +143,7 @@ export class Q2ChartArea {
|
|
|
143
143
|
enabled: true,
|
|
144
144
|
},
|
|
145
145
|
title: {
|
|
146
|
-
text: this.chartName,
|
|
146
|
+
text: loc(this.chartName),
|
|
147
147
|
show: this.showChartName,
|
|
148
148
|
left: this.alignChartName,
|
|
149
149
|
subtext: this.chartSubTitle,
|
|
@@ -215,7 +215,7 @@ export class Q2ChartArea {
|
|
|
215
215
|
"references": {
|
|
216
216
|
"IChartData": {
|
|
217
217
|
"location": "import",
|
|
218
|
-
"path": "
|
|
218
|
+
"path": "q2-tecton-common/lib/types/element-types"
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-area/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Watch, EventEmitter, Event } from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport {\n TitleComponent,\n TitleComponentOption,\n AriaComponent,\n AriaComponentOption,\n GridComponent,\n} from 'echarts/components';\nimport { LineChart, LineSeriesOption } from 'echarts/charts';\nimport { UniversalTransition } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { loc, overrideFocus } from 'src/utils';\nimport { IChartData, getCSSProperty, isValidColor, formatValue } from 'src/utils/charting';\n\necharts.use([AriaComponent, LineChart, CanvasRenderer, UniversalTransition, GridComponent, TitleComponent]);\n\ntype EChartsOption = echarts.ComposeOption<AriaComponentOption | LineSeriesOption | TitleComponentOption>;\n\n@Component({\n tag: 'q2-chart-area',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2ChartArea implements ComponentInterface {\n @Prop() data: IChartData[] = [];\n @Prop({ reflect: true }) alignChartName: 'left' | 'right' | 'center';\n @Prop({ reflect: true }) chartName: string;\n @Prop({ reflect: true }) chartSubTitle: string;\n @Prop({ reflect: true }) lineColor: string;\n @Prop({ reflect: true }) pointerLineColor: string;\n @Prop({ reflect: true }) pointerLineStyle: 'solid' | 'dashed';\n @Prop({ reflect: true }) areaColor: string;\n @Prop({ reflect: true }) dataNamesOverflow: 'break' | 'truncate';\n @Prop({ reflect: true }) dataNamesWidth: number;\n @Prop({ reflect: true }) format: 'currency' | 'default';\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true }) hideNameAxisLabels: boolean = false;\n @Prop({ reflect: true }) hideValueAxisLabels: boolean = false;\n @Prop({ reflect: true }) offsetDataNames: boolean = false;\n @Prop({ reflect: true }) offsetDataValues: boolean = false;\n @Prop({ reflect: true }) showChartName: boolean = false;\n @Prop({ reflect: true }) showDatapointLabels: boolean = false;\n @Prop({ reflect: true }) showGradient: boolean = false;\n @Prop({ reflect: true }) gridLines: 'horizontal' | 'vertical' | 'off';\n\n @Element() hostElement: HTMLElement;\n\n @Event() change: EventEmitter;\n\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n hostElementStyles: CSSStyleDeclaration;\n chart: echarts.ECharts;\n\n resizeEventListener: EventListener;\n\n componentDidLoad(): void {\n const chart = echarts.init(this.chartContainer);\n\n this.chart = chart;\n\n this.resizeEventListener = () => this.resizeChart();\n window.addEventListener('resize', this.resizeEventListener);\n\n this.cacheComputedStyles();\n this.updateChart(chart);\n\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeEventListener);\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n getAreaFill() {\n if (this.showGradient) {\n return {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n {\n offset: 0,\n color: this.getColor(this.areaColor),\n },\n {\n offset: 1,\n color: 'white',\n },\n ],\n global: false,\n };\n }\n return this.getColor(this.areaColor);\n }\n\n getColor(color: string) {\n const primaryColor = getCSSProperty('var(--t-primary)', this.chartContainerStyles, this.hostElementStyles);\n const cssColorProp = getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles);\n if (cssColorProp) return cssColorProp;\n if (isValidColor(color)) return color;\n return primaryColor;\n }\n\n updateChart(chart: echarts.ECharts) {\n const decimals = this.formatModifier?.includes('dec') ? this.formatModifier.replace('dec', '') : 0;\n\n const valueAxis = {\n type: 'value',\n axisLabel: {\n formatter: (value: number) =>\n formatValue(value, {\n type: this.format,\n decimals,\n }),\n rotate: this.offsetDataValues ? 45 : 0,\n margin: this.offsetDataValues ? 15 : 8,\n show: !this.hideValueAxisLabels,\n },\n splitLine: {\n show: this.gridLines === 'horizontal' || !this.gridLines,\n },\n };\n\n const categoryAxis = {\n type: 'category',\n boundaryGap: false,\n data: this.data.map(datum => loc(datum.name) || ''),\n axisLabel: {\n rotate: this.offsetDataNames ? 45 : 0,\n margin: this.offsetDataNames ? 15 : 8,\n width: this.dataNamesWidth || 50,\n overflow: this.dataNamesOverflow || 'none',\n truncate: 'ellipsis',\n show: !this.hideNameAxisLabels,\n },\n axisLine: {\n show: !this.hideNameAxisLabels,\n },\n axisTick: {\n show: !this.hideNameAxisLabels,\n },\n axisPointer: {\n show: true,\n type: 'line',\n label: {\n show: false,\n formatter: (params: any) => {\n const dataIndex = params.seriesData[0].dataIndex;\n this.change.emit({\n index: dataIndex,\n data: this.data[dataIndex],\n });\n },\n },\n lineStyle: {\n color: this.getColor(this.pointerLineColor || 'var(--t-gray-10)'),\n type: this.pointerLineStyle || 'solid',\n width: 1.5,\n },\n z: 1,\n },\n splitLine: {\n show: this.gridLines === 'vertical',\n },\n };\n\n return chart.setOption<EChartsOption>({\n aria: {\n enabled: true,\n },\n title: {\n text: this.chartName,\n show: this.showChartName,\n left: this.alignChartName,\n subtext: this.chartSubTitle,\n },\n grid: {\n containLabel: true,\n },\n xAxis: categoryAxis,\n yAxis: valueAxis,\n series: [\n {\n data: this.data.map(datum => datum.value || 0),\n id: 'area',\n type: 'line',\n lineStyle: {\n color: this.getColor(this.lineColor),\n },\n itemStyle: {\n color: this.getColor(this.lineColor),\n },\n areaStyle: {\n color: this.getAreaFill(),\n },\n symbolSize: 10,\n showSymbol: false,\n label: {\n show: this.showDatapointLabels,\n position: 'right',\n formatter: (params: any) => {\n return formatValue(params.value as number, {\n type: this.format,\n decimals,\n });\n },\n },\n },\n ],\n });\n }\n\n resizeChart() {\n this.chart.resize();\n }\n\n @Watch('data')\n @Watch('alignChartName')\n @Watch('chartName')\n @Watch('chartSubTitle')\n @Watch('lineColor')\n @Watch('pointerLineColor')\n @Watch('pointerLineStyle')\n @Watch('areaColor')\n @Watch('dataNamesOverflow')\n @Watch('dataNamesWidth')\n @Watch('format')\n @Watch('formatModifier')\n @Watch('hideNameAxisLabels')\n @Watch('hideValueAxisLabels')\n @Watch('offsetDataNames')\n @Watch('offsetDataValues')\n @Watch('showChartName')\n @Watch('showDatapointLabels')\n @Watch('showGradient')\n @Watch('gridLines')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n render() {\n return (\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n class=\"chart-container\"\n test-id=\"areaChartContainer\"\n ></div>\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-area/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Watch, EventEmitter, Event } from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport {\n TitleComponent,\n TitleComponentOption,\n AriaComponent,\n AriaComponentOption,\n GridComponent,\n} from 'echarts/components';\nimport { LineChart, LineSeriesOption } from 'echarts/charts';\nimport { UniversalTransition } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { loc, overrideFocus } from 'src/utils';\nimport { getCSSProperty, isValidColor, formatValue } from 'src/utils/charting';\nimport { IChartData } from 'q2-tecton-common/lib/types/element-types';\n\necharts.use([AriaComponent, LineChart, CanvasRenderer, UniversalTransition, GridComponent, TitleComponent]);\n\ntype EChartsOption = echarts.ComposeOption<AriaComponentOption | LineSeriesOption | TitleComponentOption>;\n\n@Component({\n tag: 'q2-chart-area',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2ChartArea implements ComponentInterface {\n @Prop() data: IChartData[] = [];\n @Prop({ reflect: true }) alignChartName: 'left' | 'right' | 'center';\n @Prop({ reflect: true }) chartName: string;\n @Prop({ reflect: true }) chartSubTitle: string;\n @Prop({ reflect: true }) lineColor: string;\n @Prop({ reflect: true }) pointerLineColor: string;\n @Prop({ reflect: true }) pointerLineStyle: 'solid' | 'dashed';\n @Prop({ reflect: true }) areaColor: string;\n @Prop({ reflect: true }) dataNamesOverflow: 'break' | 'truncate';\n @Prop({ reflect: true }) dataNamesWidth: number;\n @Prop({ reflect: true }) format: 'currency' | 'default';\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true }) hideNameAxisLabels: boolean = false;\n @Prop({ reflect: true }) hideValueAxisLabels: boolean = false;\n @Prop({ reflect: true }) offsetDataNames: boolean = false;\n @Prop({ reflect: true }) offsetDataValues: boolean = false;\n @Prop({ reflect: true }) showChartName: boolean = false;\n @Prop({ reflect: true }) showDatapointLabels: boolean = false;\n @Prop({ reflect: true }) showGradient: boolean = false;\n @Prop({ reflect: true }) gridLines: 'horizontal' | 'vertical' | 'off';\n\n @Element() hostElement: HTMLElement;\n\n @Event() change: EventEmitter;\n\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n hostElementStyles: CSSStyleDeclaration;\n chart: echarts.ECharts;\n\n resizeEventListener: EventListener;\n\n componentDidLoad() {\n const chart = echarts.init(this.chartContainer);\n\n this.chart = chart;\n\n this.resizeEventListener = () => this.resizeChart();\n window.addEventListener('resize', this.resizeEventListener);\n\n this.cacheComputedStyles();\n this.updateChart(chart);\n\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeEventListener);\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n getAreaFill() {\n if (this.showGradient) {\n return {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n {\n offset: 0,\n color: this.getColor(this.areaColor),\n },\n {\n offset: 1,\n color: 'white',\n },\n ],\n global: false,\n };\n }\n return this.getColor(this.areaColor);\n }\n\n getColor(color: string) {\n const primaryColor = getCSSProperty('var(--t-primary)', this.chartContainerStyles, this.hostElementStyles);\n const cssColorProp = getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles);\n if (cssColorProp) return cssColorProp;\n if (isValidColor(color)) return color;\n return primaryColor;\n }\n\n updateChart(chart: echarts.ECharts) {\n const decimals = this.formatModifier?.includes('dec') ? this.formatModifier.replace('dec', '') : 0;\n\n const valueAxis = {\n type: 'value',\n axisLabel: {\n formatter: (value: number) =>\n formatValue(value, {\n type: this.format,\n decimals,\n }),\n rotate: this.offsetDataValues ? 45 : 0,\n margin: this.offsetDataValues ? 15 : 8,\n show: !this.hideValueAxisLabels,\n },\n splitLine: {\n show: this.gridLines === 'horizontal' || !this.gridLines,\n },\n };\n\n const categoryAxis = {\n type: 'category',\n boundaryGap: false,\n data: this.data.map(datum => loc(datum.name) || ''),\n axisLabel: {\n rotate: this.offsetDataNames ? 45 : 0,\n margin: this.offsetDataNames ? 15 : 8,\n width: this.dataNamesWidth || 50,\n overflow: this.dataNamesOverflow || 'none',\n truncate: 'ellipsis',\n show: !this.hideNameAxisLabels,\n },\n axisLine: {\n show: !this.hideNameAxisLabels,\n },\n axisTick: {\n show: !this.hideNameAxisLabels,\n },\n axisPointer: {\n show: true,\n type: 'line',\n label: {\n show: false,\n formatter: (params: any) => {\n const dataIndex = params.seriesData[0].dataIndex;\n this.change.emit({\n index: dataIndex,\n data: this.data[dataIndex],\n });\n },\n },\n lineStyle: {\n color: this.getColor(this.pointerLineColor || 'var(--t-gray-10)'),\n type: this.pointerLineStyle || 'solid',\n width: 1.5,\n },\n z: 1,\n },\n splitLine: {\n show: this.gridLines === 'vertical',\n },\n };\n\n return chart.setOption<EChartsOption>({\n aria: {\n enabled: true,\n },\n title: {\n text: loc(this.chartName),\n show: this.showChartName,\n left: this.alignChartName,\n subtext: this.chartSubTitle,\n },\n grid: {\n containLabel: true,\n },\n xAxis: categoryAxis,\n yAxis: valueAxis,\n series: [\n {\n data: this.data.map(datum => datum.value || 0),\n id: 'area',\n type: 'line',\n lineStyle: {\n color: this.getColor(this.lineColor),\n },\n itemStyle: {\n color: this.getColor(this.lineColor),\n },\n areaStyle: {\n color: this.getAreaFill(),\n },\n symbolSize: 10,\n showSymbol: false,\n label: {\n show: this.showDatapointLabels,\n position: 'right',\n formatter: (params: any) => {\n return formatValue(params.value as number, {\n type: this.format,\n decimals,\n });\n },\n },\n },\n ],\n });\n }\n\n resizeChart() {\n this.chart.resize();\n }\n\n @Watch('data')\n @Watch('alignChartName')\n @Watch('chartName')\n @Watch('chartSubTitle')\n @Watch('lineColor')\n @Watch('pointerLineColor')\n @Watch('pointerLineStyle')\n @Watch('areaColor')\n @Watch('dataNamesOverflow')\n @Watch('dataNamesWidth')\n @Watch('format')\n @Watch('formatModifier')\n @Watch('hideNameAxisLabels')\n @Watch('hideValueAxisLabels')\n @Watch('offsetDataNames')\n @Watch('offsetDataValues')\n @Watch('showChartName')\n @Watch('showDatapointLabels')\n @Watch('showGradient')\n @Watch('gridLines')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n render() {\n return (\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n class=\"chart-container\"\n test-id=\"areaChartContainer\"\n ></div>\n </div>\n );\n }\n}\n"]}
|