UNPKG

ng-track-by

Version:

trackBy and trackById directives which provide TrackByFunction to ngForTrackBy

42 lines 4.93 kB
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==