@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
171 lines (136 loc) • 7.87 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {};
exports.default = void 0;
var _vue = require("vue");
var _tslib = require("tslib");
var _Table = _interopRequireWildcard(require("./Table"));
var _interface = require("./interface");
Object.keys(_interface).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _interface[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _interface[key];
}
});
});
var _propsUtil = require("../_util/props-util");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var Table = (0, _vue.defineComponent)({
name: 'ATable',
Column: _Table.default.Column,
ColumnGroup: _Table.default.ColumnGroup,
MoreHandler: _Table.default.MoreHandler,
inheritAttrs: false,
props: _Table.defaultTableProps,
methods: {
normalize: function normalize() {
var _this = this;
var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var flattenElements = (0, _propsUtil.flattenChildren)(elements);
var columns = [];
flattenElements.forEach(function (element) {
var _a, _b, _c, _d;
if (!element) {
return;
}
var key = (0, _propsUtil.getKey)(element);
var style = ((_a = element.props) === null || _a === void 0 ? void 0 : _a.style) || {};
var cls = ((_b = element.props) === null || _b === void 0 ? void 0 : _b.class) || '';
var props = (0, _propsUtil.getPropsData)(element);
var _e = element.children || {},
children = _e.default,
restSlots = (0, _tslib.__rest)(_e, ["default"]);
var column = _extends(_extends(_extends({}, restSlots), props), {
style: style,
class: cls
});
if (key) {
column.key = key;
}
if ((_c = element.type) === null || _c === void 0 ? void 0 : _c.__ANT_TABLE_COLUMN_GROUP) {
column.children = _this.normalize(typeof children === 'function' ? children() : children);
} else {
var customRender = (_d = element.children) === null || _d === void 0 ? void 0 : _d.default;
column.customRender = column.customRender || customRender;
}
columns.push(column);
});
return columns;
},
updateColumns: function updateColumns() {
var _this2 = this;
var cols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var columns = [];
var $slots = this.$slots;
cols.forEach(function (col) {
var _col$slots = col.slots,
slots = _col$slots === void 0 ? {} : _col$slots,
restProps = (0, _tslib.__rest)(col, ["slots"]);
var column = _extends({}, restProps);
Object.keys(slots).forEach(function (key) {
var name = slots[key];
if (column[key] === undefined && $slots[name]) {
column[key] = $slots[name];
}
}); // if (slotScopeName && $scopedSlots[slotScopeName]) {
// column.customRender = column.customRender || $scopedSlots[slotScopeName]
// }
if (col.children) {
column.children = _this2.updateColumns(column.children);
}
columns.push(column);
});
return columns;
}
},
render: function render() {
var normalize = this.normalize,
$slots = this.$slots;
var props = _extends(_extends({}, (0, _propsUtil.getOptionProps)(this)), this.$attrs);
var columns = props.columns ? this.updateColumns(props.columns) : normalize((0, _propsUtil.getSlot)(this));
var title = props.title,
footer = props.footer;
var slotTitle = $slots.title,
slotFooter = $slots.footer,
_$slots$expandedRowRe = $slots.expandedRowRender,
expandedRowRender = _$slots$expandedRowRe === void 0 ? props.expandedRowRender : _$slots$expandedRowRe,
expandIcon = $slots.expandIcon,
moreHandler = $slots.moreHandler;
title = title || slotTitle;
footer = footer || slotFooter;
var tProps = _extends(_extends({}, props), {
columns: columns,
title: title,
footer: footer,
expandedRowRender: expandedRowRender,
expandIcon: this.$props.expandIcon || expandIcon
});
return (0, _vue.createVNode)(_Table.default, _objectSpread(_objectSpread({}, tProps), {}, {
"ref": "table"
}), {
moreHandler: moreHandler
});
}
});
/* istanbul ignore next */
Table.install = function (app) {
app.component(Table.name, Table);
app.component(Table.Column.name, Table.Column);
app.component(Table.MoreHandler.name, Table.MoreHandler);
app.component(Table.ColumnGroup.name, Table.ColumnGroup);
return app;
};
var _default = Table;
exports.default = _default;