q2-tecton-elements 1.55.4 → 1.55.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.json +421 -363
- package/dist/cjs/{index-e0aba375.js → index-f69742cf.js} +1 -1
- package/dist/cjs/{index-e0aba375.js.map → index-f69742cf.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +11 -3
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +32 -31
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +6 -7
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-form.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-modal.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list_2.cjs.entry.js +64 -61
- package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-select.cjs.entry.js +80 -10
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +6 -6
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- 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-btn/q2-btn.js +4 -0
- package/dist/collection/components/q2-btn/q2-btn.js.map +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-calendar/test/q2-calendar-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- 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 +8 -8
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +33 -31
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +34 -32
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +12 -7
- package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +5 -5
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js +4 -0
- package/dist/collection/components/q2-icon/q2-icon.js.map +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-message/q2-message.js +1 -1
- package/dist/collection/components/q2-modal/q2-modal.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +7 -7
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- 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 +64 -60
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.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-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +96 -14
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +327 -0
- package/dist/collection/components/q2-select/test/q2-select-test.spec.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-tag/test/q2-tag-test.e2e.js +5 -0
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +2 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/components/q2-action-group2.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-btn2.js +4 -0
- package/dist/components/q2-btn2.js.map +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 +32 -31
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +7 -8
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-form.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-icon2.js +4 -0
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-modal.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 +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +63 -60
- 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-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +84 -14
- 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 +2 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/{index-3bb7a785.js → index-3184c760.js} +1 -1
- package/dist/esm/{index-3bb7a785.js.map → index-3184c760.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +11 -3
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -2
- package/dist/esm/q2-carousel-pane.entry.js +2 -2
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +32 -31
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +6 -7
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-item_3.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-modal.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +2 -2
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-option-list_2.entry.js +64 -61
- package/dist/esm/q2-option-list_2.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-select.entry.js +82 -12
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/{index-3bb7a785.js → index-3184c760.js} +1 -1
- package/dist/q2-tecton-elements/q2-action-group.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +62 -62
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +24 -16
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +13 -13
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-data-table.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-detail.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +34 -32
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +26 -17
- package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +18 -18
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-message.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-modal.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +30 -30
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js +138 -127
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +24 -24
- package/dist/q2-tecton-elements/q2-pill.entry.js +13 -13
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +33 -33
- package/dist/q2-tecton-elements/q2-radio.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-select.entry.js +146 -88
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +28 -28
- package/dist/q2-tecton-elements/q2-stepper.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-tag.entry.js +5 -5
- 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/q2-tecton-elements/q2-textarea.entry.js +3 -2
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
- package/dist/types/components/q2-action-group/q2-action-group.d.ts +1 -0
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
- package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +327 -0
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +95 -0
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +261 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +180 -0
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +141 -0
- package/dist/types/components/q2-icon/q2-icon.d.ts +1 -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 +100 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +117 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +143 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +256 -0
- package/dist/types/components/q2-stepper/q2-stepper.d.ts +61 -0
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +68 -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 +91 -0
- package/dist/types/utils/action-sheet.d.ts +12 -0
- package/package.json +4 -3
- /package/dist/q2-tecton-elements/{index-3bb7a785.js.map → index-3184c760.js.map} +0 -0
- /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, c as t, h as a, g as i } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { d as n } from "./index-
|
|
3
|
+
import { d as n } from "./index-3184c760.js";
|
|
4
4
|
|
|
5
5
|
import { l as s, a as r, o, i as d, w as l, j as c } from "./index-f2a66217.js";
|
|
6
6
|
|
|
@@ -1276,11 +1276,11 @@ const y = class {
|
|
|
1276
1276
|
// #region Render Methods
|
|
1277
1277
|
render() {
|
|
1278
1278
|
return a("click-elsewhere", {
|
|
1279
|
-
key: "
|
|
1279
|
+
key: "76bda9101bf99ae49ab8f04be2d5743dc6b110a8",
|
|
1280
1280
|
class: this.open ? "dropdown-open" : undefined,
|
|
1281
1281
|
onChange: this.onClickElsewhere
|
|
1282
1282
|
}, this.renderInputField(), a("q2-popover", {
|
|
1283
|
-
key: "
|
|
1283
|
+
key: "4e556602957d99a9e48127e647923f3e5719e950",
|
|
1284
1284
|
ref: e => this.popoverElement = e,
|
|
1285
1285
|
controlElement: this.innerInputContainer,
|
|
1286
1286
|
open: this.open,
|
|
@@ -99,7 +99,7 @@ const c = class {
|
|
|
99
99
|
render() {
|
|
100
100
|
const {label: e} = this;
|
|
101
101
|
return t(r, {
|
|
102
|
-
key: "
|
|
102
|
+
key: "cd1455adf662c5c746a4521da041ddfba07282a8",
|
|
103
103
|
class: this.generatePaneClass(this.currentPaneIndex),
|
|
104
104
|
tabIndex: this.isActivePane ? 0 : -1,
|
|
105
105
|
role: "group",
|
|
@@ -108,10 +108,10 @@ const c = class {
|
|
|
108
108
|
"aria-label": e ? n(e) : n("tecton.element.carousel.itemDescription", [ (this.currentPaneIndex + 1).toString(), (this.siblingCount || 0).toString() ]),
|
|
109
109
|
onClick: this.paneClicked
|
|
110
110
|
}, t("article", {
|
|
111
|
-
key: "
|
|
111
|
+
key: "5f3c81731a5ec90fcb5af184396d3e430be61b19",
|
|
112
112
|
class: "q2-carousel-pane-main-content"
|
|
113
113
|
}, t("slot", {
|
|
114
|
-
key: "
|
|
114
|
+
key: "556cf2a83bc1c6715b9693d1d9eaa651ba83785a"
|
|
115
115
|
})));
|
|
116
116
|
}
|
|
117
117
|
get hostElement() {
|
|
@@ -4572,7 +4572,7 @@ const F = 500;
|
|
|
4572
4572
|
let g = [ "q2-carousel-pagination-navigation-wrapper" ];
|
|
4573
4573
|
if (l) g = [ ...g, "evenly-space" ];
|
|
4574
4574
|
return i(s, {
|
|
4575
|
-
key: "
|
|
4575
|
+
key: "67d25d2920d5a952d2940cfdd6afa21e66c68abe",
|
|
4576
4576
|
id: `q2-carousel-${this.guid}`,
|
|
4577
4577
|
class: "q2-carousel-instance"
|
|
4578
4578
|
}, c ? this.renderInsufficientPanesDisplay() : i(n, null, e > 1 && i("div", {
|
|
@@ -4284,10 +4284,10 @@ const aa = class {
|
|
|
4284
4284
|
// #region Render Methods
|
|
4285
4285
|
render() {
|
|
4286
4286
|
return t("div", {
|
|
4287
|
-
key: "
|
|
4287
|
+
key: "9d314fbeaf3f97a5845fc7e7c990abfc1107dd45",
|
|
4288
4288
|
class: "container"
|
|
4289
4289
|
}, t("div", {
|
|
4290
|
-
key: "
|
|
4290
|
+
key: "4be51fb27a8307dd80a6872babfc4a520c14bde5",
|
|
4291
4291
|
ref: r => this.chartContainer = r,
|
|
4292
4292
|
class: "chart-container",
|
|
4293
4293
|
role: "img",
|
|
@@ -1439,10 +1439,10 @@ const Se = class {
|
|
|
1439
1439
|
// #region Render Methods
|
|
1440
1440
|
render() {
|
|
1441
1441
|
return r("div", {
|
|
1442
|
-
key: "
|
|
1442
|
+
key: "cd7321cfeb85ccdecc4028ec46933c5e4a5b21f5",
|
|
1443
1443
|
class: "container"
|
|
1444
1444
|
}, r("div", {
|
|
1445
|
-
key: "
|
|
1445
|
+
key: "54f6f0b9c291a126fdab28abd0ad54a9a03c058c",
|
|
1446
1446
|
ref: e => this.chartContainer = e,
|
|
1447
1447
|
class: "chart-container",
|
|
1448
1448
|
role: "img",
|
|
@@ -4483,15 +4483,15 @@ const Ee = class {
|
|
|
4483
4483
|
}
|
|
4484
4484
|
render() {
|
|
4485
4485
|
return i("click-elsewhere", {
|
|
4486
|
-
key: "
|
|
4486
|
+
key: "70caeadafd7c6d901e1689917c96285c7f208d53",
|
|
4487
4487
|
onChange: this.onClickElsewhere
|
|
4488
4488
|
}, i("figure", {
|
|
4489
|
-
key: "
|
|
4489
|
+
key: "8a826acfc19fd852554336a6eacdd42e4dd514e8"
|
|
4490
4490
|
}, i("div", {
|
|
4491
|
-
key: "
|
|
4491
|
+
key: "76a2b25fe85c4562e5faf61030b9ff43b6d531ad",
|
|
4492
4492
|
class: "container"
|
|
4493
4493
|
}, i("div", {
|
|
4494
|
-
key: "
|
|
4494
|
+
key: "16d64a7c69ae3f681d67c45bb832e4ccb443fc5f",
|
|
4495
4495
|
ref: t => this.chartContainer = t,
|
|
4496
4496
|
"aria-describedby": !this.isClickable ? "center-card-description" : undefined,
|
|
4497
4497
|
class: "chart-container",
|
|
@@ -4501,9 +4501,9 @@ const Ee = class {
|
|
|
4501
4501
|
tabIndex: !this.isClickable ? 0 : undefined,
|
|
4502
4502
|
onKeyDown: !this.isClickable ? this.onButtonKeyDown : undefined
|
|
4503
4503
|
}), this.renderCenterBlock()), this.showLegend && i("figcaption", {
|
|
4504
|
-
key: "
|
|
4504
|
+
key: "6e543ace8a71d24e3fb0144c825af22c79e8d0d7"
|
|
4505
4505
|
}, i("q2-legend", {
|
|
4506
|
-
key: "
|
|
4506
|
+
key: "8d7d38f4f720cec6b583a3c9bb17e8a8a80aa301",
|
|
4507
4507
|
class: "legend",
|
|
4508
4508
|
data: this.legendData,
|
|
4509
4509
|
format: this.format,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { r as t, c as e, h as r, F as o, g as
|
|
1
|
+
import { r as t, c as e, h as r, F as o, g as a } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { c as
|
|
3
|
+
import { c as i, f as s } from "./index-f2a66217.js";
|
|
4
4
|
|
|
5
5
|
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{--comp-default-checkbox-group-margin:var(--tct-checkbox-group-margin-top, var(--t-checkbox-group-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-checkbox-group-margin-bottom, var(--t-checkbox-group-margin-bottom, var(--app-scale-5x, 25px)));display:block;margin:var(--tct-checkbox-group-margin, var(--comp-default-checkbox-group-margin))}fieldset{padding:var(--tct-checkbox-group-fieldset-padding, 0);margin:0;border:0;position:relative}.label-row{display:grid;grid-template-columns:1fr 24px;grid-template-areas:"label icon";column-gap:var(--tct-checkbox-group-label-column-gap, var(--app-scale-2x, 10px))}.label-row q2-icon{grid-area:icon;margin-top:-2px;margin-bottom:-2px}.group-legend{font-weight:600}legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}.slot-container{margin:var(--app-scale-1x, 5px) 0;padding:var(--app-scale-1x, 5px);border-width:1px;border-color:transparent;border-style:solid;border-radius:var(--tct-checkbox-group-border-radius, var(--app-border-radius-1, 4px))}:host([has-error]) .slot-container{border-color:var(--tct-checkbox-group-error-border-color, var(--const-stoplight-alert, #d20a0a))}:host([has-error=false]) .slot-container{border-color:transparent}.optional-tag{margin-left:var(--tct-checkbox-group-label-optional-margin-left, var(--app-scale-1x, 5px));color:var(--tct-checkbox-group-label-optional-color, var(--t-checkbox-group-label-optional-color, var(--tct-a11y-color, var(--t-a11y-color, var(--tct-a11y-gray-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--t-gray-d1, var(--app-gray-d1, rgba(77, 77, 77, 0.77))))))))))));font-size:var(--tct-checkbox-group-label-optional-font-size, 12px);font-weight:var(--tct-checkbox-group-label-optional-font-weight, 400)}.flexed{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.flexed.left{justify-content:left}';
|
|
6
6
|
|
|
7
7
|
const c = n;
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const l = class {
|
|
10
10
|
constructor(r) {
|
|
11
11
|
t(this, r);
|
|
12
12
|
this.change = e(this, "change", 7);
|
|
13
13
|
// #region Own Properties
|
|
14
|
-
this._id = `checkbox-group-${
|
|
14
|
+
this._id = `checkbox-group-${i()}`;
|
|
15
15
|
this.onInnerCheckboxChange = t => {
|
|
16
16
|
t.stopImmediatePropagation();
|
|
17
17
|
const e = {};
|
|
@@ -128,28 +128,28 @@ const d = class {
|
|
|
128
128
|
const t = this.label || this.optional || this.readonly;
|
|
129
129
|
const e = t && !this.hideLabel || this.hasError;
|
|
130
130
|
return r(o, {
|
|
131
|
-
key: "
|
|
131
|
+
key: "e2e313379cf001e419e0f4af7852e09f16931d28"
|
|
132
132
|
}, e && r("div", {
|
|
133
|
-
key: "
|
|
133
|
+
key: "65dce898067eaacb01fcdffa8aefa7faed0aa3d7",
|
|
134
134
|
class: "label-row"
|
|
135
135
|
}, t && !this.hideLabel && r("div", {
|
|
136
|
-
key: "
|
|
136
|
+
key: "9c627891b5ca932a7ae6d7c519b387f339f3d3f0",
|
|
137
137
|
class: "group-legend"
|
|
138
138
|
}, s(this)), this.hasError && r("q2-icon", {
|
|
139
|
-
key: "
|
|
139
|
+
key: "940512e2c8b756743242356c8b189981a4f0b576",
|
|
140
140
|
type: "error",
|
|
141
141
|
"test-id": "iconError"
|
|
142
142
|
})), r("fieldset", {
|
|
143
|
-
key: "
|
|
143
|
+
key: "797c6e7b149685201dd3f8717a86674941801199",
|
|
144
144
|
onChange: this.onInnerCheckboxChange,
|
|
145
145
|
"aria-invalid": this.hasError ? `${this.hasError}` : undefined
|
|
146
146
|
}, t && r("legend", {
|
|
147
|
-
key: "
|
|
147
|
+
key: "817cf2050f2e7435782046802c7af359354f4d0f",
|
|
148
148
|
class: "sr-only"
|
|
149
149
|
}, s(this)), this.inputDom()));
|
|
150
150
|
}
|
|
151
151
|
get hostElement() {
|
|
152
|
-
return
|
|
152
|
+
return a(this);
|
|
153
153
|
}
|
|
154
154
|
static get watchers() {
|
|
155
155
|
return {
|
|
@@ -160,7 +160,7 @@ const d = class {
|
|
|
160
160
|
}
|
|
161
161
|
};
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
l.style = c;
|
|
164
164
|
|
|
165
|
-
export {
|
|
165
|
+
export { l as q2_checkbox_group };
|
|
166
166
|
//# sourceMappingURL=q2-checkbox-group.entry.js.map
|
|
@@ -174,10 +174,10 @@ const b = class {
|
|
|
174
174
|
const e = [ "label-text" ];
|
|
175
175
|
if (this.hideLabel) e.push("sr");
|
|
176
176
|
return t("div", {
|
|
177
|
-
key: "
|
|
177
|
+
key: "8cb9c126a850022c4e4305cbc62eaf036b41fc85",
|
|
178
178
|
class: "container"
|
|
179
179
|
}, t("input", {
|
|
180
|
-
key: "
|
|
180
|
+
key: "3c7bc46662dfc50ce3da872ac082930018c6c1f0",
|
|
181
181
|
ref: e => this.inputElement = e,
|
|
182
182
|
"aria-describedby": this.description ? "description" : undefined,
|
|
183
183
|
"aria-invalid": this.hasError === undefined ? undefined : `${this.hasError}`,
|
|
@@ -191,21 +191,21 @@ const b = class {
|
|
|
191
191
|
type: "checkbox",
|
|
192
192
|
value: this.value
|
|
193
193
|
}), t("label", {
|
|
194
|
-
key: "
|
|
194
|
+
key: "7e79d168122d18aa644bfae0f63b5556a5c1f4cf",
|
|
195
195
|
htmlFor: this._id,
|
|
196
196
|
class: "label-control",
|
|
197
197
|
"test-id": "checkboxButton"
|
|
198
198
|
}, this.renderCheckboxSVG()), t("div", {
|
|
199
|
-
key: "
|
|
199
|
+
key: "f0fb5ebd65dfd865a6a2874b223a1104b5dd38df",
|
|
200
200
|
class: e.join(" ")
|
|
201
201
|
}, t("label", {
|
|
202
|
-
key: "
|
|
202
|
+
key: "e9451e5975f6e6be66c395ec2bd45bc8aa3e3407",
|
|
203
203
|
"test-id": "checkboxLabel",
|
|
204
204
|
htmlFor: this._id
|
|
205
205
|
}, l(this.label), t("slot", {
|
|
206
|
-
key: "
|
|
206
|
+
key: "4f7d5eeaba7c621d0863cf18a45499eb692b1f9d"
|
|
207
207
|
}))), this.description && t("div", {
|
|
208
|
-
key: "
|
|
208
|
+
key: "644d733eaaed63f83147e102735b08f7e50d6457",
|
|
209
209
|
class: "description-text",
|
|
210
210
|
"test-id": "checkboxDescription",
|
|
211
211
|
id: "description"
|
|
@@ -113,22 +113,22 @@ const i = class {
|
|
|
113
113
|
render() {
|
|
114
114
|
const {hasPlusMinusSign: r, plusMinusSign: e, currencyIsFront: s, currencySymbol: n, shouldSuperscriptSymbol: i, amountCore: c, fraction: o, shouldSuperscriptFraction: a, readableCurrency: u, currencyClasses: l} = this;
|
|
115
115
|
return t("div", {
|
|
116
|
-
key: "
|
|
116
|
+
key: "4c2f61b4d19f3e88ad1319e12256badb43d0d52d",
|
|
117
117
|
"test-id": "q2CurrencyInner",
|
|
118
118
|
class: l,
|
|
119
119
|
"aria-label": u
|
|
120
120
|
}, r && t("span", {
|
|
121
|
-
key: "
|
|
121
|
+
key: "2f4e0438bba6109a8c20d91c277529725c0279c7"
|
|
122
122
|
}, e), s && t("span", {
|
|
123
|
-
key: "
|
|
123
|
+
key: "ebe11ebd4fd2d6ccbf42399ede792cc4040fe4df",
|
|
124
124
|
class: i ? "superscript" : ""
|
|
125
125
|
}, n), t("span", {
|
|
126
|
-
key: "
|
|
126
|
+
key: "80ea418779d3129251123d3149a029fd0b539165"
|
|
127
127
|
}, c), t("span", {
|
|
128
|
-
key: "
|
|
128
|
+
key: "425854a1827c3eb83bbc49e8742dd2a54c103ebd",
|
|
129
129
|
class: a ? "superscript" : ""
|
|
130
130
|
}, o), !s && t("span", {
|
|
131
|
-
key: "
|
|
131
|
+
key: "8f0ac5f4541a86e30ffd79ea298d4566cdb4328b",
|
|
132
132
|
class: i ? "superscript" : ""
|
|
133
133
|
}, n));
|
|
134
134
|
}
|
|
@@ -342,12 +342,12 @@ const i = class {
|
|
|
342
342
|
render() {
|
|
343
343
|
const {caption: t} = this;
|
|
344
344
|
return a("div", {
|
|
345
|
-
key: "
|
|
345
|
+
key: "3b83513a749562f7d9787103e4bad96b281da690",
|
|
346
346
|
class: "container"
|
|
347
347
|
}, a("table", {
|
|
348
|
-
key: "
|
|
348
|
+
key: "61142600c24e4dba06d9bcf06a0abdc5e424997c"
|
|
349
349
|
}, t && a("caption", {
|
|
350
|
-
key: "
|
|
350
|
+
key: "db2048dcbd52e6f2bc892634be354d2fe8fc4560",
|
|
351
351
|
class: this.hideCaption ? "sr" : undefined
|
|
352
352
|
}, t), this.renderTableColGroup(), this.renderTableHeader(), this.renderEmptyState(), this.renderTableRows()));
|
|
353
353
|
}
|
|
@@ -103,16 +103,16 @@ const n = class {
|
|
|
103
103
|
// #region Render Methods
|
|
104
104
|
render() {
|
|
105
105
|
return e("div", {
|
|
106
|
-
key: "
|
|
106
|
+
key: "95bb58a7421355483a20d8eb1e0f0716289246e4",
|
|
107
107
|
class: this.detailClasses
|
|
108
108
|
}, this.hasLabel && e("div", {
|
|
109
|
-
key: "
|
|
109
|
+
key: "35e8b3880bc8013160901a34f59d2d1d9c0ad954",
|
|
110
110
|
class: this.labelClasses,
|
|
111
111
|
"aria-describedby": !!this.description ? "label-description" : undefined
|
|
112
112
|
}, !!this.label ? s(this.label) : this.hasLabelSlotContent ? e("slot", {
|
|
113
113
|
name: "label"
|
|
114
114
|
}) : ""), this.hasDescripiton && e("div", {
|
|
115
|
-
key: "
|
|
115
|
+
key: "87face56b1ebe90c967bf6b0c026734c10871751",
|
|
116
116
|
id: "label-description",
|
|
117
117
|
class: this.descriptionClasses
|
|
118
118
|
}, !!this.description ? s(this.description) : this.hasDefaultSlotContent ? e("slot", null) : ""));
|
|
@@ -13,9 +13,17 @@ const f = class {
|
|
|
13
13
|
t(this, e);
|
|
14
14
|
var i;
|
|
15
15
|
this.dropdownItemSelector = "q2-dropdown-item:not([disabled]):not([separator])";
|
|
16
|
+
this.optionSelector = "q2-option:not([disabled]):not([separator])";
|
|
16
17
|
this.focusToggle = () => {
|
|
17
18
|
this.controlElement.focus();
|
|
18
19
|
};
|
|
20
|
+
this.handleFocusOut = t => {
|
|
21
|
+
var e;
|
|
22
|
+
const i = t.relatedTarget;
|
|
23
|
+
if ((e = this.popoverElement) === null || e === void 0 ? void 0 : e.contains(i)) return;
|
|
24
|
+
if (this.hostElement.contains(i)) return;
|
|
25
|
+
this.open = false;
|
|
26
|
+
};
|
|
19
27
|
this.onClickElsewhere = t => {
|
|
20
28
|
const e = t.target;
|
|
21
29
|
if (e.localName === "q2-option-list") {
|
|
@@ -28,6 +36,10 @@ const f = class {
|
|
|
28
36
|
e.open = false;
|
|
29
37
|
}
|
|
30
38
|
};
|
|
39
|
+
this.onPopoverState = t => {
|
|
40
|
+
if (t.detail.open) return;
|
|
41
|
+
this.controlElement.focus();
|
|
42
|
+
};
|
|
31
43
|
this.onToggleClick = async t => {
|
|
32
44
|
t.stopPropagation();
|
|
33
45
|
if (o(this)) {
|
|
@@ -46,17 +58,6 @@ const f = class {
|
|
|
46
58
|
this.optionList.handleExternalKeydown(t);
|
|
47
59
|
}
|
|
48
60
|
};
|
|
49
|
-
this.onPopoverState = t => {
|
|
50
|
-
if (t.detail.open) return;
|
|
51
|
-
this.controlElement.focus();
|
|
52
|
-
};
|
|
53
|
-
this.handleFocusOut = t => {
|
|
54
|
-
var e;
|
|
55
|
-
const i = t.relatedTarget;
|
|
56
|
-
if ((e = this.popoverElement) === null || e === void 0 ? void 0 : e.contains(i)) return;
|
|
57
|
-
if (this.hostElement.contains(i)) return;
|
|
58
|
-
this.open = false;
|
|
59
|
-
};
|
|
60
61
|
this.additionalContext = undefined;
|
|
61
62
|
this.alignment = undefined;
|
|
62
63
|
this.ariaLabel = undefined;
|
|
@@ -103,7 +104,9 @@ const f = class {
|
|
|
103
104
|
(e = this.popoverElement) === null || e === void 0 ? void 0 : e.scrollContainerTo({
|
|
104
105
|
top: 0
|
|
105
106
|
});
|
|
106
|
-
|
|
107
|
+
if (!t) {
|
|
108
|
+
this.optionList.setActiveElement(null);
|
|
109
|
+
}
|
|
107
110
|
}
|
|
108
111
|
// #endregion
|
|
109
112
|
// #region Public Methods API
|
|
@@ -223,11 +226,12 @@ const f = class {
|
|
|
223
226
|
};
|
|
224
227
|
}
|
|
225
228
|
_clickItem(t) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const i =
|
|
229
|
-
|
|
230
|
-
i.click();
|
|
229
|
+
var e;
|
|
230
|
+
if (!t || this.disabled) return;
|
|
231
|
+
const i = this.hostElement.querySelector(`${this.dropdownItemSelector}[value="${t}"]`);
|
|
232
|
+
const n = this.hostElement.querySelector(`${this.optionSelector}[value="${t}"]`);
|
|
233
|
+
(e = i === null || i === void 0 ? void 0 : i.shadowRoot.querySelector(".dropdown-item")) === null || e === void 0 ? void 0 : e.click();
|
|
234
|
+
n === null || n === void 0 ? void 0 : n.click();
|
|
231
235
|
}
|
|
232
236
|
async _handleActionSheet(t) {
|
|
233
237
|
const {value: e} = await s(this, t);
|
|
@@ -241,10 +245,6 @@ const f = class {
|
|
|
241
245
|
t.focus();
|
|
242
246
|
t.dispatchEvent(new FocusEvent("focus"));
|
|
243
247
|
}
|
|
244
|
-
navigateTo(t, e, i) {
|
|
245
|
-
var n, o;
|
|
246
|
-
return (o = (n = window.TectonElements) === null || n === void 0 ? void 0 : n.navigateTo) === null || o === void 0 ? void 0 : o.call(n, t, e, i);
|
|
247
|
-
}
|
|
248
248
|
orchestrateResolvedMenuItems() {
|
|
249
249
|
if (!this.name || !this.context) {
|
|
250
250
|
// this is only for contextual menu outlets
|
|
@@ -278,11 +278,17 @@ const f = class {
|
|
|
278
278
|
}
|
|
279
279
|
switch (t.action) {
|
|
280
280
|
case "navigateTo":
|
|
281
|
-
e = ()
|
|
281
|
+
e = function() {
|
|
282
|
+
var e, n;
|
|
283
|
+
return (n = (e = window.TectonElements) === null || e === void 0 ? void 0 : e.navigateTo) === null || n === void 0 ? void 0 : n.call(e, t.featureName, t.moduleName, i);
|
|
284
|
+
};
|
|
282
285
|
break;
|
|
283
286
|
|
|
284
287
|
case "showOverpanel":
|
|
285
|
-
e = ()
|
|
288
|
+
e = function() {
|
|
289
|
+
var e, n;
|
|
290
|
+
return (n = (e = window.TectonElements) === null || e === void 0 ? void 0 : e.showOverpanel) === null || n === void 0 ? void 0 : n.call(e, `${t.featureName}.${t.moduleName}`, i, undefined, true);
|
|
291
|
+
};
|
|
286
292
|
break;
|
|
287
293
|
}
|
|
288
294
|
const n = document.createElement("q2-dropdown-item");
|
|
@@ -293,21 +299,17 @@ const f = class {
|
|
|
293
299
|
return n;
|
|
294
300
|
}))));
|
|
295
301
|
}
|
|
296
|
-
showOverpanel(t, e) {
|
|
297
|
-
var i, n;
|
|
298
|
-
return (n = (i = window.TectonElements) === null || i === void 0 ? void 0 : i.showOverpanel) === null || n === void 0 ? void 0 : n.call(i, t, e, undefined, true);
|
|
299
|
-
}
|
|
300
302
|
// #endregion
|
|
301
303
|
// #region Render Methods
|
|
302
304
|
render() {
|
|
303
305
|
const t = this.toggleButtonProps;
|
|
304
306
|
return e("click-elsewhere", {
|
|
305
|
-
key: "
|
|
307
|
+
key: "e03e38faaa27ea520e902acbb03875e7cdec33c6",
|
|
306
308
|
class: this.open ? "dropdown-open" : "",
|
|
307
309
|
onChange: this.onClickElsewhere,
|
|
308
310
|
"test-id": "dropdownContainer"
|
|
309
311
|
}, e("q2-btn", {
|
|
310
|
-
key: "
|
|
312
|
+
key: "cb379d4cb55631a5ba148df0716bbc7e19575c70",
|
|
311
313
|
ref: t => this.controlElement = t,
|
|
312
314
|
class: t.className,
|
|
313
315
|
onClick: this.onToggleClick,
|
|
@@ -334,7 +336,7 @@ const f = class {
|
|
|
334
336
|
}) : " ", this.label && !this.hideLabel && e("span", {
|
|
335
337
|
class: "dropdown-button-text"
|
|
336
338
|
}, c(this.label)))), e("q2-popover", {
|
|
337
|
-
key: "
|
|
339
|
+
key: "bfad0484d72855a359bd45aeecf9107ff879e81b",
|
|
338
340
|
ref: t => this.popoverElement = t,
|
|
339
341
|
controlElement: this.controlElement,
|
|
340
342
|
open: this.open,
|
|
@@ -346,7 +348,7 @@ const f = class {
|
|
|
346
348
|
mode: this.popoverMode || undefined,
|
|
347
349
|
block: this.block
|
|
348
350
|
}, e("q2-option-list", {
|
|
349
|
-
key: "
|
|
351
|
+
key: "9b6f172128fa8265e92330b2333cbef501e060f1",
|
|
350
352
|
onPopoverState: this.onPopoverState,
|
|
351
353
|
id: "option-list",
|
|
352
354
|
ref: t => this.optionList = t,
|
|
@@ -354,7 +356,7 @@ const f = class {
|
|
|
354
356
|
label: c("tecton.element.optionList.label", [ this.optionListLabel ]),
|
|
355
357
|
"no-select": true
|
|
356
358
|
}, e("slot", {
|
|
357
|
-
key: "
|
|
359
|
+
key: "6460a769807e87648b6caea209d4f679035eb362"
|
|
358
360
|
}))));
|
|
359
361
|
}
|
|
360
362
|
get hostElement() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","focusToggle","controlElement","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","open","onToggleClick","async","shouldShowActionSheet","_handleActionSheet","toggle","onToggleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","key","preventDefault","optionList","handleExternalKeydown","onPopoverState","detail","handleFocusOut","relatedTarget","_a","contains","hostElement","window","Tecton","useActionSheets","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","delegateFocus","isEventFromElement","popoverStateChangeHandler","scrollContainerTo","top","setActiveElement","closePopover","disabled","_togglePopover","openPopover","selectItem","value","item","querySelector","itemBtn","shadowRoot","click","waitForNextPaint","selectRemoveItem","removeButton","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomControl","toggleButtonProps","allowedIntents","allowedTypes","type","includes","icon","fab","custom","intent","active","ariaExpanded","className","_clickItem","showActionSheetList","dispatchEvent","FocusEvent","navigateTo","featureName","moduleName","queryParams","_b","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","textContent","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","onFocusout","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align","popoverAlignment","mode","popoverMode","id","optionListLabel"],"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\nq2-icon {\n pointer-events: none;\n margin-block: -100px;\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 { shouldShowActionSheet, showActionSheetList } from '@/utils/action-sheet';\nimport { Component, ComponentInterface, Prop, Method, 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 optionList: HTMLQ2OptionListElement;\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 /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\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 /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string;\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 /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\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 * @info\n * Type must be \"custom\" to use the custom button slot.\n */\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 popoverStateChangeHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the dropdown `<button>` to hide the popover if it is showing.\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the dropdown `<button>` to show the popover if it is hidden.\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/).\n *\n * If the dropdown is closed, this will open it before selecting the item.\n *\n * If the value does not match any item's value, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n itemBtn.click();\n await waitForNextPaint();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/)'s *remove* button.\n *\n * If the dropdown is closed, this will open it before selecting the remove item button.\n *\n * Requirements for this method to work properly:\n * - Provided `value` matches the item's `value` property\n * - Item has the `removable` property enabled\n * @testOnly\n */\n @Method()\n async selectRemoveItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const removeButton = item?.shadowRoot.querySelector<HTMLButtonElement>('.remove-dropdown-item');\n if (!item || !removeButton || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n removeButton.click();\n await waitForNextPaint();\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 hasCustomControl() {\n return !!this.hostElement.querySelector('[slot=control]');\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 _clickItem(value: string) {\n if (!value) return;\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n itemBtn.click();\n }\n\n async _handleActionSheet(event: MouseEvent | KeyboardEvent) {\n const { value } = await showActionSheetList(this, event);\n this._clickItem(value);\n this.controlElement.focus();\n }\n\n _togglePopover() {\n const { controlElement } = this;\n if (!controlElement) return;\n controlElement.click();\n controlElement.focus();\n controlElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.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 HTMLElement;\n if (target.localName === 'q2-option-list') {\n event.stopPropagation();\n }\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 onToggleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n this._handleActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this._handleActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n onPopoverState = (event: CustomEvent<{ open: boolean; action: string }>) => {\n if (event.detail.open) return;\n this.controlElement.focus();\n };\n\n handleFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\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.textContent = 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 onFocusout={this.handleFocusOut}\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.hasCustomControl ? (\n <div\n test-id=\"dropdownControl\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"control\" />\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 max-height={this.popoverMaxHeight}\n onFocusout={this.handleFocusOut}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <q2-option-list\n onPopoverState={this.onPopoverState}\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n type=\"menu\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\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","optionSelector","focusToggle","controlElement","focus","handleFocusOut","event","relatedTarget","_a","popoverElement","contains","hostElement","open","onClickElsewhere","target","localName","stopPropagation","onPopoverState","detail","onToggleClick","async","shouldShowActionSheet","_handleActionSheet","toggle","onToggleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","key","preventDefault","optionList","handleExternalKeydown","window","Tecton","useActionSheets","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","delegateFocus","isEventFromElement","popoverStateChangeHandler","scrollContainerTo","top","setActiveElement","closePopover","disabled","_togglePopover","openPopover","selectItem","value","item","querySelector","itemBtn","shadowRoot","click","waitForNextPaint","selectRemoveItem","removeButton","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomControl","toggleButtonProps","allowedIntents","allowedTypes","type","includes","icon","fab","custom","intent","active","ariaExpanded","className","_clickItem","option","showActionSheetList","dispatchEvent","FocusEvent","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","TectonElements","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","queryParams","contextIdParamName","action","_b","navigateTo","call","featureName","moduleName","showOverpanel","undefined","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","textContent","onclick","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","onFocusout","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align","popoverAlignment","mode","popoverMode","id","optionListLabel"],"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\nq2-icon {\n pointer-events: none;\n margin-block: -100px;\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 { shouldShowActionSheet, showActionSheetList } from '@/utils/action-sheet';\nimport { Component, ComponentInterface, Prop, Method, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n/** @slot control - An optional slot to provide custom content as the clickable interface. The Dropdown **must** have `type=\"custom\"` to use the control slot. */\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 optionSelector: string = 'q2-option:not([disabled]):not([separator])';\n optionList: HTMLQ2OptionListElement;\n popoverElement?: HTMLQ2PopoverElement;\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 /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\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 /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string;\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 /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\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 * @info\n * Type must be \"custom\" to use the custom button slot.\n */\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 popoverStateChangeHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n if (!open) {\n this.optionList.setActiveElement(null);\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the dropdown `<button>` to hide the popover if it is showing.\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the dropdown `<button>` to show the popover if it is hidden.\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/).\n *\n * If the dropdown is closed, this will open it before selecting the item.\n *\n * If the value does not match any item's value, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n itemBtn.click();\n await waitForNextPaint();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/)'s *remove* button.\n *\n * If the dropdown is closed, this will open it before selecting the remove item button.\n *\n * Requirements for this method to work properly:\n * - Provided `value` matches the item's `value` property\n * - Item has the `removable` property enabled\n * @testOnly\n */\n @Method()\n async selectRemoveItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const removeButton = item?.shadowRoot.querySelector<HTMLButtonElement>('.remove-dropdown-item');\n if (!item || !removeButton || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n removeButton.click();\n await waitForNextPaint();\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 hasCustomControl() {\n return !!this.hostElement.querySelector('[slot=control]');\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 _clickItem(value: string) {\n if (!value || this.disabled) return;\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const option = this.hostElement.querySelector<HTMLQ2OptionElement>(`${this.optionSelector}[value=\"${value}\"]`);\n item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item')?.click();\n option?.click();\n }\n\n async _handleActionSheet(event: MouseEvent | KeyboardEvent) {\n const { value } = await showActionSheetList(this, event);\n this._clickItem(value);\n this.controlElement.focus();\n }\n\n _togglePopover() {\n const { controlElement } = this;\n if (!controlElement) return;\n controlElement.click();\n controlElement.focus();\n controlElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n handleFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLElement;\n if (target.localName === 'q2-option-list') {\n event.stopPropagation();\n }\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 onPopoverState = (event: CustomEvent<{ open: boolean; action: string }>) => {\n if (event.detail.open) return;\n this.controlElement.focus();\n };\n\n onToggleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n this._handleActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this._handleActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\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 = function () {\n return window.TectonElements?.navigateTo?.(\n menuItemData.featureName,\n menuItemData.moduleName,\n queryParams\n );\n };\n break;\n case 'showOverpanel':\n onClickFn = function () {\n return window.TectonElements?.showOverpanel?.(\n `${menuItemData.featureName}.${menuItemData.moduleName}`,\n queryParams,\n undefined,\n true\n );\n };\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.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\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 onFocusout={this.handleFocusOut}\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.hasCustomControl ? (\n <div\n test-id=\"dropdownControl\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"control\" />\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 max-height={this.popoverMaxHeight}\n onFocusout={this.handleFocusOut}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <q2-option-list\n onPopoverState={this.onPopoverState}\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n type=\"menu\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|