UNPKG

choerodon-ui

Version:

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

244 lines (198 loc) 8.01 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 }, true, this.record); } 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) { return this.renderMultipleValues(true); } 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: "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; if (element && !(field && field.get('multiLine', this.record)) && (tooltip === _enum.Tooltip.always || tooltip === _enum.Tooltip.overflow && (0, _util["default"])(element))) { var title = this.getRenderedValue(); if (title) { (0, _singleton.show)(element, { title: title, placement: getTooltipPlacement('output') || 'right', theme: getTooltipTheme('output') }); 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; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, this.getMergedProps()), text), this.renderFloatLabel()); } }]); 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