UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

94 lines (93 loc) 3.72 kB
/** * DevExtreme (cjs/__internal/pagination/page_size/selector.js) * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PageSizeSelector = void 0; var _inferno = require("inferno"); var _inferno2 = require("@devextreme/runtime/inferno"); var _consts = require("../common/consts"); var _pagination_props = require("../common/pagination_props"); var _compatibility_utils = require("../utils/compatibility_utils"); var _large = require("./large"); var _small = require("./small"); const PageSizeSelectorDefaultProps = { isLargeDisplayMode: true, pageSize: _pagination_props.PaginationDefaultProps.pageSize, pageSizeChangedInternal: _pagination_props.PaginationDefaultProps.pageSizeChangedInternal, allowedPageSizes: _pagination_props.PaginationDefaultProps.allowedPageSizes }; class PageSizeSelector extends _inferno2.InfernoComponent { constructor(props) { super(props); this.state = {}; this.refs = null; this.rootElementRef = (0, _inferno.createRef)(); this.htmlRef = (0, _inferno.createRef)(); this.__getterCache = { normalizedPageSizes: void 0 }; this.setRootElementRef = this.setRootElementRef.bind(this) } createEffects() { return [new _inferno2.InfernoEffect(this.setRootElementRef, [])] } setRootElementRef() { const { rootElementRef: rootElementRef } = this.props; if (rootElementRef) { rootElementRef.current = this.htmlRef.current } } getAllText() { return (0, _compatibility_utils.getLocalizationMessage)(this.context, "dxPagination-pageSizesAllText") } getNormalizedPageSizes() { if (void 0 !== this.__getterCache.normalizedPageSizes) { return this.__getterCache.normalizedPageSizes } const result = this.props.allowedPageSizes.map((p => "all" === p || 0 === p ? { text: this.getAllText(), value: 0 } : { text: String(p), value: p })); this.__getterCache.normalizedPageSizes = result; return result } componentWillUpdate(nextProps) { super.componentWillUpdate(); if (this.props.allowedPageSizes !== nextProps.allowedPageSizes) { this.__getterCache.normalizedPageSizes = void 0 } } render() { const normalizedPageSizes = this.getNormalizedPageSizes(); const { pageSize: pageSize, pageSizeChangedInternal: pageSizeChangedInternal, isLargeDisplayMode: isLargeDisplayMode } = this.props; return (0, _inferno.createVNode)(1, "div", _consts.PAGINATION_PAGE_SIZES_CLASS, [isLargeDisplayMode && (0, _inferno.createComponentVNode)(2, _large.PageSizeLarge, { allowedPageSizes: this.getNormalizedPageSizes(), pageSize: pageSize, pageSizeChangedInternal: pageSizeChangedInternal }), !isLargeDisplayMode && (0, _inferno.createComponentVNode)(2, _small.PageSizeSmall, { parentRef: this.htmlRef, allowedPageSizes: normalizedPageSizes, pageSize: pageSize, pageSizeChangedInternal: pageSizeChangedInternal })], 0, null, null, this.htmlRef) } } exports.PageSizeSelector = PageSizeSelector; PageSizeSelector.defaultProps = PageSizeSelectorDefaultProps;