q2-tecton-elements 1.49.2 → 1.49.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +137 -139
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-a93362ed.js → index-83b024c4.js} +1 -21
- package/dist/cjs/index-83b024c4.js.map +1 -0
- package/dist/cjs/{index-42fcd170.js → index-f69742cf.js} +1 -1
- package/dist/cjs/{index-42fcd170.js.map → index-f69742cf.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +2 -2
- package/dist/cjs/q2-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-list.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +13 -11
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-select.cjs.entry.js +108 -29
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +5 -5
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js +2 -2
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +15 -13
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +18 -10
- package/dist/collection/components/q2-popover/q2-popover.js +192 -193
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +146 -31
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/components/index2.js +1 -20
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-calendar.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-carousel.js +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-checkbox-group.js +1 -1
- package/dist/components/q2-checkbox2.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown.js +1 -1
- package/dist/components/q2-editable-field.js +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-item.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-list.js +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +12 -10
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +2 -2
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +143 -145
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +1 -1
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +112 -32
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +137 -139
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-1c019b24.js → index-3184c760.js} +1 -1
- package/dist/esm/{index-1c019b24.js.map → index-3184c760.js.map} +1 -1
- package/dist/esm/{index-3c5cd75e.js → index-e5ac05c3.js} +2 -21
- package/dist/esm/index-e5ac05c3.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-avatar.entry.js +1 -1
- package/dist/esm/q2-btn_2.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +3 -3
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-donut.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +2 -2
- package/dist/esm/q2-editable-field.entry.js +2 -2
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +2 -2
- package/dist/esm/q2-item.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-list.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +13 -11
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-relative-time.entry.js +3 -3
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-select.entry.js +109 -30
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tab-container.entry.js +2 -2
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/jest.setup.js +22 -0
- package/dist/jest.setup.js.map +1 -0
- package/dist/q2-tecton-elements/{p-40df4468.entry.js → p-04dd9b90.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d78669df.entry.js → p-0c1e2b0d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-0852e6fe.entry.js → p-11883a2d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5775b02b.entry.js → p-2154fd27.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-dbfab45b.entry.js → p-23638c08.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f6358905.entry.js → p-24c2cc43.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a8e7e591.entry.js → p-26a7f68d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-da711c59.entry.js → p-2a21bb2a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-25bfe0b2.entry.js → p-33a16719.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-db79c056.entry.js → p-36e541b9.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js → p-38a2862e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3fe148c2.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-a657277b.entry.js.map → p-3fe148c2.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js → p-436b9b84.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ea7876eb.entry.js → p-45cf9f0b.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9ecabc7a.entry.js → p-48181bc2.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-48a45547.entry.js +2 -0
- package/dist/q2-tecton-elements/p-48a45547.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-333a41ca.entry.js → p-4f6eebbf.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-08176bd0.entry.js → p-60940069.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-93680d12.entry.js → p-631226a9.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4388e521.entry.js → p-6c64c5e9.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-793a453e.entry.js → p-6e4b1bfe.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a177d812.entry.js → p-70e8ddbe.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js → p-73c6ecee.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-76bd33da.entry.js +2 -0
- package/dist/q2-tecton-elements/p-76bd33da.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-76b98623.entry.js → p-85ddbe4f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e3ad770b.entry.js → p-85eff820.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e0a6baea.entry.js → p-88ae4e26.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-05b30f98.entry.js → p-8b032c77.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6c933b14.entry.js → p-960ee73c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js → p-99a8fdc4.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js → p-a4294b4d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a6ca739a.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-4da4cb5d.entry.js.map → p-a6ca739a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-ac6c467f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ac6c467f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-1e7fa870.entry.js → p-b45b6a3e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2810ba28.entry.js → p-ba7ffb2f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9c589ab3.entry.js → p-bd4c5570.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c5aac064.entry.js → p-bf4a9be3.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-cb4d177a.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-9e90a38a.entry.js.map → p-cb4d177a.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-630613c7.entry.js → p-d1ba78ec.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-d24bb23e.js +2 -0
- package/dist/q2-tecton-elements/p-d24bb23e.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js → p-d63cb875.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js → p-d950ae4c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5037fa67.entry.js → p-dba6c931.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e44560d9.entry.js → p-de4bce7e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c8b4f5f7.entry.js → p-e098f6c5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-be518818.js → p-f1e887f5.js} +1 -1
- package/dist/q2-tecton-elements/{p-77a763eb.entry.js → p-f6901c57.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-da0cacef.entry.js → p-ff5f28fb.entry.js} +2 -2
- 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 +2 -2
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js +2 -14
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pagination-test.e2e.js +1 -0
- package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.e2e.js +1 -34
- package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.spec.js +743 -435
- package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +1 -15
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.spec.js +412 -0
- package/dist/test/elements/q2-select-test.spec.js.map +1 -0
- package/dist/test/elements/q2-tag-test.e2e.js +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +223 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
- package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +50 -0
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
- package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
- package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +31 -31
- package/dist/types/components/q2-select/q2-select.d.ts +256 -0
- package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
- package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
- package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/types/utils/action-sheet.d.ts +12 -0
- package/package.json +3 -3
- package/dist/cjs/index-a93362ed.js.map +0 -1
- package/dist/esm/index-3c5cd75e.js.map +0 -1
- package/dist/q2-tecton-elements/p-089a7a1e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-089a7a1e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2e6669a7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2e6669a7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4da4cb5d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-84190698.js +0 -2
- package/dist/q2-tecton-elements/p-84190698.js.map +0 -1
- package/dist/q2-tecton-elements/p-9e90a38a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a657277b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d2d3d95b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d2d3d95b.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-40df4468.entry.js.map → p-04dd9b90.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d78669df.entry.js.map → p-0c1e2b0d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0852e6fe.entry.js.map → p-11883a2d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-5775b02b.entry.js.map → p-2154fd27.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-dbfab45b.entry.js.map → p-23638c08.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f6358905.entry.js.map → p-24c2cc43.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a8e7e591.entry.js.map → p-26a7f68d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-da711c59.entry.js.map → p-2a21bb2a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-25bfe0b2.entry.js.map → p-33a16719.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-db79c056.entry.js.map → p-36e541b9.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js.map → p-38a2862e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js.map → p-436b9b84.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ea7876eb.entry.js.map → p-45cf9f0b.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-9ecabc7a.entry.js.map → p-48181bc2.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-333a41ca.entry.js.map → p-4f6eebbf.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-08176bd0.entry.js.map → p-60940069.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-93680d12.entry.js.map → p-631226a9.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4388e521.entry.js.map → p-6c64c5e9.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-793a453e.entry.js.map → p-6e4b1bfe.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a177d812.entry.js.map → p-70e8ddbe.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js.map → p-73c6ecee.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-76b98623.entry.js.map → p-85ddbe4f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e3ad770b.entry.js.map → p-85eff820.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e0a6baea.entry.js.map → p-88ae4e26.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-05b30f98.entry.js.map → p-8b032c77.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6c933b14.entry.js.map → p-960ee73c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js.map → p-99a8fdc4.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js.map → p-a4294b4d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-1e7fa870.entry.js.map → p-b45b6a3e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2810ba28.entry.js.map → p-ba7ffb2f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-9c589ab3.entry.js.map → p-bd4c5570.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c5aac064.entry.js.map → p-bf4a9be3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-630613c7.entry.js.map → p-d1ba78ec.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js.map → p-d63cb875.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js.map → p-d950ae4c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-5037fa67.entry.js.map → p-dba6c931.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e44560d9.entry.js.map → p-de4bce7e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c8b4f5f7.entry.js.map → p-e098f6c5.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-be518818.js.map → p-f1e887f5.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-77a763eb.entry.js.map → p-f6901c57.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-da0cacef.entry.js.map → p-ff5f28fb.entry.js.map} +0 -0
- /package/dist/types/{workspace/workspace/tecton-production_release_1.49.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
- /package/dist/types/{workspace/workspace/tecton-production_release_1.49.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","closeDropdown","open","focusToggle","controlElement","shadowRoot","querySelector","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onDropdownMenuClick","async","item","disabled","separator","waitForNextPaint","onDropdownMenuKeydown","includes","key","preventDefault","focusAdjacentItem","onToggleClick","openDropdown","onToggleKeydown","focusLastItem","focusFirstItem","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","hostElement","delegateFocus","isEventFromElement","popoverStateHandler","detail","_a","scrollContainerTo","top","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomButton","toggleButtonProps","allowedIntents","allowedTypes","type","icon","fab","custom","intent","active","ariaExpanded","className","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","dispatchEvent","Event","firstItem","FocusEvent","lastItem","navigateTo","featureName","moduleName","queryParams","_b","window","TectonElements","call","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","contextIdParamName","action","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","innerHTML","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","mode","popoverMode","role","onFocus"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { Component, ComponentInterface, Prop, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n privatePopDirection: 'down' | 'up';\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 150;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\n };\n\n focusAdjacentItem(activeItem: HTMLQ2DropdownItemElement, direction: 'next' | 'prev') {\n const dropdownItems: HTMLQ2DropdownItemElement[] = Array.from(\n this.hostElement.querySelectorAll(this.dropdownItemSelector)\n );\n\n const activeIndex = dropdownItems.indexOf(activeItem);\n\n if (activeIndex === -1) {\n return;\n }\n\n let targetIndex: number = 0;\n if (direction === 'next') {\n targetIndex = activeIndex < dropdownItems.length - 1 ? activeIndex + 1 : 0;\n } else if (direction === 'prev') {\n if (activeIndex > 0) {\n targetIndex = activeIndex - 1;\n } else {\n targetIndex = dropdownItems.length - 1;\n }\n }\n const targetItem = dropdownItems[targetIndex];\n targetItem && targetItem.dispatchEvent(new Event('focus'));\n }\n\n focusFirstItem() {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n\n firstItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusLastItem() {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n lastItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.shadowRoot.querySelector<HTMLButtonElement>('button').focus();\n };\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\n }\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n const item = event.target as HTMLQ2DropdownItemElement;\n if (!item.disabled && !item.separator) {\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n }\n };\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n if (['Escape', 'Esc'].includes(event.key)) {\n this.closeDropdown();\n this.focusToggle();\n return;\n }\n\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n\n const item = event.target as HTMLQ2DropdownItemElement;\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n return;\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = (event: KeyboardEvent) => {\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusLastItem();\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusFirstItem();\n return;\n }\n\n if (['Escape', 'Esc'].includes(event.key)) {\n event.preventDefault();\n this.focusToggle();\n this.closeDropdown();\n return;\n }\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\n };\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = () =>\n this.navigateTo(menuItemData.featureName, menuItemData.moduleName, queryParams);\n break;\n case 'showOverpanel':\n onClickFn = () =>\n this.showOverpanel(`${menuItemData.featureName}.${menuItemData.moduleName}`, queryParams);\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.innerHTML = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomButton ? (\n <div\n test-id=\"dropdownCustom\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"custom-dropdown-button\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n role=\"menu\"\n aria-label={loc(this.label) || undefined}\n >\n <slot />\n </div>\n {this.open && (\n <q2-btn\n class=\"sr close-dropdown\"\n onFocus={this.closeDropdown}\n />\n )}\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","closeDropdown","open","focusToggle","controlElement","shadowRoot","querySelector","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onDropdownMenuClick","async","item","disabled","separator","waitForNextPaint","onDropdownMenuKeydown","includes","key","preventDefault","focusAdjacentItem","onToggleClick","openDropdown","onToggleKeydown","focusLastItem","focusFirstItem","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","hostElement","delegateFocus","isEventFromElement","popoverStateHandler","detail","_a","scrollContainerTo","top","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomButton","toggleButtonProps","allowedIntents","allowedTypes","type","icon","fab","custom","intent","active","ariaExpanded","className","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","dispatchEvent","Event","firstItem","FocusEvent","lastItem","navigateTo","featureName","moduleName","queryParams","_b","window","TectonElements","call","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","contextIdParamName","action","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","innerHTML","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","mode","popoverMode","role","onFocus"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { Component, ComponentInterface, Prop, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n privatePopDirection: 'down' | 'up';\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 150;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\n };\n\n focusAdjacentItem(activeItem: HTMLQ2DropdownItemElement, direction: 'next' | 'prev') {\n const dropdownItems: HTMLQ2DropdownItemElement[] = Array.from(\n this.hostElement.querySelectorAll(this.dropdownItemSelector)\n );\n\n const activeIndex = dropdownItems.indexOf(activeItem);\n\n if (activeIndex === -1) {\n return;\n }\n\n let targetIndex: number = 0;\n if (direction === 'next') {\n targetIndex = activeIndex < dropdownItems.length - 1 ? activeIndex + 1 : 0;\n } else if (direction === 'prev') {\n if (activeIndex > 0) {\n targetIndex = activeIndex - 1;\n } else {\n targetIndex = dropdownItems.length - 1;\n }\n }\n const targetItem = dropdownItems[targetIndex];\n targetItem && targetItem.dispatchEvent(new Event('focus'));\n }\n\n focusFirstItem() {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n\n firstItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusLastItem() {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n lastItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.shadowRoot.querySelector<HTMLButtonElement>('button').focus();\n };\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\n }\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n const item = event.target as HTMLQ2DropdownItemElement;\n if (!item.disabled && !item.separator) {\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n }\n };\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n if (['Escape', 'Esc'].includes(event.key)) {\n this.closeDropdown();\n this.focusToggle();\n return;\n }\n\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n\n const item = event.target as HTMLQ2DropdownItemElement;\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n return;\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = (event: KeyboardEvent) => {\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusLastItem();\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusFirstItem();\n return;\n }\n\n if (['Escape', 'Esc'].includes(event.key)) {\n event.preventDefault();\n this.focusToggle();\n this.closeDropdown();\n return;\n }\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\n };\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = () =>\n this.navigateTo(menuItemData.featureName, menuItemData.moduleName, queryParams);\n break;\n case 'showOverpanel':\n onClickFn = () =>\n this.showOverpanel(`${menuItemData.featureName}.${menuItemData.moduleName}`, queryParams);\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.innerHTML = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomButton ? (\n <div\n test-id=\"dropdownCustom\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"custom-dropdown-button\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n role=\"menu\"\n aria-label={loc(this.label) || undefined}\n >\n <slot />\n </div>\n {this.open && (\n <q2-btn\n class=\"sr close-dropdown\"\n onFocus={this.closeDropdown}\n />\n )}\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as a,h as r,F as c,g as o}from"./p-a5f18e27.js";import{b as e,o as i,i as s}from"./p-84190698.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{position:relative;width:100%;text-align:start;height:100%;display:grid;gap:var(--tct-card-gap, var(--t-card-gap, var(--app-scale-3x, 15px)));margin:0;color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 44px));--comp-chevron-size:0;--comp-bar-width:var(--tct-card-bar-width, var(--t-card-bar-width, var(--app-scale-2x, 10px)));--comp-card-padding:var(--tct-card-padding, var(--t-card-padding, var(--app-scale-4x, 20px)))}.container.is-small{--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 26px))}.container.has-avatar{grid-template-columns:var(--comp-avatar-size) 1fr;--tct-avatar-width:var(--comp-avatar-size);--tct-avatar-height:var(--comp-avatar-size);--tct-icon-size:var(--comp-avatar-size)}:host([bar][is-static]) .container{padding-left:var(--comp-card-padding)}:host(:not([is-static])) .container{--comp-border-radius:var(--tct-card-border-radius, var(--t-card-border-radius, var(--app-border-radius-1, 4px)));--comp-border-width:var(--tct-card-border-width, var(--t-card-border-width, 0px));border:none;background:var(--tct-card-background, var(--t-card-background, var(--t-base, #ffffff)));padding:var(--comp-card-padding);text-decoration:none;border-width:var(--comp-border-width);border-color:var(--tct-card-border-color, var(--t-card-border-color, transparent));border-style:var(--tct-card-border-style, solid);border-radius:var(--comp-border-radius);transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));box-shadow:var(--tct-card-box-shadow, var(--t-card-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable{cursor:pointer}@media (hover: hover){:host(:not([is-static])) .container.clickable{--comp-card-hover-box-shadow:var(--tct-card-hover-box-shadow, var(--t-card-hover-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 8px 16px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable:hover,:host(:not([is-static])) .container.clickable:active,:host(:not([is-static])) .container.clickable:focus{color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));box-shadow:var(--const-double-focus-ring)}:host(:not([is-static])) .container.clickable:hover{box-shadow:var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:focus:hover{box-shadow:var(--const-double-focus-ring), var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:active{box-shadow:var(--tct-card-active-box-shadow, var(--t-card-active-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14))))}}:host(:not([is-static])) .container.is-touch{--comp-chevron-size:var(--tct-card-chevron-size, var(--t-card-chevron-size, 26px));grid-template-columns:1fr var(--comp-chevron-size)}:host(:not([is-static])) .container.has-avatar.is-touch{grid-template-columns:var(--comp-avatar-size) 1fr var(--comp-chevron-size)}.content{overflow:hidden;display:grid;gap:var(--tct-card-content-gap, var(--t-card-content-gap, var(--app-scale-1x, 5px)));align-content:start}h3,p{margin:0;padding:0;line-height:var(--tct-card-font-height, var(--t-card-font-height, 20px))}h3{font-weight:var(--tct-card-font-weight, var(--t-card-font-weight, 600));font-size:var(--tct-card-font-size, var(--t-card-font-size, 17px));text-overflow:ellipsis;overflow:hidden;white-space:nowrap}p{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bar{--comp-bar-border-radius:calc(var(--comp-border-radius) - var(--comp-border-width));border-radius:var(--comp-bar-border-radius) 0 0 var(--comp-bar-border-radius);position:absolute;inset:0 auto auto 0;width:var(--comp-bar-width);background:var(--comp-bar-color);height:100%}.bar.color-primary{--comp-bar-color:var(--tct-card-bar-color-primary, var(--t-primary, #5446a4))}.bar.color-secondary{--comp-bar-color:var(--tct-card-bar-color-secondary, var(--t-secondary, #b6b3cc))}.bar.color-tertiary{--comp-bar-color:var(--tct-card-bar-color-tertiary, var(--t-tertiary, #ebe8fc))}.bar.color-info{--comp-bar-color:var(--tct-card-bar-color-info, var(--const-stoplight-info, #0079c1))}.bar.color-success{--comp-bar-color:var(--tct-card-bar-color-success, var(--const-stoplight-success, #0e8a00))}.bar.color-warning{--comp-bar-color:var(--tct-card-bar-color-warning, var(--const-stoplight-warning, #c35500))}.bar.color-alert{--comp-bar-color:var(--tct-card-bar-color-alert, var(--const-stoplight-alert, #c35500))}.bar.color-accent-1{--comp-bar-color:var(--tct-card-bar-color-accent-1, var(--t-accent-1, #e05252))}.bar.color-accent-2{--comp-bar-color:var(--tct-card-bar-color-accent-2, var(--t-accent-2, #e09952))}.bar.color-accent-3{--comp-bar-color:var(--tct-card-bar-color-accent-3, var(--t-accent-3, #e0e052))}.bar.color-accent-4{--comp-bar-color:var(--tct-card-bar-color-accent-4, var(--t-accent-4, #99e052))}.bar.color-accent-5{--comp-bar-color:var(--tct-card-bar-color-accent-5, var(--t-accent-5, #52e052))}.bar.color-accent-6{--comp-bar-color:var(--tct-card-bar-color-accent-6, var(--t-accent-6, #52e099))}.bar.color-accent-7{--comp-bar-color:var(--tct-card-bar-color-accent-7, var(--t-accent-7, #52e0e0))}.bar.color-accent-8{--comp-bar-color:var(--tct-card-bar-color-accent-8, var(--t-accent-8, #5299e0))}.bar.color-accent-9{--comp-bar-color:var(--tct-card-bar-color-accent-9, var(--t-accent-9, #5252e0))}.bar.color-accent-10{--comp-bar-color:var(--tct-card-bar-color-accent-10, var(--t-accent-10, #9952e0))}.bar.color-accent-11{--comp-bar-color:var(--tct-card-bar-color-accent-11, var(--t-accent-11, #e052e0))}.bar.color-accent-12{--comp-bar-color:var(--tct-card-bar-color-accent-12, var(--t-accent-12, #e05299))}.touch-indicator{align-self:center;--tct-icon-size:var(--comp-chevron-size)}";const d=n;const l=["primary","secondary","tertiary","info","success","warning","alert","accent-1","accent-2","accent-3","accent-4","accent-5","accent-6","accent-7","accent-8","accent-9","accent-10","accent-11","accent-12"];const h=class{constructor(r){t(this,r);this.click=a(this,"click",7);this.handleClick=t=>{if(this.url)return true;t.preventDefault();t.stopPropagation();this.click.emit()};this.isAutoSmall=false;this.isAutoTouch=false;this.avatarIcon=undefined;this.avatarInitials=undefined;this.avatarName=undefined;this.avatarSrc=undefined;this.bar=undefined;this.description=undefined;this.isSmall=undefined;this.isStatic=undefined;this.isTouch=e();this.target=undefined;this.title=undefined;this.type="clickable";this.url=undefined}disconnectedCallback(){this.resizeObserver=null}componentDidLoad(){const{hostElement:t,clickableElement:a}=this;t.click=()=>a.click();i(this.hostElement);this.resizeObserver=new ResizeObserver((()=>this.determineAutoSmall()));this.resizeObserver.observe(this.hostElement)}onHostElementFocus(t){if(!s(t,this.hostElement))return;this.clickableElement.focus()}determineAutoSmall(){var t,a;if(this.isStatic)return;if(this.hostElement.hasAttribute("is-small"))return;const{containerElement:r,avatarElement:c}=this;const o=(t=c===null||c===void 0?void 0:c.offsetWidth)!==null&&t!==void 0?t:0;const e=(a=r===null||r===void 0?void 0:r.offsetWidth)!==null&&a!==void 0?a:0;const i=o+e;this.isAutoSmall=i<350}determineAutoTouch(){if(this.hostElement.hasAttribute("is-touch"))return;this.isAutoTouch=e()}generateAvatar(){const{avatarName:t,avatarInitials:a,avatarSrc:c,avatarIcon:o}=this;if(o){return r("q2-icon",{type:o,ref:t=>this.avatarElement=t,"test-id":"avatar"})}else if(t||a||c){return r("q2-avatar",{name:t,initials:a,src:c,ref:t=>this.avatarElement=t,"test-id":"avatar"})}}generateContainerClasses(){const{isSmall:t,isAutoSmall:a,avatarName:r,avatarInitials:c,avatarSrc:o,avatarIcon:e,isTouch:i,isAutoTouch:s,isStatic:n,type:d}=this;const l=["container",d];const h=t||a;const v=i||s;const p=r||c||o||e;if(h)l.push("is-small");if(v&&!n)l.push("is-touch");if(p)l.push("has-avatar");if(n)l.push("is-static");return l.join(" ")}generateContent(){return r(c,null,this.bar&&r("div",{class:this.getBarClasses(),"test-id":"bar",style:this.getBarStyles()}),this.generateAvatar(),r("div",{class:"content","test-id":"contentContainer",ref:t=>this.containerElement=t},this.title&&r("h3",{"test-id":"title"},this.title),this.description&&r("p",{"test-id":"description"},this.description),r("slot",null)),this.isTouch&&!this.isStatic&&r("q2-icon",{"test-id":"touchIndicator",type:"chevron-right",class:"touch-indicator"}))}getBarClasses(){const{bar:t}=this;return{bar:true,[`color-${t}`]:this.isBarColorPredefined()}}getBarStyles(){const{bar:t}=this;return this.isBarColorPredefined()?{}:{"--comp-bar-color":t}}isBarColorPredefined(){return l.includes(this.bar)}render(){const{url:t,isStatic:a,type:c}=this;if(a||c==="non-clickable")return r("div",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement"},this.generateContent());else if(!!t)return r("a",{ref:t=>this.clickableElement=t,href:this.url,class:this.generateContainerClasses(),target:this.target,rel:"noopener noreferrer","test-id":"clickableElement",onClick:this.handleClick},this.generateContent());else return r("button",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement",type:"button",onClick:this.handleClick},this.generateContent())}get hostElement(){return o(this)}};h.style=d;export{h as q2_card};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as a,h as r,F as c,g as o}from"./p-a5f18e27.js";import{b as e,o as i,i as s}from"./p-d24bb23e.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{position:relative;width:100%;text-align:start;height:100%;display:grid;gap:var(--tct-card-gap, var(--t-card-gap, var(--app-scale-3x, 15px)));margin:0;color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 44px));--comp-chevron-size:0;--comp-bar-width:var(--tct-card-bar-width, var(--t-card-bar-width, var(--app-scale-2x, 10px)));--comp-card-padding:var(--tct-card-padding, var(--t-card-padding, var(--app-scale-4x, 20px)))}.container.is-small{--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 26px))}.container.has-avatar{grid-template-columns:var(--comp-avatar-size) 1fr;--tct-avatar-width:var(--comp-avatar-size);--tct-avatar-height:var(--comp-avatar-size);--tct-icon-size:var(--comp-avatar-size)}:host([bar][is-static]) .container{padding-left:var(--comp-card-padding)}:host(:not([is-static])) .container{--comp-border-radius:var(--tct-card-border-radius, var(--t-card-border-radius, var(--app-border-radius-1, 4px)));--comp-border-width:var(--tct-card-border-width, var(--t-card-border-width, 0px));border:none;background:var(--tct-card-background, var(--t-card-background, var(--t-base, #ffffff)));padding:var(--comp-card-padding);text-decoration:none;border-width:var(--comp-border-width);border-color:var(--tct-card-border-color, var(--t-card-border-color, transparent));border-style:var(--tct-card-border-style, solid);border-radius:var(--comp-border-radius);transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));box-shadow:var(--tct-card-box-shadow, var(--t-card-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable{cursor:pointer}@media (hover: hover){:host(:not([is-static])) .container.clickable{--comp-card-hover-box-shadow:var(--tct-card-hover-box-shadow, var(--t-card-hover-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 8px 16px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable:hover,:host(:not([is-static])) .container.clickable:active,:host(:not([is-static])) .container.clickable:focus{color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));box-shadow:var(--const-double-focus-ring)}:host(:not([is-static])) .container.clickable:hover{box-shadow:var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:focus:hover{box-shadow:var(--const-double-focus-ring), var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:active{box-shadow:var(--tct-card-active-box-shadow, var(--t-card-active-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14))))}}:host(:not([is-static])) .container.is-touch{--comp-chevron-size:var(--tct-card-chevron-size, var(--t-card-chevron-size, 26px));grid-template-columns:1fr var(--comp-chevron-size)}:host(:not([is-static])) .container.has-avatar.is-touch{grid-template-columns:var(--comp-avatar-size) 1fr var(--comp-chevron-size)}.content{overflow:hidden;display:grid;gap:var(--tct-card-content-gap, var(--t-card-content-gap, var(--app-scale-1x, 5px)));align-content:start}h3,p{margin:0;padding:0;line-height:var(--tct-card-font-height, var(--t-card-font-height, 20px))}h3{font-weight:var(--tct-card-font-weight, var(--t-card-font-weight, 600));font-size:var(--tct-card-font-size, var(--t-card-font-size, 17px));text-overflow:ellipsis;overflow:hidden;white-space:nowrap}p{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bar{--comp-bar-border-radius:calc(var(--comp-border-radius) - var(--comp-border-width));border-radius:var(--comp-bar-border-radius) 0 0 var(--comp-bar-border-radius);position:absolute;inset:0 auto auto 0;width:var(--comp-bar-width);background:var(--comp-bar-color);height:100%}.bar.color-primary{--comp-bar-color:var(--tct-card-bar-color-primary, var(--t-primary, #5446a4))}.bar.color-secondary{--comp-bar-color:var(--tct-card-bar-color-secondary, var(--t-secondary, #b6b3cc))}.bar.color-tertiary{--comp-bar-color:var(--tct-card-bar-color-tertiary, var(--t-tertiary, #ebe8fc))}.bar.color-info{--comp-bar-color:var(--tct-card-bar-color-info, var(--const-stoplight-info, #0079c1))}.bar.color-success{--comp-bar-color:var(--tct-card-bar-color-success, var(--const-stoplight-success, #0e8a00))}.bar.color-warning{--comp-bar-color:var(--tct-card-bar-color-warning, var(--const-stoplight-warning, #c35500))}.bar.color-alert{--comp-bar-color:var(--tct-card-bar-color-alert, var(--const-stoplight-alert, #c35500))}.bar.color-accent-1{--comp-bar-color:var(--tct-card-bar-color-accent-1, var(--t-accent-1, #e05252))}.bar.color-accent-2{--comp-bar-color:var(--tct-card-bar-color-accent-2, var(--t-accent-2, #e09952))}.bar.color-accent-3{--comp-bar-color:var(--tct-card-bar-color-accent-3, var(--t-accent-3, #e0e052))}.bar.color-accent-4{--comp-bar-color:var(--tct-card-bar-color-accent-4, var(--t-accent-4, #99e052))}.bar.color-accent-5{--comp-bar-color:var(--tct-card-bar-color-accent-5, var(--t-accent-5, #52e052))}.bar.color-accent-6{--comp-bar-color:var(--tct-card-bar-color-accent-6, var(--t-accent-6, #52e099))}.bar.color-accent-7{--comp-bar-color:var(--tct-card-bar-color-accent-7, var(--t-accent-7, #52e0e0))}.bar.color-accent-8{--comp-bar-color:var(--tct-card-bar-color-accent-8, var(--t-accent-8, #5299e0))}.bar.color-accent-9{--comp-bar-color:var(--tct-card-bar-color-accent-9, var(--t-accent-9, #5252e0))}.bar.color-accent-10{--comp-bar-color:var(--tct-card-bar-color-accent-10, var(--t-accent-10, #9952e0))}.bar.color-accent-11{--comp-bar-color:var(--tct-card-bar-color-accent-11, var(--t-accent-11, #e052e0))}.bar.color-accent-12{--comp-bar-color:var(--tct-card-bar-color-accent-12, var(--t-accent-12, #e05299))}.touch-indicator{align-self:center;--tct-icon-size:var(--comp-chevron-size)}";const d=n;const l=["primary","secondary","tertiary","info","success","warning","alert","accent-1","accent-2","accent-3","accent-4","accent-5","accent-6","accent-7","accent-8","accent-9","accent-10","accent-11","accent-12"];const h=class{constructor(r){t(this,r);this.click=a(this,"click",7);this.handleClick=t=>{if(this.url)return true;t.preventDefault();t.stopPropagation();this.click.emit()};this.isAutoSmall=false;this.isAutoTouch=false;this.avatarIcon=undefined;this.avatarInitials=undefined;this.avatarName=undefined;this.avatarSrc=undefined;this.bar=undefined;this.description=undefined;this.isSmall=undefined;this.isStatic=undefined;this.isTouch=e();this.target=undefined;this.title=undefined;this.type="clickable";this.url=undefined}disconnectedCallback(){this.resizeObserver=null}componentDidLoad(){const{hostElement:t,clickableElement:a}=this;t.click=()=>a.click();i(this.hostElement);this.resizeObserver=new ResizeObserver((()=>this.determineAutoSmall()));this.resizeObserver.observe(this.hostElement)}onHostElementFocus(t){if(!s(t,this.hostElement))return;this.clickableElement.focus()}determineAutoSmall(){var t,a;if(this.isStatic)return;if(this.hostElement.hasAttribute("is-small"))return;const{containerElement:r,avatarElement:c}=this;const o=(t=c===null||c===void 0?void 0:c.offsetWidth)!==null&&t!==void 0?t:0;const e=(a=r===null||r===void 0?void 0:r.offsetWidth)!==null&&a!==void 0?a:0;const i=o+e;this.isAutoSmall=i<350}determineAutoTouch(){if(this.hostElement.hasAttribute("is-touch"))return;this.isAutoTouch=e()}generateAvatar(){const{avatarName:t,avatarInitials:a,avatarSrc:c,avatarIcon:o}=this;if(o){return r("q2-icon",{type:o,ref:t=>this.avatarElement=t,"test-id":"avatar"})}else if(t||a||c){return r("q2-avatar",{name:t,initials:a,src:c,ref:t=>this.avatarElement=t,"test-id":"avatar"})}}generateContainerClasses(){const{isSmall:t,isAutoSmall:a,avatarName:r,avatarInitials:c,avatarSrc:o,avatarIcon:e,isTouch:i,isAutoTouch:s,isStatic:n,type:d}=this;const l=["container",d];const h=t||a;const v=i||s;const p=r||c||o||e;if(h)l.push("is-small");if(v&&!n)l.push("is-touch");if(p)l.push("has-avatar");if(n)l.push("is-static");return l.join(" ")}generateContent(){return r(c,null,this.bar&&r("div",{class:this.getBarClasses(),"test-id":"bar",style:this.getBarStyles()}),this.generateAvatar(),r("div",{class:"content","test-id":"contentContainer",ref:t=>this.containerElement=t},this.title&&r("h3",{"test-id":"title"},this.title),this.description&&r("p",{"test-id":"description"},this.description),r("slot",null)),this.isTouch&&!this.isStatic&&r("q2-icon",{"test-id":"touchIndicator",type:"chevron-right",class:"touch-indicator"}))}getBarClasses(){const{bar:t}=this;return{bar:true,[`color-${t}`]:this.isBarColorPredefined()}}getBarStyles(){const{bar:t}=this;return this.isBarColorPredefined()?{}:{"--comp-bar-color":t}}isBarColorPredefined(){return l.includes(this.bar)}render(){const{url:t,isStatic:a,type:c}=this;if(a||c==="non-clickable")return r("div",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement"},this.generateContent());else if(!!t)return r("a",{ref:t=>this.clickableElement=t,href:this.url,class:this.generateContainerClasses(),target:this.target,rel:"noopener noreferrer","test-id":"clickableElement",onClick:this.handleClick},this.generateContent());else return r("button",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement",type:"button",onClick:this.handleClick},this.generateContent())}get hostElement(){return o(this)}};h.style=d;export{h as q2_card};
|
|
2
|
+
//# sourceMappingURL=p-436b9b84.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as i,h as n}from"./p-a5f18e27.js";const t="*{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 #0066cc)}: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}.tab-pane[aria-hidden=true]{display:none}.tab-pane:focus{outline:none;box-shadow:none}";const d=t;const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as i,h as n}from"./p-a5f18e27.js";const t="*{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 #0066cc)}: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}.tab-pane[aria-hidden=true]{display:none}.tab-pane:focus{outline:none;box-shadow:none}";const d=t;const a=class{constructor(n){e(this,n);this.badge=i(this,"badge",7);this.badgeCount=undefined;this.badgeDescription=undefined;this.badgeStatus=undefined;this.badgeTheme=undefined;this.guid=undefined;this.index=undefined;this.label=undefined;this.name=undefined;this.selected=undefined;this.value=undefined}badgeObserver(){this.badge.emit()}render(){return n("div",{key:"9c83aaa029cf0cf07db708d6fd3f26a5647c8d4d",id:`tab-pane-${this.guid}-${this.index}`,class:`tab-pane${this.selected?"":" hidden"}`,role:"tabpanel",tabindex:"-1","aria-hidden":`${!this.selected}`,"aria-labelledby":`tab-${this.guid}-${this.index}`},n("slot",{key:"50ab4063cca23f75a35e1edab3a114bd683eea4b"}))}static get watchers(){return{badgeCount:["badgeObserver"],badgeDescription:["badgeObserver"],badgeTheme:["badgeObserver"],badgeStatus:["badgeObserver"]}}};a.style=d;export{a as q2_tab_pane};
|
|
2
|
+
//# sourceMappingURL=p-45cf9f0b.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,F as o,g as a}from"./p-a5f18e27.js";import{l as s,w as r}from"./p-84190698.js";const n='*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}: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}@keyframes showBackdrop{from{opacity:0}}@keyframes hideBackdrop{to{opacity:0}}dialog{--comp-border-radius-default:var(--app-scale-3x, 15px) var(--app-scale-3x, 15px) 0 0;--comp-border-radius:var(--tct-action-sheet-border-radius, var(--comp-border-radius-default));--comp-desktop-border-radius:var(--tct-action-sheet-border-radius, var(--app-scale-3x, 15px));--comp-close-button-size:var(--tct-action-sheet-close-button-size, var(--t-a11y-min-size, 44px));--comp-header-height:var(--tct-action-sheet-header-height, var(--t-a11y-min-size, 44px));--comp-dialog-background:var(--tct-action-sheet-background, var(--t-base, #ffffff));--comp-dialog-color:var(--tct-action-sheet-color, var(--t-text, #4d4d4d));--comp-dialog-padding:var(--tct-action-sheet-padding, var(--app-scale-3x, 15px));--comp-content-gradient-height:var(--tct-action-sheet-content-gradient-height, var(--app-scale-2x, 10px));--comp-dialog-gap:var(--tct-action-sheet-gap, var(--app-scale-2x, 10px));--comp-dialog-max-width:var(--tct-action-sheet-max-width, 400px);--comp-dialog-max-height:var(--tct-action-sheet-max-height, var(--comp-action-sheet-computed-max-height, 75vh));--comp-dialog-min-height:var(--tct-action-sheet-min-height, var(--comp-action-sheet-computed-min-height, 20vh));--comp-dialog-box-shadow:var(--tct-action-sheet-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14)));position:fixed;top:100%;bottom:unset;color:var(--comp-dialog-color);background:var(--comp-dialog-background);transition:transform var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease)), opacity var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease));width:100%;max-width:var(--comp-dialog-max-width);border:0;border-radius:var(--comp-border-radius);box-shadow:var(--comp-dialog-box-shadow);padding:0;height:auto;overflow:hidden;min-height:var(--comp-dialog-min-height);max-height:var(--comp-dialog-max-height)}dialog::backdrop{opacity:0;background:var(--tct-action-sheet-backdrop-background, var(--t-top-a2, rgba(13, 13, 13, 0.6)))}dialog[open].is-opening,dialog[open].is-open{transform:translateY(-100%)}@media screen and (min-width: 1200px){dialog[open].is-opening,dialog[open].is-open{opacity:1;transform:translateY(0)}}dialog[open].is-opening::backdrop,dialog[open].is-open::backdrop{opacity:1;animation:showBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}dialog[open].is-closing{transform:translateY(10%)}dialog[open].is-closing::backdrop{animation:hideBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}@media screen and (min-width: 1200px){dialog{border-radius:var(--comp-desktop-border-radius);top:0px;bottom:0px;height:fit-content;transform:translateY(10%);opacity:0}}.content{overflow-y:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 4px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.content::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.content::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.content::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.interior{display:grid;grid-template-rows:44px 1fr auto;gap:var(--comp-dialog-gap);max-height:calc(var(--comp-dialog-max-height) - var(--comp-dialog-padding));padding:var(--comp-dialog-padding)}.interior.is-list header,.interior.is-list footer{position:relative}.interior.is-list header:before,.interior.is-list footer:before{content:"";display:block;position:absolute;left:0;height:var(--comp-content-gradient-height);width:100%;z-index:1}header{display:grid;grid-template-columns:var(--comp-close-button-size) 1fr var(--comp-close-button-size);grid-template-areas:". title close";gap:var(--comp-dialog-gap)}header .title{grid-area:title;text-align:center;line-height:var(--comp-header-height)}header .btn-close{grid-area:close;width:var(--comp-close-button-size);height:var(--comp-close-button-size)}footer{display:flex;justify-content:end}';const c=n;var d=undefined&&undefined.__rest||function(t,e){var i={};for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0)i[o]=t[o];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++){if(e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a]))i[o[a]]=t[o[a]]}return i};const l=class{constructor(a){t(this,a);this.close=e(this,"close",7);this.ready=e(this,"ready",3);this.initialSelectedOptions=[];this.maxHeight=.75;this.minHeight=.2;this.selectedOptions={values:[],value:""};this.generateOptgroup=t=>{const e=document.createElement("q2-optgroup");if(t.label)e.setAttribute("label",t.label);if(t.disabled)e.setAttribute("disabled","");if(!!t.options.length)t.options.forEach((t=>e.appendChild(this.generateOption(t))));return e};this.generateOption=t=>{const e=document.createElement("q2-option");const i=d(t,[]);if(t.innerHTML)e.innerHTML=t.innerHTML;Object.entries(i).forEach((([t,i])=>{if(i===undefined)return;if(typeof i==="boolean"){if(i)e.setAttribute(t,"")}else{e.setAttribute(t,i)}}));return e};this.onCancel=t=>{var e,i;t.preventDefault();const{initialSelectedOptions:o}=this;this.hide({value:(i=(e=o===null||o===void 0?void 0:o[0])===null||e===void 0?void 0:e.value)!==null&&i!==void 0?i:"",values:o,type:"cancel"})};this.onClick=t=>{const e=t.target;if(!(e instanceof HTMLElement))return;const i=!!e.closest(".interior, q2-action-sheet");if(i)return;this.onCancel(t)};this.onListChange=t=>{this.selectedOptions=t.detail};this.onListDone=()=>{this.hide(Object.assign(Object.assign({},this.selectedOptions),{type:"confirm"}))};this.onListPopoverStateChange=t=>{if(t.detail.open)return;if(t.detail.action==="close"){this.onCancel(t)}else{this.onListDone()}};this.renderList=({data:t})=>{const{listProps:e}=t;return i(o,null,i("div",{class:"content",ref:t=>this.contentElement=t},i("q2-option-list",{ref:t=>this.optionListElement=t,multiple:e.multiple,noSelect:e.noSelect,onChange:this.onListChange,onPopoverState:this.onListPopoverStateChange,selectedOptions:e.selectedOptions},i("slot",null))),i("footer",null,e.multiple&&i("q2-btn",{"test-id":"btnDone",intent:"workflow-primary",onClick:this.onListDone},s("tecton.element.actionSheet.done"))))};this.renderMessage=({data:t})=>i("q2-message",{type:t.type},t.title&&i("h2",null,t.title),t.description&&i("p",null,t.description));this.renderSlot=()=>i("div",{class:"content",ref:t=>this.contentElement=t},i("slot",null));this.isScrollable=false;this.renderStatus="is-closing";this.data=undefined;this.hideClose=undefined;this.title=undefined}disconnectedCallback(){this.dialogElement.removeEventListener("cancel",this.onCancel)}componentDidLoad(){this.dialogElement.addEventListener("cancel",this.onCancel);this.ready.emit()}async hide(t={value:"",values:[],type:"confirm"}){this.close.emit(t);this.renderStatus="is-closing";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-closing")return;this.dialogElement.close();this.renderStatus=null;this.data=undefined;this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.hidePostHook()}),{once:true})}async show(){this.showPreHook();await r();this.updateDialogMinMaxHeight();this.storeInitialValues();if(this.dialogElement.open)return;this.dialogElement.showModal();this.renderStatus="is-opening";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-opening")return;this.renderStatus="is-open";this.focusContent()}),{once:true})}focusContent(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){const{event:e}=t;if(e instanceof KeyboardEvent){this.optionListElement.handleExternalKeydown(e)}else{this.optionListElement.focus()}}}hidePostHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null}}showPreHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null;t.options.forEach((t=>{this.hostElement.appendChild("options"in t?this.generateOptgroup(t):this.generateOption(t))}))}}storeInitialValues(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.initialSelectedOptions=t.listProps.selectedOptions}}updateDialogMinMaxHeight(){const t=window.innerHeight;this.dialogElement.style.setProperty("--comp-action-sheet-computed-min-height",`${Math.floor(t*this.minHeight)}px`);this.dialogElement.style.setProperty("--comp-action-sheet-computed-max-height",`${Math.floor(t*this.maxHeight)}px`)}render(){var t;const{data:e}=this;const o=(e===null||e===void 0?void 0:e.title)||this.title||!this.hideClose;const a=this.renderStatus||"";let s=null;switch(e===null||e===void 0?void 0:e.appearance){case"message":s=this.renderMessage;break;case"list":s=this.renderList;break;default:s=this.renderSlot;break}const r=(e===null||e===void 0?void 0:e.appearance)||"slot";const n=`interior is-${r}`;return i("dialog",{key:"1d6ebb02e59e41753891e1f2eea1362e0e758f4f",ref:t=>this.dialogElement=t,class:a,onClick:this.onClick},i("div",{key:"662e217d838953307ca864b1c252a5e02cd7c32c",class:n},o&&i("header",{key:"52dbee7febd535a6d0a8e5fea3810c629d4e63c0"},i("div",{key:"b541e06b8c5cde38ada47bce1f35e2176575e382",class:"title"},(e===null||e===void 0?void 0:e.title)||this.title),!this.hideClose&&i("q2-btn",{key:"0e33df22bda0ee27ee156f9b2d759ccff39590c3",class:"btn-close","test-id":"btnClose",onClick:this.onCancel,label:"tecton.element.actionSheet.close","hide-label":true},i("q2-icon",{key:"5151e5e84bd01c16abdc03499f2517131db487db",type:"close"}))),((t=this.data)===null||t===void 0?void 0:t.description)&&i("p",{key:"8051ad0cfa7a221b414a84adb6dfe3dbc51246a8"},e.description),s&&i(s,{key:"3d613def94e6469a5d33149b8af5f5552c10c4e3",data:this.data})))}get hostElement(){return a(this)}};l.style=c;export{l as q2_action_sheet};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,F as o,g as a}from"./p-a5f18e27.js";import{l as s,w as r}from"./p-d24bb23e.js";const n='*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}: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}@keyframes showBackdrop{from{opacity:0}}@keyframes hideBackdrop{to{opacity:0}}dialog{--comp-border-radius-default:var(--app-scale-3x, 15px) var(--app-scale-3x, 15px) 0 0;--comp-border-radius:var(--tct-action-sheet-border-radius, var(--comp-border-radius-default));--comp-desktop-border-radius:var(--tct-action-sheet-border-radius, var(--app-scale-3x, 15px));--comp-close-button-size:var(--tct-action-sheet-close-button-size, var(--t-a11y-min-size, 44px));--comp-header-height:var(--tct-action-sheet-header-height, var(--t-a11y-min-size, 44px));--comp-dialog-background:var(--tct-action-sheet-background, var(--t-base, #ffffff));--comp-dialog-color:var(--tct-action-sheet-color, var(--t-text, #4d4d4d));--comp-dialog-padding:var(--tct-action-sheet-padding, var(--app-scale-3x, 15px));--comp-content-gradient-height:var(--tct-action-sheet-content-gradient-height, var(--app-scale-2x, 10px));--comp-dialog-gap:var(--tct-action-sheet-gap, var(--app-scale-2x, 10px));--comp-dialog-max-width:var(--tct-action-sheet-max-width, 400px);--comp-dialog-max-height:var(--tct-action-sheet-max-height, var(--comp-action-sheet-computed-max-height, 75vh));--comp-dialog-min-height:var(--tct-action-sheet-min-height, var(--comp-action-sheet-computed-min-height, 20vh));--comp-dialog-box-shadow:var(--tct-action-sheet-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14)));position:fixed;top:100%;bottom:unset;color:var(--comp-dialog-color);background:var(--comp-dialog-background);transition:transform var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease)), opacity var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease));width:100%;max-width:var(--comp-dialog-max-width);border:0;border-radius:var(--comp-border-radius);box-shadow:var(--comp-dialog-box-shadow);padding:0;height:auto;overflow:hidden;min-height:var(--comp-dialog-min-height);max-height:var(--comp-dialog-max-height)}dialog::backdrop{opacity:0;background:var(--tct-action-sheet-backdrop-background, var(--t-top-a2, rgba(13, 13, 13, 0.6)))}dialog[open].is-opening,dialog[open].is-open{transform:translateY(-100%)}@media screen and (min-width: 1200px){dialog[open].is-opening,dialog[open].is-open{opacity:1;transform:translateY(0)}}dialog[open].is-opening::backdrop,dialog[open].is-open::backdrop{opacity:1;animation:showBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}dialog[open].is-closing{transform:translateY(10%)}dialog[open].is-closing::backdrop{animation:hideBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}@media screen and (min-width: 1200px){dialog{border-radius:var(--comp-desktop-border-radius);top:0px;bottom:0px;height:fit-content;transform:translateY(10%);opacity:0}}.content{overflow-y:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 4px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.content::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.content::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.content::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.interior{display:grid;grid-template-rows:44px 1fr auto;gap:var(--comp-dialog-gap);max-height:calc(var(--comp-dialog-max-height) - var(--comp-dialog-padding));padding:var(--comp-dialog-padding)}.interior.is-list header,.interior.is-list footer{position:relative}.interior.is-list header:before,.interior.is-list footer:before{content:"";display:block;position:absolute;left:0;height:var(--comp-content-gradient-height);width:100%;z-index:1}header{display:grid;grid-template-columns:var(--comp-close-button-size) 1fr var(--comp-close-button-size);grid-template-areas:". title close";gap:var(--comp-dialog-gap)}header .title{grid-area:title;text-align:center;line-height:var(--comp-header-height)}header .btn-close{grid-area:close;width:var(--comp-close-button-size);height:var(--comp-close-button-size)}footer{display:flex;justify-content:end}';const c=n;var d=undefined&&undefined.__rest||function(t,e){var i={};for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0)i[o]=t[o];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++){if(e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a]))i[o[a]]=t[o[a]]}return i};const l=class{constructor(a){t(this,a);this.close=e(this,"close",7);this.ready=e(this,"ready",3);this.initialSelectedOptions=[];this.maxHeight=.75;this.minHeight=.2;this.selectedOptions={values:[],value:""};this.generateOptgroup=t=>{const e=document.createElement("q2-optgroup");if(t.label)e.setAttribute("label",t.label);if(t.disabled)e.setAttribute("disabled","");if(!!t.options.length)t.options.forEach((t=>e.appendChild(this.generateOption(t))));return e};this.generateOption=t=>{const e=document.createElement("q2-option");const i=d(t,[]);if(t.innerHTML)e.innerHTML=t.innerHTML;Object.entries(i).forEach((([t,i])=>{if(i===undefined)return;if(typeof i==="boolean"){if(i)e.setAttribute(t,"")}else{e.setAttribute(t,i)}}));return e};this.onCancel=t=>{var e,i;t.preventDefault();const{initialSelectedOptions:o}=this;this.hide({value:(i=(e=o===null||o===void 0?void 0:o[0])===null||e===void 0?void 0:e.value)!==null&&i!==void 0?i:"",values:o,type:"cancel"})};this.onClick=t=>{const e=t.target;if(!(e instanceof HTMLElement))return;const i=!!e.closest(".interior, q2-action-sheet");if(i)return;this.onCancel(t)};this.onListChange=t=>{this.selectedOptions=t.detail};this.onListDone=()=>{this.hide(Object.assign(Object.assign({},this.selectedOptions),{type:"confirm"}))};this.onListPopoverStateChange=t=>{if(t.detail.open)return;if(t.detail.action==="close"){this.onCancel(t)}else{this.onListDone()}};this.renderList=({data:t})=>{const{listProps:e}=t;return i(o,null,i("div",{class:"content",ref:t=>this.contentElement=t},i("q2-option-list",{ref:t=>this.optionListElement=t,multiple:e.multiple,noSelect:e.noSelect,onChange:this.onListChange,onPopoverState:this.onListPopoverStateChange,selectedOptions:e.selectedOptions},i("slot",null))),i("footer",null,e.multiple&&i("q2-btn",{"test-id":"btnDone",intent:"workflow-primary",onClick:this.onListDone},s("tecton.element.actionSheet.done"))))};this.renderMessage=({data:t})=>i("q2-message",{type:t.type},t.title&&i("h2",null,t.title),t.description&&i("p",null,t.description));this.renderSlot=()=>i("div",{class:"content",ref:t=>this.contentElement=t},i("slot",null));this.isScrollable=false;this.renderStatus="is-closing";this.data=undefined;this.hideClose=undefined;this.title=undefined}disconnectedCallback(){this.dialogElement.removeEventListener("cancel",this.onCancel)}componentDidLoad(){this.dialogElement.addEventListener("cancel",this.onCancel);this.ready.emit()}async hide(t={value:"",values:[],type:"confirm"}){this.close.emit(t);this.renderStatus="is-closing";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-closing")return;this.dialogElement.close();this.renderStatus=null;this.data=undefined;this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.hidePostHook()}),{once:true})}async show(){this.showPreHook();await r();this.updateDialogMinMaxHeight();this.storeInitialValues();if(this.dialogElement.open)return;this.dialogElement.showModal();this.renderStatus="is-opening";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-opening")return;this.renderStatus="is-open";this.focusContent()}),{once:true})}focusContent(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){const{event:e}=t;if(e instanceof KeyboardEvent){this.optionListElement.handleExternalKeydown(e)}else{this.optionListElement.focus()}}}hidePostHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null}}showPreHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null;t.options.forEach((t=>{this.hostElement.appendChild("options"in t?this.generateOptgroup(t):this.generateOption(t))}))}}storeInitialValues(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.initialSelectedOptions=t.listProps.selectedOptions}}updateDialogMinMaxHeight(){const t=window.innerHeight;this.dialogElement.style.setProperty("--comp-action-sheet-computed-min-height",`${Math.floor(t*this.minHeight)}px`);this.dialogElement.style.setProperty("--comp-action-sheet-computed-max-height",`${Math.floor(t*this.maxHeight)}px`)}render(){var t;const{data:e}=this;const o=(e===null||e===void 0?void 0:e.title)||this.title||!this.hideClose;const a=this.renderStatus||"";let s=null;switch(e===null||e===void 0?void 0:e.appearance){case"message":s=this.renderMessage;break;case"list":s=this.renderList;break;default:s=this.renderSlot;break}const r=(e===null||e===void 0?void 0:e.appearance)||"slot";const n=`interior is-${r}`;return i("dialog",{key:"44ba761e77729dd83bb5a19ca586bc5045344201",ref:t=>this.dialogElement=t,class:a,onClick:this.onClick},i("div",{key:"fa95fbddb72962f759f2d884c215be774c89d14a",class:n},o&&i("header",{key:"494e4c9f3ac05d5702613382f5ac32a35c8cff31"},i("div",{key:"285410287bdbfbaa6edfc31c28fe93352ca33385",class:"title"},(e===null||e===void 0?void 0:e.title)||this.title),!this.hideClose&&i("q2-btn",{key:"6283c82e2beb13491cc5120776e733416754d153",class:"btn-close","test-id":"btnClose",onClick:this.onCancel,label:"tecton.element.actionSheet.close","hide-label":true},i("q2-icon",{key:"8dff558e14173e4f23918d6bdc023882991eaace",type:"close"}))),((t=this.data)===null||t===void 0?void 0:t.description)&&i("p",{key:"63aced28f5a520dad771c65a4213d981ab4bb1c9"},e.description),s&&i(s,{key:"fc737ad3268b69aa990afc46131395476514aa4c",data:this.data})))}get hostElement(){return a(this)}};l.style=c;export{l as q2_action_sheet};
|
|
2
|
+
//# sourceMappingURL=p-48181bc2.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as s,H as i,g as n}from"./p-a5f18e27.js";import{n as o,l as h,o as a,i as c,w as r,p as l}from"./p-d24bb23e.js";const d="*{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 #0066cc)}: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{position:relative;width:100%;display:block;line-height:var(--tct-option-list-line-height, var(--t-option-list-line-height, var(--app-line-height, 1.428571429em)))}.content{text-align:start}:host([is-sizeable]) .content{display:block;height:auto}";const f=d;const p=class{constructor(s){t(this,s);this.change=e(this,"change",7);this.popoverState=e(this,"popoverState",7);this.ready=e(this,"ready",3);this.keyStore={queue:[],lastPressedAt:new Date};this.scheduledAfterRender=[];this.clickHandler=t=>{const e=t.target;const s=e.closest("q2-option");this.selectOption(s);if(this.multiple)return;this.popoverState.emit({open:false,action:"select"})};this.externalKeydownHandler=t=>{t.stopPropagation();const{activeIndex:e,customSearch:s,allOptions:i}=this;const{key:n}=t;let h;switch(n){case" ":if(this.searchString){if(s)break;this.searchOptions(n,true);break}else if(this.type==="menu"){this.activeIndex=0;this.openDropdownWithActiveElement(0)}else{this.setDefaultActiveElement();o((()=>this.popoverState.emit({open:true,action:"open"})))}break;case"Enter":if(this.type==="menu"){this.activeIndex=0;this.openDropdownWithActiveElement(0)}else{this.setDefaultActiveElement();o((()=>this.popoverState.emit({open:true,action:"open"})))}break;case"ArrowUp":t.preventDefault();h=!!this.selectedOptions.length?this.getDefaultActiveIndex():this.getNextVisibleIndex(-1);if(h===-1)break;this.openDropdownWithActiveElement(h);break;case"ArrowDown":t.preventDefault();h=!!this.selectedOptions.length?this.getDefaultActiveIndex():this.getNextVisibleIndex(1);if(h===-1)break;this.openDropdownWithActiveElement(h);break;case"Home":t.preventDefault();this.openDropdownWithActiveElement(0);break;case"End":t.preventDefault();this.openDropdownWithActiveElement(i.length-1);break;case"PageUp":t.preventDefault();this.openDropdownWithActiveElement(Math.max((e||0)-10,0));break;case"PageDown":t.preventDefault();this.openDropdownWithActiveElement(Math.min((e||0)+10,i.length-1));break;case"Tab":this.popoverState.emit({open:false,action:"close"});break;case"Esc":case"Escape":if(this.noSelect)this.setActiveElement(null);this.popoverState.emit({open:false,action:"close"});break;default:if(s)break;if(!n.match(/^[\w]$/))break;this.searchOptions(n,true);break}};this.focusoutHandler=t=>{const{relatedTarget:e}=t;const s=this.allOptions.includes(e);const i=!s&&this.hostElement.contains(e);if(s||i){t.stopPropagation()}};this.internalKeydownHandler=t=>{t.stopPropagation();const{activeIndex:e,customSearch:s,allOptions:i,allVisibleOptions:n,multiple:o}=this;const{key:h,shiftKey:a}=t;let c;switch(h){case" ":if(this.searchString&&!this.multiple){if(s)break;this.searchOptions(h,false);break}t.preventDefault();c=i.find((t=>t.active));if(!c||c.disabled)break;this.selectOption(c);if(o)break;this.popoverState.emit({open:false,action:"select"});break;case"Enter":t.preventDefault();c=i.find((t=>t.active));if(!c||c.disabled)break;this.selectOption(c);if(o)break;this.popoverState.emit({open:false,action:"select"});break;case"ArrowUp":t.preventDefault();const r=n[0].active;if(r)break;if(e===undefined){this.setDefaultActiveElement();break}else{const t=this.getNextVisibleIndex(-1);if(t===-1)break;this.adjustActiveOptionAndScroll(t-e);break}case"ArrowDown":t.preventDefault();const l=n[n.length-1].active;if(l)break;if(e===undefined){this.setDefaultActiveElement();break}else{const t=this.getNextVisibleIndex(1);if(t===-1)break;this.adjustActiveOptionAndScroll(t-e);break}case"Home":t.preventDefault();this.openDropdownWithActiveElement(0);break;case"End":t.preventDefault();this.openDropdownWithActiveElement(i.length-1);break;case"PageUp":t.preventDefault();this.openDropdownWithActiveElement(Math.max(e-10,0));break;case"PageDown":t.preventDefault();this.openDropdownWithActiveElement(Math.min(e+10,i.length-1));break;case"Tab":if(a)break;if(this.multiple&&this.type==="listbox")break;if(this.type==="menu"){this.popoverState.emit({open:false,action:"close"});break}c=i.find((t=>t.active));if(!c||c.disabled)return;this.selectOption(c);break;case"Esc":case"Escape":if(this.noSelect)this.setActiveElement(null);this.popoverState.emit({open:false,action:"close"});break;default:if(s)break;if(!h.match(/^[\w]$/))break;this.searchOptions(h,false);break}};this.searchAndFocus=(t,e)=>{const s=()=>{this.pivotIndex=this.pivotIndex===undefined?0:(this.activeIndex||0)+1;const t=this.allOptions.map(((t,e)=>({element:t,index:e})));return[...t.slice(this.pivotIndex),...t.slice(0,this.pivotIndex)]};const i=()=>{const e=new Date;if(e.getTime()-this.keyStore.lastPressedAt.getTime()>1e3){this.keyStore.queue.length=0}if(this.keyStore.queue.length!==1||this.keyStore.queue[0]!==t){this.keyStore.queue.push(t)}this.keyStore.lastPressedAt=e};const n=t=>{const e=this.keyStore.queue.join("");return t.find((t=>!t.element.disabled&&t.element.display&&(t.element.display.match(new RegExp(`^${e}`,"i"))||t.element.display.replace(/\s/g,"").match(new RegExp(`^${e}`,"i")))))};const o=({index:t})=>{if(this.multiple){this.openDropdownWithActiveElement(t)}else{this.activeIndex=t;if(e){this.selectOption(this.allOptions[t]);this.popoverState.emit({open:false,action:"select"})}else this.setActiveElement(t)}};i();const h=n(s());if(h){o(h)}};this.hasOptions=undefined;this.align=undefined;this.customSearch=undefined;this.disabled=undefined;this.label=h("tecton.element.optionList.label");this.multiple=undefined;this.noSelect=undefined;this.selectedOptions=[];this.showSelected=undefined;this.type="listbox"}componentWillLoad(){this.hasOptions=!!this.hostElement.querySelectorAll("q2-option").length}componentDidLoad(){a(this.hostElement);this.checkOptions();this.selectedOptionsUpdated();this.ready.emit()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[]}handleClick(t){t.stopPropagation()}delegateFocus(t){if(!c(t,this.hostElement))return;this.popoverState.emit({open:true,action:"open"});const{activeIndex:e}=this;if(typeof e==="number"&&e>-1){this.setActiveOption();this.setFocusedOption()}else{this.setDefaultActiveElement()}}async getContents(){return this.allContents}async getOptions(){return this.allOptions}async handleExternalKeydown(t){this.externalKeydownHandler(t)}async setActiveElement(t){this.activeIndex=t;this.setActiveOption();this.setFocusedOption()}async setDefaultActiveElement(){this.activeIndex=this.getDefaultActiveIndex();this.setActiveOption();this.setFocusedOption()}selectedOptionsUpdated(){if(this.multiple){this.updateMultipleOptionAttrs()}else{this.updateSingleOptionAttrs()}}showSelectedUpdated(t){if(t&&this.selectedOptions.length===0){this.showSelected=false;return}this.allOptions.forEach((e=>e._multiSelectHidden=t?!e.selected:false))}get allContents(){const t=this.getRootSlot(this.hostElement);const e=["Q2-OPTGROUP","Q2-OPTION"];return t.filter((t=>e.includes(t.tagName)))}get allOptions(){const t=this.allContents;const e=t=>t.reduce(((t,s)=>{if(s.tagName==="Q2-OPTGROUP"){return[...t,...e(Array.from(s.children))]}else if(s.tagName==="Q2-OPTION"){return[...t,s]}else{return t}}),[]);return e(t)}get allVisibleOptions(){return this.allOptions.filter((t=>!t.hidden&&!t._multiSelectHidden&&!t.disabled&&!t.disabledGroup))}adjustActiveOptionAndScroll(t){this.activeIndex+=t;this.setActiveOption();this.setFocusedOption();this.scrollToActiveOption()}async checkOptions(){const{type:t}=this;const e=await this.getOptions();if(!t)return;const s=t==="menu"?"menuitem":"option";e.forEach((t=>{t.role=s}))}focusSelectedSibling(t){const{allVisibleOptions:e,allOptions:s}=this;const i=e.length<2;if(i){this.showSelected=false;return}const n=e.indexOf(t);const o=n?n-1:n+1;const h=e[o];const a=s.indexOf(h);this.activeIndex=a;this.setFocusedOption();this.scheduledAfterRender.push((()=>{t._multiSelectHidden=!t.selected}))}getDefaultActiveIndex(){const{allOptions:t}=this;const e=t.findIndex((t=>t.selected));if(e>-1)return e;const s=t.findIndex((t=>!t.hidden));if(s>-1)return s;return 0}getNextVisibleIndex(t){const{allVisibleOptions:e,allOptions:s,activeIndex:i}=this;const n=s[i];const o=e.indexOf(n);let h=o+t;if(h<0){h=e.length-1}else if(h>e.length-1){h=0}const a=e[h];return s.indexOf(a)}getRootSlot(t){var e;const s=t.querySelector("slot");const i=(e=s===null||s===void 0?void 0:s.assignedElements())!==null&&e!==void 0?e:Array.from(t.children);const n=!!i.length&&i[0].tagName==="SLOT";if(n){return this.getRootSlot(i[0])}else{return i}}async openDropdownWithActiveElement(t){if(this.disabled)return;this.popoverState.emit({open:true,action:"open"});await r();this.activeIndex=t;this.setActiveOption();this.setFocusedOption();this.scrollToActiveOption()}resetTimer(){if(this.searchStringTimer){clearTimeout(this.searchStringTimer)}this.searchStringTimer=window.setTimeout((()=>{this.searchString=null}),2e3)}scrollToActiveOption(){const t=this.allOptions[this.activeIndex];t===null||t===void 0?void 0:t.scrollIntoView({block:"center"})}searchOptions(t,e){this.searchString=t;this.searchAndFocus(t,e)}selectOption(t){const{multiple:e,noSelect:s,showSelected:i}=this;if(!t||t.disabled||t.disabledGroup)return;const n=t.value;const o={value:n,display:t.display||t.innerText.trim()};let h=[];if(e){const{selectedOptions:e}=this;const s=e.find((t=>t.value===n));if(s){h=e.filter((({value:t})=>t!==n))}else{h=[...e,o]}if(i)this.focusSelectedSibling(t)}else{h=[o]}if(s)this.setActiveElement(null);else this.selectedOptions=h;this.change.emit({value:n,values:h})}setActiveOption(){const t=this.activeIndex;this.allOptions.forEach(((e,s)=>{e.active=t===s}))}setFocusedOption(){const t=this.allOptions[this.activeIndex];if(!t)return;const e=l(t);if(e)t.focus();else o((()=>t.focus()))}updateMultipleOptionAttrs(){const{allOptions:t,selectedOptions:e}=this;const s=e.map((({value:t})=>t));t.forEach((t=>{t.selected=s.includes(t.value)}))}updateSingleOptionAttrs(){var t;const{allOptions:e,selectedOptions:s}=this;const i=((t=s[0])===null||t===void 0?void 0:t.value)||undefined;e.forEach((t=>{t.selected=t.value===i}))}render(){return s(i,{key:"d0a9a9f08038a8856edbde465e82e5a48dd64925"},s("div",{key:"d6caf01cb66a3b2bbc063bfbf7b4f8968f7f5fd6",class:"content",ref:t=>this.contentElement=t,onFocusout:this.focusoutHandler},s("div",{key:"6c5c6d4ed0446dd8b92df50d568eadf5ba13100a",class:"options","aria-label":h("tecton.element.optionList.label",[this.label]),"aria-multiselectable":`${!!this.multiple}`,role:this.type||"listbox",onKeyDown:this.internalKeydownHandler,onClick:this.clickHandler},s("slot",{key:"1ed18df8ed8e395511d1cb9078fcf6eefc886b67"}))))}get hostElement(){return n(this)}static get watchers(){return{selectedOptions:["selectedOptionsUpdated"],showSelected:["showSelectedUpdated"]}}};p.style=f;export{p as q2_option_list};
|
|
2
|
+
//# sourceMappingURL=p-48a45547.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["q2OptionListCss","Q2OptionListStyle0","Q2OptionList","this","keyStore","queue","lastPressedAt","Date","scheduledAfterRender","clickHandler","event","target","option","closest","selectOption","multiple","popoverState","emit","open","action","externalKeydownHandler","stopPropagation","activeIndex","customSearch","allOptions","key","nextIndex","searchString","searchOptions","type","openDropdownWithActiveElement","setDefaultActiveElement","nextPaint","preventDefault","selectedOptions","length","getDefaultActiveIndex","getNextVisibleIndex","Math","max","min","noSelect","setActiveElement","match","focusoutHandler","relatedTarget","isInQ2OptionList","includes","isInLightDom","hostElement","contains","internalKeydownHandler","allVisibleOptions","shiftKey","newOption","find","element","active","disabled","isFirstVisibleOptionActive","undefined","adjustActiveOptionAndScroll","isLastVisibleOptionActive","searchAndFocus","keyValue","shouldSelect","reorder","pivotIndex","list","map","index","slice","buildQueue","now","getTime","push","searchIndex","keyStr","join","v","display","RegExp","replace","setFocus","matched","loc","componentWillLoad","hasOptions","querySelectorAll","componentDidLoad","overrideFocus","checkOptions","selectedOptionsUpdated","ready","componentDidRender","forEach","fn","handleClick","delegateFocus","isEventFromElement","setActiveOption","setFocusedOption","getContents","allContents","getOptions","handleExternalKeydown","updateMultipleOptionAttrs","updateSingleOptionAttrs","showSelectedUpdated","showSelected","_multiSelectHidden","selected","rootSlot","getRootSlot","acceptedTags","filter","tagName","contents","extractOptions","elements","reduce","acc","Array","from","children","hidden","disabledGroup","numToAdd","scrollToActiveOption","options","optionRole","role","focusSelectedSibling","hasNoSiblings","selectedOptionVisibleIndex","indexOf","nextVisibleSiblingIndex","nextVisibleSibling","nextSiblingIndex","firstSelected","findIndex","firstEnabled","direction","activeOption","visibleActiveOptionIndex","nextVisibleOptionIndex","nextVisibleOption","slot","querySelector","assignedElements","_a","hasAnotherSlot","waitForNextPaint","resetTimer","searchStringTimer","clearTimeout","window","setTimeout","scrollIntoView","block","selectedOption","selectedValue","value","valueObject","innerText","trim","values","isAlreadySelected","change","elementIndex","isOptionVisible","isVisible","focus","selectedValues","render","h","Host","class","ref","el","contentElement","onFocusout","label","onKeyDown","onClick"],"sources":["src/components/q2-option-list/q2-option-list.scss?tag=q2-option-list&encapsulation=shadow","src/components/q2-option-list/q2-option-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n line-height: var-list(var-prefixer(option-list-line-height),--app-line-height, 1.428571429em);\n}\n\n.content {\n text-align: start;\n\n :host([is-sizeable]) & {\n display: block;\n height: auto;\n }\n}\n","import {\n Component,\n Prop,\n h,\n Event,\n State,\n Element,\n ComponentInterface,\n Host,\n EventEmitter,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { isEventFromElement, isVisible, loc, nextPaint, overrideFocus, waitForNextPaint } from 'src/utils';\n\nexport interface IOptionValue {\n value: string;\n display?: string;\n}\n\n@Component({ tag: 'q2-option-list', shadow: true, styleUrl: 'q2-option-list.scss' })\nexport class Q2OptionList implements ComponentInterface {\n // #region Own Properties\n\n activeIndex: number;\n contentElement: HTMLElement;\n keyStore: {\n queue: string[];\n lastPressedAt: Date;\n } = {\n queue: [],\n lastPressedAt: new Date(),\n };\n pivotIndex: number;\n scheduledAfterRender: (() => void)[] = [];\n searchString: string;\n searchStringTimer: number;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n hasOptions: boolean;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n align: 'left' | 'right';\n\n /** Indicates a custom search is being implemented for the option list. */\n @Prop({ reflect: true })\n customSearch: boolean;\n\n /** Disables the option list. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n label: string = loc('tecton.element.optionList.label');\n\n /**\n * Enables the multi-select ability for the option list.\n * @info\n * Only applicable when options are provided.\n */\n @Prop({ reflect: true })\n multiple: boolean;\n\n /** Disables the logic that handles selecting and focusing an option in the option list. */\n @Prop({ reflect: true })\n noSelect: boolean;\n\n /** A list of the selected options on the element. */\n @Prop({ mutable: true })\n selectedOptions: IOptionValue[] = [];\n\n /** Applies focus to the selected option. */\n @Prop({ reflect: true, mutable: true })\n showSelected: boolean;\n\n /** Translates to the role of the option list */\n @Prop()\n type: 'menu' | 'listbox' = 'listbox';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when an option is selected or deselected.\n *\n * When the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property\n * will contain the selected option values.\n */\n @Event()\n change: EventEmitter<{ value: string; values: IOptionValue[] }>;\n\n /**\n * Emitted to indicate the intended state of the popover.\n * @private\n */\n @Event()\n popoverState: EventEmitter<{ open: boolean; action: 'close' | 'select' | 'open' }>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter<undefined>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.checkOptions();\n this.selectedOptionsUpdated();\n this.ready.emit();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.popoverState.emit({ open: true, action: 'open' });\n const { activeIndex } = this;\n if (typeof activeIndex === 'number' && activeIndex > -1) {\n this.setActiveOption();\n this.setFocusedOption();\n } else {\n this.setDefaultActiveElement();\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async getContents(): Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]> {\n return this.allContents;\n }\n\n @Method()\n async getOptions(): Promise<HTMLQ2OptionElement[]> {\n return this.allOptions;\n }\n\n @Method()\n async handleExternalKeydown(event: KeyboardEvent) {\n this.externalKeydownHandler(event);\n }\n\n @Method()\n async setActiveElement(index: number) {\n this.activeIndex = index;\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async setDefaultActiveElement() {\n this.activeIndex = this.getDefaultActiveIndex();\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('selectedOptions')\n selectedOptionsUpdated() {\n if (this.multiple) {\n this.updateMultipleOptionAttrs();\n } else {\n this.updateSingleOptionAttrs();\n }\n }\n\n @Watch('showSelected')\n showSelectedUpdated(showSelected: boolean) {\n if (showSelected && this.selectedOptions.length === 0) {\n this.showSelected = false;\n return;\n }\n this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));\n }\n\n // #endregion\n // #region Local Methods\n\n get allContents(): (HTMLQ2OptgroupElement | HTMLQ2OptionElement)[] {\n const rootSlot = this.getRootSlot(this.hostElement);\n const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];\n return rootSlot.filter(element => acceptedTags.includes(element.tagName)) as (\n | HTMLQ2OptgroupElement\n | HTMLQ2OptionElement\n )[];\n }\n\n get allOptions(): HTMLQ2OptionElement[] {\n const contents = this.allContents;\n\n const extractOptions = (\n elements: (HTMLQ2OptgroupElement | HTMLQ2OptionElement | Element)[]\n ): HTMLQ2OptionElement[] => {\n return elements.reduce((acc, element) => {\n if (element.tagName === 'Q2-OPTGROUP') {\n return [...acc, ...extractOptions(Array.from(element.children))];\n } else if (element.tagName === 'Q2-OPTION') {\n return [...acc, element];\n } else {\n return acc;\n }\n }, []);\n };\n\n return extractOptions(contents);\n }\n\n get allVisibleOptions(): HTMLQ2OptionElement[] {\n return this.allOptions.filter(\n option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup\n );\n }\n\n adjustActiveOptionAndScroll(numToAdd: number) {\n this.activeIndex += numToAdd;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n async checkOptions() {\n const { type } = this;\n const options = await this.getOptions();\n if (!type) return;\n const optionRole = type === 'menu' ? 'menuitem' : 'option';\n options.forEach(option => {\n option.role = optionRole;\n });\n }\n\n clickHandler = (event: Event) => {\n const target = event.target as HTMLQ2OptionElement;\n const option = target.closest('q2-option');\n this.selectOption(option);\n if (this.multiple) return;\n this.popoverState.emit({ open: false, action: 'select' });\n };\n\n /* tslint:disable:cyclomatic-complexity */\n externalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions } = this;\n const { key } = event;\n\n let nextIndex;\n switch (key) {\n case ' ':\n if (this.searchString) {\n if (customSearch) break;\n\n this.searchOptions(key, true);\n break;\n } else if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'Enter':\n if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max((activeIndex || 0) - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min((activeIndex || 0) + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, true);\n break;\n }\n };\n\n /* tslint:enable:cyclomatic-complexity */\n\n focusoutHandler = (event: FocusEvent) => {\n const { relatedTarget } = event as unknown as { relatedTarget: HTMLQ2OptionElement };\n const isInQ2OptionList = this.allOptions.includes(relatedTarget);\n const isInLightDom = !isInQ2OptionList && this.hostElement.contains(relatedTarget);\n if (isInQ2OptionList || isInLightDom) {\n event.stopPropagation();\n }\n };\n\n focusSelectedSibling(option: HTMLQ2OptionElement) {\n const { allVisibleOptions, allOptions } = this;\n const hasNoSiblings = allVisibleOptions.length < 2;\n if (hasNoSiblings) {\n this.showSelected = false;\n return;\n }\n\n const selectedOptionVisibleIndex = allVisibleOptions.indexOf(option);\n const nextVisibleSiblingIndex = selectedOptionVisibleIndex\n ? selectedOptionVisibleIndex - 1\n : selectedOptionVisibleIndex + 1;\n const nextVisibleSibling = allVisibleOptions[nextVisibleSiblingIndex];\n const nextSiblingIndex = allOptions.indexOf(nextVisibleSibling);\n\n this.activeIndex = nextSiblingIndex;\n this.setFocusedOption();\n this.scheduledAfterRender.push(() => {\n option._multiSelectHidden = !option.selected;\n });\n }\n\n getDefaultActiveIndex() {\n const { allOptions } = this;\n const firstSelected = allOptions.findIndex(element => element.selected);\n if (firstSelected > -1) return firstSelected;\n\n const firstEnabled = allOptions.findIndex(element => !element.hidden);\n if (firstEnabled > -1) return firstEnabled;\n\n return 0;\n }\n\n getNextVisibleIndex(direction) {\n const { allVisibleOptions, allOptions, activeIndex } = this;\n const activeOption = allOptions[activeIndex];\n const visibleActiveOptionIndex = allVisibleOptions.indexOf(activeOption);\n let nextVisibleOptionIndex = visibleActiveOptionIndex + direction;\n\n if (nextVisibleOptionIndex < 0) {\n nextVisibleOptionIndex = allVisibleOptions.length - 1;\n } else if (nextVisibleOptionIndex > allVisibleOptions.length - 1) {\n nextVisibleOptionIndex = 0;\n }\n\n const nextVisibleOption = allVisibleOptions[nextVisibleOptionIndex];\n return allOptions.indexOf(nextVisibleOption);\n }\n\n getRootSlot(element: Element): Element[] {\n const slot = element.querySelector('slot');\n const assignedElements = slot?.assignedElements() ?? Array.from(element.children);\n const hasAnotherSlot = !!assignedElements.length && assignedElements[0].tagName === 'SLOT';\n if (hasAnotherSlot) {\n return this.getRootSlot(assignedElements[0]);\n } else {\n return assignedElements;\n }\n }\n\n internalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions, allVisibleOptions, multiple } = this;\n const { key, shiftKey } = event;\n\n let newOption: HTMLQ2OptionElement;\n switch (key) {\n case ' ':\n if (this.searchString && !this.multiple) {\n if (customSearch) break;\n\n this.searchOptions(key, false);\n break;\n }\n\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'Enter':\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n const isFirstVisibleOptionActive = allVisibleOptions[0].active;\n if (isFirstVisibleOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'ArrowDown':\n event.preventDefault();\n const isLastVisibleOptionActive = allVisibleOptions[allVisibleOptions.length - 1].active;\n if (isLastVisibleOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min(activeIndex + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n if (shiftKey) break;\n if (this.multiple && this.type === 'listbox') break;\n if (this.type === 'menu') {\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n }\n\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) return;\n this.selectOption(newOption);\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, false);\n break;\n }\n };\n\n async openDropdownWithActiveElement(activeIndex: number) {\n if (this.disabled) return;\n this.popoverState.emit({ open: true, action: 'open' });\n await waitForNextPaint();\n this.activeIndex = activeIndex;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n resetTimer() {\n if (this.searchStringTimer) {\n clearTimeout(this.searchStringTimer);\n }\n\n this.searchStringTimer = window.setTimeout(() => {\n this.searchString = null;\n }, 2000);\n }\n\n scrollToActiveOption() {\n const activeOption = this.allOptions[this.activeIndex];\n activeOption?.scrollIntoView({ block: 'center' });\n }\n\n searchAndFocus = (keyValue: string, shouldSelect: boolean) => {\n // pseudo search in non-searchable select\n const reorder = () => {\n this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;\n const list = this.allOptions.map((element, index) => ({ element, index }));\n return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];\n };\n\n const buildQueue = () => {\n const now = new Date();\n if (now.getTime() - this.keyStore.lastPressedAt.getTime() > 1000) {\n // empty stored keys if delay > 1s\n this.keyStore.queue.length = 0;\n }\n if (this.keyStore.queue.length !== 1 || this.keyStore.queue[0] !== keyValue) {\n this.keyStore.queue.push(keyValue);\n }\n this.keyStore.lastPressedAt = now;\n };\n\n const searchIndex = (list: any[]) => {\n const keyStr = this.keyStore.queue.join('');\n return list.find(v => {\n return (\n !v.element.disabled &&\n v.element.display &&\n (v.element.display.match(new RegExp(`^${keyStr}`, 'i')) ||\n v.element.display.replace(/\\s/g, '').match(new RegExp(`^${keyStr}`, 'i')))\n );\n });\n };\n\n const setFocus = ({ index }) => {\n if (this.multiple) {\n // multiple: should open to make sure that which options are selected\n this.openDropdownWithActiveElement(index);\n } else {\n this.activeIndex = index;\n if (shouldSelect) {\n this.selectOption(this.allOptions[index]);\n this.popoverState.emit({ open: false, action: 'select' });\n } else this.setActiveElement(index);\n }\n };\n\n buildQueue();\n const matched = searchIndex(reorder());\n if (matched) {\n setFocus(matched);\n }\n };\n\n searchOptions(key: string, shouldSelect?: boolean) {\n this.searchString = key;\n this.searchAndFocus(key, shouldSelect);\n }\n\n selectOption(selectedOption: HTMLQ2OptionElement) {\n const { multiple, noSelect, showSelected } = this;\n if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup) return;\n const selectedValue = selectedOption.value;\n const valueObject = {\n value: selectedValue,\n display: selectedOption.display || selectedOption.innerText.trim(),\n };\n\n let values: IOptionValue[] = [];\n if (multiple) {\n const { selectedOptions } = this;\n const isAlreadySelected = selectedOptions.find(option => option.value === selectedValue);\n\n if (isAlreadySelected) {\n values = selectedOptions.filter(({ value }) => value !== selectedValue);\n } else {\n values = [...selectedOptions, valueObject];\n }\n\n if (showSelected) this.focusSelectedSibling(selectedOption);\n } else {\n values = [valueObject];\n }\n\n if (noSelect) this.setActiveElement(null);\n else this.selectedOptions = values;\n\n this.change.emit({ value: selectedValue, values });\n }\n\n setActiveOption() {\n const activeIndex = this.activeIndex;\n\n this.allOptions.forEach((element, elementIndex) => {\n element.active = activeIndex === elementIndex;\n });\n }\n\n setFocusedOption() {\n const option = this.allOptions[this.activeIndex];\n if (!option) return;\n\n const isOptionVisible = isVisible(option);\n if (isOptionVisible) option.focus();\n else nextPaint(() => option.focus());\n }\n\n updateMultipleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValues = selectedOptions.map(({ value }) => value);\n allOptions.forEach(element => {\n element.selected = selectedValues.includes(element.value);\n });\n }\n\n updateSingleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValue = selectedOptions[0]?.value || undefined;\n allOptions.forEach(element => {\n element.selected = element.value === selectedValue;\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <Host>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n onFocusout={this.focusoutHandler}\n >\n <div\n class=\"options\"\n aria-label={loc('tecton.element.optionList.label', [this.label])}\n aria-multiselectable={`${!!this.multiple}`}\n role={this.type || 'listbox'}\n onKeyDown={this.internalKeydownHandler}\n onClick={this.clickHandler}\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as a,h as e,F as i,g as r}from"./p-a5f18e27.js";import{c as n,l as o,o as s,i as c}from"./p-84190698.js";const l="*{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 #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block;position:relative}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-1, var(--app-scale-1x, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));margin:var(--tct-tab-container-margin, var(--t-tab-container-margin, 0));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1x, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-background, var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent)));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:var(--tct-tab-section-font-size, inherit);padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background:var(--tct-tab-hover-background, var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit)));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentcolor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background:var(--tct-tab-active-background, var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit)))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) 0;padding:var(--tct-tab-container-content-padding, var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding))));background:var(--tct-tab-container-content-backgrond, none)}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-background:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left q2-icon,.btn-right q2-icon{--tct-icon-stroke-width:3}.btn-left{left:0}.btn-right{right:0}.tab-pane-badge{display:flex;justify-content:space-between;align-items:center}.tab-pane-badge q2-badge{margin-left:5px;margin-right:5px}";const b=l;const d=class{constructor(e){t(this,e);this.change=a(this,"change",7);this.settled=a(this,"settled",7);this.guid=n();this.lastScrolled=new Date(null).getTime();this.scheduledAfterRender=[];this.checkScrollState=()=>{if(!this.listElement)return;const{scrollLeft:t,scrollWidth:a,clientWidth:e}=this.listElement;this.scrollEnabled=a>e;this.showScrollLeft=t>0;this.showScrollRight=a>Math.ceil(t)+e};this.moveFocus=(t,a=true)=>{const e=this.tabs[t].value;const i=this.listElement.querySelector(`[data-value="${e}"]`);i.focus({preventScroll:a});const r=i.offsetLeft-this.listElement.clientWidth/2;this.listElement.scrollTo({left:r,behavior:"smooth"});return i};this.moveToAdjacentTab=(t,a)=>{const e=this.tabs.map((({value:t})=>t)).indexOf(t);let i;switch(a){case"next":i=Math.min(e+1,this.tabs.length-1);break;case"prev":i=Math.max(e-1,0);break;case"first":i=0;break;case"last":i=this.tabs.length-1;break}if(e===i)return;this.moveFocus(i,false)};this.onScrollBtnClick=t=>{const{scrollLeft:a,scrollWidth:e,clientWidth:i}=this.listElement;const r=Math.floor(i/2);let n=0;if(t==="left"){n=-Math.min(r,Math.abs(a))}else{n=Math.min(r,Math.abs(e-a-i))}this.listElement.scrollBy({left:n,behavior:"smooth"})};this.onSlotChange=()=>{this.checkScrollState()};this.onTabClick=t=>{const a=t.target.closest('button[role="tab"]').dataset.value;const e=this.value===a;if(e)return;this.change.emit({value:a})};this.onTabKeyDown=t=>{const a=t.target.dataset.value;switch(t.key){case"ArrowRight":t.preventDefault();this.moveToAdjacentTab(a,"next");break;case"ArrowLeft":t.preventDefault();this.moveToAdjacentTab(a,"prev");break;case"Home":t.preventDefault();this.moveToAdjacentTab(a,"first");break;case"End":t.preventDefault();this.moveToAdjacentTab(a,"last");break;case"Space":case"Enter":t.preventDefault();this.change.emit({value:a});break}};this.setTabs=()=>{this.tabs=this.tabPanes.map((({label:t,value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})=>({label:t&&o(t)||"",value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})))};this.updateTabData=()=>{this.updateTabPaneProps();this.setTabs()};this.updateTabPaneProps=()=>{this.tabPanes.forEach(((t,a)=>{t.selected=t.value===this.selectedTabValue;t.guid=this.guid;t.index=a}))};this.hasLeft=false;this.hasRight=false;this.scrollEnabled=false;this.showScrollLeft=false;this.showScrollRight=false;this.tabs=undefined;this.color=undefined;this.name=undefined;this.noPrint=false;this.type=undefined;this.value=undefined}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect();this.resizeObserver=null;this.mutationObserver=null}componentWillLoad(){const t=new MutationObserver(this.updateTabData);t.observe(this.hostElement,{childList:true,attributes:true});this.mutationObserver=t;this.resizeObserver=new ResizeObserver((()=>this.checkScrollState()));this.updateTabData()}componentDidLoad(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.observe(this.listElement);this.checkScrollState();s(this.hostElement);const a=this.tabs.findIndex((t=>t.value===this.value));this.scheduledAfterRender.push((()=>{const t=this.tabs.length>0;if(!t)return;const e=this.moveFocus(Math.max(a,0));this.value=e.dataset.value;e.blur()}))}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.settled.emit()}onBadge(){this.setTabs()}defaultChangeHandler(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}onFocus(t){if(!c(t,this.hostElement))return;const a=this.tabs.findIndex((t=>t.value===this.selectedTabValue));this.moveFocus(a)}onResize(){this.checkScrollState()}nameObserver(){this.updateTabData()}valueObserver(){this.updateTabData();this.scheduledAfterRender.push(this.resizeIframe);const t=this.tabs.findIndex((t=>t.value===this.value));if(t>-1){this.scheduledAfterRender.push((()=>this.moveFocus(t,false)))}}get selectedTabValue(){return this.value||this.tabPanes[0].value||""}get tabList(){return this.hostElement.shadowRoot.querySelector(".tab-list")}get tabPanes(){const t=this.hostElement.querySelectorAll("q2-tab-pane, tecton-tab-pane");if(t.length===0){return[]}return Array.from(t).filter((t=>t.name===this.name))}generateTab(t,a){const{label:i,value:r}=t;const n=this.selectedTabValue===r;return e("li",{role:"presentation"},e("button",{id:`tab-${this.guid}-${a}`,"data-value":r,"test-id":"tabLink",tabIndex:n?0:-1,role:"tab","aria-selected":n?"true":"false",onClick:this.onTabClick,onKeyDown:this.onTabKeyDown},t.badgeCount===undefined?i:this.generateTabWithBadge(t,n)))}generateTabWithBadge(t,a){let i;if(!t.badgeStatus&&a)i=t.badgeTheme||"primary";let r;if(t.badgeDescription)r=o(t.badgeDescription);else if(t.badgeStatus)r=o(`tecton.element.tab.pane.${t.badgeStatus}`,[t.badgeCount]);else r=o("tecton.element.tab.pane.new");return e("div",{class:"tab-pane-badge","aria-label":`${t.label}, ${t.badgeCount} ${r}`},t.label,e("q2-badge",{value:t.badgeCount,theme:i,status:t.badgeStatus}))}resizeIframe(){var t,a;return(a=(t=window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||a===void 0?void 0:a.call(t)}render(){return e(i,{key:"5568f1a9c05f0cb8124adfe548a96d5480b0b8bc"},e("div",{key:"ddccc615e5c4cbaeefaed4471bcc3df8bacb6609",class:"tab-container"},this.scrollEnabled&&e(i,{key:"9f0303f416ceb1a868d24b2bccf8add4da980a91"},e("div",{key:"891bb9e12ea0808610ed518a6870190c738f5c8c",class:"gradient-left",hidden:!this.showScrollLeft}),e("div",{key:"60b8216b5fea77607761c6ad55895f8805a26e0e",class:"gradient-right",hidden:!this.showScrollRight}),e("q2-btn",{key:"5714bd03be5455e969b7512bf720337d7f671a5c",class:"btn-left",hidden:!this.showScrollLeft,onClick:()=>this.onScrollBtnClick("left")},e("q2-icon",{key:"acea58fefe206a0abf097870fc447181b74b4f60",type:"chevron-left",label:"scroll left"})),e("q2-btn",{key:"da12e4e1018449187b1c52fc134e9d4bfe3c6bff",class:"btn-right",hidden:!this.showScrollRight,onClick:()=>this.onScrollBtnClick("right")},e("q2-icon",{key:"9270d520507be9eee2abe16082f5ff339bf3d8c0",type:"chevron-right",label:"scroll right"}))),e("ul",{key:"b28080a7e211814886bb55cde2b770339ad64401",onScroll:this.checkScrollState,ref:t=>this.listElement=t,class:this.noPrint?"no-print":null,role:"tablist"},this.tabs.map(((t,a)=>this.generateTab(t,a))))),e("div",{key:"2209afe25d4d76ab41c7a12e16626d75e0108535",class:"tab-content"},e("slot",{key:"637744438c83fa75371fb10fbbfc3b438449f226",onSlotchange:()=>this.onSlotChange()})))}get hostElement(){return r(this)}static get watchers(){return{name:["nameObserver"],value:["valueObserver"]}}};d.style=b;export{d as q2_tab_container};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as a,h as e,F as i,g as r}from"./p-a5f18e27.js";import{c as n,l as o,o as s,i as c}from"./p-d24bb23e.js";const l="*{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 #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block;position:relative}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-1, var(--app-scale-1x, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));margin:var(--tct-tab-container-margin, var(--t-tab-container-margin, 0));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1x, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-background, var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent)));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:var(--tct-tab-section-font-size, inherit);padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background:var(--tct-tab-hover-background, var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit)));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentcolor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background:var(--tct-tab-active-background, var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit)))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) 0;padding:var(--tct-tab-container-content-padding, var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding))));background:var(--tct-tab-container-content-backgrond, none)}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-background:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left q2-icon,.btn-right q2-icon{--tct-icon-stroke-width:3}.btn-left{left:0}.btn-right{right:0}.tab-pane-badge{display:flex;justify-content:space-between;align-items:center}.tab-pane-badge q2-badge{margin-left:5px;margin-right:5px}";const b=l;const d=class{constructor(e){t(this,e);this.change=a(this,"change",7);this.settled=a(this,"settled",7);this.guid=n();this.lastScrolled=new Date(null).getTime();this.scheduledAfterRender=[];this.checkScrollState=()=>{if(!this.listElement)return;const{scrollLeft:t,scrollWidth:a,clientWidth:e}=this.listElement;this.scrollEnabled=a>e;this.showScrollLeft=t>0;this.showScrollRight=a>Math.ceil(t)+e};this.moveFocus=(t,a=true)=>{const e=this.tabs[t].value;const i=this.listElement.querySelector(`[data-value="${e}"]`);i.focus({preventScroll:a});const r=i.offsetLeft-this.listElement.clientWidth/2;this.listElement.scrollTo({left:r,behavior:"smooth"});return i};this.moveToAdjacentTab=(t,a)=>{const e=this.tabs.map((({value:t})=>t)).indexOf(t);let i;switch(a){case"next":i=Math.min(e+1,this.tabs.length-1);break;case"prev":i=Math.max(e-1,0);break;case"first":i=0;break;case"last":i=this.tabs.length-1;break}if(e===i)return;this.moveFocus(i,false)};this.onScrollBtnClick=t=>{const{scrollLeft:a,scrollWidth:e,clientWidth:i}=this.listElement;const r=Math.floor(i/2);let n=0;if(t==="left"){n=-Math.min(r,Math.abs(a))}else{n=Math.min(r,Math.abs(e-a-i))}this.listElement.scrollBy({left:n,behavior:"smooth"})};this.onSlotChange=()=>{this.checkScrollState()};this.onTabClick=t=>{const a=t.target.closest('button[role="tab"]').dataset.value;const e=this.value===a;if(e)return;this.change.emit({value:a})};this.onTabKeyDown=t=>{const a=t.target.dataset.value;switch(t.key){case"ArrowRight":t.preventDefault();this.moveToAdjacentTab(a,"next");break;case"ArrowLeft":t.preventDefault();this.moveToAdjacentTab(a,"prev");break;case"Home":t.preventDefault();this.moveToAdjacentTab(a,"first");break;case"End":t.preventDefault();this.moveToAdjacentTab(a,"last");break;case"Space":case"Enter":t.preventDefault();this.change.emit({value:a});break}};this.setTabs=()=>{this.tabs=this.tabPanes.map((({label:t,value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})=>({label:t&&o(t)||"",value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})))};this.updateTabData=()=>{this.updateTabPaneProps();this.setTabs()};this.updateTabPaneProps=()=>{this.tabPanes.forEach(((t,a)=>{t.selected=t.value===this.selectedTabValue;t.guid=this.guid;t.index=a}))};this.hasLeft=false;this.hasRight=false;this.scrollEnabled=false;this.showScrollLeft=false;this.showScrollRight=false;this.tabs=undefined;this.color=undefined;this.name=undefined;this.noPrint=false;this.type=undefined;this.value=undefined}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect();this.resizeObserver=null;this.mutationObserver=null}componentWillLoad(){const t=new MutationObserver(this.updateTabData);t.observe(this.hostElement,{childList:true,attributes:true});this.mutationObserver=t;this.resizeObserver=new ResizeObserver((()=>this.checkScrollState()));this.updateTabData()}componentDidLoad(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.observe(this.listElement);this.checkScrollState();s(this.hostElement);const a=this.tabs.findIndex((t=>t.value===this.value));this.scheduledAfterRender.push((()=>{const t=this.tabs.length>0;if(!t)return;const e=this.moveFocus(Math.max(a,0));this.value=e.dataset.value;e.blur()}))}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.settled.emit()}onBadge(){this.setTabs()}defaultChangeHandler(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}onFocus(t){if(!c(t,this.hostElement))return;const a=this.tabs.findIndex((t=>t.value===this.selectedTabValue));this.moveFocus(a)}onResize(){this.checkScrollState()}nameObserver(){this.updateTabData()}valueObserver(){this.updateTabData();this.scheduledAfterRender.push(this.resizeIframe);const t=this.tabs.findIndex((t=>t.value===this.value));if(t>-1){this.scheduledAfterRender.push((()=>this.moveFocus(t,false)))}}get selectedTabValue(){return this.value||this.tabPanes[0].value||""}get tabList(){return this.hostElement.shadowRoot.querySelector(".tab-list")}get tabPanes(){const t=this.hostElement.querySelectorAll("q2-tab-pane, tecton-tab-pane");if(t.length===0){return[]}return Array.from(t).filter((t=>t.name===this.name))}generateTab(t,a){const{label:i,value:r}=t;const n=this.selectedTabValue===r;return e("li",{role:"presentation"},e("button",{id:`tab-${this.guid}-${a}`,"data-value":r,"test-id":"tabLink",tabIndex:n?0:-1,role:"tab","aria-selected":n?"true":"false",onClick:this.onTabClick,onKeyDown:this.onTabKeyDown},t.badgeCount===undefined?i:this.generateTabWithBadge(t,n)))}generateTabWithBadge(t,a){let i;if(!t.badgeStatus&&a)i=t.badgeTheme||"primary";let r;if(t.badgeDescription)r=o(t.badgeDescription);else if(t.badgeStatus)r=o(`tecton.element.tab.pane.${t.badgeStatus}`,[t.badgeCount]);else r=o("tecton.element.tab.pane.new");return e("div",{class:"tab-pane-badge","aria-label":`${t.label}, ${t.badgeCount} ${r}`},t.label,e("q2-badge",{value:t.badgeCount,theme:i,status:t.badgeStatus}))}resizeIframe(){var t,a;return(a=(t=window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||a===void 0?void 0:a.call(t)}render(){return e(i,{key:"e9bbeb5cd9d825e3f3e2cba1430355cd0779c1b6"},e("div",{key:"9b210316901ff9f1392abad88405fa066a30b944",class:"tab-container"},this.scrollEnabled&&e(i,{key:"9c592b1eeab0d986cad1ec24a215fc2ece6198fd"},e("div",{key:"f325da6302ecd94daa09f828a6a9fb15d586c43c",class:"gradient-left",hidden:!this.showScrollLeft}),e("div",{key:"975be285e6b6360dfc6314e56709b8cd2a9dca6c",class:"gradient-right",hidden:!this.showScrollRight}),e("q2-btn",{key:"5aabeb8746b1f84c52a61878c78d649e6f236e0a",class:"btn-left",hidden:!this.showScrollLeft,onClick:()=>this.onScrollBtnClick("left")},e("q2-icon",{key:"a4f4a4135a413a7c8fb5e57f99c931387259c2d1",type:"chevron-left",label:"scroll left"})),e("q2-btn",{key:"28e232956147808308f6d39bd908a4f214bcb24f",class:"btn-right",hidden:!this.showScrollRight,onClick:()=>this.onScrollBtnClick("right")},e("q2-icon",{key:"70168892f00072e58735397cac08394db45508d4",type:"chevron-right",label:"scroll right"}))),e("ul",{key:"596da958258620ed6941f3da2d6804a6975be31e",onScroll:this.checkScrollState,ref:t=>this.listElement=t,class:this.noPrint?"no-print":null,role:"tablist"},this.tabs.map(((t,a)=>this.generateTab(t,a))))),e("div",{key:"7cd3a10965373908b45d7eb2da8aa6fda6724463",class:"tab-content"},e("slot",{key:"efdc096d3ba0186ccb9ac21f9ba84e3cfd0672d1",onSlotchange:()=>this.onSlotChange()})))}get hostElement(){return r(this)}static get watchers(){return{name:["nameObserver"],value:["valueObserver"]}}};d.style=b;export{d as q2_tab_container};
|
|
2
|
+
//# sourceMappingURL=p-4f6eebbf.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,F as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,F as o,g as a}from"./p-a5f18e27.js";import{c as r,o as n,i as s,e as d}from"./p-d24bb23e.js";const l='*{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 #0066cc)}: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{margin-top:var(--tct-scale-2, var(--app-scale-2x, 10px))}fieldset{padding:0;margin:0;border:0;position:relative}.label-row{display:grid;grid-template-columns:1fr 24px;grid-template-areas:"label icon";gap:var(--app-scale-1x, 5px)}.label-row q2-icon{grid-area:icon;margin-top:-2px;margin-bottom:-2px}.group-legend{font-weight:600}.optional-tag{margin-left:var(--tct-input-label-optional-margin-left, var(--t-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px))));color:var(--tct-input-label-optional-font-color, var(--t-input-label-optional-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77)))));font-size:var(--tct-input-label-optional-font-size, var(--t-input-label-optional-font-size, 12px));font-weight:var(--tct-input-label-optional-font-weight, var(--t-input-label-optional-font-weight, 400))}.tile-container,.tile-container .options-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-grow:1}.options-container{--comp-default-margin:var(--app-scale-1x, 5px) 0;--comp-options-margin:var(--tct-radio-group-options-margin, var(--t-radio-group-options-margin, var(--comp-default-margin, 5px 0)));margin:var(--comp-options-margin);padding:var(--tct-radio-group-options-padding, var(--t-radio-group-options-padding, var(--app-scale-1x, 5px)));border-width:1px;border-color:transparent;border-style:solid;border-radius:var(--tct-border-radius-1, var(--app-border-radius-1, 4px))}:host([has-error]) .options-container{border-color:var(--tct-input-error-border-color, var(--const-stoplight-alert, #d20a0a))}:host([has-error=false]) .options-container{border-color:transparent}.tile-container.left{justify-content:start}.tile-container.right{justify-content:end}.tile-container .options-container{gap:var(--tct-radio-group-tile-gap, var(--t-radio-group-tile-gap, var(--app-scale-2x, 10px)));justify-content:inherit}';const p=l;const h=class{constructor(i){t(this,i);this.change=e(this,"change",7);this._id=`radio-group-${r()}`;this.checkedRadioExists=()=>{const t=this.radioElements.find((t=>t.checked===true))||undefined;if(!this.value&&!!t){this.value=t.value}else if(!this.value&&!t){if(this.radioElements.length)this.radioElements[0].tabIndex=0}};this.onInnerRadioChange=t=>{t.stopImmediatePropagation();if(this.readonly)return;this.change.emit({value:t.detail.value})};this.onMutationObserved=()=>{this.valueUpdated(this.value);this.nameUpdated();this.disabledUpdated();this.readonlyUpdated();this.tileLayoutUpdated(this.tileLayout)};this.disabled=false;this.hasError=false;this.hideLabel=undefined;this.label=undefined;this.name=undefined;this.optional=undefined;this.readonly=undefined;this.tileAlignment="center";this.tilelayout=undefined;this.tileLayout=undefined;this.value=undefined}componentWillLoad(){this.checkedRadioExists();this.onMutationObserved();this.handleDeprecatedTilelayout(this.tilelayout)}componentDidLoad(){const t=new MutationObserver(this.onMutationObserved);t.observe(this.hostElement,{childList:true});this.mutationObserver=t;n(this.hostElement);this.checkedRadioExists()}onHostElementChange(t){if(t.target===this.hostElement){if(!this.hostElement.onchange){this.value=t.detail.value}}}delegateFocus(t){if(!s(t,this.hostElement))return;const e=this.hostElement.querySelector("q2-radio[checked]")||this.hostElement.querySelector("q2-radio");e===null||e===void 0?void 0:e.dispatchEvent(new FocusEvent("focus"))}keydownHandler(t){const e=t.target.getAttribute("value")||this.value;let i=this.radioElements.findIndex((i=>i===t.target||i.getAttribute("value")===e));let o=0;switch(t.key){case"ArrowLeft":case"ArrowUp":o=-1;break;case"ArrowRight":case"ArrowDown":o=1;break}if(i===-1||o===0){return}i+=o;i=o<0?Math.max(0,i):Math.min(this.radioElements.length-1,i);t.preventDefault();if(!this.readonly){this.value=this.radioElements[i].value}this.radioElements[i].dispatchEvent(new FocusEvent("focus"))}setValue(t){this.radioElements.forEach((e=>{if(t!==e.value)return;e.click()}))}disabledUpdated(){this.radioElements.forEach((t=>{t.groupDisabled=this.disabled}))}nameUpdated(){this.radioElements.forEach((t=>{t.name=this.name||this._id}))}readonlyUpdated(){const t=this.readonly;this.radioElements.forEach((e=>e.groupReadonly=t))}handleDeprecatedTilelayout(t){if(typeof t!=="boolean")return;this.tileLayout=t;this.tilelayout=undefined}tileLayoutUpdated(t){this.radioElements.forEach((e=>{e.groupTileLayout=t}))}valueUpdated(t){this.radioElements.forEach((e=>{e.checked=t===e.value;if(!e.checked){e.removeAttribute("checked");e.tabIndex=-1}else if(e.checked){e.tabIndex=0}}))}get inputId(){return this._id}get radioElements(){return Array.from(this.hostElement.querySelectorAll("q2-radio"))}inputDom(){if(this.tileLayout){const{tileAlignment:t}=this;const e=["left","center","right"].includes(t)?t:"center";return i("div",{class:`tile-container ${e}`},i("div",{class:"options-container"},i("slot",null)))}else{return i("div",{class:"options-container"},i("slot",null))}}render(){const t=this.label||this.optional||this.readonly;const{hasError:e}=this;const a=t||e;return i(o,{key:"3536f41532e1cc18001e2e1d8f8f4c9e8223dd67"},a&&i("div",{key:"4ec07666943cb4b0a25ad2dd70fdc26b072affb0",class:"label-row"},t&&i("div",{key:"0442988f9575a44d0d0de1e7885be9239e06ba64",class:"group-legend"},d(this)),e&&i("q2-icon",{key:"e455ee3337a5e401c5a4a4a9f8276bff189b26f2",type:"error","test-id":"iconError"})),i("fieldset",{key:"2f849878d217decc154d9d04fa8182b3d1b1d79a",onChange:this.onInnerRadioChange,"aria-invalid":`${this.hasError}`},t&&i("legend",{key:"95e7c2f3fcb370048801b4f6be953047011a83f2",class:"sr"},d(this)),this.inputDom()))}get hostElement(){return a(this)}static get watchers(){return{disabled:["disabledUpdated"],name:["nameUpdated"],readonly:["readonlyUpdated"],tilelayout:["handleDeprecatedTilelayout"],tileLayout:["tileLayoutUpdated"],value:["valueUpdated"]}}};h.style=p;export{h as q2_radio_group};
|
|
2
|
+
//# sourceMappingURL=p-60940069.entry.js.map
|