vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.67 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_loading=_interopRequireDefault(require("../../loading/src/loading")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeLayoutAside",props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}},emits:[],setup(o,e){const{slots:l,emit:u}=e;var i=_xeUtils.default.uniqueId();const d=(0,_vue.ref)(),n=(0,_ui.useSize)(o)["computeSize"];var t=(0,_vue.reactive)({});const r={refElem:d},p=(0,_vue.computed)(()=>{var{width:e,collapsed:i,collapseWidth:t}=o;if(i){if(t)return(0,_dom.toCssUnit)(t)}else if(e)return(0,_dom.toCssUnit)(e);return""}),a={computeSize:n},s={xID:i,props:o,context:e,reactData:t,getRefMaps:()=>r,getComputeMaps:()=>a};Object.assign(s,{dispatchEvent:(e,i,t)=>{u(e,(0,_ui.createEvent)(t,{$layoutAside:s},i))}},{});return(0,_vue.provide)("$xeLayoutAside",s),s.renderVN=()=>{var{width:e,collapsed:i,loading:t,padding:u}=o,r=p.value,a=n.value,s=l.default;return(0,_vue.h)("aside",{ref:d,class:["vxe-layout-aside",{["size--"+a]:a,"is--padding":u,"is--default-width":!e,"is--collapse":i,"is--loading":t}],style:r?{width:r}:null},[(0,_vue.h)("div",{class:"vxe-layout-aside--inner"},s?s({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:t})])},s},render(){return this.renderVN()}});