{"version":3,"file":"ngx-ui-builder-pagination.mjs","sources":["../../../libs/ngx-ui-builder/pagination/src/pagination.component.ts","../../../libs/ngx-ui-builder/pagination/src/pagination.component.html","../../../libs/ngx-ui-builder/pagination/src/pagination.module.ts","../../../libs/ngx-ui-builder/pagination/src/public-api.ts","../../../libs/ngx-ui-builder/pagination/src/ngx-ui-builder-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { PaginationConfig } from './pagination.types';\n\n@Component({\n  selector: 'nub-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NubPaginationComponent implements OnInit, OnDestroy {\n  @Input() set configs(configs: PaginationConfig) {\n    this.localConfigs = { ...this.localConfigs, ...configs };\n  };\n  DOTS = '...';\n\n  localConfigs: PaginationConfig = {\n    pageSizes: [5, 10, 20, 50, 100],\n    pageSize: 10,\n    page: 1,\n    siblingCount: 2,\n    showRefreshButton: false,\n    showPageSizesConfig: false,\n  };\n\n  pagination$: BehaviorSubject<PaginationConfig> = new BehaviorSubject<PaginationConfig>(this.localConfigs);\n  pageArray$: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n  private _componentDestroy: Subject<void> = new Subject<void>();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.pagination$.next(this.localConfigs);\n\n    this.refresh();\n\n    this.pagination$.pipe(\n      takeUntil(this._componentDestroy),\n    ).subscribe((pagination => {\n      Object.assign(this.localConfigs, pagination);\n    }));\n  }\n\n  ngOnDestroy() {\n    this._componentDestroy.next();\n    this._componentDestroy.complete();\n  }\n\n  buildPageArray(): Observable<any[]> {\n    return this.pagination$.pipe(\n      takeUntil(this._componentDestroy),\n      filter(pagination => !!pagination),\n      map(pagination => {\n        const totalPageCount = Math.round((pagination?.totalItems ?? 0) / (pagination?.pageSize ?? 10));\n\n        // siblingCount + firstPage + lastPage + currentPage + 2*DOTS\n        const totalPageNumbers = (pagination?.siblingCount ?? 1) + 5;\n\n        // [1..totalPageCount]\n        if (totalPageNumbers >= totalPageCount) {\n          return this.range(1, totalPageCount);\n        }\n\n        const leftSiblingIndex = Math.max((pagination?.page ?? 1) - (pagination?.siblingCount ?? 1), 1);\n        const rightSiblingIndex = Math.min(\n          (pagination?.page ?? 1) + (pagination?.siblingCount ?? 1),\n          totalPageCount\n        );\n\n        const shouldShowLeftDots = leftSiblingIndex > 2;\n        const shouldShowRightDots = rightSiblingIndex < totalPageCount - 2;\n\n        const firstPageIndex = 1;\n        const lastPageIndex = totalPageCount;\n\n        if (!shouldShowLeftDots && shouldShowRightDots) {\n          const leftItemCount = 3 + 2 * (pagination?.siblingCount ?? 1);\n          const leftRange = this.range(1, leftItemCount);\n\n          return [...leftRange, this.DOTS, totalPageCount];\n        }\n\n        if (shouldShowLeftDots && !shouldShowRightDots) {\n          const rightItemCount = 3 + 2 * (pagination?.siblingCount ?? 1);\n          const rightRange = this.range(\n            totalPageCount - rightItemCount + 1,\n            totalPageCount\n          );\n          return [firstPageIndex, this.DOTS, ...rightRange];\n        }\n\n        if (shouldShowLeftDots && shouldShowRightDots) {\n          const middleRange = this.range(leftSiblingIndex, rightSiblingIndex);\n          return [firstPageIndex, this.DOTS, ...middleRange, this.DOTS, lastPageIndex];\n        }\n\n        return new Array(totalPageCount);\n      }),\n    );\n  }\n\n  async setPageSize(): Promise<void> {\n    await this.refresh();\n    const pagination = this.buildOptions();\n    if (this.localConfigs.afterChangePageSize) {\n      this.localConfigs.afterChangePageSize(pagination);\n    } else {\n      this.goToPage(0);\n    }\n  }\n\n  goToPage(pageIndex: number): void {\n    const pagination = this.buildOptions(pageIndex);\n\n    this.pagination$.next({\n      ...pagination,\n    } as PaginationConfig);\n\n    if (this.localConfigs.afterChangePage) {\n      this.localConfigs.afterChangePage(pagination);\n    }\n    this.refresh();\n  }\n\n  refresh(): void {\n    this.buildPageArray().subscribe(data => {\n      this.pageArray$.next(data);\n    });\n  }\n\n  onRefresh(): void {\n    this.refresh();\n  }\n\n  private buildOptions(pageIndex = 0) {\n    return {\n      pageSizes: this.localConfigs.pageSizes,\n      pageSize: this.localConfigs.pageSize,\n      page: pageIndex + 1,\n      siblingCount: this.localConfigs.siblingCount,\n      totalItems: this.localConfigs.totalItems,\n    };\n  }\n\n  private range(start: number, end: number) {\n    const length = end - start + 1;\n    return Array.from({ length }, (_, idx) => idx + start);\n  }\n}\n","<div class=\"pagination-container\">\n\n  <button class=\"btn-refresh\" (click)=\"onRefresh()\">Refresh</button>\n\n  <!-- Pagination Section -->\n  <div class=\"settings\">\n    <label>\n      {{localConfigs.labelSettingsItemsPerPage || 'Items per page'}}:\n      <select [(ngModel)]=\"localConfigs.pageSize\" (change)=\"setPageSize()\">\n        <option *ngFor=\"let page of (pagination$ | async)!.pageSizes\">\n          <span>{{ page }}</span>\n        </option>\n      </select>\n    </label>\n  </div>\n\n  <div class=\"pagination\" *ngIf=\"pagination$ | async\">\n    <ng-container *ngTemplateOutlet=\"firstTemplate\"></ng-container>\n    <ng-container *ngTemplateOutlet=\"previousTemplate\"></ng-container>\n    <ng-container *ngFor=\"let page of pageArray$ | async; let i = index\">\n      <ng-container *ngIf=\"page === DOTS\">\n        <ng-container *ngTemplateOutlet=\"dotTemplate\"></ng-container>\n      </ng-container>\n      <ng-container *ngIf=\"page !== DOTS\">\n        <ng-container *ngTemplateOutlet=\"pageNumberTemplate; context: {$implicit: page}\"></ng-container>\n      </ng-container>\n    </ng-container>\n    <ng-container *ngTemplateOutlet=\"nextTemplate\"></ng-container>\n    <ng-container *ngTemplateOutlet=\"lastTemplate\"></ng-container>\n  </div>\n</div>\n\n<ng-template #firstTemplate>\n  <div (click)=\"goToPage(0)\">\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\" viewBox=\"0 0 24 24\"\n      stroke-width=\"1.5\"\n      stroke=\"currentColor\"\n      class=\"page-icon\"\n    >\n      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M18.75 19.5l-7.5-7.5 7.5-7.5m-6 15L5.25 12l7.5-7.5\"/>\n    </svg>\n  </div>\n</ng-template>\n\n<ng-template #lastTemplate>\n  <div (click)=\"goToPage(localConfigs.totalItems! / localConfigs.pageSize!)\">\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 24 24\"\n      stroke-width=\"1.5\"\n      stroke=\"currentColor\"\n      class=\"page-icon\"\n    >\n      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11.25 4.5l7.5 7.5-7.5 7.5m-6-15l7.5 7.5-7.5 7.5\"/>\n    </svg>\n  </div>\n</ng-template>\n\n<ng-template #previousTemplate>\n  <div (click)=\"goToPage(localConfigs.page! > 1 ? localConfigs.page! - 2 : 0)\">\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 24 24\"\n      stroke-width=\"1.5\"\n      stroke=\"currentColor\"\n      class=\"page-icon\"\n    >\n      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5L8.25 12l7.5-7.5\"/>\n    </svg>\n  </div>\n</ng-template>\n\n<ng-template #nextTemplate>\n  <div (click)=\"goToPage(localConfigs.page!)\">\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 24 24\"\n      stroke-width=\"1.5\"\n      stroke=\"currentColor\"\n      class=\"page-icon\"\n    >\n      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 4.5l7.5 7.5-7.5 7.5\"/>\n    </svg>\n  </div>\n</ng-template>\n\n<ng-template #pageNumberTemplate let-page>\n  <div\n    class=\"page-number\"\n    [ngClass]=\"{ 'active': (pagination$ | async)?.page === page }\"\n    (click)=\"goToPage(page - 1)\"\n  >\n    <span>{{page}}</span>\n  </div>\n</ng-template>\n\n<ng-template #dotTemplate>\n  <div class=\"page-dot\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"14\" viewBox=\"0 0 18 14\">\n      <text id=\"_.\" data-name=\"….\" transform=\"translate(9 11)\" fill=\"#6badb9\" font-size=\"1em\" font-family=\"Helvetica\">\n        <tspan x=\"-8.945\" y=\"0\">….</tspan>\n      </text>\n    </svg>\n  </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { NubPaginationComponent } from './pagination.component';\n\n@NgModule({\n  declarations: [\n    NubPaginationComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n  ],\n  exports: [\n    NubPaginationComponent\n  ]\n})\nexport class NubPaginationModule { }\n","/*\n * Public API Surface of pagination\n */\n\nexport * from './pagination.component';\nexport * from './pagination.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}