UNPKG

tntd

Version:

tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。

311 lines (309 loc) 11.4 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.PreviewText = void 0; var _isFunction2 = _interopRequireDefault(require("lodash/isFunction")); var _isNull2 = _interopRequireDefault(require("lodash/isNull")); var _isArray2 = _interopRequireDefault(require("lodash/isArray")); var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined")); var _react = _interopRequireWildcard(require("react")); var _tag = _interopRequireDefault(require("../tag")); var _classnames = _interopRequireDefault(require("classnames")); var _context = require("../tntd-form/context"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } var prefixCls = 'tnt-preview-text'; var isValid = function isValid(value) { return !(0, _isUndefined2["default"])(value) && !(0, _isNull2["default"])(value) && value !== ''; }; var usePlaceholder = function usePlaceholder(value) { var _useContext = (0, _react.useContext)(_context.FormContext), placeholder = _useContext.placeholder; return isValid(value) ? value : placeholder; }; var Input = function Input(props) { return _react["default"].createElement("div", { className: (0, _classnames["default"])([props.className]), style: props.style }, props.addonBefore, props.prefix, usePlaceholder(props.value), props.suffix, props.addonAfter); }; var Select = function Select(_ref) { var options = _ref.options, mode = _ref.mode, value = _ref.value, labelInValue = _ref.labelInValue, className = _ref.className, style = _ref.style; var dataSource = options || []; var placeholder = usePlaceholder(); var isMultiple = ['multiple', 'tags'].includes(mode !== null && mode !== void 0 ? mode : '') || (0, _isArray2["default"])(value); var getSelected = function getSelected() { if (isMultiple) { if (labelInValue) { return (0, _isArray2["default"])(value) ? value : []; } else { return (0, _isArray2["default"])(value) ? value.map(function (val) { return { label: val, value: val }; }) : []; } } else { if (labelInValue) { return isValid(value) ? [value] : []; } else { return isValid(value) ? [{ label: value, value: value }] : []; } } }; var getLabels = function getLabels() { var selected = getSelected(); if (!selected.length) return placeholder; return selected.map(function (_ref2, key) { var label = _ref2.label, value = _ref2.value; var _a; var text = ((_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.find(function (item) { return item.value === value; })) === null || _a === void 0 ? void 0 : _a.label) || label; return isMultiple ? _react["default"].createElement(_tag["default"], { key: key }, text || placeholder) : text || placeholder; }); }; return _react["default"].createElement("div", { className: (0, _classnames["default"])([prefixCls, className]), style: style }, getLabels()); }; var TreeSelect = function TreeSelect(_ref3) { var value = _ref3.value, multiple = _ref3.multiple, labelInValue = _ref3.labelInValue, treeData = _ref3.treeData, className = _ref3.className, style = _ref3.style; var placeholder = usePlaceholder(); var dataSource = treeData || []; var getSelected = function getSelected() { if (multiple) { if (labelInValue) { return (0, _isArray2["default"])(value) ? value : []; } else { return (0, _isArray2["default"])(value) ? value.map(function (val) { return { label: val, value: val }; }) : []; } } else { if (labelInValue) { return value ? [value] : []; } else { return value ? [{ label: value, value: value }] : []; } } }; var _findLabel = function findLabel(value, dataSource) { for (var i = 0; i < (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length); i++) { var item = dataSource[i]; if ((item === null || item === void 0 ? void 0 : item.value) === value || (item === null || item === void 0 ? void 0 : item.key) === value) { return item === null || item === void 0 ? void 0 : item.title; } else { var childLabel = _findLabel(value, item === null || item === void 0 ? void 0 : item.children); if (childLabel) return childLabel; } } }; var getLabels = function getLabels() { var selected = getSelected(); if (!(selected === null || selected === void 0 ? void 0 : selected.length)) return _react["default"].createElement(_tag["default"], null, placeholder); return selected.map(function (_ref4, key) { var value = _ref4.value, label = _ref4.label; return _react["default"].createElement(_react["default"].Fragment, null, multiple ? _react["default"].createElement(_tag["default"], { key: key }, _findLabel(value, dataSource) || label || placeholder) : _findLabel(value, dataSource) || label || placeholder); }); }; return _react["default"].createElement("div", { className: (0, _classnames["default"])([prefixCls, className]), style: style }, getLabels()); }; var Cascader = function Cascader(_ref5) { var options = _ref5.options, value = _ref5.value, className = _ref5.className, style = _ref5.style; var placeholder = usePlaceholder(); var dataSource = options || []; var getSelected = function getSelected() { return (0, _isArray2["default"])(value) ? value : []; }; var _findLabel2 = function findLabel(value, dataSource) { for (var i = 0; i < (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length); i++) { var item = dataSource[i]; if ((item === null || item === void 0 ? void 0 : item.value) === value) { return item === null || item === void 0 ? void 0 : item.label; } else { var childLabel = _findLabel2(value, item === null || item === void 0 ? void 0 : item.children); if (childLabel) return childLabel; } } }; var getLabels = function getLabels() { var selected = getSelected(); if (!(selected === null || selected === void 0 ? void 0 : selected.length)) { return placeholder; } return selected.map(function (value) { return _findLabel2(value, dataSource) || placeholder; }).join('/'); }; return _react["default"].createElement("div", { className: (0, _classnames["default"])([prefixCls, className]), style: style }, getLabels()); }; var formatMomentValue = function formatMomentValue(value, format, placeholder) { var formatDate = function formatDate(date, format) { var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; if (!date) return placeholder; if ((0, _isArray2["default"])(format)) { var _format = format[i]; if ((0, _isFunction2["default"])(_format)) { return _format(date); } return (date === null || date === void 0 ? void 0 : date.format) ? date.format(_format) : date; } else { if ((0, _isFunction2["default"])(format)) { return format(date); } return (date === null || date === void 0 ? void 0 : date.format) ? date.format(format) : date; } }; if ((0, _isArray2["default"])(value)) { return value.map(function (val, index) { return formatDate(val, format, index); }); } else { return value ? formatDate(value, format) : value || placeholder; } }; var DatePicker = function DatePicker(_ref6) { var value = _ref6.value, format = _ref6.format, showTime = _ref6.showTime, placeholder = _ref6.placeholder, className = _ref6.className; var getLabels = function getLabels() { var labels = formatMomentValue(value, format || "YYYY-MM-DD".concat(showTime ? ' HH:mm:ss' : ''), placeholder); return (0, _isArray2["default"])(labels) ? labels.join('~') : labels; }; return _react["default"].createElement("div", { className: (0, _classnames["default"])([prefixCls, className]) }, getLabels()); }; var TimePicker = function TimePicker(_ref7) { var value = _ref7.value, format = _ref7.format, placeholder = _ref7.placeholder, className = _ref7.className, style = _ref7.style; var getLabels = function getLabels() { var labels = formatMomentValue(value, format || 'HH:mm:ss', placeholder); return (0, _isArray2["default"])(labels) ? labels.join('~') : labels; }; return _react["default"].createElement("div", { className: (0, _classnames["default"])(prefixCls, className), style: style }, getLabels()); }; var MonthPicker = function MonthPicker(_ref8) { var value = _ref8.value, format = _ref8.format, placeholder = _ref8.placeholder, className = _ref8.className, style = _ref8.style; var getLabels = function getLabels() { var labels = formatMomentValue(value, format || 'YYYY-MM', placeholder); return (0, _isArray2["default"])(labels) ? labels.join('~') : labels; }; return _react["default"].createElement("div", { className: (0, _classnames["default"])(prefixCls, className), style: style }, getLabels()); }; var WeekPicker = function WeekPicker(_ref9) { var value = _ref9.value, format = _ref9.format, placeholder = _ref9.placeholder, className = _ref9.className, style = _ref9.style; var getLabels = function getLabels() { var labels = formatMomentValue(value, format || 'gggg-wo', placeholder); return (0, _isArray2["default"])(labels) ? labels.join('~') : labels; }; return _react["default"].createElement("div", { className: (0, _classnames["default"])(prefixCls, className), style: style }, getLabels()); }; var PreviewText = exports.PreviewText = { Input: Input, Select: Select, TreeSelect: TreeSelect, Cascader: Cascader, DatePicker: DatePicker, TimePicker: TimePicker, MonthPicker: MonthPicker, WeekPicker: WeekPicker, usePlaceholder: usePlaceholder }; var _default = exports["default"] = PreviewText;