UNPKG

choerodon-ui

Version:

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

284 lines (229 loc) 9.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); 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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _tslib = require("tslib"); var _react = _interopRequireDefault(require("react")); var _mobxReact = require("mobx-react"); var _mobx = require("mobx"); var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject")); var _isNil = _interopRequireDefault(require("lodash/isNil")); var _FormField2 = require("../field/FormField"); var _autobind = _interopRequireDefault(require("../_util/autobind")); var _enum = require("../core/enum"); var _utils = require("../field/utils"); var _isEmpty = _interopRequireDefault(require("../_util/isEmpty")); var _util = _interopRequireDefault(require("../overflow-tip/util")); var _singleton = require("../tooltip/singleton"); var _utils2 = require("./utils"); var Output = /*#__PURE__*/function (_FormField) { (0, _inherits2["default"])(Output, _FormField); var _super = (0, _createSuper2["default"])(Output); function Output() { (0, _classCallCheck2["default"])(this, Output); return _super.apply(this, arguments); } (0, _createClass2["default"])(Output, [{ key: "isEditable", value: function isEditable() { return false; } }, { key: "useFocusedClassName", value: function useFocusedClassName() { return false; } }, { key: "handleChange", value: function handleChange() {// noop } }, { key: "getOmitPropsKeys", value: function getOmitPropsKeys() { return (0, _get2["default"])((0, _getPrototypeOf2["default"])(Output.prototype), "getOmitPropsKeys", this).call(this).concat(['name', 'renderEmpty']); } }, { key: "getOtherPropsExcludeOutput", value: function getOtherPropsExcludeOutput(otherProps) { return otherProps; } }, { key: "getWrapperClassNamesExcludeOutput", value: function getWrapperClassNamesExcludeOutput() { return undefined; } }, { key: "getObservablePropsExcludeOutput", value: function getObservablePropsExcludeOutput() { return undefined; } }, { key: "getValueKey", value: function getValueKey(value) { if ((0, _mobx.isArrayLike)(value)) { return value.map(this.getValueKey, this).join(','); } return this.processValue(value); } }, { key: "processValue", value: function processValue(value) { var _this = this; if (!(0, _isNil["default"])(value)) { var text = (0, _isPlainObject["default"])(value) ? value : (0, _get2["default"])((0, _getPrototypeOf2["default"])(Output.prototype), "processValue", this).call(this, value); var field = this.field; return (0, _utils.processFieldValue)(text, field, { getProp: function getProp(name) { return _this.getProp(name); }, getValue: function getValue() { return _this.getValue(); }, lang: this.lang, getDisplayProp: function getDisplayProp(name) { return _this.getDisplayProp(name); } }, true, this.record, this.getContextConfig); } return ''; } }, { key: "defaultRenderer", value: function defaultRenderer(renderProps) { return (0, _utils2.defaultOutputRenderer)(renderProps); } /** * 多行单元格渲染 */ }, { key: "renderMultiLine", value: function renderMultiLine(field) { var name = this.name, record = this.record, dataSet = this.dataSet, prefixCls = this.prefixCls, renderer = this.props.renderer; var _renderMultiLine2 = (0, _utils.renderMultiLine)({ name: name, field: field, record: record, dataSet: dataSet, prefixCls: prefixCls, renderer: renderer, renderValidationResult: this.renderValidationResult, isValidationMessageHidden: this.isValidationMessageHidden, processValue: this.processValue.bind(this), tooltip: this.props.tooltip, labelTooltip: this.labelTooltip }), lines = _renderMultiLine2.lines, multipleValidateMessageLength = _renderMultiLine2.multipleValidateMessageLength; this.multipleValidateMessageLength = multipleValidateMessageLength; return lines; } }, { key: "getRenderedValue", value: function getRenderedValue() { if (this.multiple) { var _this$renderMultipleV = this.renderMultipleValues(true), tags = _this$renderMultipleV.tags; return tags; } if (this.range) { return this.renderRangeValue((0, _utils.toRangeValue)(this.getValue(), this.range)); } /** * 多行单元格渲染 */ var field = this.field; if (field && field.get('multiLine', this.record)) { return this.renderMultiLine(field); } return this.processRenderer(this.getValue()); } }, { key: "getTooltipTitle", value: function getTooltipTitle() { var _this2 = this; if (this.multiple) { var values = this.getValues(); var repeats = new Map(); var texts = values.map(function (v) { var key = _this2.getValueKey(v); var repeat = repeats.get(key) || 0; var text = _this2.processText(_this2.processValue(v)); repeats.set(key, repeat + 1); if (!(0, _isNil["default"])(text)) { return text; } return undefined; }); return texts.join(typeof this.multiple === 'string' ? this.multiple : '、'); } return this.getRenderedValue(); } }, { key: "showTooltip", value: function showTooltip(e) { if ((0, _get2["default"])((0, _getPrototypeOf2["default"])(Output.prototype), "showTooltip", this).call(this, e)) { return true; } var _this$context = this.context, getTooltip = _this$context.getTooltip, getTooltipTheme = _this$context.getTooltipTheme, getTooltipPlacement = _this$context.getTooltipPlacement; var _this$props$tooltip = this.props.tooltip, tooltip = _this$props$tooltip === void 0 ? getTooltip('output') : _this$props$tooltip; var element = this.element, field = this.field; var _this$renderMultipleV2 = this.renderMultipleValues(true), isOverflowMaxTagCount = _this$renderMultipleV2.isOverflowMaxTagCount; var title = this.getTooltipTitle(); var placement = getTooltipPlacement('output') || 'right'; var theme = getTooltipTheme('output'); if (element && !(field && field.get('multiLine', this.record)) && (tooltip === _enum.Tooltip.always || tooltip === _enum.Tooltip.overflow && (!this.multiple && (0, _util["default"])(element) || this.multiple && isOverflowMaxTagCount))) { if (title) { (0, _singleton.show)(element, { title: title, placement: placement, theme: theme }); return true; } } return false; } }, { key: "renderWrapper", value: function renderWrapper() { var result = this.getRenderedValue(); var renderEmpty = this.props.renderEmpty; var text = (0, _isEmpty["default"])(result) || (0, _mobx.isArrayLike)(result) && !result.length ? renderEmpty ? renderEmpty() : this.getContextConfig('renderEmpty')('Output') : result; var floatLabel = this.renderFloatLabel(); return floatLabel ? /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, this.getWrapperProps()), floatLabel, /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, this.getOtherProps()), text)) : /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, this.getMergedProps()), text); } }]); return Output; }(_FormField2.FormField); Output.displayName = 'Output'; // eslint-disable-next-line camelcase Output.__PRO_OUTPUT = true; Output.defaultProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _FormField2.FormField.defaultProps), {}, { suffixCls: 'output' }); (0, _tslib.__decorate)([_autobind["default"]], Output.prototype, "handleChange", null); (0, _tslib.__decorate)([_autobind["default"]], Output.prototype, "getValueKey", null); (0, _tslib.__decorate)([_autobind["default"]], Output.prototype, "defaultRenderer", null); Output = (0, _tslib.__decorate)([_mobxReact.observer], Output); var _default = Output; exports["default"] = _default; //# sourceMappingURL=Output.js.map