@aliretail/react-whale-checked-all
Version:
whale-checked-all
138 lines (107 loc) • 5.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _checkbox = _interopRequireDefault(require("@alifd/next/lib/checkbox"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
require("./index.scss");
var _excluded = ["className", "value", "dataSource", "disabled", "readOnly"];
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; }
var CheckboxGroup = _checkbox["default"].Group;
var WhaleCheckedAll = /*#__PURE__*/function (_React$Component) {
(0, _inheritsLoose2["default"])(WhaleCheckedAll, _React$Component);
function WhaleCheckedAll() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
_this.onChange = function (selectedItems) {
var onChange = _this.props.onChange;
onChange(selectedItems);
};
_this.handleChangeAll = function (v) {
var _this$props = _this.props,
onChange = _this$props.onChange,
dataSource = _this$props.dataSource;
if (v) {
onChange(dataSource.map(function (i) {
if (typeof i === 'object') {
return i.value;
}
return i;
}));
} else {
onChange([]);
}
};
_this.renderReadOnlyLabel = function () {
var _this$props2 = _this.props,
value = _this$props2.value,
dataSource = _this$props2.dataSource;
var labels = [];
dataSource.forEach(function (i) {
if (typeof i === 'object') {
if (value && value.indexOf(i.value) > -1) {
labels.push(i.label);
}
} else if (value && value.indexOf(i) > -1) {
labels.push(i);
}
});
return /*#__PURE__*/React.createElement("div", null, labels.join('、'));
};
return _this;
}
var _proto = WhaleCheckedAll.prototype;
_proto.render = function render() {
var _cx;
var _this$props3 = this.props,
className = _this$props3.className,
_this$props3$value = _this$props3.value,
value = _this$props3$value === void 0 ? [] : _this$props3$value,
dataSource = _this$props3.dataSource,
disabled = _this$props3.disabled,
readOnly = _this$props3.readOnly,
others = (0, _objectWithoutPropertiesLoose2["default"])(_this$props3, _excluded); // 用于判断是否全选
var indeterminate = value.length > 0 && value.length < dataSource.length;
var classes = (0, _classnames["default"])((_cx = {
'whale-checked-all': true
}, _cx[className] = !!className, _cx['biz-whaleCheckedAll'] = true, _cx));
if (readOnly) {
return /*#__PURE__*/React.createElement("div", {
className: classes
}, this.renderReadOnlyLabel());
}
return /*#__PURE__*/React.createElement("div", {
className: classes
}, /*#__PURE__*/React.createElement(_checkbox["default"], {
className: "whale-checked-all-all",
checked: value.length === dataSource.length,
indeterminate: indeterminate,
onChange: this.handleChangeAll,
disabled: disabled
}, "\u5168\u90E8"), /*#__PURE__*/React.createElement(CheckboxGroup, (0, _extends2["default"])({
value: value,
dataSource: dataSource,
onChange: this.onChange,
disabled: disabled
}, others)));
};
return WhaleCheckedAll;
}(React.Component);
WhaleCheckedAll.displayName = 'WhaleCheckedAll';
WhaleCheckedAll.defaultProps = {
value: [],
dataSource: [],
onChange: function onChange() {},
disabled: false,
readOnly: false
};
var _default = WhaleCheckedAll;
exports["default"] = _default;