primevue 3.17.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/accordion/Accordion.vue +4 -4
- package/accordion/accordion.cjs.js +4 -4
- package/accordion/accordion.cjs.min.js +1 -1
- package/accordion/accordion.esm.js +4 -4
- package/accordion/accordion.esm.min.js +1 -1
- package/accordion/accordion.js +5 -5
- package/accordion/accordion.min.js +1 -1
- package/api/api.cjs.js +24 -2
- package/api/api.cjs.min.js +1 -1
- package/api/api.esm.js +24 -2
- package/api/api.esm.min.js +1 -1
- package/api/api.js +24 -2
- package/api/api.min.js +1 -1
- package/autocomplete/AutoComplete.d.ts +10 -0
- package/autocomplete/AutoComplete.vue +14 -6
- package/autocomplete/autocomplete.cjs.js +18 -10
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.esm.js +16 -8
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +17 -9
- package/autocomplete/autocomplete.min.js +1 -1
- package/breadcrumb/Breadcrumb.d.ts +9 -1
- package/breadcrumb/Breadcrumb.vue +14 -5
- package/breadcrumb/BreadcrumbItem.vue +9 -3
- package/breadcrumb/breadcrumb.cjs.js +25 -14
- package/breadcrumb/breadcrumb.cjs.min.js +1 -1
- package/breadcrumb/breadcrumb.esm.js +25 -14
- package/breadcrumb/breadcrumb.esm.min.js +1 -1
- package/breadcrumb/breadcrumb.js +25 -14
- package/breadcrumb/breadcrumb.min.js +1 -1
- package/button/Button.vue +6 -3
- package/button/button.cjs.js +6 -3
- package/button/button.cjs.min.js +1 -1
- package/button/button.esm.js +6 -3
- package/button/button.esm.min.js +1 -1
- package/button/button.js +6 -3
- package/button/button.min.js +1 -1
- package/calendar/Calendar.vue +71 -26
- package/calendar/calendar.cjs.js +140 -95
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +138 -93
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +139 -94
- package/calendar/calendar.min.js +1 -1
- package/cascadeselect/CascadeSelect.d.ts +10 -0
- package/cascadeselect/CascadeSelect.vue +13 -4
- package/cascadeselect/CascadeSelectSub.vue +18 -13
- package/cascadeselect/cascadeselect.cjs.js +39 -26
- package/cascadeselect/cascadeselect.cjs.min.js +1 -1
- package/cascadeselect/cascadeselect.esm.js +38 -25
- package/cascadeselect/cascadeselect.esm.min.js +1 -1
- package/cascadeselect/cascadeselect.js +39 -26
- package/cascadeselect/cascadeselect.min.js +1 -1
- package/config/PrimeVue.d.ts +4 -1
- package/config/config.cjs.js +5 -2
- package/config/config.cjs.min.js +1 -1
- package/config/config.esm.js +5 -2
- package/config/config.esm.min.js +1 -1
- package/config/config.js +6 -3
- package/config/config.min.js +1 -1
- package/contextmenu/ContextMenu.d.ts +41 -2
- package/contextmenu/ContextMenu.vue +440 -33
- package/contextmenu/ContextMenuSub.vue +119 -98
- package/contextmenu/contextmenu.cjs.js +619 -194
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.esm.js +620 -195
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +620 -195
- package/contextmenu/contextmenu.min.js +1 -1
- package/core/core.js +1369 -675
- package/core/core.min.js +10 -10
- package/datatable/DataTable.d.ts +1 -2
- package/datatable/DataTable.vue +3 -3
- package/datatable/datatable.cjs.js +2334 -2334
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +2319 -2319
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +2319 -2319
- package/datatable/datatable.min.js +1 -1
- package/dock/Dock.d.ts +33 -2
- package/dock/Dock.vue +18 -2
- package/dock/DockSub.vue +206 -53
- package/dock/dock.cjs.js +261 -90
- package/dock/dock.cjs.min.js +1 -1
- package/dock/dock.esm.js +261 -90
- package/dock/dock.esm.min.js +1 -1
- package/dock/dock.js +262 -92
- package/dock/dock.min.js +1 -1
- package/dropdown/Dropdown.d.ts +15 -0
- package/dropdown/Dropdown.vue +19 -7
- package/dropdown/dropdown.cjs.js +37 -24
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +36 -23
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +36 -23
- package/dropdown/dropdown.min.js +1 -1
- package/fileupload/FileContent.vue +51 -0
- package/fileupload/FileUpload.d.ts +21 -1
- package/fileupload/FileUpload.vue +62 -48
- package/fileupload/fileupload.cjs.js +214 -115
- package/fileupload/fileupload.cjs.min.js +1 -1
- package/fileupload/fileupload.esm.js +214 -115
- package/fileupload/fileupload.esm.min.js +1 -1
- package/fileupload/fileupload.js +214 -115
- package/fileupload/fileupload.min.js +1 -1
- package/galleria/GalleriaThumbnails.vue +2 -2
- package/galleria/galleria.cjs.js +1 -1
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +1 -1
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +1 -1
- package/galleria/galleria.min.js +1 -1
- package/inlinemessage/inlinemessage.cjs.js +1 -2
- package/inlinemessage/inlinemessage.cjs.min.js +1 -1
- package/inlinemessage/inlinemessage.esm.js +1 -2
- package/inlinemessage/inlinemessage.esm.min.js +1 -1
- package/inlinemessage/inlinemessage.js +1 -2
- package/inlinemessage/inlinemessage.min.js +1 -1
- package/inputnumber/InputNumber.vue +11 -4
- package/inputnumber/inputnumber.cjs.js +12 -5
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.esm.js +11 -4
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +12 -6
- package/inputnumber/inputnumber.min.js +1 -1
- package/listbox/Listbox.d.ts +5 -0
- package/listbox/Listbox.vue +5 -1
- package/listbox/listbox.cjs.js +25 -20
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +25 -20
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +25 -20
- package/listbox/listbox.min.js +1 -1
- package/megamenu/MegaMenu.d.ts +29 -2
- package/megamenu/MegaMenu.vue +486 -228
- package/megamenu/MegaMenuSub.vue +231 -0
- package/megamenu/megamenu.cjs.js +818 -377
- package/megamenu/megamenu.cjs.min.js +1 -1
- package/megamenu/megamenu.esm.js +820 -379
- package/megamenu/megamenu.esm.min.js +1 -1
- package/megamenu/megamenu.js +818 -377
- package/megamenu/megamenu.min.js +1 -1
- package/menu/Menu.d.ts +25 -2
- package/menu/Menu.vue +182 -18
- package/menu/Menuitem.vue +35 -28
- package/menu/menu.cjs.js +293 -114
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +293 -114
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +293 -114
- package/menu/menu.min.js +1 -1
- package/menubar/Menubar.d.ts +14 -2
- package/menubar/Menubar.vue +526 -15
- package/menubar/MenubarSub.vue +105 -238
- package/menubar/menubar.cjs.js +691 -316
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +693 -318
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +691 -316
- package/menubar/menubar.min.js +1 -1
- package/multiselect/MultiSelect.d.ts +25 -0
- package/multiselect/MultiSelect.vue +31 -11
- package/multiselect/multiselect.cjs.js +58 -37
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +57 -36
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +57 -36
- package/multiselect/multiselect.min.js +1 -1
- package/package.json +3 -3
- package/paginator/Paginator.d.ts +2 -2
- package/paginator/Paginator.vue +118 -23
- package/paginator/paginator.cjs.js +277 -182
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.esm.js +278 -183
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +278 -184
- package/paginator/paginator.min.js +1 -1
- package/panelmenu/PanelMenu.d.ts +32 -1
- package/panelmenu/PanelMenu.vue +189 -83
- package/panelmenu/PanelMenuList.vue +335 -0
- package/panelmenu/PanelMenuSub.vue +124 -85
- package/panelmenu/panelmenu.cjs.js +1383 -285
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +1380 -286
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +1383 -286
- package/panelmenu/panelmenu.min.js +1 -1
- package/password/Password.vue +5 -4
- package/password/password.cjs.js +6 -5
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +5 -4
- package/password/password.esm.min.js +1 -1
- package/password/password.js +6 -5
- package/password/password.min.js +1 -1
- package/resources/primevue.css +21 -2
- package/resources/primevue.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +317 -270
- package/resources/themes/arya-green/theme.css +317 -270
- package/resources/themes/arya-orange/theme.css +317 -270
- package/resources/themes/arya-purple/theme.css +317 -270
- package/resources/themes/bootstrap4-dark-blue/theme.css +332 -285
- package/resources/themes/bootstrap4-dark-purple/theme.css +332 -285
- package/resources/themes/bootstrap4-light-blue/theme.css +345 -298
- package/resources/themes/bootstrap4-light-purple/theme.css +345 -298
- package/resources/themes/fluent-light/theme.css +327 -280
- package/resources/themes/lara-dark-blue/theme.css +320 -273
- package/resources/themes/lara-dark-indigo/theme.css +320 -273
- package/resources/themes/lara-dark-purple/theme.css +320 -273
- package/resources/themes/lara-dark-teal/theme.css +320 -273
- package/resources/themes/lara-light-blue/theme.css +344 -297
- package/resources/themes/lara-light-indigo/theme.css +344 -297
- package/resources/themes/lara-light-purple/theme.css +344 -297
- package/resources/themes/lara-light-teal/theme.css +344 -297
- package/resources/themes/luna-amber/theme.css +348 -301
- package/resources/themes/luna-blue/theme.css +348 -301
- package/resources/themes/luna-green/theme.css +348 -301
- package/resources/themes/luna-pink/theme.css +348 -301
- package/resources/themes/md-dark-deeppurple/theme.css +367 -298
- package/resources/themes/md-dark-indigo/theme.css +367 -298
- package/resources/themes/md-light-deeppurple/theme.css +367 -298
- package/resources/themes/md-light-indigo/theme.css +367 -298
- package/resources/themes/mdc-dark-deeppurple/theme.css +367 -298
- package/resources/themes/mdc-dark-indigo/theme.css +367 -298
- package/resources/themes/mdc-light-deeppurple/theme.css +367 -298
- package/resources/themes/mdc-light-indigo/theme.css +367 -298
- package/resources/themes/nova/theme.css +312 -265
- package/resources/themes/nova-accent/theme.css +312 -265
- package/resources/themes/nova-alt/theme.css +312 -265
- package/resources/themes/nova-vue/theme.css +312 -265
- package/resources/themes/rhea/theme.css +312 -265
- package/resources/themes/saga-blue/theme.css +324 -277
- package/resources/themes/saga-green/theme.css +324 -277
- package/resources/themes/saga-orange/theme.css +324 -277
- package/resources/themes/saga-purple/theme.css +324 -277
- package/resources/themes/tailwind-light/theme.css +336 -289
- package/resources/themes/vela-blue/theme.css +324 -277
- package/resources/themes/vela-green/theme.css +324 -277
- package/resources/themes/vela-orange/theme.css +324 -277
- package/resources/themes/vela-purple/theme.css +324 -277
- package/ripple/ripple.cjs.js +12 -0
- package/ripple/ripple.cjs.min.js +1 -1
- package/ripple/ripple.esm.js +12 -0
- package/ripple/ripple.esm.min.js +1 -1
- package/ripple/ripple.js +12 -0
- package/ripple/ripple.min.js +1 -1
- package/speeddial/SpeedDial.vue +21 -16
- package/speeddial/speeddial.cjs.js +34 -27
- package/speeddial/speeddial.cjs.min.js +1 -1
- package/speeddial/speeddial.esm.js +34 -27
- package/speeddial/speeddial.esm.min.js +1 -1
- package/speeddial/speeddial.js +34 -27
- package/speeddial/speeddial.min.js +1 -1
- package/steps/Steps.vue +108 -9
- package/steps/steps.cjs.js +111 -20
- package/steps/steps.cjs.min.js +1 -1
- package/steps/steps.esm.js +112 -21
- package/steps/steps.esm.min.js +1 -1
- package/steps/steps.js +111 -20
- package/steps/steps.min.js +1 -1
- package/styleclass/styleclass.cjs.js +1 -1
- package/styleclass/styleclass.cjs.min.js +1 -1
- package/styleclass/styleclass.esm.js +1 -1
- package/styleclass/styleclass.esm.min.js +1 -1
- package/styleclass/styleclass.js +1 -1
- package/styleclass/styleclass.min.js +1 -1
- package/tabmenu/TabMenu.d.ts +9 -1
- package/tabmenu/TabMenu.vue +135 -6
- package/tabmenu/tabmenu.cjs.js +137 -17
- package/tabmenu/tabmenu.cjs.min.js +1 -1
- package/tabmenu/tabmenu.esm.js +137 -17
- package/tabmenu/tabmenu.esm.min.js +1 -1
- package/tabmenu/tabmenu.js +138 -18
- package/tabmenu/tabmenu.min.js +1 -1
- package/tabview/TabView.vue +2 -2
- package/tabview/tabview.cjs.js +2 -2
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.esm.js +2 -2
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +3 -3
- package/tabview/tabview.min.js +1 -1
- package/tieredmenu/TieredMenu.d.ts +46 -3
- package/tieredmenu/TieredMenu.vue +482 -48
- package/tieredmenu/TieredMenuSub.vue +111 -204
- package/tieredmenu/tieredmenu.cjs.js +656 -320
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +657 -321
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +657 -321
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/toast/Toast.vue +5 -3
- package/toast/ToastMessage.vue +5 -3
- package/toast/toast.cjs.js +19 -15
- package/toast/toast.cjs.min.js +1 -1
- package/toast/toast.esm.js +18 -14
- package/toast/toast.esm.min.js +1 -1
- package/toast/toast.js +19 -15
- package/toast/toast.min.js +1 -1
- package/togglebutton/ToggleButton.vue +42 -7
- package/togglebutton/togglebutton.cjs.js +42 -6
- package/togglebutton/togglebutton.cjs.min.js +1 -1
- package/togglebutton/togglebutton.esm.js +42 -6
- package/togglebutton/togglebutton.esm.min.js +1 -1
- package/togglebutton/togglebutton.js +42 -6
- package/togglebutton/togglebutton.min.js +1 -1
- package/tree/Tree.d.ts +8 -0
- package/utils/Utils.d.ts +3 -0
- package/utils/utils.cjs.js +26 -0
- package/utils/utils.cjs.min.js +1 -1
- package/utils/utils.esm.js +26 -0
- package/utils/utils.esm.min.js +1 -1
- package/utils/utils.js +26 -0
- package/utils/utils.min.js +1 -1
- package/vetur-attributes.json +175 -3
- package/vetur-tags.json +54 -11
- package/web-types.json +675 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
this.primevue=this.primevue||{},this.primevue.paginator=function(e,t,n,a){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(t),i=o(n),s=o(a),l={name:"CurrentPageReport",inheritAttrs:!1,props:{pageCount:{type:Number,default:0},currentPage:{type:Number,default:0},page:{type:Number,default:0},first:{type:Number,default:0},rows:{type:Number,default:0},totalRecords:{type:Number,default:0},template:{type:String,default:"({currentPage} of {totalPages})"}},computed:{text(){return this.template.replace("{currentPage}",this.currentPage).replace("{totalPages}",this.pageCount).replace("{first}",this.pageCount>0?this.first+1:0).replace("{last}",Math.min(this.first+this.rows,this.totalRecords)).replace("{rows}",this.rows).replace("{totalRecords}",this.totalRecords)}}};const p={class:"p-paginator-current"};l.render=function(t,n,a,o,r,i){return e.openBlock(),e.createElementBlock("span",p,e.toDisplayString(i.text),1)};var c={name:"FirstPageLink",computed:{containerClass(){return["p-paginator-first p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:r.default}};const g=[e.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-double-left"},null,-1)];c.render=function(t,n,a,o,r,i){const s=e.resolveDirective("ripple");return e.withDirectives((e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(i.containerClass),type:"button"},g,2)),[[s]])};var u={name:"LastPageLink",computed:{containerClass(){return["p-paginator-last p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:r.default}};const d=[e.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-double-right"},null,-1)];u.render=function(t,n,a,o,r,i){const s=e.resolveDirective("ripple");return e.withDirectives((e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(i.containerClass),type:"button"},d,2)),[[s]])};var m={name:"NextPageLink",computed:{containerClass(){return["p-paginator-next p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:r.default}};const h=[e.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-right"},null,-1)];m.render=function(t,n,a,o,r,i){const s=e.resolveDirective("ripple");return e.withDirectives((e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(i.containerClass),type:"button"},h,2)),[[s]])};var k={name:"PageLinks",inheritAttrs:!1,emits:["click"],props:{value:Array,page:Number},methods:{onPageLinkClick(e,t){this.$emit("click",{originalEvent:e,value:t})}},directives:{ripple:r.default}};const P={class:"p-paginator-pages"},f=["onClick"];k.render=function(t,n,a,o,r,i){const s=e.resolveDirective("ripple");return e.openBlock(),e.createElementBlock("span",P,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(t=>e.withDirectives((e.openBlock(),e.createElementBlock("button",{key:t,class:e.normalizeClass(["p-paginator-page p-paginator-element p-link",{"p-highlight":t-1===a.page}]),type:"button",onClick:e=>i.onPageLinkClick(e,t)},[e.createTextVNode(e.toDisplayString(t),1)],10,f)),[[s]]))),128))])};var b={name:"PrevPageLink",computed:{containerClass(){return["p-paginator-prev p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:r.default}};const v=[e.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-left"},null,-1)];b.render=function(t,n,a,o,r,i){const s=e.resolveDirective("ripple");return e.withDirectives((e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(i.containerClass),type:"button"},v,2)),[[s]])};var w={name:"RowsPerPageDropdown",inheritAttrs:!1,emits:["rows-change"],props:{options:Array,rows:Number,disabled:Boolean},methods:{onChange(e){this.$emit("rows-change",e)}},computed:{rowsOptions(){let e=[];if(this.options)for(let t=0;t<this.options.length;t++)e.push({label:String(this.options[t]),value:this.options[t]});return e}},components:{RPPDropdown:i.default}};w.render=function(t,n,a,o,r,i){const s=e.resolveComponent("RPPDropdown");return e.openBlock(),e.createBlock(s,{modelValue:a.rows,options:i.rowsOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-rpp-options",disabled:a.disabled},null,8,["modelValue","options","disabled"])};var C={name:"JumpToPageDropdown",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e)}},computed:{pageOptions(){let e=[];for(let t=0;t<this.pageCount;t++)e.push({label:String(t+1),value:t});return e}},components:{JTPDropdown:i.default}};C.render=function(t,n,a,o,r,i){const s=e.resolveComponent("JTPDropdown");return e.openBlock(),e.createBlock(s,{modelValue:a.page,options:i.pageOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-page-options",disabled:a.disabled},null,8,["modelValue","options","disabled"])};var y={name:"JumpToPageInput",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e-1)}},components:{JTPInput:s.default}};y.render=function(t,n,a,o,r,i){const s=e.resolveComponent("JTPInput");return e.openBlock(),e.createBlock(s,{modelValue:a.page,"onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-page-input",disabled:a.disabled},null,8,["modelValue","disabled"])};var B={name:"Paginator",emits:["update:first","update:rows","page"],props:{totalRecords:{type:Number,default:0},rows:{type:Number,default:0},first:{type:Number,default:0},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},template:{type:String,default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},currentPageReportTemplate:{type:null,default:"({currentPage} of {totalPages})"},alwaysShow:{type:Boolean,default:!0}},data(){return{d_first:this.first,d_rows:this.rows}},watch:{first(e){this.d_first=e},rows(e){this.d_rows=e},totalRecords(e){this.page>0&&e&&this.d_first>=e&&this.changePage(this.pageCount-1)}},methods:{changePage(e){const t=this.pageCount;if(e>=0&&e<t){this.d_first=this.d_rows*e;const n={page:e,first:this.d_first,rows:this.d_rows,pageCount:t};this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",n)}},changePageToFirst(e){this.isFirstPage||this.changePage(0),e.preventDefault()},changePageToPrev(e){this.changePage(this.page-1),e.preventDefault()},changePageLink(e){this.changePage(e.value-1),e.originalEvent.preventDefault()},changePageToNext(e){this.changePage(this.page+1),e.preventDefault()},changePageToLast(e){this.isLastPage||this.changePage(this.pageCount-1),e.preventDefault()},onRowChange(e){this.d_rows=e,this.changePage(this.page)}},computed:{templateItems(){let e=[];return this.template.split(" ").map((t=>{e.push(t.trim())})),e},page(){return Math.floor(this.d_first/this.d_rows)},pageCount(){return Math.ceil(this.totalRecords/this.d_rows)},isFirstPage(){return 0===this.page},isLastPage(){return this.page===this.pageCount-1},calculatePageLinkBoundaries(){const e=this.pageCount,t=Math.min(this.pageLinkSize,e);let n=Math.max(0,Math.ceil(this.page-t/2)),a=Math.min(e-1,n+t-1);const o=this.pageLinkSize-(a-n+1);return n=Math.max(0,n-o),[n,a]},pageLinks(){let e=[],t=this.calculatePageLinkBoundaries,n=t[0],a=t[1];for(var o=n;o<=a;o++)e.push(o+1);return e},currentState(){return{page:this.page,first:this.d_first,rows:this.d_rows}},empty(){return 0===this.pageCount},currentPage(){return this.pageCount>0?this.page+1:0}},components:{CurrentPageReport:l,FirstPageLink:c,LastPageLink:u,NextPageLink:m,PageLinks:k,PrevPageLink:b,RowsPerPageDropdown:w,JumpToPageDropdown:C,JumpToPageInput:y}};const L={key:0,class:"p-paginator p-component"},x={key:0,class:"p-paginator-left-content"},N={key:1,class:"p-paginator-right-content"};return function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("\n.p-paginator {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.p-paginator-left-content {\n margin-right: auto;\n}\n.p-paginator-right-content {\n margin-left: auto;\n}\n.p-paginator-page,\n.p-paginator-next,\n.p-paginator-last,\n.p-paginator-first,\n.p-paginator-prev,\n.p-paginator-current {\n cursor: pointer;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n position: relative;\n}\n.p-paginator-element:focus {\n z-index: 1;\n position: relative;\n}\n"),B.render=function(t,n,a,o,r,i){const s=e.resolveComponent("FirstPageLink"),l=e.resolveComponent("PrevPageLink"),p=e.resolveComponent("NextPageLink"),c=e.resolveComponent("LastPageLink"),g=e.resolveComponent("PageLinks"),u=e.resolveComponent("CurrentPageReport"),d=e.resolveComponent("RowsPerPageDropdown"),m=e.resolveComponent("JumpToPageDropdown"),h=e.resolveComponent("JumpToPageInput");return a.alwaysShow||i.pageLinks&&i.pageLinks.length>1?(e.openBlock(),e.createElementBlock("div",L,[t.$slots.start?(e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(t.$slots,"start",{state:i.currentState})])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.templateItems,(t=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:t},["FirstPageLink"===t?(e.openBlock(),e.createBlock(s,{key:0,onClick:n[0]||(n[0]=e=>i.changePageToFirst(e)),disabled:i.isFirstPage||i.empty},null,8,["disabled"])):"PrevPageLink"===t?(e.openBlock(),e.createBlock(l,{key:1,onClick:n[1]||(n[1]=e=>i.changePageToPrev(e)),disabled:i.isFirstPage||i.empty},null,8,["disabled"])):"NextPageLink"===t?(e.openBlock(),e.createBlock(p,{key:2,onClick:n[2]||(n[2]=e=>i.changePageToNext(e)),disabled:i.isLastPage||i.empty},null,8,["disabled"])):"LastPageLink"===t?(e.openBlock(),e.createBlock(c,{key:3,onClick:n[3]||(n[3]=e=>i.changePageToLast(e)),disabled:i.isLastPage||i.empty},null,8,["disabled"])):"PageLinks"===t?(e.openBlock(),e.createBlock(g,{key:4,value:i.pageLinks,page:i.page,onClick:n[4]||(n[4]=e=>i.changePageLink(e))},null,8,["value","page"])):"CurrentPageReport"===t?(e.openBlock(),e.createBlock(u,{key:5,template:a.currentPageReportTemplate,currentPage:i.currentPage,page:i.page,pageCount:i.pageCount,first:r.d_first,rows:r.d_rows,totalRecords:a.totalRecords},null,8,["template","currentPage","page","pageCount","first","rows","totalRecords"])):"RowsPerPageDropdown"===t&&a.rowsPerPageOptions?(e.openBlock(),e.createBlock(d,{key:6,rows:r.d_rows,options:a.rowsPerPageOptions,onRowsChange:n[5]||(n[5]=e=>i.onRowChange(e)),disabled:i.empty},null,8,["rows","options","disabled"])):"JumpToPageDropdown"===t?(e.openBlock(),e.createBlock(m,{key:7,page:i.page,pageCount:i.pageCount,onPageChange:n[6]||(n[6]=e=>i.changePage(e)),disabled:i.empty},null,8,["page","pageCount","disabled"])):"JumpToPageInput"===t?(e.openBlock(),e.createBlock(h,{key:8,page:i.currentPage,onPageChange:n[7]||(n[7]=e=>i.changePage(e)),disabled:i.empty},null,8,["page","disabled"])):e.createCommentVNode("",!0)],64)))),128)),t.$slots.end?(e.openBlock(),e.createElementBlock("div",N,[e.renderSlot(t.$slots,"end",{state:i.currentState})])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)},B}(Vue,primevue.ripple,primevue.dropdown,primevue.inputnumber);
|
|
1
|
+
this.primevue=this.primevue||{},this.primevue.paginator=function(e,t,n,a,o){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=r(n),s=r(a),l=r(o),p={name:"CurrentPageReport",inheritAttrs:!1,props:{pageCount:{type:Number,default:0},currentPage:{type:Number,default:0},page:{type:Number,default:0},first:{type:Number,default:0},rows:{type:Number,default:0},totalRecords:{type:Number,default:0},template:{type:String,default:"({currentPage} of {totalPages})"}},computed:{text(){return this.template.replace("{currentPage}",this.currentPage).replace("{totalPages}",this.pageCount).replace("{first}",this.pageCount>0?this.first+1:0).replace("{last}",Math.min(this.first+this.rows,this.totalRecords)).replace("{rows}",this.rows).replace("{totalRecords}",this.totalRecords)}}};const c={class:"p-paginator-current"};p.render=function(e,n,a,o,r,i){return t.openBlock(),t.createElementBlock("span",c,t.toDisplayString(i.text),1)};var g={name:"FirstPageLink",computed:{containerClass(){return["p-paginator-first p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:i.default}};const u=[t.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-double-left"},null,-1)];g.render=function(e,n,a,o,r,i){const s=t.resolveDirective("ripple");return t.withDirectives((t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(i.containerClass),type:"button"},u,2)),[[s]])};var d={name:"JumpToPageDropdown",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e)}},computed:{pageOptions(){let e=[];for(let t=0;t<this.pageCount;t++)e.push({label:String(t+1),value:t});return e}},components:{JTPDropdown:s.default}};d.render=function(e,n,a,o,r,i){const s=t.resolveComponent("JTPDropdown");return t.openBlock(),t.createBlock(s,{modelValue:a.page,options:i.pageOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-page-options",disabled:a.disabled},null,8,["modelValue","options","disabled"])};var m={name:"JumpToPageInput",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e-1)}},components:{JTPInput:l.default}};m.render=function(e,n,a,o,r,i){const s=t.resolveComponent("JTPInput");return t.openBlock(),t.createBlock(s,{modelValue:a.page,"onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-page-input",disabled:a.disabled},null,8,["modelValue","disabled"])};var h={name:"LastPageLink",computed:{containerClass(){return["p-paginator-last p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:i.default}};const k=[t.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-double-right"},null,-1)];h.render=function(e,n,a,o,r,i){const s=t.resolveDirective("ripple");return t.withDirectives((t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(i.containerClass),type:"button"},k,2)),[[s]])};var P={name:"NextPageLink",computed:{containerClass(){return["p-paginator-next p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:i.default}};const f=[t.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-right"},null,-1)];P.render=function(e,n,a,o,r,i){const s=t.resolveDirective("ripple");return t.withDirectives((t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(i.containerClass),type:"button"},f,2)),[[s]])};var b={name:"PageLinks",inheritAttrs:!1,emits:["click"],props:{value:Array,page:Number},methods:{onPageLinkClick(e,t){this.$emit("click",{originalEvent:e,value:t})}},directives:{ripple:i.default}};const v={class:"p-paginator-pages"},w=["onClick"];b.render=function(e,n,a,o,r,i){const s=t.resolveDirective("ripple");return t.openBlock(),t.createElementBlock("span",v,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.value,(e=>t.withDirectives((t.openBlock(),t.createElementBlock("button",{key:e,class:t.normalizeClass(["p-paginator-page p-paginator-element p-link",{"p-highlight":e-1===a.page}]),type:"button",onClick:t=>i.onPageLinkClick(t,e)},[t.createTextVNode(t.toDisplayString(e),1)],10,w)),[[s]]))),128))])};var y={name:"PrevPageLink",computed:{containerClass(){return["p-paginator-prev p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:i.default}};const C=[t.createElementVNode("span",{class:"p-paginator-icon pi pi-angle-left"},null,-1)];y.render=function(e,n,a,o,r,i){const s=t.resolveDirective("ripple");return t.withDirectives((t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(i.containerClass),type:"button"},C,2)),[[s]])};var B={name:"RowsPerPageDropdown",inheritAttrs:!1,emits:["rows-change"],props:{options:Array,rows:Number,disabled:Boolean},methods:{onChange(e){this.$emit("rows-change",e)}},computed:{rowsOptions(){let e=[];if(this.options)for(let t=0;t<this.options.length;t++)e.push({label:String(this.options[t]),value:this.options[t]});return e}},components:{RPPDropdown:s.default}};B.render=function(e,n,a,o,r,i){const s=t.resolveComponent("RPPDropdown");return t.openBlock(),t.createBlock(s,{modelValue:a.rows,options:i.rowsOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":n[0]||(n[0]=e=>i.onChange(e)),class:"p-paginator-rpp-options",disabled:a.disabled},null,8,["modelValue","options","disabled"])};var L={name:"Paginator",emits:["update:first","update:rows","page"],props:{totalRecords:{type:Number,default:0},rows:{type:Number,default:0},first:{type:Number,default:0},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},template:{type:[Object,String],default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},currentPageReportTemplate:{type:null,default:"({currentPage} of {totalPages})"},alwaysShow:{type:Boolean,default:!0}},data(){return{d_first:this.first,d_rows:this.rows}},watch:{first(e){this.d_first=e},rows(e){this.d_rows=e},totalRecords(e){this.page>0&&e&&this.d_first>=e&&this.changePage(this.pageCount-1)}},mounted(){this.setPaginatorAttribute(),this.createStyle()},methods:{changePage(e){const t=this.pageCount;if(e>=0&&e<t){this.d_first=this.d_rows*e;const n={page:e,first:this.d_first,rows:this.d_rows,pageCount:t};this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",n)}},changePageToFirst(e){this.isFirstPage||this.changePage(0),e.preventDefault()},changePageToPrev(e){this.changePage(this.page-1),e.preventDefault()},changePageLink(e){this.changePage(e.value-1),e.originalEvent.preventDefault()},changePageToNext(e){this.changePage(this.page+1),e.preventDefault()},changePageToLast(e){this.isLastPage||this.changePage(this.pageCount-1),e.preventDefault()},onRowChange(e){this.d_rows=e,this.changePage(this.page)},createStyle(){if(this.hasBreakpoints()){this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement);let e="";const t=Object.keys(this.template),n={};t.sort(((e,t)=>parseInt(e)-parseInt(t))).forEach((e=>{n[e]=this.template[e]}));for(const[t,[a]]of Object.entries(Object.entries(n))){const o=Object.entries(n)[t-1]?`and (min-width:${Object.keys(n)[t-1]})`:"";e+="default"===a?`\n @media screen ${o} {\n .paginator[${this.attributeSelector}],\n .p-paginator-default{\n display: flex !important;\n }\n }\n `:`\n .paginator[${this.attributeSelector}], .p-paginator-${a} {\n display: none !important;\n }\n @media screen ${o} and (max-width: ${a}) {\n .paginator[${this.attributeSelector}], .p-paginator-${a} {\n display: flex !important;\n }\n .paginator[${this.attributeSelector}],\n .p-paginator-default{\n display: none !important;\n }\n }\n `}this.styleElement.innerHTML=e}},hasBreakpoints(){return"object"==typeof this.template},getPaginatorClasses(e){return[{"p-paginator-default":!this.hasBreakpoints(),[`p-paginator-${e}`]:this.hasBreakpoints()}]},setPaginatorAttribute(){[...this.$refs.paginator].forEach((e=>{e.setAttribute(this.attributeSelector,"")}))}},computed:{templateItems(){let e={};if(this.hasBreakpoints()){e=this.template,e.default||(e.default="FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown");for(const t in e)e[t]=this.template[t].split(" ").map((e=>e.trim()));return e}return e.default=this.template.split(" ").map((e=>e.trim())),e},page(){return Math.floor(this.d_first/this.d_rows)},pageCount(){return Math.ceil(this.totalRecords/this.d_rows)},isFirstPage(){return 0===this.page},isLastPage(){return this.page===this.pageCount-1},calculatePageLinkBoundaries(){const e=this.pageCount,t=Math.min(this.pageLinkSize,e);let n=Math.max(0,Math.ceil(this.page-t/2)),a=Math.min(e-1,n+t-1);const o=this.pageLinkSize-(a-n+1);return n=Math.max(0,n-o),[n,a]},pageLinks(){let e=[],t=this.calculatePageLinkBoundaries,n=t[0],a=t[1];for(var o=n;o<=a;o++)e.push(o+1);return e},currentState(){return{page:this.page,first:this.d_first,rows:this.d_rows}},empty(){return 0===this.pageCount},currentPage(){return this.pageCount>0?this.page+1:0},attributeSelector:()=>e.UniqueComponentId()},components:{CurrentPageReport:p,FirstPageLink:g,LastPageLink:h,NextPageLink:P,PageLinks:b,PrevPageLink:y,RowsPerPageDropdown:B,JumpToPageDropdown:d,JumpToPageInput:m}};const x={key:0},N={key:0,class:"p-paginator-left-content"},D={key:1,class:"p-paginator-right-content"};return function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("\n.p-paginator-default {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.p-paginator {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.p-paginator-left-content {\n margin-right: auto;\n}\n.p-paginator-right-content {\n margin-left: auto;\n}\n.p-paginator-page,\n.p-paginator-next,\n.p-paginator-last,\n.p-paginator-first,\n.p-paginator-prev,\n.p-paginator-current {\n cursor: pointer;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n position: relative;\n}\n.p-paginator-element:focus {\n z-index: 1;\n position: relative;\n}\n"),L.render=function(e,n,a,o,r,i){const s=t.resolveComponent("FirstPageLink"),l=t.resolveComponent("PrevPageLink"),p=t.resolveComponent("NextPageLink"),c=t.resolveComponent("LastPageLink"),g=t.resolveComponent("PageLinks"),u=t.resolveComponent("CurrentPageReport"),d=t.resolveComponent("RowsPerPageDropdown"),m=t.resolveComponent("JumpToPageDropdown"),h=t.resolveComponent("JumpToPageInput");return a.alwaysShow||i.pageLinks&&i.pageLinks.length>1?(t.openBlock(),t.createElementBlock("div",x,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.templateItems,((o,k)=>(t.openBlock(),t.createElementBlock("div",{key:k,ref_for:!0,ref:"paginator",class:t.normalizeClass(["p-paginator p-component",i.getPaginatorClasses(k)])},[e.$slots.start?(t.openBlock(),t.createElementBlock("div",N,[t.renderSlot(e.$slots,"start",{state:i.currentState})])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o,(e=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:e},["FirstPageLink"===e?(t.openBlock(),t.createBlock(s,{key:0,onClick:n[0]||(n[0]=e=>i.changePageToFirst(e)),disabled:i.isFirstPage||i.empty},null,8,["disabled"])):"PrevPageLink"===e?(t.openBlock(),t.createBlock(l,{key:1,onClick:n[1]||(n[1]=e=>i.changePageToPrev(e)),disabled:i.isFirstPage||i.empty},null,8,["disabled"])):"NextPageLink"===e?(t.openBlock(),t.createBlock(p,{key:2,onClick:n[2]||(n[2]=e=>i.changePageToNext(e)),disabled:i.isLastPage||i.empty},null,8,["disabled"])):"LastPageLink"===e?(t.openBlock(),t.createBlock(c,{key:3,onClick:n[3]||(n[3]=e=>i.changePageToLast(e)),disabled:i.isLastPage||i.empty},null,8,["disabled"])):"PageLinks"===e?(t.openBlock(),t.createBlock(g,{key:4,value:i.pageLinks,page:i.page,onClick:n[4]||(n[4]=e=>i.changePageLink(e))},null,8,["value","page"])):"CurrentPageReport"===e?(t.openBlock(),t.createBlock(u,{key:5,template:a.currentPageReportTemplate,currentPage:i.currentPage,page:i.page,pageCount:i.pageCount,first:r.d_first,rows:r.d_rows,totalRecords:a.totalRecords},null,8,["template","currentPage","page","pageCount","first","rows","totalRecords"])):"RowsPerPageDropdown"===e&&a.rowsPerPageOptions?(t.openBlock(),t.createBlock(d,{key:6,rows:r.d_rows,options:a.rowsPerPageOptions,onRowsChange:n[5]||(n[5]=e=>i.onRowChange(e)),disabled:i.empty},null,8,["rows","options","disabled"])):"JumpToPageDropdown"===e?(t.openBlock(),t.createBlock(m,{key:7,page:i.page,pageCount:i.pageCount,onPageChange:n[6]||(n[6]=e=>i.changePage(e)),disabled:i.empty},null,8,["page","pageCount","disabled"])):"JumpToPageInput"===e?(t.openBlock(),t.createBlock(h,{key:8,page:i.currentPage,onPageChange:n[7]||(n[7]=e=>i.changePage(e)),disabled:i.empty},null,8,["page","disabled"])):t.createCommentVNode("",!0)],64)))),128)),e.$slots.end?(t.openBlock(),t.createElementBlock("div",D,[t.renderSlot(e.$slots,"end",{state:i.currentState})])):t.createCommentVNode("",!0)],2)))),128))])):t.createCommentVNode("",!0)},L}(primevue.utils,Vue,primevue.ripple,primevue.dropdown,primevue.inputnumber);
|
package/panelmenu/PanelMenu.d.ts
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
import { VNode } from 'vue';
|
|
2
|
-
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
|
3
2
|
import { MenuItem } from '../menuitem';
|
|
3
|
+
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
|
4
4
|
|
|
5
5
|
export interface PanelMenuExpandedKeys {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export interface PanelMenuPanelOpenEvent {
|
|
10
|
+
/**
|
|
11
|
+
* Browser mouse event.
|
|
12
|
+
* @type {MouseEvent}
|
|
13
|
+
*/
|
|
14
|
+
originalEvent: MouseEvent;
|
|
15
|
+
/**
|
|
16
|
+
* Current item.
|
|
17
|
+
*/
|
|
18
|
+
item: any;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @extends {PanelMenuPanelOpenEvent}
|
|
23
|
+
*/
|
|
24
|
+
export interface PanelMenuPanelCloseEvent extends PanelMenuPanelOpenEvent {}
|
|
25
|
+
|
|
9
26
|
export interface PanelMenuProps {
|
|
10
27
|
/**
|
|
11
28
|
* An array of menuitems.
|
|
@@ -20,6 +37,10 @@ export interface PanelMenuProps {
|
|
|
20
37
|
* Whether to apply 'router-link-active-exact' class if route exactly matches the item path.
|
|
21
38
|
*/
|
|
22
39
|
exact?: boolean | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Index of the element in tabbing order.
|
|
42
|
+
*/
|
|
43
|
+
tabindex?: number | string | undefined;
|
|
23
44
|
}
|
|
24
45
|
|
|
25
46
|
export interface PanelMenuSlots {
|
|
@@ -41,6 +62,16 @@ export declare type PanelMenuEmits = {
|
|
|
41
62
|
* @param {*} value - New value.
|
|
42
63
|
*/
|
|
43
64
|
'update:expandedKeys': (value: any) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Callback to invoke when a panel gets expanded.
|
|
67
|
+
* @param {PanelMenuPanelOpenEvent} event - Custom panel open event.
|
|
68
|
+
*/
|
|
69
|
+
'panel-open': (event: PanelMenuPanelOpenEvent) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Callback to invoke when an active panel is collapsed by clicking on the header.
|
|
72
|
+
* @param {PanelMenuPanelCloseEvent} event - Custom panel close event.
|
|
73
|
+
*/
|
|
74
|
+
'panel-close': (event: PanelMenuPanelCloseEvent) => void;
|
|
44
75
|
};
|
|
45
76
|
|
|
46
77
|
declare class PanelMenu extends ClassComponent<PanelMenuProps, PanelMenuSlots, PanelMenuEmits> {}
|
package/panelmenu/PanelMenu.vue
CHANGED
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="p-panelmenu p-component">
|
|
3
|
-
<template v-for="(item, index) of model" :key="
|
|
4
|
-
<div v-if="
|
|
5
|
-
<div
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
<div :id="id" class="p-panelmenu p-component">
|
|
3
|
+
<template v-for="(item, index) of model" :key="getPanelKey(index)">
|
|
4
|
+
<div v-if="isItemVisible(item)" :style="getItemProp(item, 'style')" :class="getPanelClass(item)">
|
|
5
|
+
<div
|
|
6
|
+
:id="getHeaderId(index)"
|
|
7
|
+
:class="getHeaderClass(item)"
|
|
8
|
+
:tabindex="isItemDisabled(item) ? -1 : tabindex"
|
|
9
|
+
role="button"
|
|
10
|
+
:aria-label="getItemLabel(item)"
|
|
11
|
+
:aria-expanded="isItemActive(item)"
|
|
12
|
+
:aria-controls="getContentId(index)"
|
|
13
|
+
:aria-disabled="isItemDisabled(item)"
|
|
14
|
+
@click="onHeaderClick($event, item)"
|
|
15
|
+
@keydown="onHeaderKeyDown($event, item)"
|
|
16
|
+
>
|
|
17
|
+
<div class="p-panelmenu-header-content">
|
|
18
|
+
<template v-if="!$slots.item">
|
|
19
|
+
<router-link v-if="getItemProp(item, 'to') && !isItemDisabled(item)" v-slot="{ navigate, href, isActive, isExactActive }" :to="getItemProp(item, 'to')" custom>
|
|
20
|
+
<a :href="href" :class="getHeaderActionClass(item, { isActive, isExactActive })" :tabindex="-1" @click="onHeaderActionClick($event, navigate)">
|
|
21
|
+
<span v-if="getItemProp(item, 'icon')" :class="getHeaderIconClass(item)"></span>
|
|
22
|
+
<span class="p-menuitem-text">{{ getItemLabel(item) }}</span>
|
|
23
|
+
</a>
|
|
24
|
+
</router-link>
|
|
25
|
+
<a v-else :href="getItemProp(item, 'url')" :class="getHeaderActionClass(item)" :tabindex="-1">
|
|
26
|
+
<span v-if="getItemProp(item, 'items')" :class="getHeaderToggleIconClass(item)"></span>
|
|
27
|
+
<span v-if="getItemProp(item, 'icon')" :class="getHeaderIconClass(item)"></span>
|
|
28
|
+
<span class="p-menuitem-text">{{ getItemLabel(item) }}</span>
|
|
11
29
|
</a>
|
|
12
|
-
</
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
:id="ariaId + '_header_' + index"
|
|
16
|
-
:href="item.url"
|
|
17
|
-
:class="getHeaderLinkClass(item)"
|
|
18
|
-
@click="onItemClick($event, item)"
|
|
19
|
-
@keydown="onItemKeydown($event, item)"
|
|
20
|
-
:tabindex="disabled(item) ? null : '0'"
|
|
21
|
-
:aria-expanded="isActive(item)"
|
|
22
|
-
:aria-controls="ariaId + '_content_' + index"
|
|
23
|
-
>
|
|
24
|
-
<span v-if="item.items" :class="getPanelToggleIcon(item)"></span>
|
|
25
|
-
<span v-if="item.icon" :class="getPanelIcon(item)"></span>
|
|
26
|
-
<span class="p-menuitem-text">{{ label(item) }}</span>
|
|
27
|
-
</a>
|
|
28
|
-
</template>
|
|
29
|
-
<component v-else :is="$slots.item" :item="item"></component>
|
|
30
|
+
</template>
|
|
31
|
+
<component v-else :is="$slots.item" :item="item"></component>
|
|
32
|
+
</div>
|
|
30
33
|
</div>
|
|
31
34
|
<transition name="p-toggleable-content">
|
|
32
|
-
<div v-show="
|
|
33
|
-
<div v-if="item
|
|
34
|
-
<
|
|
35
|
+
<div v-show="isItemActive(item)" :id="getContentId(index)" class="p-toggleable-content" role="region" :aria-labelledby="getHeaderId(index)">
|
|
36
|
+
<div v-if="getItemProp(item, 'items')" class="p-panelmenu-content">
|
|
37
|
+
<PanelMenuList :panelId="getPanelId(index)" :items="getItemProp(item, 'items')" :template="$slots.item" :expandedKeys="expandedKeys" @item-toggle="changeExpandedKeys" @header-focus="updateFocusedHeader" :exact="exact" />
|
|
35
38
|
</div>
|
|
36
39
|
</div>
|
|
37
40
|
</transition>
|
|
@@ -41,24 +44,28 @@
|
|
|
41
44
|
</template>
|
|
42
45
|
|
|
43
46
|
<script>
|
|
44
|
-
import
|
|
45
|
-
import
|
|
47
|
+
import { DomHandler, ObjectUtils, UniqueComponentId } from 'primevue/utils';
|
|
48
|
+
import PanelMenuList from './PanelMenuList.vue';
|
|
46
49
|
|
|
47
50
|
export default {
|
|
48
51
|
name: 'PanelMenu',
|
|
49
|
-
emits: ['update:expandedKeys'],
|
|
52
|
+
emits: ['update:expandedKeys', 'panel-open', 'panel-close'],
|
|
50
53
|
props: {
|
|
51
54
|
model: {
|
|
52
55
|
type: Array,
|
|
53
56
|
default: null
|
|
54
57
|
},
|
|
55
58
|
expandedKeys: {
|
|
56
|
-
type:
|
|
59
|
+
type: Object,
|
|
57
60
|
default: null
|
|
58
61
|
},
|
|
59
62
|
exact: {
|
|
60
63
|
type: Boolean,
|
|
61
64
|
default: true
|
|
65
|
+
},
|
|
66
|
+
tabindex: {
|
|
67
|
+
type: Number,
|
|
68
|
+
default: 0
|
|
62
69
|
}
|
|
63
70
|
},
|
|
64
71
|
data() {
|
|
@@ -67,98 +74,195 @@ export default {
|
|
|
67
74
|
};
|
|
68
75
|
},
|
|
69
76
|
methods: {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
getItemProp(item, name) {
|
|
78
|
+
return item ? ObjectUtils.getItemValue(item[name]) : undefined;
|
|
79
|
+
},
|
|
80
|
+
getItemLabel(item) {
|
|
81
|
+
return this.getItemProp(item, 'label');
|
|
82
|
+
},
|
|
83
|
+
isItemActive(item) {
|
|
84
|
+
return this.expandedKeys ? this.expandedKeys[this.getItemProp(item, 'key')] : item === this.activeItem;
|
|
85
|
+
},
|
|
86
|
+
isItemVisible(item) {
|
|
87
|
+
return this.getItemProp(item, 'visible') !== false;
|
|
88
|
+
},
|
|
89
|
+
isItemDisabled(item) {
|
|
90
|
+
return this.getItemProp(item, 'disabled');
|
|
91
|
+
},
|
|
92
|
+
getPanelId(index) {
|
|
93
|
+
return `${this.id}_${index}`;
|
|
94
|
+
},
|
|
95
|
+
getPanelKey(index) {
|
|
96
|
+
return this.getPanelId(index);
|
|
97
|
+
},
|
|
98
|
+
getHeaderId(index) {
|
|
99
|
+
return `${this.getPanelId(index)}_header`;
|
|
100
|
+
},
|
|
101
|
+
getContentId(index) {
|
|
102
|
+
return `${this.getPanelId(index)}_content`;
|
|
103
|
+
},
|
|
104
|
+
onHeaderClick(event, item) {
|
|
105
|
+
if (this.isItemDisabled(item)) {
|
|
76
106
|
event.preventDefault();
|
|
77
107
|
|
|
78
108
|
return;
|
|
79
109
|
}
|
|
80
110
|
|
|
81
111
|
if (item.command) {
|
|
82
|
-
item.command({
|
|
83
|
-
originalEvent: event,
|
|
84
|
-
item: item
|
|
85
|
-
});
|
|
112
|
+
item.command({ originalEvent: event, item });
|
|
86
113
|
}
|
|
87
114
|
|
|
88
|
-
|
|
89
|
-
|
|
115
|
+
this.changeActiveItem(event, item);
|
|
116
|
+
DomHandler.focus(event.currentTarget);
|
|
117
|
+
},
|
|
118
|
+
onHeaderKeyDown(event, item) {
|
|
119
|
+
switch (event.code) {
|
|
120
|
+
case 'ArrowDown':
|
|
121
|
+
this.onHeaderArrowDownKey(event);
|
|
122
|
+
break;
|
|
123
|
+
|
|
124
|
+
case 'ArrowUp':
|
|
125
|
+
this.onHeaderArrowUpKey(event);
|
|
126
|
+
break;
|
|
127
|
+
|
|
128
|
+
case 'Home':
|
|
129
|
+
this.onHeaderHomeKey(event);
|
|
130
|
+
break;
|
|
90
131
|
|
|
91
|
-
|
|
132
|
+
case 'End':
|
|
133
|
+
this.onHeaderEndKey(event);
|
|
134
|
+
break;
|
|
92
135
|
|
|
93
|
-
|
|
94
|
-
|
|
136
|
+
case 'Enter':
|
|
137
|
+
case 'Space':
|
|
138
|
+
this.onHeaderEnterKey(event, item);
|
|
139
|
+
break;
|
|
140
|
+
|
|
141
|
+
default:
|
|
142
|
+
break;
|
|
95
143
|
}
|
|
96
144
|
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
145
|
+
onHeaderArrowDownKey(event) {
|
|
146
|
+
const rootList = DomHandler.hasClass(event.currentTarget, 'p-highlight') ? DomHandler.findSingle(event.currentTarget.nextElementSibling, '.p-panelmenu-root-list') : null;
|
|
147
|
+
|
|
148
|
+
rootList ? DomHandler.focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });
|
|
149
|
+
event.preventDefault();
|
|
150
|
+
},
|
|
151
|
+
onHeaderArrowUpKey(event) {
|
|
152
|
+
const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();
|
|
153
|
+
const rootList = DomHandler.hasClass(prevHeader, 'p-highlight') ? DomHandler.findSingle(prevHeader.nextElementSibling, '.p-panelmenu-root-list') : null;
|
|
154
|
+
|
|
155
|
+
rootList ? DomHandler.focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
},
|
|
158
|
+
onHeaderHomeKey(event) {
|
|
159
|
+
this.changeFocusedHeader(event, this.findFirstHeader());
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
},
|
|
162
|
+
onHeaderEndKey(event) {
|
|
163
|
+
this.changeFocusedHeader(event, this.findLastHeader());
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
},
|
|
166
|
+
onHeaderEnterKey(event, item) {
|
|
167
|
+
const headerAction = DomHandler.findSingle(event.currentTarget, '.p-panelmenu-header-action');
|
|
168
|
+
|
|
169
|
+
headerAction ? headerAction.click() : this.onHeaderClick(event, item);
|
|
170
|
+
event.preventDefault();
|
|
171
|
+
},
|
|
172
|
+
onHeaderActionClick(event, navigate) {
|
|
173
|
+
navigate && navigate(event);
|
|
174
|
+
},
|
|
175
|
+
findNextHeader(panelElement, selfCheck = false) {
|
|
176
|
+
const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;
|
|
177
|
+
const headerElement = DomHandler.findSingle(nextPanelElement, '.p-panelmenu-header');
|
|
178
|
+
|
|
179
|
+
return headerElement ? (DomHandler.hasClass(headerElement, 'p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;
|
|
180
|
+
},
|
|
181
|
+
findPrevHeader(panelElement, selfCheck = false) {
|
|
182
|
+
const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;
|
|
183
|
+
const headerElement = DomHandler.findSingle(prevPanelElement, '.p-panelmenu-header');
|
|
184
|
+
|
|
185
|
+
return headerElement ? (DomHandler.hasClass(headerElement, 'p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;
|
|
186
|
+
},
|
|
187
|
+
findFirstHeader() {
|
|
188
|
+
return this.findNextHeader(this.$el.firstElementChild, true);
|
|
189
|
+
},
|
|
190
|
+
findLastHeader() {
|
|
191
|
+
return this.findPrevHeader(this.$el.lastElementChild, true);
|
|
192
|
+
},
|
|
193
|
+
updateFocusedHeader(event) {
|
|
194
|
+
const { originalEvent, focusOnNext, selfCheck } = event;
|
|
195
|
+
const panelElement = originalEvent.currentTarget.closest('.p-panelmenu-panel');
|
|
196
|
+
const header = selfCheck ? DomHandler.findSingle(panelElement, '.p-panelmenu-header') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);
|
|
197
|
+
|
|
198
|
+
header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);
|
|
199
|
+
},
|
|
200
|
+
changeActiveItem(event, item, selfActive = false) {
|
|
201
|
+
if (!this.isItemDisabled(item)) {
|
|
202
|
+
this.activeItem = selfActive ? item : this.activeItem && this.activeItem === item ? null : item;
|
|
203
|
+
|
|
204
|
+
const active = this.isItemActive(item);
|
|
205
|
+
const eventName = active ? 'panel-open' : 'panel-close';
|
|
206
|
+
|
|
207
|
+
this.changeExpandedKeys({ item, expanded: !active });
|
|
208
|
+
this.$emit(eventName, { originalEvent: event, item });
|
|
100
209
|
}
|
|
101
210
|
},
|
|
102
|
-
|
|
211
|
+
changeExpandedKeys({ item, expanded = false }) {
|
|
103
212
|
if (this.expandedKeys) {
|
|
104
|
-
let item = event.item;
|
|
105
213
|
let _keys = { ...this.expandedKeys };
|
|
106
214
|
|
|
107
|
-
if (
|
|
215
|
+
if (expanded) _keys[item.key] = true;
|
|
108
216
|
else delete _keys[item.key];
|
|
109
217
|
|
|
110
218
|
this.$emit('update:expandedKeys', _keys);
|
|
111
219
|
}
|
|
112
220
|
},
|
|
113
|
-
|
|
114
|
-
|
|
221
|
+
changeFocusedHeader(event, element) {
|
|
222
|
+
element && DomHandler.focus(element);
|
|
115
223
|
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return ['p-panelmenu-icon pi', { 'pi-chevron-right': !active, ' pi-chevron-down': active }];
|
|
224
|
+
getPanelClass(item) {
|
|
225
|
+
return ['p-panelmenu-panel', this.getItemProp(item, 'class')];
|
|
120
226
|
},
|
|
121
|
-
|
|
122
|
-
return [
|
|
227
|
+
getHeaderClass(item) {
|
|
228
|
+
return [
|
|
229
|
+
'p-panelmenu-header',
|
|
230
|
+
this.getItemProp(item, 'headerClass'),
|
|
231
|
+
{
|
|
232
|
+
'p-highlight': this.isItemActive(item),
|
|
233
|
+
'p-disabled': this.isItemDisabled(item)
|
|
234
|
+
}
|
|
235
|
+
];
|
|
123
236
|
},
|
|
124
|
-
|
|
237
|
+
getHeaderActionClass(item, routerProps) {
|
|
125
238
|
return [
|
|
126
|
-
'p-panelmenu-header-
|
|
239
|
+
'p-panelmenu-header-action',
|
|
127
240
|
{
|
|
128
241
|
'router-link-active': routerProps && routerProps.isActive,
|
|
129
242
|
'router-link-active-exact': this.exact && routerProps && routerProps.isExactActive
|
|
130
243
|
}
|
|
131
244
|
];
|
|
132
245
|
},
|
|
133
|
-
|
|
134
|
-
return
|
|
135
|
-
},
|
|
136
|
-
getHeaderClass(item) {
|
|
137
|
-
return ['p-component p-panelmenu-header', { 'p-highlight': this.isActive(item), 'p-disabled': this.disabled(item) }];
|
|
138
|
-
},
|
|
139
|
-
visible(item) {
|
|
140
|
-
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
|
|
141
|
-
},
|
|
142
|
-
disabled(item) {
|
|
143
|
-
return typeof item.disabled === 'function' ? item.disabled() : item.disabled;
|
|
246
|
+
getHeaderIconClass(item) {
|
|
247
|
+
return ['p-menuitem-icon', this.getItemProp(item, 'icon')];
|
|
144
248
|
},
|
|
145
|
-
|
|
146
|
-
return
|
|
249
|
+
getHeaderToggleIconClass(item) {
|
|
250
|
+
return ['p-submenu-icon', this.isItemActive(item) ? 'pi pi-chevron-down' : 'pi pi-chevron-right'];
|
|
147
251
|
}
|
|
148
252
|
},
|
|
149
253
|
computed: {
|
|
150
|
-
|
|
151
|
-
return UniqueComponentId();
|
|
254
|
+
id() {
|
|
255
|
+
return this.$attrs.id || UniqueComponentId();
|
|
152
256
|
}
|
|
153
257
|
},
|
|
154
258
|
components: {
|
|
155
|
-
|
|
259
|
+
PanelMenuList: PanelMenuList
|
|
156
260
|
}
|
|
157
261
|
};
|
|
158
262
|
</script>
|
|
159
263
|
|
|
160
264
|
<style>
|
|
161
|
-
.p-panelmenu .p-panelmenu-header-
|
|
265
|
+
.p-panelmenu .p-panelmenu-header-action {
|
|
162
266
|
display: flex;
|
|
163
267
|
align-items: center;
|
|
164
268
|
user-select: none;
|
|
@@ -167,7 +271,7 @@ export default {
|
|
|
167
271
|
text-decoration: none;
|
|
168
272
|
}
|
|
169
273
|
|
|
170
|
-
.p-panelmenu .p-panelmenu-header-
|
|
274
|
+
.p-panelmenu .p-panelmenu-header-action:focus {
|
|
171
275
|
z-index: 1;
|
|
172
276
|
}
|
|
173
277
|
|
|
@@ -183,6 +287,8 @@ export default {
|
|
|
183
287
|
user-select: none;
|
|
184
288
|
cursor: pointer;
|
|
185
289
|
text-decoration: none;
|
|
290
|
+
position: relative;
|
|
291
|
+
overflow: hidden;
|
|
186
292
|
}
|
|
187
293
|
|
|
188
294
|
.p-panelmenu .p-menuitem-text {
|