UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

137 lines (111 loc) 3.87 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props'); var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _vueTypes = require('ant-design-vue/lib/_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _propsUtil = require('ant-design-vue/lib/_util/props-util'); var _debounceHandler = require('../_utils/debounceHandler'); var _debounceHandler2 = _interopRequireDefault(_debounceHandler); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _dContainer = require('../d-container'); var _dContainer2 = _interopRequireDefault(_dContainer); var _dIconButton = require('../d-icon-button'); var _dIconButton2 = _interopRequireDefault(_dIconButton); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } // import Icon from '../d-icon'; exports['default'] = { name: 'DSider', props: { prefixCls: _vueTypes2['default'].string.def('depot-sider'), // 是否可收起 collapsible: _vueTypes2['default'].bool.def(true), // 当前收起状态 collapsed: _vueTypes2['default'].bool.def(false), direction: _vueTypes2['default'].string.def('left'), vLine: _vueTypes2['default'].bool.def(false), gutter: _vueTypes2['default'].number.def(16) }, data: function data() { var props = (0, _propsUtil.getOptionProps)(this); var state = { sCollapsed: false, collapseIng: false }; if ('collapsed' in props) { state.sCollapsed = props.collapsed; } return state; }, watch: { collapsed: function collapsed(v) { this.sCollapsed = v; } }, created: function created() { this.debounceClickHandler = (0, _debounceHandler2['default'])(this.clickHandler); }, mounted: function mounted() {}, methods: { clickHandler: function clickHandler() { this.sCollapsed = !this.sCollapsed; this.$emit('onCollapse', this.sCollapsed); }, renderButton: function renderButton() { var h = this.$createElement; var _$props = this.$props, direction = _$props.direction, gutter = _$props.gutter; var sCollapsed = this.sCollapsed; var buttonProps = { props: { icon: sCollapsed ? 'menu-unfold' : 'menu-fold', size: 'small' }, 'class': { 'sider-collapse-button': 1 }, on: { click: this.debounceClickHandler } }; return h(_dIconButton2['default'], buttonProps); } }, render: function render() { var _cx; var h = arguments[0]; var prefixCls = this.prefixCls, collapsible = this.collapsible, direction = this.direction, vLine = this.vLine, padding = this.padding, $slots = this.$slots; var cls = (0, _classnames2['default'])((_cx = {}, (0, _defineProperty3['default'])(_cx, '' + prefixCls, 1), (0, _defineProperty3['default'])(_cx, 'v-line', vLine), (0, _defineProperty3['default'])(_cx, prefixCls + '-' + direction, 1), _cx)); var divProps = { 'class': cls }; var innerProps = { 'class': prefixCls + '-inner', props: { // grow: true, } }; var collapseButton = this.renderButton(); return h( _dContainer2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([divProps, { ref: 'sideroot' }]), [h( _dContainer2['default'], innerProps, [$slots['default'], collapsible ? collapseButton : null] )] ); } }; // import { Button } from 'ant-design-vue';