ngx-sortablejs
Version:
67 lines • 4.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/sortablejs-binding.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class SortablejsBinding {
/**
* @param {?} target
*/
constructor(target) {
this.target = target;
}
/**
* @param {?} index
* @param {?} item
* @return {?}
*/
insert(index, item) {
if (this.isFormArray) {
this.target.insert(index, item);
}
else {
this.target.splice(index, 0, item);
}
}
/**
* @param {?} index
* @return {?}
*/
get(index) {
return this.isFormArray ? this.target.at(index) : this.target[index];
}
/**
* @param {?} index
* @return {?}
*/
remove(index) {
/** @type {?} */
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
/**
* @private
* @return {?}
*/
get isFormArray() {
// just checking for random FormArray methods not available on a standard array
return !!this.target.at && !!this.target.insert && !!this.target.reset;
}
}
if (false) {
/**
* @type {?}
* @private
*/
SortablejsBinding.prototype.target;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGVqcy1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL25neC1zb3J0YWJsZWpzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zb3J0YWJsZWpzLWJpbmRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLE9BQU8saUJBQWlCOzs7O0lBRTVCLFlBQW9CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFDeEMsQ0FBQzs7Ozs7O0lBRUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQzdCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs7OztJQUVELEdBQUcsQ0FBQyxLQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxLQUFhOztZQUNkLElBQUk7UUFFUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7Ozs7O0lBSUQsSUFBWSxXQUFXO1FBQ3JCLCtFQUErRTtRQUMvRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3pFLENBQUM7Q0FFRjs7Ozs7O0lBbkNhLG1DQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U29ydGFibGVEYXRhfSBmcm9tICcuL3NvcnRhYmxlanMuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIFNvcnRhYmxlanNCaW5kaW5nIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhcmdldDogU29ydGFibGVEYXRhKSB7XG4gIH1cblxuICBpbnNlcnQoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtQXJyYXkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Lmluc2VydChpbmRleCwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0LnNwbGljZShpbmRleCwgMCwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Zvcm1BcnJheSA/IHRoaXMudGFyZ2V0LmF0KGluZGV4KSA6IHRoaXMudGFyZ2V0W2luZGV4XTtcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IGl0ZW07XG5cbiAgICBpZiAodGhpcy5pc0Zvcm1BcnJheSkge1xuICAgICAgaXRlbSA9IHRoaXMudGFyZ2V0LmF0KGluZGV4KTtcbiAgICAgIHRoaXMudGFyZ2V0LnJlbW92ZUF0KGluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbSA9IHRoaXMudGFyZ2V0LnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvLyB3ZSBuZWVkIHRoaXMgdG8gaWRlbnRpZnkgdGhhdCB0aGUgdGFyZ2V0IGlzIGEgRm9ybUFycmF5XG4gIC8vIHdlIGRvbid0IHdhbnQgdG8gaGF2ZSBhIGRlcGVuZGVuY3kgb24gQGFuZ3VsYXIvZm9ybXMganVzdCBmb3IgdGhhdFxuICBwcml2YXRlIGdldCBpc0Zvcm1BcnJheSgpIHtcbiAgICAvLyBqdXN0IGNoZWNraW5nIGZvciByYW5kb20gRm9ybUFycmF5IG1ldGhvZHMgbm90IGF2YWlsYWJsZSBvbiBhIHN0YW5kYXJkIGFycmF5XG4gICAgcmV0dXJuICEhdGhpcy50YXJnZXQuYXQgJiYgISF0aGlzLnRhcmdldC5pbnNlcnQgJiYgISF0aGlzLnRhcmdldC5yZXNldDtcbiAgfVxuXG59XG4iXX0=