ng-track-by
Version:
trackBy and trackById directives which provide TrackByFunction to ngForTrackBy
42 lines • 4.93 kB
JavaScript
import { CommonModule } from "@angular/common";
import { NgModule } from "@angular/core";
import { Directive } from "@angular/core";
import { not } from "logical-not";
import { changeTrackBy } from "./tools/change-track-by";
import { marked } from "./tools/marker";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
const trackById = (_, item) => {
return item.id;
};
export class TrackByIdDirective {
constructor(ngForOf) {
this.ngForOf = ngForOf;
}
ngOnInit() {
if (not(marked(this.ngForOf)))
changeTrackBy(this.ngForOf, trackById, "id");
}
}
TrackByIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdDirective, deps: [{ token: i1.NgForOf }], target: i0.ɵɵFactoryTarget.Directive });
TrackByIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.0", type: TrackByIdDirective, selector: "[trackById]", ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdDirective, decorators: [{
type: Directive,
args: [{
selector: "[trackById]",
}]
}], ctorParameters: function () { return [{ type: i1.NgForOf }]; } });
export class TrackByIdModule {
}
TrackByIdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
TrackByIdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdModule, declarations: [TrackByIdDirective], imports: [CommonModule], exports: [TrackByIdDirective] });
TrackByIdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdModule, imports: [[CommonModule]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: TrackByIdModule, decorators: [{
type: NgModule,
args: [{
imports: [CommonModule],
exports: [TrackByIdDirective],
declarations: [TrackByIdDirective],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stYnktaWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmctdHJhY2stYnkvc3JjL2xpYi90cmFjay1ieS1pZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFeEMsTUFBTSxTQUFTLEdBQWlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3hELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFLRixNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQW9CLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUVsRCxRQUFRO1FBQ0osSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7K0dBTlEsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtpQkFDMUI7O0FBZUQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFkZixrQkFBa0IsYUFVakIsWUFBWSxhQVZiLGtCQUFrQjs2R0FjbEIsZUFBZSxZQUpmLENBQUMsWUFBWSxDQUFDOzJGQUlkLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0Zvck9mIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUsIE9uSW5pdCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBub3QgfSBmcm9tIFwibG9naWNhbC1ub3RcIjtcblxuaW1wb3J0IHsgY2hhbmdlVHJhY2tCeSB9IGZyb20gXCIuL3Rvb2xzL2NoYW5nZS10cmFjay1ieVwiO1xuaW1wb3J0IHsgbWFya2VkIH0gZnJvbSBcIi4vdG9vbHMvbWFya2VyXCI7XG5cbmNvbnN0IHRyYWNrQnlJZDogVHJhY2tCeUZ1bmN0aW9uPHsgaWQ6IGFueSB9PiA9IChfLCBpdGVtKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbdHJhY2tCeUlkXVwiLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFja0J5SWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdGb3JPZjogTmdGb3JPZjxhbnksIGFueT4pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vdChtYXJrZWQodGhpcy5uZ0Zvck9mKSkpXG4gICAgICAgICAgICBjaGFuZ2VUcmFja0J5KHRoaXMubmdGb3JPZiwgdHJhY2tCeUlkLCBcImlkXCIpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbVHJhY2tCeUlkRGlyZWN0aXZlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUcmFja0J5SWREaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFja0J5SWRNb2R1bGUge31cbiJdfQ==