{"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';\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})\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';\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})\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  <li class=\"pagination-first page-item\"\n      *ngIf=\"boundaryLinks\"\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  <li class=\"pagination-prev page-item\"\n      *ngIf=\"directionLinks\"\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  <li *ngFor=\"let pg of pages\"\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  <li class=\"pagination-next page-item\"\n      *ngIf=\"directionLinks\"\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  <li class=\"pagination-last page-item\"\n      *ngIf=\"boundaryLinks\"\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</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 { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { PagerComponent } from './pager.component';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [PagerComponent, PaginationComponent],\n  exports: [PagerComponent, PaginationComponent]\n})\nexport class PaginationModule {\n  static forRoot(): ModuleWithProviders<PaginationModule> {\n    return { ngModule: PaginationModule, providers: [] };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PaginationConfig"],"mappings":"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"}