vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.6 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeButtonGroup",props:{options:Array,mode:String,status:String,round:Boolean,vertical:Boolean,circle:Boolean,align:String,className:[String,Function],disabled:Boolean,permissionCode:[String,Number],size:{type:String,default:()=>(0,_core.getConfig)().buttonGroup.size||(0,_core.getConfig)().size}},emits:["click"],setup(n,e){const{slots:u,emit:o}=e;var t=_xeUtils.default.uniqueId(),r=(0,_vue.reactive)({});const i={},s={xID:t,props:n,context:e,reactData:r,getComputeMaps:()=>i},a=((0,_core.useSize)(n),(0,_core.usePermission)(n))["computePermissionInfo"],l={dispatchEvent(e,t,r){o(e,(0,_core.createEvent)(r,{$buttonGroup:s},t))}};Object.assign(s,l,{handleClick(e,t){var r=n["options"];const o=e["name"];r=r?r.find(e=>e.name===o):null;l.dispatchEvent("click",Object.assign(Object.assign({},e),{option:r}),t)}});return s.renderVN=()=>{var{className:e,options:t,vertical:r}=n,o=a.value,i=u.default;return o.visible?(0,_vue.h)("div",{class:["vxe-button-group",e?_xeUtils.default.isFunction(e)?e({$buttonGroup:s}):e:"",{"is--vertical":r}]},i?i({}):t?t.map((e,t)=>(0,_vue.h)(_button.default,Object.assign({key:t},e))):[]):(0,_vue.createCommentVNode)()},(0,_vue.provide)("$xeButtonGroup",s),s},render(){return this.renderVN()}});