vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.63 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({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,_ui.getConfig)().buttonGroup.size||(0,_ui.getConfig)().size}},emits:["click"],setup(n,e){const{slots:o,emit:u}=e;var t=_xeUtils.default.uniqueId(),i=(0,_vue.reactive)({});const r={},s={xID:t,props:n,context:e,reactData:i,getComputeMaps:()=>r},a=((0,_ui.useSize)(n),(0,_ui.usePermission)(n))["computePermissionInfo"],l={dispatchEvent(e,t,i){u(e,(0,_ui.createEvent)(i,{$buttonGroup:s},t))}};Object.assign(s,l,{handleClick(e,t){var i=n["options"];const u=e["name"];i=i?i.find(e=>e.name===u):null;l.dispatchEvent("click",Object.assign(Object.assign({},e),{option:i}),t)}});return s.renderVN=()=>{var{className:e,options:t,vertical:i}=n,u=a.value,r=o.default;return u.visible?(0,_vue.h)("div",{class:["vxe-button-group",e?_xeUtils.default.isFunction(e)?e({$buttonGroup:s}):e:"",{"is--vertical":i}]},r?r({}):t?t.map((e,t)=>(0,_vue.h)(_button.default,Object.assign({key:t},e))):[]):(0,_ui.renderEmptyElement)(s)},(0,_vue.provide)("$xeButtonGroup",s),s},render(){return this.renderVN()}});