Skip to content

Commit f189f5d

Browse files
committed
Add a themes module for external stylesheet usage
1 parent 70251dd commit f189f5d

7 files changed

Lines changed: 31 additions & 10 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# Build artifacts
55
dash_ag_grid/*
66
!dash_ag_grid/__init__.py
7+
!dash_ag_grid/_version.py
8+
!dash_ag_grid/themes.py
79
R/
810
deps/
911
man/

dash_ag_grid/__init__.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,18 @@
99
# noinspection PyUnresolvedReferences
1010
from ._imports_ import *
1111
from ._imports_ import __all__
12+
from dash_ag_grid import themes
1213

1314
if not hasattr(_dash, '__plotly_dash') and not hasattr(_dash, 'development'):
1415
print('Dash was not successfully imported. '
1516
'Make sure you don\'t have a file '
1617
'named \n"dash.py" in your current directory.', file=_sys.stderr)
1718
_sys.exit(1)
1819

19-
_basepath = _os.path.dirname(__file__)
20-
_filepath = _os.path.abspath(_os.path.join(_basepath, 'package-info.json'))
21-
with open(_filepath) as f:
22-
package = json.load(f)
20+
from ._version import __version__, grid_version, get_package_info
2321

22+
package = get_package_info()
2423
package_name = package['name'].replace(' ', '_').replace('-', '_')
25-
__version__ = package['version']
26-
grid_version = package['dependencies']['ag-grid-community']
2724

2825
_current_path = _os.path.dirname(_os.path.abspath(__file__))
2926

dash_ag_grid/_version.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import json
2+
import os
3+
4+
def get_package_info():
5+
basepath = os.path.dirname(__file__)
6+
filepath = os.path.abspath(os.path.join(basepath, 'package-info.json'))
7+
with open(filepath) as f:
8+
return json.load(f)
9+
10+
package = get_package_info()
11+
__version__ = package['version']
12+
grid_version = package['dependencies']['ag-grid-community']

dash_ag_grid/themes.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from ._version import grid_version
2+
3+
_base_url = f"https://cdn.jsdelivr.net/npm/ag-grid-community@{grid_version}/styles"
4+
5+
BASE = f"{_base_url}/ag-grid.min.css"
6+
ALPINE = f"{_base_url}/ag-theme-alpine.min.css"
7+
BALHAM = f"{_base_url}/ag-theme-balham.min.css"
8+
MATERIAL = f"{_base_url}/ag-theme-material.min.css"
9+
QUARTZ = f"{_base_url}/ag-theme-quartz.min.css"

src/lib/components/AgGrid.react.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function DashAgGrid(props) {
5757
DashAgGrid.dashRenderType = true;
5858

5959
DashAgGrid.defaultProps = {
60-
className: 'ag-theme-alpine',
60+
className: '',
6161
resetColumnState: false,
6262
exportDataAsCsv: false,
6363
selectAll: false,

tests/examples/themes_legacy.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
legacy theme in action.
88
"""
99

10-
app = Dash(__name__, assets_folder="assets_legacy_themes/")
10+
app = Dash(__name__, external_stylesheets=[dag.themes.BASE, dag.themes.MATERIAL])
1111

1212
rowData = [
1313
{"weight": 0.074657, "date": "01/01/2024"},
@@ -17,8 +17,8 @@
1717
]
1818

1919
columnDefs = [
20-
{"field": "weight", "cellDataType": "percentage"},
21-
{"field": "date", "cellDataType": "dateString"},
20+
{"field": "weight"},
21+
{"field": "date"},
2222
]
2323

2424
app.layout = html.Div(

tests/test_user_style.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def test_us001_user_style(dash_duo):
4141
defaultColDef=defaultColDef,
4242
rowData=rowData,
4343
style={"height": "500px", "width": "500px"},
44+
className="ag-theme-alpine",
4445
),
4546
]
4647
)

0 commit comments

Comments
 (0)