UNPKG

vue-amazing-ui

Version:

An Amazing Vue3 UI Components Library, Using TypeScript.

2 lines (1 loc) 5.15 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),b=require("../button/index.cjs"),V=require("../utils/index.cjs"),T=["onClick","onKeydown"],E={class:"collapse-header"},K={class:"collapse-extra"},N={class:"collapse-lang"},z=e.defineComponent({__name:"Collapse",props:{items:{default:()=>[]},activeKey:{default:null},bordered:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},headerStyle:{default:()=>({})},contentStyle:{default:()=>({})},collapseStyle:{default:()=>({})},arrow:{type:[Object,Function],default:void 0},showArrow:{type:Boolean,default:!0},arrowPlacement:{default:"left"},arrowStyle:{default:()=>({})},extra:{default:void 0},lang:{default:void 0},copyable:{type:Boolean,default:!1},copyProps:{default:()=>({})},copyText:{default:"Copy"},copiedText:{default:"Copied"}},emits:["update:activeKey","change"],setup(y,{emit:w}){const c=y,i=e.ref(),g=e.ref(),d=e.ref([]),p=w;e.watchEffect(()=>{g.value=c.copyText});function a(o,r){let t=c[r];return o?.[r]!==void 0&&(t=o[r]),t}function n(o,r){return o!==void 0?o:r}function f(o){o.style.height=o.lastElementChild.offsetHeight+(c.bordered&&!c.ghost?1:0)+"px",o.style.opacity="1"}function v(o){o.style.removeProperty("height"),o.style.removeProperty("opacity")}function u(o){p("update:activeKey",o),p("change",o)}function h(o){if(s(o))if(Array.isArray(c.activeKey)){const r=c.activeKey.filter(t=>t!==o);u(r)}else u(null);else Array.isArray(c.activeKey)?u([...c.activeKey,o]):u(o)}function s(o){return Array.isArray(c.activeKey)?c.activeKey.includes(o):c.activeKey===o}function C(o,r){const t=a(o,"copyText"),l=a(o,"copiedText");return d.value.includes(n(o.key,r))?l:t}const S=V.debounce(o=>{d.value=d.value.filter(r=>r!==o)},3e3);function B(o,r){navigator.clipboard.writeText(i.value[o].innerText||"").then(()=>{d.value.includes(r)||d.value.push(r),S(r)},t=>{console.log("copy failed",t)})}return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["collapse-wrap",{"collapse-borderless":!y.bordered,"collapse-ghost":y.ghost}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.items,(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["collapse-item",{"collapse-arrow-left":a(t,"arrowPlacement")==="left","collapse-arrow-right":a(t,"arrowPlacement")==="right","collapse-item-disabled":a(t,"disabled")}]),style:e.normalizeStyle(a(t,"collapseStyle")),key:l},[e.createElementVNode("div",{tabindex:"0",class:e.normalizeClass(["collapse-header-wrap",{"collapse-header-no-arrow":a(t,"showArrow")}]),style:e.normalizeStyle(a(t,"headerStyle")),onClick:k=>a(t,"disabled")?()=>!1:h(n(t.key,l)),onKeydown:e.withKeys(k=>h(n(t.key,l)),["enter"])},[a(t,"showArrow")?(e.openBlock(),e.createElementBlock("div",{key:0,class:"collapse-arrow",style:e.normalizeStyle(a(t,"arrowStyle"))},[e.renderSlot(o.$slots,"arrow",{item:t,key:n(t.key,l),active:s(n(t.key,l))},()=>[a(t,"arrow")?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a(t,"arrow")),{key:0,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":s(n(t.key,l))}])},null,8,["class"])):(e.openBlock(),e.createElementBlock("svg",{key:1,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":s(n(t.key,l))}]),focusable:"false","data-icon":"right",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",viewBox:"64 64 896 896"},[...r[0]||(r[0]=[e.createElementVNode("path",{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"},null,-1)])],2))],!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",E,[e.renderSlot(o.$slots,"header",{item:t,header:t.header,key:n(t.key,l),active:s(n(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(t.header),1)],!0)]),e.createElementVNode("div",K,[e.renderSlot(o.$slots,"extra",{item:t,extra:a(t,"extra"),key:n(t.key,l),active:s(n(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(a(t,"extra")),1)],!0)])],46,T),e.createVNode(e.Transition,{name:"collapse",onEnter:f,onAfterEnter:v,onLeave:f,onAfterLeave:v},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["collapse-content-wrap",{"collapse-copyable":a(t,"copyable")}])},[e.createElementVNode("div",N,[e.renderSlot(o.$slots,"lang",{item:t,lang:a(t,"lang"),key:n(t.key,l),active:s(n(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(a(t,"lang")),1)],!0)]),e.createVNode(e.unref(b.default),e.mergeProps({class:"collapse-copy",size:"small",type:"primary",onClick:k=>B(l,n(t.key,l))},{ref_for:!0},a(t,"copyProps")),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C(t,l)),1)]),_:2},1040,["onClick"]),e.createElementVNode("div",{ref_for:!0,ref_key:"contentRef",ref:i,class:"collapse-content",style:e.normalizeStyle(a(t,"contentStyle"))},[e.renderSlot(o.$slots,"content",{item:t,content:t.content,key:n(t.key,l),active:s(n(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(t.content),1)],!0)],4)],2),[[e.vShow,s(n(t.key,l))]])]),_:2},1024)],6))),128))],2))}});exports.default=z;