primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 5.12 kB
JavaScript
import e from"primevue/icons/minus";import t from"primevue/icons/plus";import n from"primevue/ripple";import{UniqueComponentId as o}from"primevue/utils";import r from"primevue/basecomponent";import{useStyle as l}from"primevue/usestyle";import{resolveDirective as a,openBlock as i,createElementBlock as p,mergeProps as c,createElementVNode as s,renderSlot as u,normalizeClass as d,toDisplayString as g,createCommentVNode as f,withDirectives as m,createBlock as b,resolveDynamicComponent as y,normalizeProps as h,guardReactiveProps as v,createVNode as P,Transition as O,withCtx as x,vShow as _}from"vue";var j=l("\n.p-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.p-panel-title {\n line-height: 1;\n}\n\n.p-panel-header-icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n",{name:"panel",manual:!0}),w={name:"Panel",extends:{name:"BasePanel",extends:r,props:{header:String,toggleable:Boolean,collapsed:Boolean,toggleButtonProps:{type:null,default:null}},css:{classes:{root:function(e){return["p-panel p-component",{"p-panel-toggleable":e.props.toggleable}]},header:"p-panel-header",title:"p-panel-title",icons:"p-panel-icons",toggler:"p-panel-header-icon p-panel-toggler p-link",toggleablecontent:"p-toggleable-content",content:"p-panel-content",footer:"p-panel-footer"},loadStyle:j.load},provide:function(){return{$parentInstance:this}}},emits:["update:collapsed","toggle"],data:function(){return{d_collapsed:this.collapsed}},watch:{collapsed:function(e){this.d_collapsed=e}},methods:{toggle:function(e){this.d_collapsed=!this.d_collapsed,this.$emit("update:collapsed",this.d_collapsed),this.$emit("toggle",{originalEvent:e,value:this.d_collapsed})},onKeyDown:function(e){"Enter"!==e.code&&"Space"!==e.code||(this.toggle(e),e.preventDefault())}},computed:{ariaId:function(){return o()},buttonAriaLabel:function(){return this.toggleButtonProps&&this.toggleButtonProps["aria-label"]?this.toggleButtonProps["aria-label"]:this.header}},components:{PlusIcon:t,MinusIcon:e},directives:{ripple:n}};function S(e){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S(e)}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e,t,n){return(t=D(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){var t=k(e,"string");return"symbol"===S(t)?t:String(t)}function k(e,t){if("object"!==S(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==S(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var E=["id"],K=["id","aria-label","aria-controls","aria-expanded"],A=["id","aria-labelledby"];w.render=function(e,t,n,o,r,l){var j=a("ripple");return i(),p("div",c({class:e.cx("root")},e.ptm("root"),{"data-pc-name":"panel"}),[s("div",c({class:e.cx("header")},e.ptm("header")),[u(e.$slots,"header",{id:l.ariaId+"_header",class:d(e.cx("title"))},(function(){return[e.header?(i(),p("span",c({key:0,id:l.ariaId+"_header",class:e.cx("title")},e.ptm("title")),g(e.header),17,E)):f("",!0)]})),s("div",c({class:e.cx("icons")},e.ptm("icons")),[u(e.$slots,"icons"),e.toggleable?m((i(),p("button",c({key:0,id:l.ariaId+"_header",type:"button",role:"button",class:e.cx("toggler"),"aria-label":l.buttonAriaLabel,"aria-controls":l.ariaId+"_content","aria-expanded":!r.d_collapsed,onClick:t[0]||(t[0]=function(){return l.toggle&&l.toggle.apply(l,arguments)}),onKeydown:t[1]||(t[1]=function(){return l.onKeyDown&&l.onKeyDown.apply(l,arguments)})},$($({},e.toggleButtonProps),e.ptm("toggler"))),[u(e.$slots,"togglericon",{collapsed:r.d_collapsed},(function(){return[(i(),b(y(r.d_collapsed?"PlusIcon":"MinusIcon"),h(v(e.ptm("togglericon"))),null,16))]}))],16,K)),[[j]]):f("",!0)],16)],16),P(O,c({name:"p-toggleable-content"},e.ptm("transition")),{default:x((function(){return[m(s("div",c({id:l.ariaId+"_content",class:e.cx("toggleablecontent"),role:"region","aria-labelledby":l.ariaId+"_header"},e.ptm("toggleablecontent")),[s("div",c({class:e.cx("content")},e.ptm("content")),[u(e.$slots,"default")],16),e.$slots.footer?(i(),p("div",c({key:0,class:e.cx("footer")},e.ptm("footer")),[u(e.$slots,"footer")],16)):f("",!0)],16,A),[[_,!r.d_collapsed]])]})),_:3},16)],16)};export{w as default};