{"version":3,"file":"hslayers-ng-common-pager.mjs","sources":["../../../projects/hslayers/common/pager/pager.component.ts","../../../projects/hslayers/common/pager/pager.component.html","../../../projects/hslayers/common/pager/pager.module.ts","../../../projects/hslayers/common/pager/hslayers-ng-common-pager.ts"],"sourcesContent":["import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'hs-pager',\n  templateUrl: './pager.component.html',\n  styles: [\n    `\n      :host {\n        z-index: 100 !important;\n      }\n    `,\n  ],\n  standalone: false,\n})\nexport class HsPagerComponent {\n  @Input() pagerService: any;\n  recordsPerPageArray = [5, 10, 15, 20, 25, 50, 100];\n  constructor() {}\n\n  /**\n   * Checks if next page for pagination is available\n   */\n  nextPageAvailable(): boolean {\n    if (\n      this.pagerService.listNext == this.pagerService.matchedRecords ||\n      this.pagerService.matchedRecords == 0\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Load previous list of items to display on pager\n   */\n  getPreviousRecords(): void {\n    if (this.pagerService.getPreviousRecords) {\n      this.pagerService.getPreviousRecords();\n    } else {\n      if (this.pagerService.listStart - this.pagerService.recordsPerPage <= 0) {\n        this.pagerService.listStart = 0;\n        this.pagerService.listNext = this.pagerService.recordsPerPage;\n      } else {\n        this.pagerService.listStart -= this.pagerService.recordsPerPage;\n        this.pagerService.listNext =\n          this.pagerService.listStart + this.pagerService.recordsPerPage;\n      }\n    }\n  }\n\n  changeRecordsPerPage(perPage: number): void {\n    if (perPage > this.pagerService.matchedRecords) {\n      this.pagerService.recordsPerPage = this.pagerService.matchedRecords;\n    } else {\n      this.pagerService.recordsPerPage = perPage;\n    }\n    this.pagerService.listStart = 0;\n    this.pagerService.listNext = this.pagerService.recordsPerPage;\n    if (this.pagerService.changeRecordsPerPage) {\n      this.pagerService.changeRecordsPerPage();\n    }\n  }\n\n  /**\n   * Load next list of items to display on pager\n   */\n  getNextRecords(): void {\n    if (this.pagerService.getNextRecords) {\n      this.pagerService.getNextRecords();\n    } else {\n      this.pagerService.listStart += this.pagerService.recordsPerPage;\n      this.pagerService.listNext += this.pagerService.recordsPerPage;\n      if (this.pagerService.listNext > this.pagerService.matchedRecords) {\n        this.pagerService.listNext = this.pagerService.matchedRecords;\n      }\n    }\n  }\n\n  resultsVisible(): boolean {\n    return this.pagerService.listNext && this.pagerService.matchedRecords\n      ? true\n      : false;\n  }\n}\n","@if (resultsVisible()) {\n<div class=\"card-footer bg-white\"> <!-- TODO: Remove function call from template -->\n  <ul class=\"pagination d-flex justify-content-center m-1 align-items-center\">\n    <li class=\"page-item\">\n      <a class=\"page-link\" (click)=\"getPreviousRecords()\" [ngClass]=\"{'disabled': pagerService.listStart === 0 }\"><span\n          aria-hidden=\"true\">&laquo;</span></a>\n    </li>\n    @if (pagerService.listNext !== pagerService.matchedRecords) {\n    <li class=\"page-item\">\n      <span class=\"page-link\">\n        {{'COMMON.results' | translate }}\n        {{pagerService.listStart + 1}} -\n        {{pagerService.listNext}}</span>\n    </li>\n    }\n    @if (pagerService.listNext === pagerService.matchedRecords) {\n    <li class=\"page-item\">\n      <span class=\"page-link\">\n        {{'COMMON.results' | translate }}\n        {{pagerService.listStart + 1}} -\n        {{pagerService.matchedRecords}}</span>\n    </li>\n    }\n    <li class=\"page-item\">\n      <!-- TODO: Remove function call from template -->\n      <a class=\"page-link\" data-cy=\"hs-pager-next-page\" (click)=\"getNextRecords()\"\n        [ngClass]=\"{'disabled': nextPageAvailable() }\"><span aria-hidden=\"true\">&raquo;</span></a>\n    </li>\n    <li ngbDropdown display=\"dynamic\" placement=\"top-right\" class=\"pe-3\" style=\"position: absolute;\n    right: 0;\">\n      <div class=\"btn-group\">\n        <button class=\"but-title-sm m-1\" data-toggle=\"tooltip\"\n          [title]=\"'ADDDATA.CATALOGUE.theNumberOfRecords' | translate \">\n          <i class=\"fa-solid fa-circle-question\"></i>\n        </button>\n        <button ngbDropdownToggle type=\"button\" data-cy=\"hs-pager-menu-toggle\"\n          class=\"btn btn-outline-secondary btn-sm dropdown-toggle dropdown-toggle-split rounded-0\"\n          [title]=\"'COMMON.selectRecordCountPerPage' | translate \" aria-haspopup=\"true\" aria-expanded=\"false\">\n        </button>\n      </div>\n      <div ngbDropdownMenu class=\"dropdown-menu\">\n        @for (perPage of recordsPerPageArray; track perPage) {\n        <a class=\"dropdown-item\" (click)=\"changeRecordsPerPage(perPage)\">{{perPage}}</a>\n        }\n      </div>\n    </li>\n  </ul>\n</div>\n}\n","import {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {NgModule} from '@angular/core';\n\nimport {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslatePipe} from '@ngx-translate/core';\n\nimport {HsPagerComponent} from './pager.component';\n\n@NgModule({\n  declarations: [HsPagerComponent],\n  imports: [CommonModule, TranslatePipe, FormsModule, NgbDropdownModule],\n  exports: [HsPagerComponent],\n})\nexport class HsPagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}