UNPKG

@synergy-design-system/angular

Version:
1 lines 11 kB
{"version":3,"file":"synergy-design-system-angular-components-pagination.mjs","sources":["../../components/pagination/pagination.component.ts","../../components/pagination/synergy-design-system-angular-components-pagination.ts"],"sourcesContent":["// ---------------------------------------------------------------------\n// 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components\n// Please do not edit this file directly!\n// It will get recreated when running pnpm build.\n// ---------------------------------------------------------------------\nimport {\n Component,\n ElementRef,\n NgZone,\n Input,\n Output,\n EventEmitter,\n AfterContentInit,\n} from '@angular/core';\nimport type SynPagination from '@synergy-design-system/components/components/pagination/pagination.component.js';\nimport type { SynPaginationPageChangedEvent } from '@synergy-design-system/components';\nimport type { SynPaginationPageSizeChangedEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/pagination/pagination.js';\n\n/**\n * @summary <syn-pagination /> provides page navigation, direct page input, and page-size selection for large data sets.\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-pagination--docs\n * @status stable\n * @since 3.12.0\n *\n * @event syn-pagination-page-changed - Emitted when the current page changes\n * @event syn-pagination-page-size-changed - Emitted when the page size changes\n *\n * @csspart base - The component's base wrapper.\n * @csspart divider - The divider element displayed at the top of the pagination component.\n * @csspart page-size-select-wrapper - The wrapper element containing the page size select and page item summary.\n * @csspart page-size-select - The page size select element.\n * @csspart page-item-summary - The text element displaying the current page item range and total items.\n * @csspart page-input-section - The section containing the page number input and total pages display.\n * @csspart page-input - The page number input element.\n * @csspart navigation - The pagination navigation element.\n * @csspart navigation-action - The individual navigation action buttons (first, previous, next, last).\n *\n * @accessibility\n * The entire component is wrapped in a semantic `<nav>` landmark with an `aria-label` for screen reader accessibility.\n * Use the `aria-label` attribute to provide a unique, descriptive label when multiple pagination controls exist on the page.\n * Example: `<syn-pagination aria-label=\"Search results pagination\"></syn-pagination>`\n */\n@Component({\n selector: 'syn-pagination',\n standalone: true,\n template: '<ng-content></ng-content>',\n})\nexport class SynPaginationComponent {\n public nativeElement: SynPagination;\n private _ngZone: NgZone;\n\n constructor(e: ElementRef, ngZone: NgZone) {\n this.nativeElement = e.nativeElement;\n this._ngZone = ngZone;\n this.nativeElement.addEventListener(\n 'syn-pagination-page-changed',\n (e: SynPaginationPageChangedEvent) => {\n this.synPaginationPageChangedEvent.emit(e);\n },\n );\n this.nativeElement.addEventListener(\n 'syn-pagination-page-size-changed',\n (e: SynPaginationPageSizeChangedEvent) => {\n this.synPaginationPageSizeChangedEvent.emit(e);\n },\n );\n }\n\n /**\n * When true, a divider is displayed at the top of the pagination component.\n */\n @Input()\n set divider(v: '' | SynPagination['divider']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.divider = v === '' || v),\n );\n }\n get divider(): SynPagination['divider'] {\n return this.nativeElement.divider;\n }\n\n /**\n * When true, the pagination controls are disabled and non-interactive.\n */\n @Input()\n set disabled(v: '' | SynPagination['disabled']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.disabled = v === '' || v),\n );\n }\n get disabled(): SynPagination['disabled'] {\n return this.nativeElement.disabled;\n }\n\n /**\n * The size of the pagination controls.\n */\n @Input()\n set size(v: SynPagination['size']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));\n }\n get size(): SynPagination['size'] {\n return this.nativeElement.size;\n }\n\n /**\n* The current page number.\n* The default value is 1.\nThe component will emit a `syn-pagination-page-changed` event whenever the page changes, allowing you to respond to page changes in your application.\n */\n @Input()\n set currentPage(v: SynPagination['currentPage']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.currentPage = v));\n }\n get currentPage(): SynPagination['currentPage'] {\n return this.nativeElement.currentPage;\n }\n\n /**\n* The number of items to display per page.\n* The default value is 25.\nThe component will emit a `syn-pagination-page-size-changed` event whenever the page size changes, allowing you to respond to page size changes in your application.\n */\n @Input()\n set pageSize(v: SynPagination['pageSize']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.pageSize = v));\n }\n get pageSize(): SynPagination['pageSize'] {\n return this.nativeElement.pageSize;\n }\n\n /**\n* An array of numbers representing the available options for the number of items to display per page.\n* The default value is [10, 25, 50, 100].\nThe component will use this array to populate the rows-per-page selector, allowing users to choose from the specified options.\n */\n @Input()\n set pageSizeOptions(v: SynPagination['pageSizeOptions']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.pageSizeOptions = v),\n );\n }\n get pageSizeOptions(): SynPagination['pageSizeOptions'] {\n return this.nativeElement.pageSizeOptions;\n }\n\n /**\n * Total amount of items.\n * The component will use this value to calculate the total number of pages based on the selected rows per page.\n */\n @Input()\n set totalItems(v: SynPagination['totalItems']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.totalItems = v));\n }\n get totalItems(): SynPagination['totalItems'] {\n return this.nativeElement.totalItems;\n }\n\n /**\n* The pagination variant to use.\n* The \"full\" variant includes comprehensive controls for navigating between pages and adjusting the number of displayed rows,\nwhile the \"compact\" variant offers a streamlined interface with essential navigation controls.\nThe default value is \"full\".\n */\n @Input()\n set variant(v: SynPagination['variant']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.variant = v));\n }\n get variant(): SynPagination['variant'] {\n return this.nativeElement.variant;\n }\n\n /**\n * An accessible label for the navigation landmark.\n * Customize for multiple paginations on a page.\n */\n @Input()\n set ariaLabel(v: SynPagination['ariaLabel']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.ariaLabel = v));\n }\n get ariaLabel(): SynPagination['ariaLabel'] {\n return this.nativeElement.ariaLabel;\n }\n\n /**\n * Emitted when the current page changes\n */\n @Output() synPaginationPageChangedEvent =\n new EventEmitter<SynPaginationPageChangedEvent>();\n\n /**\n * Emitted when the page size changes\n */\n @Output() synPaginationPageSizeChangedEvent =\n new EventEmitter<SynPaginationPageSizeChangedEvent>();\n}\n\nexport type { SynPaginationPageChangedEvent } from '@synergy-design-system/components';\nexport type { SynPaginationPageSizeChangedEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './pagination.component';\n"],"names":[],"mappings":"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"}