choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
219 lines (169 loc) • 5.32 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.minColumnWidth = minColumnWidth;
exports.columnWidth = columnWidth;
exports["default"] = exports.defaultMinWidth = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _mobx = require("mobx");
var _enum = require("./enum");
var _enum2 = require("../field/enum");
function _createSuper(Derived) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
return true;
} catch (e) {
return false;
}
}
return function () {
var Super = (0, _getPrototypeOf2["default"])(Derived),
result;
if (isNativeReflectConstruct()) {
var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return (0, _possibleConstructorReturn2["default"])(this, result);
};
}
var defaultMinWidth = 100;
/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */
exports.defaultMinWidth = defaultMinWidth;
var Column =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(Column, _Component);
var _super = _createSuper(Column);
function Column() {
(0, _classCallCheck2["default"])(this, Column);
return _super.apply(this, arguments);
}
return Column;
}(_react.Component);
exports["default"] = Column;
Column.propTypes = {
/**
* 列对照的字段名
*/
name: _propTypes["default"].string,
/**
* 列宽
* 不推荐给所有列设置宽度,而是给某一列不设置宽度达到自动宽度的效果
*/
width: _propTypes["default"].number,
/**
* 最小列宽
*/
minWidth: _propTypes["default"].number,
/**
* 列头
*/
header: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element, _propTypes["default"].func]),
/**
* 列脚
*/
footer: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element, _propTypes["default"].func]),
/**
* 单元格渲染回调
*/
renderer: _propTypes["default"].func,
/**
* 编辑器
*/
editor: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func, _propTypes["default"].bool]),
/**
* 是否锁定
* 可选值: false | true | 'left' | 'right'
* @default false
*/
lock: _propTypes["default"].oneOf([_enum.ColumnLock.left, _enum.ColumnLock.right, true, false]),
/**
* 文字对齐方式
* 可选值: 'left' | 'center' | 'right'
*/
align: _propTypes["default"].oneOf([_enum.ColumnAlign.left, _enum.ColumnAlign.center, _enum.ColumnAlign.right]),
/**
* 是否可调整宽度
* @default true
*/
resizable: _propTypes["default"].bool,
/**
* 是否可排序
* @default false
*/
sortable: _propTypes["default"].bool,
/**
* 是否可隐藏,设为false时不会出现在列过滤选项中
* @default true
*/
hideable: _propTypes["default"].bool,
/**
* 是否可排序
* @default false
*/
/**
* 列头提示信息
*/
help: _propTypes["default"].string,
/**
* 显示提示信息的方式
*
*/
showHelp: _propTypes["default"].oneOf([_enum2.ShowHelp.tooltip, _enum2.ShowHelp.newLine, _enum2.ShowHelp.none]),
hidden: _propTypes["default"].bool,
colSpan: _propTypes["default"].number,
rowSpan: _propTypes["default"].number,
children: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object])
};
Column.__PRO_TABLE_COLUMN = true;
Column.defaultProps = {
hidden: false,
lock: false,
resizable: true,
sortable: false,
hideable: true,
minWidth: defaultMinWidth,
showHelp: _enum2.ShowHelp.tooltip
};
function minColumnWidth(col) {
var hidden = (0, _mobx.get)(col, 'hidden');
if (hidden) {
return 0;
}
var width = (0, _mobx.get)(col, 'width');
var min = (0, _mobx.get)(col, 'minWidth');
var minWidth = min === undefined ? defaultMinWidth : min;
if (width === undefined) {
return minWidth;
}
return Math.min(width, minWidth);
}
function columnWidth(col) {
var hidden = (0, _mobx.get)(col, 'hidden');
if (hidden) {
return 0;
}
var width = (0, _mobx.get)(col, 'width');
if (width === undefined) {
var minWidth = (0, _mobx.get)(col, 'minWidth');
if (minWidth === undefined) {
return defaultMinWidth;
}
return minWidth;
}
return width;
}
//# sourceMappingURL=Column.js.map