UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

74 lines (73 loc) 2.81 kB
/** * DevExtreme (esm/__internal/grids/new/grid_core/pager/view.js) * Version: 25.2.5 * Build date: Fri Feb 20 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { computed, effect, signal } from "../../../../core/state_manager/index"; import { MAX_PAGES_COUNT } from "../../../../grids/grid_core/pager/m_pager"; import { View } from "../core/view"; import { DataController } from "../data_controller/index"; import { OptionsController } from "../options_controller/options_controller"; import { PagerView as Pager } from "./pager"; import { calculatePageSizes, isVisible } from "./utils"; export class PagerView extends View { constructor(dataController, options) { super(); this.dataController = dataController; this.options = options; this.component = Pager; this.pageSizesConfig = this.options.oneWay("pager.allowedPageSizes"); this.allowedPageSizes = signal(void 0); this.visibleConfig = this.options.oneWay("pager.visible"); this.visible = computed((() => isVisible(this.visibleConfig.value, this.dataController.pageCount.value))); effect((() => { this.allowedPageSizes.value = calculatePageSizes(this.allowedPageSizes.peek(), this.pageSizesConfig.value, this.dataController.pageSize.value) })) } getProps() { return computed((() => ({ itemCount: this.dataController.totalCount.value, allowedPageSizes: this.allowedPageSizes.value, visible: this.visible.value, pageIndex: this.dataController.pageIndex.value + 1, pageIndexChanged: value => { this.dataController.pageIndex.value = value - 1 }, pageSize: this.dataController.pageSize.value, pageSizeChanged: value => { this.dataController.pageSize.value = value }, pageCount: this.dataController.pageCount.value, showPageSizeSelector: this.options.oneWay("pager.showPageSizeSelector").value, _skipValidation: true, tabIndex: 0, showInfo: this.options.oneWay("pager.showInfo").value, showNavigationButtons: this.options.oneWay("pager.showNavigationButtons").value, label: this.options.oneWay("pager.label").value, pagesNavigatorVisible: this.options.oneWay("pager.visible").value, displayMode: this.options.oneWay("pager.displayMode").value, maxPagesCount: MAX_PAGES_COUNT }))) } } PagerView.dependencies = [DataController, OptionsController];