|
@@ -1,4 +1,4 @@
|
|
-from typing import Optional
|
|
|
|
|
|
+from typing import Optional, Union
|
|
|
|
|
|
from ..element import Element
|
|
from ..element import Element
|
|
|
|
|
|
@@ -7,19 +7,25 @@ class Grid(Element):
|
|
|
|
|
|
def __init__(self,
|
|
def __init__(self,
|
|
*,
|
|
*,
|
|
- rows: Optional[int] = None,
|
|
|
|
- columns: Optional[int] = None,
|
|
|
|
|
|
+ rows: Optional[Union[int, str]] = None,
|
|
|
|
+ columns: Optional[Union[int, str]] = None,
|
|
) -> None:
|
|
) -> None:
|
|
"""Grid Element
|
|
"""Grid Element
|
|
|
|
|
|
Provides a container which arranges its child in a grid.
|
|
Provides a container which arranges its child in a grid.
|
|
|
|
|
|
- :param rows: number of rows in the grid
|
|
|
|
- :param columns: number of columns in the grid
|
|
|
|
|
|
+ :param rows: number of rows in the grid or a string with the grid-template-rows CSS property (e.g. 'auto 1fr')
|
|
|
|
+ :param columns: number of columns in the grid or a string with the grid-template-columns CSS property (e.g. 'auto 1fr')
|
|
"""
|
|
"""
|
|
super().__init__('div')
|
|
super().__init__('div')
|
|
self._classes.append('nicegui-grid')
|
|
self._classes.append('nicegui-grid')
|
|
- if rows is not None:
|
|
|
|
|
|
+
|
|
|
|
+ if isinstance(rows, int):
|
|
self._style['grid-template-rows'] = f'repeat({rows}, minmax(0, 1fr))'
|
|
self._style['grid-template-rows'] = f'repeat({rows}, minmax(0, 1fr))'
|
|
- if columns is not None:
|
|
|
|
|
|
+ elif isinstance(rows, str):
|
|
|
|
+ self._style['grid-template-rows'] = rows
|
|
|
|
+
|
|
|
|
+ if isinstance(columns, int):
|
|
self._style['grid-template-columns'] = f'repeat({columns}, minmax(0, 1fr))'
|
|
self._style['grid-template-columns'] = f'repeat({columns}, minmax(0, 1fr))'
|
|
|
|
+ elif isinstance(columns, str):
|
|
|
|
+ self._style['grid-template-columns'] = columns
|