merchi_product_form
Version:
A React component for Merchi product forms
120 lines • 17.8 kB
JavaScript
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import camelCase from 'lodash/camelCase';
import snakeCase from 'lodash/snakeCase';
var TransformationType = /*#__PURE__*/function (TransformationType) {
TransformationType["CAMEL"] = "camel";
TransformationType["UNDERSCORE"] = "underscore";
return TransformationType;
}(TransformationType || {});
var functionDict = _defineProperty(_defineProperty({}, TransformationType.CAMEL, camelCase), TransformationType.UNDERSCORE, snakeCase);
function parseJsonKeyNames(jsonObject, standard) {
if (_typeof(jsonObject) === 'object' && jsonObject !== null) {
if (Array.isArray(jsonObject)) {
var _iterator = _createForOfIteratorHelper(jsonObject),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var item = _step.value;
parseJsonKeyNames(item, standard);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
} else {
var oldKeys = Object.keys(jsonObject);
for (var _i = 0, _oldKeys = oldKeys; _i < _oldKeys.length; _i++) {
var old = _oldKeys[_i];
var newKey = functionDict[standard](old);
if (newKey !== old) {
jsonObject[newKey] = jsonObject[old];
delete jsonObject[old];
parseJsonKeyNames(jsonObject[newKey], standard);
} else {
parseJsonKeyNames(jsonObject[old], standard);
}
}
}
}
return jsonObject;
}
function parseJsonKeyCamel(jsonObject) {
return parseJsonKeyNames(jsonObject, TransformationType.CAMEL);
}
export function unpackRecursiveJsonIter(jsonObject, options, fileIndex) {
if (!options) options = {};
var result = options.existing || new FormData();
var prefix = options._prefix || '';
if (!fileIndex) fileIndex = {
value: 0
};
var appendData = function appendData(name, value) {
if (prefix) {
name = prefix + '-' + name;
}
if (value !== undefined && value !== null) {
result.set(name, value.toString()); // Convert to string since FormData accepts only strings or Blobs.
}
};
var processSingleEntityProperty = function processSingleEntityProperty(key, value) {
var innerPrefix = key + '-0';
if (prefix) {
innerPrefix = prefix + '-' + innerPrefix;
}
unpackRecursiveJsonIter(value, {
existing: result,
_prefix: innerPrefix
}, fileIndex);
appendData(key + '-count', '1');
};
var _loop = function _loop(_key) {
if ([undefined, '', null].includes(jsonObject[_key]) || _key === 'rights') {
return 1; // continue
}
if (Array.isArray(jsonObject[_key])) {
jsonObject[_key].forEach(function (item, index) {
if ((_typeof(item) === "object" || Array.isArray(item)) && item !== null) {
var arrayPrefix = prefix ? "".concat(prefix, "-").concat(_key, "-").concat(index) : "".concat(_key, "-").concat(index);
unpackRecursiveJsonIter(item, {
existing: result,
_prefix: arrayPrefix
}, fileIndex);
} else {
appendData("".concat(_key, "-").concat(index), item);
}
});
appendData(_key + '-count', jsonObject[_key].length.toString());
} else if (_typeof(jsonObject[_key]) === "object" && jsonObject[_key] !== null) {
processSingleEntityProperty(_key, jsonObject[_key]);
} else {
appendData(_key, jsonObject[_key]);
}
};
for (var _key in jsonObject) {
if (_loop(_key)) continue;
}
return result;
}
function isJsonFlat(jsonObject) {
for (var _key2 in jsonObject) {
if (jsonObject.hasOwnProperty(_key2)) {
var value = jsonObject[_key2];
if (_typeof(value) === 'object' && value !== null) {
return false;
}
}
}
return true;
}
export function encodeMerchiApiData(dataDict) {
var dataJson = parseJsonKeyCamel(dataDict);
return unpackRecursiveJsonIter(dataJson);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYW1lbENhc2UiLCJzbmFrZUNhc2UiLCJUcmFuc2Zvcm1hdGlvblR5cGUiLCJmdW5jdGlvbkRpY3QiLCJfZGVmaW5lUHJvcGVydHkiLCJDQU1FTCIsIlVOREVSU0NPUkUiLCJwYXJzZUpzb25LZXlOYW1lcyIsImpzb25PYmplY3QiLCJzdGFuZGFyZCIsIl90eXBlb2YiLCJBcnJheSIsImlzQXJyYXkiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwiaXRlbSIsInZhbHVlIiwiZXJyIiwiZSIsImYiLCJvbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsIl9pIiwiX29sZEtleXMiLCJsZW5ndGgiLCJvbGQiLCJuZXdLZXkiLCJwYXJzZUpzb25LZXlDYW1lbCIsInVucGFja1JlY3Vyc2l2ZUpzb25JdGVyIiwib3B0aW9ucyIsImZpbGVJbmRleCIsInJlc3VsdCIsImV4aXN0aW5nIiwiRm9ybURhdGEiLCJwcmVmaXgiLCJfcHJlZml4IiwiYXBwZW5kRGF0YSIsIm5hbWUiLCJ1bmRlZmluZWQiLCJzZXQiLCJ0b1N0cmluZyIsInByb2Nlc3NTaW5nbGVFbnRpdHlQcm9wZXJ0eSIsImtleSIsImlubmVyUHJlZml4IiwiX2xvb3AiLCJfa2V5IiwiaW5jbHVkZXMiLCJmb3JFYWNoIiwiaW5kZXgiLCJhcnJheVByZWZpeCIsImNvbmNhdCIsImlzSnNvbkZsYXQiLCJoYXNPd25Qcm9wZXJ0eSIsImVuY29kZU1lcmNoaUFwaURhdGEiLCJkYXRhRGljdCIsImRhdGFKc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2FtZWxDYXNlIGZyb20gJ2xvZGFzaC9jYW1lbENhc2UnO1xuaW1wb3J0IHNuYWtlQ2FzZSBmcm9tICdsb2Rhc2gvc25ha2VDYXNlJztcblxuaW50ZXJmYWNlIEpzb25PYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmVudW0gVHJhbnNmb3JtYXRpb25UeXBlIHtcbiAgQ0FNRUwgPSBcImNhbWVsXCIsXG4gIFVOREVSU0NPUkUgPSBcInVuZGVyc2NvcmVcIlxufVxuXG5jb25zdCBmdW5jdGlvbkRpY3Q6IHsgW2tleSBpbiBUcmFuc2Zvcm1hdGlvblR5cGVdOiAod29yZDogc3RyaW5nKSA9PiBzdHJpbmcgfSA9IHtcbiAgW1RyYW5zZm9ybWF0aW9uVHlwZS5DQU1FTF06IGNhbWVsQ2FzZSxcbiAgW1RyYW5zZm9ybWF0aW9uVHlwZS5VTkRFUlNDT1JFXTogc25ha2VDYXNlXG59O1xuXG5mdW5jdGlvbiBwYXJzZUpzb25LZXlOYW1lcyhqc29uT2JqZWN0OiBhbnksIHN0YW5kYXJkOiBrZXlvZiB0eXBlb2YgZnVuY3Rpb25EaWN0KTogYW55IHtcbiAgaWYgKHR5cGVvZiBqc29uT2JqZWN0ID09PSAnb2JqZWN0JyAmJiBqc29uT2JqZWN0ICE9PSBudWxsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbk9iamVjdCkpIHtcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YganNvbk9iamVjdCkge1xuICAgICAgICBwYXJzZUpzb25LZXlOYW1lcyhpdGVtLCBzdGFuZGFyZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9sZEtleXMgPSBPYmplY3Qua2V5cyhqc29uT2JqZWN0KTtcbiAgICAgIGZvciAobGV0IG9sZCBvZiBvbGRLZXlzKSB7XG4gICAgICAgIGNvbnN0IG5ld0tleSA9IGZ1bmN0aW9uRGljdFtzdGFuZGFyZF0ob2xkKTtcbiAgICAgICAgaWYgKG5ld0tleSAhPT0gb2xkKSB7XG4gICAgICAgICAganNvbk9iamVjdFtuZXdLZXldID0ganNvbk9iamVjdFtvbGRdO1xuICAgICAgICAgIGRlbGV0ZSBqc29uT2JqZWN0W29sZF07XG4gICAgICAgICAgcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdFtuZXdLZXldLCBzdGFuZGFyZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdFtvbGRdLCBzdGFuZGFyZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGpzb25PYmplY3Q7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSnNvbktleUNhbWVsKGpzb25PYmplY3Q6IGFueSkge1xuICByZXR1cm4gcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdCwgVHJhbnNmb3JtYXRpb25UeXBlLkNBTUVMKTtcbn1cblxuaW50ZXJmYWNlIENvdW50ZXIge1xuICB2YWx1ZTogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2VyaWFsaXNlT3B0aW9ucyB7XG4gIGV4aXN0aW5nPzogRm9ybURhdGE7XG4gIGV4Y2x1ZGVPbGQ/OiBib29sZWFuO1xuICBfcHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5wYWNrUmVjdXJzaXZlSnNvbkl0ZXIoanNvbk9iamVjdDogSnNvbk9iamVjdCwgb3B0aW9ucz86IFNlcmlhbGlzZU9wdGlvbnMsIGZpbGVJbmRleD86IENvdW50ZXIpOiBGb3JtRGF0YSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICBjb25zdCByZXN1bHQgPSBvcHRpb25zLmV4aXN0aW5nIHx8IG5ldyBGb3JtRGF0YSgpO1xuICBjb25zdCBwcmVmaXggPSBvcHRpb25zLl9wcmVmaXggfHwgJyc7XG5cbiAgaWYgKCFmaWxlSW5kZXgpIGZpbGVJbmRleCA9IHsgdmFsdWU6IDAgfTtcblxuICBjb25zdCBhcHBlbmREYXRhID0gKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIG5hbWUgPSBwcmVmaXggKyAnLScgKyBuYW1lO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0LnNldChuYW1lLCB2YWx1ZS50b1N0cmluZygpKTsgIC8vIENvbnZlcnQgdG8gc3RyaW5nIHNpbmNlIEZvcm1EYXRhIGFjY2VwdHMgb25seSBzdHJpbmdzIG9yIEJsb2JzLlxuICAgIH1cbiAgfTtcblxuICBjb25zdCBwcm9jZXNzU2luZ2xlRW50aXR5UHJvcGVydHkgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgICBsZXQgaW5uZXJQcmVmaXggPSBrZXkgKyAnLTAnO1xuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIGlubmVyUHJlZml4ID0gcHJlZml4ICsgJy0nICsgaW5uZXJQcmVmaXg7XG4gICAgfVxuICAgIHVucGFja1JlY3Vyc2l2ZUpzb25JdGVyKHZhbHVlLCB7IGV4aXN0aW5nOiByZXN1bHQsIF9wcmVmaXg6IGlubmVyUHJlZml4IH0sIGZpbGVJbmRleCk7XG4gICAgYXBwZW5kRGF0YShrZXkgKyAnLWNvdW50JywgJzEnKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBqc29uT2JqZWN0KSB7XG4gICAgaWYgKFt1bmRlZmluZWQsICcnLCBudWxsXS5pbmNsdWRlcyhqc29uT2JqZWN0W2tleV0pIHx8IGtleSA9PT0gJ3JpZ2h0cycpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGpzb25PYmplY3Rba2V5XSkpIHtcbiAgICAgIGpzb25PYmplY3Rba2V5XS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKCh0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGl0ZW0pKSAmJiBpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgYXJyYXlQcmVmaXggPSBwcmVmaXggPyBgJHtwcmVmaXh9LSR7a2V5fS0ke2luZGV4fWAgOiBgJHtrZXl9LSR7aW5kZXh9YDtcbiAgICAgICAgICB1bnBhY2tSZWN1cnNpdmVKc29uSXRlcihpdGVtLCB7IGV4aXN0aW5nOiByZXN1bHQsIF9wcmVmaXg6IGFycmF5UHJlZml4IH0sIGZpbGVJbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXBwZW5kRGF0YShgJHtrZXl9LSR7aW5kZXh9YCwgaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgYXBwZW5kRGF0YShrZXkgKyAnLWNvdW50JywganNvbk9iamVjdFtrZXldLmxlbmd0aC50b1N0cmluZygpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc29uT2JqZWN0W2tleV0gPT09IFwib2JqZWN0XCIgJiYganNvbk9iamVjdFtrZXldICE9PSBudWxsKSB7XG4gICAgICBwcm9jZXNzU2luZ2xlRW50aXR5UHJvcGVydHkoa2V5LCBqc29uT2JqZWN0W2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcHBlbmREYXRhKGtleSwganNvbk9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBpc0pzb25GbGF0KGpzb25PYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICBmb3IgKGxldCBrZXkgaW4ganNvbk9iamVjdCkge1xuICAgIGlmIChqc29uT2JqZWN0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0ganNvbk9iamVjdFtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZU1lcmNoaUFwaURhdGEoZGF0YURpY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgY29uc3QgZGF0YUpzb24gPSBwYXJzZUpzb25LZXlDYW1lbChkYXRhRGljdCk7XG4gIHJldHVybiB1bnBhY2tSZWN1cnNpdmVKc29uSXRlcihkYXRhSnNvbik7XG59XG4iXSwibWFwcGluZ3MiOiI7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