shineout
Version:
Shein 前端组件库
193 lines (134 loc) • 4.73 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.isFirefox = exports.isMacOS = exports.isEnterPress = exports.isLink = exports.isInseparable = exports.isPercent = exports.isOne = exports.isMergeable = exports.isBuffer = exports.isEmpty = exports.isInPath = exports.isValidKey = exports.isPromise = exports.isSymbol = exports.isSet = exports.isMap = exports.isRegexp = exports.isError = exports.isDate = exports.isString = exports.isObject = exports.isNumber = exports.isFunc = exports.isNan = exports.isNotUndef = exports.isUndef = exports.isArray = void 0;
var _react = _interopRequireDefault(require("react"));
var _func = require("./func");
var nameIs = (0, _func.curry)(function (name, val) {
if (typeof val === 'object') {
return val && val.constructor && val.constructor.name === name;
}
return false;
}); // eslint-disable-next-line
var isArray = Array.isArray;
exports.isArray = isArray;
var isUndef = function isUndef(v) {
return v == null;
};
exports.isUndef = isUndef;
var isNotUndef = function isNotUndef(v) {
return v != null;
}; // eslint-disable-next-line
exports.isNotUndef = isNotUndef;
var isNan = function isNan(a) {
return a !== a;
};
exports.isNan = isNan;
var isFunc = function isFunc(f) {
return typeof f === 'function';
};
exports.isFunc = isFunc;
var isNumber = function isNumber(n) {
return typeof n === 'number';
};
exports.isNumber = isNumber;
var isObject = function isObject(val) {
return !!val && typeof val === 'object' && !isArray(val);
};
exports.isObject = isObject;
var isString = function isString(s) {
return typeof s === 'string';
};
exports.isString = isString;
var isDate = function isDate(val) {
return val instanceof Date;
};
exports.isDate = isDate;
var isError = function isError(val) {
return val instanceof Error;
};
exports.isError = isError;
var isRegexp = function isRegexp(val) {
return val instanceof RegExp;
};
exports.isRegexp = isRegexp;
var isMap = nameIs('Map');
exports.isMap = isMap;
var isSet = nameIs('Set');
exports.isSet = isSet;
var isSymbol = nameIs('Symbol');
exports.isSymbol = isSymbol;
var isPromise = function isPromise(p) {
return p && (nameIs('Promise', p) || isFunc(p.then));
};
exports.isPromise = isPromise;
var isValidKey = function isValidKey(key, object) {
return key in object;
};
exports.isValidKey = isValidKey;
var isInPath = function isInPath(val, path) {
if (val === path) return true;
return path.indexOf(val + "[") === 0 || path.indexOf(val + ".") === 0;
};
exports.isInPath = isInPath;
var isEmpty = function isEmpty(val) {
if (val == null) return true;
if (isNan(val)) return true;
if (val.length !== undefined) return val.length === 0;
if (val instanceof Date) return false;
if (typeof val === 'object') return Object.keys(val).length === 0;
return false;
};
exports.isEmpty = isEmpty;
var isBuffer = function isBuffer(val) {
if (val && typeof val === 'object' && val.constructor && typeof val.constructor.isBuffer === 'function') {
return val.constructor.isBuffer(val);
}
return false;
};
exports.isBuffer = isBuffer;
var isMergeable = function isMergeable(val) {
if (!isObject(val)) return false;
var fns = [isDate, isError, isRegexp, isMap, isSet, isBuffer];
for (var i = 0; i < fns.length; i++) {
if (fns[i](val)) return false;
}
return true;
};
exports.isMergeable = isMergeable;
var isOne = function isOne(val) {
if (val === 1) return true;
return typeof val === 'string' && val.indexOf('.') !== -1 && parseFloat(val) === 1;
}; // /\d{1,3}%$/
exports.isOne = isOne;
var isPercent = function isPercent(n) {
return typeof n === 'string' && /\d{1,3}%$/.test(n);
};
exports.isPercent = isPercent;
var isInseparable = function isInseparable(val) {
return Object(val) !== val || isFunc(val) || isDate(val) || isError(val) || isSet(val) || isMap(val) || isRegexp(val);
};
exports.isInseparable = isInseparable;
var isLink = function isLink(el) {
if (typeof el === 'object') {
if (!_react.default.isValidElement(el)) return false;
if (!el.type) return false;
if (el.type === 'a') return true;
if (el.props && el.props.to) return true;
}
return false;
};
exports.isLink = isLink;
var isEnterPress = function isEnterPress(e) {
if (typeof e !== 'object') return false;
return e.keyCode === 13;
};
exports.isEnterPress = isEnterPress;
var isMacOS = function isMacOS() {
return /macintosh|mac os x/i.test(navigator.userAgent);
};
exports.isMacOS = isMacOS;
var isFirefox = function isFirefox() {
return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
};
exports.isFirefox = isFirefox;