focus-formik-error
Version:
Simple auto focus to first Formik error
38 lines (33 loc) • 4.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = flattenToLodashFormat;
var OBJECT_DELIMITERS = ".";
var ARRAY_START_DELIMITER = "[";
var ARRAY_END_DELIMITER = "]";
function flattenToLodashFormat(target) {
var output = {};
function step(value) {
var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
var type = Object.prototype.toString.call(value);
var isObject = type === "[object Object]" || type === "[object Array]";
var isArray = Array.isArray(value);
if (!isArray && isObject) {
Object.keys(value).forEach(function (key) {
var newKey = prev ? prev + OBJECT_DELIMITERS + key : key;
step(value[key], newKey);
});
} else if (isArray) {
value.forEach(function (arrayValue, index) {
var arrayKey = prev + ARRAY_START_DELIMITER + index + ARRAY_END_DELIMITER;
step(arrayValue, arrayKey);
});
} else {
output[prev] = value;
}
}
step(target);
return output;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mbGF0dGVuVG9Mb2Rhc2hGb3JtYXQudHMiXSwibmFtZXMiOlsiT0JKRUNUX0RFTElNSVRFUlMiLCJBUlJBWV9TVEFSVF9ERUxJTUlURVIiLCJBUlJBWV9FTkRfREVMSU1JVEVSIiwiZmxhdHRlblRvTG9kYXNoRm9ybWF0IiwidGFyZ2V0Iiwib3V0cHV0Iiwic3RlcCIsInZhbHVlIiwicHJldiIsInR5cGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc09iamVjdCIsImlzQXJyYXkiLCJBcnJheSIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwibmV3S2V5IiwiYXJyYXlWYWx1ZSIsImluZGV4IiwiYXJyYXlLZXkiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQU1BLGlCQUFpQixHQUFHLEdBQTFCO0FBQ0EsSUFBTUMscUJBQXFCLEdBQUcsR0FBOUI7QUFDQSxJQUFNQyxtQkFBbUIsR0FBRyxHQUE1Qjs7QUFFZSxTQUFTQyxxQkFBVCxDQUErQkMsTUFBL0IsRUFBK0M7QUFDNUQsTUFBTUMsTUFBTSxHQUFHLEVBQWY7O0FBRUEsV0FBU0MsSUFBVCxDQUFjQyxLQUFkLEVBQXFDO0FBQUEsUUFBWEMsSUFBVyx1RUFBSixFQUFJO0FBQ25DLFFBQU1DLElBQUksR0FBR0MsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxRQUFqQixDQUEwQkMsSUFBMUIsQ0FBK0JOLEtBQS9CLENBQWI7QUFDQSxRQUFNTyxRQUFRLEdBQUdMLElBQUksS0FBSyxpQkFBVCxJQUE4QkEsSUFBSSxLQUFLLGdCQUF4RDtBQUNBLFFBQU1NLE9BQU8sR0FBR0MsS0FBSyxDQUFDRCxPQUFOLENBQWNSLEtBQWQsQ0FBaEI7O0FBRUEsUUFBSSxDQUFDUSxPQUFELElBQVlELFFBQWhCLEVBQTBCO0FBQ3hCSixNQUFBQSxNQUFNLENBQUNPLElBQVAsQ0FBWVYsS0FBWixFQUFtQlcsT0FBbkIsQ0FBMkIsVUFBVUMsR0FBVixFQUF1QjtBQUNoRCxZQUFJQyxNQUFNLEdBQUdaLElBQUksR0FBR0EsSUFBSSxHQUFHUixpQkFBUCxHQUEyQm1CLEdBQTlCLEdBQW9DQSxHQUFyRDtBQUVBYixRQUFBQSxJQUFJLENBQUNDLEtBQUssQ0FBQ1ksR0FBRCxDQUFOLEVBQWFDLE1BQWIsQ0FBSjtBQUNELE9BSkQ7QUFLRCxLQU5ELE1BTU8sSUFBSUwsT0FBSixFQUFhO0FBQ2xCUixNQUFBQSxLQUFLLENBQUNXLE9BQU4sQ0FBYyxVQUFDRyxVQUFELEVBQWtCQyxLQUFsQixFQUFvQztBQUNoRCxZQUFNQyxRQUFRLEdBQ1pmLElBQUksR0FBR1AscUJBQVAsR0FBK0JxQixLQUEvQixHQUF1Q3BCLG1CQUR6QztBQUdBSSxRQUFBQSxJQUFJLENBQUNlLFVBQUQsRUFBYUUsUUFBYixDQUFKO0FBQ0QsT0FMRDtBQU1ELEtBUE0sTUFPQTtBQUNMbEIsTUFBQUEsTUFBTSxDQUFDRyxJQUFELENBQU4sR0FBZUQsS0FBZjtBQUNEO0FBQ0Y7O0FBRURELEVBQUFBLElBQUksQ0FBQ0YsTUFBRCxDQUFKO0FBRUEsU0FBT0MsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgT0JKRUNUX0RFTElNSVRFUlMgPSBcIi5cIjtcbmNvbnN0IEFSUkFZX1NUQVJUX0RFTElNSVRFUiA9IFwiW1wiO1xuY29uc3QgQVJSQVlfRU5EX0RFTElNSVRFUiA9IFwiXVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmbGF0dGVuVG9Mb2Rhc2hGb3JtYXQodGFyZ2V0OiB7fSk6IHt9IHtcbiAgY29uc3Qgb3V0cHV0ID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBmdW5jdGlvbiBzdGVwKHZhbHVlOiBhbnksIHByZXYgPSBcIlwiKSB7XG4gICAgY29uc3QgdHlwZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgY29uc3QgaXNPYmplY3QgPSB0eXBlID09PSBcIltvYmplY3QgT2JqZWN0XVwiIHx8IHR5cGUgPT09IFwiW29iamVjdCBBcnJheV1cIjtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG5cbiAgICBpZiAoIWlzQXJyYXkgJiYgaXNPYmplY3QpIHtcbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXk6IHN0cmluZykge1xuICAgICAgICBsZXQgbmV3S2V5ID0gcHJldiA/IHByZXYgKyBPQkpFQ1RfREVMSU1JVEVSUyArIGtleSA6IGtleTtcblxuICAgICAgICBzdGVwKHZhbHVlW2tleV0sIG5ld0tleSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkpIHtcbiAgICAgIHZhbHVlLmZvckVhY2goKGFycmF5VmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBhcnJheUtleSA9XG4gICAgICAgICAgcHJldiArIEFSUkFZX1NUQVJUX0RFTElNSVRFUiArIGluZGV4ICsgQVJSQVlfRU5EX0RFTElNSVRFUjtcblxuICAgICAgICBzdGVwKGFycmF5VmFsdWUsIGFycmF5S2V5KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbcHJldl0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzdGVwKHRhcmdldCk7XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cbiJdfQ==