UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

78 lines (72 loc) 2.05 kB
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;