{"version":3,"file":"ngx-bootstrap-pagination.mjs","sources":["../../../../src/pagination/pagination.config.ts","../../../../src/pagination/pager.component.ts","../../../../src/pagination/pager.component.html","../../../../src/pagination/pagination.component.ts","../../../../src/pagination/pagination.component.html","../../../../src/pagination/pagination.module.ts","../../../../src/pagination/ngx-bootstrap-pagination.ts"],"sourcesContent":["// todo: split\nimport { Injectable } from '@angular/core';\n\nimport { ConfigModel, PagerModel } from './models';\n\n/** Provides default values for Pagination and pager components */\n@Injectable({\n  providedIn: 'root'\n})\nexport class PaginationConfig {\n  main: Partial<ConfigModel> = {\n    itemsPerPage: 10,\n    boundaryLinks: false,\n    directionLinks: true,\n    firstText: 'First',\n    previousText: 'Previous',\n    nextText: 'Next',\n    lastText: 'Last',\n    pageBtnClass: '',\n    rotate: true\n  };\n  pager: PagerModel = {\n    itemsPerPage: 15,\n    previousText: '« Previous',\n    nextText: 'Next »',\n    pageBtnClass: '',\n    align: true\n  };\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnInit,\n  Output,\n  Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ConfigModel, PagesModel } from './models';\n\nimport { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\nimport { NgClass } from '@angular/common';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => PagerComponent),\n  multi: true\n};\n\n@Component({\n    selector: 'pager',\n    templateUrl: './pager.component.html',\n    providers: [PAGER_CONTROL_VALUE_ACCESSOR],\n    standalone: true,\n    imports: [NgClass]\n})\nexport class PagerComponent implements ControlValueAccessor, OnInit {\n  config?: Partial<ConfigModel>;\n  /** if `true` aligns each link to the sides of pager */\n  @Input() align = false;\n  /** limit number for page links in pager */\n  @Input() maxSize?: number;\n  /** if false first and last buttons will be hidden */\n  @Input() boundaryLinks = false;\n  /** if false previous and next buttons will be hidden */\n  @Input() directionLinks = true;\n  // labels\n  /** first button text */\n  @Input() firstText = 'First';\n  /** previous button text */\n  @Input() previousText = '« Previous';\n  /** next button text */\n  @Input() nextText = 'Next »';\n  /** last button text */\n  @Input() lastText = 'Last';\n  /** if true current page will in the middle of pages list */\n  @Input() rotate = true;\n  // css\n  /** add class to <code><li\\></code> */\n  @Input() pageBtnClass = '';\n\n  /** if true pagination component will be disabled */\n  @Input() disabled = false;\n\n  /** fired when total pages count changes, $event:number equals to total pages count */\n  @Output() numPages = new EventEmitter<number>();\n  /** fired when page was changed, $event:{page, itemsPerPage} equals to\n   * object with current page index and number of items per page\n   */\n  @Output()\n  pageChanged = new EventEmitter<PageChangedEvent>();\n  onChange = Function.prototype;\n  onTouched = Function.prototype;\n  classMap = '';\n  pages?: PagesModel[];\n  protected inited = false;\n\n  constructor(private elementRef: ElementRef,\n              paginationConfig: PaginationConfig,\n              private changeDetection: ChangeDetectorRef) {\n    this.elementRef = elementRef;\n    if (!this.config) {\n      this.configureOptions(\n        Object.assign({}, paginationConfig.main, paginationConfig.pager)\n      );\n    }\n  }\n\n  protected _itemsPerPage = 15;\n\n  /** maximum number of items per page. If value less than 1 will display all items on one page */\n  @Input()\n  get itemsPerPage(): number {\n    return this._itemsPerPage;\n  }\n\n  set itemsPerPage(v: number) {\n    this._itemsPerPage = v;\n    this.totalPages = this.calculateTotalPages();\n  }\n\n  protected _totalItems = 0;\n\n  /** total number of items in all pages */\n  @Input()\n  get totalItems(): number {\n    return this._totalItems;\n  }\n\n  set totalItems(v: number) {\n    this._totalItems = v;\n    this.totalPages = this.calculateTotalPages();\n  }\n\n  protected _totalPages = 0;\n\n  get totalPages(): number {\n    return this._totalPages;\n  }\n\n  set totalPages(v: number) {\n    this._totalPages = v;\n    this.numPages.emit(v);\n    if (this.inited) {\n      this.selectPage(this.page);\n    }\n  }\n\n  protected _page = 1;\n\n  get page(): number {\n    return this._page;\n  }\n\n  set page(value: number) {\n    const _previous = this._page;\n    this._page = value > this.totalPages ? this.totalPages : value || 1;\n    this.changeDetection.markForCheck();\n\n    if (_previous === this._page || typeof _previous === 'undefined') {\n      return;\n    }\n\n    this.pageChanged.emit({\n      page: this._page,\n      itemsPerPage: this.itemsPerPage\n    });\n  }\n\n  configureOptions(config: Partial<ConfigModel>): void {\n    this.config = Object.assign({}, config);\n  }\n\n  ngOnInit(): void {\n    if (typeof window !== 'undefined') {\n      this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n    }\n    // watch for maxSize\n    if (typeof this.maxSize === 'undefined') {\n      this.maxSize = this.config?.maxSize || 0;\n    }\n\n    if (typeof this.rotate === 'undefined') {\n      this.rotate = !!this.config?.rotate;\n    }\n\n    if (typeof this.boundaryLinks === 'undefined') {\n      this.boundaryLinks = !!this.config?.boundaryLinks;\n    }\n\n\n    if (typeof this.directionLinks === 'undefined') {\n      this.directionLinks = !!this.config?.directionLinks;\n    }\n\n    if (typeof this.pageBtnClass === 'undefined') {\n      this.pageBtnClass = this.config?.pageBtnClass || '';\n    }\n\n    // base class\n    if (typeof this.itemsPerPage === 'undefined') {\n      this.itemsPerPage = this.config?.itemsPerPage || 0;\n    }\n\n    this.totalPages = this.calculateTotalPages();\n    // this class\n    this.pages = this.getPages(this.page, this.totalPages);\n    this.inited = true;\n  }\n\n  writeValue(value: number): void {\n    this.page = value;\n    this.pages = this.getPages(this.page, this.totalPages);\n  }\n\n  getText(key: string): string {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (this as any)[`${key}Text`] || (this as any).config[`${key}Text`];\n  }\n\n  noPrevious(): boolean {\n    return this.page === 1;\n  }\n\n  noNext(): boolean {\n    return this.page === this.totalPages;\n  }\n\n  registerOnChange(fn: () => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  selectPage(page: number, event?: Event): void {\n    if (event) {\n      event.preventDefault();\n    }\n\n    if (!this.disabled) {\n      if (event && event.target) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        const target: any = event.target;\n        target.blur();\n      }\n      this.writeValue(page);\n      this.onChange(this.page);\n    }\n  }\n\n  // Create page object used in template\n  protected makePage(num: number,\n                     text: string,\n                     active: boolean): { number: number; text: string; active: boolean } {\n    return { text, number: num, active };\n  }\n\n  protected getPages(currentPage: number, totalPages: number): PagesModel[] {\n    const pages: PagesModel[] = [];\n\n    // Default page limits\n    let startPage = 1;\n    let endPage = totalPages;\n    const isMaxSized =\n      typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n    // recompute if maxSize\n    if (isMaxSized && this.maxSize) {\n      if (this.rotate) {\n        // Current page is displayed in the middle of the visible ones\n        startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n        endPage = startPage + this.maxSize - 1;\n\n        // Adjust if limit is exceeded\n        if (endPage > totalPages) {\n          endPage = totalPages;\n          startPage = endPage - this.maxSize + 1;\n        }\n      } else {\n        // Visible pages are paginated with maxSize\n        startPage =\n          (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n        // Adjust last page if limit is exceeded\n        endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n      }\n    }\n\n    // Add page number links\n    for (let num = startPage; num <= endPage; num++) {\n      const page = this.makePage(num, num.toString(), num === currentPage);\n      pages.push(page);\n    }\n\n    // Add links to move between page sets\n    if (isMaxSized && !this.rotate) {\n      if (startPage > 1) {\n        const previousPageSet = this.makePage(startPage - 1, '...', false);\n        pages.unshift(previousPageSet);\n      }\n\n      if (endPage < totalPages) {\n        const nextPageSet = this.makePage(endPage + 1, '...', false);\n        pages.push(nextPageSet);\n      }\n    }\n\n    return pages;\n  }\n\n  // base class\n  protected calculateTotalPages(): number {\n    const totalPages =\n      this.itemsPerPage < 1\n        ? 1\n        : Math.ceil(this.totalItems / this.itemsPerPage);\n\n    return Math.max(totalPages || 0, 1);\n  }\n}\n","<ul class=\"pager\">\n  <li [class.disabled]=\"noPrevious()\" [class.previous]=\"align\"\n      [ngClass]=\"{'pull-left': align, 'float-left': align}\"\n      class=\"{{ pageBtnClass }}\">\n    <a href (click)=\"selectPage(page - 1, $event)\">{{ getText('previous') }}</a>\n  </li>\n  <li [class.disabled]=\"noNext()\" [class.next]=\"align\"\n      [ngClass]=\"{'pull-right': align, 'float-right': align}\"\n      class=\"{{ pageBtnClass }}\">\n    <a href (click)=\"selectPage(page + 1, $event)\">{{ getText('next') }}</a>\n  </li>\n</ul>\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnInit,\n  Output,\n  Provider,\n  TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ConfigModel, PagesModel, PaginationLinkContext, PaginationNumberLinkContext } from './models';\n\nimport { PaginationConfig } from './pagination.config';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nexport interface PageChangedEvent {\n  itemsPerPage: number;\n  page: number;\n}\n\nexport const PAGINATION_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => PaginationComponent),\n  multi: true\n};\n\n@Component({\n    selector: 'pagination',\n    templateUrl: './pagination.component.html',\n    providers: [PAGINATION_CONTROL_VALUE_ACCESSOR],\n    standalone: true,\n    imports: [NgClass, NgTemplateOutlet]\n})\nexport class PaginationComponent implements ControlValueAccessor, OnInit {\n  config?: Partial<ConfigModel>;\n  /** if `true` aligns each link to the sides of pager */\n  @Input() align = true;\n  /** limit number for page links in pager */\n  @Input() maxSize?: number;\n  /** if false first and last buttons will be hidden */\n  @Input() boundaryLinks = false;\n  /** if false previous and next buttons will be hidden */\n  @Input() directionLinks = true;\n  // labels\n  /** first button text */\n  @Input() firstText?: string;\n  /** previous button text */\n  @Input() previousText?: string;\n  /** next button text */\n  @Input() nextText?: string;\n  /** last button text */\n  @Input() lastText?: string;\n  /** if true current page will in the middle of pages list */\n  @Input() rotate = true;\n  // css\n  /** add class to <code><li\\></code> */\n  @Input() pageBtnClass = '';\n  /** if true pagination component will be disabled */\n  @Input() disabled = false;\n  /** custom template for page link */\n  @Input() customPageTemplate?: TemplateRef<PaginationNumberLinkContext>;\n  /** custom template for next link */\n  @Input() customNextTemplate?: TemplateRef<PaginationLinkContext>;\n  /** custom template for previous link */\n  @Input() customPreviousTemplate?: TemplateRef<PaginationLinkContext>;\n  /** custom template for first link */\n  @Input() customFirstTemplate?: TemplateRef<PaginationLinkContext>;\n  /** custom template for last link */\n  @Input() customLastTemplate?: TemplateRef<PaginationLinkContext>;\n\n  /** fired when total pages count changes, $event:number equals to total pages count */\n  @Output() numPages = new EventEmitter<number>();\n  /** fired when page was changed, $event:{page, itemsPerPage} equals to object\n   * with current page index and number of items per page\n   */\n  @Output() pageChanged = new EventEmitter<PageChangedEvent>();\n  onChange = Function.prototype;\n  onTouched = Function.prototype;\n  classMap = '';\n  pages?: PagesModel[];\n  protected inited = false;\n\n  constructor(\n    private elementRef: ElementRef,\n    paginationConfig: PaginationConfig,\n    private changeDetection: ChangeDetectorRef\n  ) {\n    this.elementRef = elementRef;\n    if (!this.config) {\n      this.configureOptions(paginationConfig.main);\n    }\n  }\n\n  protected _itemsPerPage = 10;\n\n  /** maximum number of items per page. If value less than 1 will display all items on one page */\n  @Input()\n  get itemsPerPage(): number {\n    return this._itemsPerPage;\n  }\n\n  set itemsPerPage(v: number) {\n    this._itemsPerPage = v;\n    this.totalPages = this.calculateTotalPages();\n  }\n\n  protected _totalItems = 0;\n\n  /** total number of items in all pages */\n  @Input()\n  get totalItems(): number {\n    return this._totalItems;\n  }\n\n  set totalItems(v: number) {\n    this._totalItems = v;\n    this.totalPages = this.calculateTotalPages();\n  }\n\n  protected _totalPages = 0;\n\n  get totalPages(): number {\n    return this._totalPages;\n  }\n\n  set totalPages(v: number) {\n    this._totalPages = v;\n    this.numPages.emit(v);\n    if (this.inited) {\n      this.selectPage(this.page);\n    }\n  }\n\n  protected _page = 1;\n\n  get page(): number {\n    return this._page;\n  }\n\n  set page(value: number) {\n    const _previous = this._page;\n    this._page = value > this.totalPages ? this.totalPages : value || 1;\n    this.changeDetection.markForCheck();\n\n    if (_previous === this._page || typeof _previous === 'undefined') {\n      return;\n    }\n\n    this.pageChanged.emit({\n      page: this._page,\n      itemsPerPage: this.itemsPerPage\n    });\n  }\n\n  configureOptions(config: Partial<ConfigModel>): void {\n    this.config = Object.assign({}, config);\n  }\n\n  ngOnInit(): void {\n    if (typeof window !== 'undefined') {\n      this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n    }\n\n    // watch for maxSize\n    if (typeof this.maxSize === 'undefined') {\n      this.maxSize = this.config?.maxSize || 0;\n    }\n\n    if (typeof this.rotate === 'undefined') {\n      this.rotate = !!this.config?.rotate;\n    }\n\n    if (typeof this.boundaryLinks === 'undefined') {\n      this.boundaryLinks = !!this.config?.boundaryLinks;\n    }\n\n\n    if (typeof this.directionLinks === 'undefined') {\n      this.directionLinks = !!this.config?.directionLinks;\n    }\n\n    if (typeof this.pageBtnClass === 'undefined') {\n      this.pageBtnClass = this.config?.pageBtnClass || '';\n    }\n\n    // base class\n    if (typeof this.itemsPerPage === 'undefined') {\n      this.itemsPerPage = this.config?.itemsPerPage || 0;\n    }\n\n    this.totalPages = this.calculateTotalPages();\n    // this class\n    this.pages = this.getPages(this.page, this.totalPages);\n    this.inited = true;\n  }\n\n  writeValue(value: number): void {\n    this.page = value;\n    this.pages = this.getPages(this.page, this.totalPages);\n  }\n\n  getText(key: string): string {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (this as any)[`${key}Text`] || (this as any).config[`${key}Text`];\n  }\n\n  noPrevious(): boolean {\n    return this.page === 1;\n  }\n\n  noNext(): boolean {\n    return this.page === this.totalPages;\n  }\n\n  registerOnChange(fn: () => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  selectPage(page: number, event?: Event): void {\n    if (event) {\n      event.preventDefault();\n    }\n\n    if (!this.disabled) {\n      if (event && event.target) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        const target: any = event.target;\n        target.blur();\n      }\n      this.writeValue(page);\n      this.onChange(this.page);\n    }\n  }\n\n  // Create page object used in template\n  protected makePage(\n    num: number,\n    text: string,\n    active: boolean\n  ): { number: number; text: string; active: boolean } {\n    return { text, number: num, active };\n  }\n\n  protected getPages(currentPage: number, totalPages: number): PagesModel[] {\n    const pages: PagesModel[] = [];\n\n    // Default page limits\n    let startPage = 1;\n    let endPage = totalPages;\n    const isMaxSized =\n      typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n    // recompute if maxSize\n    if (isMaxSized && this.maxSize) {\n      if (this.rotate) {\n        // Current page is displayed in the middle of the visible ones\n        startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n        endPage = startPage + this.maxSize - 1;\n\n        // Adjust if limit is exceeded\n        if (endPage > totalPages) {\n          endPage = totalPages;\n          startPage = endPage - this.maxSize + 1;\n        }\n      } else {\n        // Visible pages are paginated with maxSize\n        startPage =\n          (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n        // Adjust last page if limit is exceeded\n        endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n      }\n    }\n\n    // Add page number links\n    for (let num = startPage; num <= endPage; num++) {\n      const page = this.makePage(num, num.toString(), num === currentPage);\n      pages.push(page);\n    }\n\n    // Add links to move between page sets\n    if (isMaxSized && !this.rotate) {\n      if (startPage > 1) {\n        const previousPageSet = this.makePage(startPage - 1, '...', false);\n        pages.unshift(previousPageSet);\n      }\n\n      if (endPage < totalPages) {\n        const nextPageSet = this.makePage(endPage + 1, '...', false);\n        pages.push(nextPageSet);\n      }\n    }\n\n    return pages;\n  }\n\n  // base class\n  protected calculateTotalPages(): number {\n    const totalPages =\n      this.itemsPerPage < 1\n        ? 1\n        : Math.ceil(this.totalItems / this.itemsPerPage);\n\n    return Math.max(totalPages || 0, 1);\n  }\n}\n","<ul class=\"pagination\" [ngClass]=\"classMap\">\n  @if (boundaryLinks) {\n    <li class=\"pagination-first page-item\"\n      [class.disabled]=\"noPrevious() || disabled\">\n      <a class=\"page-link\" href (click)=\"selectPage(1, $event)\">\n        <ng-container [ngTemplateOutlet]=\"customFirstTemplate || defaultFirstTemplate\"\n          [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n        </ng-container>\n      </a>\n    </li>\n  }\n\n  @if (directionLinks) {\n    <li class=\"pagination-prev page-item\"\n      [class.disabled]=\"noPrevious() || disabled\">\n      <a class=\"page-link\" href (click)=\"selectPage(page - 1, $event)\">\n        <ng-container [ngTemplateOutlet]=\"customPreviousTemplate || defaultPreviousTemplate\"\n          [ngTemplateOutletContext]=\"{disabled: noPrevious() || disabled, currentPage: page}\">\n        </ng-container>\n      </a>\n    </li>\n  }\n\n  @for (pg of pages; track pg) {\n    <li\n      [class.active]=\"pg.active\"\n      [class.disabled]=\"disabled && !pg.active\"\n      class=\"pagination-page page-item\">\n      <a class=\"page-link\" href (click)=\"selectPage(pg.number, $event)\">\n        <ng-container [ngTemplateOutlet]=\"customPageTemplate || defaultPageTemplate\"\n          [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pg, currentPage: page}\">\n        </ng-container>\n      </a>\n    </li>\n  }\n\n  @if (directionLinks) {\n    <li class=\"pagination-next page-item\"\n      [class.disabled]=\"noNext() || disabled\">\n      <a class=\"page-link\" href (click)=\"selectPage(page + 1, $event)\">\n        <ng-container [ngTemplateOutlet]=\"customNextTemplate || defaultNextTemplate\"\n          [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n        </ng-container>\n      </a>\n    </li>\n  }\n\n  @if (boundaryLinks) {\n    <li class=\"pagination-last page-item\"\n      [class.disabled]=\"noNext() || disabled\">\n      <a class=\"page-link\" href (click)=\"selectPage(totalPages, $event)\">\n        <ng-container [ngTemplateOutlet]=\"customLastTemplate || defaultLastTemplate\"\n          [ngTemplateOutletContext]=\"{disabled: noNext() || disabled, currentPage: page}\">\n        </ng-container>\n      </a>\n    </li>\n  }\n</ul>\n\n<ng-template #defaultPageTemplate let-page>{{ page.text }}</ng-template>\n\n<ng-template #defaultNextTemplate>{{ getText('next') }}</ng-template>\n\n<ng-template #defaultPreviousTemplate>{{ getText('previous') }}</ng-template>\n\n<ng-template #defaultFirstTemplate>{{ getText('first') }}</ng-template>\n\n<ng-template #defaultLastTemplate>{{ getText('last') }}</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { PagerComponent } from './pager.component';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n    imports: [CommonModule, PagerComponent, PaginationComponent],\n    exports: [PagerComponent, PaginationComponent]\n})\nexport class PaginationModule {\n  // @deprecated method not required anymore, will be deleted in v19.0.0\n  static forRoot(): ModuleWithProviders<PaginationModule> {\n    return {\n      ngModule: PaginationModule,\n      providers: []\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PaginationConfig"],"mappings":"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"}