@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.5 kB
Source Map (JSON)
{"version":3,"file":"rxap-data-source-http-pagination.mjs","sources":["../../../../../packages/angular/data-source/http/pagination/src/lib/error.ts","../../../../../packages/angular/data-source/http/pagination/src/lib/tokens.ts","../../../../../packages/angular/data-source/http/pagination/src/lib/http-pagination.data-source.ts","../../../../../packages/angular/data-source/http/pagination/src/lib/to-http-pagination.pipe.ts","../../../../../packages/angular/data-source/http/pagination/src/index.ts","../../../../../packages/angular/data-source/http/pagination/src/rxap-data-source-http-pagination.ts"],"sourcesContent":["import { RxapHttpDataSourceError } from '@rxap/data-source/http';\n\nexport class RxapHttpPaginationDataSourceError extends RxapHttpDataSourceError {\n\n constructor(message: string, code: string, className?: string) {\n super(message, code, className);\n this.addSubPackageName('pagination');\n }\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const RXAP_HTTP_PAGINATION_DATA_SOURCE_TO_OPTIONS_FUNCTION = new InjectionToken(\n 'rxap/data-source/http/pagination');\n","import {\n AbstractPaginationDataSource,\n AbstractPaginationDataSourceMetadata,\n PageEvent,\n PaginatorLike,\n RXAP_PAGINATION_DATA_SOURCE,\n RXAP_PAGINATION_DATA_SOURCE_PAGINATOR,\n RxapAbstractPaginationDataSource,\n} from '@rxap/data-source/pagination';\nimport {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport type { HttpDataSource } from '@rxap/data-source/http';\nimport {\n HttpDataSourceOptions,\n HttpDataSourceViewer,\n} from '@rxap/data-source/http';\nimport {\n BaseDataSourceViewer,\n RXAP_DATA_SOURCE_METADATA,\n} from '@rxap/data-source';\nimport {\n EMPTY,\n Observable,\n TeardownLogic,\n} from 'rxjs';\nimport {\n filter,\n map,\n startWith,\n tap,\n} from 'rxjs/operators';\nimport { RxapHttpPaginationDataSourceError } from './error';\nimport { Constructor } from '@rxap/utilities';\nimport { RXAP_HTTP_PAGINATION_DATA_SOURCE_TO_OPTIONS_FUNCTION } from './tokens';\n\nexport interface PaginationData<Data = any> {\n /**\n * The paged data\n */\n data: Data[];\n\n /**\n * The page item count\n */\n size?: number;\n\n /**\n * The page index\n */\n page?: number;\n\n /**\n * The total number of items\n */\n total: number;\n}\n\nexport interface HttpPaginationDataSourceViewer extends BaseDataSourceViewer {\n readonly viewChange: Observable<PageEvent>;\n}\n\nexport type HttpPaginationDataSourceMetadata = AbstractPaginationDataSourceMetadata\n\nexport type PageEventToHttpOptionsFunction = (\n event: PageEvent,\n) => HttpDataSourceOptions;\n\n@Injectable()\nexport class HttpPaginationDataSource<\n Data\n> extends AbstractPaginationDataSource<Data> {\n constructor(\n @Inject(RXAP_PAGINATION_DATA_SOURCE)\n private readonly dataSource: HttpDataSource<PaginationData<Data>>,\n @Optional()\n @Inject(RXAP_PAGINATION_DATA_SOURCE_PAGINATOR)\n paginator: PaginatorLike | null = null,\n @Optional()\n @Inject(RXAP_HTTP_PAGINATION_DATA_SOURCE_TO_OPTIONS_FUNCTION)\n pageEventToHttpOptions: any | null = null,\n @Optional()\n @Inject(RXAP_DATA_SOURCE_METADATA)\n metadata: HttpPaginationDataSourceMetadata = dataSource.metadata,\n ) {\n super(paginator, metadata);\n }\n\n public pageEventToHttpOptions(event: PageEvent): HttpDataSourceOptions {\n throw new RxapHttpPaginationDataSourceError(\n 'The PageEventToHttpOptionsFunction is not defined',\n '',\n );\n }\n\n protected override _connect(\n viewer: HttpDataSourceViewer,\n ): [ Observable<Data[]>, TeardownLogic ] {\n this.assertPaginator();\n\n if (viewer.viewChange && viewer.viewChange !== EMPTY) {\n console.warn('The viewChange property is readonly');\n }\n\n if (this.paginator === undefined || this.paginator.page === undefined) {\n throw new RxapHttpPaginationDataSourceError(\n 'The paginator instance has not a page property',\n '',\n );\n }\n\n viewer.viewChange = this.paginator.page.pipe(\n startWith({\n pageIndex: this.paginator.pageIndex,\n pageSize: this.paginator.pageSize,\n length: this.paginator.length,\n } as PageEvent),\n tap((page) => {\n if (typeof page.pageSize !== 'number') {\n console.warn('The page size is not defined!');\n }\n }),\n filter((page) => typeof page.pageSize === 'number'),\n map((page) => this.pageEventToHttpOptions(page)),\n );\n\n return [\n this.dataSource.connect(viewer).pipe(\n tap((paginationData) => {\n if (typeof paginationData !== 'object') {\n throw new RxapHttpPaginationDataSourceError(\n 'The http data source does not return a PaginationData object. Value is not an object',\n '',\n );\n }\n if (paginationData['total'] === undefined || paginationData['total'] === null) {\n throw new RxapHttpPaginationDataSourceError(\n 'The http data source does not return a PaginationData object. Object has not the property total',\n '',\n );\n }\n if (\n !paginationData['data'] &&\n !Array.isArray(paginationData['data'])\n ) {\n throw new RxapHttpPaginationDataSourceError(\n 'The http data source does not return a PaginationData object. Object has not the property data' +\n ' property of the value not an array',\n '',\n );\n }\n if (\n paginationData['size'] !== undefined &&\n paginationData['size'] !== this.paginator!.pageSize\n ) {\n console.warn(\n 'The selected page size from the paginator is not equal to the page size from the PaginationData object',\n );\n }\n if (\n paginationData['page'] !== undefined &&\n paginationData['page'] !== this.paginator!.pageIndex\n ) {\n console.warn(\n 'The selected page index from the paginator is not equal to the page index from the PaginationData object',\n );\n }\n }),\n tap((paginationData) => this.updateTotalLength(paginationData['total'])),\n map((paginationData) => paginationData['data']),\n ),\n () => this.dataSource.disconnect(viewer),\n ];\n }\n}\n\nexport function RxapHttpPaginationDataSource<Data>(\n metadata: HttpPaginationDataSourceMetadata,\n className = 'HttpPaginationDataSource',\n packageName = '@rxap/data-source/http/pagination',\n) {\n return function (target: Constructor<HttpPaginationDataSource<Data>>) {\n RxapAbstractPaginationDataSource(metadata, className, packageName)(target);\n };\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { HttpDataSource } from '@rxap/data-source/http';\nimport {\n HttpPaginationDataSource,\n PageEventToHttpOptionsFunction,\n PaginationData,\n} from './http-pagination.data-source';\nimport { PaginatorLike } from '@rxap/data-source/pagination';\n\n@Pipe({\n name: 'toHttpPagination',\n standalone: true,\n})\nexport class ToHttpPaginationPipe implements PipeTransform {\n\n public transform<Data>(\n dataSource: HttpDataSource<PaginationData<Data>>,\n paginator: PaginatorLike,\n pageEventToHttpOptions: PageEventToHttpOptionsFunction,\n ): HttpPaginationDataSource<Data> {\n return new HttpPaginationDataSource<Data>(dataSource, paginator, pageEventToHttpOptions);\n }\n\n}\n\n\n","// region \nexport * from './lib/error';\nexport * from './lib/http-pagination.data-source';\nexport * from './lib/to-http-pagination.pipe';\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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"}