You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";
|
|
// Utils
|
|
import { createNamespace } from '../utils';
|
|
import { inherit } from '../utils/functional';
|
|
import { BORDER_TOP } from '../utils/constant'; // Components
|
|
|
|
import Cell from '../cell';
|
|
import CellGroup from '../cell-group'; // Types
|
|
|
|
var _createNamespace = createNamespace('panel'),
|
|
createComponent = _createNamespace[0],
|
|
bem = _createNamespace[1];
|
|
|
|
function Panel(h, props, slots, ctx) {
|
|
var Content = function Content() {
|
|
return [slots.header ? slots.header() : h(Cell, {
|
|
"attrs": {
|
|
"icon": props.icon,
|
|
"label": props.desc,
|
|
"title": props.title,
|
|
"value": props.status,
|
|
"valueClass": bem('header-value')
|
|
},
|
|
"class": bem('header')
|
|
}), h("div", {
|
|
"class": bem('content')
|
|
}, [slots.default && slots.default()]), slots.footer && h("div", {
|
|
"class": [bem('footer'), BORDER_TOP]
|
|
}, [slots.footer()])];
|
|
};
|
|
|
|
return h(CellGroup, _mergeJSXProps([{
|
|
"class": bem(),
|
|
"scopedSlots": {
|
|
default: Content
|
|
}
|
|
}, inherit(ctx, true)]));
|
|
}
|
|
|
|
Panel.props = {
|
|
icon: String,
|
|
desc: String,
|
|
title: String,
|
|
status: String
|
|
};
|
|
export default createComponent(Panel); |