rc-form-array
Version:
create rc-form array
131 lines • 14.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
/** 获取创建自增key的方法 */
var getCreateKeyFn = function () { var i = 0; return function () { return i++; }; };
/** 确保是数组 */
var ensureArray = function (arr) { return arr instanceof Array ? arr : []; };
/** 克隆新的对象是为了在PureComponent中执行render */
var cloneFormArray = function (formArray) {
var fa = new FormArray();
fa.createKey = formArray.createKey;
return fa;
};
var FormArray = /** @class */ (function () {
function FormArray(list) {
if (list === void 0) { list = []; }
var _this = this;
/** 创建自增key */
this.createKey = getCreateKeyFn();
this.convert = function (item) {
return { key: _this.createKey(), value: item };
};
this._list = list.map(this.convert);
}
Object.defineProperty(FormArray.prototype, "list", {
get: function () {
return this._list.map(function (v) { return v.value; });
},
enumerable: true,
configurable: true
});
Object.defineProperty(FormArray.prototype, "length", {
get: function () {
return this._list.length;
},
enumerable: true,
configurable: true
});
Object.defineProperty(FormArray.prototype, "keys", {
get: function () {
return this._list.map(function (_a) {
var key = _a.key;
return key;
});
},
enumerable: true,
configurable: true
});
FormArray.prototype.render = function (fn) {
return this._list.map(function (_a, index) {
var key = _a.key, value = _a.value;
return fn(value, key, index);
});
};
FormArray.prototype.map = function (fn) {
var fa = new FormArray();
fa.createKey = this.createKey;
fa._list = this._list.map(function (_a) {
var key = _a.key, value = _a.value;
return ({ key: key, value: fn(value) });
});
return fa;
};
FormArray.prototype.get = function (key) {
var item = this._list.find(function (v) { return v.key === key; });
return item && item.value;
};
FormArray.prototype.set = function (key, param) {
var fa = cloneFormArray(this);
fa._list = this._list.map(function (v) { return v.key === key ?
{
key: key,
value: typeof param === 'function' ? param(v) : param
} :
v; });
return fa;
};
FormArray.prototype.add = function () {
var newItems = [];
for (var _i = 0; _i < arguments.length; _i++) {
newItems[_i] = arguments[_i];
}
var fa = cloneFormArray(this);
fa._list = this._list.concat(newItems.map(this.convert));
return fa;
};
FormArray.prototype.delete = function () {
var keys = [];
for (var _i = 0; _i < arguments.length; _i++) {
keys[_i] = arguments[_i];
}
var fa = cloneFormArray(this);
fa._list = this._list.filter(function (item) { return !keys.some(function (key) { return key === item.key; }); });
return fa;
};
/**
* 根据数组中key的顺序排序
* @param keys 表单项的key按自定义顺序组成的数组
*/
FormArray.prototype.sortByKeys = function (keys) {
var fa = cloneFormArray(this);
var sortedArr = [];
var _loop_1 = function (key) {
this_1._list = this_1._list.reduce(function (arr, c) {
(c.key === key ? sortedArr : arr).push(c);
return arr;
}, []);
};
var this_1 = this;
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
var key = keys_1[_i];
_loop_1(key);
}
fa._list = sortedArr.concat(this._list);
return fa;
};
return FormArray;
}());
exports.FormArray = FormArray;
/**
* 创建表单数组对象
* @param list 表单数据列表
* @param minLen 表单项最小个数
*/
exports.createFormArray = function (list, minLen) {
if (minLen === void 0) { minLen = 0; }
var arr = ensureArray(list);
var restLen = minLen - arr.length;
return new FormArray(restLen > 0 ? arr.concat(Array.from({ length: restLen })) :
arr);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1CQUFtQjtBQUNuQixJQUFNLGNBQWMsR0FBRyxjQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sY0FBTSxPQUFBLENBQUMsRUFBRSxFQUFILENBQUcsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUU3RCxZQUFZO0FBQ1osSUFBTSxXQUFXLEdBQUcsVUFBSSxHQUFRLElBQVUsT0FBQSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBL0IsQ0FBK0IsQ0FBQztBQUUxRSx1Q0FBdUM7QUFDdkMsSUFBTSxjQUFjLEdBQUcsVUFBSSxTQUF1QjtJQUNoRCxJQUFNLEVBQUUsR0FBRyxJQUFJLFNBQVMsRUFBSyxDQUFDO0lBQzlCLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUVGO0lBT0UsbUJBQVksSUFBYztRQUFkLHFCQUFBLEVBQUEsU0FBYztRQUExQixpQkFFQztRQUxELGNBQWM7UUFDZCxjQUFTLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFNckIsWUFBTyxHQUFHLFVBQUMsSUFBTztZQUN4QixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDL0MsQ0FBQyxDQUFBO1FBTEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBTUQsc0JBQUksMkJBQUk7YUFBUjtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxF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TUFBTSxDQUFDO0lBRXBDLE9BQU8sSUFBSSxTQUFTLENBQ2xCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNQLEdBQUcsUUFBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFRLEVBQUUsQ0FBQztRQUNyRCxHQUFHLENBQ04sQ0FBQztBQUNKLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiDojrflj5bliJvlu7roh6rlop5rZXnnmoTmlrnms5UgKi9cclxuY29uc3QgZ2V0Q3JlYXRlS2V5Rm4gPSAoKSA9PiB7IGxldCBpID0gMDsgcmV0dXJuICgpID0+IGkrKyB9O1xyXG5cclxuLyoqIOehruS/neaYr+aVsOe7hCAqL1xyXG5jb25zdCBlbnN1cmVBcnJheSA9IDxUPihhcnI6IFRbXSk6IFRbXSA9PiBhcnIgaW5zdGFuY2VvZiBBcnJheSA/IGFyciA6IFtdO1xyXG5cclxuLyoqIOWFi+mahuaWsOeahOWvueixoeaYr+S4uuS6huWcqFB1cmVDb21wb25lbnTkuK3miafooYxyZW5kZXIgKi9cclxuY29uc3QgY2xvbmVGb3JtQXJyYXkgPSA8VD4oZm9ybUFycmF5OiBGb3JtQXJyYXk8VD4pID0+IHtcclxuICBjb25zdCBmYSA9IG5ldyBGb3JtQXJyYXk8VD4oKTtcclxuICBmYS5jcmVhdGVLZXkgPSBmb3JtQXJyYXkuY3JlYXRlS2V5O1xyXG4gIHJldHVybiBmYTtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQXJyYXk8VD4ge1xyXG5cclxuICBfbGlzdDogQXJyYXk8eyBrZXk6IG51bWJlcjsgdmFsdWU6IFQ7IH0+O1xyXG5cclxuICAvKiog5Yib5bu66Ieq5aKea2V5ICovXHJcbiAgY3JlYXRlS2V5ID0gZ2V0Q3JlYXRlS2V5Rm4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IobGlzdDogVFtdID0gW10pIHtcclxuICAgIHRoaXMuX2xpc3QgPSBsaXN0Lm1hcCh0aGlzLmNvbnZlcnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0ID0gKGl0ZW06IFQpID0+IHtcclxuICAgIHJldHVybiB7IGtleTogdGhpcy5jcmVhdGVLZXkoKSwgdmFsdWU6IGl0ZW0gfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5tYXAodiA9PiB2LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBsZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXQga2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLl9saXN0Lm1hcCgoeyBrZXkgfSkgPT4ga2V5KTtcclxuICB9XHJcblxyXG4gIHJlbmRlcihmbjogKHZhbHVlOiBULCBrZXk6IG51bWJlciwgaW5kZXg6IG51bWJlcikgPT4gYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5tYXAoKHsga2V5LCB2YWx1ZSB9LCBpbmRleCkgPT4gZm4odmFsdWUsIGtleSwgaW5kZXgpKTtcclxuICB9XHJcblxyXG4gIG1hcDxOPihmbjogKHZhbHVlOiBUKSA9PiBOKTogRm9ybUFycmF5PE4+IHtcclxuICAgIGNvbnN0IGZhID0gbmV3IEZvcm1BcnJheTxOPigpO1xyXG4gICAgZmEuY3JlYXRlS2V5ID0gdGhpcy5jcmVhdGVLZXk7XHJcblxyXG4gICAgZmEuX2xpc3QgPSB0aGlzLl9saXN0Lm1hcCgoeyBrZXksIHZhbHVlIH0pID0+ICh7IGtleSwgdmFsdWU6IGZuKHZhbHVlKSB9KSk7XHJcblxyXG4gICAgcmV0dXJuIGZhO1xyXG4gIH1cclxuXHJcbiAgZ2V0KGtleTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fbGlzdC5maW5kKHYgPT4gdi5rZXkgPT09IGtleSk7XHJcbiAgICByZXR1cm4gaXRlbSAmJiBpdGVtLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0KGtleTogbnVtYmVyLCBpdGVtOiBUKTogRm9ybUFycmF5PFQ+O1xyXG4gIHNldChrZXk6IG51bWJlciwgZm46IChpdGVtOiBUKSA9PiBUKTogRm9ybUFycmF5PFQ+O1xyXG4gIHNldChrZXk6IG51bWJlciwgcGFyYW06IGFueSk6IEZvcm1BcnJheTxUPiB7XHJcbiAgICBjb25zdCBmYSA9IGNsb25lRm9ybUFycmF5KHRoaXMpO1xyXG5cclxuICAgIGZhLl9saXN0ID0gdGhpcy5fbGlzdC5tYXAodiA9PiB2LmtleSA9PT0ga2V5ID9cclxuICAgICAge1xyXG4gICAgICAgIGtleSxcclxuICAgICAgICB2YWx1ZTogdHlwZW9mIHBhcmFtID09PSAnZnVuY3Rpb24nID8gcGFyYW0odikgOiBwYXJhbVxyXG4gICAgICB9IDpcclxuICAgICAgdlxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gZmE7XHJcbiAgfVxyXG5cclxuICBhZGQoLi4ubmV3SXRlbXM6IFRbXSk6IEZvcm1BcnJheTxUPiB7XHJcbiAgICBjb25zdCBmYSA9IGNsb25lRm9ybUFycmF5KHRoaXMpO1xyXG5cclxuICAgIGZhLl9saXN0ID0gWy4uLnRoaXMuX2xpc3QsIC4uLm5ld0l0ZW1zLm1hcCh0aGlzLmNvbnZlcnQpXTtcclxuXHJcbiAgICByZXR1cm4gZmE7XHJcbiAgfVxyXG5cclxuICBkZWxldGUoLi4ua2V5czogbnVtYmVyW10pOiBGb3JtQXJyYXk8VD4ge1xyXG4gICAgY29uc3QgZmEgPSBjbG9uZUZvcm1BcnJheSh0aGlzKTtcclxuXHJcbiAgICBmYS5fbGlzdCA9IHRoaXMuX2xpc3QuZmlsdGVyKGl0ZW0gPT4gIWtleXMuc29tZShrZXkgPT4ga2V5ID09PSBpdGVtLmtleSkpO1xyXG5cclxuICAgIHJldHVybiBmYTtcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiDmoLnmja7mlbDnu4TkuK1rZXnnmoTpobrluo/mjpLluo9cclxuICAgKiBAcGFyYW0ga2V5cyDooajljZXpobnnmoRrZXnmjInoh6rlrprkuYnpobrluo/nu4TmiJDnmoTmlbDnu4RcclxuICAgKi9cclxuICBzb3J0QnlLZXlzKGtleXM6IG51bWJlcltdKTogRm9ybUFycmF5PFQ+IHtcclxuICAgIGNvbnN0IGZhID0gY2xvbmVGb3JtQXJyYXkodGhpcyk7XHJcblxyXG4gICAgY29uc3Qgc29ydGVkQXJyOiBBcnJheTx7IGtleTogbnVtYmVyLCB2YWx1ZTogVCB9PiA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuICAgICAgdGhpcy5fbGlzdCA9IHRoaXMuX2xpc3QucmVkdWNlKFxyXG4gICAgICAgIChhcnIsIGMpID0+IHtcclxuICAgICAgICAgIChjLmtleSA9PT0ga2V5ID8gc29ydGVkQXJyIDogYXJyKS5wdXNoKGMpO1xyXG4gICAgICAgICAgcmV0dXJuIGFycjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIFtdIGFzIEFycmF5PHsga2V5OiBudW1iZXIsIHZhbHVlOiBUIH0+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZmEuX2xpc3QgPSBbLi4uc29ydGVkQXJyLCAuLi50aGlzLl9saXN0XTtcclxuXHJcbiAgICByZXR1cm4gZmE7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog5Yib5bu66KGo5Y2V5pWw57uE5a+56LGhXHJcbiAqIEBwYXJhbSBsaXN0IOihqOWNleaVsOaNruWIl+ihqFxyXG4gKiBAcGFyYW0gbWluTGVuIOihqOWNlemhueacgOWwj+S4quaVsFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZvcm1BcnJheSA9IDxUPihsaXN0OiBUW10sIG1pbkxlbiA9IDApID0+IHtcclxuXHJcbiAgY29uc3QgYXJyID0gZW5zdXJlQXJyYXkobGlzdCk7XHJcblxyXG4gIGNvbnN0IHJlc3RMZW4gPSBtaW5MZW4gLSBhcnIubGVuZ3RoO1xyXG5cclxuICByZXR1cm4gbmV3IEZvcm1BcnJheShcclxuICAgIHJlc3RMZW4gPiAwID9cclxuICAgICAgWy4uLmFyciwgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogcmVzdExlbiB9KSBhcyBUW11dIDpcclxuICAgICAgYXJyXHJcbiAgKTtcclxufVxyXG4iXX0=
;