@schema-render/core-react
Version:
Through a set of simple JSON Schema, efficiently build a set of forms.
260 lines (259 loc) • 7.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
cloneDeep: function() {
return cloneDeep;
},
debounce: function() {
return debounce;
},
dropRight: function() {
return dropRight;
},
find: function() {
return find;
},
get: function() {
return get;
},
isMatch: function() {
return isMatch;
},
mapKeys: function() {
return mapKeys;
},
omit: function() {
return omit;
},
pick: function() {
return pick;
},
set: function() {
return set;
},
toLower: function() {
return toLower;
}
});
var _assert = /*#__PURE__*/ _interop_require_default(require("./assert"));
var _base = require("./base");
var _checking = require("./checking");
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
function cloneDeep(val) {
var k, out, tmp;
if (Array.isArray(val)) {
out = Array(k = val.length);
while(k--)out[k] = (tmp = val[k]) && (typeof tmp === "undefined" ? "undefined" : _type_of(tmp)) === 'object' ? cloneDeep(tmp) : tmp;
return out;
}
if (Object.prototype.toString.call(val) === '[object Object]') {
out = {};
for(k in val){
if (k === '__proto__') {
Object.defineProperty(out, k, {
value: cloneDeep(val[k]),
configurable: true,
enumerable: true,
writable: true
});
} else {
out[k] = (tmp = val[k]) && (typeof tmp === "undefined" ? "undefined" : _type_of(tmp)) === 'object' ? cloneDeep(tmp) : tmp;
}
}
return out;
}
return val;
}
function mapKeys(obj, fn) {
if (!(0, _checking.isPlainObject)(obj) || !(0, _checking.isFunction)(fn)) {
return {};
}
var keys = Object.keys(obj);
var result = {};
keys.map(function(key) {
var value = obj[key];
var newKey = fn(value, key);
result[newKey] = value;
});
return result;
}
function pick(obj) {
for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
keys[_key - 1] = arguments[_key];
}
var result = {};
if (!(0, _checking.isPlainObject)(obj)) {
return result;
}
keys.map(function(key) {
if ((0, _base.hasOwnProperty)(obj, key)) {
result[key] = obj[key];
}
});
return result;
}
function omit(obj) {
for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
keys[_key - 1] = arguments[_key];
}
if (!(0, _checking.isPlainObject)(obj)) {
return {};
}
var result = _object_spread({}, obj);
keys.map(function(key) {
if ((0, _base.hasOwnProperty)(obj, key)) {
delete result[key];
}
});
return result;
}
function dropRight(arr) {
var n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
if (!(0, _checking.isArray)(arr)) {
return [];
}
return arr.slice(0, n > 0 ? n * -1 : arr.length);
}
function find(arr, predicate) {
var fromIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
if (!(0, _checking.isArray)(arr)) {
return undefined;
}
var length = arr.length;
for(var i = fromIndex; i < length; i++){
var item = arr[i];
if ((0, _checking.isFunction)(predicate)) {
if (predicate(item)) {
return item;
}
} else if ((0, _checking.isPlainObject)(predicate)) {
if (isMatch(item, predicate)) {
return item;
}
}
}
}
function isMatch(obj, source) {
if (!(0, _checking.isPlainObject)(obj)) {
return true;
}
var keys = Object.keys(source);
for(var i = 0; i < keys.length; i++){
var key = keys[i];
if (!(0, _base.hasOwnProperty)(obj, key) || source[key] !== obj[key]) {
return false;
}
}
return true;
}
function get(obj, path) {
if (!(0, _checking.isPlainObject)(obj) || !(0, _checking.isArray)(path)) {
return undefined;
}
var value = obj;
for(var i = 0; i < path.length; i++){
var filed = path[i];
if (value) {
value = value[filed];
} else {
return undefined;
}
}
return value;
}
/**
* fork from https://github.com/lodash/lodash/blob/4.17.21-es/_isIndex.js
*/ var regIsUint = /^(?:0|[1-9]\d*)$/;
function isIndex(value) {
return (0, _checking.isNumber)(value) || regIsUint.test(value);
}
function set(obj, path, value) {
if (!(0, _checking.isPlainObject)(obj)) {
return obj;
}
var length = path.length;
var lastIndex = length - 1;
var index = -1;
var nested = obj;
while(nested !== null && ++index < length){
var key = path[index];
var newValue = value;
if (index !== lastIndex) {
var objValue = nested[key];
newValue = (0, _checking.isObject)(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
}
nested[key] = newValue;
nested = nested[key];
}
return obj;
}
function debounce(func, wait) {
if (!(0, _checking.isFunction)(func)) {
_assert.default.fail('Expected a function');
}
var timeout;
function debounced() {
var _this = this;
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
args[_key] = arguments[_key];
}
clearTimeout(timeout);
timeout = setTimeout(function() {
return func.apply(_this, args);
}, wait);
}
debounced.cancel = function() {
clearTimeout(timeout);
};
return debounced;
}
function toLower(str) {
if ((0, _checking.isString)(str)) {
return str.toLowerCase();
}
return '';
}