UNPKG

ngx-sortablejs-v16

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGVqcy1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNvcnRhYmxlanMvc3JjL2xpYi9zb3J0YWJsZWpzLWJpbmRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFvQixNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBQUcsQ0FBQztJQUU1QyxNQUFNLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDN0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsS0FBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDO1FBRVQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxxRUFBcUU7SUFDckUsSUFBWSxXQUFXO1FBQ3JCLCtFQUErRTtRQUMvRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnRhYmxlRGF0YSB9IGZyb20gXCIuL3NvcnRhYmxlanMuZGlyZWN0aXZlXCI7XG5cbmV4cG9ydCBjbGFzcyBTb3J0YWJsZWpzQmluZGluZyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFyZ2V0OiBTb3J0YWJsZURhdGEpIHt9XG5cbiAgaW5zZXJ0KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIGlmICh0aGlzLmlzRm9ybUFycmF5KSB7XG4gICAgICB0aGlzLnRhcmdldC5pbnNlcnQoaW5kZXgsIGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldC5zcGxpY2UoaW5kZXgsIDAsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGdldChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNGb3JtQXJyYXkgPyB0aGlzLnRhcmdldC5hdChpbmRleCkgOiB0aGlzLnRhcmdldFtpbmRleF07XG4gIH1cblxuICByZW1vdmUoaW5kZXg6IG51bWJlcikge1xuICAgIGxldCBpdGVtO1xuXG4gICAgaWYgKHRoaXMuaXNGb3JtQXJyYXkpIHtcbiAgICAgIGl0ZW0gPSB0aGlzLnRhcmdldC5hdChpbmRleCk7XG4gICAgICB0aGlzLnRhcmdldC5yZW1vdmVBdChpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW0gPSB0aGlzLnRhcmdldC5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLy8gd2UgbmVlZCB0aGlzIHRvIGlkZW50aWZ5IHRoYXQgdGhlIHRhcmdldCBpcyBhIEZvcm1BcnJheVxuICAvLyB3ZSBkb24ndCB3YW50IHRvIGhhdmUgYSBkZXBlbmRlbmN5IG9uIEBhbmd1bGFyL2Zvcm1zIGp1c3QgZm9yIHRoYXRcbiAgcHJpdmF0ZSBnZXQgaXNGb3JtQXJyYXkoKSB7XG4gICAgLy8ganVzdCBjaGVja2luZyBmb3IgcmFuZG9tIEZvcm1BcnJheSBtZXRob2RzIG5vdCBhdmFpbGFibGUgb24gYSBzdGFuZGFyZCBhcnJheVxuICAgIHJldHVybiAhIXRoaXMudGFyZ2V0LmF0ICYmICEhdGhpcy50YXJnZXQuaW5zZXJ0ICYmICEhdGhpcy50YXJnZXQucmVzZXQ7XG4gIH1cbn1cbiJdfQ==