@rxap/data-source
Version:
Provides a set of classes and decorators for creating and managing data sources in Angular applications, including base classes, static data sources, observable data sources, and method data sources. It also includes a component for displaying data source
1 lines • 11 kB
Source Map (JSON)
{"version":3,"file":"rxap-data-source-pagination.mjs","sources":["../../../../../packages/angular/data-source/pagination/src/lib/tokens.ts","../../../../../packages/angular/data-source/pagination/src/lib/error.ts","../../../../../packages/angular/data-source/pagination/src/lib/abstract-pagination.data-source.ts","../../../../../packages/angular/data-source/pagination/src/lib/pagination.data-source.ts","../../../../../packages/angular/data-source/pagination/src/index.ts","../../../../../packages/angular/data-source/pagination/src/rxap-data-source-pagination.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { BaseDataSource } from '@rxap/data-source';\nimport { PaginatorLike } from './abstract-pagination.data-source';\n\nexport const RXAP_PAGINATION_DATA_SOURCE = new InjectionToken<BaseDataSource<any[]>>(\n '@rxap/data-source/pagination/source');\nexport const RXAP_PAGINATION_DATA_SOURCE_PAGINATOR = new InjectionToken<PaginatorLike>(\n '@rxap/data-source/pagination/paginator');\n","import { RxapDataSourceError } from '@rxap/data-source';\n\nexport class RxapPaginationDataSourceError extends RxapDataSourceError {\n\n constructor(message: string, code: string, className?: string) {\n super(message, code, className);\n this.addSubPackageName('pagination');\n }\n\n}\n","import {\n BaseDataSource,\n BaseDataSourceMetadata,\n RXAP_DATA_SOURCE_METADATA,\n RxapDataSource,\n} from '@rxap/data-source';\nimport {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport { RXAP_PAGINATION_DATA_SOURCE_PAGINATOR } from './tokens';\nimport { RxapPaginationDataSourceError } from './error';\nimport {\n Constructor,\n IsRequiredPropertyDefined,\n} from '@rxap/utilities';\nimport { Observable } from 'rxjs';\n\nexport interface PageEvent {\n /** The current page index. */\n pageIndex: number;\n /** The current page size */\n pageSize: number;\n /** The current total number of items being paged */\n length?: number;\n}\n\nexport interface PaginatorLike {\n disabled?: boolean;\n /** Event emitted when the paginator changes the page size or page index. */\n page?: Observable<PageEvent>;\n /** Number of items to display on a page. By default set to 50. */\n pageSize: number;\n /** The zero-based page index of the displayed list of items. Defaulted to 0. */\n pageIndex: number;\n /** The length of the total number of items that are being paginated. Defaulted to 0. */\n length: number;\n\n /** Resets the pagination to the first page **/\n firstPage?(): void;\n}\n\nexport type AbstractPaginationDataSourceMetadata = BaseDataSourceMetadata\n\n@Injectable()\nexport abstract class AbstractPaginationDataSource<Data> extends BaseDataSource<Data[]> {\n\n public paginator?: PaginatorLike;\n\n constructor(\n @Optional()\n @Inject(RXAP_PAGINATION_DATA_SOURCE_PAGINATOR)\n paginator: PaginatorLike | null = null,\n @Optional()\n @Inject(RXAP_DATA_SOURCE_METADATA)\n metadata: AbstractPaginationDataSourceMetadata | null = null,\n ) {\n super(metadata);\n if (paginator) {\n this.paginator = paginator;\n }\n }\n\n public get pageIndex(): number {\n return this.paginator?.pageIndex ?? 0;\n }\n\n public get pageSize(): number {\n return this.paginator?.pageSize ?? this.totalLength;\n }\n\n private _totalLength = 0;\n\n public get totalLength(): number {\n return this._totalLength;\n }\n\n protected updateTotalLength(totalLength: number): void {\n if (this.paginator && this.paginator.length !== totalLength) {\n this.paginator.length = totalLength;\n }\n this._totalLength = totalLength;\n }\n\n protected assertPaginator(): void {\n if (!IsRequiredPropertyDefined(this, 'paginator')) {\n throw new RxapPaginationDataSourceError('The paginator instance is not defined!', '');\n }\n }\n\n protected applyPagination(data: ReadonlyArray<Data>, pageSize: number, pageIndex: number): Data[] {\n return data.slice(pageSize * pageIndex, pageSize * pageIndex + pageSize);\n }\n\n}\n\nexport function RxapAbstractPaginationDataSource(\n metadataOrId: string | AbstractPaginationDataSourceMetadata,\n className = 'AbstractPaginationDataSource',\n packageName = '@rxap/data-source/pagination',\n) {\n return function (target: Constructor<AbstractPaginationDataSource<any>>) {\n RxapDataSource(metadataOrId, className, packageName)(target);\n };\n}\n","import {\n BaseDataSource,\n BaseDataSourceViewer,\n RXAP_DATA_SOURCE_METADATA,\n RxapDataSource,\n} from '@rxap/data-source';\nimport {\n RXAP_PAGINATION_DATA_SOURCE,\n RXAP_PAGINATION_DATA_SOURCE_PAGINATOR,\n} from './tokens';\nimport {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n Observable,\n TeardownLogic,\n} from 'rxjs';\nimport {\n map,\n startWith,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { RxapPaginationDataSourceError } from './error';\nimport {\n AbstractPaginationDataSource,\n AbstractPaginationDataSourceMetadata,\n PaginatorLike,\n} from './abstract-pagination.data-source';\nimport { Constructor } from '@rxap/utilities';\n\nexport type PaginationDataSourceMetadata = AbstractPaginationDataSourceMetadata\n\n@Injectable()\nexport class PaginationDataSource<Data> extends AbstractPaginationDataSource<Data> {\n\n constructor(\n @Inject(RXAP_PAGINATION_DATA_SOURCE) public readonly dataSource: BaseDataSource<Data[]>,\n @Optional() @Inject(RXAP_PAGINATION_DATA_SOURCE_PAGINATOR) paginator: PaginatorLike | null = null,\n @Optional() @Inject(RXAP_DATA_SOURCE_METADATA) metadata: PaginationDataSourceMetadata = dataSource.metadata,\n ) {\n super(paginator, metadata);\n }\n\n public override refresh(): any {\n this.dataSource.refresh();\n }\n\n protected override _connect(viewer: BaseDataSourceViewer): [ Observable<Data[]>, TeardownLogic ] {\n\n this.assertPaginator();\n\n return [\n this.dataSource.connect(viewer).pipe(\n tap(data => this.updateTotalLength(data.length)),\n switchMap(data => {\n\n if (!Array.isArray(data)) {\n throw new RxapPaginationDataSourceError('The source data source must be a collection data source', '');\n }\n\n this.assertPaginator();\n\n if (this.paginator && this.paginator.page) {\n\n return this.paginator.page.pipe(\n startWith({\n pageIndex: this.paginator.pageIndex,\n pageSize: this.paginator.pageSize,\n length: this.paginator.length,\n }),\n map(page => this.applyPagination(data, page.pageSize, page.pageIndex)),\n );\n\n }\n\n throw new Error('The paginator have not a defined page property!');\n\n }),\n ),\n () => this.dataSource.disconnect(viewer),\n ];\n }\n\n}\n\nexport function RxapPaginationDataSource(\n metadataOrId: string | PaginationDataSourceMetadata,\n className = 'PaginationDataSource',\n packageName = '@rxap/data-source/pagination',\n) {\n return function (target: Constructor<PaginationDataSource<any>>) {\n RxapDataSource(metadataOrId, className, packageName)(target);\n };\n}\n","// region \nexport * from './lib/abstract-pagination.data-source';\nexport * from './lib/error';\nexport * from './lib/pagination.data-source';\nexport * from './lib/tokens';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}