react-admin-ui
Version:
React Admin Panel based on material-ui interface Edit
90 lines (75 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mergeDeep = exports.groupFields = exports.showField = undefined;
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var showField = function showField(itemName, data) {
if (itemName.length == 0) return data;
var field = itemName.split('.');
var name = void 0;
for (var i in field) {
if (field.hasOwnProperty(i)) {
if (i == 0) {
name = data[field[i]];
} else {
name = name[field[i]];
}
}
}
return name;
};
var groupFields = function groupFields(fields) {
var tabs = [{
name: 'General',
fields: []
}];
for (var i in fields) {
if (fields.hasOwnProperty(i) && fields[i].fieldType == 'tab') {
tabs.push(fields[i]);
} else {
tabs[0].fields.push(fields[i]);
}
}
return tabs;
};
/**
* Simple object check.
* @param item
* @returns {boolean}
*/
var isObject = function isObject(item) {
return item && (typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) === 'object' && !Array.isArray(item);
};
/**
* Deep merge two objects.
* @param target
* @param sources
*/
var mergeDeep = function mergeDeep(target) {
for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
sources[_key - 1] = arguments[_key];
}
if (!sources.length) return target;
var source = sources.shift();
if (isObject(target) && isObject(source)) {
for (var key in source) {
if (isObject(source[key])) {
if (!target[key]) (0, _assign2.default)(target, (0, _defineProperty3.default)({}, key, {}));
mergeDeep(target[key], source[key]);
} else {
(0, _assign2.default)(target, (0, _defineProperty3.default)({}, key, source[key]));
}
}
}
return mergeDeep.apply(undefined, [target].concat(sources));
};
exports.showField = showField;
exports.groupFields = groupFields;
exports.mergeDeep = mergeDeep;