@vonage/vivid 5.15.1 → 5.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/definition.cjs +7 -207
- package/accordion/definition.js +2 -199
- package/accordion/index.cjs +4 -4
- package/accordion/index.js +93 -127
- package/accordion-item/definition.cjs +6 -146
- package/accordion-item/definition.js +2 -139
- package/accordion-item/index.cjs +1 -1
- package/accordion-item/index.js +6 -2
- package/action-group/definition.cjs +5 -69
- package/action-group/definition.js +1 -62
- package/action-group/index.cjs +4 -4
- package/action-group/index.js +16 -46
- package/alert/definition.cjs +6 -201
- package/alert/definition.js +2 -194
- package/alert/index.cjs +15 -15
- package/alert/index.js +90 -136
- package/audio-player/definition.cjs +6 -459
- package/audio-player/definition.js +2 -452
- package/audio-player/index.cjs +49 -49
- package/audio-player/index.js +234 -302
- package/avatar/definition.cjs +6 -117
- package/avatar/definition.js +2 -110
- package/avatar/index.cjs +14 -14
- package/avatar/index.js +44 -84
- package/badge/definition.cjs +6 -85
- package/badge/definition.js +2 -78
- package/badge/index.cjs +4 -4
- package/badge/index.js +21 -65
- package/banner/definition.cjs +6 -160
- package/banner/definition.js +2 -153
- package/banner/index.cjs +13 -13
- package/banner/index.js +76 -109
- package/breadcrumb/definition.cjs +5 -97
- package/breadcrumb/definition.js +1 -90
- package/breadcrumb/index.cjs +4 -4
- package/breadcrumb/index.js +33 -59
- package/breadcrumb-item/definition.cjs +7 -47
- package/breadcrumb-item/definition.js +3 -40
- package/breadcrumb-item/index.cjs +5 -5
- package/breadcrumb-item/index.js +20 -32
- package/bundled/affix.cjs +10 -10
- package/bundled/affix.js +44 -57
- package/bundled/anchored.cjs +3 -3
- package/bundled/anchored.js +47 -65
- package/bundled/aria.cjs +1 -1
- package/bundled/aria.js +6 -6
- package/bundled/attribute-binding-behaviour.cjs +1 -1
- package/bundled/attribute-binding-behaviour.js +17 -28
- package/bundled/base-color-picker.cjs +10 -10
- package/bundled/base-color-picker.js +115 -197
- package/bundled/base-progress.cjs +1 -1
- package/bundled/base-progress.js +29 -56
- package/bundled/breadcrumb-item.cjs +1 -1
- package/bundled/breadcrumb-item.js +11 -20
- package/bundled/button.cjs +1 -1
- package/bundled/button.js +65 -100
- package/bundled/calendar-event.cjs +1 -1
- package/bundled/calendar-event.js +11 -34
- package/bundled/calendar-picker.template.cjs +77 -77
- package/bundled/calendar-picker.template.js +2883 -3347
- package/bundled/char-count.cjs +7 -7
- package/bundled/char-count.js +31 -46
- package/bundled/children.cjs +1 -1
- package/bundled/children.js +27 -45
- package/bundled/class-names.cjs +1 -1
- package/bundled/class-names.js +8 -8
- package/bundled/data-grid.options.cjs +1 -1
- package/bundled/data-grid.options.js +22 -26
- package/bundled/decorate.cjs +1 -0
- package/bundled/decorate.js +9 -0
- package/bundled/definition.cjs +1 -39
- package/bundled/definition.js +5 -122
- package/bundled/definition10.cjs +18 -72
- package/bundled/definition10.js +74 -355
- package/bundled/definition11.cjs +10 -12
- package/bundled/definition11.js +28 -92
- package/bundled/definition12.cjs +72 -18
- package/bundled/definition12.js +192 -222
- package/bundled/definition13.cjs +20 -10
- package/bundled/definition13.js +55 -41
- package/bundled/definition14.cjs +5 -1
- package/bundled/definition14.js +11 -20
- package/bundled/definition15.cjs +19 -5
- package/bundled/definition15.js +77 -28
- package/bundled/definition16.cjs +12 -29
- package/bundled/definition16.js +80 -78
- package/bundled/definition17.cjs +17 -17
- package/bundled/definition17.js +126 -98
- package/bundled/definition18.cjs +87 -13
- package/bundled/definition18.js +423 -134
- package/bundled/definition19.cjs +5 -87
- package/bundled/definition19.js +16 -742
- package/bundled/definition2.cjs +8 -8
- package/bundled/definition2.js +79 -122
- package/bundled/definition20.cjs +26 -16
- package/bundled/definition20.js +153 -98
- package/bundled/definition21.cjs +29 -5
- package/bundled/definition21.js +174 -18
- package/bundled/definition22.cjs +38 -23
- package/bundled/definition22.js +70 -149
- package/bundled/definition3.cjs +1 -29
- package/bundled/definition3.js +183 -194
- package/bundled/definition4.cjs +24 -6
- package/bundled/definition4.js +88 -40
- package/bundled/definition5.cjs +30 -1
- package/bundled/definition5.js +48 -346
- package/bundled/definition6.cjs +28 -30
- package/bundled/definition6.js +110 -264
- package/bundled/definition7.cjs +6 -30
- package/bundled/definition7.js +22 -288
- package/bundled/definition8.cjs +13 -18
- package/bundled/definition8.js +150 -132
- package/bundled/definition9.cjs +12 -14
- package/bundled/definition9.js +67 -235
- package/bundled/delegates-aria.cjs +1 -1
- package/bundled/delegates-aria.js +56 -88
- package/bundled/dialog.cjs +1 -0
- package/bundled/dialog.js +6 -0
- package/bundled/divider.cjs +1 -1
- package/bundled/divider.js +16 -33
- package/bundled/dom.cjs +1 -1
- package/bundled/dom.js +5 -5
- package/bundled/enums.cjs +1 -1
- package/bundled/enums.js +16 -9
- package/bundled/floating-ui.dom.cjs +1 -1
- package/bundled/floating-ui.dom.js +953 -1238
- package/bundled/form-associated.cjs +1 -1
- package/bundled/form-associated.js +165 -318
- package/bundled/form-element.cjs +1 -1
- package/bundled/form-element.js +33 -55
- package/bundled/host-semantics.cjs +1 -1
- package/bundled/host-semantics.js +46 -69
- package/bundled/key-codes.cjs +1 -1
- package/bundled/key-codes.js +4 -16
- package/bundled/linkable.cjs +6 -6
- package/bundled/linkable.js +25 -45
- package/bundled/listbox.cjs +1 -1
- package/bundled/listbox.js +176 -351
- package/bundled/localized.cjs +1 -1
- package/bundled/localized.js +451 -564
- package/bundled/mixins.cjs +20 -20
- package/bundled/mixins.js +162 -210
- package/bundled/normalize.cjs +1 -1
- package/bundled/normalize.js +6 -6
- package/bundled/numbers.cjs +1 -1
- package/bundled/numbers.js +9 -11
- package/bundled/picker-field.template.cjs +23 -23
- package/bundled/picker-field.template.js +108 -171
- package/bundled/playbackRates.cjs +1 -1
- package/bundled/playbackRates.js +10 -10
- package/bundled/ref.cjs +1 -1
- package/bundled/ref.js +10 -14
- package/bundled/repeat.cjs +1 -1
- package/bundled/repeat.js +421 -552
- package/bundled/scrollIntoView.cjs +1 -1
- package/bundled/scrollIntoView.js +26 -29
- package/bundled/single-date-picker.cjs +1 -1
- package/bundled/single-date-picker.js +23 -38
- package/bundled/single-value-picker.cjs +1 -1
- package/bundled/single-value-picker.js +58 -86
- package/bundled/slider.template.cjs +14 -14
- package/bundled/slider.template.js +67 -78
- package/bundled/slottable-request.cjs +4 -4
- package/bundled/slottable-request.js +1907 -2904
- package/bundled/slotted.cjs +1 -1
- package/bundled/slotted.js +47 -97
- package/bundled/strings.cjs +1 -1
- package/bundled/strings.js +6 -6
- package/bundled/text-field.cjs +1 -1
- package/bundled/text-field.js +4 -4
- package/bundled/time-selection-picker.template.cjs +26 -26
- package/bundled/time-selection-picker.template.js +355 -552
- package/bundled/trapped-focus.cjs +1 -1
- package/bundled/trapped-focus.js +18 -25
- package/bundled/vivid-element.cjs +4 -5
- package/bundled/vivid-element.js +1781 -2806
- package/bundled/when.cjs +1 -1
- package/bundled/when.js +10 -10
- package/bundled/with-contextual-help.cjs +1 -1
- package/bundled/with-contextual-help.js +15 -31
- package/bundled/with-error-text.cjs +1 -1
- package/bundled/with-error-text.js +25 -38
- package/bundled/with-success-text.cjs +1 -1
- package/bundled/with-success-text.js +8 -15
- package/button/definition.cjs +6 -14
- package/button/definition.js +3 -4
- package/button/index.cjs +1 -1
- package/button/index.js +6 -2
- package/calendar/definition.cjs +5 -358
- package/calendar/definition.js +1 -351
- package/calendar/index.cjs +20 -20
- package/calendar/index.js +165 -427
- package/calendar-event/definition.cjs +6 -58
- package/calendar-event/definition.js +2 -51
- package/calendar-event/index.cjs +7 -7
- package/calendar-event/index.js +25 -41
- package/card/definition.cjs +6 -194
- package/card/definition.js +2 -187
- package/card/index.cjs +37 -34
- package/card/index.js +83 -133
- package/checkbox/definition.cjs +6 -209
- package/checkbox/definition.js +2 -202
- package/checkbox/index.cjs +1 -1
- package/checkbox/index.js +6 -2
- package/color-picker/definition.cjs +6 -1175
- package/color-picker/definition.js +2 -1168
- package/color-picker/index.cjs +94 -94
- package/color-picker/index.js +605 -737
- package/combobox/definition.cjs +6 -647
- package/combobox/definition.js +2 -640
- package/combobox/index.cjs +38 -37
- package/combobox/index.js +258 -458
- package/contextual-help/definition.cjs +6 -63
- package/contextual-help/definition.js +2 -56
- package/contextual-help/index.cjs +1 -1
- package/contextual-help/index.js +6 -2
- package/country/definition.cjs +6 -340
- package/country/definition.js +2 -333
- package/country/index.cjs +6 -6
- package/country/index.js +1209 -308
- package/custom-elements.json +1247 -1173
- package/data-grid/definition.cjs +10 -2350
- package/data-grid/definition.js +2 -2339
- package/data-grid/index.cjs +65 -65
- package/data-grid/index.js +644 -997
- package/date-picker/definition.cjs +6 -152
- package/date-picker/definition.js +2 -145
- package/date-picker/index.cjs +1 -1
- package/date-picker/index.js +66 -114
- package/date-range-picker/definition.cjs +6 -467
- package/date-range-picker/definition.js +2 -460
- package/date-range-picker/index.cjs +1 -1
- package/date-range-picker/index.js +218 -334
- package/date-time-picker/definition.cjs +6 -285
- package/date-time-picker/definition.js +2 -278
- package/date-time-picker/index.cjs +4 -4
- package/date-time-picker/index.js +116 -211
- package/dial-pad/definition.cjs +6 -460
- package/dial-pad/definition.js +2 -453
- package/dial-pad/index.cjs +44 -43
- package/dial-pad/index.js +197 -288
- package/dialog/definition.cjs +6 -349
- package/dialog/definition.js +2 -342
- package/dialog/index.cjs +28 -28
- package/dialog/index.js +148 -229
- package/divider/definition.cjs +6 -42
- package/divider/definition.js +2 -35
- package/divider/index.cjs +1 -1
- package/divider/index.js +5 -2
- package/elevation/definition.cjs +4 -11
- package/elevation/definition.js +2 -2
- package/elevation/index.cjs +1 -1
- package/elevation/index.js +5 -2
- package/empty-state/definition.cjs +6 -86
- package/empty-state/definition.js +2 -79
- package/empty-state/index.cjs +9 -9
- package/empty-state/index.js +28 -60
- package/fab/definition.cjs +6 -105
- package/fab/definition.js +2 -98
- package/fab/index.cjs +17 -17
- package/fab/index.js +46 -81
- package/file-picker/definition.cjs +6 -523
- package/file-picker/definition.js +2 -516
- package/file-picker/index.cjs +32 -29
- package/file-picker/index.js +254 -356
- package/header/definition.cjs +5 -78
- package/header/definition.js +1 -71
- package/header/index.cjs +6 -6
- package/header/index.js +28 -42
- package/icon/definition.cjs +5 -202
- package/icon/definition.js +1 -195
- package/icon/index.cjs +1 -1
- package/icon/index.js +5 -2
- package/index.cjs +353 -356
- package/index.js +79 -78
- package/layout/definition.cjs +5 -72
- package/layout/definition.js +1 -65
- package/layout/index.cjs +2 -2
- package/layout/index.js +10 -51
- package/lib/alert/alert.d.ts +0 -1
- package/lib/audio-player/audio-player.d.ts +0 -1
- package/lib/banner/banner.d.ts +0 -2
- package/lib/button/button.d.ts +0 -1
- package/lib/calendar/calendar.d.ts +0 -1
- package/lib/combobox/combobox.d.ts +0 -3
- package/lib/data-grid/data-grid-cell.d.ts +0 -3
- package/lib/data-grid/data-grid-row.d.ts +0 -3
- package/lib/data-grid/data-grid.d.ts +0 -1
- package/lib/date-time-picker/date-time-picker.d.ts +0 -4
- package/lib/dial-pad/dial-pad.d.ts +6 -2
- package/lib/dialog/dialog.d.ts +0 -1
- package/lib/fab/fab.d.ts +0 -1
- package/lib/file-picker/file-picker.d.ts +1 -1
- package/lib/icon/icon.d.ts +0 -1
- package/lib/menu/menu.d.ts +0 -1
- package/lib/option/option.d.ts +4 -1
- package/lib/pagination/pagination.d.ts +0 -4
- package/lib/popover/popover.d.ts +0 -5
- package/lib/rich-text-editor/rte/exports.d.ts +1 -0
- package/lib/rich-text-editor/rte/features/alignment.d.ts +1 -1
- package/lib/rich-text-editor/rte/features/character-count.d.ts +21 -0
- package/lib/rich-text-editor/rte/features/font-size-picker.d.ts +1 -1
- package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +1 -1
- package/lib/rich-text-editor/rte/features/keyboard-shortcuts.d.ts +1 -1
- package/lib/rich-text-editor/rte/features/text-color-picker.d.ts +1 -1
- package/lib/rich-text-editor/rte/public-interface.d.ts +6 -0
- package/lib/searchable-select/option-tag.d.ts +0 -1
- package/lib/split-button/split-button.d.ts +0 -2
- package/lib/tab/tab.d.ts +0 -2
- package/lib/table/definition.d.ts +2 -1
- package/lib/table/table-header-cell.d.ts +3 -0
- package/lib/table/table-sorting-button.d.ts +415 -0
- package/lib/table/table-sorting-button.template.d.ts +3 -0
- package/lib/tag/tag.d.ts +0 -2
- package/lib/toggletip/toggletip.d.ts +0 -1
- package/lib/tree-item/tree-item.d.ts +0 -2
- package/lib/tree-view/tree-view.d.ts +0 -1
- package/locales/de-DE.cjs +266 -550
- package/locales/de-DE.js +264 -548
- package/locales/en-GB.cjs +266 -382
- package/locales/en-GB.js +264 -380
- package/locales/en-US.cjs +266 -550
- package/locales/en-US.js +264 -548
- package/locales/ja-JP.cjs +266 -549
- package/locales/ja-JP.js +264 -547
- package/locales/zh-CN.cjs +266 -551
- package/locales/zh-CN.js +264 -549
- package/menu/definition.cjs +6 -393
- package/menu/definition.js +2 -386
- package/menu/index.cjs +1 -1
- package/menu/index.js +6 -2
- package/menu-item/definition.cjs +7 -14
- package/menu-item/definition.js +3 -3
- package/menu-item/index.cjs +1 -1
- package/menu-item/index.js +6 -2
- package/nav/definition.cjs +5 -27
- package/nav/definition.js +1 -20
- package/nav/index.cjs +3 -3
- package/nav/index.js +7 -10
- package/nav-disclosure/definition.cjs +6 -122
- package/nav-disclosure/definition.js +2 -115
- package/nav-disclosure/index.cjs +8 -8
- package/nav-disclosure/index.js +49 -86
- package/nav-item/definition.cjs +6 -79
- package/nav-item/definition.js +2 -72
- package/nav-item/index.cjs +2 -2
- package/nav-item/index.js +33 -58
- package/note/definition.cjs +6 -61
- package/note/definition.js +2 -54
- package/note/index.cjs +5 -5
- package/note/index.js +24 -38
- package/number-field/definition.cjs +6 -440
- package/number-field/definition.js +2 -433
- package/number-field/index.cjs +31 -31
- package/number-field/index.js +160 -328
- package/option/definition.cjs +6 -13
- package/option/definition.js +3 -3
- package/option/index.cjs +1 -1
- package/option/index.js +6 -2
- package/package.json +15 -17
- package/pagination/definition.cjs +6 -254
- package/pagination/definition.js +2 -247
- package/pagination/index.cjs +37 -37
- package/pagination/index.js +148 -186
- package/popover/definition.cjs +6 -356
- package/popover/definition.js +2 -349
- package/popover/index.cjs +16 -16
- package/popover/index.js +161 -239
- package/popup/definition.cjs +5 -13
- package/popup/definition.js +3 -4
- package/popup/index.cjs +1 -1
- package/popup/index.js +6 -2
- package/progress/definition.cjs +5 -87
- package/progress/definition.js +1 -80
- package/progress/index.cjs +9 -9
- package/progress/index.js +33 -55
- package/progress-ring/definition.cjs +5 -95
- package/progress-ring/definition.js +1 -88
- package/progress-ring/index.cjs +1 -1
- package/progress-ring/index.js +5 -2
- package/radio/definition.cjs +5 -227
- package/radio/definition.js +1 -220
- package/radio/index.cjs +1 -1
- package/radio/index.js +5 -2
- package/radio-group/definition.cjs +6 -361
- package/radio-group/definition.js +2 -354
- package/radio-group/index.cjs +10 -10
- package/radio-group/index.js +160 -242
- package/range-slider/definition.cjs +6 -632
- package/range-slider/definition.js +2 -625
- package/range-slider/index.cjs +41 -41
- package/range-slider/index.js +259 -429
- package/rich-text-editor/definition.cjs +33 -15694
- package/rich-text-editor/definition.js +3 -15662
- package/rich-text-editor/index.cjs +18 -18
- package/rich-text-editor/index.js +9129 -11475
- package/rich-text-view/definition.cjs +5 -171
- package/rich-text-view/definition.js +1 -164
- package/rich-text-view/index.cjs +1 -1
- package/rich-text-view/index.js +68 -102
- package/searchable-select/definition.cjs +5 -1401
- package/searchable-select/definition.js +2 -1395
- package/searchable-select/index.cjs +94 -94
- package/searchable-select/index.js +600 -1015
- package/select/definition.cjs +6 -1002
- package/select/definition.js +2 -995
- package/select/index.cjs +1 -1
- package/select/index.js +6 -2
- package/selectable-box/definition.cjs +6 -174
- package/selectable-box/definition.js +2 -167
- package/selectable-box/index.cjs +18 -18
- package/selectable-box/index.js +66 -127
- package/shared/foundation/test-utilities/fixture.d.ts +1 -1
- package/shared/patterns/linkable.d.ts +1 -1
- package/side-drawer/definition.cjs +5 -130
- package/side-drawer/definition.js +1 -123
- package/side-drawer/index.cjs +7 -7
- package/side-drawer/index.js +47 -89
- package/simple-color-picker/definition.cjs +6 -225
- package/simple-color-picker/definition.js +2 -218
- package/simple-color-picker/index.cjs +15 -15
- package/simple-color-picker/index.js +98 -135
- package/slider/definition.cjs +6 -499
- package/slider/definition.js +2 -492
- package/slider/index.cjs +1 -1
- package/slider/index.js +6 -2
- package/split-button/definition.cjs +6 -176
- package/split-button/definition.js +2 -169
- package/split-button/index.cjs +15 -15
- package/split-button/index.js +74 -135
- package/status/definition.cjs +6 -82
- package/status/definition.js +2 -75
- package/status/index.cjs +7 -7
- package/status/index.js +35 -52
- package/switch/definition.cjs +6 -148
- package/switch/definition.js +2 -141
- package/switch/index.cjs +8 -8
- package/switch/index.js +48 -92
- package/tab/definition.cjs +6 -127
- package/tab/definition.js +2 -120
- package/tab/index.cjs +1 -1
- package/tab/index.js +6 -2
- package/tab-panel/definition.cjs +5 -29
- package/tab-panel/definition.js +1 -22
- package/tab-panel/index.cjs +1 -1
- package/tab-panel/index.js +5 -2
- package/table/definition.cjs +18 -174
- package/table/definition.js +3 -158
- package/table/index.cjs +19 -10
- package/table/index.js +74 -82
- package/tabs/definition.cjs +7 -467
- package/tabs/definition.js +2 -459
- package/tabs/index.cjs +11 -11
- package/tabs/index.js +169 -296
- package/tag/definition.cjs +6 -176
- package/tag/definition.js +2 -169
- package/tag/index.cjs +26 -26
- package/tag/index.js +64 -125
- package/tag-group/definition.cjs +5 -40
- package/tag-group/definition.js +1 -33
- package/tag-group/index.cjs +4 -4
- package/tag-group/index.js +10 -21
- package/text-area/definition.cjs +6 -355
- package/text-area/definition.js +2 -348
- package/text-area/index.cjs +11 -11
- package/text-area/index.js +153 -260
- package/text-field/definition.cjs +6 -423
- package/text-field/definition.js +2 -416
- package/text-field/index.cjs +1 -1
- package/text-field/index.js +6 -2
- package/time-picker/definition.cjs +7 -43
- package/time-picker/definition.js +3 -36
- package/time-picker/index.cjs +1 -1
- package/time-picker/index.js +24 -29
- package/toggletip/definition.cjs +6 -159
- package/toggletip/definition.js +2 -152
- package/toggletip/index.cjs +1 -1
- package/toggletip/index.js +6 -2
- package/tooltip/definition.cjs +6 -139
- package/tooltip/definition.js +2 -132
- package/tooltip/index.cjs +1 -1
- package/tooltip/index.js +6 -2
- package/tree-item/definition.cjs +6 -13
- package/tree-item/definition.js +3 -3
- package/tree-item/index.cjs +1 -1
- package/tree-item/index.js +6 -2
- package/tree-view/definition.cjs +6 -302
- package/tree-view/definition.js +2 -295
- package/tree-view/index.cjs +11 -11
- package/tree-view/index.js +145 -174
- package/unbundled/affix.cjs +89 -62
- package/unbundled/affix.js +58 -55
- package/unbundled/anchored.cjs +87 -94
- package/unbundled/anchored.js +74 -90
- package/unbundled/attribute-binding-behaviour.cjs +37 -42
- package/unbundled/attribute-binding-behaviour.js +31 -40
- package/unbundled/base-color-picker.cjs +226 -275
- package/unbundled/base-color-picker.js +214 -272
- package/unbundled/base-progress.cjs +63 -78
- package/unbundled/base-progress.js +57 -76
- package/unbundled/breadcrumb-item.cjs +24 -28
- package/unbundled/breadcrumb-item.js +18 -26
- package/unbundled/button.cjs +115 -166
- package/unbundled/button.js +109 -164
- package/unbundled/calendar-event.cjs +28 -41
- package/unbundled/calendar-event.js +22 -39
- package/unbundled/calendar-picker.template.cjs +4967 -792
- package/unbundled/calendar-picker.template.js +4907 -781
- package/unbundled/char-count.cjs +50 -80
- package/unbundled/char-count.js +44 -78
- package/unbundled/chunk.cjs +28 -0
- package/unbundled/data-grid.options.cjs +80 -29
- package/unbundled/data-grid.options.js +51 -23
- package/unbundled/decorate.cjs +14 -0
- package/unbundled/decorate.js +9 -0
- package/unbundled/definition.cjs +42 -405
- package/unbundled/definition.js +24 -399
- package/unbundled/definition10.cjs +253 -0
- package/unbundled/definition10.js +229 -0
- package/unbundled/definition11.cjs +397 -0
- package/unbundled/definition11.js +379 -0
- package/unbundled/definition12.cjs +317 -0
- package/unbundled/definition12.js +287 -0
- package/unbundled/definition13.cjs +321 -0
- package/unbundled/definition13.js +303 -0
- package/unbundled/definition14.cjs +406 -0
- package/unbundled/definition14.js +388 -0
- package/unbundled/definition15.cjs +107 -0
- package/unbundled/definition15.js +89 -0
- package/unbundled/definition16.cjs +63 -0
- package/unbundled/definition16.js +45 -0
- package/unbundled/definition17.cjs +151 -0
- package/unbundled/definition17.js +133 -0
- package/unbundled/definition18.cjs +47 -0
- package/unbundled/definition18.js +35 -0
- package/unbundled/definition19.cjs +98 -0
- package/unbundled/definition19.js +80 -0
- package/unbundled/definition2.cjs +180 -220
- package/unbundled/definition2.js +162 -215
- package/unbundled/definition20.cjs +56 -0
- package/unbundled/definition20.js +43 -0
- package/unbundled/definition21.cjs +304 -0
- package/unbundled/definition21.js +285 -0
- package/unbundled/definition22.cjs +179 -0
- package/unbundled/definition22.js +161 -0
- package/unbundled/definition23.cjs +161 -0
- package/unbundled/definition23.js +143 -0
- package/unbundled/definition24.cjs +157 -0
- package/unbundled/definition24.js +139 -0
- package/unbundled/definition25.cjs +75 -0
- package/unbundled/definition25.js +57 -0
- package/unbundled/definition26.cjs +363 -0
- package/unbundled/definition26.js +345 -0
- package/unbundled/definition27.cjs +137 -0
- package/unbundled/definition27.js +119 -0
- package/unbundled/definition28.cjs +538 -0
- package/unbundled/definition28.js +520 -0
- package/unbundled/definition29.cjs +236 -0
- package/unbundled/definition29.js +212 -0
- package/unbundled/definition3.cjs +131 -284
- package/unbundled/definition3.js +113 -279
- package/unbundled/definition30.cjs +559 -0
- package/unbundled/definition30.js +541 -0
- package/unbundled/definition31.cjs +1265 -0
- package/unbundled/definition31.js +1247 -0
- package/unbundled/definition32.cjs +1908 -0
- package/unbundled/definition32.js +1866 -0
- package/unbundled/definition33.cjs +346 -0
- package/unbundled/definition33.js +256 -0
- package/unbundled/definition34.cjs +46 -0
- package/unbundled/definition34.js +33 -0
- package/unbundled/definition35.cjs +152 -0
- package/unbundled/definition35.js +134 -0
- package/unbundled/definition36.cjs +426 -0
- package/unbundled/definition36.js +408 -0
- package/unbundled/definition37.cjs +247 -0
- package/unbundled/definition37.js +229 -0
- package/unbundled/definition38.cjs +411 -0
- package/unbundled/definition38.js +393 -0
- package/unbundled/definition39.cjs +299 -0
- package/unbundled/definition39.js +281 -0
- package/unbundled/definition4.cjs +186 -205
- package/unbundled/definition4.js +162 -200
- package/unbundled/definition40.cjs +81 -0
- package/unbundled/definition40.js +63 -0
- package/unbundled/definition41.cjs +100 -0
- package/unbundled/definition41.js +82 -0
- package/unbundled/definition42.cjs +468 -0
- package/unbundled/definition42.js +450 -0
- package/unbundled/definition43.cjs +86 -0
- package/unbundled/definition43.js +68 -0
- package/unbundled/definition44.cjs +60 -0
- package/unbundled/definition44.js +41 -0
- package/unbundled/definition45.cjs +124 -0
- package/unbundled/definition45.js +106 -0
- package/unbundled/definition46.cjs +85 -0
- package/unbundled/definition46.js +67 -0
- package/unbundled/definition47.cjs +52 -0
- package/unbundled/definition47.js +31 -0
- package/unbundled/definition48.cjs +69 -0
- package/unbundled/definition48.js +51 -0
- package/unbundled/definition49.cjs +377 -0
- package/unbundled/definition49.js +359 -0
- package/unbundled/definition5.cjs +69 -298
- package/unbundled/definition5.js +44 -293
- package/unbundled/definition50.cjs +246 -0
- package/unbundled/definition50.js +228 -0
- package/unbundled/definition51.cjs +337 -0
- package/unbundled/definition51.js +319 -0
- package/unbundled/definition52.cjs +86 -0
- package/unbundled/definition52.js +67 -0
- package/unbundled/definition53.cjs +193 -0
- package/unbundled/definition53.js +174 -0
- package/unbundled/definition54.cjs +297 -0
- package/unbundled/definition54.js +279 -0
- package/unbundled/definition55.cjs +510 -0
- package/unbundled/definition55.js +492 -0
- package/unbundled/definition56.cjs +3659 -0
- package/unbundled/definition56.js +3478 -0
- package/unbundled/definition57.cjs +837 -0
- package/unbundled/definition57.js +819 -0
- package/unbundled/definition58.cjs +147 -0
- package/unbundled/definition58.js +129 -0
- package/unbundled/definition59.cjs +1081 -0
- package/unbundled/definition59.js +1063 -0
- package/unbundled/definition6.cjs +88 -56
- package/unbundled/definition6.js +69 -52
- package/unbundled/definition60.cjs +149 -0
- package/unbundled/definition60.js +131 -0
- package/unbundled/definition61.cjs +116 -0
- package/unbundled/definition61.js +97 -0
- package/unbundled/definition62.cjs +213 -0
- package/unbundled/definition62.js +195 -0
- package/unbundled/definition63.cjs +159 -0
- package/unbundled/definition63.js +141 -0
- package/unbundled/definition64.cjs +86 -0
- package/unbundled/definition64.js +68 -0
- package/unbundled/definition65.cjs +126 -0
- package/unbundled/definition65.js +107 -0
- package/unbundled/definition66.cjs +49 -0
- package/unbundled/definition66.js +28 -0
- package/unbundled/definition67.cjs +119 -0
- package/unbundled/definition67.js +101 -0
- package/unbundled/definition68.cjs +374 -0
- package/unbundled/definition68.js +349 -0
- package/unbundled/definition69.cjs +57 -0
- package/unbundled/definition69.js +38 -0
- package/unbundled/definition7.cjs +190 -0
- package/unbundled/definition7.js +166 -0
- package/unbundled/definition70.cjs +155 -0
- package/unbundled/definition70.js +137 -0
- package/unbundled/definition71.cjs +302 -0
- package/unbundled/definition71.js +284 -0
- package/unbundled/definition72.cjs +48 -0
- package/unbundled/definition72.js +37 -0
- package/unbundled/definition73.cjs +171 -0
- package/unbundled/definition73.js +147 -0
- package/unbundled/definition74.cjs +232 -0
- package/unbundled/definition74.js +213 -0
- package/unbundled/definition75.cjs +533 -0
- package/unbundled/definition75.js +513 -0
- package/unbundled/definition8.cjs +63 -0
- package/unbundled/definition8.js +44 -0
- package/unbundled/definition9.cjs +183 -0
- package/unbundled/definition9.js +165 -0
- package/unbundled/delegates-aria.cjs +90 -131
- package/unbundled/delegates-aria.js +77 -127
- package/unbundled/dialog.cjs +15 -0
- package/unbundled/dialog.js +10 -0
- package/unbundled/divider.cjs +42 -50
- package/unbundled/divider.js +30 -47
- package/unbundled/enums.cjs +166 -107
- package/unbundled/enums.js +95 -94
- package/unbundled/form-associated.cjs +408 -463
- package/unbundled/form-associated.js +396 -460
- package/unbundled/form-element.cjs +74 -83
- package/unbundled/form-element.js +68 -81
- package/unbundled/host-semantics.cjs +70 -89
- package/unbundled/host-semantics.js +57 -85
- package/unbundled/key-codes.cjs +16 -10
- package/unbundled/key-codes.js +5 -7
- package/unbundled/linkable.cjs +35 -56
- package/unbundled/linkable.js +27 -52
- package/unbundled/listbox.cjs +363 -465
- package/unbundled/listbox.js +357 -463
- package/unbundled/localized.cjs +79 -74
- package/unbundled/localized.js +61 -70
- package/unbundled/mixins.cjs +222 -223
- package/unbundled/mixins.js +186 -211
- package/unbundled/picker-field.template.cjs +188 -217
- package/unbundled/picker-field.template.js +165 -208
- package/unbundled/playbackRates.cjs +18 -11
- package/unbundled/playbackRates.js +13 -9
- package/unbundled/scrollIntoView.cjs +38 -43
- package/unbundled/scrollIntoView.js +33 -41
- package/unbundled/single-date-picker.cjs +48 -45
- package/unbundled/single-date-picker.js +43 -43
- package/unbundled/single-value-picker.cjs +106 -114
- package/unbundled/single-value-picker.js +101 -112
- package/unbundled/slider.template.cjs +107 -73
- package/unbundled/slider.template.js +67 -62
- package/unbundled/slottable-request.cjs +145 -3700
- package/unbundled/slottable-request.js +98 -3681
- package/unbundled/text-field.cjs +9 -5
- package/unbundled/text-field.js +4 -3
- package/unbundled/time-selection-picker.template.cjs +611 -755
- package/unbundled/time-selection-picker.template.js +554 -742
- package/unbundled/trapped-focus.cjs +45 -35
- package/unbundled/trapped-focus.js +34 -32
- package/unbundled/vivid-element.cjs +281 -274
- package/unbundled/vivid-element.js +239 -266
- package/unbundled/with-contextual-help.cjs +35 -39
- package/unbundled/with-contextual-help.js +29 -37
- package/unbundled/with-error-text.cjs +45 -55
- package/unbundled/with-error-text.js +39 -53
- package/unbundled/with-success-text.cjs +18 -22
- package/unbundled/with-success-text.js +12 -20
- package/video-player/definition.cjs +5 -69835
- package/video-player/definition.js +1 -69828
- package/video-player/index.cjs +44 -39
- package/video-player/index.js +23517 -35507
- package/visually-hidden/definition.cjs +5 -30
- package/visually-hidden/definition.js +1 -23
- package/visually-hidden/index.cjs +1 -1
- package/visually-hidden/index.js +5 -2
- package/vivid.api.json +331 -1874
- package/bundled/index.cjs +0 -1
- package/bundled/index.js +0 -6
- package/unbundled/_commonjsHelpers.cjs +0 -40
- package/unbundled/_commonjsHelpers.js +0 -36
- package/unbundled/index.cjs +0 -11
- package/unbundled/index.js +0 -9
package/unbundled/listbox.cjs
CHANGED
|
@@ -1,466 +1,364 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
require("./chunk.cjs");
|
|
2
|
+
const require_vivid_element = require("./vivid-element.cjs");
|
|
3
|
+
const require_decorate = require("./decorate.cjs");
|
|
4
|
+
const require_definition = require("./definition29.cjs");
|
|
5
|
+
let _microsoft_fast_element = require("@microsoft/fast-element");
|
|
6
|
+
let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
|
|
7
|
+
//#region src/shared/foundation/listbox/listbox.ts
|
|
8
|
+
var Listbox = class Listbox extends require_vivid_element.VividElement {
|
|
9
|
+
constructor(..._args) {
|
|
10
|
+
super(..._args);
|
|
11
|
+
this._options = [];
|
|
12
|
+
this.selectedIndex = -1;
|
|
13
|
+
this.selectedOptions = [];
|
|
14
|
+
this.shouldSkipFocus = false;
|
|
15
|
+
this.typeaheadBuffer = "";
|
|
16
|
+
this.typeaheadExpired = true;
|
|
17
|
+
this.typeaheadTimeout = -1;
|
|
18
|
+
this._activeDescendant = null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The first selected option.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
get firstSelectedOption() {
|
|
26
|
+
return this.selectedOptions[0] ?? null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The number of options.
|
|
30
|
+
*
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
get length() {
|
|
34
|
+
return this.options.length;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The list of options.
|
|
38
|
+
*
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
get options() {
|
|
42
|
+
_microsoft_fast_element.Observable.track(this, "options");
|
|
43
|
+
return this._options;
|
|
44
|
+
}
|
|
45
|
+
set options(value) {
|
|
46
|
+
const prev = this._options;
|
|
47
|
+
this._options = value;
|
|
48
|
+
_microsoft_fast_element.Observable.notify(this, "options");
|
|
49
|
+
if (this.$fastController.isConnected) {
|
|
50
|
+
const newSelectedIndex = this._newDefaultSelectedIndex(prev, value, this.selectedIndex);
|
|
51
|
+
if (newSelectedIndex !== null) this.selectedIndex = newSelectedIndex;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static {
|
|
55
|
+
this.slottedOptionFilter = (n) => require_definition.isListboxOption(n) && !n.hidden;
|
|
56
|
+
}
|
|
57
|
+
static {
|
|
58
|
+
this.TYPE_AHEAD_TIMEOUT_MS = 1e3;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Handle click events for listbox options.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
clickHandler(e) {
|
|
66
|
+
const captured = e.target.closest(`option,[role=option],[data-vvd-component=option]`);
|
|
67
|
+
if (captured && !captured.disabled) {
|
|
68
|
+
this.selectedIndex = this.options.indexOf(captured);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Ensures that the provided option is focused and scrolled into view.
|
|
74
|
+
*
|
|
75
|
+
* @param optionToFocus - The option to focus
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
focusAndScrollOptionIntoView(optionToFocus = this.firstSelectedOption) {
|
|
79
|
+
if (this.contains(document.activeElement) && optionToFocus !== null) {
|
|
80
|
+
optionToFocus.focus();
|
|
81
|
+
requestAnimationFrame(() => {
|
|
82
|
+
optionToFocus.scrollIntoView({ block: "nearest" });
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Handles `focusin` actions for the component. When the component receives focus,
|
|
88
|
+
* the list of selected options is refreshed and the first selected option is scrolled
|
|
89
|
+
* into view.
|
|
90
|
+
*
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
focusinHandler(e) {
|
|
94
|
+
if (!this.shouldSkipFocus && e.target === e.currentTarget) {
|
|
95
|
+
this.setSelectedOptions();
|
|
96
|
+
this.focusAndScrollOptionIntoView();
|
|
97
|
+
}
|
|
98
|
+
this.shouldSkipFocus = false;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Returns the options which match the current typeahead buffer.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
getTypeaheadMatches() {
|
|
106
|
+
const pattern = this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&");
|
|
107
|
+
const re = new RegExp(`^${pattern}`, "gi");
|
|
108
|
+
return this.options.filter((o) => o.text.trim().match(re));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Finds the index of the next non-disabled option starting from the given index.
|
|
112
|
+
*
|
|
113
|
+
* @param fromIndex - The index to start searching from (inclusive)
|
|
114
|
+
* @returns The index of the next selectable option, or -1 if none found
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
getNextSelectableIndex(fromIndex) {
|
|
118
|
+
const nextSelectableOption = this.options.reduce((nextSelectableOption, thisOption, index) => !nextSelectableOption && !thisOption.disabled && index >= fromIndex ? thisOption : nextSelectableOption, null);
|
|
119
|
+
return this.options.indexOf(nextSelectableOption);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Finds the index of the previous non-disabled option starting from the given index.
|
|
123
|
+
*
|
|
124
|
+
* @param fromIndex - The index to start searching from (inclusive)
|
|
125
|
+
* @returns The index of the previous selectable option, or -1 if none found
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
128
|
+
getPreviousSelectableIndex(fromIndex) {
|
|
129
|
+
const previousSelectableOption = this.options.reduceRight((previousSelectableOption, thisOption, index) => !previousSelectableOption && !thisOption.disabled && index <= fromIndex ? thisOption : previousSelectableOption, null);
|
|
130
|
+
return this.options.indexOf(previousSelectableOption);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Handles external changes to child options.
|
|
134
|
+
*
|
|
135
|
+
* @param source - the source object
|
|
136
|
+
* @param propertyName - the property
|
|
137
|
+
*
|
|
138
|
+
* @internal
|
|
139
|
+
*/
|
|
140
|
+
handleChange(source, propertyName) {
|
|
141
|
+
switch (propertyName) {
|
|
142
|
+
case "selected":
|
|
143
|
+
/* v8 ignore else -- @preserve */
|
|
144
|
+
if (Listbox.slottedOptionFilter(source)) this.selectedIndex = this.options.indexOf(source);
|
|
145
|
+
this.setSelectedOptions();
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Moves focus to an option whose label matches characters typed by the user.
|
|
151
|
+
* Consecutive keystrokes are batched into a buffer of search text used
|
|
152
|
+
* to match against the set of options. If `TYPE_AHEAD_TIMEOUT_MS` passes
|
|
153
|
+
* between consecutive keystrokes, the search restarts.
|
|
154
|
+
*
|
|
155
|
+
* @param key - the key to be evaluated
|
|
156
|
+
*
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
handleTypeAhead(key) {
|
|
160
|
+
/* v8 ignore else -- @preserve */
|
|
161
|
+
if (this.typeaheadTimeout) window.clearTimeout(this.typeaheadTimeout);
|
|
162
|
+
this.typeaheadTimeout = window.setTimeout(() => this.typeaheadExpired = true, Listbox.TYPE_AHEAD_TIMEOUT_MS);
|
|
163
|
+
this.typeaheadBuffer = `${this.typeaheadExpired ? "" : this.typeaheadBuffer}${key}`;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Handles `keydown` actions for listbox navigation and typeahead.
|
|
167
|
+
*
|
|
168
|
+
* @internal
|
|
169
|
+
*/
|
|
170
|
+
keydownHandler(e) {
|
|
171
|
+
if (this.disabled) return true;
|
|
172
|
+
this.shouldSkipFocus = false;
|
|
173
|
+
const key = e.key;
|
|
174
|
+
switch (key) {
|
|
175
|
+
case _microsoft_fast_web_utilities.keyHome:
|
|
176
|
+
/* v8 ignore else -- @preserve */
|
|
177
|
+
if (!e.shiftKey) {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
this.selectFirstOption();
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
case _microsoft_fast_web_utilities.keyArrowDown:
|
|
183
|
+
/* v8 ignore else -- @preserve */
|
|
184
|
+
if (!e.shiftKey) {
|
|
185
|
+
e.preventDefault();
|
|
186
|
+
this.selectNextOption();
|
|
187
|
+
}
|
|
188
|
+
break;
|
|
189
|
+
case _microsoft_fast_web_utilities.keyArrowUp:
|
|
190
|
+
/* v8 ignore else -- @preserve */
|
|
191
|
+
if (!e.shiftKey) {
|
|
192
|
+
e.preventDefault();
|
|
193
|
+
this.selectPreviousOption();
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
case _microsoft_fast_web_utilities.keyEnd:
|
|
197
|
+
e.preventDefault();
|
|
198
|
+
this.selectLastOption();
|
|
199
|
+
break;
|
|
200
|
+
case _microsoft_fast_web_utilities.keyTab:
|
|
201
|
+
this.focusAndScrollOptionIntoView();
|
|
202
|
+
return true;
|
|
203
|
+
case _microsoft_fast_web_utilities.keyEnter:
|
|
204
|
+
case _microsoft_fast_web_utilities.keyEscape: return true;
|
|
205
|
+
case _microsoft_fast_web_utilities.keySpace:
|
|
206
|
+
/* v8 ignore else -- @preserve */
|
|
207
|
+
if (this.typeaheadExpired) return true;
|
|
208
|
+
default:
|
|
209
|
+
/* v8 ignore else -- @preserve */
|
|
210
|
+
if (key.length === 1) this.handleTypeAhead(`${key}`);
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Prevents `focusin` events from firing before `click` events when the
|
|
216
|
+
* element is unfocused.
|
|
217
|
+
*
|
|
218
|
+
* @internal
|
|
219
|
+
*/
|
|
220
|
+
mousedownHandler(_) {
|
|
221
|
+
this.shouldSkipFocus = !this.contains(document.activeElement);
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Updates the list of selected options when the `selectedIndex` changes.
|
|
226
|
+
*
|
|
227
|
+
* @param prev - the previous selected index value
|
|
228
|
+
* @param next - the current selected index value
|
|
229
|
+
*
|
|
230
|
+
* @internal
|
|
231
|
+
*/
|
|
232
|
+
selectedIndexChanged(prev, next) {
|
|
233
|
+
const validNext = this._validSelectedIndex(next);
|
|
234
|
+
if (next !== validNext) {
|
|
235
|
+
this.selectedIndex = validNext;
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
this.setSelectedOptions();
|
|
239
|
+
}
|
|
240
|
+
_validSelectedIndex(index) {
|
|
241
|
+
return index > this.options.length - 1 || index < -1 ? -1 : index;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Updates the selectedness of each option when the list of selected options changes.
|
|
245
|
+
*
|
|
246
|
+
* @internal
|
|
247
|
+
*/
|
|
248
|
+
selectedOptionsChanged(_, next) {
|
|
249
|
+
const filteredNext = next.filter(Listbox.slottedOptionFilter);
|
|
250
|
+
this.options.forEach((o) => {
|
|
251
|
+
const notifier = _microsoft_fast_element.Observable.getNotifier(o);
|
|
252
|
+
notifier.unsubscribe(this, "selected");
|
|
253
|
+
o.selected = filteredNext.includes(o);
|
|
254
|
+
notifier.subscribe(this, "selected");
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Moves focus to the first selectable option.
|
|
259
|
+
*
|
|
260
|
+
* @public
|
|
261
|
+
*/
|
|
262
|
+
selectFirstOption() {
|
|
263
|
+
/* v8 ignore else -- @preserve */
|
|
264
|
+
if (!this.disabled) this.selectedIndex = this.options.findIndex((o) => !o.disabled);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Moves focus to the last selectable option.
|
|
268
|
+
*
|
|
269
|
+
* @internal
|
|
270
|
+
*/
|
|
271
|
+
selectLastOption() {
|
|
272
|
+
/* v8 ignore else -- @preserve */
|
|
273
|
+
if (!this.disabled) this.selectedIndex = (0, _microsoft_fast_web_utilities.findLastIndex)(this.options, (o) => !o.disabled);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Moves focus to the next selectable option.
|
|
277
|
+
*
|
|
278
|
+
* @internal
|
|
279
|
+
*/
|
|
280
|
+
selectNextOption() {
|
|
281
|
+
/* v8 ignore else -- @preserve */
|
|
282
|
+
if (!this.disabled && this.selectedIndex < this.options.length - 1) {
|
|
283
|
+
const nextIndex = this.getNextSelectableIndex(this.selectedIndex + 1);
|
|
284
|
+
if (nextIndex !== -1) this.selectedIndex = nextIndex;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Moves focus to the previous selectable option.
|
|
289
|
+
*
|
|
290
|
+
* @internal
|
|
291
|
+
*/
|
|
292
|
+
selectPreviousOption() {
|
|
293
|
+
/* v8 ignore else -- @preserve */
|
|
294
|
+
if (!this.disabled && this.selectedIndex > 0) {
|
|
295
|
+
const prevIndex = this.getPreviousSelectableIndex(this.selectedIndex - 1);
|
|
296
|
+
if (prevIndex !== -1) this.selectedIndex = prevIndex;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
_newDefaultSelectedIndex(prev, next, currentSelectedIndex) {
|
|
300
|
+
for (const [index, newOption] of next.entries()) if (this._isDefaultSelected(newOption) && !prev.includes(newOption)) return index;
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
_isDefaultSelected(option) {
|
|
304
|
+
return option.defaultSelected;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Sets an option as selected and gives it focus.
|
|
308
|
+
*
|
|
309
|
+
* @public
|
|
310
|
+
*/
|
|
311
|
+
setSelectedOptions() {
|
|
312
|
+
this.selectedOptions = this.selectedIndex !== -1 ? [this.options[this.selectedIndex]] : [];
|
|
313
|
+
this._activeDescendant = this.firstSelectedOption?.id ?? "";
|
|
314
|
+
this.focusAndScrollOptionIntoView();
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Updates the list of options and resets the selected option when the slotted option content changes.
|
|
318
|
+
*
|
|
319
|
+
* @internal
|
|
320
|
+
*/
|
|
321
|
+
slottedOptionsChanged(_, next) {
|
|
322
|
+
this.options = next.reduce((options, item) => {
|
|
323
|
+
/* v8 ignore else -- @preserve */
|
|
324
|
+
if (require_definition.isListboxOption(item)) options.push(item);
|
|
325
|
+
return options;
|
|
326
|
+
}, []);
|
|
327
|
+
const setSize = `${this.options.length}`;
|
|
328
|
+
this.options.forEach((option, index) => {
|
|
329
|
+
if (!option.id) option.id = (0, _microsoft_fast_web_utilities.uniqueId)("option-");
|
|
330
|
+
option.ariaPosInSet = `${index + 1}`;
|
|
331
|
+
option.ariaSetSize = setSize;
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Updates the filtered list of options when the typeahead buffer changes.
|
|
336
|
+
*
|
|
337
|
+
* @internal
|
|
338
|
+
*/
|
|
339
|
+
typeaheadBufferChanged(_prev, _next) {
|
|
340
|
+
if (this.$fastController.isConnected) {
|
|
341
|
+
const typeaheadMatches = this.getTypeaheadMatches();
|
|
342
|
+
/* v8 ignore else -- @preserve */
|
|
343
|
+
if (typeaheadMatches.length) {
|
|
344
|
+
const selectedIndex = this.options.indexOf(typeaheadMatches[0]);
|
|
345
|
+
/* v8 ignore else -- @preserve */
|
|
346
|
+
if (selectedIndex > -1) this.selectedIndex = selectedIndex;
|
|
347
|
+
}
|
|
348
|
+
this.typeaheadExpired = false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
16
351
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* `mousedown` event is used to skip that initial focus.
|
|
31
|
-
*
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
this.shouldSkipFocus = false;
|
|
35
|
-
this.typeaheadBuffer = "";
|
|
36
|
-
/**
|
|
37
|
-
* Flag for the typeahead timeout expiration.
|
|
38
|
-
*
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
this.typeaheadExpired = true;
|
|
42
|
-
/**
|
|
43
|
-
* The timeout ID for the typeahead handler.
|
|
44
|
-
*
|
|
45
|
-
* @internal
|
|
46
|
-
*/
|
|
47
|
-
this.typeaheadTimeout = -1;
|
|
48
|
-
this._activeDescendant = null;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* The first selected option.
|
|
52
|
-
*
|
|
53
|
-
* @internal
|
|
54
|
-
*/
|
|
55
|
-
get firstSelectedOption() {
|
|
56
|
-
return this.selectedOptions[0] ?? null;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* The number of options.
|
|
60
|
-
*
|
|
61
|
-
* @public
|
|
62
|
-
*/
|
|
63
|
-
get length() {
|
|
64
|
-
return this.options.length;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* The list of options.
|
|
68
|
-
*
|
|
69
|
-
* @public
|
|
70
|
-
*/
|
|
71
|
-
get options() {
|
|
72
|
-
fastElement.Observable.track(this, "options");
|
|
73
|
-
return this._options;
|
|
74
|
-
}
|
|
75
|
-
set options(value) {
|
|
76
|
-
const prev = this._options;
|
|
77
|
-
this._options = value;
|
|
78
|
-
fastElement.Observable.notify(this, "options");
|
|
79
|
-
if (this.$fastController.isConnected) {
|
|
80
|
-
const newSelectedIndex = this._newDefaultSelectedIndex(
|
|
81
|
-
prev,
|
|
82
|
-
value,
|
|
83
|
-
this.selectedIndex
|
|
84
|
-
);
|
|
85
|
-
if (newSelectedIndex !== null) {
|
|
86
|
-
this.selectedIndex = newSelectedIndex;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
static {
|
|
91
|
-
/**
|
|
92
|
-
* A static filter to include only selectable options.
|
|
93
|
-
*
|
|
94
|
-
* @param n - element to filter
|
|
95
|
-
* @public
|
|
96
|
-
*/
|
|
97
|
-
this.slottedOptionFilter = (n) => option_definition.isListboxOption(n) && !n.hidden;
|
|
98
|
-
}
|
|
99
|
-
static {
|
|
100
|
-
/**
|
|
101
|
-
* Typeahead timeout in milliseconds.
|
|
102
|
-
*
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
this.TYPE_AHEAD_TIMEOUT_MS = 1e3;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Handle click events for listbox options.
|
|
109
|
-
*
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
clickHandler(e) {
|
|
113
|
-
const captured = e.target.closest(
|
|
114
|
-
`option,[role=option],[data-vvd-component=option]`
|
|
115
|
-
);
|
|
116
|
-
if (captured && !captured.disabled) {
|
|
117
|
-
this.selectedIndex = this.options.indexOf(captured);
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Ensures that the provided option is focused and scrolled into view.
|
|
123
|
-
*
|
|
124
|
-
* @param optionToFocus - The option to focus
|
|
125
|
-
* @internal
|
|
126
|
-
*/
|
|
127
|
-
focusAndScrollOptionIntoView(optionToFocus = this.firstSelectedOption) {
|
|
128
|
-
if (this.contains(document.activeElement) && optionToFocus !== null) {
|
|
129
|
-
optionToFocus.focus();
|
|
130
|
-
requestAnimationFrame(() => {
|
|
131
|
-
optionToFocus.scrollIntoView({ block: "nearest" });
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Handles `focusin` actions for the component. When the component receives focus,
|
|
137
|
-
* the list of selected options is refreshed and the first selected option is scrolled
|
|
138
|
-
* into view.
|
|
139
|
-
*
|
|
140
|
-
* @internal
|
|
141
|
-
*/
|
|
142
|
-
focusinHandler(e) {
|
|
143
|
-
if (!this.shouldSkipFocus && e.target === e.currentTarget) {
|
|
144
|
-
this.setSelectedOptions();
|
|
145
|
-
this.focusAndScrollOptionIntoView();
|
|
146
|
-
}
|
|
147
|
-
this.shouldSkipFocus = false;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Returns the options which match the current typeahead buffer.
|
|
151
|
-
*
|
|
152
|
-
* @internal
|
|
153
|
-
*/
|
|
154
|
-
getTypeaheadMatches() {
|
|
155
|
-
const pattern = this.typeaheadBuffer.replace(
|
|
156
|
-
/[.*+\-?^${}()|[\]\\]/g,
|
|
157
|
-
"\\$&"
|
|
158
|
-
);
|
|
159
|
-
const re = new RegExp(`^${pattern}`, "gi");
|
|
160
|
-
return this.options.filter((o) => o.text.trim().match(re));
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Finds the index of the next non-disabled option starting from the given index.
|
|
164
|
-
*
|
|
165
|
-
* @param fromIndex - The index to start searching from (inclusive)
|
|
166
|
-
* @returns The index of the next selectable option, or -1 if none found
|
|
167
|
-
* @internal
|
|
168
|
-
*/
|
|
169
|
-
getNextSelectableIndex(fromIndex) {
|
|
170
|
-
const nextSelectableOption = this.options.reduce(
|
|
171
|
-
(nextSelectableOption2, thisOption, index) => !nextSelectableOption2 && !thisOption.disabled && index >= fromIndex ? thisOption : nextSelectableOption2,
|
|
172
|
-
null
|
|
173
|
-
);
|
|
174
|
-
return this.options.indexOf(nextSelectableOption);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Finds the index of the previous non-disabled option starting from the given index.
|
|
178
|
-
*
|
|
179
|
-
* @param fromIndex - The index to start searching from (inclusive)
|
|
180
|
-
* @returns The index of the previous selectable option, or -1 if none found
|
|
181
|
-
* @internal
|
|
182
|
-
*/
|
|
183
|
-
getPreviousSelectableIndex(fromIndex) {
|
|
184
|
-
const previousSelectableOption = this.options.reduceRight(
|
|
185
|
-
(previousSelectableOption2, thisOption, index) => !previousSelectableOption2 && !thisOption.disabled && index <= fromIndex ? thisOption : previousSelectableOption2,
|
|
186
|
-
null
|
|
187
|
-
);
|
|
188
|
-
return this.options.indexOf(previousSelectableOption);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Handles external changes to child options.
|
|
192
|
-
*
|
|
193
|
-
* @param source - the source object
|
|
194
|
-
* @param propertyName - the property
|
|
195
|
-
*
|
|
196
|
-
* @internal
|
|
197
|
-
*/
|
|
198
|
-
handleChange(source, propertyName) {
|
|
199
|
-
switch (propertyName) {
|
|
200
|
-
case "selected": {
|
|
201
|
-
if (_Listbox.slottedOptionFilter(source)) {
|
|
202
|
-
this.selectedIndex = this.options.indexOf(source);
|
|
203
|
-
}
|
|
204
|
-
this.setSelectedOptions();
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Moves focus to an option whose label matches characters typed by the user.
|
|
211
|
-
* Consecutive keystrokes are batched into a buffer of search text used
|
|
212
|
-
* to match against the set of options. If `TYPE_AHEAD_TIMEOUT_MS` passes
|
|
213
|
-
* between consecutive keystrokes, the search restarts.
|
|
214
|
-
*
|
|
215
|
-
* @param key - the key to be evaluated
|
|
216
|
-
*
|
|
217
|
-
* @internal
|
|
218
|
-
*/
|
|
219
|
-
handleTypeAhead(key) {
|
|
220
|
-
if (this.typeaheadTimeout) {
|
|
221
|
-
window.clearTimeout(this.typeaheadTimeout);
|
|
222
|
-
}
|
|
223
|
-
this.typeaheadTimeout = window.setTimeout(
|
|
224
|
-
() => this.typeaheadExpired = true,
|
|
225
|
-
_Listbox.TYPE_AHEAD_TIMEOUT_MS
|
|
226
|
-
);
|
|
227
|
-
this.typeaheadBuffer = `${this.typeaheadExpired ? "" : this.typeaheadBuffer}${key}`;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Handles `keydown` actions for listbox navigation and typeahead.
|
|
231
|
-
*
|
|
232
|
-
* @internal
|
|
233
|
-
*/
|
|
234
|
-
keydownHandler(e) {
|
|
235
|
-
if (this.disabled) {
|
|
236
|
-
return true;
|
|
237
|
-
}
|
|
238
|
-
this.shouldSkipFocus = false;
|
|
239
|
-
const key = e.key;
|
|
240
|
-
switch (key) {
|
|
241
|
-
// Select the first available option
|
|
242
|
-
case fastWebUtilities.keyHome: {
|
|
243
|
-
if (!e.shiftKey) {
|
|
244
|
-
e.preventDefault();
|
|
245
|
-
this.selectFirstOption();
|
|
246
|
-
}
|
|
247
|
-
break;
|
|
248
|
-
}
|
|
249
|
-
// Select the next selectable option
|
|
250
|
-
case fastWebUtilities.keyArrowDown: {
|
|
251
|
-
if (!e.shiftKey) {
|
|
252
|
-
e.preventDefault();
|
|
253
|
-
this.selectNextOption();
|
|
254
|
-
}
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
// Select the previous selectable option
|
|
258
|
-
case fastWebUtilities.keyArrowUp: {
|
|
259
|
-
if (!e.shiftKey) {
|
|
260
|
-
e.preventDefault();
|
|
261
|
-
this.selectPreviousOption();
|
|
262
|
-
}
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
// Select the last available option
|
|
266
|
-
case fastWebUtilities.keyEnd: {
|
|
267
|
-
e.preventDefault();
|
|
268
|
-
this.selectLastOption();
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
case fastWebUtilities.keyTab: {
|
|
272
|
-
this.focusAndScrollOptionIntoView();
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
case fastWebUtilities.keyEnter:
|
|
276
|
-
case fastWebUtilities.keyEscape:
|
|
277
|
-
return true;
|
|
278
|
-
// @ts-expect-error - fallthrough case
|
|
279
|
-
case fastWebUtilities.keySpace: {
|
|
280
|
-
if (this.typeaheadExpired) {
|
|
281
|
-
return true;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
// fallthrough:
|
|
285
|
-
default: {
|
|
286
|
-
if (key.length === 1) {
|
|
287
|
-
this.handleTypeAhead(`${key}`);
|
|
288
|
-
}
|
|
289
|
-
return true;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Prevents `focusin` events from firing before `click` events when the
|
|
295
|
-
* element is unfocused.
|
|
296
|
-
*
|
|
297
|
-
* @internal
|
|
298
|
-
*/
|
|
299
|
-
mousedownHandler(_) {
|
|
300
|
-
this.shouldSkipFocus = !this.contains(document.activeElement);
|
|
301
|
-
return true;
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Updates the list of selected options when the `selectedIndex` changes.
|
|
305
|
-
*
|
|
306
|
-
* @param prev - the previous selected index value
|
|
307
|
-
* @param next - the current selected index value
|
|
308
|
-
*
|
|
309
|
-
* @internal
|
|
310
|
-
*/
|
|
311
|
-
selectedIndexChanged(prev, next) {
|
|
312
|
-
const validNext = this._validSelectedIndex(next);
|
|
313
|
-
if (next !== validNext) {
|
|
314
|
-
this.selectedIndex = validNext;
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
this.setSelectedOptions();
|
|
318
|
-
}
|
|
319
|
-
_validSelectedIndex(index) {
|
|
320
|
-
const outOfRange = index > this.options.length - 1 || index < -1;
|
|
321
|
-
return outOfRange ? -1 : index;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Updates the selectedness of each option when the list of selected options changes.
|
|
325
|
-
*
|
|
326
|
-
* @internal
|
|
327
|
-
*/
|
|
328
|
-
selectedOptionsChanged(_, next) {
|
|
329
|
-
const filteredNext = next.filter(_Listbox.slottedOptionFilter);
|
|
330
|
-
this.options.forEach((o) => {
|
|
331
|
-
const notifier = fastElement.Observable.getNotifier(o);
|
|
332
|
-
notifier.unsubscribe(this, "selected");
|
|
333
|
-
o.selected = filteredNext.includes(o);
|
|
334
|
-
notifier.subscribe(this, "selected");
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Moves focus to the first selectable option.
|
|
339
|
-
*
|
|
340
|
-
* @public
|
|
341
|
-
*/
|
|
342
|
-
selectFirstOption() {
|
|
343
|
-
if (!this.disabled) {
|
|
344
|
-
this.selectedIndex = this.options.findIndex((o) => !o.disabled);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Moves focus to the last selectable option.
|
|
349
|
-
*
|
|
350
|
-
* @internal
|
|
351
|
-
*/
|
|
352
|
-
selectLastOption() {
|
|
353
|
-
if (!this.disabled) {
|
|
354
|
-
this.selectedIndex = fastWebUtilities.findLastIndex(this.options, (o) => !o.disabled);
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Moves focus to the next selectable option.
|
|
359
|
-
*
|
|
360
|
-
* @internal
|
|
361
|
-
*/
|
|
362
|
-
selectNextOption() {
|
|
363
|
-
if (!this.disabled && this.selectedIndex < this.options.length - 1) {
|
|
364
|
-
const nextIndex = this.getNextSelectableIndex(this.selectedIndex + 1);
|
|
365
|
-
if (nextIndex !== -1) {
|
|
366
|
-
this.selectedIndex = nextIndex;
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Moves focus to the previous selectable option.
|
|
372
|
-
*
|
|
373
|
-
* @internal
|
|
374
|
-
*/
|
|
375
|
-
selectPreviousOption() {
|
|
376
|
-
if (!this.disabled && this.selectedIndex > 0) {
|
|
377
|
-
const prevIndex = this.getPreviousSelectableIndex(this.selectedIndex - 1);
|
|
378
|
-
if (prevIndex !== -1) {
|
|
379
|
-
this.selectedIndex = prevIndex;
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
/// For this options change, determine if selectedIndex should change based on defaultSelected. Otherwise, returns null.
|
|
384
|
-
_newDefaultSelectedIndex(prev, next, currentSelectedIndex) {
|
|
385
|
-
for (const [index, newOption] of next.entries()) {
|
|
386
|
-
if (this._isDefaultSelected(newOption) && !prev.includes(newOption)) {
|
|
387
|
-
return index;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
return null;
|
|
391
|
-
}
|
|
392
|
-
/// Whether an option should be considered defaultSelected
|
|
393
|
-
_isDefaultSelected(option) {
|
|
394
|
-
return option.defaultSelected;
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* Sets an option as selected and gives it focus.
|
|
398
|
-
*
|
|
399
|
-
* @public
|
|
400
|
-
*/
|
|
401
|
-
setSelectedOptions() {
|
|
402
|
-
this.selectedOptions = this.selectedIndex !== -1 ? [this.options[this.selectedIndex]] : [];
|
|
403
|
-
this._activeDescendant = this.firstSelectedOption?.id ?? "";
|
|
404
|
-
this.focusAndScrollOptionIntoView();
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Updates the list of options and resets the selected option when the slotted option content changes.
|
|
408
|
-
*
|
|
409
|
-
* @internal
|
|
410
|
-
*/
|
|
411
|
-
slottedOptionsChanged(_, next) {
|
|
412
|
-
this.options = next.reduce((options, item) => {
|
|
413
|
-
if (option_definition.isListboxOption(item)) {
|
|
414
|
-
options.push(item);
|
|
415
|
-
}
|
|
416
|
-
return options;
|
|
417
|
-
}, []);
|
|
418
|
-
const setSize = `${this.options.length}`;
|
|
419
|
-
this.options.forEach((option, index) => {
|
|
420
|
-
if (!option.id) {
|
|
421
|
-
option.id = fastWebUtilities.uniqueId("option-");
|
|
422
|
-
}
|
|
423
|
-
option.ariaPosInSet = `${index + 1}`;
|
|
424
|
-
option.ariaSetSize = setSize;
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
/**
|
|
428
|
-
* Updates the filtered list of options when the typeahead buffer changes.
|
|
429
|
-
*
|
|
430
|
-
* @internal
|
|
431
|
-
*/
|
|
432
|
-
typeaheadBufferChanged(_prev, _next) {
|
|
433
|
-
if (this.$fastController.isConnected) {
|
|
434
|
-
const typeaheadMatches = this.getTypeaheadMatches();
|
|
435
|
-
if (typeaheadMatches.length) {
|
|
436
|
-
const selectedIndex = this.options.indexOf(typeaheadMatches[0]);
|
|
437
|
-
if (selectedIndex > -1) {
|
|
438
|
-
this.selectedIndex = selectedIndex;
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
this.typeaheadExpired = false;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
};
|
|
445
|
-
// @ts-expect-error Type is incorrectly non-optional
|
|
446
|
-
__decorateClass([
|
|
447
|
-
fastElement.attr({ mode: "boolean" })
|
|
448
|
-
], _Listbox.prototype, "disabled");
|
|
449
|
-
__decorateClass([
|
|
450
|
-
fastElement.observable
|
|
451
|
-
], _Listbox.prototype, "selectedIndex");
|
|
452
|
-
__decorateClass([
|
|
453
|
-
fastElement.observable
|
|
454
|
-
], _Listbox.prototype, "selectedOptions");
|
|
455
|
-
__decorateClass([
|
|
456
|
-
fastElement.observable
|
|
457
|
-
], _Listbox.prototype, "slottedOptions");
|
|
458
|
-
__decorateClass([
|
|
459
|
-
fastElement.observable
|
|
460
|
-
], _Listbox.prototype, "typeaheadBuffer");
|
|
461
|
-
__decorateClass([
|
|
462
|
-
fastElement.observable
|
|
463
|
-
], _Listbox.prototype, "_activeDescendant");
|
|
464
|
-
let Listbox = _Listbox;
|
|
465
|
-
|
|
466
|
-
exports.Listbox = Listbox;
|
|
352
|
+
require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Listbox.prototype, "disabled", void 0);
|
|
353
|
+
require_decorate.__decorate([_microsoft_fast_element.observable], Listbox.prototype, "selectedIndex", void 0);
|
|
354
|
+
require_decorate.__decorate([_microsoft_fast_element.observable], Listbox.prototype, "selectedOptions", void 0);
|
|
355
|
+
require_decorate.__decorate([_microsoft_fast_element.observable], Listbox.prototype, "slottedOptions", void 0);
|
|
356
|
+
require_decorate.__decorate([_microsoft_fast_element.observable], Listbox.prototype, "typeaheadBuffer", void 0);
|
|
357
|
+
require_decorate.__decorate([_microsoft_fast_element.observable], Listbox.prototype, "_activeDescendant", void 0);
|
|
358
|
+
//#endregion
|
|
359
|
+
Object.defineProperty(exports, "Listbox", {
|
|
360
|
+
enumerable: true,
|
|
361
|
+
get: function() {
|
|
362
|
+
return Listbox;
|
|
363
|
+
}
|
|
364
|
+
});
|