@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.47 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),N=require("@aplus-frontend/antdv"),v=require("@ant-design/icons-vue"),V=require("@aplus-frontend/icon");require("../../config-provider/index.js");const w=require("./style/index.js"),E=require("../../config-provider/hooks/use-namespace.js"),b=["onClick"],T={class:"label"},z={class:"value"},I=["onClick"],O=["onClick"],$={class:"label"},D={class:"value"},q={class:"text"},A=e.defineComponent({name:"ApValueSelectCard",__name:"index",props:{options:{},selectedKeys:{default:()=>[]},highlightedKeys:{default:()=>[]},maxSelected:{default:4},maxRowDisplay:{default:4},popoverTitle:{default:""},showTitleIcon:{type:Boolean,default:!0},showCloseIcon:{type:Boolean,default:!0},showAddButton:{type:Boolean,default:!0},addButtonText:{default:""},getContainer:{type:Function,default:c=>c.parentElement||document.body},getCardStyle:{type:Function,default:()=>({})},wrapperStyle:{type:[Boolean,null,String,Object,Array]}},emits:["update:selectedKeys","update:highlightedKeys","change","select","remove","highlight"],setup(c,{expose:C,emit:k}){const o=k,s=c,{b:r}=E.useNamespace("ap-value-select-card"),S=w.default("ap-value-select-card"),K=e.ref(null),i=e.ref(!1),d=e.computed(()=>s.options),u=e.computed(()=>d.value.filter(t=>s.selectedKeys.includes(t.key))),p=t=>s.selectedKeys.includes(t),h=t=>s.highlightedKeys.includes(t),f=t=>{s.selectedKeys.includes(t)?g(t):y(t)},y=t=>{if(s.maxSelected&&s.selectedKeys.length>=s.maxSelected)return;const n=[...s.selectedKeys,t];o("update:selectedKeys",n),o("change",n),o("select",t),s.highlightedKeys.includes(t)||m(t)},g=t=>{if(s.selectedKeys.length<=1||s.highlightedKeys.length<=1&&s.highlightedKeys.includes(t))return;const n=s.selectedKeys.filter(l=>l!==t);if(o("update:selectedKeys",n),o("change",n),o("remove",t),s.highlightedKeys.includes(t)){const l=s.highlightedKeys.filter(a=>a!==t);o("update:highlightedKeys",l),o("highlight",l)}},m=t=>{let n;if(s.highlightedKeys.includes(t))if(s.highlightedKeys.length>1)n=s.highlightedKeys.filter(l=>l!==t);else return;else n=[...s.highlightedKeys,t];o("update:highlightedKeys",n),o("highlight",n)},B=t=>{t||(i.value=t)};return C({popoverVisible:i,allOptions:d,selectedOptions:u,isSelected:p,isHighlighted:h,toggleOption:f,addOption:y,removeOption:g,highlightOption:m}),(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r)(),e.unref(S)]),style:e.normalizeStyle({...t.wrapperStyle,"--ap-value-select-card-column-count":t.maxRowDisplay})},[e.createVNode(e.unref(N.Popover),{open:i.value,trigger:"click",placement:"bottomRight",arrow:!1,"get-popup-container":t.getContainer,onOpenChange:B},{content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r)("popover"))},[t.popoverTitle?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r)("title"))},[t.showTitleIcon?(e.openBlock(),e.createBlock(e.unref(v.InfoCircleFilled),{key:0,class:e.normalizeClass(e.unref(r)("title-icon"))},null,8,["class"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.popoverTitle),1)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r)("list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,class:e.normalizeClass([e.unref(r)("list-item"),"all",{select:p(l.key),disabled:t.maxSelected&&t.selectedKeys.length>=t.maxSelected}]),onClick:e.withModifiers(a=>f(l.key),["stop"])},[e.createElementVNode("div",T,[e.renderSlot(t.$slots,"popover-label",{option:l},()=>[e.createTextVNode(e.toDisplayString(l.label),1)])]),e.createElementVNode("div",z,[e.renderSlot(t.$slots,"popover-value",{option:l},()=>[e.createTextVNode(e.toDisplayString(l.value),1)])])],10,b))),128))],2)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r)("list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,ref_for:!0,ref_key:"listItemRef",ref:K,class:e.normalizeClass([e.unref(r)("list-item"),{select:h(l.key),custom:l.customClass},l.customClass]),style:e.normalizeStyle(t.getCardStyle(l.key)),onClick:e.withModifiers(a=>m(l.key),["stop"])},[t.showCloseIcon&&(!(t.highlightedKeys.length===1&&h(l.key))&&u.value.length>1)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r)("list-item-close")),onClick:e.withModifiers(a=>g(l.key),["stop"])},[e.renderSlot(t.$slots,"close-icon",{},()=>[e.createVNode(e.unref(V.IconApAdLinePoor))])],10,O)):e.createCommentVNode("",!0),e.createElementVNode("div",$,[e.renderSlot(t.$slots,"label",{option:l},()=>[e.createTextVNode(e.toDisplayString(l.label),1)])]),e.createElementVNode("div",D,[e.renderSlot(t.$slots,"value",{option:l},()=>[e.createTextVNode(e.toDisplayString(l.value),1)])])],14,I))),128)),t.showAddButton&&(!t.maxSelected||t.selectedKeys.length<t.maxSelected)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(r)("list-item"),"choose"]),onClick:n[0]||(n[0]=e.withModifiers(l=>i.value=!0,["stop"]))},[e.renderSlot(t.$slots,"add-button",{},()=>[e.createVNode(e.unref(v.PlusOutlined)),e.createElementVNode("span",q,e.toDisplayString(t.addButtonText),1)])],2)):e.createCommentVNode("",!0)],2)]),_:3},8,["open","get-popup-container"])],6))}});exports.default=A;
;