HomeDashboard/.venv/lib/python3.12/site-packages/nicegui/elements/pagination.py
2026-01-03 14:54:18 +01:00

58 lines
1.9 KiB
Python

from typing import Optional
from ..events import Handler, ValueChangeEventArguments
from .mixins.disableable_element import DisableableElement
from .mixins.value_element import ValueElement
class Pagination(ValueElement, DisableableElement):
def __init__(self,
min: int, max: int, *, # pylint: disable=redefined-builtin
direction_links: bool = False,
value: Optional[int] = ..., # type: ignore
on_change: Optional[Handler[ValueChangeEventArguments]] = None) -> None:
"""Pagination
A pagination element wrapping Quasar's `QPagination <https://quasar.dev/vue-components/pagination>`_ component.
:param min: minimum page number
:param max: maximum page number
:param direction_links: whether to show first/last page links
:param value: initial page (defaults to `min` if no value is provided)
:param on_change: callback to be invoked when the value changes
"""
if value is ...:
value = min
super().__init__(tag='q-pagination', value=value, on_value_change=on_change)
self._props['min'] = min
self._props['max'] = max
self._props['direction-links'] = direction_links
@property
def min(self) -> int:
"""Minimum page number"""
return self._props['min']
@min.setter
def min(self, value: int) -> None:
self._props['min'] = value
@property
def max(self) -> int:
"""Maximum page number"""
return self._props['max']
@max.setter
def max(self, value: int) -> None:
self._props['max'] = value
@property
def direction_links(self) -> bool:
"""Whether to show first/last page links"""
return self._props['direction-links']
@direction_links.setter
def direction_links(self, value: bool) -> None:
self._props['direction-links'] = value