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(k,{emit:w}){const n=k,u=e.ref(),g=e.ref(),d=e.ref([]),p=w;e.watchEffect(()=>{g.value=n.copyText});function a(o,r){let t=n[r];return o?.[r]!==void 0&&(t=o[r]),t}function s(o,r){return o!==void 0?o:r}function i(o){o.style.height=o.lastElementChild.offsetHeight+(n.bordered&&!n.ghost?1:0)+"px",o.style.opacity="1"}function f(o){o.style.removeProperty("height"),o.style.removeProperty("opacity")}function y(o){p("update:activeKey",o),p("change",o)}function v(o){if(c(o))if(Array.isArray(n.activeKey)){const r=n.activeKey.filter(t=>t!==o);y(r)}else y(null);else Array.isArray(n.activeKey)?y([...n.activeKey,o]):y(o)}function c(o){return Array.isArray(n.activeKey)?n.activeKey.includes(o):n.activeKey===o}function C(o,r){const t=a(o,"copyText"),l=a(o,"copiedText");return d.value.includes(s(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(u.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":!o.bordered,"collapse-ghost":o.ghost}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.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:h=>a(t,"disabled")?()=>!1:v(s(t.key,l)),onKeydown:e.withKeys(h=>v(s(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:s(t.key,l),active:c(s(t.key,l))},()=>[a(t,"arrow")?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a(t,"arrow")),{key:0,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":c(s(t.key,l))}])},null,8,["class"])):(e.openBlock(),e.createElementBlock("svg",{key:1,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":c(s(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:s(t.key,l),active:c(s(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:s(t.key,l),active:c(s(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(a(t,"extra")),1)],!0)])],46,T),e.createVNode(e.Transition,{name:"collapse",onEnter:i,onAfterEnter:f,onLeave:i,onAfterLeave:f},{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:s(t.key,l),active:c(s(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:h=>B(l,s(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:u,class:"collapse-content",style:e.normalizeStyle(a(t,"contentStyle"))},[e.renderSlot(o.$slots,"content",{item:t,content:t.content,key:s(t.key,l),active:c(s(t.key,l))},()=>[e.createTextVNode(e.toDisplayString(t.content),1)],!0)],4)],2),[[e.vShow,c(s(t.key,l))]])]),_:2},1024)],6))),128))],2))}});exports.default=z;