primevue 4.2.5 → 4.3.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/LICENSE.md +1 -1
- package/accordion/Accordion.vue +0 -8
- package/accordion/index.mjs +1 -9
- package/accordion/index.mjs.map +1 -1
- package/accordion/style/index.mjs +2 -5
- package/accordion/style/index.mjs.map +1 -1
- package/accordioncontent/index.mjs +1 -1
- package/accordionheader/AccordionHeader.vue +2 -2
- package/accordionheader/index.mjs +4 -4
- package/accordionheader/index.mjs.map +1 -1
- package/accordionpanel/index.mjs +1 -1
- package/animateonscroll/index.d.ts +1 -1
- package/animateonscroll/index.mjs +4 -4
- package/animateonscroll/index.mjs.map +1 -1
- package/animateonscroll/style/index.d.ts +1 -1
- package/autocomplete/AutoComplete.vue +90 -23
- package/autocomplete/index.d.ts +19 -2
- package/autocomplete/index.mjs +127 -55
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +15 -19
- package/autocomplete/style/index.mjs.map +1 -1
- package/avatar/index.mjs +1 -1
- package/avatar/style/index.mjs +4 -7
- package/avatar/style/index.mjs.map +1 -1
- package/avatargroup/index.mjs +1 -1
- package/badge/index.mjs +1 -1
- package/badge/style/index.mjs +6 -9
- package/badge/style/index.mjs.map +1 -1
- package/badgedirective/index.mjs +6 -6
- package/badgedirective/index.mjs.map +1 -1
- package/blockui/BlockUI.vue +2 -1
- package/blockui/index.mjs +3 -2
- package/blockui/index.mjs.map +1 -1
- package/blockui/style/index.mjs +2 -5
- package/blockui/style/index.mjs.map +1 -1
- package/breadcrumb/index.mjs +1 -1
- package/breadcrumb/style/index.mjs +4 -7
- package/breadcrumb/style/index.mjs.map +1 -1
- package/button/Button.vue +1 -1
- package/button/index.d.ts +11 -1
- package/button/index.mjs +5 -4
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs +9 -12
- package/button/style/index.mjs.map +1 -1
- package/buttongroup/index.mjs +1 -1
- package/buttongroup/style/index.mjs +2 -5
- package/buttongroup/style/index.mjs.map +1 -1
- package/card/index.mjs +1 -1
- package/card/style/index.mjs +2 -5
- package/card/style/index.mjs.map +1 -1
- package/carousel/index.mjs +2 -2
- package/carousel/index.mjs.map +1 -1
- package/carousel/style/index.mjs +19 -22
- package/carousel/style/index.mjs.map +1 -1
- package/cascadeselect/CascadeSelect.vue +16 -17
- package/cascadeselect/CascadeSelectSub.vue +1 -1
- package/cascadeselect/index.d.ts +2 -2
- package/cascadeselect/index.mjs +26 -28
- package/cascadeselect/index.mjs.map +1 -1
- package/cascadeselect/style/index.mjs +17 -19
- package/cascadeselect/style/index.mjs.map +1 -1
- package/chart/index.mjs +4 -4
- package/checkbox/index.d.ts +2 -2
- package/checkbox/index.mjs +2 -2
- package/checkbox/index.mjs.map +1 -1
- package/checkbox/style/index.mjs +5 -8
- package/checkbox/style/index.mjs.map +1 -1
- package/checkboxgroup/index.mjs +1 -1
- package/checkboxgroup/style/index.mjs +2 -5
- package/checkboxgroup/style/index.mjs.map +1 -1
- package/chip/index.mjs +1 -1
- package/chip/style/index.mjs +2 -5
- package/chip/style/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +2 -2
- package/colorpicker/index.mjs +7 -7
- package/colorpicker/index.mjs.map +1 -1
- package/colorpicker/style/index.mjs +7 -10
- package/colorpicker/style/index.mjs.map +1 -1
- package/column/BaseColumn.vue +1 -1
- package/column/index.d.ts +2 -2
- package/column/index.mjs +1 -1
- package/column/index.mjs.map +1 -1
- package/columngroup/index.mjs.map +1 -1
- package/confirmdialog/index.d.ts +4 -0
- package/confirmdialog/index.mjs +1 -1
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmdialog/style/index.mjs +2 -5
- package/confirmdialog/style/index.mjs.map +1 -1
- package/confirmpopup/ConfirmPopup.vue +2 -2
- package/confirmpopup/index.mjs +4 -4
- package/confirmpopup/index.mjs.map +1 -1
- package/confirmpopup/style/index.mjs +2 -5
- package/confirmpopup/style/index.mjs.map +1 -1
- package/contextmenu/ContextMenu.vue +6 -12
- package/contextmenu/index.mjs +9 -15
- package/contextmenu/index.mjs.map +1 -1
- package/contextmenu/style/index.mjs +7 -10
- package/contextmenu/style/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +24 -14
- package/datatable/BodyRow.vue +0 -1
- package/datatable/ColumnFilter.vue +10 -16
- package/datatable/DataTable.vue +6 -6
- package/datatable/FilterHeaderCell.vue +189 -0
- package/datatable/FooterCell.vue +2 -2
- package/datatable/HeaderCell.vue +4 -4
- package/datatable/TableBody.vue +3 -10
- package/datatable/TableHeader.vue +23 -50
- package/datatable/index.d.ts +89 -39
- package/datatable/index.mjs +444 -234
- package/datatable/index.mjs.map +1 -1
- package/datatable/style/index.mjs +32 -36
- package/datatable/style/index.mjs.map +1 -1
- package/dataview/index.mjs +2 -2
- package/dataview/index.mjs.map +1 -1
- package/dataview/style/index.mjs +6 -9
- package/dataview/style/index.mjs.map +1 -1
- package/datepicker/BaseDatePicker.vue +0 -4
- package/datepicker/DatePicker.vue +46 -20
- package/datepicker/index.d.ts +2 -6
- package/datepicker/index.mjs +78 -52
- package/datepicker/index.mjs.map +1 -1
- package/datepicker/style/index.mjs +26 -28
- package/datepicker/style/index.mjs.map +1 -1
- package/deferredcontent/index.mjs +1 -1
- package/dialog/Dialog.vue +3 -11
- package/dialog/index.d.ts +1 -1
- package/dialog/index.mjs +7 -14
- package/dialog/index.mjs.map +1 -1
- package/dialog/style/index.mjs +10 -14
- package/dialog/style/index.mjs.map +1 -1
- package/divider/index.mjs +1 -1
- package/divider/style/index.mjs +6 -10
- package/divider/style/index.mjs.map +1 -1
- package/dock/DockSub.vue +5 -13
- package/dock/index.mjs +6 -14
- package/dock/index.mjs.map +1 -1
- package/dock/style/index.mjs +9 -12
- package/dock/style/index.mjs.map +1 -1
- package/drawer/Drawer.vue +7 -4
- package/drawer/index.d.ts +4 -0
- package/drawer/index.mjs +7 -5
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs +10 -13
- package/drawer/style/index.mjs.map +1 -1
- package/dynamicdialog/DynamicDialog.vue +5 -5
- package/dynamicdialog/index.mjs +8 -6
- package/dynamicdialog/index.mjs.map +1 -1
- package/editor/Editor.vue +9 -11
- package/editor/index.d.ts +0 -15
- package/editor/index.mjs +16 -16
- package/editor/index.mjs.map +1 -1
- package/editor/style/index.mjs +4 -7
- package/editor/style/index.mjs.map +1 -1
- package/fieldset/Fieldset.vue +4 -12
- package/fieldset/index.mjs +9 -17
- package/fieldset/index.mjs.map +1 -1
- package/fieldset/style/index.mjs +4 -7
- package/fieldset/style/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +9 -7
- package/fileupload/index.d.ts +3 -3
- package/fileupload/index.mjs +12 -10
- package/fileupload/index.mjs.map +1 -1
- package/fileupload/style/index.mjs +4 -7
- package/fileupload/style/index.mjs.map +1 -1
- package/floatlabel/index.mjs +1 -1
- package/floatlabel/style/index.mjs +4 -8
- package/floatlabel/style/index.mjs.map +1 -1
- package/fluid/index.mjs +1 -1
- package/focustrap/index.mjs +4 -4
- package/focustrap/index.mjs.map +1 -1
- package/galleria/Galleria.vue +2 -1
- package/galleria/GalleriaContent.vue +3 -11
- package/galleria/GalleriaThumbnails.vue +15 -8
- package/galleria/index.mjs +28 -30
- package/galleria/index.mjs.map +1 -1
- package/galleria/style/index.mjs +23 -26
- package/galleria/style/index.mjs.map +1 -1
- package/iconfield/index.mjs +1 -1
- package/iconfield/style/index.mjs +2 -5
- package/iconfield/style/index.mjs.map +1 -1
- package/iftalabel/index.mjs +1 -1
- package/iftalabel/style/index.mjs +2 -5
- package/iftalabel/style/index.mjs.map +1 -1
- package/image/Image.vue +2 -1
- package/image/index.d.ts +4 -0
- package/image/index.mjs +6 -5
- package/image/index.mjs.map +1 -1
- package/image/style/index.mjs +8 -11
- package/image/style/index.mjs.map +1 -1
- package/imagecompare/index.mjs +1 -1
- package/imagecompare/style/index.mjs +2 -5
- package/imagecompare/style/index.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/index.mjs +1 -0
- package/index.mjs.map +1 -1
- package/inlinemessage/index.mjs +1 -1
- package/inlinemessage/style/index.mjs +7 -10
- package/inlinemessage/style/index.mjs.map +1 -1
- package/inplace/index.mjs +4 -4
- package/inplace/style/index.mjs +4 -7
- package/inplace/style/index.mjs.map +1 -1
- package/inputchips/InputChips.vue +2 -10
- package/inputchips/index.mjs +6 -14
- package/inputchips/index.mjs.map +1 -1
- package/inputchips/style/index.mjs +11 -14
- package/inputchips/style/index.mjs.map +1 -1
- package/inputgroup/index.mjs +1 -1
- package/inputgroup/style/index.mjs +2 -5
- package/inputgroup/style/index.mjs.map +1 -1
- package/inputgroupaddon/index.mjs +1 -1
- package/inputicon/index.mjs +1 -1
- package/inputmask/InputMask.vue +26 -17
- package/inputmask/index.d.ts +2 -2
- package/inputmask/index.mjs +28 -17
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/InputNumber.vue +17 -6
- package/inputnumber/index.d.ts +4 -4
- package/inputnumber/index.mjs +20 -12
- package/inputnumber/index.mjs.map +1 -1
- package/inputnumber/style/index.mjs +12 -14
- package/inputnumber/style/index.mjs.map +1 -1
- package/inputotp/index.d.ts +23 -8
- package/inputotp/index.mjs +1 -1
- package/inputotp/style/index.mjs +2 -5
- package/inputotp/style/index.mjs.map +1 -1
- package/inputtext/InputText.vue +1 -1
- package/inputtext/index.d.ts +1 -1
- package/inputtext/index.mjs +3 -2
- package/inputtext/index.mjs.map +1 -1
- package/inputtext/style/index.mjs +5 -8
- package/inputtext/style/index.mjs.map +1 -1
- package/keyfilter/index.mjs +8 -9
- package/keyfilter/index.mjs.map +1 -1
- package/knob/index.mjs +3 -3
- package/knob/index.mjs.map +1 -1
- package/knob/style/index.mjs +5 -8
- package/knob/style/index.mjs.map +1 -1
- package/listbox/Listbox.vue +7 -13
- package/listbox/index.mjs +10 -16
- package/listbox/index.mjs.map +1 -1
- package/listbox/style/index.mjs +11 -14
- package/listbox/style/index.mjs.map +1 -1
- package/megamenu/MegaMenu.vue +9 -15
- package/megamenu/index.mjs +12 -18
- package/megamenu/index.mjs.map +1 -1
- package/megamenu/style/index.mjs +15 -18
- package/megamenu/style/index.mjs.map +1 -1
- package/menu/Menu.vue +9 -17
- package/menu/index.d.ts +10 -0
- package/menu/index.mjs +10 -17
- package/menu/index.mjs.map +1 -1
- package/menu/style/index.mjs +6 -9
- package/menu/style/index.mjs.map +1 -1
- package/menubar/Menubar.vue +10 -16
- package/menubar/index.mjs +14 -20
- package/menubar/index.mjs.map +1 -1
- package/menubar/style/index.mjs +10 -13
- package/menubar/style/index.mjs.map +1 -1
- package/message/index.mjs +4 -4
- package/message/style/index.mjs +4 -7
- package/message/style/index.mjs.map +1 -1
- package/metergroup/index.mjs +1 -1
- package/metergroup/style/index.mjs +6 -9
- package/metergroup/style/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +23 -18
- package/multiselect/index.d.ts +12 -6
- package/multiselect/index.mjs +32 -28
- package/multiselect/index.mjs.map +1 -1
- package/multiselect/style/index.mjs +17 -20
- package/multiselect/style/index.mjs.map +1 -1
- package/orderlist/OrderList.vue +1 -10
- package/orderlist/index.mjs +7 -15
- package/orderlist/index.mjs.map +1 -1
- package/orderlist/style/index.mjs +2 -5
- package/orderlist/style/index.mjs.map +1 -1
- package/organizationchart/index.mjs +4 -4
- package/organizationchart/style/index.mjs +9 -12
- package/organizationchart/style/index.mjs.map +1 -1
- package/overlaybadge/index.mjs +1 -1
- package/overlaybadge/style/index.mjs +2 -5
- package/overlaybadge/style/index.mjs.map +1 -1
- package/package.json +6 -5
- package/paginator/index.mjs +2 -2
- package/paginator/index.mjs.map +1 -1
- package/paginator/style/index.mjs +18 -21
- package/paginator/style/index.mjs.map +1 -1
- package/panel/Panel.vue +5 -13
- package/panel/index.mjs +7 -15
- package/panel/index.mjs.map +1 -1
- package/panel/style/index.mjs +4 -7
- package/panel/style/index.mjs.map +1 -1
- package/panelmenu/PanelMenu.vue +2 -12
- package/panelmenu/index.mjs +8 -18
- package/panelmenu/index.mjs.map +1 -1
- package/panelmenu/style/index.mjs +8 -11
- package/panelmenu/style/index.mjs.map +1 -1
- package/passthrough/index.mjs +3 -3
- package/password/Password.vue +3 -10
- package/password/index.d.ts +2 -2
- package/password/index.mjs +9 -16
- package/password/index.mjs.map +1 -1
- package/password/style/index.mjs +8 -11
- package/password/style/index.mjs.map +1 -1
- package/picklist/PickList.vue +2 -9
- package/picklist/index.mjs +8 -14
- package/picklist/index.mjs.map +1 -1
- package/picklist/style/index.mjs +2 -5
- package/picklist/style/index.mjs.map +1 -1
- package/popover/Popover.vue +2 -2
- package/popover/index.mjs +4 -4
- package/popover/index.mjs.map +1 -1
- package/popover/style/index.mjs +2 -5
- package/popover/style/index.mjs.map +1 -1
- package/portal/index.mjs +1 -1
- package/progressbar/index.mjs +1 -1
- package/progressbar/style/index.mjs +4 -7
- package/progressbar/style/index.mjs.map +1 -1
- package/progressspinner/index.mjs +1 -1
- package/progressspinner/style/index.mjs +2 -5
- package/progressspinner/style/index.mjs.map +1 -1
- package/radiobutton/index.d.ts +2 -2
- package/radiobutton/index.mjs +1 -1
- package/radiobutton/index.mjs.map +1 -1
- package/radiobutton/style/index.mjs +5 -8
- package/radiobutton/style/index.mjs.map +1 -1
- package/radiobuttongroup/index.mjs +1 -1
- package/radiobuttongroup/style/index.mjs +2 -5
- package/radiobuttongroup/style/index.mjs.map +1 -1
- package/rating/Rating.vue +6 -11
- package/rating/index.mjs +7 -12
- package/rating/index.mjs.map +1 -1
- package/rating/style/index.mjs +11 -14
- package/rating/style/index.mjs.map +1 -1
- package/ripple/index.mjs +16 -13
- package/ripple/index.mjs.map +1 -1
- package/ripple/style/index.mjs +2 -5
- package/ripple/style/index.mjs.map +1 -1
- package/row/index.mjs.map +1 -1
- package/scrollpanel/ScrollPanel.vue +1 -10
- package/scrollpanel/index.mjs +3 -11
- package/scrollpanel/index.mjs.map +1 -1
- package/scrollpanel/style/index.mjs +2 -5
- package/scrollpanel/style/index.mjs.map +1 -1
- package/scrolltop/index.mjs +1 -1
- package/scrolltop/style/index.mjs +4 -7
- package/scrolltop/style/index.mjs.map +1 -1
- package/select/Select.vue +55 -26
- package/select/index.d.ts +9 -5
- package/select/index.mjs +89 -63
- package/select/index.mjs.map +1 -1
- package/select/style/index.mjs +15 -18
- package/select/style/index.mjs.map +1 -1
- package/selectbutton/index.mjs +3 -3
- package/selectbutton/style/index.mjs +4 -7
- package/selectbutton/style/index.mjs.map +1 -1
- package/skeleton/index.mjs +1 -1
- package/skeleton/style/index.mjs +4 -7
- package/skeleton/style/index.mjs.map +1 -1
- package/slider/Slider.vue +1 -1
- package/slider/index.mjs +3 -3
- package/slider/index.mjs.map +1 -1
- package/slider/style/index.mjs +5 -8
- package/slider/style/index.mjs.map +1 -1
- package/speeddial/SpeedDial.vue +8 -15
- package/speeddial/index.d.ts +1 -1
- package/speeddial/index.mjs +13 -19
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/style/index.mjs +15 -18
- package/speeddial/style/index.mjs.map +1 -1
- package/splitbutton/SplitButton.vue +2 -11
- package/splitbutton/index.d.ts +2 -2
- package/splitbutton/index.mjs +3 -11
- package/splitbutton/index.mjs.map +1 -1
- package/splitbutton/style/index.mjs +5 -8
- package/splitbutton/style/index.mjs.map +1 -1
- package/splitter/Splitter.vue +31 -14
- package/splitter/index.d.ts +1 -1
- package/splitter/index.mjs +28 -14
- package/splitter/index.mjs.map +1 -1
- package/splitter/style/index.mjs +6 -9
- package/splitter/style/index.mjs.map +1 -1
- package/splitterpanel/index.mjs +1 -1
- package/step/index.mjs +1 -1
- package/step/index.mjs.map +1 -1
- package/stepitem/index.mjs +1 -1
- package/stepitem/index.mjs.map +1 -1
- package/steplist/index.mjs +1 -1
- package/steppanel/index.mjs +1 -1
- package/steppanel/index.mjs.map +1 -1
- package/steppanels/index.mjs +1 -1
- package/stepper/Stepper.vue +0 -8
- package/stepper/index.mjs +1 -9
- package/stepper/index.mjs.map +1 -1
- package/stepper/style/index.mjs +4 -7
- package/stepper/style/index.mjs.map +1 -1
- package/steps/index.mjs +2 -2
- package/steps/style/index.mjs +8 -11
- package/steps/style/index.mjs.map +1 -1
- package/styleclass/index.mjs +1 -1
- package/tab/Tab.vue +3 -3
- package/tab/index.mjs +4 -4
- package/tab/index.mjs.map +1 -1
- package/tablist/TabList.vue +2 -2
- package/tablist/index.mjs +4 -4
- package/tablist/index.mjs.map +1 -1
- package/tabmenu/index.mjs +2 -2
- package/tabmenu/index.mjs.map +1 -1
- package/tabmenu/style/index.mjs +6 -9
- package/tabmenu/style/index.mjs.map +1 -1
- package/tabpanel/index.mjs +1 -1
- package/tabpanel/index.mjs.map +1 -1
- package/tabpanels/index.mjs +1 -1
- package/tabs/Tabs.vue +0 -8
- package/tabs/index.mjs +1 -9
- package/tabs/index.mjs.map +1 -1
- package/tabs/style/index.mjs +4 -7
- package/tabs/style/index.mjs.map +1 -1
- package/tabview/TabView.vue +3 -9
- package/tabview/index.mjs +7 -13
- package/tabview/index.mjs.map +1 -1
- package/tabview/style/index.mjs +11 -14
- package/tabview/style/index.mjs.map +1 -1
- package/tag/index.mjs +1 -1
- package/tag/style/index.mjs +4 -7
- package/tag/style/index.mjs.map +1 -1
- package/terminal/index.mjs +1 -1
- package/terminal/style/index.mjs +2 -5
- package/terminal/style/index.mjs.map +1 -1
- package/textarea/Textarea.vue +5 -2
- package/textarea/index.d.ts +4 -4
- package/textarea/index.mjs +7 -3
- package/textarea/index.mjs.map +1 -1
- package/textarea/style/index.mjs +5 -8
- package/textarea/style/index.mjs.map +1 -1
- package/tieredmenu/TieredMenu.vue +8 -13
- package/tieredmenu/index.mjs +11 -16
- package/tieredmenu/index.mjs.map +1 -1
- package/tieredmenu/style/index.mjs +11 -14
- package/tieredmenu/style/index.mjs.map +1 -1
- package/timeline/index.d.ts +4 -0
- package/timeline/index.mjs +1 -1
- package/timeline/style/index.mjs +4 -7
- package/timeline/style/index.mjs.map +1 -1
- package/toast/BaseToast.vue +12 -0
- package/toast/ToastMessage.vue +38 -4
- package/toast/index.d.ts +12 -0
- package/toast/index.mjs +79 -15
- package/toast/index.mjs.map +1 -1
- package/toast/style/index.mjs +12 -15
- package/toast/style/index.mjs.map +1 -1
- package/togglebutton/ToggleButton.vue +1 -0
- package/togglebutton/index.mjs +3 -2
- package/togglebutton/index.mjs.map +1 -1
- package/togglebutton/style/index.mjs +5 -8
- package/togglebutton/style/index.mjs.map +1 -1
- package/toggleswitch/index.mjs +1 -1
- package/toggleswitch/index.mjs.map +1 -1
- package/toggleswitch/style/index.mjs +5 -8
- package/toggleswitch/style/index.mjs.map +1 -1
- package/toolbar/index.mjs +1 -1
- package/toolbar/style/index.mjs +2 -5
- package/toolbar/style/index.mjs.map +1 -1
- package/tooltip/index.mjs +62 -14
- package/tooltip/index.mjs.map +1 -1
- package/tooltip/style/index.mjs +2 -5
- package/tooltip/style/index.mjs.map +1 -1
- package/tree/Tree.vue +2 -2
- package/tree/index.mjs +16 -16
- package/tree/index.mjs.map +1 -1
- package/tree/style/index.mjs +8 -11
- package/tree/style/index.mjs.map +1 -1
- package/treeselect/TreeSelect.vue +21 -26
- package/treeselect/index.d.ts +2 -2
- package/treeselect/index.mjs +56 -72
- package/treeselect/index.mjs.map +1 -1
- package/treeselect/style/index.mjs +10 -13
- package/treeselect/style/index.mjs.map +1 -1
- package/treetable/BodyCell.vue +8 -5
- package/treetable/FooterCell.vue +2 -2
- package/treetable/HeaderCell.vue +4 -4
- package/treetable/index.d.ts +29 -0
- package/treetable/index.mjs +42 -35
- package/treetable/index.mjs.map +1 -1
- package/treetable/style/index.mjs +22 -25
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/utils/index.d.ts +9 -0
- package/utils/index.mjs +16 -0
- package/utils/index.mjs.map +1 -0
- package/utils/package.json +5 -0
- package/virtualscroller/VirtualScroller.vue +16 -10
- package/virtualscroller/index.mjs +21 -15
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs +2 -5
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/cascadeselect/BaseCascadeSelect.vue","../../src/cascadeselect/CascadeSelectSub.vue","../../src/cascadeselect/CascadeSelectSub.vue?vue&type=template&id=799acc73&lang.js","../../src/cascadeselect/CascadeSelect.vue","../../src/cascadeselect/CascadeSelect.vue?vue&type=template&id=ca734060&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport CascadeSelectStyle from 'primevue/cascadeselect/style';\n\nexport default {\n name: 'BaseCascadeSelect',\n extends: BaseInput,\n props: {\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n placeholder: String,\n breakpoint: {\n type: String,\n default: '960px'\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: undefined\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 inputProps: {\n type: null,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelProps: {\n type: null,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayProps: {\n type: null,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n optionGroupIcon: {\n type: String,\n default: undefined\n },\n autoOptionFocus: {\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 searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\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 emptySearchMessage: {\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 ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: CascadeSelectStyle,\n provide() {\n return {\n $pcCascadeSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n {{ label }}\n </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')\" role=\"button\" tabindex=\"-1\" 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 <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\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\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"d_value\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"d_value\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\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 <slot name=\"footer\" :value=\"d_value\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\nimport TimesIcon from '@primevue/icons/times';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\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 if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\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 isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.$filled ? this.findOptionPathByValue(this.d_value) : this.activeOptionPath;\n\n if (this.$filled && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\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.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\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 this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled || this.loading) {\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);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (type == 'hover' && this.queryMatches) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath = activeOptionPath;\n },\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (this.dirty || (!this.dirty && isNotEmpty(this.d_value))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n },\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (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() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onClearClick(event) {\n this.updateModel(event, null);\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 } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const parentOption = this.activeOptionPath.find((p) => p.key === processedOption?.parentKey);\n const matched = this.focusedOptionInfo.parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo.parentKey);\n const root = isEmpty(processedOption?.parent);\n\n if (matched) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath.some((p) => processedOption?.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo = { index: -1, parentKey: processedOption?.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.index !== -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\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 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 this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\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 bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -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), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\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 findOptionPathByValue(value, processedOptions, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey)) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\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.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions.findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionInfo.index === -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, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: 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 }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n },\n overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.$filled) {\n const activeOptionPath = this.findOptionPathByValue(this.d_value);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\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.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n components: {\n CascadeSelectSub,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n AngleRightIcon,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n {{ label }}\n </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')\" role=\"button\" tabindex=\"-1\" 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 <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\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\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"d_value\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"d_value\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\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 <slot name=\"footer\" :value=\"d_value\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\nimport TimesIcon from '@primevue/icons/times';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\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 if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\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 isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.$filled ? this.findOptionPathByValue(this.d_value) : this.activeOptionPath;\n\n if (this.$filled && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\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.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\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 this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled || this.loading) {\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);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (type == 'hover' && this.queryMatches) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath = activeOptionPath;\n },\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (this.dirty || (!this.dirty && isNotEmpty(this.d_value))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n },\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (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() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onClearClick(event) {\n this.updateModel(event, null);\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 } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const parentOption = this.activeOptionPath.find((p) => p.key === processedOption?.parentKey);\n const matched = this.focusedOptionInfo.parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo.parentKey);\n const root = isEmpty(processedOption?.parent);\n\n if (matched) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath.some((p) => processedOption?.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo = { index: -1, parentKey: processedOption?.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.index !== -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\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 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 this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\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 bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -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), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\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 findOptionPathByValue(value, processedOptions, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey)) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\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.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions.findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionInfo.index === -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, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: 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 }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n },\n overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.$filled) {\n const activeOptionPath = this.findOptionPathByValue(this.d_value);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\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.focusedOptionInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n components: {\n CascadeSelectSub,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n AngleRightIcon,\n TimesIcon\n }\n};\n</script>\n"],"names":["name","BaseInput","props","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","placeholder","String","breakpoint","type","dataKey","showClear","Boolean","clearIcon","undefined","inputId","inputClass","Object","inputStyle","inputProps","panelClass","panelStyle","panelProps","overlayClass","overlayStyle","overlayProps","appendTo","loading","dropdownIcon","loadingIcon","optionGroupIcon","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","emptyMessage","tabindex","Number","ariaLabelledby","ariaLabel","style","CascadeSelectStyle","provide","$pcCascadeSelect","$parentInstance","hostName","BaseComponent","emits","container","selectId","focusedOptionId","activeOptionPath","level","templates","value","methods","getOptionId","processedOption","concat","key","getOptionLabel","resolveFieldData","option","getOptionValue","getPTOptions","index","ptm","context","optionGroup","isOptionGroup","active","isOptionActive","focused","isOptionFocused","disabled","isOptionDisabled","getOptionGroupLabel","getOptionGroupChildren","children","isNotEmpty","isOptionSelected","equals","some","path","getOptionLabelToRender","onOptionClick","event","$emit","originalEvent","isFocus","onOptionMouseEnter","onOptionMouseMove","containerRef","el","listAriaLabel","$primevue","config","locale","aria","listLabel","directives","ripple","Ripple","components","AngleRightIcon","_openBlock","_createElementBlock","_mergeProps","ref","$options","_ctx","cx","$props","_Fragment","_renderList","id","role","length","_withDirectives","onClick","$event","onMouseenter","onMousemove","_createBlock","_resolveDynamicComponent","selected","_toDisplayString","_component_AngleRightIcon","_component_CascadeSelectSub","onOptionChange","_cache","onOptionFocusChange","onOptionFocusEnterChange","pt","unstyled","BaseCascadeSelect","inheritAttrs","outsideClickListener","matchMediaListener","scrollHandler","resizeListener","overlay","searchTimeout","searchValue","data","$attrs","clicked","focusedOptionInfo","parentKey","overlayVisible","dirty","mobileActive","query","queryMatches","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","bindMatchMediaListener","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","unbindMatchMediaListener","destroy","ZIndex","clear","isString","prototype","hasOwnProperty","call","getProccessedOptionLabel","grouped","isProccessedOptionGroup","show","$filled","findOptionPathByValue","d_value","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this","_hide","setTimeout","onFocus","onBlur","_this$formField$onBlu","_this$formField","formField","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchOptions","isEmpty","filter","p","push","isHide","preventSelection","isSelected","startsWith","onOptionGroupSelect","onOptionSelect","_objectSpread","changeFocusedOptionIndex","arguments","forEach","updateModel","onContainerClick","target","getAttribute","closest","contains","onClearClick","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","visibleOptions","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","_this2","parentOption","find","matched","root","parent","onOverlayEnter","set","zIndex","addStyle","position","top","left","alignOverlay","scrollInView","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this3","document","addEventListener","removeEventListener","_this4","ConnectedOverlayScrollHandler","_this5","isTouchDevice","window","_this6","matchMedia","matches","isOptionMatched","_this$getProccessedOp","isValidOption","toLocaleLowerCase","isValidSelectedOption","_this7","findIndex","_this8","findLastIndex","_this9","matchedOptionIndex","slice","_this10","_this11","selectedIndex","processedOptions","i","equalityKey","matchedOptions","unshift","char","_this12","clearTimeout","_this13","$nextTick","element","findSingle","list","scrollIntoView","block","inline","writeValue","createProcessedOptions","_this14","newOption","overlayRef","computed","hasSelectedOption","label","_this15","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","isClearIconVisible","CascadeSelectSub","Portal","ChevronDownIcon","SpinnerIcon","TimesIcon","sx","ptmi","_createElementVNode","readonly","$data","invalid","apply","onKeydown","_hoisted_1","_renderSlot","$slots","clearCallback","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/cascadeselect/BaseCascadeSelect.vue","../../src/cascadeselect/CascadeSelectSub.vue","../../src/cascadeselect/CascadeSelectSub.vue?vue&type=template&id=10dc3af7&lang.js","../../src/cascadeselect/CascadeSelect.vue","../../src/cascadeselect/CascadeSelect.vue?vue&type=template&id=62da53bd&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport CascadeSelectStyle from 'primevue/cascadeselect/style';\n\nexport default {\n name: 'BaseCascadeSelect',\n extends: BaseInput,\n props: {\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n placeholder: String,\n breakpoint: {\n type: String,\n default: '960px'\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: undefined\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 inputProps: {\n type: null,\n default: null\n },\n panelClass: {\n type: [String, Object],\n default: null\n },\n panelStyle: {\n type: Object,\n default: null\n },\n panelProps: {\n type: null,\n default: null\n },\n overlayClass: {\n type: [String, Object],\n default: null\n },\n overlayStyle: {\n type: Object,\n default: null\n },\n overlayProps: {\n type: null,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n loading: {\n type: Boolean,\n default: false\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n optionGroupIcon: {\n type: String,\n default: undefined\n },\n autoOptionFocus: {\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 searchLocale: {\n type: String,\n default: undefined\n },\n searchMessage: {\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 emptySearchMessage: {\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 ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: CascadeSelectStyle,\n provide() {\n return {\n $pcCascadeSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath && this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <ul :ref=\"containerRef\" :class=\"cx('list')\" v-bind=\"level === 0 ? ptm('list') : ptm('optionList')\">\n <template v-for=\"(processedOption, index) of options\" :key=\"getOptionLabelToRender(processedOption)\">\n <li\n :id=\"getOptionId(processedOption)\"\n :class=\"cx('option', { processedOption })\"\n role=\"treeitem\"\n :aria-label=\"getOptionLabelToRender(processedOption)\"\n :aria-selected=\"isOptionGroup(processedOption) ? undefined : isOptionSelected(processedOption)\"\n :aria-expanded=\"isOptionGroup(processedOption) ? isOptionActive(processedOption) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"options.length\"\n :aria-posinset=\"index + 1\"\n v-bind=\"getPTOptions(processedOption, index, 'option')\"\n :data-p-option-group=\"isOptionGroup(processedOption)\"\n :data-p-active=\"isOptionActive(processedOption)\"\n :data-p-focus=\"isOptionFocused(processedOption)\"\n :data-p-disabled=\"isOptionDisabled(processedOption)\"\n >\n <div\n v-ripple\n :class=\"cx('optionContent')\"\n @click=\"onOptionClick($event, processedOption)\"\n @mouseenter=\"onOptionMouseEnter($event, processedOption)\"\n @mousemove=\"onOptionMouseMove($event, processedOption)\"\n v-bind=\"getPTOptions(processedOption, index, 'optionContent')\"\n >\n <component v-if=\"templates['option']\" :is=\"templates['option']\" :option=\"processedOption.option\" :selected=\"isOptionGroup(processedOption) ? false : isOptionSelected(processedOption)\" />\n <span v-else :class=\"cx('optionText')\" v-bind=\"getPTOptions(processedOption, index, 'optionText')\">{{ getOptionLabelToRender(processedOption) }}</span>\n <template v-if=\"isOptionGroup(processedOption)\">\n <span :class=\"cx('groupIconContainer')\">\n <component v-if=\"templates['optiongroupicon']\" :is=\"templates['optiongroupicon']\" :class=\"cx('groupIcon')\" />\n <span v-else-if=\"optionGroupIcon\" :class=\"[cx('groupIcon'), optionGroupIcon]\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n <AngleRightIcon v-else :class=\"cx('groupIcon')\" aria-hidden=\"true\" v-bind=\"getPTOptions(processedOption, index, 'groupIcon')\" />\n </span>\n </template>\n </div>\n <CascadeSelectSub\n v-if=\"isOptionGroup(processedOption) && isOptionActive(processedOption)\"\n role=\"group\"\n :class=\"cx('optionList')\"\n :selectId=\"selectId\"\n :focusedOptionId=\"focusedOptionId\"\n :options=\"getOptionGroupChildren(processedOption)\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"value\"\n @option-change=\"$emit('option-change', $event)\"\n @option-focus-change=\"$emit('option-focus-change', $event)\"\n @option-focus-enter-change=\"$emit('option-focus-enter-change', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nexport default {\n name: 'CascadeSelectSub',\n hostName: 'CascadeSelect',\n extends: BaseComponent,\n emits: ['option-change', 'option-focus-change', 'option-focus-enter-change'],\n container: null,\n props: {\n selectId: String,\n focusedOptionId: String,\n options: Array,\n optionLabel: String,\n optionValue: String,\n optionDisabled: null,\n optionGroupIcon: String,\n optionGroupLabel: String,\n optionGroupChildren: {\n type: [String, Array],\n default: null\n },\n activeOptionPath: Array,\n level: Number,\n templates: null,\n value: null\n },\n methods: {\n getOptionId(processedOption) {\n return `${this.selectId}_${processedOption.key}`;\n },\n getOptionLabel(processedOption) {\n return this.optionLabel ? resolveFieldData(processedOption.option, this.optionLabel) : processedOption.option;\n },\n getOptionValue(processedOption) {\n return this.optionValue ? resolveFieldData(processedOption.option, this.optionValue) : processedOption.option;\n },\n getPTOptions(processedOption, index, key) {\n return this.ptm(key, {\n context: {\n option: processedOption,\n index,\n level: this.level,\n optionGroup: this.isOptionGroup(processedOption),\n active: this.isOptionActive(processedOption),\n focused: this.isOptionFocused(processedOption),\n disabled: this.isOptionDisabled(processedOption)\n }\n });\n },\n isOptionDisabled(processedOption) {\n return this.optionDisabled ? resolveFieldData(processedOption.option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(processedOption) {\n return this.optionGroupLabel ? resolveFieldData(processedOption.option, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(processedOption) {\n return processedOption.children;\n },\n isOptionGroup(processedOption) {\n return isNotEmpty(processedOption.children);\n },\n isOptionSelected(processedOption) {\n return equals(this.value, processedOption?.option);\n },\n isOptionActive(processedOption) {\n return this.activeOptionPath && this.activeOptionPath.some((path) => path.key === processedOption.key);\n },\n isOptionFocused(processedOption) {\n return this.focusedOptionId === this.getOptionId(processedOption);\n },\n getOptionLabelToRender(processedOption) {\n return this.isOptionGroup(processedOption) ? this.getOptionGroupLabel(processedOption) : this.getOptionLabel(processedOption);\n },\n onOptionClick(event, processedOption) {\n this.$emit('option-change', { originalEvent: event, processedOption, isFocus: true });\n },\n onOptionMouseEnter(event, processedOption) {\n this.$emit('option-focus-enter-change', { originalEvent: event, processedOption });\n },\n onOptionMouseMove(event, processedOption) {\n this.$emit('option-focus-change', { originalEvent: event, processedOption });\n },\n containerRef(el) {\n this.container = el;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n AngleRightIcon: AngleRightIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"$id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n {{ label }}\n </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')\" role=\"button\" tabindex=\"-1\" 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 <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\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\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"d_value\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"$id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"$id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"d_value\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\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 <slot name=\"footer\" :value=\"d_value\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\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 if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\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 isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.$filled ? this.findOptionPathByValue(this.d_value) : this.activeOptionPath;\n\n if (this.$filled && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\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.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\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 this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled || this.loading) {\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);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath ? this.activeOptionPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key) : [];\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (type == 'hover' && this.queryMatches) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath = activeOptionPath;\n },\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (event.processedOption.level === 0) {\n this.dirty = true;\n }\n\n if (this.dirty || (!this.dirty && isNotEmpty(this.d_value))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n },\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (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() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onClearClick(event) {\n this.updateModel(event, null);\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 } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const parentOption = this.activeOptionPath.find((p) => p.key === processedOption?.parentKey);\n const matched = this.focusedOptionInfo.parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo.parentKey);\n const root = isEmpty(processedOption?.parent);\n\n if (matched) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath.some((p) => processedOption?.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo = { index: -1, parentKey: processedOption?.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.index !== -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\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 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 this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath && this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -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), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\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 findOptionPathByValue(value, processedOptions, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey)) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\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.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions.findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionInfo.index === -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, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: 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 }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n },\n overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.$filled) {\n const activeOptionPath = this.findOptionPathByValue(this.d_value);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath && this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\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.focusedOptionInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n components: {\n CascadeSelectSub,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n AngleRightIcon,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick($event)\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n :class=\"inputClass\"\n :style=\"inputStyle\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"tree\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"$id + '_tree'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"{ ...inputProps, ...ptm('hiddenInput') }\"\n />\n </div>\n <span :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n {{ label }}\n </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')\" role=\"button\" tabindex=\"-1\" 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 <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSearchResult')\" :data-p-hidden-accessible=\"true\">\n {{ searchResultMessageText }}\n </span>\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\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :class=\"[cx('overlay'), panelClass, overlayClass]\"\n :style=\"[panelStyle, overlayStyle]\"\n @click=\"onOverlayClick\"\n @keydown=\"onOverlayKeyDown\"\n v-bind=\"{ ...panelProps, ...overlayProps, ...ptm('overlay') }\"\n >\n <slot name=\"header\" :value=\"d_value\" :options=\"options\" />\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <CascadeSelectSub\n :id=\"$id + '_tree'\"\n role=\"tree\"\n aria-orientation=\"horizontal\"\n :selectId=\"$id\"\n :focusedOptionId=\"focused ? focusedOptionId : undefined\"\n :options=\"processedOptions\"\n :activeOptionPath=\"activeOptionPath\"\n :level=\"0\"\n :templates=\"$slots\"\n :optionLabel=\"optionLabel\"\n :optionValue=\"optionValue\"\n :optionDisabled=\"optionDisabled\"\n :optionGroupIcon=\"optionGroupIcon\"\n :optionGroupLabel=\"optionGroupLabel\"\n :optionGroupChildren=\"optionGroupChildren\"\n :value=\"d_value\"\n @option-change=\"onOptionClick\"\n @option-focus-change=\"onOptionMouseMove\"\n @option-focus-enter-change=\"onOptionMouseEnter\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\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 <slot name=\"footer\" :value=\"d_value\" :options=\"options\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, isString, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseCascadeSelect from './BaseCascadeSelect.vue';\nimport CascadeSelectSub from './CascadeSelectSub.vue';\n\nexport default {\n name: 'CascadeSelect',\n extends: BaseCascadeSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'click', 'group-change', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n clicked: false,\n focused: false,\n focusedOptionInfo: { index: -1, level: 0, parentKey: '' },\n activeOptionPath: [],\n overlayVisible: false,\n dirty: false,\n mobileActive: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.autoUpdateModel();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\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 if (this.mobileActive) {\n this.mobileActive = false;\n }\n },\n methods: {\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 isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n },\n getOptionGroupChildren(optionGroup, level) {\n return isString(this.optionGroupChildren) ? resolveFieldData(optionGroup, this.optionGroupChildren) : resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n },\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n },\n getProccessedOptionLabel(processedOption = {}) {\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n return grouped ? this.getOptionGroupLabel(processedOption.option, processedOption.level) : this.getOptionLabel(processedOption.option);\n },\n isProccessedOptionGroup(processedOption) {\n return isNotEmpty(processedOption?.children);\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.activeOptionPath = this.$filled ? this.findOptionPathByValue(this.d_value) : this.activeOptionPath;\n\n if (this.$filled && isNotEmpty(this.activeOptionPath)) {\n const processedOption = this.activeOptionPath[this.activeOptionPath.length - 1];\n\n this.focusedOptionInfo = { index: processedOption.index, level: processedOption.level, parentKey: processedOption.parentKey };\n } else {\n this.focusedOptionInfo = { index: this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex(), level: 0, parentKey: '' };\n }\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.activeOptionPath = [];\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n\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 this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled || this.loading) {\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);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\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 'PageDown':\n case 'PageUp':\n case 'Backspace':\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.searchOptions(event, event.key);\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onOptionChange(event) {\n const { processedOption, type } = event;\n\n if (isEmpty(processedOption)) return;\n\n const { index, key, level, parentKey, children } = processedOption;\n const grouped = isNotEmpty(children);\n const activeOptionPath = this.activeOptionPath ? this.activeOptionPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key) : [];\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (type == 'hover' && this.queryMatches) {\n return;\n }\n\n if (grouped) {\n activeOptionPath.push(processedOption);\n }\n\n this.activeOptionPath = activeOptionPath;\n },\n onOptionClick(event) {\n const { originalEvent, processedOption, isFocus, isHide, preventSelection } = event;\n const { index, key, level, parentKey } = processedOption;\n const grouped = this.isProccessedOptionGroup(processedOption);\n const selected = this.isSelected(processedOption);\n\n if (selected) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedOptionInfo = { index, level, parentKey };\n } else {\n if (grouped) {\n this.onOptionChange(event);\n this.onOptionGroupSelect(originalEvent, processedOption);\n } else {\n const activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== parentKey);\n\n activeOptionPath.push(processedOption);\n\n this.focusedOptionInfo = { index, level, parentKey };\n\n if (!preventSelection || processedOption?.children.length !== 0) {\n this.activeOptionPath = activeOptionPath;\n this.onOptionSelect(originalEvent, processedOption, isHide);\n }\n }\n }\n\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseEnter(event) {\n if (this.focusOnHover) {\n if (event.processedOption.level === 0) {\n this.dirty = true;\n }\n\n if (this.dirty || (!this.dirty && isNotEmpty(this.d_value))) {\n this.onOptionChange({ ...event, type: 'hover' });\n } else if (!this.dirty && event.processedOption.level === 0) {\n this.onOptionClick({ ...event, type: 'hover' });\n }\n }\n },\n onOptionMouseMove(event) {\n if (this.focused && this.focusOnHover) {\n this.changeFocusedOptionIndex(event, event.processedOption.index);\n }\n },\n onOptionSelect(event, processedOption, isHide = true) {\n const value = this.getOptionValue(processedOption?.option);\n\n this.activeOptionPath.forEach((p) => (p.selected = true));\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionGroupSelect(event, processedOption) {\n this.dirty = true;\n this.$emit('group-change', { originalEvent: event, value: processedOption.option });\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (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() : this.show();\n focus(this.$refs.focusInput);\n }\n\n this.clicked = true;\n this.$emit('click', event);\n },\n onClearClick(event) {\n this.updateModel(event, null);\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 } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findNextOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionInfo.index !== -1 ? this.findPrevOptionIndex(this.focusedOptionInfo.index) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n this.changeFocusedOptionIndex(event, optionIndex, true);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const parentOption = this.activeOptionPath.find((p) => p.key === processedOption?.parentKey);\n const matched = this.focusedOptionInfo.parentKey === '' || (parentOption && parentOption.key === this.focusedOptionInfo.parentKey);\n const root = isEmpty(processedOption?.parent);\n\n if (matched) {\n this.activeOptionPath = this.activeOptionPath.filter((p) => p.parentKey !== this.focusedOptionInfo.parentKey);\n }\n\n if (!root) {\n this.focusedOptionInfo = { index: -1, parentKey: parentOption ? parentOption.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (this.overlayVisible) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n if (grouped) {\n const matched = this.activeOptionPath.some((p) => processedOption?.key === p.key);\n\n if (matched) {\n this.focusedOptionInfo = { index: -1, parentKey: processedOption?.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n } else {\n this.onOptionChange({ originalEvent: event, processedOption });\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionInfo.index !== -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n this.onOptionClick({ originalEvent: event, processedOption, preventSelection: false });\n !grouped && this.hide();\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedOptionInfo.index !== -1) {\n const processedOption = this.visibleOptions[this.focusedOptionInfo.index];\n const grouped = this.isProccessedOptionGroup(processedOption);\n\n !grouped && this.onOptionChange({ originalEvent: event, processedOption });\n }\n\n this.overlayVisible && this.hide();\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 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 this.$emit('hide');\n this.overlay = null;\n this.dirty = false;\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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isOptionMatched(processedOption) {\n return this.isValidOption(processedOption) && this.getProccessedOptionLabel(processedOption)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isValidOption(processedOption) {\n return isNotEmpty(processedOption) && !this.isOptionDisabled(processedOption.option);\n },\n isValidSelectedOption(processedOption) {\n return this.isValidOption(processedOption) && this.isSelected(processedOption);\n },\n isSelected(processedOption) {\n return this.activeOptionPath && this.activeOptionPath.some((p) => p.key === processedOption.key);\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidOption(processedOption));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (processedOption) => this.isValidOption(processedOption));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((processedOption) => this.isValidOption(processedOption)) : -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), (processedOption) => this.isValidOption(processedOption)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n return this.visibleOptions.findIndex((processedOption) => this.isValidSelectedOption(processedOption));\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 findOptionPathByValue(value, processedOptions, level = 0) {\n processedOptions = processedOptions || (level === 0 && this.processedOptions);\n\n if (!processedOptions) return null;\n if (isEmpty(value)) return [];\n\n for (let i = 0; i < processedOptions.length; i++) {\n const processedOption = processedOptions[i];\n\n if (equals(value, this.getOptionValue(processedOption.option), this.equalityKey)) {\n return [processedOption];\n }\n\n const matchedOptions = this.findOptionPathByValue(value, processedOption.children, level + 1);\n\n if (matchedOptions) {\n matchedOptions.unshift(processedOption);\n\n return matchedOptions;\n }\n }\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.focusedOptionInfo.index !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionInfo.index).findIndex((processedOption) => this.isOptionMatched(processedOption)) : optionIndex + this.focusedOptionInfo.index;\n } else {\n optionIndex = this.visibleOptions.findIndex((processedOption) => this.isOptionMatched(processedOption));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionInfo.index === -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, preventSelection) {\n if (this.focusedOptionInfo.index !== index) {\n this.focusedOptionInfo.index = index;\n this.scrollInView();\n\n if (this.focusOnHover) {\n this.onOptionClick({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: false, preventSelection });\n }\n\n if (this.selectOnFocus) {\n this.onOptionChange({ originalEvent: event, processedOption: this.visibleOptions[index], isHide: 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 }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionInfo.index = this.findFirstFocusedOptionIndex();\n this.onOptionChange({ processedOption: this.visibleOptions[this.focusedOptionInfo.index], isHide: false });\n\n !this.overlayVisible && (this.focusedOptionInfo = { index: -1, level: 0, parentKey: '' });\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n createProcessedOptions(options, level = 0, parent = {}, parentKey = '') {\n const processedOptions = [];\n\n options &&\n options.forEach((option, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newOption = {\n option,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newOption['children'] = this.createProcessedOptions(this.getOptionGroupChildren(option, level), level + 1, newOption, key);\n processedOptions.push(newOption);\n });\n\n return processedOptions;\n },\n overlayRef(el) {\n this.overlay = el;\n }\n },\n computed: {\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n label() {\n const label = this.placeholder || 'p-emptylabel';\n\n if (this.$filled) {\n const activeOptionPath = this.findOptionPathByValue(this.d_value);\n const processedOption = isNotEmpty(activeOptionPath) ? activeOptionPath[activeOptionPath.length - 1] : null;\n\n return processedOption ? this.getOptionLabel(processedOption.option) : label;\n }\n\n return label;\n },\n processedOptions() {\n return this.createProcessedOptions(this.options || []);\n },\n visibleOptions() {\n const processedOption = this.activeOptionPath && this.activeOptionPath.find((p) => p.key === this.focusedOptionInfo.parentKey);\n\n return processedOption ? processedOption.children : this.processedOptions;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\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.focusedOptionInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedOptionInfo.parentKey) ? '_' + this.focusedOptionInfo.parentKey : ''}_${this.focusedOptionInfo.index}` : null;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n components: {\n CascadeSelectSub,\n Portal,\n ChevronDownIcon,\n SpinnerIcon,\n AngleRightIcon,\n TimesIcon\n }\n};\n</script>\n"],"names":["name","BaseInput","props","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","placeholder","String","breakpoint","type","dataKey","showClear","Boolean","clearIcon","undefined","inputId","inputClass","Object","inputStyle","inputProps","panelClass","panelStyle","panelProps","overlayClass","overlayStyle","overlayProps","appendTo","loading","dropdownIcon","loadingIcon","optionGroupIcon","autoOptionFocus","selectOnFocus","focusOnHover","searchLocale","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","emptyMessage","tabindex","Number","ariaLabelledby","ariaLabel","style","CascadeSelectStyle","provide","$pcCascadeSelect","$parentInstance","hostName","BaseComponent","emits","container","selectId","focusedOptionId","activeOptionPath","level","templates","value","methods","getOptionId","processedOption","concat","key","getOptionLabel","resolveFieldData","option","getOptionValue","getPTOptions","index","ptm","context","optionGroup","isOptionGroup","active","isOptionActive","focused","isOptionFocused","disabled","isOptionDisabled","getOptionGroupLabel","getOptionGroupChildren","children","isNotEmpty","isOptionSelected","equals","some","path","getOptionLabelToRender","onOptionClick","event","$emit","originalEvent","isFocus","onOptionMouseEnter","onOptionMouseMove","containerRef","el","listAriaLabel","$primevue","config","locale","aria","listLabel","directives","ripple","Ripple","components","AngleRightIcon","_openBlock","_createElementBlock","_mergeProps","ref","$options","_ctx","cx","$props","_Fragment","_renderList","id","role","length","_withDirectives","onClick","$event","onMouseenter","onMousemove","_createBlock","_resolveDynamicComponent","selected","_toDisplayString","_component_AngleRightIcon","_component_CascadeSelectSub","onOptionChange","_cache","onOptionFocusChange","onOptionFocusEnterChange","pt","unstyled","BaseCascadeSelect","inheritAttrs","outsideClickListener","matchMediaListener","scrollHandler","resizeListener","overlay","searchTimeout","searchValue","data","clicked","focusedOptionInfo","parentKey","overlayVisible","dirty","mobileActive","query","queryMatches","watch","autoUpdateModel","mounted","bindMatchMediaListener","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","unbindMatchMediaListener","destroy","ZIndex","clear","isString","prototype","hasOwnProperty","call","getProccessedOptionLabel","grouped","isProccessedOptionGroup","show","$filled","findOptionPathByValue","d_value","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this","_hide","setTimeout","onFocus","onBlur","_this$formField$onBlu","_this$formField","formField","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchOptions","isEmpty","filter","p","push","isHide","preventSelection","isSelected","startsWith","onOptionGroupSelect","onOptionSelect","_objectSpread","changeFocusedOptionIndex","arguments","forEach","updateModel","onContainerClick","target","getAttribute","closest","contains","onClearClick","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","altKey","visibleOptions","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","_this2","parentOption","find","matched","root","parent","onOverlayEnter","set","zIndex","addStyle","position","top","left","alignOverlay","scrollInView","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this3","document","addEventListener","removeEventListener","_this4","ConnectedOverlayScrollHandler","_this5","isTouchDevice","window","_this6","matchMedia","matches","isOptionMatched","_this$getProccessedOp","isValidOption","toLocaleLowerCase","isValidSelectedOption","_this7","findIndex","_this8","findLastIndex","_this9","matchedOptionIndex","slice","_this10","_this11","selectedIndex","processedOptions","i","equalityKey","matchedOptions","unshift","char","_this12","clearTimeout","_this13","$nextTick","$id","element","findSingle","list","scrollIntoView","block","inline","writeValue","createProcessedOptions","_this14","newOption","overlayRef","computed","hasSelectedOption","label","_this15","searchResultMessageText","searchMessageText","replaceAll","emptySearchMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","isClearIconVisible","CascadeSelectSub","Portal","ChevronDownIcon","SpinnerIcon","TimesIcon","sx","ptmi","_createElementVNode","readonly","$data","invalid","apply","onKeydown","_hoisted_1","_renderSlot","$slots","clearCallback","_component_SpinnerIcon","spin","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave"],"mappings":"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"}
|