@azrico/reactgrid 1.6.6 → 1.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/__tests__/context-menu.test.js +67 -1
- package/config/check-theme.cjs +23 -0
- package/config/generate-theme.cjs +2 -0
- package/config/theme-extras.css +120 -102
- package/dist/src/hooks/useGridEvents.js +2 -2
- package/dist/src/themes/azgrid-theme.css +140 -122
- package/dist/src/types/types.d.ts +2 -0
- package/dist/src/views/DataGrid.js +7 -2
- package/package.json +62 -67
- package/src/hooks/useGridEvents.ts +2 -2
- package/src/themes/azgrid-theme.css +140 -122
- package/src/types/types.ts +2 -0
- package/src/views/DataGrid.tsx +18 -1
|
@@ -1452,65 +1452,65 @@
|
|
|
1452
1452
|
}
|
|
1453
1453
|
|
|
1454
1454
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover {
|
|
1455
|
-
background: var(--azgrid-
|
|
1456
|
-
color: var(--azgrid-
|
|
1455
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1456
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1457
1457
|
}
|
|
1458
1458
|
|
|
1459
1459
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column {
|
|
1460
|
-
background: var(--azgrid-
|
|
1460
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1461
1461
|
}
|
|
1462
1462
|
|
|
1463
1463
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over {
|
|
1464
|
-
background: var(--azgrid-
|
|
1465
|
-
color: var(--azgrid-
|
|
1464
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1465
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1466
1466
|
}
|
|
1467
1467
|
|
|
1468
1468
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover {
|
|
1469
|
-
background: var(--azgrid-
|
|
1470
|
-
color: var(--azgrid-
|
|
1469
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1470
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1471
1471
|
}
|
|
1472
1472
|
|
|
1473
1473
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column {
|
|
1474
|
-
background: var(--azgrid-
|
|
1474
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1475
1475
|
}
|
|
1476
1476
|
|
|
1477
1477
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--even:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over {
|
|
1478
|
-
background: var(--azgrid-
|
|
1479
|
-
color: var(--azgrid-
|
|
1478
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1479
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1480
1480
|
}
|
|
1481
1481
|
|
|
1482
1482
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover,
|
|
1483
1483
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover {
|
|
1484
|
-
background: var(--azgrid-
|
|
1485
|
-
color: var(--azgrid-
|
|
1484
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1485
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1486
1486
|
}
|
|
1487
1487
|
|
|
1488
1488
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column,
|
|
1489
1489
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column {
|
|
1490
|
-
background: var(--azgrid-
|
|
1490
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1491
1491
|
}
|
|
1492
1492
|
|
|
1493
1493
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over,
|
|
1494
1494
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over {
|
|
1495
|
-
background: var(--azgrid-
|
|
1496
|
-
color: var(--azgrid-
|
|
1495
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1496
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
1499
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover,
|
|
1500
1500
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover {
|
|
1501
|
-
background: var(--azgrid-
|
|
1502
|
-
color: var(--azgrid-
|
|
1501
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1502
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1503
1503
|
}
|
|
1504
1504
|
|
|
1505
1505
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column,
|
|
1506
1506
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__row-index-column {
|
|
1507
|
-
background: var(--azgrid-
|
|
1507
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1508
1508
|
}
|
|
1509
1509
|
|
|
1510
1510
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--no-zebra:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over,
|
|
1511
1511
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row--odd:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty).InovuaReactDataGrid__row--selected .InovuaReactDataGrid__row-hover-target:hover .InovuaReactDataGrid__cell--over {
|
|
1512
|
-
background: var(--azgrid-
|
|
1513
|
-
color: var(--azgrid-
|
|
1512
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1513
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1514
1514
|
}
|
|
1515
1515
|
|
|
1516
1516
|
.azgrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--focused .InovuaReactDataGrid__row--active>.InovuaReactDataGrid__row-active-borders-wrapper>.InovuaReactDataGrid__row-active-borders:before,
|
|
@@ -1934,105 +1934,123 @@
|
|
|
1934
1934
|
fill: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1935
1935
|
}
|
|
1936
1936
|
|
|
1937
|
-
/*
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
.azgrid.
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
.azgrid .InovuaReactDataGrid__cell--
|
|
1948
|
-
|
|
1949
|
-
}
|
|
1950
|
-
.azgrid.
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
.azgrid-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
}
|
|
1995
|
-
.azgrid-scope input
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
color: var(--azgrid-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
.azgrid-scope
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
}
|
|
1937
|
+
/* Keep the menu row in its hover state while the pointer is in the portaled menu.
|
|
1938
|
+
* Match the strongest selected-row :hover selectors, including their cells. */
|
|
1939
|
+
.azgrid.InovuaReactDataGrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row.azgrid-row--menu-open:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target,
|
|
1940
|
+
.azgrid.InovuaReactDataGrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row.azgrid-row--menu-open:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target .InovuaReactDataGrid__cell,
|
|
1941
|
+
.azgrid.InovuaReactDataGrid.InovuaReactDataGrid--theme-default-light.InovuaReactDataGrid--show-hover-rows .InovuaReactDataGrid__row.azgrid-row--menu-open:not(.InovuaReactDataGrid__row--scrolling):not(.InovuaReactDataGrid__row--empty) .InovuaReactDataGrid__row-hover-target .InovuaReactDataGrid__row-index-column {
|
|
1942
|
+
background: var(--azgrid-row-bg-hover, var(--azgrid-preset-row-bg-hover));
|
|
1943
|
+
color: var(--azgrid-row-fg-hover, var(--azgrid-preset-row-fg-hover));
|
|
1944
|
+
}
|
|
1945
|
+
|
|
1946
|
+
/* Additional surfaces and typography not assigned colours by Inovua. */
|
|
1947
|
+
.azgrid.InovuaReactDataGrid.InovuaReactDataGrid--theme-default-light .InovuaReactDataGrid__row--active:not(.InovuaReactDataGrid__row--selected) .InovuaReactDataGrid__cell:not(.InovuaReactDataGrid__cell--no-background) {
|
|
1948
|
+
background: var(--azgrid-row-bg-active, var(--azgrid-preset-row-bg-active));
|
|
1949
|
+
}
|
|
1950
|
+
.azgrid.azgrid-tree .InovuaReactDataGrid__row:not(.InovuaReactDataGrid__row--selected):not(.InovuaReactDataGrid__row--active) .InovuaReactDataGrid__row-hover-target:not(:hover),
|
|
1951
|
+
.azgrid .InovuaReactDataGrid__row--group-row:not(.InovuaReactDataGrid__row--selected):not(.InovuaReactDataGrid__row--active) .InovuaReactDataGrid__row-hover-target:not(:hover) {
|
|
1952
|
+
background: var(--azgrid-tree-bg, var(--azgrid-preset-tree-bg));
|
|
1953
|
+
color: var(--azgrid-tree-fg, var(--azgrid-preset-tree-fg));
|
|
1954
|
+
}
|
|
1955
|
+
.azgrid.azgrid-tree .InovuaReactDataGrid__cell__content > svg,
|
|
1956
|
+
.azgrid .InovuaReactDataGrid__cell--group-expand-cell svg {
|
|
1957
|
+
fill: var(--azgrid-tree-fg, var(--azgrid-preset-tree-fg));
|
|
1958
|
+
}
|
|
1959
|
+
.azgrid.InovuaReactDataGrid {
|
|
1960
|
+
background: var(--azgrid-bg, var(--azgrid-preset-bg));
|
|
1961
|
+
color: var(--azgrid-fg, var(--azgrid-preset-fg));
|
|
1962
|
+
border-color: var(--azgrid-border, var(--azgrid-preset-border));
|
|
1963
|
+
border-radius: var(--azgrid-radius, var(--azgrid-preset-radius));
|
|
1964
|
+
font-family: var(--azgrid-font-family, var(--azgrid-preset-font-family));
|
|
1965
|
+
}
|
|
1966
|
+
.azgrid .InovuaReactDataGrid__column-header__content,
|
|
1967
|
+
.azgrid .InovuaReactDataGrid__header-group__title {
|
|
1968
|
+
color: var(--azgrid-header-fg, var(--azgrid-preset-header-fg));
|
|
1969
|
+
font-size: var(--azgrid-header-font-size, var(--azgrid-preset-header-font-size));
|
|
1970
|
+
font-weight: var(--azgrid-header-font-weight, var(--azgrid-preset-header-font-weight));
|
|
1971
|
+
text-transform: var(--azgrid-header-text-transform, var(--azgrid-preset-header-text-transform));
|
|
1972
|
+
letter-spacing: var(--azgrid-header-letter-spacing, var(--azgrid-preset-header-letter-spacing));
|
|
1973
|
+
}
|
|
1974
|
+
.azgrid.InovuaReactDataGrid--theme-default-light .InovuaReactDataGrid__cell {
|
|
1975
|
+
border: var(--azgrid-cell-border-width, var(--azgrid-preset-cell-border-width)) solid var(--azgrid-cell-border, var(--azgrid-preset-cell-border));
|
|
1976
|
+
}
|
|
1977
|
+
.azgrid.InovuaReactDataGrid--theme-default-light .InovuaReactDataGrid__row--first .InovuaReactDataGrid__cell {
|
|
1978
|
+
/* Inovua's first-row border-top is !important. Keep the same border API on this row. */
|
|
1979
|
+
border-top: var(--azgrid-cell-border-width, var(--azgrid-preset-cell-border-width)) solid var(--azgrid-cell-border, var(--azgrid-preset-cell-border)) !important;
|
|
1980
|
+
}
|
|
1981
|
+
.azgrid.InovuaReactDataGrid--theme-default-light .InovuaReactDataGrid__cell:not(.InovuaReactDataGrid__cell--group-expand-cell):not(.InovuaReactDataGrid__cell--expand-cell):not(.InovuaReactDataGrid__cell--reorder) {
|
|
1982
|
+
padding: var(--azgrid-cell-padding, var(--azgrid-preset-cell-padding));
|
|
1983
|
+
}
|
|
1984
|
+
.azgrid .InovuaReactDataGrid__empty-wrapper {
|
|
1985
|
+
background: var(--azgrid-empty-bg, var(--azgrid-preset-empty-bg));
|
|
1986
|
+
color: var(--azgrid-empty-fg, var(--azgrid-preset-empty-fg));
|
|
1987
|
+
}
|
|
1988
|
+
.azgrid.InovuaReactDataGrid--theme-default-light .InovuaReactDataGrid__row-details {
|
|
1989
|
+
background: var(--azgrid-details-bg, var(--azgrid-preset-details-bg));
|
|
1990
|
+
}
|
|
1991
|
+
.azgrid .InovuaReactDataGrid__cell--locked-start.InovuaReactDataGrid__cell--last-in-section:after,
|
|
1992
|
+
.azgrid .InovuaReactDataGrid__cell--locked-end.InovuaReactDataGrid__cell--first-in-section:after {
|
|
1993
|
+
box-shadow: var(--azgrid-locked-column-shadow, var(--azgrid-preset-locked-column-shadow));
|
|
1994
|
+
}
|
|
1995
|
+
.azgrid-scope input,
|
|
1996
|
+
.azgrid-scope select,
|
|
1997
|
+
.azgrid-scope .azgrid-searcharea {
|
|
1998
|
+
color: var(--azgrid-filter-fg, var(--azgrid-preset-filter-fg));
|
|
1999
|
+
background-color: var(--azgrid-filter-bg, var(--azgrid-preset-filter-bg));
|
|
2000
|
+
border-color: var(--azgrid-filter-border, var(--azgrid-preset-filter-border));
|
|
2001
|
+
border-radius: var(--azgrid-radius, var(--azgrid-preset-radius));
|
|
2002
|
+
font-family: var(--azgrid-font-family, var(--azgrid-preset-font-family));
|
|
2003
|
+
}
|
|
2004
|
+
.azgrid-scope input::placeholder {
|
|
2005
|
+
color: var(--azgrid-filter-placeholder, var(--azgrid-preset-filter-placeholder));
|
|
2006
|
+
}
|
|
2007
|
+
.azgrid-scope input:focus-visible,
|
|
2008
|
+
.azgrid-scope select:focus-visible {
|
|
2009
|
+
outline: 1px solid var(--azgrid-filter-focus-ring, var(--azgrid-preset-filter-focus-ring));
|
|
2010
|
+
}
|
|
2011
|
+
.azgrid-scope .inovua-react-pagination-toolbar input,
|
|
2012
|
+
.azgrid-scope .inovua-react-pagination-toolbar select {
|
|
2013
|
+
background: var(--azgrid-pagination-bg, var(--azgrid-preset-pagination-bg));
|
|
2014
|
+
color: var(--azgrid-pagination-fg, var(--azgrid-preset-pagination-fg));
|
|
2015
|
+
border-color: var(--azgrid-pagination-border, var(--azgrid-preset-pagination-border));
|
|
2016
|
+
}
|
|
2017
|
+
.azgrid-scope .inovua-react-toolkit-text-input,
|
|
2018
|
+
.azgrid-scope .inovua-react-toolkit-combo-box,
|
|
2019
|
+
.azgrid-scope .inovua-react-toolkit-menu {
|
|
2020
|
+
border-radius: var(--azgrid-radius, var(--azgrid-preset-radius));
|
|
2021
|
+
}
|
|
2022
|
+
/* The row context menu is portaled to <body>, outside .azgrid-scope: these rules stay
|
|
2023
|
+
* unscoped and read the tokens from the theme class DataGrid puts on the menu.
|
|
2024
|
+
* Two classes exceed @azrico/controls' single-class menu rules. */
|
|
2025
|
+
.azgrid-context-menu.azrico-controls-contextmenu {
|
|
2026
|
+
--azrico-contextmenu-color: var(--azgrid-menu-fg, var(--azgrid-preset-menu-fg));
|
|
2027
|
+
--azrico-contextmenu-background: var(--azgrid-menu-bg, var(--azgrid-preset-menu-bg));
|
|
2028
|
+
--azrico-contextmenu-hover: var(--azgrid-menu-bg-hover, var(--azgrid-preset-menu-bg-hover));
|
|
2029
|
+
--azrico-contextmenu-focus: var(--azgrid-accent, var(--azgrid-preset-accent));
|
|
2030
|
+
--azrico-contextmenu-radius: var(--azgrid-radius, var(--azgrid-preset-radius));
|
|
2031
|
+
--azrico-contextmenu-shadow: 0 3px 8px var(--azgrid-shadow-color, var(--azgrid-preset-shadow-color));
|
|
2032
|
+
--azrico-contextmenu-font: var(--azgrid-font-family, var(--azgrid-preset-font-family));
|
|
2033
|
+
border: 1px solid var(--azgrid-menu-border, var(--azgrid-preset-menu-border));
|
|
2034
|
+
}
|
|
2035
|
+
.azgrid-scope, .azgrid-scope * {
|
|
2036
|
+
accent-color: var(--azgrid-accent, var(--azgrid-preset-accent));
|
|
2037
|
+
scrollbar-color: var(--azgrid-scrollbar-thumb, var(--azgrid-preset-scrollbar-thumb)) var(--azgrid-scrollbar-track, var(--azgrid-preset-scrollbar-track));
|
|
2038
|
+
}
|
|
2039
|
+
.azgrid-scope ::-webkit-scrollbar-track {
|
|
2040
|
+
background: var(--azgrid-scrollbar-track, var(--azgrid-preset-scrollbar-track));
|
|
2041
|
+
}
|
|
2042
|
+
.azgrid-scope ::-webkit-scrollbar-thumb {
|
|
2043
|
+
background: var(--azgrid-scrollbar-thumb, var(--azgrid-preset-scrollbar-thumb));
|
|
2044
|
+
}
|
|
2045
|
+
/* The grid draws its own scrollbars and pushes the native one out of view by a
|
|
2046
|
+
fixed offset. Setting scrollbar-color switches Chrome to the standard (wider)
|
|
2047
|
+
scrollbar, which then overlaps the last pixels of the viewport. Hide it. */
|
|
2048
|
+
.azgrid-scope .inovua-react-scroll-container__wrapper > div {
|
|
2049
|
+
scrollbar-width: none;
|
|
2050
|
+
}
|
|
2051
|
+
.azgrid-scope .inovua-react-scroll-container__wrapper > div::-webkit-scrollbar {
|
|
2052
|
+
display: none;
|
|
2053
|
+
}
|
|
2054
|
+
.azgrid .InovuaReactDataGrid__row.deleted:after {
|
|
2055
|
+
border-color: var(--azgrid-muted-fg, var(--azgrid-preset-muted-fg));
|
|
2056
|
+
}
|
package/src/types/types.ts
CHANGED
|
@@ -97,6 +97,8 @@ export type AzGridProps = {
|
|
|
97
97
|
contextMenuItems?: ConvertableToMenuItem;
|
|
98
98
|
/** Keep the context menu open when clicking outside (default false). */
|
|
99
99
|
dontAutoCloseContextMenu?: boolean;
|
|
100
|
+
/** Close the context menu on Escape (default false). */
|
|
101
|
+
escapeClosesContextMenu?: boolean;
|
|
100
102
|
/** Hide the grid context menu and leave the browser's context menu available. */
|
|
101
103
|
hideContextMenu?: boolean;
|
|
102
104
|
/** Extra classes on the row context menu, which is portaled to <body> */
|
package/src/views/DataGrid.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@inovua/reactdatagrid-enterprise/index.css';
|
|
2
2
|
import '../themes/base_styles.css';
|
|
3
3
|
import '../themes/grid.css';
|
|
4
|
-
import { get_default_key } from '../func/func_grid';
|
|
4
|
+
import { get_default_key, get_row_id } from '../func/func_grid';
|
|
5
5
|
import { ContextMenu } from '@azrico/controls/context-menu';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
@@ -164,6 +164,20 @@ function DataGridEventsWrapper(props: DataGridWrapperProps) {
|
|
|
164
164
|
menuAnchorEl,
|
|
165
165
|
menuRow,
|
|
166
166
|
} = useGridEvents(props.gridRef.current, props);
|
|
167
|
+
const menuRowId =
|
|
168
|
+
menuAnchorEl && !props.hideContextMenu && props.contextMenuItems
|
|
169
|
+
? get_row_id(menuRow)
|
|
170
|
+
: undefined;
|
|
171
|
+
const consumerRowClassName = props.static_gridOptions?.rowClassName;
|
|
172
|
+
const rowClassName = React.useCallback(
|
|
173
|
+
(rowProps) => clsx(
|
|
174
|
+
typeof consumerRowClassName === 'function'
|
|
175
|
+
? consumerRowClassName(rowProps)
|
|
176
|
+
: consumerRowClassName,
|
|
177
|
+
menuRowId != null && get_row_id(rowProps.data) === menuRowId && 'azgrid-row--menu-open'
|
|
178
|
+
),
|
|
179
|
+
[consumerRowClassName, menuRowId]
|
|
180
|
+
);
|
|
167
181
|
/* -------------------------------------------------------------------------- */
|
|
168
182
|
/**
|
|
169
183
|
* Merge click events into grid options
|
|
@@ -178,6 +192,7 @@ function DataGridEventsWrapper(props: DataGridWrapperProps) {
|
|
|
178
192
|
// internal row attributes first, consumer's onRenderRow last so it can override them
|
|
179
193
|
const consumerOnRenderRow = opts.onRenderRow;
|
|
180
194
|
const renderProps: any = {
|
|
195
|
+
rowClassName,
|
|
181
196
|
onRenderRow: consumerOnRenderRow
|
|
182
197
|
? (rowProps) => {
|
|
183
198
|
onRenderRow(rowProps);
|
|
@@ -218,6 +233,7 @@ function DataGridEventsWrapper(props: DataGridWrapperProps) {
|
|
|
218
233
|
onRowContextMenu,
|
|
219
234
|
onRenderRow,
|
|
220
235
|
onRenderLoadMask,
|
|
236
|
+
rowClassName,
|
|
221
237
|
]);
|
|
222
238
|
|
|
223
239
|
/* -------------------------------------------------------------------------- */
|
|
@@ -231,6 +247,7 @@ function DataGridEventsWrapper(props: DataGridWrapperProps) {
|
|
|
231
247
|
menuRow={menuRow}
|
|
232
248
|
close={update_menuRow}
|
|
233
249
|
dontAutoClose={props.dontAutoCloseContextMenu ?? false}
|
|
250
|
+
escapeClosesContextMenu={props.escapeClosesContextMenu ?? false}
|
|
234
251
|
menu_items={props.contextMenuItems as any}
|
|
235
252
|
/>
|
|
236
253
|
)}
|