UNPKG

@sanity/form-builder

Version:
35 lines (34 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BEFORE = exports.AFTER = void 0; exports.default = insert; var BEFORE = 'before'; exports.BEFORE = BEFORE; var AFTER = 'after'; exports.AFTER = AFTER; function insert(array, position, index) { if (position !== BEFORE && position !== AFTER) { throw new Error("Invalid position \"".concat(position, "\", must be either ").concat(BEFORE, " or ").concat(AFTER)); } for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { args[_key - 3] = arguments[_key]; } var items = flatten(...args); if (array.length === 0) { return items; } var len = array.length; var idx = Math.abs((len + index) % len) % len; var normalizedIdx = position === 'after' ? idx + 1 : idx; var copy = array.slice(); copy.splice(normalizedIdx, 0, ...flatten(items)); return copy; } function flatten() { for (var _len2 = arguments.length, values = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { values[_key2] = arguments[_key2]; } return values.reduce((prev, item) => prev.concat(item), []); }