UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Actions CI](https://github.com/primefaces/primevue/wo

2 lines (1 loc) 6.98 kB
this.primevue=this.primevue||{},this.primevue.accordion=function(e,t,n){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i={name:"Accordion",emits:["update:activeIndex","tab-open","tab-close","tab-click"],props:{multiple:{type:Boolean,default:!1},activeIndex:{type:[Number,Array],default:null},lazy:{type:Boolean,default:!1},expandIcon:{type:String,default:"pi pi-chevron-right"},collapseIcon:{type:String,default:"pi pi-chevron-down"},tabindex:{type:Number,default:0},selectOnFocus:{type:Boolean,default:!1}},data(){return{d_activeIndex:this.activeIndex}},watch:{activeIndex(e){this.d_activeIndex=e}},methods:{isAccordionTab:e=>"AccordionTab"===e.type.name,isTabActive(e){return this.multiple?this.d_activeIndex&&this.d_activeIndex.includes(e):this.d_activeIndex===e},getTabProp:(e,t)=>e.props?e.props[t]:void 0,getKey(e,t){return this.getTabProp(e,"header")||t},getTabHeaderActionId(e){return`${this.id}_${e}_header_action`},getTabContentId(e){return`${this.id}_${e}_content`},onTabClick(e,t,n){this.changeActiveIndex(e,t,n),this.$emit("tab-click",{originalEvent:e,index:n})},onTabKeyDown(e,t,n){switch(e.code){case"ArrowDown":this.onTabArrowDownKey(e);break;case"ArrowUp":this.onTabArrowUpKey(e);break;case"Home":this.onTabHomeKey(e);break;case"End":this.onTabEndKey(e);break;case"Enter":case"Space":this.onTabEnterKey(e,t,n)}},onTabArrowDownKey(e){const t=this.findNextHeaderAction(e.target.parentElement.parentElement);t?this.changeFocusedTab(e,t):this.onTabHomeKey(e),e.preventDefault()},onTabArrowUpKey(e){const t=this.findPrevHeaderAction(e.target.parentElement.parentElement);t?this.changeFocusedTab(e,t):this.onTabEndKey(e),e.preventDefault()},onTabHomeKey(e){const t=this.findFirstHeaderAction();this.changeFocusedTab(e,t),e.preventDefault()},onTabEndKey(e){const t=this.findLastHeaderAction();this.changeFocusedTab(e,t),e.preventDefault()},onTabEnterKey(e,t,n){this.changeActiveIndex(e,t,n),e.preventDefault()},findNextHeaderAction(e,n=!1){const a=n?e:e.nextElementSibling,i=t.DomHandler.findSingle(a,".p-accordion-header");return i?t.DomHandler.hasClass(i,"p-disabled")?this.findNextHeaderAction(i.parentElement):t.DomHandler.findSingle(i,".p-accordion-header-action"):null},findPrevHeaderAction(e,n=!1){const a=n?e:e.previousElementSibling,i=t.DomHandler.findSingle(a,".p-accordion-header");return i?t.DomHandler.hasClass(i,"p-disabled")?this.findPrevHeaderAction(i.parentElement):t.DomHandler.findSingle(i,".p-accordion-header-action"):null},findFirstHeaderAction(){return this.findNextHeaderAction(this.$el.firstElementChild,!0)},findLastHeaderAction(){return this.findPrevHeaderAction(this.$el.lastElementChild,!0)},changeActiveIndex(e,t,n){if(!this.getTabProp(t,"disabled")){const t=this.isTabActive(n),a=t?"tab-close":"tab-open";this.multiple?t?this.d_activeIndex=this.d_activeIndex.filter((e=>e!==n)):this.d_activeIndex?this.d_activeIndex.push(n):this.d_activeIndex=[n]:this.d_activeIndex=this.d_activeIndex===n?null:n,this.$emit("update:activeIndex",this.d_activeIndex),this.$emit(a,{originalEvent:e,index:n})}},changeFocusedTab(e,n){if(n&&(t.DomHandler.focus(n),this.selectOnFocus)){const t=parseInt(n.parentElement.parentElement.dataset.index,10),a=this.tabs[t];this.changeActiveIndex(e,a,t)}},getTabClass(e){return["p-accordion-tab",{"p-accordion-tab-active":this.isTabActive(e)}]},getTabHeaderClass(e,t){return["p-accordion-header",this.getTabProp(e,"headerClass"),{"p-highlight":this.isTabActive(t),"p-disabled":this.getTabProp(e,"disabled")}]},getTabHeaderIconClass(e){return["p-accordion-toggle-icon",this.isTabActive(e)?this.collapseIcon:this.expandIcon]},getTabContentClass(e){return["p-toggleable-content",this.getTabProp(e,"contentClass")]}},computed:{tabs(){return this.$slots.default().reduce(((e,t)=>(this.isAccordionTab(t)?e.push(t):t.children&&t.children instanceof Array&&t.children.forEach((t=>{this.isAccordionTab(t)&&e.push(t)})),e)),[])},id(){return this.$attrs.id||t.UniqueComponentId()}},directives:{ripple:a(e).default}};const o={class:"p-accordion p-component"},r=["data-index"],d=["id","tabindex","aria-disabled","aria-expanded","aria-controls","onClick","onKeydown"],c={key:0,class:"p-accordion-header-text"},s=["id","aria-labelledby"],l={class:"p-accordion-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],i=document.createElement("style");i.type="text/css","top"===n&&a.firstChild?a.insertBefore(i,a.firstChild):a.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-accordion-header-action {\n cursor: pointer;\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-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position: relative;\n text-decoration: none;\n}\n.p-accordion-header-action:focus {\n z-index: 1;\n}\n.p-accordion-header-text {\n line-height: 1;\n}\n"),i.render=function(e,t,a,i,p,h){return n.openBlock(),n.createElementBlock("div",o,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(h.tabs,((e,t)=>(n.openBlock(),n.createElementBlock("div",{key:h.getKey(e,t),class:n.normalizeClass(h.getTabClass(t)),"data-index":t},[n.createElementVNode("div",n.mergeProps({style:h.getTabProp(e,"headerStyle"),class:h.getTabHeaderClass(e,t)},h.getTabProp(e,"headerProps")),[n.createElementVNode("a",n.mergeProps({id:h.getTabHeaderActionId(t),class:"p-accordion-header-link p-accordion-header-action",tabindex:h.getTabProp(e,"disabled")?-1:a.tabindex,role:"button","aria-disabled":h.getTabProp(e,"disabled"),"aria-expanded":h.isTabActive(t),"aria-controls":h.getTabContentId(t),onClick:n=>h.onTabClick(n,e,t),onKeydown:n=>h.onTabKeyDown(n,e,t)},h.getTabProp(e,"headerActionProps")),[n.createElementVNode("span",{class:n.normalizeClass(h.getTabHeaderIconClass(t)),"aria-hidden":"true"},null,2),e.props&&e.props.header?(n.openBlock(),n.createElementBlock("span",c,n.toDisplayString(e.props.header),1)):n.createCommentVNode("",!0),e.children&&e.children.header?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.children.header),{key:1})):n.createCommentVNode("",!0)],16,d)],16),n.createVNode(n.Transition,{name:"p-toggleable-content"},{default:n.withCtx((()=>[!a.lazy||h.isTabActive(t)?n.withDirectives((n.openBlock(),n.createElementBlock("div",n.mergeProps({key:0,id:h.getTabContentId(t),style:h.getTabProp(e,"contentStyle"),class:h.getTabContentClass(e),role:"region","aria-labelledby":h.getTabHeaderActionId(t)},h.getTabProp(e,"contentProps")),[n.createElementVNode("div",l,[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e)))])],16,s)),[[n.vShow,!!a.lazy||h.isTabActive(t)]]):n.createCommentVNode("",!0)])),_:2},1024)],10,r)))),128))])},i}(primevue.ripple,primevue.utils,Vue);