Listable => IListable

This commit is contained in:
Dan Percic 2021-09-25 00:53:31 +03:00
parent 0dc6d05cef
commit 29c267104e
3 changed files with 7 additions and 6 deletions

View File

@ -6,12 +6,12 @@ import { SortingOrders, SortingService } from '../sorting';
import { AutoUnsubscribe, Bind, KeysOf } from '../utils';
import { SearchService } from '../search';
import { EntitiesService } from './services';
import { Listable, ListingMode, ListingModes, TableColumnConfig } from './models';
import { IListable, TableColumnConfig } from './models';
export const DefaultListingServices = [FilterService, SearchService, EntitiesService, SortingService] as const;
@Directive()
export abstract class ListingComponent<T extends Listable> extends AutoUnsubscribe implements OnDestroy {
export abstract class ListingComponent<T extends IListable> extends AutoUnsubscribe implements OnDestroy {
readonly filterService = this._injector.get(FilterService);
readonly searchService = this._injector.get<SearchService<T>>(SearchService);
readonly sortingService = this._injector.get<SortingService<T>>(SortingService);

View File

@ -1,3 +1,4 @@
export interface Listable {
readonly id: string | number;
export interface IListable {
readonly id: string;
readonly routerLink?: string;
}

View File

@ -3,13 +3,13 @@ import { BehaviorSubject, combineLatest, Observable, pipe } from 'rxjs';
import { distinctUntilChanged, map, tap } from 'rxjs/operators';
import { FilterService, getFilteredEntities } from '../../filtering';
import { SearchService } from '../../search';
import { Listable } from '../models';
import { IListable } from '../models';
const toLengthValue = (entities: unknown[]) => entities?.length ?? 0;
const getLength = pipe(map(toLengthValue), distinctUntilChanged());
@Injectable()
export class EntitiesService<T extends Listable> {
export class EntitiesService<T extends IListable> {
readonly displayed$: Observable<T[]>;
readonly displayedLength$: Observable<number>;
readonly noData$: Observable<boolean>;