vue-ant-patterns
Version:
vue-ant-patterns
78 lines (72 loc) • 2.05 kB
JavaScript
import _defineProperty from 'babel-runtime/helpers/defineProperty';
import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';
import _extends from 'babel-runtime/helpers/extends';
/*
* @Description:
* @Autor: w.pengfei
* @Date: 2019-09-11 20:00:51
* @LastEditors: w.pengfei
* @LastEditTime: 2019-12-12 15:23:06
*/
import cx from 'classnames';
import generator from '../_utils/generator';
import Basic from './Basic';
import BasicProps from './BasicProps';
var BasicLayout = {
props: _extends({}, BasicProps, {
padding: String,
tagName: {
type: String,
'default': function _default() {
return 'div';
}
}
}),
data: function data() {
return {
siders: []
};
},
provide: function provide() {
var _this = this;
return {
siderHook: {
addSider: function addSider(id) {
_this.siders = [].concat(_toConsumableArray(_this.siders), [id]);
},
removeSider: function removeSider(id) {
_this.siders = _this.siders.filter(function (currentId) {
return currentId !== id;
});
}
}
};
},
render: function render(h) {
var prefixCls = this.prefixCls,
$slots = this.$slots,
$attrs = this.$attrs,
hasSider = this.hasSider,
$listeners = this.$listeners,
padding = this.padding,
tagName = this.tagName;
var divCls = cx(prefixCls, _defineProperty({}, prefixCls + '-has-sider', hasSider || this.siders.length > 0));
var divProps = {
'class': divCls,
on: $listeners,
style: padding ? { padding: padding } : null
};
return h(tagName, _extends({}, divProps, $attrs), $slots['default']);
// return <div {...divProps}>{$slots.default}</div>;
}
};
var Layout = generator({
prefixCls: 'depot-layout',
padding: ''
}, 'DLayout')(BasicLayout);
var Content = generator({
prefixCls: 'depot-layout-content',
padding: ''
}, 'DLayoutContent')(Basic);
Layout.Content = Content;
export default Layout;