primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 3.07 kB
JavaScript
import e from"primevue/ripple";import{UniqueComponentId as t}from"primevue/utils";import{resolveDirective as l,openBlock as n,createElementBlock as a,normalizeClass as o,createElementVNode as d,renderSlot as s,toDisplayString as i,createCommentVNode as r,withDirectives as p,mergeProps as g,createVNode as c,Transition as u,withCtx as f,vShow as h}from"vue";var m={name:"Fieldset",emits:["update:collapsed","toggle"],props:{legend:String,toggleable:Boolean,collapsed:Boolean,toggleButtonProps:{type:null,default:null}},data(){return{d_collapsed:this.collapsed}},watch:{collapsed(e){this.d_collapsed=e}},methods:{toggle(e){this.d_collapsed=!this.d_collapsed,this.$emit("update:collapsed",this.d_collapsed),this.$emit("toggle",{originalEvent:e,value:this.d_collapsed})},onKeyDown(e){"Enter"!==e.code&&"Space"!==e.code||(this.toggle(e),e.preventDefault())}},computed:{iconClass(){return["p-fieldset-toggler pi ",{"pi-minus":!this.d_collapsed,"pi-plus":this.d_collapsed}]},ariaId:()=>t(),buttonAriaLabel(){return this.toggleButtonProps&&this.toggleButtonProps["aria-label"]?this.toggleButtonProps["aria-label"]:this.legend}},directives:{ripple:e}};const b={class:"p-fieldset-legend"},y=["id"],_=["id","aria-controls","aria-expanded","aria-label"],v={class:"p-fieldset-legend-text"},x=["id","aria-labelledby"],B={class:"p-fieldset-content"};!function(e,t){void 0===t&&(t={});var l=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===l&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}("\n.p-fieldset-legend > a,\n.p-fieldset-legend > span {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-fieldset-toggleable .p-fieldset-legend a {\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n position: relative;\n text-decoration: none;\n}\n.p-fieldset-legend-text {\n line-height: 1;\n}\n"),m.render=function(e,t,m,C,w,I){const P=l("ripple");return n(),a("fieldset",{class:o(["p-fieldset p-component",{"p-fieldset-toggleable":m.toggleable}])},[d("legend",b,[m.toggleable?r("",!0):s(e.$slots,"legend",{key:0},(()=>[d("span",{id:I.ariaId+"_header",class:"p-fieldset-legend-text"},i(m.legend),9,y)])),m.toggleable?p((n(),a("a",g({key:1,id:I.ariaId+"_header",tabindex:"0",role:"button","aria-controls":I.ariaId+"_content","aria-expanded":!w.d_collapsed,"aria-label":I.buttonAriaLabel,onClick:t[0]||(t[0]=(...e)=>I.toggle&&I.toggle(...e)),onKeydown:t[1]||(t[1]=(...e)=>I.onKeyDown&&I.onKeyDown(...e))},m.toggleButtonProps),[d("span",{class:o(I.iconClass)},null,2),s(e.$slots,"legend",{},(()=>[d("span",v,i(m.legend),1)]))],16,_)),[[P]]):r("",!0)]),c(u,{name:"p-toggleable-content"},{default:f((()=>[p(d("div",{id:I.ariaId+"_content",class:"p-toggleable-content",role:"region","aria-labelledby":I.ariaId+"_header"},[d("div",B,[s(e.$slots,"default")])],8,x),[[h,!w.d_collapsed]])])),_:3})],2)};export{m as default};