primevue 3.22.3 → 3.23.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/README.md +2 -2
- package/accordion/Accordion.vue +7 -3
- package/accordion/accordion.cjs.js +7 -3
- package/accordion/accordion.cjs.min.js +1 -1
- package/accordion/accordion.esm.js +8 -4
- package/accordion/accordion.esm.min.js +1 -1
- package/accordion/accordion.js +7 -3
- package/accordion/accordion.min.js +1 -1
- package/autocomplete/AutoComplete.vue +6 -3
- package/autocomplete/autocomplete.cjs.js +12 -9
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.esm.js +13 -10
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +12 -9
- package/autocomplete/autocomplete.min.js +1 -1
- package/breadcrumb/Breadcrumb.vue +3 -3
- package/breadcrumb/breadcrumb.cjs.js +19 -11
- package/breadcrumb/breadcrumb.cjs.min.js +1 -1
- package/breadcrumb/breadcrumb.esm.js +19 -11
- package/breadcrumb/breadcrumb.esm.min.js +1 -1
- package/breadcrumb/breadcrumb.js +19 -11
- package/breadcrumb/breadcrumb.min.js +1 -1
- package/calendar/Calendar.vue +4 -4
- package/calendar/calendar.cjs.js +4 -4
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +4 -4
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +4 -4
- package/calendar/calendar.min.js +1 -1
- package/cascadeselect/CascadeSelect.vue +6 -3
- package/cascadeselect/cascadeselect.cjs.js +9 -6
- package/cascadeselect/cascadeselect.cjs.min.js +1 -1
- package/cascadeselect/cascadeselect.esm.js +10 -7
- package/cascadeselect/cascadeselect.esm.min.js +1 -1
- package/cascadeselect/cascadeselect.js +9 -6
- package/cascadeselect/cascadeselect.min.js +1 -1
- package/config/PrimeVue.d.ts +1 -2
- package/config/config.cjs.js +0 -1
- package/config/config.cjs.min.js +1 -1
- package/config/config.esm.js +0 -1
- package/config/config.esm.min.js +1 -1
- package/config/config.js +0 -1
- package/config/config.min.js +1 -1
- package/contextmenu/ContextMenu.vue +6 -3
- package/contextmenu/contextmenu.cjs.js +8 -5
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.esm.js +9 -6
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +8 -5
- package/contextmenu/contextmenu.min.js +1 -1
- package/core/core.js +74 -50
- package/core/core.min.js +6 -6
- package/datatable/BodyCell.vue +4 -2
- package/datatable/DataTable.vue +6 -6
- package/datatable/datatable.cjs.js +14 -12
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +14 -12
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +14 -12
- package/datatable/datatable.min.js +1 -1
- package/dialog/Dialog.vue +1 -1
- package/dialog/dialog.cjs.js +1 -1
- package/dialog/dialog.cjs.min.js +1 -1
- package/dialog/dialog.esm.js +1 -1
- package/dialog/dialog.esm.min.js +1 -1
- package/dialog/dialog.js +1 -1
- package/dialog/dialog.min.js +1 -1
- package/dock/DockSub.vue +9 -3
- package/dock/dock.cjs.js +10 -4
- package/dock/dock.cjs.min.js +1 -1
- package/dock/dock.esm.js +11 -5
- package/dock/dock.esm.min.js +1 -1
- package/dock/dock.js +10 -4
- package/dock/dock.min.js +1 -1
- package/dropdown/Dropdown.vue +6 -3
- package/dropdown/dropdown.cjs.js +13 -10
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +14 -11
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +13 -10
- package/dropdown/dropdown.min.js +1 -1
- package/listbox/Listbox.vue +6 -3
- package/listbox/listbox.cjs.js +11 -8
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +12 -9
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +11 -8
- package/listbox/listbox.min.js +1 -1
- package/megamenu/MegaMenu.vue +7 -3
- package/megamenu/megamenu.cjs.js +10 -6
- package/megamenu/megamenu.cjs.min.js +1 -1
- package/megamenu/megamenu.esm.js +11 -7
- package/megamenu/megamenu.esm.min.js +1 -1
- package/megamenu/megamenu.js +10 -6
- package/megamenu/megamenu.min.js +1 -1
- package/menu/Menu.d.ts +8 -0
- package/menu/Menu.vue +14 -3
- package/menu/menu.cjs.js +39 -16
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +41 -18
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +39 -16
- package/menu/menu.min.js +1 -1
- package/menubar/Menubar.vue +7 -3
- package/menubar/menubar.cjs.js +10 -6
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +11 -7
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +10 -6
- package/menubar/menubar.min.js +1 -1
- package/multiselect/MultiSelect.vue +6 -3
- package/multiselect/multiselect.cjs.js +11 -8
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +12 -9
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +11 -8
- package/multiselect/multiselect.min.js +1 -1
- package/orderlist/OrderList.vue +8 -3
- package/orderlist/orderlist.cjs.js +11 -6
- package/orderlist/orderlist.cjs.min.js +1 -1
- package/orderlist/orderlist.esm.js +12 -7
- package/orderlist/orderlist.esm.min.js +1 -1
- package/orderlist/orderlist.js +11 -6
- package/orderlist/orderlist.min.js +1 -1
- package/package.json +1 -1
- package/panelmenu/PanelMenu.vue +9 -6
- package/panelmenu/PanelMenuList.vue +1 -1
- package/panelmenu/panelmenu.cjs.js +11 -8
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +11 -8
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +11 -8
- package/panelmenu/panelmenu.min.js +1 -1
- package/picklist/PickList.vue +8 -2
- package/picklist/picklist.cjs.js +8 -2
- package/picklist/picklist.cjs.min.js +1 -1
- package/picklist/picklist.esm.js +9 -3
- package/picklist/picklist.esm.min.js +1 -1
- package/picklist/picklist.js +8 -2
- package/picklist/picklist.min.js +1 -1
- package/rating/Rating.vue +9 -3
- package/rating/rating.cjs.js +11 -5
- package/rating/rating.cjs.min.js +1 -1
- package/rating/rating.esm.js +12 -6
- package/rating/rating.esm.min.js +1 -1
- package/rating/rating.js +11 -5
- package/rating/rating.min.js +1 -1
- package/resources/themes/arya-blue/theme.css +7 -0
- package/resources/themes/arya-green/theme.css +7 -0
- package/resources/themes/arya-orange/theme.css +7 -0
- package/resources/themes/arya-purple/theme.css +7 -0
- package/resources/themes/bootstrap4-dark-blue/theme.css +7 -0
- package/resources/themes/bootstrap4-dark-purple/theme.css +7 -0
- package/resources/themes/bootstrap4-light-blue/theme.css +7 -0
- package/resources/themes/bootstrap4-light-purple/theme.css +7 -0
- package/resources/themes/fluent-light/theme.css +7 -0
- package/resources/themes/lara-dark-blue/theme.css +7 -0
- package/resources/themes/lara-dark-indigo/theme.css +7 -0
- package/resources/themes/lara-dark-purple/theme.css +7 -0
- package/resources/themes/lara-dark-teal/theme.css +7 -0
- package/resources/themes/lara-light-blue/theme.css +7 -0
- package/resources/themes/lara-light-indigo/theme.css +7 -0
- package/resources/themes/lara-light-purple/theme.css +7 -0
- package/resources/themes/lara-light-teal/theme.css +7 -0
- package/resources/themes/luna-amber/theme.css +7 -0
- package/resources/themes/luna-blue/theme.css +7 -0
- package/resources/themes/luna-green/theme.css +7 -0
- package/resources/themes/luna-pink/theme.css +7 -0
- package/resources/themes/md-dark-deeppurple/theme.css +10 -2
- package/resources/themes/md-dark-indigo/theme.css +10 -2
- package/resources/themes/md-light-deeppurple/theme.css +10 -2
- package/resources/themes/md-light-indigo/theme.css +10 -2
- package/resources/themes/mdc-dark-deeppurple/theme.css +10 -2
- package/resources/themes/mdc-dark-indigo/theme.css +10 -2
- package/resources/themes/mdc-light-deeppurple/theme.css +10 -2
- package/resources/themes/mdc-light-indigo/theme.css +10 -2
- package/resources/themes/mira/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/mira/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/mira/theme.css +6066 -0
- package/resources/themes/nano/theme.css +5838 -0
- package/resources/themes/nova/theme.css +7 -0
- package/resources/themes/nova-accent/theme.css +7 -0
- package/resources/themes/nova-alt/theme.css +7 -0
- package/resources/themes/nova-vue/theme.css +7 -0
- package/resources/themes/rhea/theme.css +7 -0
- package/resources/themes/saga-blue/theme.css +7 -0
- package/resources/themes/saga-green/theme.css +7 -0
- package/resources/themes/saga-orange/theme.css +7 -0
- package/resources/themes/saga-purple/theme.css +7 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/soho-dark/theme.css +5831 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/soho-light/theme.css +5885 -0
- package/resources/themes/tailwind-light/theme.css +7 -0
- package/resources/themes/vela-blue/theme.css +7 -0
- package/resources/themes/vela-green/theme.css +7 -0
- package/resources/themes/vela-orange/theme.css +7 -0
- package/resources/themes/vela-purple/theme.css +7 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/viva-dark/theme.css +5993 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/viva-light/theme.css +5993 -0
- package/speeddial/SpeedDial.vue +6 -3
- package/speeddial/speeddial.cjs.js +11 -8
- package/speeddial/speeddial.cjs.min.js +1 -1
- package/speeddial/speeddial.esm.js +12 -9
- package/speeddial/speeddial.esm.min.js +1 -1
- package/speeddial/speeddial.js +11 -8
- package/speeddial/speeddial.min.js +1 -1
- package/tabview/TabView.vue +6 -3
- package/tabview/tabview.cjs.js +6 -3
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.esm.js +7 -4
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +6 -3
- package/tabview/tabview.min.js +1 -1
- package/tag/Tag.vue +1 -1
- package/tag/tag.cjs.js +4 -2
- package/tag/tag.cjs.min.js +1 -1
- package/tag/tag.esm.js +5 -3
- package/tag/tag.esm.min.js +1 -1
- package/tag/tag.js +4 -2
- package/tag/tag.min.js +1 -1
- package/tieredmenu/TieredMenu.vue +7 -3
- package/tieredmenu/tieredmenu.cjs.js +10 -6
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +11 -7
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +10 -6
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/utils/utils.cjs.js +11 -16
- package/utils/utils.cjs.min.js +1 -1
- package/utils/utils.esm.js +11 -16
- package/utils/utils.esm.min.js +1 -1
- package/utils/utils.js +11 -16
- package/utils/utils.min.js +1 -1
- package/web-types.json +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ObjectUtils as e,DomHandler as t,UniqueComponentId as i}from"primevue/utils";import s from"primevue/ripple";import{resolveComponent as n,resolveDirective as a,openBlock as r,createElementBlock as l,Fragment as o,renderList as d,normalizeStyle as m,normalizeClass as c,createElementVNode as u,createBlock as h,withCtx as p,withDirectives as I,createCommentVNode as g,toDisplayString as f,resolveDynamicComponent as y,createVNode as v,Transition as b,vShow as P}from"vue";var k={name:"PanelMenuSub",emits:["item-toggle"],props:{panelId:{type:String,default:null},focusedItemId:{type:String,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItemPath:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getItemId(e){return`${this.panelId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.key))},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-toggle",{processedItem:t,expanded:!this.isItemActive(t)})},onItemToggle(e){this.$emit("item-toggle",e)},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-fw pi-chevron-down":"pi pi-fw pi-chevron-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s}};const x={class:"p-submenu-list"},K=["id","aria-label","aria-expanded","aria-level","aria-setsize","aria-posinset"],E=["onClick"],A=["href","onClick"],H={class:"p-menuitem-text"},C=["href","target"],w={class:"p-menuitem-text"},D={class:"p-toggleable-content"};k.render=function(e,t,i,s,k,F){const S=n("router-link"),T=n("PanelMenuSub",!0),L=a("ripple");return r(),l("ul",x,[(r(!0),l(o,null,d(i.items,((e,t)=>(r(),l(o,{key:F.getItemKey(e)},[F.isItemVisible(e)&&!F.getItemProp(e,"separator")?(r(),l("li",{key:0,id:F.getItemId(e),style:m(F.getItemProp(e,"style")),class:c(F.getItemClass(e)),role:"treeitem","aria-label":F.getItemLabel(e),"aria-expanded":F.isItemGroup(e)?F.isItemActive(e):void 0,"aria-level":i.level+1,"aria-setsize":F.getAriaSetSize(),"aria-posinset":F.getAriaPosInset(t)},[u("div",{class:"p-menuitem-content",onClick:t=>F.onItemClick(t,e)},[i.template?(r(),h(y(i.template),{key:1,item:e.item},null,8,["item"])):(r(),l(o,{key:0},[F.getItemProp(e,"to")&&!F.isItemDisabled(e)?(r(),h(S,{key:0,to:F.getItemProp(e,"to"),custom:""},{default:p((({navigate:t,href:i,isActive:s,isExactActive:n})=>[I((r(),l("a",{href:i,class:c(F.getItemActionClass(e,{isActive:s,isExactActive:n})),tabindex:"-1","aria-hidden":"true",onClick:e=>F.onItemActionClick(e,t)},[F.getItemProp(e,"icon")?(r(),l("span",{key:0,class:c(F.getItemIconClass(e))},null,2)):g("",!0),u("span",H,f(F.getItemLabel(e)),1)],10,A)),[[L]])])),_:2},1032,["to"])):I((r(),l("a",{key:1,href:F.getItemProp(e,"url"),class:c(F.getItemActionClass(e)),target:F.getItemProp(e,"target"),tabindex:"-1","aria-hidden":"true"},[F.isItemGroup(e)?(r(),l("span",{key:0,class:c(F.getItemToggleIconClass(e))},null,2)):g("",!0),F.getItemProp(e,"icon")?(r(),l("span",{key:1,class:c(F.getItemIconClass(e))},null,2)):g("",!0),u("span",w,f(F.getItemLabel(e)),1)],10,C)),[[L]])],64))],8,E),v(b,{name:"p-toggleable-content"},{default:p((()=>[I(u("div",D,[F.isItemVisible(e)&&F.isItemGroup(e)?(r(),h(T,{key:0,id:F.getItemId(e)+"_list",role:"group",panelId:i.panelId,focusedItemId:i.focusedItemId,items:e.items,level:i.level+1,template:i.template,activeItemPath:i.activeItemPath,exact:i.exact,onItemToggle:F.onItemToggle},null,8,["id","panelId","focusedItemId","items","level","template","activeItemPath","exact","onItemToggle"])):g("",!0)],512),[[P,F.isItemActive(e)]])])),_:2},1024)],14,K)):g("",!0),F.isItemVisible(e)&&F.getItemProp(e,"separator")?(r(),l("li",{key:1,style:m(F.getItemProp(e,"style")),class:c(F.getSeparatorItemClass(e)),role:"separator"},null,6)):g("",!0)],64)))),128))])};var F={name:"PanelMenuList",emits:["item-toggle","header-focus"],props:{panelId:{type:String,default:null},items:{type:Array,default:null},template:{type:Function,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0}},searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItem:null,activeItemPath:[]}),watch:{expandedKeys(e){this.autoUpdateActiveItemPath(e)}},mounted(){this.autoUpdateActiveItemPath(this.expandedKeys)},methods:{getItemProp:(t,i)=>t&&t.item?e.getItemValue(t.item[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.parentKey))},isItemGroup:t=>e.isNotEmpty(t.items),onFocus(e){this.focused=!0,this.focusedItem=this.focusedItem||(this.isElementInPanel(e,e.relatedTarget)?this.findFirstItem():this.findLastItem())},onBlur(){this.focused=!1,this.focusedItem=null,this.searchValue=""},onKeyDown(t){const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":case"Tab":case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onArrowDownKey(t){const i=e.isNotEmpty(this.focusedItem)?this.findNextItem(this.focusedItem):this.findFirstItem();this.changeFocusedItem({originalEvent:t,processedItem:i,focusOnNext:!0}),t.preventDefault()},onArrowUpKey(t){const i=e.isNotEmpty(this.focusedItem)?this.findPrevItem(this.focusedItem):this.findLastItem();this.changeFocusedItem({originalEvent:t,processedItem:i,selfCheck:!0}),t.preventDefault()},onArrowLeftKey(t){if(e.isNotEmpty(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.activeItemPath=this.activeItemPath.filter((e=>e.key!==this.focusedItem.key)):this.focusedItem=e.isNotEmpty(this.focusedItem.parent)?this.focusedItem.parent:this.focusedItem,t.preventDefault()}},onArrowRightKey(t){if(e.isNotEmpty(this.focusedItem)){if(this.isItemGroup(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.onArrowDownKey(t):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==this.focusedItem.parentKey)),this.activeItemPath.push(this.focusedItem))}t.preventDefault()}},onHomeKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findFirstItem(),allowHeaderFocus:!1}),e.preventDefault()},onEndKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findLastItem(),focusOnNext:!0,allowHeaderFocus:!1}),e.preventDefault()},onEnterKey(i){if(e.isNotEmpty(this.focusedItem)){const e=t.findSingle(this.$el,`li[id="${this.focusedItemId}"]`),i=e&&t.findSingle(e,".p-menuitem-link");i?i.click():e&&e.click()}i.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onItemToggle(e){const{processedItem:i,expanded:s}=e;this.expandedKeys?this.$emit("item-toggle",{item:i.item,expanded:s}):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==i.parentKey)),s&&this.activeItemPath.push(i)),this.focusedItem=i,t.focus(this.$el)},isElementInPanel(e,t){const i=e.currentTarget.closest(".p-panelmenu-panel");return i&&i.contains(t)},isItemMatched(e){return this.isValidItem(e)&&this.getItemLabel(e).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale))},isVisibleItem(e){return!!e&&(0===e.level||this.isItemActive(e))&&this.isItemVisible(e)},isValidItem(e){return!!e&&!this.isItemDisabled(e)},findFirstItem(){return this.visibleItems.find((e=>this.isValidItem(e)))},findLastItem(){return e.findLast(this.visibleItems,(e=>this.isValidItem(e)))},findNextItem(e){const t=this.visibleItems.findIndex((t=>t.key===e.key));return(t<this.visibleItems.length-1?this.visibleItems.slice(t+1).find((e=>this.isValidItem(e))):void 0)||e},findPrevItem(t){const i=this.visibleItems.findIndex((e=>e.key===t.key));return(i>0?e.findLast(this.visibleItems.slice(0,i),(e=>this.isValidItem(e))):void 0)||t},searchItems(t,i){this.searchValue=(this.searchValue||"")+i;let s=null,n=!1;if(e.isNotEmpty(this.focusedItem)){const t=this.visibleItems.findIndex((e=>e.key===this.focusedItem.key));s=this.visibleItems.slice(t).find((e=>this.isItemMatched(e))),s=e.isEmpty(s)?this.visibleItems.slice(0,t).find((e=>this.isItemMatched(e))):s}else s=this.visibleItems.find((e=>this.isItemMatched(e)));return e.isNotEmpty(s)&&(n=!0),e.isEmpty(s)&&e.isEmpty(this.focusedItem)&&(s=this.findFirstItem()),e.isNotEmpty(s)&&this.changeFocusedItem({originalEvent:t,processedItem:s,allowHeaderFocus:!1}),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),n},changeFocusedItem(t){const{originalEvent:i,processedItem:s,focusOnNext:n,selfCheck:a,allowHeaderFocus:r=!0}=t;e.isNotEmpty(this.focusedItem)&&this.focusedItem.key!==s.key?(this.focusedItem=s,this.scrollInView()):r&&this.$emit("header-focus",{originalEvent:i,focusOnNext:n,selfCheck:a})},scrollInView(){const e=t.findSingle(this.$el,`li[id="${this.focusedItemId}"]`);e&&e.scrollIntoView&&e.scrollIntoView({block:"nearest",inline:"start"})},autoUpdateActiveItemPath(e){this.activeItemPath=Object.entries(e||{}).reduce(((e,[t,i])=>{if(i){const i=this.findProcessedItemByItemKey(t);i&&e.push(i)}return e}),[])},findProcessedItemByItemKey(e,t,i=0){if(!(t=t||0===i&&this.processedItems))return null;for(let s=0;s<t.length;s++){const n=t[s];if(this.getItemProp(n,"key")===e)return n;const a=this.findProcessedItemByItemKey(e,n.items,i+1);if(a)return a}},createProcessedItems(e,t=0,i={},s=""){const n=[];return e&&e.forEach(((e,a)=>{const r=(""!==s?s+"_":"")+a,l={item:e,index:a,level:t,key:r,parent:i,parentKey:s};l.items=this.createProcessedItems(e.items,t+1,l,r),n.push(l)})),n},flatItems(e,t=[]){return e&&e.forEach((e=>{this.isVisibleItem(e)&&(t.push(e),this.flatItems(e.items,t))})),t}},computed:{processedItems(){return this.createProcessedItems(this.items||[])},visibleItems(){return this.flatItems(this.processedItems)},focusedItemId(){return e.isNotEmpty(this.focusedItem)?`${this.panelId}_${this.focusedItem.key}`:null}},components:{PanelMenuSub:k}};F.render=function(e,t,i,s,a,l){const o=n("PanelMenuSub");return r(),h(o,{id:i.panelId+"_list",class:"p-panelmenu-root-list",role:"tree",tabindex:-1,"aria-activedescendant":a.focused?l.focusedItemId:void 0,panelId:i.panelId,focusedItemId:a.focused?l.focusedItemId:void 0,items:l.processedItems,template:i.template,activeItemPath:a.activeItemPath,exact:i.exact,onFocus:l.onFocus,onBlur:l.onBlur,onKeydown:l.onKeyDown,onItemToggle:l.onItemToggle},null,8,["id","aria-activedescendant","panelId","focusedItemId","items","template","activeItemPath","exact","onFocus","onBlur","onKeydown","onItemToggle"])};var S={name:"PanelMenu",emits:["update:expandedKeys","panel-open","panel-close"],props:{model:{type:Array,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},data:()=>({activeItem:null}),methods:{getItemProp:(t,i)=>t?e.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return this.expandedKeys?this.expandedKeys[this.getItemProp(t,"key")]:e.equals(t,this.activeItem)},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},getPanelId(e){return`${this.id}_${e}`},getPanelKey(e){return this.getPanelId(e)},getHeaderId(e){return`${this.getPanelId(e)}_header`},getContentId(e){return`${this.getPanelId(e)}_content`},onHeaderClick(e,i){this.isItemDisabled(i)?e.preventDefault():(i.command&&i.command({originalEvent:e,item:i}),this.changeActiveItem(e,i),t.focus(e.currentTarget))},onHeaderKeyDown(e,t){switch(e.code){case"ArrowDown":this.onHeaderArrowDownKey(e);break;case"ArrowUp":this.onHeaderArrowUpKey(e);break;case"Home":this.onHeaderHomeKey(e);break;case"End":this.onHeaderEndKey(e);break;case"Enter":case"Space":this.onHeaderEnterKey(e,t)}},onHeaderArrowDownKey(e){const i=t.hasClass(e.currentTarget,"p-highlight")?t.findSingle(e.currentTarget.nextElementSibling,".p-panelmenu-root-list"):null;i?t.focus(i):this.updateFocusedHeader({originalEvent:e,focusOnNext:!0}),e.preventDefault()},onHeaderArrowUpKey(e){const i=this.findPrevHeader(e.currentTarget.parentElement)||this.findLastHeader(),s=t.hasClass(i,"p-highlight")?t.findSingle(i.nextElementSibling,".p-panelmenu-root-list"):null;s?t.focus(s):this.updateFocusedHeader({originalEvent:e,focusOnNext:!1}),e.preventDefault()},onHeaderHomeKey(e){this.changeFocusedHeader(e,this.findFirstHeader()),e.preventDefault()},onHeaderEndKey(e){this.changeFocusedHeader(e,this.findLastHeader()),e.preventDefault()},onHeaderEnterKey(e,i){const s=t.findSingle(e.currentTarget,".p-panelmenu-header-action");s?s.click():this.onHeaderClick(e,i),e.preventDefault()},onHeaderActionClick(e,t){t&&t(e)},findNextHeader(e,i=!1){const s=i?e:e.nextElementSibling,n=t.findSingle(s,".p-panelmenu-header");return n?t.hasClass(n,"p-disabled")?this.findNextHeader(n.parentElement):n:null},findPrevHeader(e,i=!1){const s=i?e:e.previousElementSibling,n=t.findSingle(s,".p-panelmenu-header");return n?t.hasClass(n,"p-disabled")?this.findPrevHeader(n.parentElement):n:null},findFirstHeader(){return this.findNextHeader(this.$el.firstElementChild,!0)},findLastHeader(){return this.findPrevHeader(this.$el.lastElementChild,!0)},updateFocusedHeader(e){const{originalEvent:i,focusOnNext:s,selfCheck:n}=e,a=i.currentTarget.closest(".p-panelmenu-panel"),r=n?t.findSingle(a,".p-panelmenu-header"):s?this.findNextHeader(a):this.findPrevHeader(a);r?this.changeFocusedHeader(i,r):s?this.onHeaderHomeKey(i):this.onHeaderEndKey(i)},changeActiveItem(t,i,s=!1){if(!this.isItemDisabled(i)){const n=this.isItemActive(i),a=n?"panel-close":"panel-open";this.activeItem=s?i:this.activeItem&&e.equals(i,this.activeItem)?null:i,this.changeExpandedKeys({item:i,expanded:!n}),this.$emit(a,{originalEvent:t,item:i})}},changeExpandedKeys({item:e,expanded:t=!1}){if(this.expandedKeys){let i={...this.expandedKeys};t?i[e.key]=!0:delete i[e.key],this.$emit("update:expandedKeys",i)}},changeFocusedHeader(e,i){i&&t.focus(i)},getPanelClass(e){return["p-panelmenu-panel",this.getItemProp(e,"class")]},getHeaderClass(e){return["p-panelmenu-header",this.getItemProp(e,"headerClass"),{"p-highlight":this.isItemActive(e),"p-disabled":this.isItemDisabled(e)}]},getHeaderActionClass(e,t){return["p-panelmenu-header-action",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getHeaderIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getHeaderToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-chevron-down":"pi pi-chevron-right"]}},computed:{id(){return this.$attrs.id||i()}},components:{PanelMenuList:F}};const T=["id"],L=["id","tabindex","aria-label","aria-expanded","aria-controls","aria-disabled","onClick","onKeydown"],V={class:"p-panelmenu-header-content"},N=["href","onClick"],$={class:"p-menuitem-text"},B=["href"],M={class:"p-menuitem-text"},_=["id","aria-labelledby"],O={key:0,class:"p-panelmenu-content"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-panelmenu .p-panelmenu-header-action {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n}\n.p-panelmenu .p-panelmenu-header-action:focus {\n z-index: 1;\n}\n.p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n position: relative;\n overflow: hidden;\n}\n.p-panelmenu .p-menuitem-text {\n line-height: 1;\n}\n"),S.render=function(e,t,i,s,a,k){const x=n("router-link"),K=n("PanelMenuList");return r(),l("div",{id:k.id,class:"p-panelmenu p-component"},[(r(!0),l(o,null,d(i.model,((t,s)=>(r(),l(o,{key:k.getPanelKey(s)},[k.isItemVisible(t)?(r(),l("div",{key:0,style:m(k.getItemProp(t,"style")),class:c(k.getPanelClass(t))},[u("div",{id:k.getHeaderId(s),class:c(k.getHeaderClass(t)),tabindex:k.isItemDisabled(t)?-1:i.tabindex,role:"button","aria-label":k.getItemLabel(t),"aria-expanded":k.isItemActive(t),"aria-controls":k.getContentId(s),"aria-disabled":k.isItemDisabled(t),onClick:e=>k.onHeaderClick(e,t),onKeydown:e=>k.onHeaderKeyDown(e,t)},[u("div",V,[e.$slots.item?(r(),h(y(e.$slots.item),{key:1,item:t},null,8,["item"])):(r(),l(o,{key:0},[k.getItemProp(t,"to")&&!k.isItemDisabled(t)?(r(),h(x,{key:0,to:k.getItemProp(t,"to"),custom:""},{default:p((({navigate:e,href:i,isActive:s,isExactActive:n})=>[u("a",{href:i,class:c(k.getHeaderActionClass(t,{isActive:s,isExactActive:n})),tabindex:-1,onClick:t=>k.onHeaderActionClick(t,e)},[k.getItemProp(t,"icon")?(r(),l("span",{key:0,class:c(k.getHeaderIconClass(t))},null,2)):g("",!0),u("span",$,f(k.getItemLabel(t)),1)],10,N)])),_:2},1032,["to"])):(r(),l("a",{key:1,href:k.getItemProp(t,"url"),class:c(k.getHeaderActionClass(t)),tabindex:-1},[k.getItemProp(t,"items")?(r(),l("span",{key:0,class:c(k.getHeaderToggleIconClass(t))},null,2)):g("",!0),k.getItemProp(t,"icon")?(r(),l("span",{key:1,class:c(k.getHeaderIconClass(t))},null,2)):g("",!0),u("span",M,f(k.getItemLabel(t)),1)],10,B))],64))])],42,L),v(b,{name:"p-toggleable-content"},{default:p((()=>[I(u("div",{id:k.getContentId(s),class:"p-toggleable-content",role:"region","aria-labelledby":k.getHeaderId(s)},[k.getItemProp(t,"items")?(r(),l("div",O,[v(K,{panelId:k.getPanelId(s),items:k.getItemProp(t,"items"),template:e.$slots.item,expandedKeys:i.expandedKeys,onItemToggle:k.changeExpandedKeys,onHeaderFocus:k.updateFocusedHeader,exact:i.exact},null,8,["panelId","items","template","expandedKeys","onItemToggle","onHeaderFocus","exact"])])):g("",!0)],8,_),[[P,k.isItemActive(t)]])])),_:2},1024)],6)):g("",!0)],64)))),128))],8,T)};export{S as default};
|
|
1
|
+
import{ObjectUtils as e,DomHandler as t,UniqueComponentId as i}from"primevue/utils";import s from"primevue/ripple";import{resolveComponent as n,resolveDirective as a,openBlock as r,createElementBlock as l,Fragment as o,renderList as d,normalizeStyle as m,normalizeClass as c,createElementVNode as u,createBlock as h,withCtx as p,withDirectives as I,createCommentVNode as g,toDisplayString as f,resolveDynamicComponent as y,createVNode as v,Transition as b,vShow as P}from"vue";var k={name:"PanelMenuSub",emits:["item-toggle"],props:{panelId:{type:String,default:null},focusedItemId:{type:String,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItemPath:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getItemId(e){return`${this.panelId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.key))},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-toggle",{processedItem:t,expanded:!this.isItemActive(t)})},onItemToggle(e){this.$emit("item-toggle",e)},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-fw pi-chevron-down":"pi pi-fw pi-chevron-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s}};const x={class:"p-submenu-list"},K=["id","aria-label","aria-expanded","aria-level","aria-setsize","aria-posinset"],E=["onClick"],A=["href","onClick"],H={class:"p-menuitem-text"},C=["href","target"],w={class:"p-menuitem-text"},D={class:"p-toggleable-content"};k.render=function(e,t,i,s,k,F){const S=n("router-link"),T=n("PanelMenuSub",!0),L=a("ripple");return r(),l("ul",x,[(r(!0),l(o,null,d(i.items,((e,t)=>(r(),l(o,{key:F.getItemKey(e)},[F.isItemVisible(e)&&!F.getItemProp(e,"separator")?(r(),l("li",{key:0,id:F.getItemId(e),style:m(F.getItemProp(e,"style")),class:c(F.getItemClass(e)),role:"treeitem","aria-label":F.getItemLabel(e),"aria-expanded":F.isItemGroup(e)?F.isItemActive(e):void 0,"aria-level":i.level+1,"aria-setsize":F.getAriaSetSize(),"aria-posinset":F.getAriaPosInset(t)},[u("div",{class:"p-menuitem-content",onClick:t=>F.onItemClick(t,e)},[i.template?(r(),h(y(i.template),{key:1,item:e.item},null,8,["item"])):(r(),l(o,{key:0},[F.getItemProp(e,"to")&&!F.isItemDisabled(e)?(r(),h(S,{key:0,to:F.getItemProp(e,"to"),custom:""},{default:p((({navigate:t,href:i,isActive:s,isExactActive:n})=>[I((r(),l("a",{href:i,class:c(F.getItemActionClass(e,{isActive:s,isExactActive:n})),tabindex:"-1","aria-hidden":"true",onClick:e=>F.onItemActionClick(e,t)},[F.getItemProp(e,"icon")?(r(),l("span",{key:0,class:c(F.getItemIconClass(e))},null,2)):g("",!0),u("span",H,f(F.getItemLabel(e)),1)],10,A)),[[L]])])),_:2},1032,["to"])):I((r(),l("a",{key:1,href:F.getItemProp(e,"url"),class:c(F.getItemActionClass(e)),target:F.getItemProp(e,"target"),tabindex:"-1","aria-hidden":"true"},[F.isItemGroup(e)?(r(),l("span",{key:0,class:c(F.getItemToggleIconClass(e))},null,2)):g("",!0),F.getItemProp(e,"icon")?(r(),l("span",{key:1,class:c(F.getItemIconClass(e))},null,2)):g("",!0),u("span",w,f(F.getItemLabel(e)),1)],10,C)),[[L]])],64))],8,E),v(b,{name:"p-toggleable-content"},{default:p((()=>[I(u("div",D,[F.isItemVisible(e)&&F.isItemGroup(e)?(r(),h(T,{key:0,id:F.getItemId(e)+"_list",role:"group",panelId:i.panelId,focusedItemId:i.focusedItemId,items:e.items,level:i.level+1,template:i.template,activeItemPath:i.activeItemPath,exact:i.exact,onItemToggle:F.onItemToggle},null,8,["id","panelId","focusedItemId","items","level","template","activeItemPath","exact","onItemToggle"])):g("",!0)],512),[[P,F.isItemActive(e)]])])),_:2},1024)],14,K)):g("",!0),F.isItemVisible(e)&&F.getItemProp(e,"separator")?(r(),l("li",{key:1,style:m(F.getItemProp(e,"style")),class:c(F.getSeparatorItemClass(e)),role:"separator"},null,6)):g("",!0)],64)))),128))])};var F={name:"PanelMenuList",emits:["item-toggle","header-focus"],props:{panelId:{type:String,default:null},items:{type:Array,default:null},template:{type:Function,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0}},searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItem:null,activeItemPath:[]}),watch:{expandedKeys(e){this.autoUpdateActiveItemPath(e)}},mounted(){this.autoUpdateActiveItemPath(this.expandedKeys)},methods:{getItemProp:(t,i)=>t&&t.item?e.getItemValue(t.item[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.parentKey))},isItemGroup:t=>e.isNotEmpty(t.items),onFocus(e){this.focused=!0,this.focusedItem=this.focusedItem||(this.isElementInPanel(e,e.relatedTarget)?this.findFirstItem():this.findLastItem())},onBlur(){this.focused=!1,this.focusedItem=null,this.searchValue=""},onKeyDown(t){const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":case"Tab":case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onArrowDownKey(t){const i=e.isNotEmpty(this.focusedItem)?this.findNextItem(this.focusedItem):this.findFirstItem();this.changeFocusedItem({originalEvent:t,processedItem:i,focusOnNext:!0}),t.preventDefault()},onArrowUpKey(t){const i=e.isNotEmpty(this.focusedItem)?this.findPrevItem(this.focusedItem):this.findLastItem();this.changeFocusedItem({originalEvent:t,processedItem:i,selfCheck:!0}),t.preventDefault()},onArrowLeftKey(t){if(e.isNotEmpty(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.activeItemPath=this.activeItemPath.filter((e=>e.key!==this.focusedItem.key)):this.focusedItem=e.isNotEmpty(this.focusedItem.parent)?this.focusedItem.parent:this.focusedItem,t.preventDefault()}},onArrowRightKey(t){if(e.isNotEmpty(this.focusedItem)){if(this.isItemGroup(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.onArrowDownKey(t):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==this.focusedItem.parentKey)),this.activeItemPath.push(this.focusedItem))}t.preventDefault()}},onHomeKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findFirstItem(),allowHeaderFocus:!1}),e.preventDefault()},onEndKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findLastItem(),focusOnNext:!0,allowHeaderFocus:!1}),e.preventDefault()},onEnterKey(i){if(e.isNotEmpty(this.focusedItem)){const e=t.findSingle(this.$el,`li[id="${this.focusedItemId}"]`),i=e&&(t.findSingle(e,".p-menuitem-link")||t.findSingle(e,"a,button"));i?i.click():e&&e.click()}i.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onItemToggle(e){const{processedItem:i,expanded:s}=e;this.expandedKeys?this.$emit("item-toggle",{item:i.item,expanded:s}):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==i.parentKey)),s&&this.activeItemPath.push(i)),this.focusedItem=i,t.focus(this.$el)},isElementInPanel(e,t){const i=e.currentTarget.closest(".p-panelmenu-panel");return i&&i.contains(t)},isItemMatched(e){return this.isValidItem(e)&&this.getItemLabel(e).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale))},isVisibleItem(e){return!!e&&(0===e.level||this.isItemActive(e))&&this.isItemVisible(e)},isValidItem(e){return!!e&&!this.isItemDisabled(e)},findFirstItem(){return this.visibleItems.find((e=>this.isValidItem(e)))},findLastItem(){return e.findLast(this.visibleItems,(e=>this.isValidItem(e)))},findNextItem(e){const t=this.visibleItems.findIndex((t=>t.key===e.key));return(t<this.visibleItems.length-1?this.visibleItems.slice(t+1).find((e=>this.isValidItem(e))):void 0)||e},findPrevItem(t){const i=this.visibleItems.findIndex((e=>e.key===t.key));return(i>0?e.findLast(this.visibleItems.slice(0,i),(e=>this.isValidItem(e))):void 0)||t},searchItems(t,i){this.searchValue=(this.searchValue||"")+i;let s=null,n=!1;if(e.isNotEmpty(this.focusedItem)){const t=this.visibleItems.findIndex((e=>e.key===this.focusedItem.key));s=this.visibleItems.slice(t).find((e=>this.isItemMatched(e))),s=e.isEmpty(s)?this.visibleItems.slice(0,t).find((e=>this.isItemMatched(e))):s}else s=this.visibleItems.find((e=>this.isItemMatched(e)));return e.isNotEmpty(s)&&(n=!0),e.isEmpty(s)&&e.isEmpty(this.focusedItem)&&(s=this.findFirstItem()),e.isNotEmpty(s)&&this.changeFocusedItem({originalEvent:t,processedItem:s,allowHeaderFocus:!1}),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),n},changeFocusedItem(t){const{originalEvent:i,processedItem:s,focusOnNext:n,selfCheck:a,allowHeaderFocus:r=!0}=t;e.isNotEmpty(this.focusedItem)&&this.focusedItem.key!==s.key?(this.focusedItem=s,this.scrollInView()):r&&this.$emit("header-focus",{originalEvent:i,focusOnNext:n,selfCheck:a})},scrollInView(){const e=t.findSingle(this.$el,`li[id="${this.focusedItemId}"]`);e&&e.scrollIntoView&&e.scrollIntoView({block:"nearest",inline:"start"})},autoUpdateActiveItemPath(e){this.activeItemPath=Object.entries(e||{}).reduce(((e,[t,i])=>{if(i){const i=this.findProcessedItemByItemKey(t);i&&e.push(i)}return e}),[])},findProcessedItemByItemKey(e,t,i=0){if(!(t=t||0===i&&this.processedItems))return null;for(let s=0;s<t.length;s++){const n=t[s];if(this.getItemProp(n,"key")===e)return n;const a=this.findProcessedItemByItemKey(e,n.items,i+1);if(a)return a}},createProcessedItems(e,t=0,i={},s=""){const n=[];return e&&e.forEach(((e,a)=>{const r=(""!==s?s+"_":"")+a,l={item:e,index:a,level:t,key:r,parent:i,parentKey:s};l.items=this.createProcessedItems(e.items,t+1,l,r),n.push(l)})),n},flatItems(e,t=[]){return e&&e.forEach((e=>{this.isVisibleItem(e)&&(t.push(e),this.flatItems(e.items,t))})),t}},computed:{processedItems(){return this.createProcessedItems(this.items||[])},visibleItems(){return this.flatItems(this.processedItems)},focusedItemId(){return e.isNotEmpty(this.focusedItem)?`${this.panelId}_${this.focusedItem.key}`:null}},components:{PanelMenuSub:k}};F.render=function(e,t,i,s,a,l){const o=n("PanelMenuSub");return r(),h(o,{id:i.panelId+"_list",class:"p-panelmenu-root-list",role:"tree",tabindex:-1,"aria-activedescendant":a.focused?l.focusedItemId:void 0,panelId:i.panelId,focusedItemId:a.focused?l.focusedItemId:void 0,items:l.processedItems,template:i.template,activeItemPath:a.activeItemPath,exact:i.exact,onFocus:l.onFocus,onBlur:l.onBlur,onKeydown:l.onKeyDown,onItemToggle:l.onItemToggle},null,8,["id","aria-activedescendant","panelId","focusedItemId","items","template","activeItemPath","exact","onFocus","onBlur","onKeydown","onItemToggle"])};var S={name:"PanelMenu",emits:["update:expandedKeys","panel-open","panel-close"],props:{model:{type:Array,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},data(){return{id:this.$attrs.id,activeItem:null}},watch:{"$attrs.id":function(e){this.id=e||i()}},mounted(){this.id=this.id||i()},methods:{getItemProp:(t,i)=>t?e.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return this.expandedKeys?this.expandedKeys[this.getItemProp(t,"key")]:e.equals(t,this.activeItem)},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},getPanelId(e){return`${this.id}_${e}`},getPanelKey(e){return this.getPanelId(e)},getHeaderId(e){return`${this.getPanelId(e)}_header`},getContentId(e){return`${this.getPanelId(e)}_content`},onHeaderClick(e,i){this.isItemDisabled(i)?e.preventDefault():(i.command&&i.command({originalEvent:e,item:i}),this.changeActiveItem(e,i),t.focus(e.currentTarget))},onHeaderKeyDown(e,t){switch(e.code){case"ArrowDown":this.onHeaderArrowDownKey(e);break;case"ArrowUp":this.onHeaderArrowUpKey(e);break;case"Home":this.onHeaderHomeKey(e);break;case"End":this.onHeaderEndKey(e);break;case"Enter":case"Space":this.onHeaderEnterKey(e,t)}},onHeaderArrowDownKey(e){const i=t.hasClass(e.currentTarget,"p-highlight")?t.findSingle(e.currentTarget.nextElementSibling,".p-panelmenu-root-list"):null;i?t.focus(i):this.updateFocusedHeader({originalEvent:e,focusOnNext:!0}),e.preventDefault()},onHeaderArrowUpKey(e){const i=this.findPrevHeader(e.currentTarget.parentElement)||this.findLastHeader(),s=t.hasClass(i,"p-highlight")?t.findSingle(i.nextElementSibling,".p-panelmenu-root-list"):null;s?t.focus(s):this.updateFocusedHeader({originalEvent:e,focusOnNext:!1}),e.preventDefault()},onHeaderHomeKey(e){this.changeFocusedHeader(e,this.findFirstHeader()),e.preventDefault()},onHeaderEndKey(e){this.changeFocusedHeader(e,this.findLastHeader()),e.preventDefault()},onHeaderEnterKey(e,i){const s=t.findSingle(e.currentTarget,".p-panelmenu-header-action");s?s.click():this.onHeaderClick(e,i),e.preventDefault()},onHeaderActionClick(e,t){t&&t(e)},findNextHeader(e,i=!1){const s=i?e:e.nextElementSibling,n=t.findSingle(s,".p-panelmenu-header");return n?t.hasClass(n,"p-disabled")?this.findNextHeader(n.parentElement):n:null},findPrevHeader(e,i=!1){const s=i?e:e.previousElementSibling,n=t.findSingle(s,".p-panelmenu-header");return n?t.hasClass(n,"p-disabled")?this.findPrevHeader(n.parentElement):n:null},findFirstHeader(){return this.findNextHeader(this.$el.firstElementChild,!0)},findLastHeader(){return this.findPrevHeader(this.$el.lastElementChild,!0)},updateFocusedHeader(e){const{originalEvent:i,focusOnNext:s,selfCheck:n}=e,a=i.currentTarget.closest(".p-panelmenu-panel"),r=n?t.findSingle(a,".p-panelmenu-header"):s?this.findNextHeader(a):this.findPrevHeader(a);r?this.changeFocusedHeader(i,r):s?this.onHeaderHomeKey(i):this.onHeaderEndKey(i)},changeActiveItem(t,i,s=!1){if(!this.isItemDisabled(i)){const n=this.isItemActive(i),a=n?"panel-close":"panel-open";this.activeItem=s?i:this.activeItem&&e.equals(i,this.activeItem)?null:i,this.changeExpandedKeys({item:i,expanded:!n}),this.$emit(a,{originalEvent:t,item:i})}},changeExpandedKeys({item:e,expanded:t=!1}){if(this.expandedKeys){let i={...this.expandedKeys};t?i[e.key]=!0:delete i[e.key],this.$emit("update:expandedKeys",i)}},changeFocusedHeader(e,i){i&&t.focus(i)},getPanelClass(e){return["p-panelmenu-panel",this.getItemProp(e,"class")]},getHeaderClass(e){return["p-panelmenu-header",this.getItemProp(e,"headerClass"),{"p-highlight":this.isItemActive(e),"p-disabled":this.isItemDisabled(e)}]},getHeaderActionClass(e,t){return["p-panelmenu-header-action",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getHeaderIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getHeaderToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-chevron-down":"pi pi-chevron-right"]}},components:{PanelMenuList:F}};const T=["id"],L=["id","tabindex","aria-label","aria-expanded","aria-controls","aria-disabled","onClick","onKeydown"],V={class:"p-panelmenu-header-content"},N=["href","onClick"],$={class:"p-menuitem-text"},B=["href"],M={class:"p-menuitem-text"},_=["id","aria-labelledby"],O={key:0,class:"p-panelmenu-content"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-panelmenu .p-panelmenu-header-action {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n}\n.p-panelmenu .p-panelmenu-header-action:focus {\n z-index: 1;\n}\n.p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n position: relative;\n overflow: hidden;\n}\n.p-panelmenu .p-menuitem-text {\n line-height: 1;\n}\n"),S.render=function(e,t,i,s,a,k){const x=n("router-link"),K=n("PanelMenuList");return r(),l("div",{id:a.id,class:"p-panelmenu p-component"},[(r(!0),l(o,null,d(i.model,((t,s)=>(r(),l(o,{key:k.getPanelKey(s)},[k.isItemVisible(t)?(r(),l("div",{key:0,style:m(k.getItemProp(t,"style")),class:c(k.getPanelClass(t))},[u("div",{id:k.getHeaderId(s),class:c(k.getHeaderClass(t)),tabindex:k.isItemDisabled(t)?-1:i.tabindex,role:"button","aria-label":k.getItemLabel(t),"aria-expanded":k.isItemActive(t),"aria-controls":k.getContentId(s),"aria-disabled":k.isItemDisabled(t),onClick:e=>k.onHeaderClick(e,t),onKeydown:e=>k.onHeaderKeyDown(e,t)},[u("div",V,[e.$slots.item?(r(),h(y(e.$slots.item),{key:1,item:t},null,8,["item"])):(r(),l(o,{key:0},[k.getItemProp(t,"to")&&!k.isItemDisabled(t)?(r(),h(x,{key:0,to:k.getItemProp(t,"to"),custom:""},{default:p((({navigate:e,href:i,isActive:s,isExactActive:n})=>[u("a",{href:i,class:c(k.getHeaderActionClass(t,{isActive:s,isExactActive:n})),tabindex:-1,onClick:t=>k.onHeaderActionClick(t,e)},[k.getItemProp(t,"icon")?(r(),l("span",{key:0,class:c(k.getHeaderIconClass(t))},null,2)):g("",!0),u("span",$,f(k.getItemLabel(t)),1)],10,N)])),_:2},1032,["to"])):(r(),l("a",{key:1,href:k.getItemProp(t,"url"),class:c(k.getHeaderActionClass(t)),tabindex:-1},[k.getItemProp(t,"items")?(r(),l("span",{key:0,class:c(k.getHeaderToggleIconClass(t))},null,2)):g("",!0),k.getItemProp(t,"icon")?(r(),l("span",{key:1,class:c(k.getHeaderIconClass(t))},null,2)):g("",!0),u("span",M,f(k.getItemLabel(t)),1)],10,B))],64))])],42,L),v(b,{name:"p-toggleable-content"},{default:p((()=>[I(u("div",{id:k.getContentId(s),class:"p-toggleable-content",role:"region","aria-labelledby":k.getHeaderId(s)},[k.getItemProp(t,"items")?(r(),l("div",O,[v(K,{panelId:k.getPanelId(s),items:k.getItemProp(t,"items"),template:e.$slots.item,expandedKeys:i.expandedKeys,onItemToggle:k.changeExpandedKeys,onHeaderFocus:k.updateFocusedHeader,exact:i.exact},null,8,["panelId","items","template","expandedKeys","onItemToggle","onHeaderFocus","exact"])])):g("",!0)],8,_),[[P,k.isItemActive(t)]])])),_:2},1024)],6)):g("",!0)],64)))),128))],8,T)};export{S as default};
|
package/panelmenu/panelmenu.js
CHANGED
|
@@ -431,7 +431,7 @@ this.primevue.panelmenu = (function (utils, Ripple, vue) {
|
|
|
431
431
|
onEnterKey(event) {
|
|
432
432
|
if (utils.ObjectUtils.isNotEmpty(this.focusedItem)) {
|
|
433
433
|
const element = utils.DomHandler.findSingle(this.$el, `li[id="${`${this.focusedItemId}`}"]`);
|
|
434
|
-
const anchorElement = element && utils.DomHandler.findSingle(element, '.p-menuitem-link');
|
|
434
|
+
const anchorElement = element && (utils.DomHandler.findSingle(element, '.p-menuitem-link') || utils.DomHandler.findSingle(element, 'a,button'));
|
|
435
435
|
|
|
436
436
|
anchorElement ? anchorElement.click() : element && element.click();
|
|
437
437
|
}
|
|
@@ -667,10 +667,18 @@ this.primevue.panelmenu = (function (utils, Ripple, vue) {
|
|
|
667
667
|
},
|
|
668
668
|
data() {
|
|
669
669
|
return {
|
|
670
|
+
id: this.$attrs.id,
|
|
670
671
|
activeItem: null
|
|
671
672
|
};
|
|
672
673
|
},
|
|
673
|
-
|
|
674
|
+
watch: {
|
|
675
|
+
'$attrs.id': function (newValue) {
|
|
676
|
+
this.id = newValue || utils.UniqueComponentId();
|
|
677
|
+
}
|
|
678
|
+
},
|
|
679
|
+
mounted() {
|
|
680
|
+
this.id = this.id || utils.UniqueComponentId();
|
|
681
|
+
},
|
|
674
682
|
methods: {
|
|
675
683
|
getItemProp(item, name) {
|
|
676
684
|
return item ? utils.ObjectUtils.getItemValue(item[name]) : undefined;
|
|
@@ -844,11 +852,6 @@ this.primevue.panelmenu = (function (utils, Ripple, vue) {
|
|
|
844
852
|
return ['p-submenu-icon', this.isItemActive(item) ? 'pi pi-chevron-down' : 'pi pi-chevron-right'];
|
|
845
853
|
}
|
|
846
854
|
},
|
|
847
|
-
computed: {
|
|
848
|
-
id() {
|
|
849
|
-
return this.$attrs.id || utils.UniqueComponentId();
|
|
850
|
-
}
|
|
851
|
-
},
|
|
852
855
|
components: {
|
|
853
856
|
PanelMenuList: script$1
|
|
854
857
|
}
|
|
@@ -872,7 +875,7 @@ this.primevue.panelmenu = (function (utils, Ripple, vue) {
|
|
|
872
875
|
const _component_PanelMenuList = vue.resolveComponent("PanelMenuList");
|
|
873
876
|
|
|
874
877
|
return (vue.openBlock(), vue.createElementBlock("div", {
|
|
875
|
-
id: $
|
|
878
|
+
id: $data.id,
|
|
876
879
|
class: "p-panelmenu p-component"
|
|
877
880
|
}, [
|
|
878
881
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.model, (item, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
this.primevue=this.primevue||{},this.primevue.panelmenu=function(e,t,i){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"PanelMenuSub",emits:["item-toggle"],props:{panelId:{type:String,default:null},focusedItemId:{type:String,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItemPath:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getItemId(e){return`${this.panelId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.key))},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-toggle",{processedItem:t,expanded:!this.isItemActive(t)})},onItemToggle(e){this.$emit("item-toggle",e)},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-fw pi-chevron-down":"pi pi-fw pi-chevron-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const a={class:"p-submenu-list"},l=["id","aria-label","aria-expanded","aria-level","aria-setsize","aria-posinset"],o=["onClick"],r=["href","onClick"],c={class:"p-menuitem-text"},m=["href","target"],d={class:"p-menuitem-text"},p={class:"p-toggleable-content"};n.render=function(e,t,s,n,u,h){const I=i.resolveComponent("router-link"),g=i.resolveComponent("PanelMenuSub",!0),f=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",a,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((e,t)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:h.getItemKey(e)},[h.isItemVisible(e)&&!h.getItemProp(e,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:h.getItemId(e),style:i.normalizeStyle(h.getItemProp(e,"style")),class:i.normalizeClass(h.getItemClass(e)),role:"treeitem","aria-label":h.getItemLabel(e),"aria-expanded":h.isItemGroup(e)?h.isItemActive(e):void 0,"aria-level":s.level+1,"aria-setsize":h.getAriaSetSize(),"aria-posinset":h.getAriaPosInset(t)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:t=>h.onItemClick(t,e)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:e.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[h.getItemProp(e,"to")&&!h.isItemDisabled(e)?(i.openBlock(),i.createBlock(I,{key:0,to:h.getItemProp(e,"to"),custom:""},{default:i.withCtx((({navigate:t,href:s,isActive:n,isExactActive:a})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:s,class:i.normalizeClass(h.getItemActionClass(e,{isActive:n,isExactActive:a})),tabindex:"-1","aria-hidden":"true",onClick:e=>h.onItemActionClick(e,t)},[h.getItemProp(e,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(h.getItemIconClass(e))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(h.getItemLabel(e)),1)],10,r)),[[f]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:h.getItemProp(e,"url"),class:i.normalizeClass(h.getItemActionClass(e)),target:h.getItemProp(e,"target"),tabindex:"-1","aria-hidden":"true"},[h.isItemGroup(e)?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(h.getItemToggleIconClass(e))},null,2)):i.createCommentVNode("",!0),h.getItemProp(e,"icon")?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(h.getItemIconClass(e))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",d,i.toDisplayString(h.getItemLabel(e)),1)],10,m)),[[f]])],64))],8,o),i.createVNode(i.Transition,{name:"p-toggleable-content"},{default:i.withCtx((()=>[i.withDirectives(i.createElementVNode("div",p,[h.isItemVisible(e)&&h.isItemGroup(e)?(i.openBlock(),i.createBlock(g,{key:0,id:h.getItemId(e)+"_list",role:"group",panelId:s.panelId,focusedItemId:s.focusedItemId,items:e.items,level:s.level+1,template:s.template,activeItemPath:s.activeItemPath,exact:s.exact,onItemToggle:h.onItemToggle},null,8,["id","panelId","focusedItemId","items","level","template","activeItemPath","exact","onItemToggle"])):i.createCommentVNode("",!0)],512),[[i.vShow,h.isItemActive(e)]])])),_:2},1024)],14,l)):i.createCommentVNode("",!0),h.isItemVisible(e)&&h.getItemProp(e,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,style:i.normalizeStyle(h.getItemProp(e,"style")),class:i.normalizeClass(h.getSeparatorItemClass(e)),role:"separator"},null,6)):i.createCommentVNode("",!0)],64)))),128))])};var u={name:"PanelMenuList",emits:["item-toggle","header-focus"],props:{panelId:{type:String,default:null},items:{type:Array,default:null},template:{type:Function,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0}},searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItem:null,activeItemPath:[]}),watch:{expandedKeys(e){this.autoUpdateActiveItemPath(e)}},mounted(){this.autoUpdateActiveItemPath(this.expandedKeys)},methods:{getItemProp:(t,i)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.parentKey))},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onFocus(e){this.focused=!0,this.focusedItem=this.focusedItem||(this.isElementInPanel(e,e.relatedTarget)?this.findFirstItem():this.findLastItem())},onBlur(){this.focused=!1,this.focusedItem=null,this.searchValue=""},onKeyDown(t){const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":case"Tab":case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onArrowDownKey(t){const i=e.ObjectUtils.isNotEmpty(this.focusedItem)?this.findNextItem(this.focusedItem):this.findFirstItem();this.changeFocusedItem({originalEvent:t,processedItem:i,focusOnNext:!0}),t.preventDefault()},onArrowUpKey(t){const i=e.ObjectUtils.isNotEmpty(this.focusedItem)?this.findPrevItem(this.focusedItem):this.findLastItem();this.changeFocusedItem({originalEvent:t,processedItem:i,selfCheck:!0}),t.preventDefault()},onArrowLeftKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.activeItemPath=this.activeItemPath.filter((e=>e.key!==this.focusedItem.key)):this.focusedItem=e.ObjectUtils.isNotEmpty(this.focusedItem.parent)?this.focusedItem.parent:this.focusedItem,t.preventDefault()}},onArrowRightKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){if(this.isItemGroup(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.onArrowDownKey(t):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==this.focusedItem.parentKey)),this.activeItemPath.push(this.focusedItem))}t.preventDefault()}},onHomeKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findFirstItem(),allowHeaderFocus:!1}),e.preventDefault()},onEndKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findLastItem(),focusOnNext:!0,allowHeaderFocus:!1}),e.preventDefault()},onEnterKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){const t=e.DomHandler.findSingle(this.$el,`li[id="${this.focusedItemId}"]`),i=t&&e.DomHandler.findSingle(t,".p-menuitem-link");i?i.click():t&&t.click()}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onItemToggle(t){const{processedItem:i,expanded:s}=t;this.expandedKeys?this.$emit("item-toggle",{item:i.item,expanded:s}):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==i.parentKey)),s&&this.activeItemPath.push(i)),this.focusedItem=i,e.DomHandler.focus(this.$el)},isElementInPanel(e,t){const i=e.currentTarget.closest(".p-panelmenu-panel");return i&&i.contains(t)},isItemMatched(e){return this.isValidItem(e)&&this.getItemLabel(e).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale))},isVisibleItem(e){return!!e&&(0===e.level||this.isItemActive(e))&&this.isItemVisible(e)},isValidItem(e){return!!e&&!this.isItemDisabled(e)},findFirstItem(){return this.visibleItems.find((e=>this.isValidItem(e)))},findLastItem(){return e.ObjectUtils.findLast(this.visibleItems,(e=>this.isValidItem(e)))},findNextItem(e){const t=this.visibleItems.findIndex((t=>t.key===e.key));return(t<this.visibleItems.length-1?this.visibleItems.slice(t+1).find((e=>this.isValidItem(e))):void 0)||e},findPrevItem(t){const i=this.visibleItems.findIndex((e=>e.key===t.key));return(i>0?e.ObjectUtils.findLast(this.visibleItems.slice(0,i),(e=>this.isValidItem(e))):void 0)||t},searchItems(t,i){this.searchValue=(this.searchValue||"")+i;let s=null,n=!1;if(e.ObjectUtils.isNotEmpty(this.focusedItem)){const t=this.visibleItems.findIndex((e=>e.key===this.focusedItem.key));s=this.visibleItems.slice(t).find((e=>this.isItemMatched(e))),s=e.ObjectUtils.isEmpty(s)?this.visibleItems.slice(0,t).find((e=>this.isItemMatched(e))):s}else s=this.visibleItems.find((e=>this.isItemMatched(e)));return e.ObjectUtils.isNotEmpty(s)&&(n=!0),e.ObjectUtils.isEmpty(s)&&e.ObjectUtils.isEmpty(this.focusedItem)&&(s=this.findFirstItem()),e.ObjectUtils.isNotEmpty(s)&&this.changeFocusedItem({originalEvent:t,processedItem:s,allowHeaderFocus:!1}),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),n},changeFocusedItem(t){const{originalEvent:i,processedItem:s,focusOnNext:n,selfCheck:a,allowHeaderFocus:l=!0}=t;e.ObjectUtils.isNotEmpty(this.focusedItem)&&this.focusedItem.key!==s.key?(this.focusedItem=s,this.scrollInView()):l&&this.$emit("header-focus",{originalEvent:i,focusOnNext:n,selfCheck:a})},scrollInView(){const t=e.DomHandler.findSingle(this.$el,`li[id="${this.focusedItemId}"]`);t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest",inline:"start"})},autoUpdateActiveItemPath(e){this.activeItemPath=Object.entries(e||{}).reduce(((e,[t,i])=>{if(i){const i=this.findProcessedItemByItemKey(t);i&&e.push(i)}return e}),[])},findProcessedItemByItemKey(e,t,i=0){if(!(t=t||0===i&&this.processedItems))return null;for(let s=0;s<t.length;s++){const n=t[s];if(this.getItemProp(n,"key")===e)return n;const a=this.findProcessedItemByItemKey(e,n.items,i+1);if(a)return a}},createProcessedItems(e,t=0,i={},s=""){const n=[];return e&&e.forEach(((e,a)=>{const l=(""!==s?s+"_":"")+a,o={item:e,index:a,level:t,key:l,parent:i,parentKey:s};o.items=this.createProcessedItems(e.items,t+1,o,l),n.push(o)})),n},flatItems(e,t=[]){return e&&e.forEach((e=>{this.isVisibleItem(e)&&(t.push(e),this.flatItems(e.items,t))})),t}},computed:{processedItems(){return this.createProcessedItems(this.items||[])},visibleItems(){return this.flatItems(this.processedItems)},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItem)?`${this.panelId}_${this.focusedItem.key}`:null}},components:{PanelMenuSub:n}};u.render=function(e,t,s,n,a,l){const o=i.resolveComponent("PanelMenuSub");return i.openBlock(),i.createBlock(o,{id:s.panelId+"_list",class:"p-panelmenu-root-list",role:"tree",tabindex:-1,"aria-activedescendant":a.focused?l.focusedItemId:void 0,panelId:s.panelId,focusedItemId:a.focused?l.focusedItemId:void 0,items:l.processedItems,template:s.template,activeItemPath:a.activeItemPath,exact:s.exact,onFocus:l.onFocus,onBlur:l.onBlur,onKeydown:l.onKeyDown,onItemToggle:l.onItemToggle},null,8,["id","aria-activedescendant","panelId","focusedItemId","items","template","activeItemPath","exact","onFocus","onBlur","onKeydown","onItemToggle"])};var h={name:"PanelMenu",emits:["update:expandedKeys","panel-open","panel-close"],props:{model:{type:Array,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},data:()=>({activeItem:null}),methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return this.expandedKeys?this.expandedKeys[this.getItemProp(t,"key")]:e.ObjectUtils.equals(t,this.activeItem)},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},getPanelId(e){return`${this.id}_${e}`},getPanelKey(e){return this.getPanelId(e)},getHeaderId(e){return`${this.getPanelId(e)}_header`},getContentId(e){return`${this.getPanelId(e)}_content`},onHeaderClick(t,i){this.isItemDisabled(i)?t.preventDefault():(i.command&&i.command({originalEvent:t,item:i}),this.changeActiveItem(t,i),e.DomHandler.focus(t.currentTarget))},onHeaderKeyDown(e,t){switch(e.code){case"ArrowDown":this.onHeaderArrowDownKey(e);break;case"ArrowUp":this.onHeaderArrowUpKey(e);break;case"Home":this.onHeaderHomeKey(e);break;case"End":this.onHeaderEndKey(e);break;case"Enter":case"Space":this.onHeaderEnterKey(e,t)}},onHeaderArrowDownKey(t){const i=e.DomHandler.hasClass(t.currentTarget,"p-highlight")?e.DomHandler.findSingle(t.currentTarget.nextElementSibling,".p-panelmenu-root-list"):null;i?e.DomHandler.focus(i):this.updateFocusedHeader({originalEvent:t,focusOnNext:!0}),t.preventDefault()},onHeaderArrowUpKey(t){const i=this.findPrevHeader(t.currentTarget.parentElement)||this.findLastHeader(),s=e.DomHandler.hasClass(i,"p-highlight")?e.DomHandler.findSingle(i.nextElementSibling,".p-panelmenu-root-list"):null;s?e.DomHandler.focus(s):this.updateFocusedHeader({originalEvent:t,focusOnNext:!1}),t.preventDefault()},onHeaderHomeKey(e){this.changeFocusedHeader(e,this.findFirstHeader()),e.preventDefault()},onHeaderEndKey(e){this.changeFocusedHeader(e,this.findLastHeader()),e.preventDefault()},onHeaderEnterKey(t,i){const s=e.DomHandler.findSingle(t.currentTarget,".p-panelmenu-header-action");s?s.click():this.onHeaderClick(t,i),t.preventDefault()},onHeaderActionClick(e,t){t&&t(e)},findNextHeader(t,i=!1){const s=i?t:t.nextElementSibling,n=e.DomHandler.findSingle(s,".p-panelmenu-header");return n?e.DomHandler.hasClass(n,"p-disabled")?this.findNextHeader(n.parentElement):n:null},findPrevHeader(t,i=!1){const s=i?t:t.previousElementSibling,n=e.DomHandler.findSingle(s,".p-panelmenu-header");return n?e.DomHandler.hasClass(n,"p-disabled")?this.findPrevHeader(n.parentElement):n:null},findFirstHeader(){return this.findNextHeader(this.$el.firstElementChild,!0)},findLastHeader(){return this.findPrevHeader(this.$el.lastElementChild,!0)},updateFocusedHeader(t){const{originalEvent:i,focusOnNext:s,selfCheck:n}=t,a=i.currentTarget.closest(".p-panelmenu-panel"),l=n?e.DomHandler.findSingle(a,".p-panelmenu-header"):s?this.findNextHeader(a):this.findPrevHeader(a);l?this.changeFocusedHeader(i,l):s?this.onHeaderHomeKey(i):this.onHeaderEndKey(i)},changeActiveItem(t,i,s=!1){if(!this.isItemDisabled(i)){const n=this.isItemActive(i),a=n?"panel-close":"panel-open";this.activeItem=s?i:this.activeItem&&e.ObjectUtils.equals(i,this.activeItem)?null:i,this.changeExpandedKeys({item:i,expanded:!n}),this.$emit(a,{originalEvent:t,item:i})}},changeExpandedKeys({item:e,expanded:t=!1}){if(this.expandedKeys){let i={...this.expandedKeys};t?i[e.key]=!0:delete i[e.key],this.$emit("update:expandedKeys",i)}},changeFocusedHeader(t,i){i&&e.DomHandler.focus(i)},getPanelClass(e){return["p-panelmenu-panel",this.getItemProp(e,"class")]},getHeaderClass(e){return["p-panelmenu-header",this.getItemProp(e,"headerClass"),{"p-highlight":this.isItemActive(e),"p-disabled":this.isItemDisabled(e)}]},getHeaderActionClass(e,t){return["p-panelmenu-header-action",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getHeaderIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getHeaderToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-chevron-down":"pi pi-chevron-right"]}},computed:{id(){return this.$attrs.id||e.UniqueComponentId()}},components:{PanelMenuList:u}};const I=["id"],g=["id","tabindex","aria-label","aria-expanded","aria-controls","aria-disabled","onClick","onKeydown"],f={class:"p-panelmenu-header-content"},y=["href","onClick"],v={class:"p-menuitem-text"},k=["href"],b={class:"p-menuitem-text"},P=["id","aria-labelledby"],C={key:0,class:"p-panelmenu-content"};return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-panelmenu .p-panelmenu-header-action {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n}\n.p-panelmenu .p-panelmenu-header-action:focus {\n z-index: 1;\n}\n.p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n position: relative;\n overflow: hidden;\n}\n.p-panelmenu .p-menuitem-text {\n line-height: 1;\n}\n"),h.render=function(e,t,s,n,a,l){const o=i.resolveComponent("router-link"),r=i.resolveComponent("PanelMenuList");return i.openBlock(),i.createElementBlock("div",{id:l.id,class:"p-panelmenu p-component"},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.model,((t,n)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:l.getPanelKey(n)},[l.isItemVisible(t)?(i.openBlock(),i.createElementBlock("div",{key:0,style:i.normalizeStyle(l.getItemProp(t,"style")),class:i.normalizeClass(l.getPanelClass(t))},[i.createElementVNode("div",{id:l.getHeaderId(n),class:i.normalizeClass(l.getHeaderClass(t)),tabindex:l.isItemDisabled(t)?-1:s.tabindex,role:"button","aria-label":l.getItemLabel(t),"aria-expanded":l.isItemActive(t),"aria-controls":l.getContentId(n),"aria-disabled":l.isItemDisabled(t),onClick:e=>l.onHeaderClick(e,t),onKeydown:e=>l.onHeaderKeyDown(e,t)},[i.createElementVNode("div",f,[e.$slots.item?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(e.$slots.item),{key:1,item:t},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[l.getItemProp(t,"to")&&!l.isItemDisabled(t)?(i.openBlock(),i.createBlock(o,{key:0,to:l.getItemProp(t,"to"),custom:""},{default:i.withCtx((({navigate:e,href:s,isActive:n,isExactActive:a})=>[i.createElementVNode("a",{href:s,class:i.normalizeClass(l.getHeaderActionClass(t,{isActive:n,isExactActive:a})),tabindex:-1,onClick:t=>l.onHeaderActionClick(t,e)},[l.getItemProp(t,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(l.getHeaderIconClass(t))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",v,i.toDisplayString(l.getItemLabel(t)),1)],10,y)])),_:2},1032,["to"])):(i.openBlock(),i.createElementBlock("a",{key:1,href:l.getItemProp(t,"url"),class:i.normalizeClass(l.getHeaderActionClass(t)),tabindex:-1},[l.getItemProp(t,"items")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(l.getHeaderToggleIconClass(t))},null,2)):i.createCommentVNode("",!0),l.getItemProp(t,"icon")?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(l.getHeaderIconClass(t))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",b,i.toDisplayString(l.getItemLabel(t)),1)],10,k))],64))])],42,g),i.createVNode(i.Transition,{name:"p-toggleable-content"},{default:i.withCtx((()=>[i.withDirectives(i.createElementVNode("div",{id:l.getContentId(n),class:"p-toggleable-content",role:"region","aria-labelledby":l.getHeaderId(n)},[l.getItemProp(t,"items")?(i.openBlock(),i.createElementBlock("div",C,[i.createVNode(r,{panelId:l.getPanelId(n),items:l.getItemProp(t,"items"),template:e.$slots.item,expandedKeys:s.expandedKeys,onItemToggle:l.changeExpandedKeys,onHeaderFocus:l.updateFocusedHeader,exact:s.exact},null,8,["panelId","items","template","expandedKeys","onItemToggle","onHeaderFocus","exact"])])):i.createCommentVNode("",!0)],8,P),[[i.vShow,l.isItemActive(t)]])])),_:2},1024)],6)):i.createCommentVNode("",!0)],64)))),128))],8,I)},h}(primevue.utils,primevue.ripple,Vue);
|
|
1
|
+
this.primevue=this.primevue||{},this.primevue.panelmenu=function(e,t,i){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"PanelMenuSub",emits:["item-toggle"],props:{panelId:{type:String,default:null},focusedItemId:{type:String,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItemPath:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getItemId(e){return`${this.panelId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.key))},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-toggle",{processedItem:t,expanded:!this.isItemActive(t)})},onItemToggle(e){this.$emit("item-toggle",e)},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-fw pi-chevron-down":"pi pi-fw pi-chevron-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const a={class:"p-submenu-list"},l=["id","aria-label","aria-expanded","aria-level","aria-setsize","aria-posinset"],o=["onClick"],r=["href","onClick"],c={class:"p-menuitem-text"},m=["href","target"],d={class:"p-menuitem-text"},p={class:"p-toggleable-content"};n.render=function(e,t,s,n,u,h){const I=i.resolveComponent("router-link"),g=i.resolveComponent("PanelMenuSub",!0),f=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",a,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((e,t)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:h.getItemKey(e)},[h.isItemVisible(e)&&!h.getItemProp(e,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:h.getItemId(e),style:i.normalizeStyle(h.getItemProp(e,"style")),class:i.normalizeClass(h.getItemClass(e)),role:"treeitem","aria-label":h.getItemLabel(e),"aria-expanded":h.isItemGroup(e)?h.isItemActive(e):void 0,"aria-level":s.level+1,"aria-setsize":h.getAriaSetSize(),"aria-posinset":h.getAriaPosInset(t)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:t=>h.onItemClick(t,e)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:e.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[h.getItemProp(e,"to")&&!h.isItemDisabled(e)?(i.openBlock(),i.createBlock(I,{key:0,to:h.getItemProp(e,"to"),custom:""},{default:i.withCtx((({navigate:t,href:s,isActive:n,isExactActive:a})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:s,class:i.normalizeClass(h.getItemActionClass(e,{isActive:n,isExactActive:a})),tabindex:"-1","aria-hidden":"true",onClick:e=>h.onItemActionClick(e,t)},[h.getItemProp(e,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(h.getItemIconClass(e))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(h.getItemLabel(e)),1)],10,r)),[[f]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:h.getItemProp(e,"url"),class:i.normalizeClass(h.getItemActionClass(e)),target:h.getItemProp(e,"target"),tabindex:"-1","aria-hidden":"true"},[h.isItemGroup(e)?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(h.getItemToggleIconClass(e))},null,2)):i.createCommentVNode("",!0),h.getItemProp(e,"icon")?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(h.getItemIconClass(e))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",d,i.toDisplayString(h.getItemLabel(e)),1)],10,m)),[[f]])],64))],8,o),i.createVNode(i.Transition,{name:"p-toggleable-content"},{default:i.withCtx((()=>[i.withDirectives(i.createElementVNode("div",p,[h.isItemVisible(e)&&h.isItemGroup(e)?(i.openBlock(),i.createBlock(g,{key:0,id:h.getItemId(e)+"_list",role:"group",panelId:s.panelId,focusedItemId:s.focusedItemId,items:e.items,level:s.level+1,template:s.template,activeItemPath:s.activeItemPath,exact:s.exact,onItemToggle:h.onItemToggle},null,8,["id","panelId","focusedItemId","items","level","template","activeItemPath","exact","onItemToggle"])):i.createCommentVNode("",!0)],512),[[i.vShow,h.isItemActive(e)]])])),_:2},1024)],14,l)):i.createCommentVNode("",!0),h.isItemVisible(e)&&h.getItemProp(e,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,style:i.normalizeStyle(h.getItemProp(e,"style")),class:i.normalizeClass(h.getSeparatorItemClass(e)),role:"separator"},null,6)):i.createCommentVNode("",!0)],64)))),128))])};var u={name:"PanelMenuList",emits:["item-toggle","header-focus"],props:{panelId:{type:String,default:null},items:{type:Array,default:null},template:{type:Function,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0}},searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItem:null,activeItemPath:[]}),watch:{expandedKeys(e){this.autoUpdateActiveItemPath(e)}},mounted(){this.autoUpdateActiveItemPath(this.expandedKeys)},methods:{getItemProp:(t,i)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemActive(e){return this.activeItemPath.some((t=>t.key===e.parentKey))},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onFocus(e){this.focused=!0,this.focusedItem=this.focusedItem||(this.isElementInPanel(e,e.relatedTarget)?this.findFirstItem():this.findLastItem())},onBlur(){this.focused=!1,this.focusedItem=null,this.searchValue=""},onKeyDown(t){const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":case"Tab":case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onArrowDownKey(t){const i=e.ObjectUtils.isNotEmpty(this.focusedItem)?this.findNextItem(this.focusedItem):this.findFirstItem();this.changeFocusedItem({originalEvent:t,processedItem:i,focusOnNext:!0}),t.preventDefault()},onArrowUpKey(t){const i=e.ObjectUtils.isNotEmpty(this.focusedItem)?this.findPrevItem(this.focusedItem):this.findLastItem();this.changeFocusedItem({originalEvent:t,processedItem:i,selfCheck:!0}),t.preventDefault()},onArrowLeftKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.activeItemPath=this.activeItemPath.filter((e=>e.key!==this.focusedItem.key)):this.focusedItem=e.ObjectUtils.isNotEmpty(this.focusedItem.parent)?this.focusedItem.parent:this.focusedItem,t.preventDefault()}},onArrowRightKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){if(this.isItemGroup(this.focusedItem)){this.activeItemPath.some((e=>e.key===this.focusedItem.key))?this.onArrowDownKey(t):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==this.focusedItem.parentKey)),this.activeItemPath.push(this.focusedItem))}t.preventDefault()}},onHomeKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findFirstItem(),allowHeaderFocus:!1}),e.preventDefault()},onEndKey(e){this.changeFocusedItem({originalEvent:e,processedItem:this.findLastItem(),focusOnNext:!0,allowHeaderFocus:!1}),e.preventDefault()},onEnterKey(t){if(e.ObjectUtils.isNotEmpty(this.focusedItem)){const t=e.DomHandler.findSingle(this.$el,`li[id="${this.focusedItemId}"]`),i=t&&(e.DomHandler.findSingle(t,".p-menuitem-link")||e.DomHandler.findSingle(t,"a,button"));i?i.click():t&&t.click()}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onItemToggle(t){const{processedItem:i,expanded:s}=t;this.expandedKeys?this.$emit("item-toggle",{item:i.item,expanded:s}):(this.activeItemPath=this.activeItemPath.filter((e=>e.parentKey!==i.parentKey)),s&&this.activeItemPath.push(i)),this.focusedItem=i,e.DomHandler.focus(this.$el)},isElementInPanel(e,t){const i=e.currentTarget.closest(".p-panelmenu-panel");return i&&i.contains(t)},isItemMatched(e){return this.isValidItem(e)&&this.getItemLabel(e).toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale))},isVisibleItem(e){return!!e&&(0===e.level||this.isItemActive(e))&&this.isItemVisible(e)},isValidItem(e){return!!e&&!this.isItemDisabled(e)},findFirstItem(){return this.visibleItems.find((e=>this.isValidItem(e)))},findLastItem(){return e.ObjectUtils.findLast(this.visibleItems,(e=>this.isValidItem(e)))},findNextItem(e){const t=this.visibleItems.findIndex((t=>t.key===e.key));return(t<this.visibleItems.length-1?this.visibleItems.slice(t+1).find((e=>this.isValidItem(e))):void 0)||e},findPrevItem(t){const i=this.visibleItems.findIndex((e=>e.key===t.key));return(i>0?e.ObjectUtils.findLast(this.visibleItems.slice(0,i),(e=>this.isValidItem(e))):void 0)||t},searchItems(t,i){this.searchValue=(this.searchValue||"")+i;let s=null,n=!1;if(e.ObjectUtils.isNotEmpty(this.focusedItem)){const t=this.visibleItems.findIndex((e=>e.key===this.focusedItem.key));s=this.visibleItems.slice(t).find((e=>this.isItemMatched(e))),s=e.ObjectUtils.isEmpty(s)?this.visibleItems.slice(0,t).find((e=>this.isItemMatched(e))):s}else s=this.visibleItems.find((e=>this.isItemMatched(e)));return e.ObjectUtils.isNotEmpty(s)&&(n=!0),e.ObjectUtils.isEmpty(s)&&e.ObjectUtils.isEmpty(this.focusedItem)&&(s=this.findFirstItem()),e.ObjectUtils.isNotEmpty(s)&&this.changeFocusedItem({originalEvent:t,processedItem:s,allowHeaderFocus:!1}),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),n},changeFocusedItem(t){const{originalEvent:i,processedItem:s,focusOnNext:n,selfCheck:a,allowHeaderFocus:l=!0}=t;e.ObjectUtils.isNotEmpty(this.focusedItem)&&this.focusedItem.key!==s.key?(this.focusedItem=s,this.scrollInView()):l&&this.$emit("header-focus",{originalEvent:i,focusOnNext:n,selfCheck:a})},scrollInView(){const t=e.DomHandler.findSingle(this.$el,`li[id="${this.focusedItemId}"]`);t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest",inline:"start"})},autoUpdateActiveItemPath(e){this.activeItemPath=Object.entries(e||{}).reduce(((e,[t,i])=>{if(i){const i=this.findProcessedItemByItemKey(t);i&&e.push(i)}return e}),[])},findProcessedItemByItemKey(e,t,i=0){if(!(t=t||0===i&&this.processedItems))return null;for(let s=0;s<t.length;s++){const n=t[s];if(this.getItemProp(n,"key")===e)return n;const a=this.findProcessedItemByItemKey(e,n.items,i+1);if(a)return a}},createProcessedItems(e,t=0,i={},s=""){const n=[];return e&&e.forEach(((e,a)=>{const l=(""!==s?s+"_":"")+a,o={item:e,index:a,level:t,key:l,parent:i,parentKey:s};o.items=this.createProcessedItems(e.items,t+1,o,l),n.push(o)})),n},flatItems(e,t=[]){return e&&e.forEach((e=>{this.isVisibleItem(e)&&(t.push(e),this.flatItems(e.items,t))})),t}},computed:{processedItems(){return this.createProcessedItems(this.items||[])},visibleItems(){return this.flatItems(this.processedItems)},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItem)?`${this.panelId}_${this.focusedItem.key}`:null}},components:{PanelMenuSub:n}};u.render=function(e,t,s,n,a,l){const o=i.resolveComponent("PanelMenuSub");return i.openBlock(),i.createBlock(o,{id:s.panelId+"_list",class:"p-panelmenu-root-list",role:"tree",tabindex:-1,"aria-activedescendant":a.focused?l.focusedItemId:void 0,panelId:s.panelId,focusedItemId:a.focused?l.focusedItemId:void 0,items:l.processedItems,template:s.template,activeItemPath:a.activeItemPath,exact:s.exact,onFocus:l.onFocus,onBlur:l.onBlur,onKeydown:l.onKeyDown,onItemToggle:l.onItemToggle},null,8,["id","aria-activedescendant","panelId","focusedItemId","items","template","activeItemPath","exact","onFocus","onBlur","onKeydown","onItemToggle"])};var h={name:"PanelMenu",emits:["update:expandedKeys","panel-open","panel-close"],props:{model:{type:Array,default:null},expandedKeys:{type:Object,default:null},exact:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},data(){return{id:this.$attrs.id,activeItem:null}},watch:{"$attrs.id":function(t){this.id=t||e.UniqueComponentId()}},mounted(){this.id=this.id||e.UniqueComponentId()},methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return this.expandedKeys?this.expandedKeys[this.getItemProp(t,"key")]:e.ObjectUtils.equals(t,this.activeItem)},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},getPanelId(e){return`${this.id}_${e}`},getPanelKey(e){return this.getPanelId(e)},getHeaderId(e){return`${this.getPanelId(e)}_header`},getContentId(e){return`${this.getPanelId(e)}_content`},onHeaderClick(t,i){this.isItemDisabled(i)?t.preventDefault():(i.command&&i.command({originalEvent:t,item:i}),this.changeActiveItem(t,i),e.DomHandler.focus(t.currentTarget))},onHeaderKeyDown(e,t){switch(e.code){case"ArrowDown":this.onHeaderArrowDownKey(e);break;case"ArrowUp":this.onHeaderArrowUpKey(e);break;case"Home":this.onHeaderHomeKey(e);break;case"End":this.onHeaderEndKey(e);break;case"Enter":case"Space":this.onHeaderEnterKey(e,t)}},onHeaderArrowDownKey(t){const i=e.DomHandler.hasClass(t.currentTarget,"p-highlight")?e.DomHandler.findSingle(t.currentTarget.nextElementSibling,".p-panelmenu-root-list"):null;i?e.DomHandler.focus(i):this.updateFocusedHeader({originalEvent:t,focusOnNext:!0}),t.preventDefault()},onHeaderArrowUpKey(t){const i=this.findPrevHeader(t.currentTarget.parentElement)||this.findLastHeader(),s=e.DomHandler.hasClass(i,"p-highlight")?e.DomHandler.findSingle(i.nextElementSibling,".p-panelmenu-root-list"):null;s?e.DomHandler.focus(s):this.updateFocusedHeader({originalEvent:t,focusOnNext:!1}),t.preventDefault()},onHeaderHomeKey(e){this.changeFocusedHeader(e,this.findFirstHeader()),e.preventDefault()},onHeaderEndKey(e){this.changeFocusedHeader(e,this.findLastHeader()),e.preventDefault()},onHeaderEnterKey(t,i){const s=e.DomHandler.findSingle(t.currentTarget,".p-panelmenu-header-action");s?s.click():this.onHeaderClick(t,i),t.preventDefault()},onHeaderActionClick(e,t){t&&t(e)},findNextHeader(t,i=!1){const s=i?t:t.nextElementSibling,n=e.DomHandler.findSingle(s,".p-panelmenu-header");return n?e.DomHandler.hasClass(n,"p-disabled")?this.findNextHeader(n.parentElement):n:null},findPrevHeader(t,i=!1){const s=i?t:t.previousElementSibling,n=e.DomHandler.findSingle(s,".p-panelmenu-header");return n?e.DomHandler.hasClass(n,"p-disabled")?this.findPrevHeader(n.parentElement):n:null},findFirstHeader(){return this.findNextHeader(this.$el.firstElementChild,!0)},findLastHeader(){return this.findPrevHeader(this.$el.lastElementChild,!0)},updateFocusedHeader(t){const{originalEvent:i,focusOnNext:s,selfCheck:n}=t,a=i.currentTarget.closest(".p-panelmenu-panel"),l=n?e.DomHandler.findSingle(a,".p-panelmenu-header"):s?this.findNextHeader(a):this.findPrevHeader(a);l?this.changeFocusedHeader(i,l):s?this.onHeaderHomeKey(i):this.onHeaderEndKey(i)},changeActiveItem(t,i,s=!1){if(!this.isItemDisabled(i)){const n=this.isItemActive(i),a=n?"panel-close":"panel-open";this.activeItem=s?i:this.activeItem&&e.ObjectUtils.equals(i,this.activeItem)?null:i,this.changeExpandedKeys({item:i,expanded:!n}),this.$emit(a,{originalEvent:t,item:i})}},changeExpandedKeys({item:e,expanded:t=!1}){if(this.expandedKeys){let i={...this.expandedKeys};t?i[e.key]=!0:delete i[e.key],this.$emit("update:expandedKeys",i)}},changeFocusedHeader(t,i){i&&e.DomHandler.focus(i)},getPanelClass(e){return["p-panelmenu-panel",this.getItemProp(e,"class")]},getHeaderClass(e){return["p-panelmenu-header",this.getItemProp(e,"headerClass"),{"p-highlight":this.isItemActive(e),"p-disabled":this.isItemDisabled(e)}]},getHeaderActionClass(e,t){return["p-panelmenu-header-action",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getHeaderIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getHeaderToggleIconClass(e){return["p-submenu-icon",this.isItemActive(e)?"pi pi-chevron-down":"pi pi-chevron-right"]}},components:{PanelMenuList:u}};const I=["id"],g=["id","tabindex","aria-label","aria-expanded","aria-controls","aria-disabled","onClick","onKeydown"],f={class:"p-panelmenu-header-content"},y=["href","onClick"],v={class:"p-menuitem-text"},k=["href"],b={class:"p-menuitem-text"},P=["id","aria-labelledby"],C={key:0,class:"p-panelmenu-content"};return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-panelmenu .p-panelmenu-header-action {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n}\n.p-panelmenu .p-panelmenu-header-action:focus {\n z-index: 1;\n}\n.p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-panelmenu .p-menuitem-link {\n display: flex;\n align-items: center;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n position: relative;\n overflow: hidden;\n}\n.p-panelmenu .p-menuitem-text {\n line-height: 1;\n}\n"),h.render=function(e,t,s,n,a,l){const o=i.resolveComponent("router-link"),r=i.resolveComponent("PanelMenuList");return i.openBlock(),i.createElementBlock("div",{id:a.id,class:"p-panelmenu p-component"},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.model,((t,n)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:l.getPanelKey(n)},[l.isItemVisible(t)?(i.openBlock(),i.createElementBlock("div",{key:0,style:i.normalizeStyle(l.getItemProp(t,"style")),class:i.normalizeClass(l.getPanelClass(t))},[i.createElementVNode("div",{id:l.getHeaderId(n),class:i.normalizeClass(l.getHeaderClass(t)),tabindex:l.isItemDisabled(t)?-1:s.tabindex,role:"button","aria-label":l.getItemLabel(t),"aria-expanded":l.isItemActive(t),"aria-controls":l.getContentId(n),"aria-disabled":l.isItemDisabled(t),onClick:e=>l.onHeaderClick(e,t),onKeydown:e=>l.onHeaderKeyDown(e,t)},[i.createElementVNode("div",f,[e.$slots.item?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(e.$slots.item),{key:1,item:t},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[l.getItemProp(t,"to")&&!l.isItemDisabled(t)?(i.openBlock(),i.createBlock(o,{key:0,to:l.getItemProp(t,"to"),custom:""},{default:i.withCtx((({navigate:e,href:s,isActive:n,isExactActive:a})=>[i.createElementVNode("a",{href:s,class:i.normalizeClass(l.getHeaderActionClass(t,{isActive:n,isExactActive:a})),tabindex:-1,onClick:t=>l.onHeaderActionClick(t,e)},[l.getItemProp(t,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(l.getHeaderIconClass(t))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",v,i.toDisplayString(l.getItemLabel(t)),1)],10,y)])),_:2},1032,["to"])):(i.openBlock(),i.createElementBlock("a",{key:1,href:l.getItemProp(t,"url"),class:i.normalizeClass(l.getHeaderActionClass(t)),tabindex:-1},[l.getItemProp(t,"items")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(l.getHeaderToggleIconClass(t))},null,2)):i.createCommentVNode("",!0),l.getItemProp(t,"icon")?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(l.getHeaderIconClass(t))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",b,i.toDisplayString(l.getItemLabel(t)),1)],10,k))],64))])],42,g),i.createVNode(i.Transition,{name:"p-toggleable-content"},{default:i.withCtx((()=>[i.withDirectives(i.createElementVNode("div",{id:l.getContentId(n),class:"p-toggleable-content",role:"region","aria-labelledby":l.getHeaderId(n)},[l.getItemProp(t,"items")?(i.openBlock(),i.createElementBlock("div",C,[i.createVNode(r,{panelId:l.getPanelId(n),items:l.getItemProp(t,"items"),template:e.$slots.item,expandedKeys:s.expandedKeys,onItemToggle:l.changeExpandedKeys,onHeaderFocus:l.updateFocusedHeader,exact:s.exact},null,8,["panelId","items","template","expandedKeys","onItemToggle","onHeaderFocus","exact"])])):i.createCommentVNode("",!0)],8,P),[[i.vShow,l.isItemActive(t)]])])),_:2},1024)],6)):i.createCommentVNode("",!0)],64)))),128))],8,I)},h}(primevue.utils,primevue.ripple,Vue);
|
package/picklist/PickList.vue
CHANGED
|
@@ -201,6 +201,7 @@ export default {
|
|
|
201
201
|
styleElement: null,
|
|
202
202
|
data() {
|
|
203
203
|
return {
|
|
204
|
+
id: this.$attrs.id,
|
|
204
205
|
d_selection: this.selection,
|
|
205
206
|
focused: {
|
|
206
207
|
sourceList: false,
|
|
@@ -210,6 +211,9 @@ export default {
|
|
|
210
211
|
};
|
|
211
212
|
},
|
|
212
213
|
watch: {
|
|
214
|
+
'$attrs.id': function (newValue) {
|
|
215
|
+
this.id = newValue || UniqueComponentId();
|
|
216
|
+
},
|
|
213
217
|
selection(newValue) {
|
|
214
218
|
this.d_selection = newValue;
|
|
215
219
|
}
|
|
@@ -225,6 +229,8 @@ export default {
|
|
|
225
229
|
this.destroyStyle();
|
|
226
230
|
},
|
|
227
231
|
mounted() {
|
|
232
|
+
this.id = this.id || UniqueComponentId();
|
|
233
|
+
|
|
228
234
|
if (this.responsive) {
|
|
229
235
|
this.createStyle();
|
|
230
236
|
}
|
|
@@ -797,10 +803,10 @@ export default {
|
|
|
797
803
|
},
|
|
798
804
|
computed: {
|
|
799
805
|
idSource() {
|
|
800
|
-
return this
|
|
806
|
+
return `${this.id}_source`;
|
|
801
807
|
},
|
|
802
808
|
idTarget() {
|
|
803
|
-
return this
|
|
809
|
+
return `${this.id}_target`;
|
|
804
810
|
},
|
|
805
811
|
focusedOptionId() {
|
|
806
812
|
return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
|
package/picklist/picklist.cjs.js
CHANGED
|
@@ -104,6 +104,7 @@ var script = {
|
|
|
104
104
|
styleElement: null,
|
|
105
105
|
data() {
|
|
106
106
|
return {
|
|
107
|
+
id: this.$attrs.id,
|
|
107
108
|
d_selection: this.selection,
|
|
108
109
|
focused: {
|
|
109
110
|
sourceList: false,
|
|
@@ -113,6 +114,9 @@ var script = {
|
|
|
113
114
|
};
|
|
114
115
|
},
|
|
115
116
|
watch: {
|
|
117
|
+
'$attrs.id': function (newValue) {
|
|
118
|
+
this.id = newValue || utils.UniqueComponentId();
|
|
119
|
+
},
|
|
116
120
|
selection(newValue) {
|
|
117
121
|
this.d_selection = newValue;
|
|
118
122
|
}
|
|
@@ -128,6 +132,8 @@ var script = {
|
|
|
128
132
|
this.destroyStyle();
|
|
129
133
|
},
|
|
130
134
|
mounted() {
|
|
135
|
+
this.id = this.id || utils.UniqueComponentId();
|
|
136
|
+
|
|
131
137
|
if (this.responsive) {
|
|
132
138
|
this.createStyle();
|
|
133
139
|
}
|
|
@@ -694,10 +700,10 @@ var script = {
|
|
|
694
700
|
},
|
|
695
701
|
computed: {
|
|
696
702
|
idSource() {
|
|
697
|
-
return this
|
|
703
|
+
return `${this.id}_source`;
|
|
698
704
|
},
|
|
699
705
|
idTarget() {
|
|
700
|
-
return this
|
|
706
|
+
return `${this.id}_target`;
|
|
701
707
|
},
|
|
702
708
|
focusedOptionId() {
|
|
703
709
|
return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("primevue/button"),t=require("primevue/ripple"),i=require("primevue/utils"),o=require("vue");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=l(e),s=l(t),r={name:"PickList",emits:["update:modelValue","reorder","update:selection","selection-change","move-to-target","move-to-source","move-all-to-target","move-all-to-source","focus","blur"],props:{modelValue:{type:Array,default:()=>[[],[]]},selection:{type:Array,default:()=>[[],[]]},dataKey:{type:String,default:null},listStyle:{type:null,default:null},metaKeySelection:{type:Boolean,default:!0},responsive:{type:Boolean,default:!0},breakpoint:{type:String,default:"960px"},stripedRows:{type:Boolean,default:!1},showSourceControls:{type:Boolean,default:!0},showTargetControls:{type:Boolean,default:!0},targetListProps:{type:null,default:null},sourceListProps:{type:null,default:null},moveUpButtonProps:{type:null,default:null},moveTopButtonProps:{type:null,default:null},moveDownButtonProps:{type:null,default:null},moveBottomButtonProps:{type:null,default:null},moveToTargetProps:{type:null,default:null},moveAllToTargetProps:{type:null,default:null},moveToSourceProps:{type:null,default:null},moveAllToSourceProps:{type:null,default:null},tabindex:{type:Number,default:0}},itemTouched:!1,reorderDirection:null,styleElement:null,data(){return{d_selection:this.selection,focused:{sourceList:!1,targetList:!1},focusedOptionIndex:-1}},watch:{selection(e){this.d_selection=e}},updated(){this.reorderDirection&&(this.updateListScroll(this.$refs.sourceList.$el),this.updateListScroll(this.$refs.targetList.$el),this.reorderDirection=null)},beforeUnmount(){this.destroyStyle()},mounted(){this.responsive&&this.createStyle()},methods:{getItemKey(e,t){return this.dataKey?i.ObjectUtils.resolveFieldData(e,this.dataKey):t},isSelected(e,t){return-1!=i.ObjectUtils.findIndexInList(e,this.d_selection[t])},onListFocus(e,t){const o=i.DomHandler.findSingle(this.$refs[t].$el,"li.p-picklist-item.p-highlight"),l=i.ObjectUtils.findIndexInList(o,this.$refs[t].$el.children);this.focused[t]=!0;const n=-1!==this.focusedOptionIndex?this.focusedOptionIndex:o?l:-1;this.changeFocusedOptionIndex(n,t),this.$emit("focus",e)},onListBlur(e,t){this.focused[t]=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onOptionMouseDown(e,t){this.focused[t]=!0,this.focusedOptionIndex=e},moveUp(e,t){if(this.d_selection&&this.d_selection[t]){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=0;e<l.length;e++){let t=l[e],n=i.ObjectUtils.findIndexInList(t,o);if(0===n)break;{let e=o[n],t=o[n-1];o[n-1]=e,o[n]=t}}let n=[...this.modelValue];n[t]=o,this.reorderDirection="up",this.$emit("update:modelValue",n),this.$emit("reorder",{originalEvent:e,value:n,direction:this.reorderDirection,listIndex:t})}},moveTop(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=0;e<l.length;e++){let t=l[e],n=i.ObjectUtils.findIndexInList(t,o);if(0===n)break;{let e=o.splice(n,1)[0];o.unshift(e)}}let n=[...this.modelValue];n[t]=o,this.reorderDirection="top",this.$emit("update:modelValue",n),this.$emit("reorder",{originalEvent:e,value:n,direction:this.reorderDirection,listIndex:t})}},moveDown(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=l.length-1;e>=0;e--){let t=l[e],n=i.ObjectUtils.findIndexInList(t,o);if(n===o.length-1)break;{let e=o[n],t=o[n+1];o[n+1]=e,o[n]=t}}let n=[...this.modelValue];n[t]=o,this.reorderDirection="down",this.$emit("update:modelValue",n),this.$emit("reorder",{originalEvent:e,value:n,direction:this.reorderDirection,listIndex:t})}},moveBottom(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=l.length-1;e>=0;e--){let t=l[e],n=i.ObjectUtils.findIndexInList(t,o);if(n===o.length-1)break;{let e=o.splice(n,1)[0];o.push(e)}}let n=[...this.modelValue];n[t]=o,this.reorderDirection="bottom",this.$emit("update:modelValue",n),this.$emit("reorder",{originalEvent:e,value:n,direction:this.reorderDirection,listIndex:t})}},moveToTarget(e){let t=this.d_selection&&this.d_selection[0]?this.d_selection[0]:null,o=[...this.modelValue[0]],l=[...this.modelValue[1]];if(t){for(let e=0;e<t.length;e++){let n=t[e];-1==i.ObjectUtils.findIndexInList(n,l)&&l.push(o.splice(i.ObjectUtils.findIndexInList(n,o),1)[0])}let n=[...this.modelValue];n[0]=o,n[1]=l,this.$emit("update:modelValue",n),this.$emit("move-to-target",{originalEvent:e,items:t}),this.d_selection[0]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveAllToTarget(e){if(this.modelValue[0]){let t=[...this.modelValue[0]],i=[...this.modelValue[1]];this.$emit("move-all-to-target",{originalEvent:e,items:t}),i=[...i,...t],t=[];let o=[...this.modelValue];o[0]=t,o[1]=i,this.$emit("update:modelValue",o),this.d_selection[0]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveToSource(e){let t=this.d_selection&&this.d_selection[1]?this.d_selection[1]:null,o=[...this.modelValue[0]],l=[...this.modelValue[1]];if(t){for(let e=0;e<t.length;e++){let n=t[e];-1==i.ObjectUtils.findIndexInList(n,o)&&o.push(l.splice(i.ObjectUtils.findIndexInList(n,l),1)[0])}let n=[...this.modelValue];n[0]=o,n[1]=l,this.$emit("update:modelValue",n),this.$emit("move-to-source",{originalEvent:e,items:t}),this.d_selection[1]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveAllToSource(e){if(this.modelValue[1]){let t=[...this.modelValue[0]],i=[...this.modelValue[1]];this.$emit("move-all-to-source",{originalEvent:e,items:i}),t=[...t,...i],i=[];let o=[...this.modelValue];o[0]=t,o[1]=i,this.$emit("update:modelValue",o),this.d_selection[1]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},onItemClick(e,t,o,l){const n=0===l?"sourceList":"targetList";this.itemTouched=!1;const s=this.d_selection[l],r=i.ObjectUtils.findIndexInList(t,this.d_selection),a=-1!=r,d=!this.itemTouched&&this.metaKeySelection,c=i.DomHandler.find(this.$refs[n].$el,".p-picklist-item")[o].getAttribute("id");let u;if(this.focusedOptionIndex=c,d){let i=e.metaKey||e.ctrlKey;a&&i?u=s.filter(((e,t)=>t!==r)):(u=i&&s?[...s]:[],u.push(t))}else a?u=s.filter(((e,t)=>t!==r)):(u=s?[...s]:[],u.push(t));let p=[...this.d_selection];p[l]=u,this.d_selection=p,this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})},onItemDblClick(e,t,i){0===i?this.moveToTarget(e):1===i&&this.moveToSource(e)},onItemTouchEnd(){this.itemTouched=!0},onItemKeyDown(e,t){switch(e.code){case"ArrowDown":this.onArrowDownKey(e,t);break;case"ArrowUp":this.onArrowUpKey(e,t);break;case"Home":this.onHomeKey(e,t);break;case"End":this.onEndKey(e,t);break;case"Enter":this.onEnterKey(e,t);break;case"Space":this.onSpaceKey(e,t);break;case"KeyA":e.ctrlKey&&(this.d_selection=[...this.modelValue],this.$emit("update:selection",this.d_selection))}},onArrowDownKey(e,t){const i=this.findNextOptionIndex(this.focusedOptionIndex,t);this.changeFocusedOptionIndex(i,t),e.shiftKey&&this.onEnterKey(e,t),e.preventDefault()},onArrowUpKey(e,t){const i=this.findPrevOptionIndex(this.focusedOptionIndex,t);this.changeFocusedOptionIndex(i,t),e.shiftKey&&this.onEnterKey(e,t),e.preventDefault()},onEnterKey(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),n=[...o].findIndex((e=>e===l)),s="sourceList"===t?0:1;this.onItemClick(e,this.modelValue[s][n],n,s),e.preventDefault()},onSpaceKey(e,t){if(e.preventDefault(),e.shiftKey){const e="sourceList"===t?0:1,o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.ObjectUtils.findIndexInList(this.d_selection[e][0],[...this.modelValue[e]]),n=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),s=[...o].findIndex((e=>e===n));this.d_selection[e]=[...this.modelValue[e]].slice(Math.min(l,s),Math.max(l,s)+1),this.$emit("update:selection",this.d_selection)}else this.onEnterKey(e,t)},onHomeKey(e,t){if(e.ctrlKey&&e.shiftKey){const e="sourceList"===t?0:1,o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),n=[...o].findIndex((e=>e===l));this.d_selection[e]=[...this.modelValue[e]].slice(0,n+1),this.$emit("update:selection",this.d_selection)}else this.changeFocusedOptionIndex(0,t);e.preventDefault()},onEndKey(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item");if(e.ctrlKey&&e.shiftKey){const e="sourceList"===t?0:1,l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),n=[...o].findIndex((e=>e===l));this.d_selection[e]=[...this.modelValue[e]].slice(n,o.length),this.$emit("update:selection",this.d_selection)}else this.changeFocusedOptionIndex(o.length-1,t);e.preventDefault()},findNextOptionIndex(e,t){const o=[...i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item")].findIndex((t=>t.id===e));return o>-1?o+1:0},findPrevOptionIndex(e,t){const o=[...i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item")].findIndex((t=>t.id===e));return o>-1?o-1:0},changeFocusedOptionIndex(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item");let l=e>=o.length?o.length-1:e<0?0:e;this.focusedOptionIndex=o[l].getAttribute("id"),this.scrollInView(o[l].getAttribute("id"),t)},scrollInView(e,t){const o=i.DomHandler.findSingle(this.$refs[t].$el,`li[id="${e}"]`);o&&o.scrollIntoView&&o.scrollIntoView({block:"nearest",inline:"start"})},updateListScroll(e){const t=i.DomHandler.find(e,".p-picklist-item.p-highlight");if(t&&t.length)switch(this.reorderDirection){case"up":i.DomHandler.scrollInView(e,t[0]);break;case"top":e.scrollTop=0;break;case"down":i.DomHandler.scrollInView(e,t[t.length-1]);break;case"bottom":e.scrollTop=e.scrollHeight}},createStyle(){if(!this.styleElement){this.$el.setAttribute(this.attributeSelector,""),this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement);let e=`\n@media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.attributeSelector}] {\n flex-direction: column;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-right:before {\n content: "\\e930"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-double-right:before {\n content: "\\e92c"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-left:before {\n content: "\\e933"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-double-left:before {\n content: "\\e92f"\n }\n}\n`;this.styleElement.innerHTML=e}},destroyStyle(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)},moveDisabled(e){if(!this.d_selection[e]||!this.d_selection[e].length)return!0},moveAllDisabled(e){return i.ObjectUtils.isEmpty(this[e])},moveSourceDisabled(){return i.ObjectUtils.isEmpty(this.targetList)},itemClass(e,t,i){return["p-picklist-item",{"p-highlight":this.isSelected(e,i),"p-focus":t===this.focusedOptionId}]}},computed:{idSource(){return this.$attrs.id||i.UniqueComponentId()},idTarget(){return this.$attrs.id||i.UniqueComponentId()},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null},containerClass(){return["p-picklist p-component",{"p-picklist-striped":this.stripedRows}]},sourceList(){return this.modelValue&&this.modelValue[0]?this.modelValue[0]:null},targetList(){return this.modelValue&&this.modelValue[1]?this.modelValue[1]:null},attributeSelector:()=>i.UniqueComponentId(),moveUpAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveUp:void 0},moveTopAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveTop:void 0},moveDownAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveDown:void 0},moveBottomAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveBottom:void 0},moveToTargetAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveToTarget:void 0},moveAllToTargetAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveAllToTarget:void 0},moveToSourceAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveToSource:void 0},moveAllToSourceAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveAllToSource:void 0}},components:{PLButton:n.default},directives:{ripple:s.default}};const a={key:0,class:"p-picklist-buttons p-picklist-source-controls"},d={class:"p-picklist-list-wrapper p-picklist-source-wrapper"},c={key:0,class:"p-picklist-header"},u=["id","onClick","onDblclick","onMousedown","aria-selected"],p={class:"p-picklist-buttons p-picklist-transfer-buttons"},m={class:"p-picklist-list-wrapper p-picklist-target-wrapper"},h={key:0,class:"p-picklist-header"},f=["id","onClick","onDblclick","onMousedown","aria-selected"],v={key:1,class:"p-picklist-buttons p-picklist-target-controls"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css","top"===i&&o.firstChild?o.insertBefore(l,o.firstChild):o.appendChild(l),l.styleSheet?l.styleSheet.cssText=e:l.appendChild(document.createTextNode(e))}}("\n.p-picklist {\n display: flex;\n}\n.p-picklist-buttons {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.p-picklist-list-wrapper {\n flex: 1 1 50%;\n}\n.p-picklist-list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n min-height: 12rem;\n max-height: 24rem;\n}\n.p-picklist-item {\n cursor: pointer;\n overflow: hidden;\n position: relative;\n}\n.p-picklist-item.p-picklist-flip-enter-active.p-picklist-flip-enter-to,\n.p-picklist-item.p-picklist-flip-leave-active.p-picklist-flip-leave-to {\n transition: none !important;\n}\n"),r.render=function(e,t,i,l,n,s){const r=o.resolveComponent("PLButton"),b=o.resolveDirective("ripple");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(s.containerClass)},[i.showSourceControls?(o.openBlock(),o.createElementBlock("div",a,[o.renderSlot(e.$slots,"sourcecontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":s.moveUpAriaLabel,disabled:s.moveDisabled(0)},i.moveUpButtonProps,{type:"button",icon:"pi pi-angle-up",onClick:t[0]||(t[0]=e=>s.moveUp(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveTopAriaLabel,disabled:s.moveDisabled(0)},i.moveTopButtonProps,{type:"button",icon:"pi pi-angle-double-up",onClick:t[1]||(t[1]=e=>s.moveTop(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveDownAriaLabel,disabled:s.moveDisabled(0)},i.moveDownButtonProps,{type:"button",icon:"pi pi-angle-down",onClick:t[2]||(t[2]=e=>s.moveDown(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveBottomAriaLabel,disabled:s.moveDisabled(0)},i.moveBottomButtonProps,{type:"button",icon:"pi pi-angle-double-down",onClick:t[3]||(t[3]=e=>s.moveBottom(e,0))}),null,16,["aria-label","disabled"]),o.renderSlot(e.$slots,"sourcecontrolsend")])):o.createCommentVNode("",!0),o.createElementVNode("div",d,[e.$slots.sourceheader?(o.openBlock(),o.createElementBlock("div",c,[o.renderSlot(e.$slots,"sourceheader")])):o.createCommentVNode("",!0),o.createVNode(o.TransitionGroup,o.mergeProps({ref:"sourceList",id:s.idSource+"_list",name:"p-picklist-flip",tag:"ul",class:"p-picklist-list p-picklist-source",style:i.listStyle,role:"listbox","aria-multiselectable":"true","aria-activedescendant":n.focused.sourceList?s.focusedOptionId:void 0,tabindex:s.sourceList&&s.sourceList.length>0?i.tabindex:-1,onFocus:t[5]||(t[5]=e=>s.onListFocus(e,"sourceList")),onBlur:t[6]||(t[6]=e=>s.onListBlur(e,"sourceList")),onKeydown:t[7]||(t[7]=e=>s.onItemKeyDown(e,"sourceList"))},i.sourceListProps),{default:o.withCtx((()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.sourceList,((i,l)=>o.withDirectives((o.openBlock(),o.createElementBlock("li",{key:s.getItemKey(i,l),id:s.idSource+"_"+l,class:o.normalizeClass(s.itemClass(i,`${s.idSource}_${l}`,0)),onClick:e=>s.onItemClick(e,i,l,0),onDblclick:e=>s.onItemDblClick(e,i,0),onTouchend:t[4]||(t[4]=(...e)=>s.onItemTouchEnd&&s.onItemTouchEnd(...e)),onMousedown:e=>s.onOptionMouseDown(l,"sourceList"),role:"option","aria-selected":s.isSelected(i,0)},[o.renderSlot(e.$slots,"item",{item:i,index:l})],42,u)),[[b]]))),128))])),_:3},16,["id","style","aria-activedescendant","tabindex"])]),o.createElementVNode("div",p,[o.renderSlot(e.$slots,"movecontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":s.moveToTargetAriaLabel,type:"button",icon:"pi pi-angle-right",onClick:s.moveToTarget,disabled:s.moveDisabled(0)},i.moveToTargetProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveAllToTargetAriaLabel,type:"button",icon:"pi pi-angle-double-right",onClick:s.moveAllToTarget,disabled:s.moveAllDisabled("sourceList")},i.moveAllToTargetProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveToSourceAriaLabel,type:"button",icon:"pi pi-angle-left",onClick:s.moveToSource,disabled:s.moveDisabled(1)},i.moveToSourceProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveAllToSourceAriaLabel,type:"button",icon:"pi pi-angle-double-left",onClick:s.moveAllToSource,disabled:s.moveSourceDisabled("targetList")},i.moveAllToSourceProps),null,16,["aria-label","onClick","disabled"]),o.renderSlot(e.$slots,"movecontrolsend")]),o.createElementVNode("div",m,[e.$slots.targetheader?(o.openBlock(),o.createElementBlock("div",h,[o.renderSlot(e.$slots,"targetheader")])):o.createCommentVNode("",!0),o.createVNode(o.TransitionGroup,o.mergeProps({ref:"targetList",id:s.idTarget+"_list",name:"p-picklist-flip",tag:"ul",class:"p-picklist-list p-picklist-target",style:i.listStyle,role:"listbox","aria-multiselectable":"true","aria-activedescendant":n.focused.targetList?s.focusedOptionId:void 0,tabindex:s.targetList&&s.targetList.length>0?i.tabindex:-1,onFocus:t[10]||(t[10]=e=>s.onListFocus(e,"targetList")),onBlur:t[11]||(t[11]=e=>s.onListBlur(e,"targetList")),onKeydown:t[12]||(t[12]=e=>s.onItemKeyDown(e,"targetList"))},i.targetListProps),{default:o.withCtx((()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.targetList,((i,l)=>o.withDirectives((o.openBlock(),o.createElementBlock("li",{key:s.getItemKey(i,l),id:s.idTarget+"_"+l,class:o.normalizeClass(s.itemClass(i,`${s.idTarget}_${l}`,1)),onClick:e=>s.onItemClick(e,i,l,1),onDblclick:e=>s.onItemDblClick(e,i,1),onKeydown:t[8]||(t[8]=e=>s.onItemKeyDown(e,"targetList")),onMousedown:e=>s.onOptionMouseDown(l,"targetList"),onTouchend:t[9]||(t[9]=(...e)=>s.onItemTouchEnd&&s.onItemTouchEnd(...e)),role:"option","aria-selected":s.isSelected(i,1)},[o.renderSlot(e.$slots,"item",{item:i,index:l})],42,f)),[[b]]))),128))])),_:3},16,["id","style","aria-activedescendant","tabindex"])]),i.showTargetControls?(o.openBlock(),o.createElementBlock("div",v,[o.renderSlot(e.$slots,"targetcontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":s.moveUpAriaLabel,disabled:s.moveDisabled(1)},i.moveUpButtonProps,{type:"button",icon:"pi pi-angle-up",onClick:t[13]||(t[13]=e=>s.moveUp(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveTopAriaLabel,disabled:s.moveDisabled(1)},i.moveTopButtonProps,{type:"button",icon:"pi pi-angle-double-up",onClick:t[14]||(t[14]=e=>s.moveTop(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveDownAriaLabel,disabled:s.moveDisabled(1)},i.moveDownButtonProps,{type:"button",icon:"pi pi-angle-down",onClick:t[15]||(t[15]=e=>s.moveDown(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":s.moveBottomAriaLabel,disabled:s.moveDisabled(1)},i.moveBottomButtonProps,{type:"button",icon:"pi pi-angle-double-down",onClick:t[16]||(t[16]=e=>s.moveBottom(e,1))}),null,16,["aria-label","disabled"]),o.renderSlot(e.$slots,"targetcontrolsend")])):o.createCommentVNode("",!0)],2)},module.exports=r;
|
|
1
|
+
"use strict";var e=require("primevue/button"),t=require("primevue/ripple"),i=require("primevue/utils"),o=require("vue");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=l(e),n=l(t),r={name:"PickList",emits:["update:modelValue","reorder","update:selection","selection-change","move-to-target","move-to-source","move-all-to-target","move-all-to-source","focus","blur"],props:{modelValue:{type:Array,default:()=>[[],[]]},selection:{type:Array,default:()=>[[],[]]},dataKey:{type:String,default:null},listStyle:{type:null,default:null},metaKeySelection:{type:Boolean,default:!0},responsive:{type:Boolean,default:!0},breakpoint:{type:String,default:"960px"},stripedRows:{type:Boolean,default:!1},showSourceControls:{type:Boolean,default:!0},showTargetControls:{type:Boolean,default:!0},targetListProps:{type:null,default:null},sourceListProps:{type:null,default:null},moveUpButtonProps:{type:null,default:null},moveTopButtonProps:{type:null,default:null},moveDownButtonProps:{type:null,default:null},moveBottomButtonProps:{type:null,default:null},moveToTargetProps:{type:null,default:null},moveAllToTargetProps:{type:null,default:null},moveToSourceProps:{type:null,default:null},moveAllToSourceProps:{type:null,default:null},tabindex:{type:Number,default:0}},itemTouched:!1,reorderDirection:null,styleElement:null,data(){return{id:this.$attrs.id,d_selection:this.selection,focused:{sourceList:!1,targetList:!1},focusedOptionIndex:-1}},watch:{"$attrs.id":function(e){this.id=e||i.UniqueComponentId()},selection(e){this.d_selection=e}},updated(){this.reorderDirection&&(this.updateListScroll(this.$refs.sourceList.$el),this.updateListScroll(this.$refs.targetList.$el),this.reorderDirection=null)},beforeUnmount(){this.destroyStyle()},mounted(){this.id=this.id||i.UniqueComponentId(),this.responsive&&this.createStyle()},methods:{getItemKey(e,t){return this.dataKey?i.ObjectUtils.resolveFieldData(e,this.dataKey):t},isSelected(e,t){return-1!=i.ObjectUtils.findIndexInList(e,this.d_selection[t])},onListFocus(e,t){const o=i.DomHandler.findSingle(this.$refs[t].$el,"li.p-picklist-item.p-highlight"),l=i.ObjectUtils.findIndexInList(o,this.$refs[t].$el.children);this.focused[t]=!0;const s=-1!==this.focusedOptionIndex?this.focusedOptionIndex:o?l:-1;this.changeFocusedOptionIndex(s,t),this.$emit("focus",e)},onListBlur(e,t){this.focused[t]=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onOptionMouseDown(e,t){this.focused[t]=!0,this.focusedOptionIndex=e},moveUp(e,t){if(this.d_selection&&this.d_selection[t]){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=0;e<l.length;e++){let t=l[e],s=i.ObjectUtils.findIndexInList(t,o);if(0===s)break;{let e=o[s],t=o[s-1];o[s-1]=e,o[s]=t}}let s=[...this.modelValue];s[t]=o,this.reorderDirection="up",this.$emit("update:modelValue",s),this.$emit("reorder",{originalEvent:e,value:s,direction:this.reorderDirection,listIndex:t})}},moveTop(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=0;e<l.length;e++){let t=l[e],s=i.ObjectUtils.findIndexInList(t,o);if(0===s)break;{let e=o.splice(s,1)[0];o.unshift(e)}}let s=[...this.modelValue];s[t]=o,this.reorderDirection="top",this.$emit("update:modelValue",s),this.$emit("reorder",{originalEvent:e,value:s,direction:this.reorderDirection,listIndex:t})}},moveDown(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=l.length-1;e>=0;e--){let t=l[e],s=i.ObjectUtils.findIndexInList(t,o);if(s===o.length-1)break;{let e=o[s],t=o[s+1];o[s+1]=e,o[s]=t}}let s=[...this.modelValue];s[t]=o,this.reorderDirection="down",this.$emit("update:modelValue",s),this.$emit("reorder",{originalEvent:e,value:s,direction:this.reorderDirection,listIndex:t})}},moveBottom(e,t){if(this.d_selection){let o=[...this.modelValue[t]],l=this.d_selection[t];for(let e=l.length-1;e>=0;e--){let t=l[e],s=i.ObjectUtils.findIndexInList(t,o);if(s===o.length-1)break;{let e=o.splice(s,1)[0];o.push(e)}}let s=[...this.modelValue];s[t]=o,this.reorderDirection="bottom",this.$emit("update:modelValue",s),this.$emit("reorder",{originalEvent:e,value:s,direction:this.reorderDirection,listIndex:t})}},moveToTarget(e){let t=this.d_selection&&this.d_selection[0]?this.d_selection[0]:null,o=[...this.modelValue[0]],l=[...this.modelValue[1]];if(t){for(let e=0;e<t.length;e++){let s=t[e];-1==i.ObjectUtils.findIndexInList(s,l)&&l.push(o.splice(i.ObjectUtils.findIndexInList(s,o),1)[0])}let s=[...this.modelValue];s[0]=o,s[1]=l,this.$emit("update:modelValue",s),this.$emit("move-to-target",{originalEvent:e,items:t}),this.d_selection[0]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveAllToTarget(e){if(this.modelValue[0]){let t=[...this.modelValue[0]],i=[...this.modelValue[1]];this.$emit("move-all-to-target",{originalEvent:e,items:t}),i=[...i,...t],t=[];let o=[...this.modelValue];o[0]=t,o[1]=i,this.$emit("update:modelValue",o),this.d_selection[0]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveToSource(e){let t=this.d_selection&&this.d_selection[1]?this.d_selection[1]:null,o=[...this.modelValue[0]],l=[...this.modelValue[1]];if(t){for(let e=0;e<t.length;e++){let s=t[e];-1==i.ObjectUtils.findIndexInList(s,o)&&o.push(l.splice(i.ObjectUtils.findIndexInList(s,l),1)[0])}let s=[...this.modelValue];s[0]=o,s[1]=l,this.$emit("update:modelValue",s),this.$emit("move-to-source",{originalEvent:e,items:t}),this.d_selection[1]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},moveAllToSource(e){if(this.modelValue[1]){let t=[...this.modelValue[0]],i=[...this.modelValue[1]];this.$emit("move-all-to-source",{originalEvent:e,items:i}),t=[...t,...i],i=[];let o=[...this.modelValue];o[0]=t,o[1]=i,this.$emit("update:modelValue",o),this.d_selection[1]=[],this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})}},onItemClick(e,t,o,l){const s=0===l?"sourceList":"targetList";this.itemTouched=!1;const n=this.d_selection[l],r=i.ObjectUtils.findIndexInList(t,this.d_selection),a=-1!=r,d=!this.itemTouched&&this.metaKeySelection,c=i.DomHandler.find(this.$refs[s].$el,".p-picklist-item")[o].getAttribute("id");let u;if(this.focusedOptionIndex=c,d){let i=e.metaKey||e.ctrlKey;a&&i?u=n.filter(((e,t)=>t!==r)):(u=i&&n?[...n]:[],u.push(t))}else a?u=n.filter(((e,t)=>t!==r)):(u=n?[...n]:[],u.push(t));let p=[...this.d_selection];p[l]=u,this.d_selection=p,this.$emit("update:selection",this.d_selection),this.$emit("selection-change",{originalEvent:e,value:this.d_selection})},onItemDblClick(e,t,i){0===i?this.moveToTarget(e):1===i&&this.moveToSource(e)},onItemTouchEnd(){this.itemTouched=!0},onItemKeyDown(e,t){switch(e.code){case"ArrowDown":this.onArrowDownKey(e,t);break;case"ArrowUp":this.onArrowUpKey(e,t);break;case"Home":this.onHomeKey(e,t);break;case"End":this.onEndKey(e,t);break;case"Enter":this.onEnterKey(e,t);break;case"Space":this.onSpaceKey(e,t);break;case"KeyA":e.ctrlKey&&(this.d_selection=[...this.modelValue],this.$emit("update:selection",this.d_selection))}},onArrowDownKey(e,t){const i=this.findNextOptionIndex(this.focusedOptionIndex,t);this.changeFocusedOptionIndex(i,t),e.shiftKey&&this.onEnterKey(e,t),e.preventDefault()},onArrowUpKey(e,t){const i=this.findPrevOptionIndex(this.focusedOptionIndex,t);this.changeFocusedOptionIndex(i,t),e.shiftKey&&this.onEnterKey(e,t),e.preventDefault()},onEnterKey(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),s=[...o].findIndex((e=>e===l)),n="sourceList"===t?0:1;this.onItemClick(e,this.modelValue[n][s],s,n),e.preventDefault()},onSpaceKey(e,t){if(e.preventDefault(),e.shiftKey){const e="sourceList"===t?0:1,o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.ObjectUtils.findIndexInList(this.d_selection[e][0],[...this.modelValue[e]]),s=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),n=[...o].findIndex((e=>e===s));this.d_selection[e]=[...this.modelValue[e]].slice(Math.min(l,n),Math.max(l,n)+1),this.$emit("update:selection",this.d_selection)}else this.onEnterKey(e,t)},onHomeKey(e,t){if(e.ctrlKey&&e.shiftKey){const e="sourceList"===t?0:1,o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item"),l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),s=[...o].findIndex((e=>e===l));this.d_selection[e]=[...this.modelValue[e]].slice(0,s+1),this.$emit("update:selection",this.d_selection)}else this.changeFocusedOptionIndex(0,t);e.preventDefault()},onEndKey(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item");if(e.ctrlKey&&e.shiftKey){const e="sourceList"===t?0:1,l=i.DomHandler.findSingle(this.$refs[t].$el,`li.p-picklist-item[id=${this.focusedOptionIndex}]`),s=[...o].findIndex((e=>e===l));this.d_selection[e]=[...this.modelValue[e]].slice(s,o.length),this.$emit("update:selection",this.d_selection)}else this.changeFocusedOptionIndex(o.length-1,t);e.preventDefault()},findNextOptionIndex(e,t){const o=[...i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item")].findIndex((t=>t.id===e));return o>-1?o+1:0},findPrevOptionIndex(e,t){const o=[...i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item")].findIndex((t=>t.id===e));return o>-1?o-1:0},changeFocusedOptionIndex(e,t){const o=i.DomHandler.find(this.$refs[t].$el,"li.p-picklist-item");let l=e>=o.length?o.length-1:e<0?0:e;this.focusedOptionIndex=o[l].getAttribute("id"),this.scrollInView(o[l].getAttribute("id"),t)},scrollInView(e,t){const o=i.DomHandler.findSingle(this.$refs[t].$el,`li[id="${e}"]`);o&&o.scrollIntoView&&o.scrollIntoView({block:"nearest",inline:"start"})},updateListScroll(e){const t=i.DomHandler.find(e,".p-picklist-item.p-highlight");if(t&&t.length)switch(this.reorderDirection){case"up":i.DomHandler.scrollInView(e,t[0]);break;case"top":e.scrollTop=0;break;case"down":i.DomHandler.scrollInView(e,t[t.length-1]);break;case"bottom":e.scrollTop=e.scrollHeight}},createStyle(){if(!this.styleElement){this.$el.setAttribute(this.attributeSelector,""),this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement);let e=`\n@media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.attributeSelector}] {\n flex-direction: column;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n\n .p-picklist[${this.attributeSelector}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-right:before {\n content: "\\e930"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-double-right:before {\n content: "\\e92c"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-left:before {\n content: "\\e933"\n }\n\n .p-picklist[${this.attributeSelector}] .pi-angle-double-left:before {\n content: "\\e92f"\n }\n}\n`;this.styleElement.innerHTML=e}},destroyStyle(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)},moveDisabled(e){if(!this.d_selection[e]||!this.d_selection[e].length)return!0},moveAllDisabled(e){return i.ObjectUtils.isEmpty(this[e])},moveSourceDisabled(){return i.ObjectUtils.isEmpty(this.targetList)},itemClass(e,t,i){return["p-picklist-item",{"p-highlight":this.isSelected(e,i),"p-focus":t===this.focusedOptionId}]}},computed:{idSource(){return`${this.id}_source`},idTarget(){return`${this.id}_target`},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null},containerClass(){return["p-picklist p-component",{"p-picklist-striped":this.stripedRows}]},sourceList(){return this.modelValue&&this.modelValue[0]?this.modelValue[0]:null},targetList(){return this.modelValue&&this.modelValue[1]?this.modelValue[1]:null},attributeSelector:()=>i.UniqueComponentId(),moveUpAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveUp:void 0},moveTopAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveTop:void 0},moveDownAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveDown:void 0},moveBottomAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveBottom:void 0},moveToTargetAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveToTarget:void 0},moveAllToTargetAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveAllToTarget:void 0},moveToSourceAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveToSource:void 0},moveAllToSourceAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.moveAllToSource:void 0}},components:{PLButton:s.default},directives:{ripple:n.default}};const a={key:0,class:"p-picklist-buttons p-picklist-source-controls"},d={class:"p-picklist-list-wrapper p-picklist-source-wrapper"},c={key:0,class:"p-picklist-header"},u=["id","onClick","onDblclick","onMousedown","aria-selected"],p={class:"p-picklist-buttons p-picklist-transfer-buttons"},m={class:"p-picklist-list-wrapper p-picklist-target-wrapper"},h={key:0,class:"p-picklist-header"},f=["id","onClick","onDblclick","onMousedown","aria-selected"],v={key:1,class:"p-picklist-buttons p-picklist-target-controls"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css","top"===i&&o.firstChild?o.insertBefore(l,o.firstChild):o.appendChild(l),l.styleSheet?l.styleSheet.cssText=e:l.appendChild(document.createTextNode(e))}}("\n.p-picklist {\n display: flex;\n}\n.p-picklist-buttons {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.p-picklist-list-wrapper {\n flex: 1 1 50%;\n}\n.p-picklist-list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow: auto;\n min-height: 12rem;\n max-height: 24rem;\n}\n.p-picklist-item {\n cursor: pointer;\n overflow: hidden;\n position: relative;\n}\n.p-picklist-item.p-picklist-flip-enter-active.p-picklist-flip-enter-to,\n.p-picklist-item.p-picklist-flip-leave-active.p-picklist-flip-leave-to {\n transition: none !important;\n}\n"),r.render=function(e,t,i,l,s,n){const r=o.resolveComponent("PLButton"),b=o.resolveDirective("ripple");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(n.containerClass)},[i.showSourceControls?(o.openBlock(),o.createElementBlock("div",a,[o.renderSlot(e.$slots,"sourcecontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":n.moveUpAriaLabel,disabled:n.moveDisabled(0)},i.moveUpButtonProps,{type:"button",icon:"pi pi-angle-up",onClick:t[0]||(t[0]=e=>n.moveUp(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveTopAriaLabel,disabled:n.moveDisabled(0)},i.moveTopButtonProps,{type:"button",icon:"pi pi-angle-double-up",onClick:t[1]||(t[1]=e=>n.moveTop(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveDownAriaLabel,disabled:n.moveDisabled(0)},i.moveDownButtonProps,{type:"button",icon:"pi pi-angle-down",onClick:t[2]||(t[2]=e=>n.moveDown(e,0))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveBottomAriaLabel,disabled:n.moveDisabled(0)},i.moveBottomButtonProps,{type:"button",icon:"pi pi-angle-double-down",onClick:t[3]||(t[3]=e=>n.moveBottom(e,0))}),null,16,["aria-label","disabled"]),o.renderSlot(e.$slots,"sourcecontrolsend")])):o.createCommentVNode("",!0),o.createElementVNode("div",d,[e.$slots.sourceheader?(o.openBlock(),o.createElementBlock("div",c,[o.renderSlot(e.$slots,"sourceheader")])):o.createCommentVNode("",!0),o.createVNode(o.TransitionGroup,o.mergeProps({ref:"sourceList",id:n.idSource+"_list",name:"p-picklist-flip",tag:"ul",class:"p-picklist-list p-picklist-source",style:i.listStyle,role:"listbox","aria-multiselectable":"true","aria-activedescendant":s.focused.sourceList?n.focusedOptionId:void 0,tabindex:n.sourceList&&n.sourceList.length>0?i.tabindex:-1,onFocus:t[5]||(t[5]=e=>n.onListFocus(e,"sourceList")),onBlur:t[6]||(t[6]=e=>n.onListBlur(e,"sourceList")),onKeydown:t[7]||(t[7]=e=>n.onItemKeyDown(e,"sourceList"))},i.sourceListProps),{default:o.withCtx((()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.sourceList,((i,l)=>o.withDirectives((o.openBlock(),o.createElementBlock("li",{key:n.getItemKey(i,l),id:n.idSource+"_"+l,class:o.normalizeClass(n.itemClass(i,`${n.idSource}_${l}`,0)),onClick:e=>n.onItemClick(e,i,l,0),onDblclick:e=>n.onItemDblClick(e,i,0),onTouchend:t[4]||(t[4]=(...e)=>n.onItemTouchEnd&&n.onItemTouchEnd(...e)),onMousedown:e=>n.onOptionMouseDown(l,"sourceList"),role:"option","aria-selected":n.isSelected(i,0)},[o.renderSlot(e.$slots,"item",{item:i,index:l})],42,u)),[[b]]))),128))])),_:3},16,["id","style","aria-activedescendant","tabindex"])]),o.createElementVNode("div",p,[o.renderSlot(e.$slots,"movecontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":n.moveToTargetAriaLabel,type:"button",icon:"pi pi-angle-right",onClick:n.moveToTarget,disabled:n.moveDisabled(0)},i.moveToTargetProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveAllToTargetAriaLabel,type:"button",icon:"pi pi-angle-double-right",onClick:n.moveAllToTarget,disabled:n.moveAllDisabled("sourceList")},i.moveAllToTargetProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveToSourceAriaLabel,type:"button",icon:"pi pi-angle-left",onClick:n.moveToSource,disabled:n.moveDisabled(1)},i.moveToSourceProps),null,16,["aria-label","onClick","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveAllToSourceAriaLabel,type:"button",icon:"pi pi-angle-double-left",onClick:n.moveAllToSource,disabled:n.moveSourceDisabled("targetList")},i.moveAllToSourceProps),null,16,["aria-label","onClick","disabled"]),o.renderSlot(e.$slots,"movecontrolsend")]),o.createElementVNode("div",m,[e.$slots.targetheader?(o.openBlock(),o.createElementBlock("div",h,[o.renderSlot(e.$slots,"targetheader")])):o.createCommentVNode("",!0),o.createVNode(o.TransitionGroup,o.mergeProps({ref:"targetList",id:n.idTarget+"_list",name:"p-picklist-flip",tag:"ul",class:"p-picklist-list p-picklist-target",style:i.listStyle,role:"listbox","aria-multiselectable":"true","aria-activedescendant":s.focused.targetList?n.focusedOptionId:void 0,tabindex:n.targetList&&n.targetList.length>0?i.tabindex:-1,onFocus:t[10]||(t[10]=e=>n.onListFocus(e,"targetList")),onBlur:t[11]||(t[11]=e=>n.onListBlur(e,"targetList")),onKeydown:t[12]||(t[12]=e=>n.onItemKeyDown(e,"targetList"))},i.targetListProps),{default:o.withCtx((()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.targetList,((i,l)=>o.withDirectives((o.openBlock(),o.createElementBlock("li",{key:n.getItemKey(i,l),id:n.idTarget+"_"+l,class:o.normalizeClass(n.itemClass(i,`${n.idTarget}_${l}`,1)),onClick:e=>n.onItemClick(e,i,l,1),onDblclick:e=>n.onItemDblClick(e,i,1),onKeydown:t[8]||(t[8]=e=>n.onItemKeyDown(e,"targetList")),onMousedown:e=>n.onOptionMouseDown(l,"targetList"),onTouchend:t[9]||(t[9]=(...e)=>n.onItemTouchEnd&&n.onItemTouchEnd(...e)),role:"option","aria-selected":n.isSelected(i,1)},[o.renderSlot(e.$slots,"item",{item:i,index:l})],42,f)),[[b]]))),128))])),_:3},16,["id","style","aria-activedescendant","tabindex"])]),i.showTargetControls?(o.openBlock(),o.createElementBlock("div",v,[o.renderSlot(e.$slots,"targetcontrolsstart"),o.createVNode(r,o.mergeProps({"aria-label":n.moveUpAriaLabel,disabled:n.moveDisabled(1)},i.moveUpButtonProps,{type:"button",icon:"pi pi-angle-up",onClick:t[13]||(t[13]=e=>n.moveUp(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveTopAriaLabel,disabled:n.moveDisabled(1)},i.moveTopButtonProps,{type:"button",icon:"pi pi-angle-double-up",onClick:t[14]||(t[14]=e=>n.moveTop(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveDownAriaLabel,disabled:n.moveDisabled(1)},i.moveDownButtonProps,{type:"button",icon:"pi pi-angle-down",onClick:t[15]||(t[15]=e=>n.moveDown(e,1))}),null,16,["aria-label","disabled"]),o.createVNode(r,o.mergeProps({"aria-label":n.moveBottomAriaLabel,disabled:n.moveDisabled(1)},i.moveBottomButtonProps,{type:"button",icon:"pi pi-angle-double-down",onClick:t[16]||(t[16]=e=>n.moveBottom(e,1))}),null,16,["aria-label","disabled"]),o.renderSlot(e.$slots,"targetcontrolsend")])):o.createCommentVNode("",!0)],2)},module.exports=r;
|
package/picklist/picklist.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Button from 'primevue/button';
|
|
2
2
|
import Ripple from 'primevue/ripple';
|
|
3
|
-
import { ObjectUtils, DomHandler
|
|
3
|
+
import { UniqueComponentId, ObjectUtils, DomHandler } from 'primevue/utils';
|
|
4
4
|
import { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, renderSlot, createVNode, mergeProps, createCommentVNode, createElementVNode, TransitionGroup, withCtx, Fragment, renderList, withDirectives } from 'vue';
|
|
5
5
|
|
|
6
6
|
var script = {
|
|
@@ -97,6 +97,7 @@ var script = {
|
|
|
97
97
|
styleElement: null,
|
|
98
98
|
data() {
|
|
99
99
|
return {
|
|
100
|
+
id: this.$attrs.id,
|
|
100
101
|
d_selection: this.selection,
|
|
101
102
|
focused: {
|
|
102
103
|
sourceList: false,
|
|
@@ -106,6 +107,9 @@ var script = {
|
|
|
106
107
|
};
|
|
107
108
|
},
|
|
108
109
|
watch: {
|
|
110
|
+
'$attrs.id': function (newValue) {
|
|
111
|
+
this.id = newValue || UniqueComponentId();
|
|
112
|
+
},
|
|
109
113
|
selection(newValue) {
|
|
110
114
|
this.d_selection = newValue;
|
|
111
115
|
}
|
|
@@ -121,6 +125,8 @@ var script = {
|
|
|
121
125
|
this.destroyStyle();
|
|
122
126
|
},
|
|
123
127
|
mounted() {
|
|
128
|
+
this.id = this.id || UniqueComponentId();
|
|
129
|
+
|
|
124
130
|
if (this.responsive) {
|
|
125
131
|
this.createStyle();
|
|
126
132
|
}
|
|
@@ -687,10 +693,10 @@ var script = {
|
|
|
687
693
|
},
|
|
688
694
|
computed: {
|
|
689
695
|
idSource() {
|
|
690
|
-
return this
|
|
696
|
+
return `${this.id}_source`;
|
|
691
697
|
},
|
|
692
698
|
idTarget() {
|
|
693
|
-
return this
|
|
699
|
+
return `${this.id}_target`;
|
|
694
700
|
},
|
|
695
701
|
focusedOptionId() {
|
|
696
702
|
return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
|