primevue 4.1.1 → 4.2.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/index.mjs.map +1 -1
- package/accordion/style/index.mjs +1 -1
- package/accordion/style/index.mjs.map +1 -1
- package/accordioncontent/index.mjs.map +1 -1
- package/accordioncontent/style/index.mjs.map +1 -1
- package/accordionheader/index.mjs.map +1 -1
- package/accordionheader/style/index.mjs.map +1 -1
- package/accordionpanel/index.mjs.map +1 -1
- package/accordionpanel/style/index.mjs.map +1 -1
- package/accordiontab/index.mjs.map +1 -1
- package/accordiontab/style/index.mjs.map +1 -1
- package/animateonscroll/index.mjs.map +1 -1
- package/animateonscroll/style/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +36 -32
- package/autocomplete/BaseAutoComplete.vue +2 -19
- package/autocomplete/index.d.ts +21 -0
- package/autocomplete/index.mjs +40 -53
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +7 -7
- package/autocomplete/style/index.mjs.map +1 -1
- package/avatar/index.mjs.map +1 -1
- package/avatar/style/index.mjs +1 -1
- package/avatar/style/index.mjs.map +1 -1
- package/avatargroup/index.mjs.map +1 -1
- package/avatargroup/style/index.mjs.map +1 -1
- package/badge/index.mjs.map +1 -1
- package/badge/style/index.mjs.map +1 -1
- package/badgedirective/index.d.ts +2 -2
- package/badgedirective/index.mjs.map +1 -1
- package/badgedirective/style/index.mjs.map +1 -1
- package/blockui/index.mjs.map +1 -1
- package/blockui/style/index.mjs.map +1 -1
- package/breadcrumb/Breadcrumb.vue +1 -1
- package/breadcrumb/index.mjs +2 -1
- package/breadcrumb/index.mjs.map +1 -1
- package/breadcrumb/style/index.d.ts +4 -0
- package/breadcrumb/style/index.mjs +2 -1
- package/breadcrumb/style/index.mjs.map +1 -1
- package/button/BaseButton.vue +4 -0
- package/button/index.d.ts +6 -0
- package/button/index.mjs +4 -0
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs +3 -3
- package/button/style/index.mjs.map +1 -1
- package/buttongroup/index.mjs.map +1 -1
- package/buttongroup/style/index.mjs +1 -1
- package/buttongroup/style/index.mjs.map +1 -1
- package/calendar/index.mjs.map +1 -1
- package/calendar/style/index.mjs.map +1 -1
- package/card/index.mjs.map +1 -1
- package/card/style/index.mjs.map +1 -1
- package/carousel/index.mjs.map +1 -1
- package/carousel/style/index.mjs +1 -1
- package/carousel/style/index.mjs.map +1 -1
- package/cascadeselect/BaseCascadeSelect.vue +8 -14
- package/cascadeselect/CascadeSelect.vue +34 -25
- package/cascadeselect/index.d.ts +45 -0
- package/cascadeselect/index.mjs +50 -38
- package/cascadeselect/index.mjs.map +1 -1
- package/cascadeselect/style/index.d.ts +4 -0
- package/cascadeselect/style/index.mjs +8 -5
- package/cascadeselect/style/index.mjs.map +1 -1
- package/chart/index.mjs.map +1 -1
- package/chart/style/index.mjs.map +1 -1
- package/checkbox/BaseCheckbox.vue +2 -19
- package/checkbox/Checkbox.vue +18 -6
- package/checkbox/index.d.ts +17 -0
- package/checkbox/index.mjs +20 -25
- package/checkbox/index.mjs.map +1 -1
- package/checkbox/style/index.mjs +5 -3
- package/checkbox/style/index.mjs.map +1 -1
- package/checkboxgroup/BaseCheckboxGroup.vue +16 -0
- package/checkboxgroup/CheckboxGroup.vue +29 -0
- package/checkboxgroup/index.d.ts +160 -0
- package/checkboxgroup/index.mjs +46 -0
- package/checkboxgroup/index.mjs.map +1 -0
- package/checkboxgroup/package.json +11 -0
- package/checkboxgroup/style/index.d.ts +19 -0
- package/checkboxgroup/style/index.mjs +17 -0
- package/checkboxgroup/style/index.mjs.map +1 -0
- package/checkboxgroup/style/package.json +6 -0
- package/chip/index.mjs.map +1 -1
- package/chip/style/index.mjs +1 -1
- package/chip/style/index.mjs.map +1 -1
- package/chips/index.mjs.map +1 -1
- package/chips/style/index.mjs.map +1 -1
- package/colorpicker/BaseColorPicker.vue +2 -10
- package/colorpicker/ColorPicker.vue +7 -4
- package/colorpicker/index.d.ts +22 -0
- package/colorpicker/index.mjs +21 -23
- package/colorpicker/index.mjs.map +1 -1
- package/colorpicker/style/index.mjs +5 -3
- package/colorpicker/style/index.mjs.map +1 -1
- package/column/index.mjs.map +1 -1
- package/column/style/index.mjs.map +1 -1
- package/columngroup/index.mjs.map +1 -1
- package/columngroup/style/index.mjs.map +1 -1
- package/config/index.d.ts +4 -0
- package/confirmationservice/index.mjs.map +1 -1
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmdialog/style/index.mjs.map +1 -1
- package/confirmpopup/index.mjs.map +1 -1
- package/confirmpopup/style/index.mjs +1 -1
- package/confirmpopup/style/index.mjs.map +1 -1
- package/contextmenu/index.mjs.map +1 -1
- package/contextmenu/style/index.mjs +1 -1
- package/contextmenu/style/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +15 -6
- package/datatable/DataTable.vue +56 -2
- package/datatable/FooterCell.vue +15 -6
- package/datatable/HeaderCell.vue +15 -6
- package/datatable/index.d.ts +12 -8
- package/datatable/index.mjs +163 -78
- package/datatable/index.mjs.map +1 -1
- package/datatable/style/index.mjs +1 -1
- package/datatable/style/index.mjs.map +1 -1
- package/dataview/DataView.vue +33 -1
- package/dataview/index.d.ts +4 -0
- package/dataview/index.mjs +42 -6
- package/dataview/index.mjs.map +1 -1
- package/dataview/style/index.mjs.map +1 -1
- package/datepicker/BaseDatePicker.vue +2 -23
- package/datepicker/DatePicker.vue +39 -40
- package/datepicker/index.d.ts +21 -4
- package/datepicker/index.mjs +45 -65
- package/datepicker/index.mjs.map +1 -1
- package/datepicker/style/index.mjs +4 -5
- package/datepicker/style/index.mjs.map +1 -1
- package/deferredcontent/index.mjs.map +1 -1
- package/deferredcontent/style/index.mjs.map +1 -1
- package/dialog/index.mjs.map +1 -1
- package/dialog/style/index.mjs +1 -1
- package/dialog/style/index.mjs.map +1 -1
- package/dialogservice/index.mjs.map +1 -1
- package/divider/index.mjs.map +1 -1
- package/divider/style/index.mjs +1 -1
- package/divider/style/index.mjs.map +1 -1
- package/dock/index.mjs.map +1 -1
- package/dock/style/index.mjs +1 -1
- package/dock/style/index.mjs.map +1 -1
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs +1 -1
- package/drawer/style/index.mjs.map +1 -1
- package/dropdown/index.mjs.map +1 -1
- package/dropdown/style/index.mjs.map +1 -1
- package/dynamicdialog/index.mjs.map +1 -1
- package/dynamicdialog/style/index.mjs.map +1 -1
- package/editor/BaseEditor.vue +2 -3
- package/editor/Editor.vue +3 -3
- package/editor/index.d.ts +22 -0
- package/editor/index.mjs +5 -6
- package/editor/index.mjs.map +1 -1
- package/editor/style/index.mjs +7 -2
- package/editor/style/index.mjs.map +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fieldset/style/index.mjs +1 -1
- package/fieldset/style/index.mjs.map +1 -1
- package/fileupload/index.mjs.map +1 -1
- package/fileupload/style/index.mjs +1 -1
- package/fileupload/style/index.mjs.map +1 -1
- package/floatlabel/index.mjs.map +1 -1
- package/floatlabel/style/index.mjs +1 -1
- package/floatlabel/style/index.mjs.map +1 -1
- package/fluid/index.mjs.map +1 -1
- package/fluid/style/index.mjs.map +1 -1
- package/focustrap/index.mjs.map +1 -1
- package/focustrap/style/index.mjs.map +1 -1
- package/galleria/index.mjs.map +1 -1
- package/galleria/style/index.mjs +1 -1
- package/galleria/style/index.mjs.map +1 -1
- package/iconfield/index.mjs.map +1 -1
- package/iconfield/style/index.mjs +1 -1
- package/iconfield/style/index.mjs.map +1 -1
- package/iftalabel/index.mjs.map +1 -1
- package/iftalabel/style/index.mjs +1 -1
- package/iftalabel/style/index.mjs.map +1 -1
- package/image/index.mjs.map +1 -1
- package/image/style/index.mjs +1 -1
- package/image/style/index.mjs.map +1 -1
- package/imagecompare/ImageCompare.vue +33 -1
- package/imagecompare/index.mjs +35 -1
- package/imagecompare/index.mjs.map +1 -1
- package/imagecompare/style/index.mjs +1 -1
- package/imagecompare/style/index.mjs.map +1 -1
- package/index.d.ts +811 -0
- package/index.mjs +531 -0
- package/index.mjs.map +1 -0
- package/inlinemessage/index.mjs.map +1 -1
- package/inlinemessage/style/index.mjs.map +1 -1
- package/inplace/index.d.ts +0 -4
- package/inplace/index.mjs.map +1 -1
- package/inplace/style/index.mjs.map +1 -1
- package/inputchips/index.mjs.map +1 -1
- package/inputchips/style/index.mjs.map +1 -1
- package/inputgroup/index.mjs.map +1 -1
- package/inputgroup/style/index.mjs +1 -1
- package/inputgroup/style/index.mjs.map +1 -1
- package/inputgroupaddon/index.mjs.map +1 -1
- package/inputgroupaddon/style/index.mjs.map +1 -1
- package/inputicon/index.mjs.map +1 -1
- package/inputicon/style/index.mjs.map +1 -1
- package/inputmask/BaseInputMask.vue +2 -23
- package/inputmask/InputMask.vue +9 -14
- package/inputmask/index.d.ts +13 -0
- package/inputmask/index.mjs +13 -38
- package/inputmask/index.mjs.map +1 -1
- package/inputmask/style/index.mjs +1 -1
- package/inputmask/style/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +2 -22
- package/inputnumber/InputNumber.vue +14 -16
- package/inputnumber/index.d.ts +26 -0
- package/inputnumber/index.mjs +22 -39
- package/inputnumber/index.mjs.map +1 -1
- package/inputnumber/style/index.mjs +3 -3
- package/inputnumber/style/index.mjs.map +1 -1
- package/inputotp/BaseInputOtp.vue +2 -18
- package/inputotp/InputOtp.vue +4 -2
- package/inputotp/index.d.ts +21 -0
- package/inputotp/index.mjs +7 -21
- package/inputotp/index.mjs.map +1 -1
- package/inputotp/style/index.mjs +2 -2
- package/inputotp/style/index.mjs.map +1 -1
- package/inputswitch/index.mjs.map +1 -1
- package/inputswitch/style/index.mjs.map +1 -1
- package/inputtext/BaseInputText.vue +2 -21
- package/inputtext/InputText.vue +13 -22
- package/inputtext/index.d.ts +17 -0
- package/inputtext/index.mjs +16 -48
- package/inputtext/index.mjs.map +1 -1
- package/inputtext/style/index.mjs +7 -7
- package/inputtext/style/index.mjs.map +1 -1
- package/keyfilter/index.mjs.map +1 -1
- package/keyfilter/style/index.mjs.map +1 -1
- package/knob/BaseKnob.vue +2 -10
- package/knob/Knob.vue +23 -19
- package/knob/index.d.ts +24 -2
- package/knob/index.mjs +31 -32
- package/knob/index.mjs.map +1 -1
- package/knob/style/index.mjs +4 -2
- package/knob/style/index.mjs.map +1 -1
- package/listbox/BaseListbox.vue +2 -11
- package/listbox/Listbox.vue +21 -20
- package/listbox/index.d.ts +17 -0
- package/listbox/index.mjs +23 -31
- package/listbox/index.mjs.map +1 -1
- package/listbox/style/index.mjs +4 -3
- package/listbox/style/index.mjs.map +1 -1
- package/megamenu/index.mjs.map +1 -1
- package/megamenu/style/index.mjs +1 -1
- package/megamenu/style/index.mjs.map +1 -1
- package/menu/index.mjs.map +1 -1
- package/menu/style/index.mjs +1 -1
- package/menu/style/index.mjs.map +1 -1
- package/menubar/index.mjs.map +1 -1
- package/menubar/style/index.mjs +1 -1
- package/menubar/style/index.mjs.map +1 -1
- package/message/BaseMessage.vue +8 -0
- package/message/index.d.ts +9 -0
- package/message/index.mjs +8 -0
- package/message/index.mjs.map +1 -1
- package/message/style/index.mjs +7 -2
- package/message/style/index.mjs.map +1 -1
- package/metergroup/index.mjs.map +1 -1
- package/metergroup/style/index.mjs +1 -1
- package/metergroup/style/index.mjs.map +1 -1
- package/multiselect/BaseMultiSelect.vue +14 -19
- package/multiselect/MultiSelect.vue +45 -31
- package/multiselect/index.d.ts +50 -0
- package/multiselect/index.mjs +71 -52
- package/multiselect/index.mjs.map +1 -1
- package/multiselect/style/index.d.ts +4 -0
- package/multiselect/style/index.mjs +8 -5
- package/multiselect/style/index.mjs.map +1 -1
- package/orderlist/index.mjs.map +1 -1
- package/orderlist/style/index.mjs.map +1 -1
- package/organizationchart/index.mjs.map +1 -1
- package/organizationchart/style/index.mjs +1 -1
- package/organizationchart/style/index.mjs.map +1 -1
- package/overlaybadge/index.mjs.map +1 -1
- package/overlaybadge/style/index.mjs +1 -1
- package/overlaybadge/style/index.mjs.map +1 -1
- package/overlaypanel/index.mjs.map +1 -1
- package/overlaypanel/style/index.mjs.map +1 -1
- package/package.json +15 -6
- package/paginator/Paginator.vue +104 -84
- package/paginator/index.d.ts +54 -0
- package/paginator/index.mjs +21 -3
- package/paginator/index.mjs.map +1 -1
- package/paginator/style/index.mjs +1 -1
- package/paginator/style/index.mjs.map +1 -1
- package/panel/index.mjs.map +1 -1
- package/panel/style/index.mjs.map +1 -1
- package/panelmenu/index.mjs.map +1 -1
- package/panelmenu/style/index.mjs +1 -1
- package/panelmenu/style/index.mjs.map +1 -1
- package/passthrough/index.mjs.map +1 -1
- package/password/BasePassword.vue +2 -15
- package/password/Password.vue +13 -18
- package/password/index.d.ts +21 -0
- package/password/index.mjs +14 -32
- package/password/index.mjs.map +1 -1
- package/password/style/index.mjs +3 -3
- package/password/style/index.mjs.map +1 -1
- package/picklist/index.mjs.map +1 -1
- package/picklist/style/index.mjs.map +1 -1
- package/popover/index.mjs.map +1 -1
- package/popover/style/index.mjs +1 -1
- package/popover/style/index.mjs.map +1 -1
- package/portal/index.mjs.map +1 -1
- package/portal/style/index.mjs.map +1 -1
- package/progressbar/index.mjs.map +1 -1
- package/progressbar/style/index.mjs +1 -1
- package/progressbar/style/index.mjs.map +1 -1
- package/progressspinner/index.mjs.map +1 -1
- package/progressspinner/style/index.mjs.map +1 -1
- package/radiobutton/BaseRadioButton.vue +2 -19
- package/radiobutton/RadioButton.vue +15 -4
- package/radiobutton/index.d.ts +17 -0
- package/radiobutton/index.mjs +17 -23
- package/radiobutton/index.mjs.map +1 -1
- package/radiobutton/style/index.mjs +5 -3
- package/radiobutton/style/index.mjs.map +1 -1
- package/radiobuttongroup/BaseRadioButtonGroup.vue +16 -0
- package/radiobuttongroup/RadioButtonGroup.vue +29 -0
- package/radiobuttongroup/index.d.ts +160 -0
- package/radiobuttongroup/index.mjs +46 -0
- package/radiobuttongroup/index.mjs.map +1 -0
- package/radiobuttongroup/package.json +11 -0
- package/radiobuttongroup/style/index.d.ts +19 -0
- package/radiobuttongroup/style/index.mjs +17 -0
- package/radiobuttongroup/style/index.mjs.map +1 -0
- package/radiobuttongroup/style/package.json +6 -0
- package/rating/BaseRating.vue +2 -10
- package/rating/Rating.vue +17 -16
- package/rating/index.d.ts +18 -0
- package/rating/index.mjs +17 -23
- package/rating/index.mjs.map +1 -1
- package/rating/style/index.mjs +14 -5
- package/rating/style/index.mjs.map +1 -1
- package/ripple/index.mjs.map +1 -1
- package/ripple/style/index.mjs.map +1 -1
- package/row/index.mjs.map +1 -1
- package/row/style/index.mjs.map +1 -1
- package/scrollpanel/ScrollPanel.vue +38 -5
- package/scrollpanel/index.mjs +58 -28
- package/scrollpanel/index.mjs.map +1 -1
- package/scrollpanel/style/index.mjs +1 -1
- package/scrollpanel/style/index.mjs.map +1 -1
- package/scrolltop/index.mjs.map +1 -1
- package/scrolltop/style/index.mjs +1 -1
- package/scrolltop/style/index.mjs.map +1 -1
- package/select/BaseSelect.vue +2 -19
- package/select/Select.vue +15 -19
- package/select/index.d.ts +21 -0
- package/select/index.mjs +18 -40
- package/select/index.mjs.map +1 -1
- package/select/style/index.mjs +7 -5
- package/select/style/index.mjs.map +1 -1
- package/selectbutton/BaseSelectButton.vue +6 -8
- package/selectbutton/SelectButton.vue +9 -8
- package/selectbutton/index.d.ts +21 -0
- package/selectbutton/index.mjs +15 -16
- package/selectbutton/index.mjs.map +1 -1
- package/selectbutton/style/index.mjs +3 -3
- package/selectbutton/style/index.mjs.map +1 -1
- package/sidebar/index.mjs.map +1 -1
- package/sidebar/style/index.mjs.map +1 -1
- package/skeleton/index.mjs.map +1 -1
- package/skeleton/style/index.mjs +1 -1
- package/skeleton/style/index.mjs.map +1 -1
- package/slider/BaseSlider.vue +2 -7
- package/slider/Slider.vue +94 -38
- package/slider/index.d.ts +22 -0
- package/slider/index.mjs +145 -72
- package/slider/index.mjs.map +1 -1
- package/slider/style/index.mjs +4 -2
- package/slider/style/index.mjs.map +1 -1
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/style/index.mjs +1 -1
- package/speeddial/style/index.mjs.map +1 -1
- package/splitbutton/index.mjs.map +1 -1
- package/splitbutton/style/index.mjs +1 -1
- package/splitbutton/style/index.mjs.map +1 -1
- package/splitter/Splitter.vue +31 -3
- package/splitter/index.mjs +50 -20
- package/splitter/index.mjs.map +1 -1
- package/splitter/style/index.mjs.map +1 -1
- package/splitterpanel/index.mjs.map +1 -1
- package/splitterpanel/style/index.mjs.map +1 -1
- package/step/index.mjs.map +1 -1
- package/step/style/index.mjs.map +1 -1
- package/stepitem/index.mjs.map +1 -1
- package/stepitem/style/index.mjs.map +1 -1
- package/steplist/index.mjs.map +1 -1
- package/steplist/style/index.mjs.map +1 -1
- package/steppanel/index.mjs.map +1 -1
- package/steppanel/style/index.mjs.map +1 -1
- package/steppanels/index.mjs.map +1 -1
- package/steppanels/style/index.mjs.map +1 -1
- package/stepper/index.mjs.map +1 -1
- package/stepper/style/index.mjs +1 -1
- package/stepper/style/index.mjs.map +1 -1
- package/steps/index.mjs.map +1 -1
- package/steps/style/index.mjs +1 -1
- package/steps/style/index.mjs.map +1 -1
- package/styleclass/index.mjs.map +1 -1
- package/styleclass/style/index.mjs.map +1 -1
- package/tab/index.mjs.map +1 -1
- package/tab/style/index.mjs.map +1 -1
- package/tablist/TabList.vue +40 -5
- package/tablist/index.mjs +38 -5
- package/tablist/index.mjs.map +1 -1
- package/tablist/style/index.mjs.map +1 -1
- package/tabmenu/index.mjs.map +1 -1
- package/tabmenu/style/index.mjs.map +1 -1
- package/tabpanel/index.mjs.map +1 -1
- package/tabpanel/style/index.mjs.map +1 -1
- package/tabpanels/index.mjs.map +1 -1
- package/tabpanels/style/index.mjs.map +1 -1
- package/tabs/index.mjs.map +1 -1
- package/tabs/style/index.mjs +1 -1
- package/tabs/style/index.mjs.map +1 -1
- package/tabview/index.mjs.map +1 -1
- package/tabview/style/index.mjs.map +1 -1
- package/tag/index.mjs.map +1 -1
- package/tag/style/index.mjs.map +1 -1
- package/terminal/index.mjs.map +1 -1
- package/terminal/style/index.mjs +1 -1
- package/terminal/style/index.mjs.map +1 -1
- package/textarea/BaseTextarea.vue +3 -16
- package/textarea/Textarea.vue +13 -19
- package/textarea/index.d.ts +21 -0
- package/textarea/index.mjs +14 -38
- package/textarea/index.mjs.map +1 -1
- package/textarea/style/index.mjs +7 -5
- package/textarea/style/index.mjs.map +1 -1
- package/tieredmenu/index.mjs.map +1 -1
- package/tieredmenu/style/index.mjs +1 -1
- package/tieredmenu/style/index.mjs.map +1 -1
- package/timeline/index.mjs.map +1 -1
- package/timeline/style/index.mjs.map +1 -1
- package/toast/Toast.vue +0 -1
- package/toast/index.mjs.map +1 -1
- package/toast/style/index.mjs +1 -1
- package/toast/style/index.mjs.map +1 -1
- package/toastservice/index.mjs.map +1 -1
- package/togglebutton/BaseToggleButton.vue +6 -11
- package/togglebutton/ToggleButton.vue +11 -7
- package/togglebutton/index.d.ts +21 -0
- package/togglebutton/index.mjs +20 -18
- package/togglebutton/index.mjs.map +1 -1
- package/togglebutton/style/index.mjs +4 -2
- package/togglebutton/style/index.mjs.map +1 -1
- package/toggleswitch/BaseToggleSwitch.vue +2 -14
- package/toggleswitch/ToggleSwitch.vue +4 -3
- package/toggleswitch/index.d.ts +17 -0
- package/toggleswitch/index.mjs +7 -17
- package/toggleswitch/index.mjs.map +1 -1
- package/toggleswitch/style/index.mjs +2 -2
- package/toggleswitch/style/index.mjs.map +1 -1
- package/toolbar/index.mjs.map +1 -1
- package/toolbar/style/index.mjs.map +1 -1
- package/tooltip/index.mjs.map +1 -1
- package/tooltip/style/index.mjs.map +1 -1
- package/tree/TreeNode.vue +1 -1
- package/tree/index.mjs +2 -2
- package/tree/index.mjs.map +1 -1
- package/tree/style/index.mjs +1 -1
- package/tree/style/index.mjs.map +1 -1
- package/treeselect/BaseTreeSelect.vue +18 -19
- package/treeselect/TreeSelect.vue +61 -18
- package/treeselect/index.d.ts +80 -26
- package/treeselect/index.mjs +87 -38
- package/treeselect/index.mjs.map +1 -1
- package/treeselect/style/index.d.ts +4 -0
- package/treeselect/style/index.mjs +8 -5
- package/treeselect/style/index.mjs.map +1 -1
- package/treetable/BodyCell.vue +21 -12
- package/treetable/FooterCell.vue +15 -6
- package/treetable/HeaderCell.vue +15 -6
- package/treetable/TreeTable.vue +57 -2
- package/treetable/index.d.ts +12 -8
- package/treetable/index.mjs +146 -59
- package/treetable/index.mjs.map +1 -1
- package/treetable/style/index.mjs +1 -1
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/useconfirm/index.mjs.map +1 -1
- package/usedialog/index.mjs.map +1 -1
- package/usetoast/index.mjs.map +1 -1
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
package/listbox/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/listbox/BaseListbox.vue","../../src/listbox/Listbox.vue","../../src/listbox/Listbox.vue?vue&type=template&id=3c8de874&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ListboxStyle from 'primevue/listbox/style';\n\nexport default {\n name: 'BaseListbox',\n extends: BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n listStyle: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dataKey: null,\n multiple: {\n type: Boolean,\n default: false\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n default: 'contains'\n },\n filterFields: {\n type: Array,\n default: null\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: true\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n highlightOnSelect: {\n type: Boolean,\n default: true\n },\n checkmark: {\n type: Boolean,\n default: false\n },\n filterMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptyFilterMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n striped: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: ListboxStyle,\n provide() {\n return {\n $pcListbox: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :id=\"id\" :class=\"cx('root')\" @focusout=\"onFocusout\" v-bind=\"ptmi('root')\">\n <span\n ref=\"firstHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <div v-if=\"$slots.header\" :class=\"cx('header')\">\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n </div>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n v-model=\"filterValue\"\n type=\"text\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n :tabindex=\"!disabled && !focused ? tabindex : -1\"\n @input=\"onFilterChange\"\n @blur=\"onFilterBlur\"\n @keydown=\"onFilterKeyDown\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"[{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }, listStyle]\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"[{ height: scrollHeight }, listStyle]\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul\n :ref=\"(el) => listRef(el, contentRef)\"\n :id=\"id + '_list'\"\n :class=\"[cx('list'), styleClass]\"\n :style=\"contentStyle\"\n :tabindex=\"-1\"\n role=\"listbox\"\n :aria-multiselectable=\"multiple\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions))\"\n @mousedown=\"onOptionMouseDown($event, getOptionIndex(i, getItemOptions))\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n @touchend=\"onOptionTouchEnd()\"\n @dblclick=\"onOptionDblClick($event, option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <template v-if=\"checkmark\">\n <CheckIcon v-if=\"isSelected(option)\" :class=\"cx('optionCheckIcon')\" v-bind=\"ptm('optionCheckIcon')\" />\n <BlankIcon v-else :class=\"cx('optionBlankIcon')\" v-bind=\"ptm('optionBlankIcon')\" />\n </template>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getFirstFocusableElement, isElement } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport SearchIcon from '@primevue/icons/search';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseListbox from './BaseListbox.vue';\n\nexport default {\n name: 'Listbox',\n extends: BaseListbox,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'filter', 'item-dblclick', 'option-dblclick'],\n list: null,\n virtualScroller: null,\n optionTouched: false,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n data() {\n return {\n id: this.$attrs.id,\n filterValue: null,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n onFirstHiddenFocus() {\n focus(this.list);\n\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n this.$refs.lastHiddenFocusableElement.tabIndex = isElement(firstFocusableEl) ? undefined : -1;\n this.$refs.firstHiddenFocusableElement.tabIndex = -1;\n },\n onLastHiddenFocus(event) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.list) {\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n } else {\n focus(this.$refs.firstHiddenFocusableElement);\n }\n\n this.$refs.lastHiddenFocusableElement.tabIndex = -1;\n },\n onFocusout(event) {\n if (!this.$el.contains(event.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement) {\n this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.autoUpdateModel();\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = this.startRangeIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (this.multiple && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n },\n onOptionSelect(event, option, index = -1) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && (this.focusedOptionIndex = index);\n },\n onOptionMouseDown(event, index) {\n this.changeFocusedOptionIndex(event, index);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.optionTouched = true;\n },\n onOptionDblClick(event, item) {\n this.$emit('item-dblclick', {\n originalEvent: event,\n value: item\n });\n this.$emit('option-dblclick', {\n originalEvent: event,\n value: item\n });\n },\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event && (event.metaKey || event.ctrlKey);\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(event, value);\n }\n },\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.modelValue || [] : [];\n value = [...value, this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.modelValue || []), this.getOptionValue(option)];\n }\n\n this.updateModel(event, value);\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterBlur() {\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedOptionIndex !== -1) {\n if (this.multiple && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n onSpaceKey(event) {\n event.preventDefault();\n this.onEnterKey(event);\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple) return (this.modelValue || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.modelValue, optionValue);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.hasSelectedOption) {\n if (this.multiple) {\n for (let index = this.modelValue.length - 1; index >= 0; index--) {\n const value = this.modelValue[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n removeOption(option) {\n return this.modelValue.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus && !this.multiple) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption && !this.multiple && this.focused) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n InputIcon,\n IconField,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n","<template>\n <div :id=\"id\" :class=\"cx('root')\" @focusout=\"onFocusout\" v-bind=\"ptmi('root')\">\n <span\n ref=\"firstHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <div v-if=\"$slots.header\" :class=\"cx('header')\">\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n </div>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n v-model=\"filterValue\"\n type=\"text\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n :tabindex=\"!disabled && !focused ? tabindex : -1\"\n @input=\"onFilterChange\"\n @blur=\"onFilterBlur\"\n @keydown=\"onFilterKeyDown\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"[{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }, listStyle]\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"[{ height: scrollHeight }, listStyle]\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul\n :ref=\"(el) => listRef(el, contentRef)\"\n :id=\"id + '_list'\"\n :class=\"[cx('list'), styleClass]\"\n :style=\"contentStyle\"\n :tabindex=\"-1\"\n role=\"listbox\"\n :aria-multiselectable=\"multiple\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions))\"\n @mousedown=\"onOptionMouseDown($event, getOptionIndex(i, getItemOptions))\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n @touchend=\"onOptionTouchEnd()\"\n @dblclick=\"onOptionDblClick($event, option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <template v-if=\"checkmark\">\n <CheckIcon v-if=\"isSelected(option)\" :class=\"cx('optionCheckIcon')\" v-bind=\"ptm('optionCheckIcon')\" />\n <BlankIcon v-else :class=\"cx('optionBlankIcon')\" v-bind=\"ptm('optionBlankIcon')\" />\n </template>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getFirstFocusableElement, isElement } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport SearchIcon from '@primevue/icons/search';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseListbox from './BaseListbox.vue';\n\nexport default {\n name: 'Listbox',\n extends: BaseListbox,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'filter', 'item-dblclick', 'option-dblclick'],\n list: null,\n virtualScroller: null,\n optionTouched: false,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n data() {\n return {\n id: this.$attrs.id,\n filterValue: null,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n onFirstHiddenFocus() {\n focus(this.list);\n\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n this.$refs.lastHiddenFocusableElement.tabIndex = isElement(firstFocusableEl) ? undefined : -1;\n this.$refs.firstHiddenFocusableElement.tabIndex = -1;\n },\n onLastHiddenFocus(event) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.list) {\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n } else {\n focus(this.$refs.firstHiddenFocusableElement);\n }\n\n this.$refs.lastHiddenFocusableElement.tabIndex = -1;\n },\n onFocusout(event) {\n if (!this.$el.contains(event.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement) {\n this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.autoUpdateModel();\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = this.startRangeIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (this.multiple && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n },\n onOptionSelect(event, option, index = -1) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && (this.focusedOptionIndex = index);\n },\n onOptionMouseDown(event, index) {\n this.changeFocusedOptionIndex(event, index);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.optionTouched = true;\n },\n onOptionDblClick(event, item) {\n this.$emit('item-dblclick', {\n originalEvent: event,\n value: item\n });\n this.$emit('option-dblclick', {\n originalEvent: event,\n value: item\n });\n },\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event && (event.metaKey || event.ctrlKey);\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(event, value);\n }\n },\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.modelValue || [] : [];\n value = [...value, this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.modelValue || []), this.getOptionValue(option)];\n }\n\n this.updateModel(event, value);\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterBlur() {\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedOptionIndex !== -1) {\n if (this.multiple && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n onSpaceKey(event) {\n event.preventDefault();\n this.onEnterKey(event);\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple) return (this.modelValue || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.modelValue, optionValue);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.hasSelectedOption) {\n if (this.multiple) {\n for (let index = this.modelValue.length - 1; index >= 0; index--) {\n const value = this.modelValue[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n removeOption(option) {\n return this.modelValue.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus && !this.multiple) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption && !this.multiple && this.focused) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n InputIcon,\n IconField,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","listStyle","scrollHeight","type","String","invalid","Boolean","disabled","dataKey","multiple","metaKeySelection","filter","filterPlaceholder","filterLocale","filterMatchMode","filterFields","virtualScrollerOptions","Object","autoOptionFocus","selectOnFocus","focusOnHover","highlightOnSelect","checkmark","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","filterIcon","undefined","striped","tabindex","Number","ariaLabel","ariaLabelledby","style","ListboxStyle","provide","$pcListbox","$parentInstance","BaseListbox","inheritAttrs","emits","list","virtualScroller","optionTouched","startRangeIndex","searchTimeout","searchValue","data","id","$attrs","filterValue","focused","focusedOptionIndex","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTOptions","itemOptions","key","ptm","context","selected","isSelected","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","onFirstHiddenFocus","focus","firstFocusableEl","getFirstFocusableElement","$el","$refs","lastHiddenFocusableElement","tabIndex","isElement","firstHiddenFocusableElement","onLastHiddenFocus","event","relatedTarget","onFocusout","contains","onListFocus","findFirstFocusedOptionIndex","findSelectedOptionIndex","$emit","onListBlur","onListKeyDown","_this2","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onShiftKey","value","isValidOption","map","updateModel","preventDefault","isPrintableCharacter","searchOptions","onOptionSelect","arguments","onOptionSelectMultiple","onOptionSelectSingle","onOptionMouseDown","changeFocusedOptionIndex","onOptionMouseMove","onOptionTouchEnd","onOptionDblClick","item","originalEvent","valueChanged","metaSelection","removeOption","concat","_toConsumableArray","onOptionSelectRange","_this3","start","end","findNearestSelectedOptionIndex","rangeStart","Math","min","rangeEnd","max","onFilterChange","target","onFilterBlur","onFilterKeyDown","onArrowLeftKey","onEnterKey","optionIndex","findNextOptionIndex","shiftKey","findPrevOptionIndex","findLastFocusedOptionIndex","pressedInInputText","currentTarget","setSelectionRange","selectionStart","findFirstOptionIndex","len","findLastOptionIndex","scrollInView","isOptionMatched","_this$getOptionLabel","toLocaleLowerCase","startsWith","isNotEmpty","isValidSelectedOption","isEquals","value1","value2","equals","equalityKey","_this4","some","_this5","findIndex","_this6","findLastIndex","_this7","matchedOptionIndex","_this8","_this9","hasSelectedOption","_loop","v","_ret","findFirstSelectedOptionIndex","_this10","findLastSelectedOptionIndex","_this11","findNextSelectedOptionIndex","_this12","findPrevSelectedOptionIndex","_this13","firstCheckUp","selectedIndex","char","_this14","clearTimeout","setTimeout","_this15","val","_this16","$nextTick","focusedOptionId","element","findSingle","scrollIntoView","block","inline","behavior","scrollToIndex","flatOptions","_this17","reduce","result","push","forEach","o","listRef","el","contentRef","virtualScrollerRef","computed","FilterService","searchFields","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","$primevue","config","locale","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this18","directives","ripple","Ripple","components","InputText","VirtualScroller","InputIcon","IconField","SearchIcon","CheckIcon","BlankIcon","_openBlock","_createElementBlock","_mergeProps","$data","_ctx","cx","$options","apply","ptmi","_createElementVNode","ref","role","onFocus","$slots","header","_renderSlot","_createVNode","_component_IconField","unstyled","pt","_component_InputText","$event","placeholder","autocomplete","onInput","onBlur","onKeydown","_component_InputIcon","_createBlock","_component_SearchIcon","_component_VirtualScroller","items","height","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","_Fragment","_renderList","i","_withDirectives","onClick","onMousedown","onMousemove","onTouchend","onDblclick","_component_CheckIcon","_component_BlankIcon","_createTextVNode","_toDisplayString","loader","_ref2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/listbox/BaseListbox.vue","../../src/listbox/Listbox.vue","../../src/listbox/Listbox.vue?vue&type=template&id=b0cf9956&lang.js"],"sourcesContent":["<script>\nimport BaseEditableHolder from '@primevue/core/baseeditableholder';\nimport ListboxStyle from 'primevue/listbox/style';\n\nexport default {\n name: 'BaseListbox',\n extends: BaseEditableHolder,\n props: {\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n listStyle: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n dataKey: null,\n multiple: {\n type: Boolean,\n default: false\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n default: 'contains'\n },\n filterFields: {\n type: Array,\n default: null\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: true\n },\n selectOnFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n highlightOnSelect: {\n type: Boolean,\n default: true\n },\n checkmark: {\n type: Boolean,\n default: false\n },\n filterMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptyFilterMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n striped: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: ListboxStyle,\n provide() {\n return {\n $pcListbox: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :id=\"id\" :class=\"cx('root')\" @focusout=\"onFocusout\" v-bind=\"ptmi('root')\">\n <span\n ref=\"firstHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <div v-if=\"$slots.header\" :class=\"cx('header')\">\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n </div>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n v-model=\"filterValue\"\n type=\"text\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n :tabindex=\"!disabled && !focused ? tabindex : -1\"\n @input=\"onFilterChange\"\n @blur=\"onFilterBlur\"\n @keydown=\"onFilterKeyDown\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"[{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }, listStyle]\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"[{ height: scrollHeight }, listStyle]\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul\n :ref=\"(el) => listRef(el, contentRef)\"\n :id=\"id + '_list'\"\n :class=\"[cx('list'), styleClass]\"\n :style=\"contentStyle\"\n :tabindex=\"-1\"\n role=\"listbox\"\n :aria-multiselectable=\"multiple\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions))\"\n @mousedown=\"onOptionMouseDown($event, getOptionIndex(i, getItemOptions))\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n @touchend=\"onOptionTouchEnd()\"\n @dblclick=\"onOptionDblClick($event, option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <template v-if=\"checkmark\">\n <CheckIcon v-if=\"isSelected(option)\" :class=\"cx('optionCheckIcon')\" v-bind=\"ptm('optionCheckIcon')\" />\n <BlankIcon v-else :class=\"cx('optionBlankIcon')\" v-bind=\"ptm('optionBlankIcon')\" />\n </template>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getFirstFocusableElement, isElement } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport SearchIcon from '@primevue/icons/search';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseListbox from './BaseListbox.vue';\n\nexport default {\n name: 'Listbox',\n extends: BaseListbox,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'filter', 'item-dblclick', 'option-dblclick'],\n list: null,\n virtualScroller: null,\n optionTouched: false,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n data() {\n return {\n id: this.$attrs.id,\n filterValue: null,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n onFirstHiddenFocus() {\n focus(this.list);\n\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n this.$refs.lastHiddenFocusableElement.tabIndex = isElement(firstFocusableEl) ? undefined : -1;\n this.$refs.firstHiddenFocusableElement.tabIndex = -1;\n },\n onLastHiddenFocus(event) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.list) {\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n } else {\n focus(this.$refs.firstHiddenFocusableElement);\n }\n\n this.$refs.lastHiddenFocusableElement.tabIndex = -1;\n },\n onFocusout(event) {\n if (!this.$el.contains(event.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement) {\n this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.autoUpdateModel();\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = this.startRangeIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (this.multiple && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n },\n onOptionSelect(event, option, index = -1) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && (this.focusedOptionIndex = index);\n },\n onOptionMouseDown(event, index) {\n this.changeFocusedOptionIndex(event, index);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.optionTouched = true;\n },\n onOptionDblClick(event, item) {\n this.$emit('item-dblclick', {\n originalEvent: event,\n value: item\n });\n this.$emit('option-dblclick', {\n originalEvent: event,\n value: item\n });\n },\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event && (event.metaKey || event.ctrlKey);\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(event, value);\n }\n },\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.d_value || [] : [];\n value = [...value, this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.d_value || []), this.getOptionValue(option)];\n }\n\n this.updateModel(event, value);\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterBlur() {\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedOptionIndex !== -1) {\n if (this.multiple && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n onSpaceKey(event) {\n event.preventDefault();\n this.onEnterKey(event);\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple) return (this.d_value || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.d_value, optionValue);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.$filled) {\n if (this.multiple) {\n for (let index = this.d_value.length - 1; index >= 0; index--) {\n const value = this.d_value[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.$filled ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.$filled) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n removeOption(option) {\n return this.d_value.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus && !this.multiple) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled && !this.multiple && this.focused) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;\n },\n // @deprecated use $filled instead\n hasSelectedOption() {\n return isNotEmpty(this.d_value);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.length : '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n InputIcon,\n IconField,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n","<template>\n <div :id=\"id\" :class=\"cx('root')\" @focusout=\"onFocusout\" v-bind=\"ptmi('root')\">\n <span\n ref=\"firstHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <div v-if=\"$slots.header\" :class=\"cx('header')\">\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n </div>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n v-model=\"filterValue\"\n type=\"text\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n :tabindex=\"!disabled && !focused ? tabindex : -1\"\n @input=\"onFilterChange\"\n @blur=\"onFilterBlur\"\n @keydown=\"onFilterKeyDown\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"[{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }, listStyle]\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"[{ height: scrollHeight }, listStyle]\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul\n :ref=\"(el) => listRef(el, contentRef)\"\n :id=\"id + '_list'\"\n :class=\"[cx('list'), styleClass]\"\n :style=\"contentStyle\"\n :tabindex=\"-1\"\n role=\"listbox\"\n :aria-multiselectable=\"multiple\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li v-if=\"isOptionGroup(option)\" :id=\"id + '_' + getOptionIndex(i, getItemOptions)\" :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\" :class=\"cx('optionGroup')\" role=\"option\" v-bind=\"ptm('optionGroup')\">\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions))\"\n @mousedown=\"onOptionMouseDown($event, getOptionIndex(i, getItemOptions))\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n @touchend=\"onOptionTouchEnd()\"\n @dblclick=\"onOptionDblClick($event, option)\"\n v-bind=\"getPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <template v-if=\"checkmark\">\n <CheckIcon v-if=\"isSelected(option)\" :class=\"cx('optionCheckIcon')\" v-bind=\"ptm('optionCheckIcon')\" />\n <BlankIcon v-else :class=\"cx('optionBlankIcon')\" v-bind=\"ptm('optionBlankIcon')\" />\n </template>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionLabel(option) }}</slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElement\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"!disabled ? tabindex : -1\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getFirstFocusableElement, isElement } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport SearchIcon from '@primevue/icons/search';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseListbox from './BaseListbox.vue';\n\nexport default {\n name: 'Listbox',\n extends: BaseListbox,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'filter', 'item-dblclick', 'option-dblclick'],\n list: null,\n virtualScroller: null,\n optionTouched: false,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n data() {\n return {\n id: this.$attrs.id,\n filterValue: null,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n onFirstHiddenFocus() {\n focus(this.list);\n\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n this.$refs.lastHiddenFocusableElement.tabIndex = isElement(firstFocusableEl) ? undefined : -1;\n this.$refs.firstHiddenFocusableElement.tabIndex = -1;\n },\n onLastHiddenFocus(event) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.list) {\n const firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n } else {\n focus(this.$refs.firstHiddenFocusableElement);\n }\n\n this.$refs.lastHiddenFocusableElement.tabIndex = -1;\n },\n onFocusout(event) {\n if (!this.$el.contains(event.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement) {\n this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.autoUpdateModel();\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = this.startRangeIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (this.multiple && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n },\n onOptionSelect(event, option, index = -1) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && (this.focusedOptionIndex = index);\n },\n onOptionMouseDown(event, index) {\n this.changeFocusedOptionIndex(event, index);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.optionTouched = true;\n },\n onOptionDblClick(event, item) {\n this.$emit('item-dblclick', {\n originalEvent: event,\n value: item\n });\n this.$emit('option-dblclick', {\n originalEvent: event,\n value: item\n });\n },\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event && (event.metaKey || event.ctrlKey);\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(event, value);\n }\n },\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.d_value || [] : [];\n value = [...value, this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.d_value || []), this.getOptionValue(option)];\n }\n\n this.updateModel(event, value);\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n this.$emit('filter', { originalEvent: event, value: event.target.value });\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterBlur() {\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();\n\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedOptionIndex !== -1) {\n if (this.multiple && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n onSpaceKey(event) {\n event.preventDefault();\n this.onEnterKey(event);\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple) return (this.d_value || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.d_value, optionValue);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.$filled) {\n if (this.multiple) {\n for (let index = this.d_value.length - 1; index >= 0; index--) {\n const value = this.d_value[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.$filled ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.$filled) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n removeOption(option) {\n return this.d_value.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus && !this.multiple) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled && !this.multiple && this.focused) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;\n },\n // @deprecated use $filled instead\n hasSelectedOption() {\n return isNotEmpty(this.d_value);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.$filled ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.d_value.length : '1') : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n InputIcon,\n IconField,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n"],"names":["name","BaseEditableHolder","props","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","listStyle","scrollHeight","type","String","dataKey","multiple","Boolean","metaKeySelection","filter","filterPlaceholder","filterLocale","filterMatchMode","filterFields","virtualScrollerOptions","Object","autoOptionFocus","selectOnFocus","focusOnHover","highlightOnSelect","checkmark","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","filterIcon","undefined","striped","tabindex","Number","ariaLabel","ariaLabelledby","style","ListboxStyle","provide","$pcListbox","$parentInstance","BaseListbox","inheritAttrs","emits","list","virtualScroller","optionTouched","startRangeIndex","searchTimeout","searchValue","data","id","$attrs","filterValue","focused","focusedOptionIndex","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTOptions","itemOptions","key","ptm","context","selected","isSelected","disabled","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","onFirstHiddenFocus","focus","firstFocusableEl","getFirstFocusableElement","$el","$refs","lastHiddenFocusableElement","tabIndex","isElement","firstHiddenFocusableElement","onLastHiddenFocus","event","relatedTarget","onFocusout","contains","onListFocus","findFirstFocusedOptionIndex","findSelectedOptionIndex","$emit","onListBlur","onListKeyDown","_this2","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onShiftKey","value","isValidOption","map","updateModel","preventDefault","isPrintableCharacter","searchOptions","onOptionSelect","arguments","onOptionSelectMultiple","onOptionSelectSingle","onOptionMouseDown","changeFocusedOptionIndex","onOptionMouseMove","onOptionTouchEnd","onOptionDblClick","item","originalEvent","valueChanged","metaSelection","removeOption","d_value","concat","_toConsumableArray","onOptionSelectRange","_this3","start","end","findNearestSelectedOptionIndex","rangeStart","Math","min","rangeEnd","max","onFilterChange","target","onFilterBlur","onFilterKeyDown","onArrowLeftKey","onEnterKey","optionIndex","findNextOptionIndex","shiftKey","findPrevOptionIndex","findLastFocusedOptionIndex","pressedInInputText","currentTarget","setSelectionRange","selectionStart","findFirstOptionIndex","len","findLastOptionIndex","scrollInView","isOptionMatched","_this$getOptionLabel","toLocaleLowerCase","startsWith","isNotEmpty","isValidSelectedOption","isEquals","value1","value2","equals","equalityKey","_this4","some","_this5","findIndex","_this6","findLastIndex","_this7","matchedOptionIndex","_this8","_this9","$filled","_loop","v","_ret","findFirstSelectedOptionIndex","_this10","findLastSelectedOptionIndex","_this11","findNextSelectedOptionIndex","_this12","findPrevSelectedOptionIndex","_this13","firstCheckUp","selectedIndex","char","_this14","clearTimeout","setTimeout","_this15","val","_this16","$nextTick","focusedOptionId","element","findSingle","scrollIntoView","block","inline","behavior","scrollToIndex","writeValue","flatOptions","_this17","reduce","result","push","forEach","o","listRef","el","contentRef","virtualScrollerRef","computed","FilterService","searchFields","hasSelectedOption","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","$primevue","config","locale","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this18","directives","ripple","Ripple","components","InputText","VirtualScroller","InputIcon","IconField","SearchIcon","CheckIcon","BlankIcon","_openBlock","_createElementBlock","_mergeProps","$data","_ctx","cx","$options","apply","ptmi","_createElementVNode","ref","role","onFocus","$slots","header","_renderSlot","_createVNode","_component_IconField","unstyled","pt","_component_InputText","$event","placeholder","autocomplete","onInput","onBlur","onKeydown","_component_InputIcon","_createBlock","_component_SearchIcon","_component_VirtualScroller","items","height","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","_Fragment","_renderList","i","_withDirectives","onClick","onMousedown","onMousemove","onTouchend","onDblclick","_component_CheckIcon","_component_BlankIcon","_createTextVNode","_toDisplayString","loader","_ref2"],"mappings":"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"}
|