{"version":3,"file":"ng-nest-ui-pagination.mjs","sources":["../../../../lib/ng-nest/ui/pagination/pagination.property.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.html","../../../../lib/ng-nest/ui/pagination/pagination.module.ts","../../../../lib/ng-nest/ui/pagination/ng-nest-ui-pagination.ts"],"sourcesContent":["import { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, model, input } from '@angular/core';\r\nimport type { XSelectNode } from '@ng-nest/ui/select';\r\nimport type { XNumber, XQuery, XBoolean, XTemplate, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Pagination\r\n * @selector x-pagination\r\n * @decorator component\r\n */\r\nexport const XPaginationPrefix = 'x-pagination';\r\nconst X_PAGINATION_CONFIG_NAME = 'pagination';\r\n\r\n/**\r\n * @zh_CN 分页选择条数\r\n * @en_US Sub-selection\r\n */\r\nexport const XPaginationSizeData = [10, 20, 50, 100];\r\n\r\n/**\r\n * Pagination Property\r\n */\r\n@Component({ selector: `${XPaginationPrefix}-property`, template: '' })\r\nexport class XPaginationProperty extends XPropertyFunction(X_PAGINATION_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 当前页码\r\n   * @en_US Current page number\r\n   */\r\n  readonly index = model<number>(this.config?.index ?? 1);\r\n  /**\r\n   * @zh_CN 每页显示条数\r\n   * @en_US Number of items displayed per page\r\n   */\r\n  readonly size = model<number>(this.config?.size ?? 10);\r\n  /**\r\n   * @zh_CN 总数\r\n   * @en_US Total\r\n   */\r\n  readonly total = input<number, XNumber>(0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 查询条件\r\n   * @en_US Query conditions\r\n   */\r\n  readonly query = model<XQuery>({});\r\n  /**\r\n   * @zh_CN 最多显示的分页数量\r\n   * @en_US The largest number of pages display\r\n   */\r\n  readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 显示首尾页跳转\r\n   * @en_US Display the first and last page\r\n   */\r\n  readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示总条数\r\n   * @en_US Display the total\r\n   */\r\n  readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 按钮间距\r\n   * @en_US Button spacing\r\n   */\r\n  readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 添加背景色\r\n   * @en_US Show background\r\n   */\r\n  readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示分页条数\r\n   * @en_US Show size\r\n   */\r\n  readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 分页条数选择框的宽度\r\n   * @en_US size with select\r\n   */\r\n  readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 显示输入分页框（不能跟下拉选项同时使用），默认使用回车确认改变\r\n   * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks). default to using Enter to confirm changes\r\n   */\r\n  readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示输入分页框的 tooltip 提示信息，默认显示\r\n   * @en_US show enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n   */\r\n  readonly showInputSizeTooltipText = input<boolean, XBoolean>(this.config?.showInputSizeTooltipText ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 输入分页框的 tooltip 提示信息，默认根据输入确认改变的方式来显示\r\n   * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n   */\r\n  readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n\r\n  /**\r\n   * @zh_CN 分页条数输入框的宽度\r\n   * @en_US size with input\r\n   */\r\n  readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n    transform: XToCssPixelValue\r\n  });\r\n  /**\r\n   * @zh_CN 分页选择的数据项\r\n   * @en_US Paging choose items of data\r\n   */\r\n  readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n  /**\r\n   * @zh_CN 禁用整个分页\r\n   * @en_US disabled\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示跳转输入框，默认使用回车确认改变\r\n   * @en_US Show size. default to using Enter to confirm changes\r\n   */\r\n  readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示跳转输入框的 tooltip 提示信息，默认显示\r\n   * @en_US Show the tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n   */\r\n  readonly showJumpTooltipText = input<boolean, XBoolean>(this.config?.showJumpTooltipText ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 跳转输入框的 tooltip 提示信息，默认根据输入确认改变的方式来显示\r\n   * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n   */\r\n  readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n  /**\r\n   * @zh_CN 跳转页的宽度\r\n   * @en_US size with\r\n   */\r\n  readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 总数自定义模板\r\n   * @en_US Total template\r\n   */\r\n  readonly totalTpl = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 简单分页\r\n   * @en_US Simple\r\n   */\r\n  readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 简单分页输入框宽度\r\n   * @en_US Simple index with\r\n   */\r\n  readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '4rem', {\r\n    transform: XToCssPixelValue\r\n  });\r\n  /**\r\n   * @zh_CN 输入确认改变的方式，针对输入分页大小和输入跳转页\r\n   * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n   */\r\n  readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n    this.config?.inputIndexSizeSureType ?? 'enter'\r\n  );\r\n}\r\n\r\n/**\r\n * @zh_CN 输入确认改变的方式，针对输入分页大小和输入跳转页\r\n * - `'enter'` : 输入后使用回车键确认\r\n * - `'blur'` : 输入后失去焦点后确认\r\n * - `'both'` : 上面2种都可以触发确认操作\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n * - `'enter'` : After entering, use the enter key to confirm\r\n * - `'blur'` : Confirm after losing focus after input\r\n * - `'both'` : Both of the above can trigger confirmation operations\r\n */\r\nexport type XPaginationInputIndexSizeSureType = 'enter' | 'blur' | 'both';\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  OnInit,\r\n  signal,\r\n  computed,\r\n  HostBinding,\r\n  ElementRef,\r\n  inject,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { XPaginationPrefix, XPaginationProperty } from './pagination.property';\r\nimport { XI18nPagination, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XSelectComponent } from '@ng-nest/ui/select';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIsChange, XToDataArray } from '@ng-nest/ui/core';\r\nimport { XTooltipModule } from '@ng-nest/ui/tooltip';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { map } from 'rxjs';\r\n\r\n@Component({\r\n  selector: `${XPaginationPrefix}`,\r\n  imports: [\r\n    FormsModule,\r\n    XButtonComponent,\r\n    XButtonsComponent,\r\n    XI18nPipe,\r\n    XSelectComponent,\r\n    XInputComponent,\r\n    XTooltipModule,\r\n    XInputGroupComponent,\r\n    XOutletDirective\r\n  ],\r\n  templateUrl: './pagination.component.html',\r\n  styleUrls: ['./style/index.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPaginationComponent extends XPaginationProperty implements OnInit {\r\n  elementRef = inject(ElementRef);\r\n  private i18n = inject(XI18nService);\r\n  locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.pagination as XI18nPagination)), {\r\n    initialValue: zh_CN.pagination\r\n  });\r\n\r\n  @HostBinding('class') className = XPaginationPrefix;\r\n\r\n  indexFirst = signal(1);\r\n  indexLast = signal(1);\r\n  jumpPage = signal<number | null>(null);\r\n  inputSize = signal<string>('');\r\n\r\n  lastIndex = computed(() => Math.ceil(this.total() / this.size()) || 1);\r\n  leftDisabled = computed(() => this.index() === 1 || this.total() === 0);\r\n  rightDisabled = computed(() => this.index() === this.lastIndex() || this.total() === 0);\r\n  firstActivated = computed(() => this.index() === 1);\r\n  lastActivated = computed(() => this.index() === this.lastIndex());\r\n\r\n  indexes = computed(() => {\r\n    const indexes: number[] = [];\r\n    const current = this.index() - 1;\r\n    const maxSize = this.pageLinkSize();\r\n    const pages = Math.min(maxSize, this.lastIndex());\r\n    let start = Math.max(0, Math.ceil(current - pages / 2)),\r\n      end = Math.min(this.lastIndex() - 1, start + pages - 1);\r\n    var delta = maxSize - (end - start + 1);\r\n    start = Math.max(0, start - delta);\r\n\r\n    for (let i = start; i <= end; i++) {\r\n      indexes.push(i + 1);\r\n    }\r\n    return indexes;\r\n  });\r\n\r\n  sizeDataSignal = computed(() => XToDataArray(this.sizeData()));\r\n\r\n  inputSizeTooltip = computed(() => {\r\n    if (this.inputSizeTooltipText()) return this.inputSizeTooltipText();\r\n    if (this.inputIndexSizeSureType() === 'enter') {\r\n      return this.locale().inputSizeTooltipEnter;\r\n    }\r\n    if (this.inputIndexSizeSureType() === 'blur') {\r\n      return this.locale().inputSizeTooltipBlur;\r\n    }\r\n    if (this.inputIndexSizeSureType() === 'both') {\r\n      return this.locale().inputSizeTooltipBoth;\r\n    }\r\n    return '';\r\n  });\r\n\r\n  jumpTooltip = computed(() => {\r\n    if (this.jumpTooltipText()) return this.jumpTooltipText();\r\n    if (this.inputIndexSizeSureType() === 'enter') {\r\n      return this.locale().jumpTooltipEnter;\r\n    }\r\n    if (this.inputIndexSizeSureType() === 'blur') {\r\n      return this.locale().jumpTooltipBlur;\r\n    }\r\n    if (this.inputIndexSizeSureType() === 'both') {\r\n      return this.locale().jumpTooltipBoth;\r\n    }\r\n    return '';\r\n  });\r\n\r\n  ngOnInit() {\r\n    this.inputSize.set(this.size().toString());\r\n    if (this.simple()) this.jumpPage.set(this.index());\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { size } = changes;\r\n    XIsChange(size) && this.inputSize.set(this.size().toString());\r\n  }\r\n\r\n  sizeChanged() {\r\n    if (this.index() !== 1) {\r\n      this.index.set(1);\r\n    }\r\n  }\r\n\r\n  jump(index: number, isDiff = false) {\r\n    const ix = this.validateIndex(isDiff ? this.index() + index : index);\r\n    if (ix !== this.index()) {\r\n      if (this.simple()) {\r\n        this.jumpPage.set(ix);\r\n      }\r\n      this.index.set(ix);\r\n    }\r\n  }\r\n\r\n  onJumpBlur(_event: MouseEvent, holdValue = false) {\r\n    if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n    const jumpPage = this.jumpPage();\r\n    const page = Number(jumpPage);\r\n    this.onJumpPageChange(page, holdValue);\r\n  }\r\n\r\n  onJumpKeydown(event: KeyboardEvent, holdValue = false) {\r\n    if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n    const jumpPage = this.jumpPage();\r\n    if (jumpPage && event.keyCode === ENTER) {\r\n      const page = Number(jumpPage);\r\n      this.onJumpPageChange(page, holdValue);\r\n    }\r\n  }\r\n\r\n  onJumpPageChange(page: number, holdValue = false) {\r\n    if (page <= this.indexFirst()) {\r\n      this.jump(this.indexFirst());\r\n    } else if (page >= this.lastIndex()) {\r\n      this.jump(this.lastIndex());\r\n    } else {\r\n      this.jump(page);\r\n    }\r\n    if (holdValue) return;\r\n    this.jumpPage.set(null);\r\n  }\r\n\r\n  onSimpleKeydown(event: KeyboardEvent) {\r\n    if (this.index() !== null && event.keyCode === ENTER) {\r\n      if (this.index() % 1 !== 0) {\r\n        this.index.update((x) => Math.round(x));\r\n      }\r\n      if (isNaN(this.index()) || this.index() === 0) {\r\n        this.index.set(1);\r\n      }\r\n      if (this.index() <= this.indexFirst()) {\r\n        this.index.set(this.indexFirst());\r\n      } else if (this.index() >= this.lastIndex()) {\r\n        this.index.set(this.lastIndex());\r\n      }\r\n      this.jump(this.index());\r\n    }\r\n  }\r\n\r\n  onInputSizeBlur(_event: MouseEvent) {\r\n    if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n    const inputSize = this.inputSize().trim();\r\n    const inputNumber = Number(inputSize);\r\n    this.onSizeChange(inputNumber);\r\n  }\r\n\r\n  onInputSizeKeydown(event: KeyboardEvent) {\r\n    if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n    const inputSize = this.inputSize().trim();\r\n    if (inputSize !== '' && event.keyCode === ENTER) {\r\n      const inputNumber = Number(inputSize);\r\n      this.onSizeChange(inputNumber);\r\n    }\r\n  }\r\n\r\n  onSizeChange(size: number) {\r\n    if (size % 1 !== 0) {\r\n      this.inputSize.set(`${Math.round(size)}`);\r\n    }\r\n    if (isNaN(size)) {\r\n      this.inputSize.set(`${this.size()}`);\r\n    }\r\n    if (size <= 0) {\r\n      this.inputSize.set(`${this.size()}`);\r\n    } else if (size !== this.size()) {\r\n      this.size.set(size);\r\n      this.sizeChanged();\r\n    }\r\n  }\r\n\r\n  validateIndex(value: number): number {\r\n    if (value > this.lastIndex()) {\r\n      return this.lastIndex();\r\n    } else if (value < 1) {\r\n      return 1;\r\n    } else {\r\n      return value;\r\n    }\r\n  }\r\n\r\n  getActivated(index: number) {\r\n    return this.index() === index;\r\n  }\r\n}\r\n","@if (simple()) {\r\n  <div class=\"x-pagination-simple\">\r\n    @if (showJumpTooltipText()) {\r\n      <x-input-group compact>\r\n        <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n        <x-input\r\n          x-tooltip\r\n          [content]=\"jumpTooltip()\"\r\n          \r\n          [style.width]=\"simpleIndexWidth()\"\r\n          [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n          [(ngModel)]=\"jumpPage\"\r\n          (xBlur)=\"onJumpBlur($event, true)\"\r\n          (xKeydown)=\"onJumpKeydown($event, true)\"\r\n          [type]=\"'number'\"\r\n          [min]=\"1\"\r\n          [max]=\"lastIndex()\"\r\n        ></x-input>\r\n        <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n      </x-input-group>\r\n    } @else {\r\n      <x-input-group compact>\r\n        <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n        <x-input\r\n          [before]=\"previousTpl\"\r\n          [after]=\"nextTpl\"\r\n          [style.width]=\"simpleIndexWidth()\"\r\n          [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n          [(ngModel)]=\"jumpPage\"\r\n          (xBlur)=\"onJumpBlur($event, true)\"\r\n          (xKeydown)=\"onJumpKeydown($event, true)\"\r\n          [type]=\"'number'\"\r\n          [min]=\"1\"\r\n          [max]=\"lastIndex()\"\r\n        ></x-input\r\n        ><ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n      </x-input-group>\r\n    }\r\n    <span>/</span>\r\n    <span>{{ lastIndex() }}</span>\r\n  </div>\r\n} @else {\r\n  <x-buttons class=\"x-pagination-group\" [space]=\"space()\" [hiddenBorder]=\"!showBackground()\" [boxShadow]=\"false\">\r\n    @if (showEllipsis()) {\r\n      <x-button\r\n        class=\"x-pagination-first\"\r\n        [icon]=\"'fto-chevrons-left'\"\r\n        [title]=\"'pagination.first' | xI18n\"\r\n        [disabled]=\"disabled() || firstActivated()\"\r\n        (click)=\"jump(1)\"\r\n        plain\r\n        flat\r\n      ></x-button>\r\n    }\r\n    <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n    @for (item of indexes(); track item) {\r\n      <x-button\r\n        class=\"x-pagination-link\"\r\n        [disabled]=\"disabled()\"\r\n        plain\r\n        flat\r\n        [activated]=\"getActivated(item)\"\r\n        (click)=\"jump(item)\"\r\n        >{{ item }}</x-button\r\n      >\r\n    }\r\n    <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n    @if (showEllipsis() && !simple()) {\r\n      <x-button\r\n        class=\"x-pagination-last\"\r\n        [icon]=\"'fto-chevrons-right'\"\r\n        [title]=\"'pagination.last' | xI18n\"\r\n        [disabled]=\"disabled() || lastActivated()\"\r\n        (click)=\"jump(lastIndex())\"\r\n        plain\r\n        flat\r\n      ></x-button>\r\n    }\r\n  </x-buttons>\r\n}\r\n@if (showSize() && !showInputSize()) {\r\n  <x-select\r\n    [style.width]=\"sizeWidth()\"\r\n    class=\"x-pagination-size\"\r\n    [data]=\"sizeDataSignal()\"\r\n    [clearable]=\"false\"\r\n    [disabled]=\"disabled()\"\r\n    [nodeTpl]=\"nodeTpl\"\r\n    [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n    [(ngModel)]=\"size\"\r\n    (ngModelChange)=\"sizeChanged()\"\r\n  ></x-select>\r\n}\r\n@if (showInputSize()) {\r\n  <div class=\"x-pagination-input-size\">\r\n    @if (showInputSizeTooltipText()) {\r\n      <x-input\r\n        x-tooltip\r\n        [content]=\"inputSizeTooltip()\"\r\n        [style.width]=\"inputSizeWidth()\"\r\n        [disabled]=\"disabled()\"\r\n        [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n        [(ngModel)]=\"inputSize\"\r\n        (xBlur)=\"onInputSizeBlur($event)\"\r\n        (xKeydown)=\"onInputSizeKeydown($event)\"\r\n      ></x-input>\r\n    } @else {\r\n      <x-input\r\n        [style.width]=\"inputSizeWidth()\"\r\n        [disabled]=\"disabled()\"\r\n        [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n        [(ngModel)]=\"inputSize\"\r\n        (xBlur)=\"onInputSizeBlur($event)\"\r\n        (xKeydown)=\"onInputSizeKeydown($event)\"\r\n      ></x-input>\r\n    }\r\n    <span> {{ 'pagination.sizePage' | xI18n }} </span>\r\n  </div>\r\n}\r\n@if (showJump() && !simple()) {\r\n  <div class=\"x-pagination-jump\">\r\n    <span>{{ 'pagination.jump' | xI18n }}</span>\r\n    @if (showJumpTooltipText()) {\r\n      <x-input\r\n        x-tooltip\r\n        [content]=\"jumpTooltip()\"\r\n        [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n        [style.width]=\"jumpWidth()\"\r\n        [(ngModel)]=\"jumpPage\"\r\n        (xBlur)=\"onJumpBlur($event)\"\r\n        (xKeydown)=\"onJumpKeydown($event)\"\r\n        [type]=\"'number'\"\r\n        [min]=\"1\"\r\n        [max]=\"lastIndex()\"\r\n      ></x-input>\r\n    } @else {\r\n      <x-input\r\n        [variant]=\"showBackground() ? 'filled' : 'outlined'\"\r\n        [style.width]=\"jumpWidth()\"\r\n        [(ngModel)]=\"jumpPage\"\r\n        (xBlur)=\"onJumpBlur($event)\"\r\n        (xKeydown)=\"onJumpKeydown($event)\"\r\n        [type]=\"'number'\"\r\n        [min]=\"1\"\r\n        [max]=\"lastIndex()\"\r\n      ></x-input>\r\n    }\r\n  </div>\r\n}\r\n@if (showTotal()) {\r\n  <x-button [disabled]=\"disabled()\" plain flat class=\"x-pagination-total\">\r\n    <ng-container *xOutlet=\"totalTpl(); context: { $total: total() }\">\r\n      {{ 'pagination.total' | xI18n }} {{ total() }} {{ 'pagination.item' | xI18n }}\r\n    </ng-container>\r\n  </x-button>\r\n}\r\n<ng-template #previousTpl>\r\n  <x-button\r\n    [icon]=\"'fto-chevron-left'\"\r\n    [title]=\"'pagination.previous' | xI18n\"\r\n    [disabled]=\"disabled() || leftDisabled()\"\r\n    (click)=\"jump(-1, true)\"\r\n    plain\r\n    flat\r\n  ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n  <x-button\r\n    [icon]=\"'fto-chevron-right'\"\r\n    [title]=\"'pagination.next' | xI18n\"\r\n    [disabled]=\"disabled() || rightDisabled()\"\r\n    (click)=\"jump(1, true)\"\r\n    plain\r\n    flat\r\n  ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n  @if (node) {\r\n    {{ node?.label }} {{ 'pagination.sizePage' | xI18n }}\r\n  }\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n  exports: [XPaginationComponent],\r\n  imports: [XPaginationComponent]\r\n})\r\nexport class XPaginationModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}