UNPKG

vue-amazing-ui

Version:

An Amazing Vue3 UI Components Library, Using TypeScript.

2 lines (1 loc) 5.13 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),V=require("../button/index.cjs"),b=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:{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:g}){const n=k,u=e.ref(),w=e.ref(),d=e.ref([]),p=g;e.watchEffect(()=>{w.value=n.copyText});function a(t,r){let o=n[r];return(t==null?void 0:t[r])!==void 0&&(o=t[r]),o}function s(t,r){return t!==void 0?t:r}function i(t){t.style.height=t.lastElementChild.offsetHeight+(n.bordered&&!n.ghost?1:0)+"px",t.style.opacity="1"}function f(t){t.style.removeProperty("height"),t.style.removeProperty("opacity")}function y(t){p("update:activeKey",t),p("change",t)}function v(t){if(c(t))if(Array.isArray(n.activeKey)){const r=n.activeKey.filter(o=>o!==t);y(r)}else y(null);else Array.isArray(n.activeKey)?y([...n.activeKey,t]):y(t)}function c(t){return Array.isArray(n.activeKey)?n.activeKey.includes(t):n.activeKey===t}function C(t,r){const o=a(t,"copyText"),l=a(t,"copiedText");return d.value.includes(s(t.key,r))?l:o}const S=b.debounce(t=>{d.value=d.value.filter(r=>r!==t)},3e3);function B(t,r){navigator.clipboard.writeText(u.value[t].innerText||"").then(()=>{d.value.includes(r)||d.value.push(r),S(r)},o=>{console.log("copy failed",o)})}return(t,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["m-collapse",{"collapse-borderless":!t.bordered,"collapse-ghost":t.ghost}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["collapse-item",{"collapse-arrow-left":a(o,"arrowPlacement")==="left","collapse-arrow-right":a(o,"arrowPlacement")==="right","collapse-item-disabled":a(o,"disabled")}]),style:e.normalizeStyle(a(o,"collapseStyle")),key:l},[e.createElementVNode("div",{tabindex:"0",class:e.normalizeClass(["collapse-header-wrap",{"collapse-header-no-arrow":a(o,"showArrow")}]),style:e.normalizeStyle(a(o,"headerStyle")),onClick:h=>a(o,"disabled")?()=>!1:v(s(o.key,l)),onKeydown:e.withKeys(h=>v(s(o.key,l)),["enter"])},[a(o,"showArrow")?(e.openBlock(),e.createElementBlock("div",{key:0,class:"collapse-arrow",style:e.normalizeStyle(a(o,"arrowStyle"))},[e.renderSlot(t.$slots,"arrow",{item:o,key:s(o.key,l),active:c(s(o.key,l))},()=>[a(o,"arrow")?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a(o,"arrow")),{key:0,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":c(s(o.key,l))}])},null,8,["class"])):(e.openBlock(),e.createElementBlock("svg",{key:1,class:e.normalizeClass(["arrow-svg",{"arrow-rotate":c(s(o.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(t.$slots,"header",{item:o,header:o.header,key:s(o.key,l),active:c(s(o.key,l))},()=>[e.createTextVNode(e.toDisplayString(o.header),1)],!0)]),e.createElementVNode("div",K,[e.renderSlot(t.$slots,"extra",{item:o,extra:a(o,"extra"),key:s(o.key,l),active:c(s(o.key,l))},()=>[e.createTextVNode(e.toDisplayString(a(o,"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(o,"copyable")}])},[e.createElementVNode("div",N,[e.renderSlot(t.$slots,"lang",{item:o,lang:a(o,"lang"),key:s(o.key,l),active:c(s(o.key,l))},()=>[e.createTextVNode(e.toDisplayString(a(o,"lang")),1)],!0)]),e.createVNode(e.unref(V.default),e.mergeProps({class:"collapse-copy",size:"small",type:"primary",onClick:h=>B(l,s(o.key,l)),ref_for:!0},a(o,"copyProps")),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C(o,l)),1)]),_:2},1040,["onClick"]),e.createElementVNode("div",{ref_for:!0,ref_key:"contentRef",ref:u,class:"collapse-content",style:e.normalizeStyle(a(o,"contentStyle"))},[e.renderSlot(t.$slots,"content",{item:o,content:o.content,key:s(o.key,l),active:c(s(o.key,l))},()=>[e.createTextVNode(e.toDisplayString(o.content),1)],!0)],4)],2),[[e.vShow,c(s(o.key,l))]])]),_:2},1024)],6))),128))],2))}});exports.default=z;