nowrapper-json
Version:
nowrapper
216 lines (175 loc) • 7.51 kB
JavaScript
var _typeof = require("@babel/runtime/helpers/typeof");
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(["exports", "@babel/runtime/helpers/defineProperty", "react"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("@babel/runtime/helpers/defineProperty"), require("react"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.defineProperty, global.react);
global.util = mod.exports;
}
})((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object" ? globalThis : (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" ? self : this, function (_exports, _defineProperty2, _react) {
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports.formatValue = formatValue;
_exports.formatArray = formatArray;
_exports.formatBoolValue = formatBoolValue;
_exports.formatArrayNumber = formatArrayNumber;
_exports.getValueProps = getValueProps;
_exports.formatDate = formatDate;
_exports.log = log;
_exports.getCleanProps = getCleanProps;
_exports.formatNumber = formatNumber;
_exports.transferNumber = transferNumber;
_exports.insetify = _exports.renderOption = _exports.renderValue = _exports.noop = void 0;
_defineProperty2 = _interopRequireDefault(_defineProperty2);
_react = _interopRequireDefault(_react);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var noop = function noop(v) {
return v;
};
_exports.noop = noop;
var isEmpty = function isEmpty(value) {
return [undefined, null].indexOf(value) !== -1;
};
var inpuNumberReg = /(\-?\d+\.\d+)|(\-?\d+)|Infinity/;
var renderValue = function renderValue(value) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _opts$format = opts.format,
format = _opts$format === void 0 ? noop : _opts$format;
var hasDefaultValue = "defaultValue" in opts;
var defaultEmptyValue = hasDefaultValue ? opts.defaultValue : null;
if (isEmpty(value)) return defaultEmptyValue; // 空值直接返回
if (Array.isArray(value)) {
// 数组需要判断版本号返回
var arrValue = value.map(function (valItem, idx) {
return _react["default"].createElement("span", {
key: "".concat(valItem).concat(idx),
className: "multi-value-item"
}, valItem);
});
return _react["default"].createElement("span", {
className: "multi-value-item-wrapper"
}, arrValue);
}
var singleFormatValue = format(value);
return _react["default"].createElement("span", {
className: "multi-value-item"
}, singleFormatValue);
};
_exports.renderValue = renderValue;
var renderOption = function renderOption() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
// 处理
var value = formatValue(props.value); // 格式化值
var arrValue = [].concat(value); // 处理多选, 如checkbox
if (Array.isArray(props.dataSource) || Array.isArray(props.options)) {
// dataSource模式
var dataSource = props.dataSource || props.options;
var hitLabel = [];
dataSource.forEach(function (item) {
if (arrValue.indexOf(item.value) !== -1) {
hitLabel.push(item.label);
}
});
return renderValue(hitLabel);
} else if (Array.isArray(props.children)) {
// children模式
var _hitLabel = [];
props.children.forEach(function (item) {
if (item.props && item.props.children && arrValue.indexOf(item.props.value) !== -1) {
_hitLabel.push(item.props.children);
}
});
return renderValue(_hitLabel);
}
return null;
};
_exports.renderOption = renderOption;
var insetify = function insetify(props) {
var insetProps = {};
var _ref = props || {},
className = _ref.className,
inset = _ref.inset;
if (inset) insetProps.className = "".concat(className || "", " inset-component");
return insetProps;
};
_exports.insetify = insetify;
function getCleanProps(props) {
var otherProps = _objectSpread({}, props);
delete otherProps.status;
delete otherProps.value;
delete otherProps.inset;
delete otherProps.error;
return otherProps;
}
function getValueProps(props) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var valueProps = {};
var _opts$keyname = opts.keyname,
keyname = _opts$keyname === void 0 ? "value" : _opts$keyname,
_opts$format2 = opts.format,
format = _opts$format2 === void 0 ? noop : _opts$format2; // @fix
var defaultValue = "defaultValue" in opts ? opts.defaultValue : undefined;
if ("value" in props) {
var propVal = props.value; // null
if ([null, undefined].indexOf(propVal) !== -1) {
valueProps[keyname] = format(defaultValue);
} else {
valueProps[keyname] = format(propVal);
}
}
return valueProps;
}
function formatValue(value) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var hasDefaultValue = "defaultValue" in opts;
var defaultEmptyValue = hasDefaultValue ? opts.defaultValue : null;
if (isEmpty(value)) return defaultEmptyValue;
return value; // 0 或 []直接返回
}
function formatArray(value) {
if (isEmpty(value)) return [];
return value;
}
function formatArrayNumber(value) {
if (isEmpty(value)) return undefined;
return value.map(function (item) {
return formatNumber(item);
});
}
function formatBoolValue(value) {
if (isEmpty(value)) return undefined;
if ("".concat(value) === "true") {
return true;
} else if ("".concat(value) === "false") {
return false;
}
return false;
}
function formatDate(value) {
if (isEmpty(value)) return undefined;
if (Next && Next.moment) {
return Next.moment(value).format("YYYY-MM-DD");
}
return value;
}
function log() {}
function formatNumber(value) {
if (isEmpty(value)) return undefined;
if (["0", 0, ""].indexOf(value) !== -1) return 0;
return Number(value);
}
function transferNumber(value) {
if (isEmpty(value)) return undefined;
if (value === "") return undefined;
return String(value).match(inpuNumberReg) && String(value).match(inpuNumberReg)[0] ? Number(String(value).match(inpuNumberReg)[0]) : undefined;
}
});