UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

257 lines (207 loc) 9.21 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.SelectionsPosition = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _defaultTo = _interopRequireDefault(require("lodash/defaultTo")); var _isEmpty = _interopRequireDefault(require("lodash/isEmpty")); var _isUndefined = _interopRequireDefault(require("lodash/isUndefined")); var _sortBy = _interopRequireDefault(require("lodash/sortBy")); var _mobx = require("mobx"); var _mobxReact = require("mobx-react"); var _utils = require("../../../lib/configure/utils"); var _tag = _interopRequireDefault(require("../../../lib/tag")); var _UnitConvertor = require("../../../lib/_util/UnitConvertor"); var _animate = _interopRequireDefault(require("../animate")); var _icon = _interopRequireDefault(require("../icon")); var _localeContext = require("../locale-context"); var _autobind = _interopRequireDefault(require("../_util/autobind")); var SelectionsPosition; exports.SelectionsPosition = SelectionsPosition; (function (SelectionsPosition) { SelectionsPosition["side"] = "side"; SelectionsPosition["below"] = "below"; })(SelectionsPosition || (exports.SelectionsPosition = SelectionsPosition = {})); var SelectionList = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(SelectionList, _Component); var _super = (0, _createSuper2["default"])(SelectionList); function SelectionList() { var _this; (0, _classCallCheck2["default"])(this, SelectionList); _this = _super.apply(this, arguments); _this.prefixCls = (0, _utils.getProPrefixCls)('modal'); _this.unSelect = function (record) { var _this$props = _this.props, dataSet = _this$props.dataSet, treeFlag = _this$props.treeFlag; if (treeFlag === 'Y') { dataSet.treeUnSelect(record); } else { dataSet.unSelect(record); } if (!(0, _isUndefined["default"])(record.parent)) { dataSet.unSelect(record.parent); } }; _this.renderBelow = function () { var _this$props2 = _this.props, dataSet = _this$props2.dataSet, treeFlag = _this$props2.treeFlag, _this$props2$valueFie = _this$props2.valueField, valueField = _this$props2$valueFie === void 0 ? '' : _this$props2$valueFie, _this$props2$textFiel = _this$props2.textField, textField = _this$props2$textFiel === void 0 ? '' : _this$props2$textFiel; var records = treeFlag === 'Y' ? dataSet.treeSelected : dataSet.selected; if ((0, _isEmpty["default"])(records)) { return null; } var classString = "".concat(_this.prefixCls, "-selection-list-below"); var animateChildren = _this.getRecords(records).map(function (record) { return /*#__PURE__*/_react["default"].createElement("li", { key: record.get(valueField), className: "".concat(classString, "-item") }, /*#__PURE__*/_react["default"].createElement(_tag["default"], { closable: true, onClose: function onClose() { _this.unSelect(record); } }, /*#__PURE__*/_react["default"].createElement("span", null, record.get(textField)))); }); return /*#__PURE__*/_react["default"].createElement("div", { className: classString }, /*#__PURE__*/_react["default"].createElement("p", { className: "".concat(classString, "-intro") }, (0, _localeContext.$l)('Lov', 'selection_tips', { count: /*#__PURE__*/_react["default"].createElement("b", { key: "count" }, records.length) })), /*#__PURE__*/_react["default"].createElement(_animate["default"], { className: "".concat(classString, "-list"), transitionAppear: true, transitionName: "fade", component: "ul" }, animateChildren)); }; return _this; } (0, _createClass2["default"])(SelectionList, [{ key: "contentRef", value: function contentRef(node) { this.selectionNode = node; } }, { key: "getRecords", value: function getRecords(records) { return (0, _sortBy["default"])(records, function (item) { return (0, _defaultTo["default"])(item.selectedTimestamp, -1); }); } }, { key: "renderSide", value: function renderSide() { var _this2 = this; var _this$props3 = this.props, dataSet = _this$props3.dataSet, treeFlag = _this$props3.treeFlag, _this$props3$valueFie = _this$props3.valueField, valueField = _this$props3$valueFie === void 0 ? '' : _this$props3$valueFie, _this$props3$textFiel = _this$props3.textField, textField = _this$props3$textFiel === void 0 ? '' : _this$props3$textFiel, _this$props3$selectio = _this$props3.selectionProps, selectionProps = _this$props3$selectio === void 0 ? {} : _this$props3$selectio; var nodeRenderer = selectionProps.nodeRenderer, placeholder = selectionProps.placeholder; var records = treeFlag === 'Y' ? dataSet.treeSelected : dataSet.selected; var isEmptyList = (0, _isEmpty["default"])(records); if (isEmptyList && !placeholder) { return null; } var classString = "".concat(this.prefixCls, "-selection-list"); var animateChildren = this.getRecords(records).map(function (record) { return /*#__PURE__*/_react["default"].createElement("li", { key: record.get(valueField), className: "".concat(classString, "-item") }, nodeRenderer ? (0, _mobx.toJS)(nodeRenderer(record)) : /*#__PURE__*/_react["default"].createElement("span", null, record.get(textField)), /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: "cancel", onClick: function onClick() { _this2.unSelect(record); } })); }); return /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(classString, "-container"), ref: this.contentRef }, /*#__PURE__*/_react["default"].createElement("p", { className: "".concat(classString, "-intro") }, isEmptyList ? placeholder : (0, _localeContext.$l)('Lov', 'selection_tips', { count: /*#__PURE__*/_react["default"].createElement("b", { key: "count" }, records.length) })), /*#__PURE__*/_react["default"].createElement(_animate["default"], { className: "".concat(classString, "-list"), transitionAppear: true, transitionName: "slide-right", component: "ul" }, animateChildren)); } }, { key: "updateModalStyle", value: function updateModalStyle() { if (!this.modalNode && this.selectionNode) { var offsetParent = this.selectionNode.offsetParent; if (this.selectionNode && offsetParent && offsetParent.parentNode) { var parentNode = offsetParent.parentNode; this.modalNode = parentNode; var _parentNode$getBoundi = parentNode.getBoundingClientRect(), width = _parentNode$getBoundi.width; (0, _extends2["default"])(parentNode.style, { width: (0, _UnitConvertor.pxToRem)(width + 300) }); } } else if (this.modalNode && !this.selectionNode) { (0, _extends2["default"])(this.modalNode.style, { width: (0, _UnitConvertor.pxToRem)(this.modalNode.offsetWidth - 300) }); this.modalNode = null; } } }, { key: "componentDidMount", value: function componentDidMount() { this.updateModalStyle(); } }, { key: "componentDidUpdate", value: function componentDidUpdate() { this.updateModalStyle(); } }, { key: "render", value: function render() { var selectionsPosition = this.props.selectionsPosition; if (selectionsPosition === SelectionsPosition.side) { return this.renderSide(); } if (selectionsPosition === SelectionsPosition.below) { return this.renderBelow(); } return null; } }]); return SelectionList; }(_react.Component); (0, _tslib.__decorate)([_autobind["default"]], SelectionList.prototype, "contentRef", null); (0, _tslib.__decorate)([_mobx.action], SelectionList.prototype, "unSelect", void 0); SelectionList = (0, _tslib.__decorate)([_mobxReact.observer], SelectionList); var _default = SelectionList; exports["default"] = _default; //# sourceMappingURL=SelectionList.js.map