UNPKG

frava-sortablejs

Version:
34 lines 3.93 kB
export class SortablejsBinding { constructor(target) { this.target = target; } insert(index, item) { if (this.isFormArray) { this.target.insert(index, item); } else { this.target.splice(index, 0, item); } } get(index) { return this.isFormArray ? this.target.at(index) : this.target[index]; } remove(index) { let item; if (this.isFormArray) { item = this.target.at(index); this.target.removeAt(index); } else { item = this.target.splice(index, 1)[0]; } return item; } // we need this to identify that the target is a FormArray // we don't want to have a dependency on @angular/forms just for that get isFormArray() { // just checking for random FormArray methods not available on a standard array return !!this.target.at && !!this.target.insert && !!this.target.reset; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGVqcy1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LXNvcnRhYmxlanMvc3JjL2xpYi9zb3J0YWJsZWpzLWJpbmRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFvQixNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDN0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsS0FBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDO1FBRVQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxxRUFBcUU7SUFDckUsSUFBWSxXQUFXO1FBQ3JCLCtFQUErRTtRQUMvRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3pFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U29ydGFibGVEYXRhfSBmcm9tICcuL3NvcnRhYmxlanMuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIFNvcnRhYmxlanNCaW5kaW5nIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhcmdldDogU29ydGFibGVEYXRhKSB7XG4gIH1cblxuICBpbnNlcnQoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtQXJyYXkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Lmluc2VydChpbmRleCwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0LnNwbGljZShpbmRleCwgMCwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Zvcm1BcnJheSA/IHRoaXMudGFyZ2V0LmF0KGluZGV4KSA6IHRoaXMudGFyZ2V0W2luZGV4XTtcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IGl0ZW07XG5cbiAgICBpZiAodGhpcy5pc0Zvcm1BcnJheSkge1xuICAgICAgaXRlbSA9IHRoaXMudGFyZ2V0LmF0KGluZGV4KTtcbiAgICAgIHRoaXMudGFyZ2V0LnJlbW92ZUF0KGluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbSA9IHRoaXMudGFyZ2V0LnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvLyB3ZSBuZWVkIHRoaXMgdG8gaWRlbnRpZnkgdGhhdCB0aGUgdGFyZ2V0IGlzIGEgRm9ybUFycmF5XG4gIC8vIHdlIGRvbid0IHdhbnQgdG8gaGF2ZSBhIGRlcGVuZGVuY3kgb24gQGFuZ3VsYXIvZm9ybXMganVzdCBmb3IgdGhhdFxuICBwcml2YXRlIGdldCBpc0Zvcm1BcnJheSgpIHtcbiAgICAvLyBqdXN0IGNoZWNraW5nIGZvciByYW5kb20gRm9ybUFycmF5IG1ldGhvZHMgbm90IGF2YWlsYWJsZSBvbiBhIHN0YW5kYXJkIGFycmF5XG4gICAgcmV0dXJuICEhdGhpcy50YXJnZXQuYXQgJiYgISF0aGlzLnRhcmdldC5pbnNlcnQgJiYgISF0aGlzLnRhcmdldC5yZXNldDtcbiAgfVxuXG59XG4iXX0=