{"version":3,"file":"acorex-components-data-pager.mjs","sources":["../../../../packages/components/data-pager/src/lib/data-pager-base.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-info.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-input-selector.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-next-buttons.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-numeric-selector.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-pagesize-dropdown.component.ts","../../../../packages/components/data-pager/src/lib/data-pager-prev-buttons.component.ts","../../../../packages/components/data-pager/src/lib/data-pager.component.ts","../../../../packages/components/data-pager/src/lib/data-pager.component.html","../../../../packages/components/data-pager/src/lib/data-pager.module.ts","../../../../packages/components/data-pager/src/acorex-components-data-pager.ts"],"sourcesContent":["import { AXEvent, AXOptionChangedEvent, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { EventEmitter, Injectable, inject } from '@angular/core';\n\n/**\n * A token that specifies the  display mode of datapager component.\n */\nexport type AXDataPagerDisplayMode = 'full' | 'compact' | 'custom';\n\nexport interface AXDataPagerData {\n  range: { from: number; to: number };\n  page: number;\n  skip: number;\n  take: number;\n  totalPages: number;\n  totalItems: number;\n}\n\nexport class AXDataPagerChangedEvent extends AXEvent implements AXDataPagerData {\n  range: { from: number; to: number } = { from: 0, to: 0 };\n  page = 0;\n  skip = 0;\n  take = 0;\n  totalPages = 0;\n  totalItems = 0;\n}\n\n@Injectable()\nexport abstract class AXDataPagerParentComponent {\n  abstract readonly: boolean;\n  abstract disabled: boolean;\n  abstract isLoading: boolean;\n  abstract onChanged: EventEmitter<AXDataPagerChangedEvent>;\n  abstract onOptionChanged: EventEmitter<AXOptionChangedEvent>;\n  abstract get displayInfo(): AXDataPagerData;\n  abstract size;\n  abstract goNextPage(): void;\n  abstract goLastPage(): void;\n  abstract goFirstPage(): void;\n  abstract goPrevPage(): void;\n  abstract goToPage(page: number): void;\n}\n\n@Injectable()\nexport abstract class AXDataPagerChild extends MXInteractiveComponent {\n  protected _parent: AXDataPagerParentComponent = inject(AXDataPagerParentComponent);\n  protected _unsubscriber: AXUnsubscriber = inject(AXUnsubscriber);\n  private _localeService = inject(AXLocaleService);\n\n  /**\n   *  @ignore\n   */\n  constructor() {\n    super();\n    const scheduleApplyParent = () => {\n      queueMicrotask(() => void this.applyParent());\n    };\n    //\n    this._parent.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe(() => scheduleApplyParent());\n    //\n    this._parent.onOptionChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe(() => scheduleApplyParent());\n    //\n    this._localeService.profileChanged$.pipe(this._unsubscriber.takeUntilDestroy).subscribe(() => scheduleApplyParent());\n  }\n\n  /**\n   *  @ignore\n   */\n  async ngAfterViewInit() {\n    await this.applyParent();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected abstract applyParent(): Promise<void>;\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Displays formatted and translated information text for a data pager component.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-info',\n  template: `<ax-text> {{ _textFormatted | translate | async }}</ax-text>`,\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXDataPagerChild, useExisting: AXDataPagerInfoComponent },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerInfoComponent },\n  ],\n  imports: [AXDecoratorGenericComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXDataPagerInfoComponent extends AXDataPagerChild {\n  /**\n   * The text to be displayed in the data pager info component.\n   */\n  @Input()\n  text: string;\n\n  /**\n   *  @ignore\n   */\n  protected _textFormatted: string;\n  protected translateService = inject(AXTranslationService);\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    const info = this._parent.displayInfo;\n    if ([info.range, info.range.from, info.totalItems].every((c) => c != undefined)) {\n      this._textFormatted = (await this.translateService.translateAsync(this.text ?? '@acorex:datapager.info.text'))\n        .replace('[from]', info.range.from.toLocaleString())\n        .replace('[to]', info.range.to.toLocaleString())\n        .replace('[totalItems]', info.totalItems.toLocaleString())\n        .replace('[page]', info.page.toLocaleString())\n        .replace('[totalPages]', info.totalPages.toLocaleString());\n      this.cdr.markForCheck();\n    }\n  }\n}\n","import { AXComponent, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXNumberBoxComponent } from '@acorex/components/number-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Provides an input selector for navigating pages in a data pager component.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-input-selector',\n  template: `\n    <ax-number-box\n      class=\"ax-sm\"\n      [disabled]=\"_parent.disabled\"\n      [readonly]=\"_parent.readonly\"\n      [ngModel]=\"_currentPage\"\n      (onValueChanged)=\"_handleValueChanged($event)\"\n      [showSpinButtons]=\"false\"\n      [minValue]=\"1\"\n      [maxValue]=\"_totalPages\"\n    >\n    </ax-number-box>\n  `,\n\n  imports: [AXNumberBoxComponent, FormsModule],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: AXDataPagerChild,\n      useExisting: AXDataPagerInputSelectorComponent,\n    },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerInputSelectorComponent },\n  ],\n})\nexport class AXDataPagerInputSelectorComponent extends AXDataPagerChild {\n  /**\n   *  @ignore\n   */\n  protected _totalPages = 1;\n\n  /**\n   *  @ignore\n   */\n  protected _currentPage = 1;\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    this._currentPage = this._parent.displayInfo.page;\n    this._totalPages = this._parent.displayInfo.totalPages;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleValueChanged(e: AXValueChangedEvent<number>) {\n    //TODO: debounceTime\n    if (e.isUserInteraction) {\n      this._parent.goToPage(e.value as number);\n    }\n  }\n}\n","import { AXClickEvent, AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { NgClass } from '@angular/common';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Provides buttons for navigating to the next and last pages in a data pager component.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-next-buttons',\n  template: `\n    <ax-button\n      [disabled]=\"disabled\"\n      look=\"blank\"\n      class=\"ax-sm\"\n      title=\"Go to the next page\"\n      (onClick)=\"_emitOnNextPageClick($event)\"\n    >\n      <ax-icon\n        class=\"ax-icon text-xl\"\n        [ngClass]=\"{\n          'ax-icon-chevron-left': isRtl(),\n          'ax-icon-chevron-right': !isRtl(),\n        }\"\n      ></ax-icon>\n    </ax-button>\n    <ax-button\n      [disabled]=\"disabled\"\n      look=\"blank\"\n      class=\"ax-sm\"\n      title=\"Go to the last page\"\n      (onClick)=\"_emitOnLastPageClick($event)\"\n    >\n      <ax-icon\n        class=\"ax-icon text-xl\"\n        [ngClass]=\"{ 'ax-icon-chevron-double-left': isRtl(), 'ax-icon-chevron-double-right': !isRtl() }\"\n      ></ax-icon>\n    </ax-button>\n  `,\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXDataPagerChild, useExisting: AXDataPagerNextButtonsComponent },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerNextButtonsComponent },\n  ],\n  imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],\n})\nexport class AXDataPagerNextButtonsComponent extends AXDataPagerChild {\n  private localeService = inject(AXLocaleService);\n\n  protected readonly isRtl = this.localeService.isRtl;\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    this.disabled = this._parent.displayInfo.page == this._parent.displayInfo.totalPages || this._parent.disabled;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _emitOnLastPageClick(e: AXClickEvent) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    this._parent.goLastPage();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _emitOnNextPageClick(e: AXClickEvent) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    this._parent.goNextPage();\n  }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent, AXButtonItem } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { NgClass } from '@angular/common';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Component that provides numeric page selection controls for a data pager.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-numeric-selector',\n  template: `\n    <ax-button\n      class=\"ax-sm\"\n      [disabled]=\"_currentPage === 1 || _parent.disabled || _parent.isLoading\"\n      look=\"blank\"\n      (onClick)=\"_handleOnItemClick({ data: 1 })\"\n    >\n      <ax-icon\n        class=\"ax-icon\"\n        [ngClass]=\"{\n          'ax-icon-chevron-double-left': !isRtl(),\n          'ax-icon-chevron-double-right': isRtl(),\n        }\"\n      ></ax-icon>\n    </ax-button>\n\n    @for (item of _items; track $index) {\n      <ax-button\n        class=\"ax-data-pager-num-button\"\n        [disabled]=\"_parent.disabled || _parent.isLoading\"\n        [color]=\"_currentPage === item.data ? 'primary' : 'default'\"\n        [look]=\"_currentPage === item.data ? 'solid' : 'blank'\"\n        [text]=\"item.text\"\n        (onClick)=\"_handleOnItemClick(item)\"\n      >\n        @if (item.iconClass) {\n          <ax-icon class=\"ax-icon\" [ngClass]=\"item.iconClass\"></ax-icon>\n        }\n      </ax-button>\n    }\n\n    <ax-button\n      class=\"ax-sm\"\n      [disabled]=\"_currentPage === _lastPage || _parent.disabled || _parent.isLoading\"\n      look=\"blank\"\n      (onClick)=\"_handleOnItemClick({ data: _lastPage })\"\n    >\n      <ax-icon\n        class=\"ax-icon\"\n        [ngClass]=\"{\n          'ax-icon-chevron-double-left': isRtl(),\n          'ax-icon-chevron-double-right': !isRtl(),\n        }\"\n      ></ax-icon>\n    </ax-button>\n  `,\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: AXDataPagerChild,\n      useExisting: AXDataPagerNumericSelectorComponent,\n    },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerNumericSelectorComponent },\n  ],\n  imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],\n})\nexport class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {\n  protected _items: AXButtonItem[] = [];\n  protected _currentPage = 1;\n  protected _lastPage = 1;\n  protected _loading = false;\n  private localeService = inject(AXLocaleService);\n\n  protected readonly isRtl = this.localeService.isRtl;\n\n  /**\n   *  @ignore\n   */\n  private _displayCount = 5;\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    this._currentPage = this._parent.displayInfo.page;\n    this._loading = this._parent.isLoading;\n    this._lastPage = this._parent.displayInfo.totalPages;\n    //\n    this._items = [];\n\n    // Calculate the range to center the current page\n    const halfDisplayCount = Math.floor(this._displayCount / 2);\n    let start = Math.max(1, this._currentPage - halfDisplayCount);\n    const end = Math.min(this._lastPage, start + this._displayCount - 1);\n\n    // Adjust start if we're near the end to ensure we show the full display count\n    if (end - start + 1 < this._displayCount) {\n      start = Math.max(1, end - this._displayCount + 1);\n    }\n\n    // Add ellipsis button for previous pages if needed\n    if (start > 1) {\n      this._items.push({\n        iconClass: this.isRtl() ? 'ax-icon-chevron-right' : 'ax-icon-chevron-left',\n        data: start - 1,\n      });\n    }\n\n    // Add page number buttons\n    for (let i = start; i <= end; i++) {\n      this._items.push({\n        text: i.toLocaleString(),\n        data: i,\n      });\n    }\n\n    // Add ellipsis button for next pages if needed\n    if (end < this._lastPage) {\n      this._items.push({\n        iconClass: this.isRtl() ? 'ax-icon-chevron-left' : 'ax-icon-chevron-right',\n        data: end + 1,\n      });\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleOnItemClick(e: any) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    // if (e.iconClass === 'ax-icon-chevron-right') {\n    //   debugger;\n    //   this._parent.goNextPage();\n    // } else if (e.iconClass === 'ax-icon-chevron-left') {\n    //   this._parent.goPrevPage();\n    // } else {\n    //   this._parent.goToPage(Number(e.data));\n    // }\n\n    const nextIcon = this.isRtl() ? 'ax-icon-chevron-left' : 'ax-icon-chevron-right';\n\n    const prevIcon = this.isRtl() ? 'ax-icon-chevron-right' : 'ax-icon-chevron-left';\n\n    if (e.iconClass === nextIcon) {\n      this._parent.goNextPage();\n    } else if (e.iconClass === prevIcon) {\n      this._parent.goPrevPage();\n    } else {\n      this._parent.goToPage(Number(e.data));\n    }\n  }\n}\n","import { AXClickEvent, AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownPanelComponent } from '@acorex/components/dropdown';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Displays a button to select page sizes for data pagination.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-page-sizes',\n  template: `\n    <ax-button [text]=\"_size != null ? '' + _size : ''\" [disabled]=\"_parent.disabled\">\n      <ax-dropdown-panel>\n        <ax-button-item-list (onItemClick)=\"_emitOnItemClick($event)\">\n          @for (item of _items; track $index) {\n            <ax-button-item color=\"default\" [text]=\"item.text\" [data]=\"item.data\" [selected]=\"item.selected\">\n            </ax-button-item>\n          }\n        </ax-button-item-list>\n      </ax-dropdown-panel>\n      <ax-suffix>\n        <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-arrow-down\"></ax-icon>\n      </ax-suffix>\n    </ax-button>\n    <!-- <span >items per page</span> -->\n  `,\n\n  encapsulation: ViewEncapsulation.None,\n  outputs: [],\n  providers: [\n    { provide: AXDataPagerChild, useExisting: AXDataPagerPageSizesComponent },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerPageSizesComponent },\n  ],\n  imports: [\n    AXButtonComponent,\n    AXDropdownPanelComponent,\n    AXButtonItemListComponent,\n    AXButtonItemComponent,\n    AXDecoratorGenericComponent,\n    AXDecoratorIconComponent,\n  ],\n})\nexport class AXDataPagerPageSizesComponent extends AXDataPagerChild {\n  /**\n   *  @ignore\n   */\n  protected _size: number;\n\n  /**\n   *  @ignore\n   */\n  //TODO: AXButtonItems type error\n  protected _items: any[] = [];\n\n  /**\n   *  @ignore\n   */\n  private _sizes: number[];\n\n  /**\n   * Gets the list of page sizes available for selection.\n   */\n  @Input()\n  public get sizes(): number[] {\n    return this._sizes || [5, 10, 20, 50, 100];\n  }\n\n  /**\n   * Sets the list of page sizes available for selection.\n   *\n   * @param value - An array of numbers representing the page sizes to be set.\n   */\n  public set sizes(v: number[]) {\n    this._sizes = v;\n    this.applyParent();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    this._size = this._parent.displayInfo.take;\n    this._items = this.sizes.map((s: any) => ({\n      text: s.toString(),\n      selected: s == this._size,\n      data: {\n        size: s,\n      },\n    }));\n    this.cdr.markForCheck();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _emitOnItemClick(e: AXClickEvent) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    this._size = this._parent.size = Number(e.data.size);\n    this.cdr.markForCheck();\n  }\n}\n","import { AXClickEvent, AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { NgClass } from '@angular/common';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDataPagerChild } from './data-pager-base.component';\n\n/**\n * Component that provides navigation buttons for going to the previous page and the first page in a data pager.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager-prev-buttons',\n  template: `\n    <ax-button\n      [disabled]=\"disabled\"\n      look=\"blank\"\n      class=\"ax-sm\"\n      title=\"Go to the last page\"\n      (onClick)=\"_emitOnFirstPageClick($event)\"\n    >\n      <ax-icon\n        class=\"ax-icon text-xl\"\n        [ngClass]=\"{ 'ax-icon-chevron-double-right': isRtl(), 'ax-icon-chevron-double-left': !isRtl() }\"\n      ></ax-icon>\n    </ax-button>\n    <ax-button\n      [disabled]=\"disabled\"\n      look=\"blank\"\n      class=\"ax-sm\"\n      title=\"Go to the next page\"\n      (onClick)=\"_emitOnPrevPageClick($event)\"\n    >\n      <ax-icon\n        class=\"ax-icon text-xl\"\n        [ngClass]=\"{\n          'ax-icon-chevron-left': !isRtl(),\n          'ax-icon-chevron-right': isRtl(),\n        }\"\n      ></ax-icon>\n    </ax-button>\n  `,\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent },\n    AXUnsubscriber,\n    { provide: AXComponent, useExisting: AXDataPagerPrevButtonsComponent },\n  ],\n  imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],\n})\nexport class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {\n  private localeService = inject(AXLocaleService);\n\n  protected readonly isRtl = this.localeService.isRtl;\n\n  /**\n   *  @ignore\n   */\n  protected override async applyParent(): Promise<void> {\n    this.disabled = this._parent.displayInfo.page == 1 || this._parent.disabled;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _emitOnFirstPageClick(e: AXClickEvent) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    this._parent.goFirstPage();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _emitOnPrevPageClick(e: AXClickEvent) {\n    if (this._parent.readonly || this._parent.disabled) return;\n    this._parent.goPrevPage();\n  }\n}\n","import { AXComponent, AXPagedComponent, MXValueComponent } from '@acorex/cdk/common';\nimport {\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  ViewEncapsulation,\n  forwardRef,\n  inject,\n  signal,\n} from '@angular/core';\nimport { cloneDeep, isEqual, isNumber } from 'lodash-es';\n\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXDataPagerChangedEvent, AXDataPagerData, AXDataPagerParentComponent } from './data-pager-base.component';\nimport { AXDataPagerInfoComponent } from './data-pager-info.component';\nimport { AXDataPagerInputSelectorComponent } from './data-pager-input-selector.component';\nimport { AXDataPagerNextButtonsComponent } from './data-pager-next-buttons.component';\nimport { AXDataPagerNumericSelectorComponent } from './data-pager-numeric-selector.component';\nimport { AXDataPagerPageSizesComponent } from './data-pager-pagesize-dropdown.component';\nimport { AXDataPagerPrevButtonsComponent } from './data-pager-prev-buttons.component';\n\nexport type AXDataPagerMode = 'full' | 'compact' | 'custom';\n\n/**\n * Component for managing and displaying data pagination controls.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-data-pager',\n  templateUrl: './data-pager.component.html',\n  styleUrls: ['./data-pager.component.css'],\n  inputs: ['value', 'name', 'disabled', 'readonly'],\n  outputs: ['valueChange', 'onValueChanged', 'disabledChange', 'readonlyChange'],\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXDataPagerParentComponent, useExisting: AXDataPagerComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXDataPagerComponent),\n      multi: true,\n    },\n    { provide: AXComponent, useExisting: AXDataPagerComponent },\n  ],\n  imports: [\n    AXDecoratorGenericComponent,\n    AXDataPagerNumericSelectorComponent,\n    AXDataPagerPageSizesComponent,\n    AXDataPagerInfoComponent,\n    AXDataPagerPrevButtonsComponent,\n    AXDataPagerInputSelectorComponent,\n    AXDataPagerNextButtonsComponent,\n  ],\n})\nexport class AXDataPagerComponent extends MXValueComponent<number> {\n  private _parent = inject<AXPagedComponent>(AXPagedComponent, { optional: true });\n\n  /**\n   *  @ignore\n   */\n  private _isLoading = signal(false);\n\n  /**\n   * Indicates whether the component is currently loading.\n   *\n   */\n  @Input()\n  public get isLoading(): boolean {\n    return this._isLoading();\n  }\n\n  /**\n   * Sets the loading state of the component.\n   *\n   * @param v - The loading state to be set.\n   */\n  public set isLoading(v: boolean) {\n    this._isLoading.set(v);\n  }\n\n  /**\n   *  @ignore\n   */\n  private _size = null;\n\n  /**\n   * Gets the number of items per page in the data pager.\n   */\n  @Input()\n  public get size(): number {\n    return this._size || 10;\n  }\n\n  /**\n   * Sets the number of items per page and updates the data pager accordingly.\n   *\n   * @param {number} v - The new number of items per page.\n   */\n  public set size(v: number) {\n    if (v != this._size) {\n      const prevSize = this._size;\n      this._size = v;\n      if (this._parent) {\n        this._parent.pageSize = v;\n      }\n      const newPage = Math.ceil(this.displayInfo.range.from / this._size) || 1;\n      this.commitValue(newPage);\n      this._emitChangedEvent(prevSize != null ? true : false);\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private _total = 0;\n\n  /**\n   * Gets the total number of items.\n   */\n  @Input()\n  public get total(): number {\n    return this._total;\n  }\n\n  /**\n   * Sets the total number of items and triggers an update event if the value changes.\n   *\n   * @param v - The total number of items to set.\n   *                     If the value is non-positive, it defaults to 0.\n   */\n  public set total(v: number) {\n    const t = v && v > 0 ? v : 0;\n    if (t != this._total) {\n      this._total = t;\n      this._emitChangedEvent();\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private _totalPages = 0;\n\n  /**\n   * Gets the total number of pages.\n   */\n  public get totalPages(): number {\n    return this._totalPages;\n  }\n\n  /**\n   * Sets the total number of pages.\n   *\n   * @param value - The total number of pages to set.\n   */\n  private set totalPages(value: number) {\n    this._totalPages = value;\n  }\n\n  /**\n   * Emitted when the display mode changes.\n   * @event\n   * An event containing the new display mode.\n   */\n  @Output()\n  public displayModeChange: EventEmitter<string> = new EventEmitter<string>();\n\n  /**\n   *  @ignore\n   */\n  private _displayMode: AXDataPagerMode = 'full';\n\n  /**\n   * Gets the current display mode of the data pager.\n   */\n  @Input()\n  public get displayMode(): AXDataPagerMode {\n    return this._displayMode;\n  }\n\n  /**\n   * Sets the display mode of the data pager and emits a change event.\n   *\n   * @param v - The new display mode to set, of type `AXDataPagerMode`.\n   */\n  public set displayMode(v: AXDataPagerMode) {\n    this.setOption({\n      name: 'displayMode',\n      value: v,\n      afterCallback: () => {\n        this._emitChangedEvent();\n      },\n    });\n  }\n\n  /**\n   * Emitted when the data pager's state changes.\n   * @event\n   * An event containing details about the change.\n   */\n  @Output()\n  onChanged: EventEmitter<AXDataPagerChangedEvent> = new EventEmitter<AXDataPagerChangedEvent>();\n\n  /**\n   *  @ignore\n   */\n  constructor() {\n    super();\n    //\n    if (this._parent) {\n      this._parent.onPageChanged.subscribe((c) => {\n        this.size = this._parent.pageSize;\n        this.total = this._parent.totalCount;\n        this.value = c.value;\n      });\n      this.size = this._parent.pageSize;\n      this.total = this._parent.totalCount;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  ngAfterViewInit() {\n    this._emitChangedEvent();\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalValueChanged(value: any): void {\n    this._emitChangedEvent(true);\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override internalGetValue(value: any): number {\n    if (!isNumber(value) || !value || this.totalPages == 0) return 1;\n    return value > this.totalPages ? this.totalPages : value;\n  }\n\n  /**\n   *  @ignore\n   */\n  private previousDisplayInfo: AXDataPagerData | null;\n\n  public get displayInfo(): AXDataPagerData {\n    const skip = Math.max(0, (this.value - 1) * this.size);\n    const result = {\n      page: this.value,\n      totalItems: this.total,\n      totalPages: this.totalPages,\n      range: {\n        from: skip + 1,\n        to: Math.min(this.value * this.size, this.total),\n      },\n      skip,\n      take: this.size,\n    };\n    return result;\n  }\n\n  /**\n   *  @ignore\n   */\n  private _emitChangedEvent(u = false): void {\n    this.totalPages = Math.ceil(this._total / this.size) || 1;\n    //\n    if (!isEqual(this.previousDisplayInfo, this.displayInfo)) {\n      this.onChanged.emit(\n        Object.assign(\n          {\n            component: this,\n            isUserInteraction: u,\n            htmlElement: this.getHostElement(),\n          },\n          this.displayInfo,\n        ),\n      );\n      if (this.totalPages > 0) this._parent?.goToPage(this.value);\n      //\n      this.previousDisplayInfo = cloneDeep(this.displayInfo);\n      //\n      this.cdr.markForCheck();\n    }\n  }\n\n  /**\n   * Navigates to the next page, or to the last page if on the final page.\n   *\n   * @returns void - No return value. The component navigates to the next available page.\n   */\n  goNextPage(): void {\n    this.goToPage(Math.min(this.value + 1, this.totalPages));\n  }\n\n  /**\n   * Navigates to the last page.\n   *\n   * @returns void - No return value. The component navigates to the final page.\n   */\n  goLastPage(): void {\n    this.goToPage(this.totalPages);\n  }\n\n  /**\n   * Navigates to the first page.\n   *\n   * @returns void - No return value. The component navigates to the first page.\n   */\n  goFirstPage(): void {\n    this.goToPage(1);\n  }\n  /**\n   * Navigates to the previous page, or to the first page if on the initial page.\n   *\n   * @returns void - No return value. The component navigates to the previous available page.\n   */\n  goPrevPage(): void {\n    this.goToPage(Math.max(this.value - 1, 1));\n  }\n\n  /**\n   * Navigates to a specified page.\n   *\n   * @param page - The page number to navigate to.\n   * @returns void - No return value. The component navigates to the specified page.\n   */\n  goToPage(page: number): void {\n    if (page != this.value) {\n      this.commitValue(page, true);\n    }\n  }\n\n  @HostBinding('class')\n  get __hostClass(): string {\n    return `ax-sm`;\n  }\n}\n","@switch (displayMode) {\n  @case ('full') {\n    <ax-prefix class=\"ax-full-prefix\">\n      <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n      <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n    </ax-prefix>\n    <ax-suffix class=\"ax-full-suffix\">\n      <ax-data-pager-info> </ax-data-pager-info>\n    </ax-suffix>\n  }\n  @case ('compact') {\n    <ax-prefix class=\"ax-compact-prefix\">\n      <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n      <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n      <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n    </ax-prefix>\n    <ax-suffix class=\"ax-compact-suffix\">\n      <ax-data-pager-info> </ax-data-pager-info>\n    </ax-suffix>\n  }\n  @default {\n    <ng-content select=\"ax-prefix\"></ng-content>\n    <ng-content select=\"ax-suffix\"></ng-content>\n  }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDataPagerInfoComponent } from './data-pager-info.component';\nimport { AXDataPagerInputSelectorComponent } from './data-pager-input-selector.component';\nimport { AXDataPagerNextButtonsComponent } from './data-pager-next-buttons.component';\nimport { AXDataPagerNumericSelectorComponent } from './data-pager-numeric-selector.component';\nimport { AXDataPagerPageSizesComponent } from './data-pager-pagesize-dropdown.component';\nimport { AXDataPagerPrevButtonsComponent } from './data-pager-prev-buttons.component';\nimport { AXDataPagerComponent } from './data-pager.component';\n\nconst COMPONENT = [\n  AXDataPagerComponent,\n  AXDataPagerNextButtonsComponent,\n  AXDataPagerPrevButtonsComponent,\n  AXDataPagerPageSizesComponent,\n  AXDataPagerNumericSelectorComponent,\n  AXDataPagerInputSelectorComponent,\n  AXDataPagerInfoComponent,\n];\nconst MODULES = [\n  CommonModule,\n  FormsModule,\n  AXButtonModule,\n  AXButtonGroupModule,\n  AXNumberBoxModule,\n  AXDropdownModule,\n  AXDecoratorModule,\n  AXTranslationModule,\n  AXSkeletonModule,\n];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXDataPagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}