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