{"version":3,"file":"bittu1040-pagination-ng.mjs","sources":["../../../projects/pagination-ng/src/lib/pagination-ng.service.ts","../../../projects/pagination-ng/src/lib/pagination-ng.component.ts","../../../projects/pagination-ng/src/lib/pagination-ng.component.html","../../../projects/pagination-ng/src/public-api.ts","../../../projects/pagination-ng/src/bittu1040-pagination-ng.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PaginationNgService {\r\n\r\n  constructor() { }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'pagination-ng',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './pagination-ng.component.html',\r\n  styleUrls: ['./pagination-ng.component.scss']\r\n})\r\nexport class PaginationNgComponent {\r\n\r\n  @Input() currentPageNumber : number = 1;\r\n  @Input() totalPages: number = 0;        // total number of pages\r\n  @Input() currentPageSize: number = 10;   // default page size\r\n  @Input() pageSizes: number[] = [10, 20, 50];\r\n  @Input() totalItems: number = 0;\r\n\r\n  @Output() pageChange = new EventEmitter<number>();\r\n  @Output() pageSizeChange = new EventEmitter<number>();\r\n  goToFirstPage(){\r\n    this.currentPageNumber = 1;\r\n    this.pageChange.emit(this.currentPageNumber);\r\n  }\r\n  goToPreviousPage(){\r\n    this.currentPageNumber--;\r\n    this.pageChange.emit(this.currentPageNumber);\r\n  }\r\n  goToNextPage(){\r\n    this.currentPageNumber++;\r\n    this.pageChange.emit(this.currentPageNumber);\r\n  }\r\n  goToLastPage(){\r\n    this.currentPageNumber = this.totalPages;\r\n    this.pageChange.emit(this.currentPageNumber);\r\n  }\r\n\r\n  onPageSizeChange(newSize: string): void {\r\n    const size = parseInt(newSize, 10);\r\n    if (size !== this.currentPageSize) {\r\n      this.pageSizeChange.emit(size);\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"container p-4 mt-3 border rounded bg-light\">\r\n    <h2 class=\"mb-4\">Pagination UI</h2>\r\n    <div class=\"row align-items-center\">\r\n        <div class=\"col-12 col-md-6 d-flex align-items-center pagination-buttons mb-3\">\r\n            <div class=\"d-flex\">\r\n                <button class=\"btn btn-outline-secondary me-2\" [disabled]=\"currentPageNumber === 1\" (click)=\"goToFirstPage()\">\r\n                    <i class=\"bi bi-chevron-double-left\"></i>\r\n                </button>\r\n                <button class=\"btn btn-outline-secondary me-2\" [disabled]=\"currentPageNumber === 1\" (click)=\"goToPreviousPage()\">\r\n                    <i class=\"bi bi-chevron-left\"></i>\r\n                </button>\r\n            </div>\r\n            <span class=\"fs-6 mx-2 text-nowrap\">\r\n                {{ currentPageNumber }} of {{ totalPages }}\r\n            </span>\r\n            <div class=\"d-flex\">\r\n                <button class=\"btn btn-outline-secondary me-2\" [disabled]=\"currentPageNumber === totalPages\" (click)=\"goToNextPage()\">\r\n                    <i class=\"bi bi-chevron-right\"></i>\r\n                </button>\r\n                <button class=\"btn btn-outline-secondary\" [disabled]=\"currentPageNumber === totalPages\" (click)=\"goToLastPage()\">\r\n                    <i class=\"bi bi-chevron-double-right\"></i>\r\n                </button>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-12 col-md-6 d-flex justify-content-md-end align-items-center results-info\">\r\n            <div class=\"page-size-selector\">\r\n                Results per page\r\n                <select #sizeSelect (change)=\"onPageSizeChange(sizeSelect.value)\">\r\n                    @for (size of pageSizes; track $index) {\r\n                    <option [value]=\"size\" [selected]=\"currentPageSize === size\">\r\n                        {{ size }}\r\n                    </option>\r\n                    }\r\n                </select>\r\n            </div>\r\n            @if(totalItems){\r\n            <span class=\"total-items\">of {{ totalItems }}</span>\r\n            }\r\n        </div>\r\n    </div>\r\n    \r\n</div>","/*\r\n * Public API Surface of pagination-ng\r\n */\r\n\r\nexport * from './lib/pagination-ng.service';\r\nexport * from './lib/pagination-ng.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}