@sanity/form-builder
Version:
Sanity form builder
35 lines (34 loc) • 1.15 kB
JavaScript
;
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), []);
}