UNPKG

@aliretail/react-whale-checked-all

Version:
138 lines (107 loc) 5.29 kB
"use strict"; 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;