UNPKG

imng-prime-table-odata

Version:

This library was generated with [Nx](https://nx.dev).

182 lines (168 loc) 7.61 kB
import * as i0 from '@angular/core'; import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core'; import * as i1 from '@angular/common'; import * as i2 from 'primeng/table'; import { Table } from 'primeng/table'; import { IdType, getRelatedValue, IRelatedFieldOptions } from 'imng-nrsrx-client-utils'; import { Observable } from 'rxjs'; import { Expander, Computation, IFilter, ICompositeFilter, ODataQuery } from 'imng-odata-client'; import { SortMeta, FilterMetadata, LazyLoadEvent } from 'primeng/api'; import { Subscribable, Subscriptions } from 'imng-ngrx-utils'; import { Router } from '@angular/router'; import { EnumProperties, getEnumDisplayText } from 'openapi-ts-generator/enums'; interface PrimeTableState { first?: number; last?: number; rows?: number; multiSortMeta?: SortMeta[]; globalFilter?: string[]; filters?: { [s: string]: FilterMetadata[]; }; expand?: Array<Expander>; /** * Specifies the list of properties to retrieve */ select?: string[]; /** * Request a total count of records. * Note: Filter expressions will affect this value. * Default: true */ count?: boolean; /** * Specifies aggregation behavior for the collection of entries. */ apply?: string; /** * Specifies computed properties that can be used in $select, $filter or $orderby expressions. */ compute?: Array<Computation | string>; } interface IPrimeODataTableFacade<Entity extends { id?: IdType | null; }> { activeEffectCount$: Observable<number>; tableState$: Observable<PrimeTableState>; tableData$: Observable<Entity[]>; totalRecordCount$: Observable<number | undefined>; loadEntities(primeTableState: PrimeTableState): void; reloadEntities(primeTableState?: PrimeTableState): void; } declare abstract class ImngPrimeODataTableBaseComponent<ENTITY extends { id?: IdType | null; }, FACADE extends IPrimeODataTableFacade<ENTITY>> implements OnInit, OnDestroy, Subscribable { readonly facade: FACADE; private readonly state; readonly router: Router | null; readonly tableRefresh$: Observable<unknown> | null; readonly allSubscriptions: Subscriptions; readonly ENUM_DISPLAY_TEXT = EnumProperties.DISPLAY_TEXT; readonly ENUM_NAME = EnumProperties.NAME; readonly getEnumDisplayText: typeof getEnumDisplayText; /** * This sets the amount of the maximum amount of sortable columns for this component. Default = 5. */ maxSortedColumnCount: number; /** * This will allow you to provide a visual indicator that some of the columns have been hidden. */ hasHiddenColumns$: Observable<boolean>; tableStateQueryKey: string; tableState: PrimeTableState; tableData$: Observable<ENTITY[]>; activeEffectCount$: Observable<number>; rowsPerPageOptions: number[]; /** * A properties enum to make prime table columns definitions type safe * {@example <td>{{ dataItem[props.FIELD_NAME] }}</td>} */ abstract readonly props: any; protected expanders?: Expander[]; protected appliedTransformations?: string; readonly getRelatedValue: typeof getRelatedValue; constructor(facade: FACADE, state: PrimeTableState | Observable<PrimeTableState>, router?: Router | null, //NOSONAR tableRefresh$?: Observable<unknown> | null); ngOnInit(): void; ngOnDestroy(): void; getExportFileName(exportName: string): string; /** * Naming convention: * . => Parent table navigation separator * / => Child table navigation separator * @param segments * @returns */ getRelatedField(...segments: (string | IRelatedFieldOptions)[]): string | null; deserializeTableState(stateQueryParam: string): PrimeTableState; /** * This method ensures the proper handling of date filters in an OData query * @param filter */ normalizeFilters(filter: IFilter | ICompositeFilter): void; serializeTableState(primeTableState: PrimeTableState): string; /** * Will reset filters to initialGrid state passed into the constructor */ resetFilters(): void; dataStateChange(primeTableState: PrimeTableState): void; excelData: () => Observable<ENTITY[]>; loadEntities(primeTableState: PrimeTableState): void; validateSortParameters(multiSortMeta?: SortMeta[]): SortMeta[]; updateRouterState(state: PrimeTableState): void; reloadEntities(): void; static ɵfac: i0.ɵɵFactoryDeclaration<ImngPrimeODataTableBaseComponent<any, any>, never>; static ɵcmp: i0.ɵɵComponentDeclaration<ImngPrimeODataTableBaseComponent<any, any>, "ng-component", never, {}, {}, never, never, true, never>; } declare class IMNG_PRIME_TABLE implements OnInit, OnDestroy { readonly tableComponent: Table<any>; readonly changeDetectorRef: ChangeDetectorRef; odataTableComponent: ImngPrimeODataTableBaseComponent<object, IPrimeODataTableFacade<{ id?: IdType | null; }>>; private facade; private sortState; readonly allSubscriptions: Subscriptions; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<IMNG_PRIME_TABLE, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<IMNG_PRIME_TABLE, "[imngODataTable]", never, { "odataTableComponent": { "alias": "imngODataTable"; "required": false; }; }, {}, never, never, true, never>; } declare class IMNG_PRIME_SEARCH_CAPTION { dataTable: Table; static ɵfac: i0.ɵɵFactoryDeclaration<IMNG_PRIME_SEARCH_CAPTION, never>; static ɵcmp: i0.ɵɵComponentDeclaration<IMNG_PRIME_SEARCH_CAPTION, "imng-prime-search-caption", never, { "dataTable": { "alias": "dataTable"; "required": false; }; }, {}, never, never, true, never>; } declare class ImngPrimeTableODataModule { static ɵfac: i0.ɵɵFactoryDeclaration<ImngPrimeTableODataModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<ImngPrimeTableODataModule, never, [typeof i1.CommonModule, typeof i2.TableModule, typeof IMNG_PRIME_TABLE, typeof IMNG_PRIME_SEARCH_CAPTION], [typeof IMNG_PRIME_TABLE, typeof IMNG_PRIME_SEARCH_CAPTION]>; static ɵinj: i0.ɵɵInjectorDeclaration<ImngPrimeTableODataModule>; } declare function toODataQuery(val: PrimeTableState): ODataQuery; declare function transformPrimeRelatedTableFilters(filter: ICompositeFilter): ICompositeFilter; interface PrimeODataTableState<Entity> { tableData: Array<Entity>; totalRecordCount: number | undefined; activeEffectCount: number; tableState: PrimeTableState; /** Last known error (if any) */ error: unknown | undefined; } declare function createPrimeODataTableInitialState<TEntity>(): PrimeODataTableState<TEntity>; declare function handleMultiColumnSorting(val: LazyLoadEvent, sortState: SortMeta[]): SortMeta[]; declare function imngPrimeEffectErrorReducer<T extends { activeEffectCount: number; error: unknown; }>(state: T, effectError: { payload: { error: Error; }; }): T; declare function incrementActiveEffectCount<T extends { activeEffectCount: number; }>(state: T): T; declare function decrementActiveEffectCount<T extends { activeEffectCount: number; }>(state: T): T; export { IMNG_PRIME_SEARCH_CAPTION, IMNG_PRIME_TABLE, ImngPrimeODataTableBaseComponent, ImngPrimeTableODataModule, createPrimeODataTableInitialState, decrementActiveEffectCount, handleMultiColumnSorting, imngPrimeEffectErrorReducer, incrementActiveEffectCount, toODataQuery, transformPrimeRelatedTableFilters }; export type { IPrimeODataTableFacade, PrimeODataTableState, PrimeTableState };