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) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 4.16 kB
"use strict";var e=require("primevue/utils"),t=require("vue"),a={name:"Accordion",emits:["tab-close","tab-open","update:activeIndex"],props:{multiple:{type:Boolean,default:!1},activeIndex:{type:[Number,Array],default:null},lazy:{type:Boolean,default:!1}},data(){return{d_activeIndex:this.activeIndex}},watch:{activeIndex(e){this.d_activeIndex=e}},methods:{onTabClick(e,t,a){if(!this.isTabDisabled(t)){const t=this.isTabActive(a),i=t?"tab-close":"tab-open";this.multiple?t?this.d_activeIndex=this.d_activeIndex.filter((e=>e!==a)):this.d_activeIndex?this.d_activeIndex.push(a):this.d_activeIndex=[a]:this.d_activeIndex=this.d_activeIndex===a?null:a,this.$emit("update:activeIndex",this.d_activeIndex),this.$emit(i,{originalEvent:e,index:a})}},onTabKeydown(e,t,a){13===e.which&&this.onTabClick(e,a)},isTabActive(e){return this.multiple?this.d_activeIndex&&this.d_activeIndex.includes(e):e===this.d_activeIndex},getKey:(e,t)=>e.props&&e.props.header?e.props.header:t,isTabDisabled:e=>e.props&&e.props.disabled,getTabClass(e){return["p-accordion-tab",{"p-accordion-tab-active":this.isTabActive(e)}]},getTabHeaderClass(e,t){return["p-accordion-header",{"p-highlight":this.isTabActive(t),"p-disabled":this.isTabDisabled(e)}]},getTabAriaId(e){return this.ariaId+"_"+e},getHeaderIcon(e){const t=this.isTabActive(e);return["p-accordion-toggle-icon pi",{"pi-chevron-right":!t,"pi-chevron-down":t}]},isAccordionTab:e=>"AccordionTab"===e.type.name},computed:{tabs(){const e=[];return this.$slots.default().forEach((t=>{this.isAccordionTab(t)?e.push(t):t.children&&t.children instanceof Array&&t.children.forEach((t=>{this.isAccordionTab(t)&&e.push(t)}))})),e},ariaId:()=>e.UniqueComponentId()}};const i={class:"p-accordion p-component"},n={key:0,class:"p-accordion-header-text"},o={class:"p-accordion-content"};!function(e,t){void 0===t&&(t={});var a=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===a&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-accordion-header-link {\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-link:focus {\n z-index: 1;\n}\n.p-accordion-header-text {\n line-height: 1;\n}\n"),a.render=function(e,a,c,d,r,s){return t.openBlock(),t.createBlock("div",i,[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(s.tabs,((e,a)=>(t.openBlock(),t.createBlock("div",{key:s.getKey(e,a),class:s.getTabClass(a)},[t.createVNode("div",{class:s.getTabHeaderClass(e,a)},[t.createVNode("a",{role:"tab",class:"p-accordion-header-link",onClick:t=>s.onTabClick(t,e,a),onKeydown:t=>s.onTabKeydown(t,e,a),tabindex:s.isTabDisabled(e)?null:"0","aria-expanded":s.isTabActive(a),id:s.getTabAriaId(a)+"_header","aria-controls":s.getTabAriaId(a)+"_content"},[t.createVNode("span",{class:s.getHeaderIcon(a)},null,2),e.props&&e.props.header?(t.openBlock(),t.createBlock("span",n,t.toDisplayString(e.props.header),1)):t.createCommentVNode("",!0),e.children&&e.children.header?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.children.header),{key:1})):t.createCommentVNode("",!0)],40,["onClick","onKeydown","tabindex","aria-expanded","id","aria-controls"])],2),t.createVNode(t.Transition,{name:"p-toggleable-content"},{default:t.withCtx((()=>[!c.lazy||s.isTabActive(a)?t.withDirectives((t.openBlock(),t.createBlock("div",{key:0,class:"p-toggleable-content",role:"region",id:s.getTabAriaId(a)+"_content","aria-labelledby":s.getTabAriaId(a)+"_header"},[t.createVNode("div",o,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e)))])],8,["id","aria-labelledby"])),[[t.vShow,!!c.lazy||s.isTabActive(a)]]):t.createCommentVNode("",!0)])),_:2},1024)],2)))),128))])},module.exports=a;