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/select/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/select/BaseSelect.vue","../../src/select/Select.vue","../../src/select/Select.vue?vue&type=template&id=a2915388&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SelectStyle from 'primevue/select/style';\n\nexport default {\n name: 'BaseSelect',\n extends: BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: [String, Function],\n optionValue: [String, Function],\n optionDisabled: [String, Function],\n optionGroupLabel: [String, Function],\n optionGroupChildren: [String, Function],\n scrollHeight: {\n type: String,\n default: '14rem'\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 editable: Boolean,\n placeholder: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: null\n },\n inputId: {\n type: String,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n labelId: {\n type: String,\n default: null\n },\n labelClass: {\n type: [String, Object],\n default: null\n },\n labelStyle: {\n type: Object,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: undefined\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n resetFilterOnHide: {\n type: Boolean,\n default: false\n },\n resetFilterOnClear: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n autoFilterFocus: {\n type: Boolean,\n default: false\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 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: SelectStyle,\n provide() {\n return {\n $pcSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :id=\"id\" :class=\"cx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <input\n v-if=\"editable\"\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n type=\"text\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :value=\"editableInputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onEditableInput\"\n v-bind=\"ptm('label')\"\n />\n <span\n v-else\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel || (label === 'p-emptylabel' ? undefined : label)\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('label')\"\n >\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">{{ label === 'p-emptylabel' ? ' ' : label ?? 'empty' }}</slot>\n </span>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"[panelStyle, overlayStyle]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n type=\"text\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\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 : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span :class=\"cx('optionGroupLabel')\" v-bind=\"ptm('optionGroupLabel')\">{{ getOptionGroupLabel(option.optionGroup) }}</span>\n </slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :class=\"cx('option', { option, focusedOption: getOptionIndex(i, getItemOptions) })\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\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)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTItemOptions(option, getItemOptions, i, '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)\">\n <span :class=\"cx('optionLabel')\" v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\" :data-p-hidden-accessible=\"true\">\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')\" :data-p-hidden-accessible=\"true\">\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=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\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 </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isAndroid, isTouchDevice, isVisible, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseSelect from './BaseSelect.vue';\n\nexport default {\n name: 'Select',\n extends: BaseSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue() {\n this.isModelValueChanged = true;\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n\n this.isModelValueChanged = false;\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\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) : option;\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 getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option,\n index,\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 show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n\n return;\n }\n\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, this.editable);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n\n case 'End':\n this.onEndKey(event, this.editable);\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 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onEditableInput(event) {\n const value = event.target.value;\n\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n\n !matched && (this.focusedOptionIndex = -1);\n\n this.updateModel(event, value);\n\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n // Check if the event is part of a text composition process (e.g., for Asian languages).\n // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n if (event.isComposing) return;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\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 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\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 this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\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 this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\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.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event, pressedInInputText = false) {\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n setTimeout(() => {\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n }, 1);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n if (this.autoFilterFocus && this.filter) {\n this.$nextTick(() => {\n focus(this.$refs.filterInput.$el);\n });\n }\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener() {\n if (!this.editable && !this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n this.labelClickListener = () => {\n focus(this.$refs.focusInput);\n };\n\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener() {\n if (this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\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 isSelected(option) {\n return equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\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 return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\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 let matched = false;\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) {\n matched = true;\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 return matched;\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\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: 'start' });\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) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\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 overlayRef(el) {\n this.overlay = el;\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 if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : 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}', '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 isClearIconVisible() {\n return this.showClear && this.modelValue != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n InputIcon,\n IconField,\n TimesIcon,\n ChevronDownIcon,\n SpinnerIcon,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :id=\"id\" :class=\"cx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <input\n v-if=\"editable\"\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n type=\"text\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :value=\"editableInputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onEditableInput\"\n v-bind=\"ptm('label')\"\n />\n <span\n v-else\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel || (label === 'p-emptylabel' ? undefined : label)\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('label')\"\n >\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">{{ label === 'p-emptylabel' ? ' ' : label ?? 'empty' }}</slot>\n </span>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"[panelStyle, overlayStyle]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n type=\"text\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\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 : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span :class=\"cx('optionGroupLabel')\" v-bind=\"ptm('optionGroupLabel')\">{{ getOptionGroupLabel(option.optionGroup) }}</span>\n </slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :class=\"cx('option', { option, focusedOption: getOptionIndex(i, getItemOptions) })\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\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)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTItemOptions(option, getItemOptions, i, '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)\">\n <span :class=\"cx('optionLabel')\" v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\" :data-p-hidden-accessible=\"true\">\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')\" :data-p-hidden-accessible=\"true\">\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=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\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 </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isAndroid, isTouchDevice, isVisible, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseSelect from './BaseSelect.vue';\n\nexport default {\n name: 'Select',\n extends: BaseSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue() {\n this.isModelValueChanged = true;\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n\n this.isModelValueChanged = false;\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\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) : option;\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 getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option,\n index,\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 show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n\n return;\n }\n\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, this.editable);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n\n case 'End':\n this.onEndKey(event, this.editable);\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 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onEditableInput(event) {\n const value = event.target.value;\n\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n\n !matched && (this.focusedOptionIndex = -1);\n\n this.updateModel(event, value);\n\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n // Check if the event is part of a text composition process (e.g., for Asian languages).\n // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n if (event.isComposing) return;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\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 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\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 this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\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 this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\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.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event, pressedInInputText = false) {\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n setTimeout(() => {\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n }, 1);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n if (this.autoFilterFocus && this.filter) {\n this.$nextTick(() => {\n focus(this.$refs.filterInput.$el);\n });\n }\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener() {\n if (!this.editable && !this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n this.labelClickListener = () => {\n focus(this.$refs.focusInput);\n };\n\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener() {\n if (this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\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 isSelected(option) {\n return equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\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 return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\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 let matched = false;\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) {\n matched = true;\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 return matched;\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\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: 'start' });\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) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\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 overlayRef(el) {\n this.overlay = el;\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 if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : 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}', '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 isClearIconVisible() {\n return this.showClear && this.modelValue != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n InputIcon,\n IconField,\n TimesIcon,\n ChevronDownIcon,\n SpinnerIcon,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","options","Array","optionLabel","String","Function","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","type","filter","Boolean","filterPlaceholder","filterLocale","filterMatchMode","filterFields","editable","placeholder","variant","invalid","disabled","dataKey","showClear","fluid","inputId","inputClass","Object","inputStyle","labelId","labelClass","labelStyle","panelClass","overlayStyle","overlayClass","panelStyle","appendTo","loading","clearIcon","undefined","dropdownIcon","filterIcon","loadingIcon","resetFilterOnHide","resetFilterOnClear","virtualScrollerOptions","autoOptionFocus","autoFilterFocus","selectOnFocus","focusOnHover","highlightOnSelect","checkmark","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","tabindex","Number","ariaLabel","ariaLabelledby","style","SelectStyle","provide","$pcSelect","$parentInstance","BaseSelect","inheritAttrs","emits","inject","$pcFluid","outsideClickListener","scrollHandler","resizeListener","labelClickListener","overlay","list","virtualScroller","searchTimeout","searchValue","isModelValueChanged","data","id","$attrs","clicked","focused","focusedOptionIndex","filterValue","overlayVisible","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","bindLabelClickListener","updated","scrollInView","findSelectedOptionIndex","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","unbindLabelClickListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTItemOptions","itemOptions","key","ptm","context","selected","isSelected","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","show","isFocus","$emit","findFirstFocusedOptionIndex","focus","$refs","focusInput","hide","_this2","_hide","setTimeout","onFocus","event","onBlur","onKeyDown","isAndroid","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","isPrintableCharacter","searchOptions","onEditableInput","value","target","matched","updateModel","isNotEmpty","onContainerClick","tagName","getAttribute","closest","contains","onClearClick","onFirstHiddenFocus","focusableEl","relatedTarget","getFirstFocusableElement","onLastHiddenFocus","getLastFocusableElement","onOptionSelect","isHide","arguments","onOptionMouseMove","changeFocusedOptionIndex","onFilterChange","originalEvent","scrollToIndex","onFilterKeyDown","isComposing","onFilterBlur","onFilterUpdated","alignOverlay","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","pressedInInputText","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","shiftKey","setSelectionRange","selectionStart","len","stopPropagation","hasFocusableElements","firstHiddenFocusableElementOnOverlay","onOverlayEnter","el","_this3","set","$primevue","config","zIndex","addStyle","position","top","left","filterInput","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","_this4","unbindScrollListener","$nextTick","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this5","document","addEventListener","removeEventListener","_this6","ConnectedOverlayScrollHandler","container","_this7","isTouchDevice","window","_this8","label","querySelector","concat","isVisible","getFocusableElements","isOptionMatched","_this$getOptionLabel","isValidOption","toLocaleLowerCase","startsWith","isValidSelectedOption","equals","equalityKey","_this9","findIndex","_this10","findLastIndex","_this11","matchedOptionIndex","_this12","_this13","hasSelectedOption","selectedIndex","char","_this14","clearTimeout","_this15","focusedOptionId","element","findSingle","scrollIntoView","block","inline","flatOptions","_this16","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","_this17","filteredOptions","FilterService","searchFields","optionGroups","filtered","groupChildren","filteredItems","item","includes","_objectSpread","_defineProperty","_toConsumableArray","selectedOptionIndex","editableInputValue","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","locale","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this18","isClearIconVisible","hasFluid","isEmpty","directives","ripple","Ripple","components","InputText","VirtualScroller","Portal","InputIcon","IconField","TimesIcon","ChevronDownIcon","SpinnerIcon","SearchIcon","CheckIcon","BlankIcon","_openBlock","_createElementBlock","_mergeProps","ref","$data","_ctx","cx","onClick","$options","apply","ptmi","autocomplete","role","onKeydown","onInput","_hoisted_2","_renderSlot","$slots","_$options$label","_createTextVNode","_toDisplayString","clearCallback","_createBlock","_resolveDynamicComponent","_createElementVNode","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_component_IconField","unstyled","pt","_component_InputText","onVnodeMounted","onVnodeUpdated","_component_InputIcon","_component_SearchIcon","_component_VirtualScroller","items","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","_Fragment","_renderList","i","height","_withDirectives","$event","onMousemove","_component_CheckIcon","_component_BlankIcon","loader","_ref2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/select/BaseSelect.vue","../../src/select/Select.vue","../../src/select/Select.vue?vue&type=template&id=eca508e8&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport SelectStyle from 'primevue/select/style';\n\nexport default {\n name: 'BaseSelect',\n extends: BaseInput,\n props: {\n options: Array,\n optionLabel: [String, Function],\n optionValue: [String, Function],\n optionDisabled: [String, Function],\n optionGroupLabel: [String, Function],\n optionGroupChildren: [String, Function],\n scrollHeight: {\n type: String,\n default: '14rem'\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 editable: Boolean,\n placeholder: {\n type: String,\n default: null\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n inputId: {\n type: String,\n default: null\n },\n inputClass: {\n type: [String, Object],\n default: null\n },\n inputStyle: {\n type: Object,\n default: null\n },\n labelId: {\n type: String,\n default: null\n },\n labelClass: {\n type: [String, Object],\n default: null\n },\n labelStyle: {\n type: Object,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: undefined\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n resetFilterOnHide: {\n type: Boolean,\n default: false\n },\n resetFilterOnClear: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n autoFilterFocus: {\n type: Boolean,\n default: false\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 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: SelectStyle,\n provide() {\n return {\n $pcSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :id=\"id\" :class=\"cx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <input\n v-if=\"editable\"\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n type=\"text\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :value=\"editableInputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onEditableInput\"\n v-bind=\"ptm('label')\"\n />\n <span\n v-else\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel || (label === 'p-emptylabel' ? undefined : label)\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('label')\"\n >\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">{{ label === 'p-emptylabel' ? ' ' : label ?? 'empty' }}</slot>\n </span>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"[panelStyle, overlayStyle]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n type=\"text\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\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 : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span :class=\"cx('optionGroupLabel')\" v-bind=\"ptm('optionGroupLabel')\">{{ getOptionGroupLabel(option.optionGroup) }}</span>\n </slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :class=\"cx('option', { option, focusedOption: getOptionIndex(i, getItemOptions) })\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\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)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTItemOptions(option, getItemOptions, i, '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)\">\n <span :class=\"cx('optionLabel')\" v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\" :data-p-hidden-accessible=\"true\">\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')\" :data-p-hidden-accessible=\"true\">\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=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\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 </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isAndroid, isTouchDevice, isVisible, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseSelect from './BaseSelect.vue';\n\nexport default {\n name: 'Select',\n extends: BaseSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue() {\n this.isModelValueChanged = true;\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n\n this.isModelValueChanged = false;\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\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) : option;\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 getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option,\n index,\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 show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.(event);\n },\n onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n\n return;\n }\n\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, this.editable);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n\n case 'End':\n this.onEndKey(event, this.editable);\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 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onEditableInput(event) {\n const value = event.target.value;\n\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n\n !matched && (this.focusedOptionIndex = -1);\n\n this.updateModel(event, value);\n\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n // Check if the event is part of a text composition process (e.g., for Asian languages).\n // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n if (event.isComposing) return;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\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 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\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 this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\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 this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\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.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event, pressedInInputText = false) {\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n setTimeout(() => {\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n }, 1);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n if (this.autoFilterFocus && this.filter) {\n this.$nextTick(() => {\n focus(this.$refs.filterInput.$el);\n });\n }\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener() {\n if (!this.editable && !this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n this.labelClickListener = () => {\n focus(this.$refs.focusInput);\n };\n\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener() {\n if (this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\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 isSelected(option) {\n return equals(this.d_value, this.getOptionValue(option), this.equalityKey);\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 return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\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 let matched = false;\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) {\n matched = true;\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 return matched;\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\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: 'start' });\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) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\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 overlayRef(el) {\n this.overlay = el;\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 if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n // @deprecated use $filled instead\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : 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}', '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 isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n InputIcon,\n IconField,\n TimesIcon,\n ChevronDownIcon,\n SpinnerIcon,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :id=\"id\" :class=\"cx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <input\n v-if=\"editable\"\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n type=\"text\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :value=\"editableInputValue\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n :disabled=\"disabled\"\n autocomplete=\"off\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @input=\"onEditableInput\"\n v-bind=\"ptm('label')\"\n />\n <span\n v-else\n ref=\"focusInput\"\n :id=\"labelId || inputId\"\n :class=\"[cx('label'), inputClass, labelClass]\"\n :style=\"[inputStyle, labelStyle]\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel || (label === 'p-emptylabel' ? undefined : label)\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-disabled=\"disabled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('label')\"\n >\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">{{ label === 'p-emptylabel' ? ' ' : label ?? 'empty' }}</slot>\n </span>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :class=\"[cx('overlay'), panelClass, overlayClass]\" :style=\"[panelStyle, overlayStyle]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <div v-if=\"filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <IconField :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n type=\"text\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\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 : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span :class=\"cx('optionGroupLabel')\" v-bind=\"ptm('optionGroupLabel')\">{{ getOptionGroupLabel(option.optionGroup) }}</span>\n </slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :class=\"cx('option', { option, focusedOption: getOptionIndex(i, getItemOptions) })\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\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)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n v-bind=\"getPTItemOptions(option, getItemOptions, i, '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)\">\n <span :class=\"cx('optionLabel')\" v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\" :data-p-hidden-accessible=\"true\">\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')\" :data-p-hidden-accessible=\"true\">\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=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\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 </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isAndroid, isTouchDevice, isVisible, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseSelect from './BaseSelect.vue';\n\nexport default {\n name: 'Select',\n extends: BaseSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue() {\n this.isModelValueChanged = true;\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n\n this.isModelValueChanged = false;\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\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) : option;\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 getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option,\n index,\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 show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.(event);\n },\n onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n\n return;\n }\n\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, this.editable);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n\n case 'End':\n this.onEndKey(event, this.editable);\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 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onEditableInput(event) {\n const value = event.target.value;\n\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n\n !matched && (this.focusedOptionIndex = -1);\n\n this.updateModel(event, value);\n\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, isHide = true) {\n const value = this.getOptionValue(option);\n\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n // Check if the event is part of a text composition process (e.g., for Asian languages).\n // If event.isComposing is true, it means the user is still composing text and the input is not finalized.\n if (event.isComposing) return;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\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 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\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 this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\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 this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\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.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.hide();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event, pressedInInputText = false) {\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n setTimeout(() => {\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n }, 1);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n if (this.autoFilterFocus && this.filter) {\n this.$nextTick(() => {\n focus(this.$refs.filterInput.$el);\n });\n }\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener() {\n if (!this.editable && !this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n this.labelClickListener = () => {\n focus(this.$refs.focusInput);\n };\n\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener() {\n if (this.labelClickListener) {\n const label = document.querySelector(`label[for=\"${this.labelId}\"]`);\n\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\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 isSelected(option) {\n return equals(this.d_value, this.getOptionValue(option), this.equalityKey);\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 return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\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 let matched = false;\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) {\n matched = true;\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 return matched;\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\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: 'start' });\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) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\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 overlayRef(el) {\n this.overlay = el;\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 if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n // @deprecated use $filled instead\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue() {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : 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}', '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 isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n VirtualScroller,\n Portal,\n InputIcon,\n IconField,\n TimesIcon,\n ChevronDownIcon,\n SpinnerIcon,\n SearchIcon,\n CheckIcon,\n BlankIcon\n }\n};\n</script>\n"],"names":["name","BaseInput","props","options","Array","optionLabel","String","Function","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","type","filter","Boolean","filterPlaceholder","filterLocale","filterMatchMode","filterFields","editable","placeholder","dataKey","showClear","inputId","inputClass","Object","inputStyle","labelId","labelClass","labelStyle","panelClass","overlayStyle","overlayClass","panelStyle","appendTo","loading","clearIcon","undefined","dropdownIcon","filterIcon","loadingIcon","resetFilterOnHide","resetFilterOnClear","virtualScrollerOptions","autoOptionFocus","autoFilterFocus","selectOnFocus","focusOnHover","highlightOnSelect","checkmark","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","tabindex","Number","ariaLabel","ariaLabelledby","style","SelectStyle","provide","$pcSelect","$parentInstance","BaseSelect","inheritAttrs","emits","outsideClickListener","scrollHandler","resizeListener","labelClickListener","overlay","list","virtualScroller","searchTimeout","searchValue","isModelValueChanged","data","id","$attrs","clicked","focused","focusedOptionIndex","filterValue","overlayVisible","watch","$attrsId","newValue","UniqueComponentId","modelValue","autoUpdateModel","mounted","bindLabelClickListener","updated","scrollInView","findSelectedOptionIndex","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","unbindLabelClickListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","getPTItemOptions","itemOptions","key","ptm","context","selected","isSelected","disabled","isOptionDisabled","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","show","isFocus","$emit","findFirstFocusedOptionIndex","focus","$refs","focusInput","hide","_this2","_hide","setTimeout","onFocus","event","onBlur","_this$formField$onBlu","_this$formField","formField","call","onKeyDown","isAndroid","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","isPrintableCharacter","searchOptions","onEditableInput","value","target","matched","updateModel","isNotEmpty","onContainerClick","tagName","getAttribute","closest","contains","onClearClick","onFirstHiddenFocus","focusableEl","relatedTarget","getFirstFocusableElement","onLastHiddenFocus","getLastFocusableElement","onOptionSelect","isHide","arguments","onOptionMouseMove","changeFocusedOptionIndex","onFilterChange","originalEvent","scrollToIndex","onFilterKeyDown","isComposing","onFilterBlur","onFilterUpdated","alignOverlay","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","pressedInInputText","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","shiftKey","setSelectionRange","selectionStart","len","stopPropagation","hasFocusableElements","firstHiddenFocusableElementOnOverlay","onOverlayEnter","el","_this3","set","$primevue","config","zIndex","addStyle","position","top","left","filterInput","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","_this4","unbindScrollListener","$nextTick","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this5","document","addEventListener","removeEventListener","_this6","ConnectedOverlayScrollHandler","container","_this7","isTouchDevice","window","_this8","label","querySelector","concat","isVisible","getFocusableElements","isOptionMatched","_this$getOptionLabel","isValidOption","toLocaleLowerCase","startsWith","isValidSelectedOption","equals","d_value","equalityKey","_this9","findIndex","_this10","findLastIndex","_this11","matchedOptionIndex","_this12","_this13","$filled","selectedIndex","char","_this14","clearTimeout","_this15","focusedOptionId","element","findSingle","scrollIntoView","block","inline","writeValue","flatOptions","_this16","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","_this17","filteredOptions","FilterService","searchFields","optionGroups","filtered","groupChildren","filteredItems","item","includes","_objectSpread","_defineProperty","_toConsumableArray","hasSelectedOption","selectedOptionIndex","editableInputValue","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","locale","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this18","isClearIconVisible","directives","ripple","Ripple","components","InputText","VirtualScroller","Portal","InputIcon","IconField","TimesIcon","ChevronDownIcon","SpinnerIcon","SearchIcon","CheckIcon","BlankIcon","_openBlock","_createElementBlock","_mergeProps","ref","$data","_ctx","cx","onClick","$options","apply","ptmi","autocomplete","role","invalid","onKeydown","onInput","_hoisted_2","_renderSlot","$slots","_$options$label","_createTextVNode","_toDisplayString","clearCallback","_createBlock","_resolveDynamicComponent","_createElementVNode","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_component_IconField","unstyled","pt","_component_InputText","onVnodeMounted","onVnodeUpdated","variant","_component_InputIcon","_component_SearchIcon","_component_VirtualScroller","items","content","_withCtx","_ref","styleClass","getItemOptions","contentStyle","itemSize","_Fragment","_renderList","i","height","_withDirectives","$event","onMousemove","_component_CheckIcon","_component_BlankIcon","loader","_ref2"],"mappings":"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"}
|