diff --git a/src/assets/styles/_common-mixins.scss b/src/assets/styles/_common-mixins.scss index e20c3d3..a5260f9 100644 --- a/src/assets/styles/_common-mixins.scss +++ b/src/assets/styles/_common-mixins.scss @@ -1,14 +1,10 @@ @mixin line-clamp($lines) { - display: -webkit-box; - -webkit-line-clamp: $lines; - -webkit-box-orient: vertical; overflow: hidden; - display: block; - - @if $lines == 1 { - text-overflow: ellipsis; - white-space: nowrap; - } + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: $lines; /* number of lines to show */ + -webkit-box-orient: vertical; + width: fit-content; } @mixin no-scroll-bar { diff --git a/src/assets/styles/common-texts.scss b/src/assets/styles/common-texts.scss index 7dbc922..805e664 100644 --- a/src/assets/styles/common-texts.scss +++ b/src/assets/styles/common-texts.scss @@ -114,6 +114,14 @@ pre { @include mixins.line-clamp(2); } +.clamp-3 { + @include mixins.line-clamp(3); +} + +.clamp-4 { + @include mixins.line-clamp(4); +} + .no-wrap { white-space: nowrap; } diff --git a/src/lib/listing/services/entities.service.ts b/src/lib/listing/services/entities.service.ts index ab80a34..dd8a7bb 100644 --- a/src/lib/listing/services/entities.service.ts +++ b/src/lib/listing/services/entities.service.ts @@ -2,8 +2,8 @@ import { Inject, Injectable, InjectionToken, Injector, Optional } from '@angular import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { distinctUntilChanged, map, shareReplay, tap } from 'rxjs/operators'; import { IListable } from '../models'; -import { GenericService } from '../../services'; -import { getLength } from '../../utils'; +import { GenericService, QueryParam } from '../../services'; +import { getLength, List } from '../../utils'; /** * This should be removed when refactoring is done @@ -47,17 +47,16 @@ export class EntitiesService extends GenericService< ); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - loadAll(...args: unknown[]): Observable { - return this.getAll().pipe( + loadAll(modelPath = this._defaultModelPath, queryParams?: List): Observable { + return this.getAll(modelPath, queryParams).pipe( map((entities: I[]) => entities.map(entity => new this._entityClass(entity))), tap((entities: E[]) => this.setEntities(entities)), ); } - loadAllIfEmpty(...args: unknown[]): Promise | void { + loadAllIfEmpty(modelPath = this._defaultModelPath, queryParams?: List): Promise | void { if (!this.all.length) { - return this.loadAll(...args).toPromise(); + return this.loadAll(modelPath, queryParams).toPromise(); } } diff --git a/src/lib/services/dialog.service.ts b/src/lib/services/dialog.service.ts index 778098e..b397f9c 100644 --- a/src/lib/services/dialog.service.ts +++ b/src/lib/services/dialog.service.ts @@ -16,14 +16,16 @@ export const defaultDialogConfig: MatDialogConfig = { autoFocus: false, } as const; +export type DialogConfig = { + [key in T]: { + component: ComponentType; + dialogConfig?: MatDialogConfig; + }; +}; + @Injectable() export abstract class DialogService { - protected abstract readonly _config: { - [key in T]: { - component: ComponentType; - dialogConfig?: MatDialogConfig; - }; - }; + protected abstract readonly _config: DialogConfig; protected constructor(protected readonly _dialog: MatDialog) {}