{"version":3,"file":"ngx-obelisco-example-pagination.mjs","sources":["../../../projects/ngx-obelisco/pagination/components/pagination-item/pagination-item.component.ts","../../../projects/ngx-obelisco/pagination/components/pagination-item/pagination-item.component.html","../../../projects/ngx-obelisco/pagination/components/pagination-number/pagination-number.component.ts","../../../projects/ngx-obelisco/pagination/components/pagination-number/pagination-number.component.html","../../../projects/ngx-obelisco/pagination/o-pagination.component.ts","../../../projects/ngx-obelisco/pagination/o-pagination.component.html","../../../projects/ngx-obelisco/pagination/o-pagination.module.ts","../../../projects/ngx-obelisco/pagination/ngx-obelisco-example-pagination.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'o-pagination-item',\r\n  templateUrl: './pagination-item.component.html',\r\n  styleUrls: ['./pagination-item.component.scss']\r\n})\r\nexport class PaginationItemComponent {\r\n  @Input() public isActive!: boolean;\r\n  @Input() public isDisabled!: boolean;\r\n  @Input() public isNoEvent!: boolean;\r\n}\r\n","<li class=\"page-item\" [class.active]=\"isActive\" [class.no-events]=\"isNoEvent\" [class.disabled]=\"isDisabled\">\r\n  <ng-container *ngIf=\"isNoEvent; else showLink\">\r\n    <span class=\"page-link\">...</span>\r\n  </ng-container>\r\n  <ng-template #showLink>\r\n    <a class=\"page-link\" href=\"#\">\r\n      <ng-content></ng-content>\r\n    </a>\r\n  </ng-template>\r\n</li>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'o-pagination-number',\r\n  templateUrl: './pagination-number.component.html',\r\n  styleUrls: ['./pagination-number.component.scss']\r\n})\r\nexport class PaginationNumberComponent {\r\n  @Input() public index!: number;\r\n  @Input() public current!: number;\r\n}\r\n","<o-pagination-item [isActive]=\"index === current\">\r\n  {{ index + 1 }}\r\n</o-pagination-item>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'o-pagination',\r\n  templateUrl: './o-pagination.component.html',\r\n  styleUrls: ['./o-pagination.component.scss']\r\n})\r\nexport class OPaginationComponent implements OnInit {\r\n  @Input() public totalPages!: number;\r\n  @Input() public ariaLabel!: string;\r\n  @Input() public currentPage: number = 1;\r\n  @Input() public isDiscriptiveType: boolean = false;\r\n  @Input() public customClasses: string = '';\r\n  @Output() public currentPageChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n  public pagesArr: number[] = [];\r\n  public isShowTopTrimmer = false;\r\n  public isShowBottomTrimmer = false;\r\n  public pagesToShow: number[] = [];\r\n  public lastIndex!: number;\r\n  public isBlockEvent = false;\r\n\r\n  get getIsFirstPage(): boolean {\r\n    return this.currentPage === 0;\r\n  }\r\n\r\n  get getIsLastPage(): boolean {\r\n    return this.currentPage === this.pagesArr.length - 1;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.pagesArr = Array.from(Array(this.totalPages).keys());\r\n    this.pagesToShow = this.pagesArr;\r\n    this.lastIndex = this.pagesArr.length - 1;\r\n    this.isShowTopTrimmer = true;\r\n    this.selectedPage(this.currentPage - 1);\r\n  }\r\n\r\n  public selectedPage(page: number): void {\r\n    if (this.currentPage === page) return;\r\n    this.currentPage = page;\r\n\r\n    if (!this.isBlockEvent) {\r\n      this.currentPageChange.emit(page + 1);\r\n    }\r\n\r\n    if (this.pagesArr.length > 2) {\r\n      if (this.currentPage < 4) {\r\n        this.lastIndex = this.pagesArr.length - 1;\r\n        this.pagesToShow = [0, 1, 2, 3, 4];\r\n        this.isShowTopTrimmer = true;\r\n        this.isShowBottomTrimmer = false;\r\n      } else if (this.currentPage > this.lastIndex - 4) {\r\n        this.pagesToShow = this.pagesArr.slice(-5);\r\n        this.isShowTopTrimmer = false;\r\n        this.isShowBottomTrimmer = true;\r\n      } else {\r\n        this.pagesToShow = this.pagesArr.slice(this.currentPage - 1, this.currentPage + 2);\r\n        this.isShowBottomTrimmer = true;\r\n        this.isShowTopTrimmer = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  public onPrev(): void {\r\n    this.isBlockEvent = true;\r\n    this.currentPageChange.emit(this.currentPage);\r\n    if (this.currentPage > 0) this.selectedPage(this.currentPage - 1);\r\n    this.isBlockEvent = false;\r\n  }\r\n\r\n  public onNext(): void {\r\n    this.isBlockEvent = true;\r\n    if (this.currentPage < this.pagesArr.length - 1) this.selectedPage(this.currentPage + 1);\r\n    this.currentPageChange.emit(this.currentPage + 1);\r\n    this.isBlockEvent = false;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"!isDiscriptiveType; else descriptive\">\r\n  <nav [attr.aria-label]=\"ariaLabel\" [ngClass]=\"customClasses\">\r\n    <ul class=\"pagination\">\r\n      <o-pagination-item [class.hidden]=\"getIsFirstPage\" (click)=\"onPrev()\">\r\n        <span class=\"page-previous-icon\" [attr.aria-hidden]=\"true\"></span>\r\n        <span class=\"page-previous-text\">Anterior</span>\r\n      </o-pagination-item>\r\n\r\n      <ng-container *ngIf=\"isShowBottomTrimmer\">\r\n        <o-pagination-number [index]=\"0\" [current]=\"currentPage\" (click)=\"selectedPage(0)\"> </o-pagination-number>\r\n        <o-pagination-item [isDisabled]=\"true\" [isNoEvent]=\"true\"></o-pagination-item>\r\n      </ng-container>\r\n\r\n      <o-pagination-number *ngFor=\"let i of pagesToShow\" [index]=\"i\" [current]=\"currentPage\" (click)=\"selectedPage(i)\">\r\n      </o-pagination-number>\r\n\r\n      <ng-container *ngIf=\"isShowTopTrimmer\">\r\n        <o-pagination-item [isDisabled]=\"true\" [isNoEvent]=\"true\"></o-pagination-item>\r\n        <o-pagination-number [index]=\"lastIndex\" [current]=\"currentPage\" (click)=\"selectedPage(lastIndex)\">\r\n        </o-pagination-number>\r\n      </ng-container>\r\n\r\n      <o-pagination-item [class.hidden]=\"getIsLastPage\" (click)=\"onNext()\">\r\n        <span class=\"page-next-text\">Siguiente</span>\r\n        <span class=\"page-next-icon\" [attr.aria-hidden]=\"true\"></span>\r\n      </o-pagination-item>\r\n    </ul>\r\n  </nav>\r\n</ng-container>\r\n\r\n<ng-template #descriptive>\r\n  <div class=\"pagination\" [ngClass]=\"customClasses\">\r\n    <div class=\"page-navigation\">\r\n      <div class=\"page-item\" [class.hidden]=\"getIsFirstPage\" (click)=\"onPrev()\">\r\n        <a class=\"btn page-link\" href=\"#\">\r\n          <span class=\"page-previous-icon\" [attr.aria-hidden]=\"true\"></span>\r\n          <span class=\"page-next-text\">Anterior</span>\r\n        </a>\r\n      </div>\r\n      <div class=\"page-item\" [class.hidden]=\"getIsLastPage\" (click)=\"onNext()\">\r\n        <a class=\"btn page-link\" href=\"#\">\r\n          <span class=\"page-next-text\">Siguiente</span>\r\n          <span class=\"page-next-icon\" [attr.aria-hidden]=\"true\"></span>\r\n        </a>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OPaginationComponent } from './o-pagination.component';\r\nimport { PaginationNumberComponent } from './components/pagination-number/pagination-number.component';\r\nimport { PaginationItemComponent } from './components/pagination-item/pagination-item.component';\r\n\r\n@NgModule({\r\n  declarations: [OPaginationComponent, PaginationNumberComponent, PaginationItemComponent],\r\n  imports: [CommonModule],\r\n  exports: [OPaginationComponent]\r\n})\r\nexport class OPaginationModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PaginationItemComponent","i2.PaginationNumberComponent","i3.PaginationItemComponent"],"mappings":"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"}