@lowdefy/blocks-aggrid 5.5.1 → 6.0.0
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/README.md +58 -19
- package/dist/AgGrid.js +22 -14
- package/dist/AgGridInput.js +21 -14
- package/dist/ag-grid-antd.module.css +18 -49
- package/dist/blocks/AgGridAlpine/AgGridAlpine.js +4 -3
- package/dist/blocks/AgGridAlpine/e2e.js +1 -1
- package/dist/blocks/AgGridAlpine/gallery.yaml +1451 -0
- package/dist/blocks/AgGridAlpine/tests/AgGridAlpine.e2e.yaml +310 -0
- package/dist/blocks/AgGridBalham/AgGridBalham.js +4 -3
- package/dist/blocks/AgGridBalham/e2e.js +1 -1
- package/dist/blocks/AgGridBalham/gallery.yaml +645 -0
- package/dist/blocks/AgGridBalham/tests/AgGridBalham.e2e.yaml +594 -0
- package/dist/blocks/AgGridInputAlpine/AgGridInputAlpine.js +3 -2
- package/dist/blocks/AgGridInputAlpine/e2e.js +1 -1
- package/dist/blocks/AgGridInputAlpine/gallery.yaml +362 -0
- package/dist/blocks/AgGridInputAlpine/tests/AgGridInputAlpine.e2e.yaml +365 -0
- package/dist/blocks/AgGridInputBalham/AgGridInputBalham.js +3 -2
- package/dist/blocks/AgGridInputBalham/e2e.js +1 -1
- package/dist/blocks/AgGridInputBalham/gallery.yaml +362 -0
- package/dist/blocks/AgGridInputBalham/tests/AgGridInputBalham.e2e.yaml +365 -0
- package/dist/blocks/AgGridInputMaterial/AgGridInputMaterial.js +3 -2
- package/dist/blocks/AgGridInputMaterial/e2e.js +1 -1
- package/dist/blocks/AgGridInputMaterial/gallery.yaml +362 -0
- package/dist/blocks/AgGridInputMaterial/tests/AgGridInputMaterial.e2e.yaml +365 -0
- package/dist/blocks/AgGridLowdefy/AgGridLowdefy.js +45 -0
- package/dist/blocks/AgGridLowdefy/e2e.js +16 -0
- package/dist/blocks/AgGridLowdefy/gallery.yaml +1242 -0
- package/dist/blocks/AgGridLowdefy/meta.js +18 -0
- package/dist/blocks/AgGridLowdefy/tests/AgGridLowdefy.e2e.yaml +667 -0
- package/dist/blocks/AgGridLowdefyInput/AgGridLowdefyInput.js +48 -0
- package/dist/blocks/AgGridLowdefyInput/e2e.js +16 -0
- package/dist/blocks/AgGridLowdefyInput/gallery.yaml +489 -0
- package/dist/blocks/AgGridLowdefyInput/meta.js +18 -0
- package/dist/blocks/AgGridLowdefyInput/tests/AgGridLowdefyInput.e2e.yaml +686 -0
- package/dist/blocks/AgGridMaterial/AgGridMaterial.js +4 -3
- package/dist/blocks/AgGridMaterial/e2e.js +1 -1
- package/dist/blocks/AgGridMaterial/gallery.yaml +645 -0
- package/dist/blocks/AgGridMaterial/tests/AgGridMaterial.e2e.yaml +310 -0
- package/dist/blocks.js +2 -0
- package/dist/cellRenderers/MenuCell.js +110 -0
- package/dist/cellRenderers/index.js +2 -0
- package/dist/createAgGridDisplayHelper.js +1 -2
- package/dist/createAgGridInputHelper.js +1 -2
- package/dist/createDisplayMeta.js +115 -4
- package/dist/createInputMeta.js +20 -3
- package/dist/e2e.js +2 -0
- package/dist/metas.js +2 -0
- package/dist/processColDefs.js +75 -32
- package/dist/theme/themeLowdefy.js +165 -0
- package/dist/useColDefs.js +65 -0
- package/package.json +14 -17
package/README.md
CHANGED
|
@@ -1,25 +1,62 @@
|
|
|
1
1
|
# Lowdefy Blocks for Ag-Grid
|
|
2
2
|
|
|
3
|
-
This repository provides blocks for [
|
|
3
|
+
This repository provides blocks for [AG Grid](https://www.ag-grid.com/), a feature rich javascript grid and table library.
|
|
4
4
|
|
|
5
|
-
The implementation of these blocks is a minimal wrapper for the [
|
|
6
|
-
](https://www.npmjs.com/package/@ag-grid-community/core) package. This means you write normal Ag-Grid config to create tables.
|
|
5
|
+
The implementation of these blocks is a minimal wrapper for the [ag-grid-community](https://www.npmjs.com/package/ag-grid-community) package, on AG Grid v33. This means you write normal AG Grid config to create tables.
|
|
7
6
|
|
|
8
|
-
See the [
|
|
7
|
+
See the [AG Grid docs](https://www.ag-grid.com/react-data-grid/) for the table settings API.
|
|
9
8
|
|
|
10
9
|
## Blocks
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
Each grid is available as a `display` block and as an `input` block. The display blocks render data; the input blocks additionally hold the table data as the block's value.
|
|
13
12
|
|
|
14
13
|
### Block types
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
Display blocks:
|
|
17
16
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
17
|
+
- `AgGridLowdefy` — themed from the app's antd design tokens. Recommended for Lowdefy apps.
|
|
18
|
+
- `AgGridAlpine`
|
|
19
|
+
- `AgGridBalham`
|
|
20
|
+
- `AgGridMaterial`
|
|
21
|
+
|
|
22
|
+
Input blocks:
|
|
23
|
+
|
|
24
|
+
- `AgGridLowdefyInput` — themed from the app's antd design tokens. Recommended for Lowdefy apps.
|
|
25
|
+
- `AgGridInputAlpine`
|
|
26
|
+
- `AgGridInputBalham`
|
|
27
|
+
- `AgGridInputMaterial`
|
|
28
|
+
|
|
29
|
+
## Themes
|
|
30
|
+
|
|
31
|
+
All eight blocks render through [AG Grid's Theming API](https://www.ag-grid.com/react-data-grid/theming/). No block imports an AG Grid stylesheet and no block uses `theme="legacy"`.
|
|
32
|
+
|
|
33
|
+
**`AgGridLowdefy` is the recommended grid for Lowdefy apps.** It adopts the app's antd theme tokens — primary colour, surfaces, fonts and radius — and follows light/dark mode automatically, with no configuration. It takes a `size` property (`small | middle | large`, default `middle`) matching antd Table's densities, which sets row and header height to 36 / 44 / 54 pixels.
|
|
34
|
+
|
|
35
|
+
`AgGridBalham`, `AgGridAlpine` and `AgGridMaterial` remain first-class built-ins for users who want those looks, and are kept indefinitely with the same API. On v33 they render AG Grid's prebuilt Theming API equivalents of those themes (`themeBalham` / `themeAlpine` / `themeMaterial`) with the same antd colour mapping applied as theme parameters, so they look very close to before but are no longer pixel-identical.
|
|
36
|
+
|
|
37
|
+
### Adopting `AgGridLowdefy`
|
|
38
|
+
|
|
39
|
+
To adopt, change `type: AgGridBalham` to `type: AgGridLowdefy` (or `type: AgGridInputBalham` to `type: AgGridLowdefyInput`). Every property carries over unchanged, and the grid will deliberately look different afterwards — that is the point. This is a visual opt-in, not a migration.
|
|
40
|
+
|
|
41
|
+
### `size` and explicit heights
|
|
42
|
+
|
|
43
|
+
A `rowHeight` or `headerHeight` grid option overrides what `size` sets — use one or the other, not both. `size` sets the theme parameters `rowHeight` and `headerHeight`, and an AG Grid grid option always beats a theme parameter, so `size: large` together with `rowHeight: 30` gives 30 pixel rows under a 54 pixel header.
|
|
44
|
+
|
|
45
|
+
### `themeParams`
|
|
46
|
+
|
|
47
|
+
All eight blocks take a `themeParams` object property: [AG Grid theming parameter](https://www.ag-grid.com/react-data-grid/theming-parameters/) names merged onto the block's own theme, for retinting a single grid.
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
- id: my_table
|
|
51
|
+
type: AgGridLowdefy
|
|
52
|
+
properties:
|
|
53
|
+
themeParams:
|
|
54
|
+
headerBackgroundColor: '#1a1a2e'
|
|
55
|
+
headerTextColor: '#e0e0ff'
|
|
56
|
+
borderColor: var(--ant-color-border)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Values are CSS strings and may reference antd tokens. Neither Lowdefy nor AG Grid validates parameter names, so a misspelled key is a silent no-op — check spelling against AG Grid's theming parameter reference.
|
|
23
60
|
|
|
24
61
|
### Events
|
|
25
62
|
|
|
@@ -72,9 +109,7 @@ The availible ag-gird block types are:
|
|
|
72
109
|
|
|
73
110
|
- `exportDataAsCsv`: When called, table data will be downloaded in csv format.
|
|
74
111
|
- `sizeColumnsToFit`: When called, size table column widths to fit all columns to table width.
|
|
75
|
-
- `autoSize`: When called, auto size columns. The following can be passed as the first argument of `args`.
|
|
76
|
-
- `skipHeader: boolean`: Do not consider header content width when auto-sizing columns.
|
|
77
|
-
- `columnIds: string[]`: List of `colId`s for which to calculate auto-size when called.
|
|
112
|
+
- `autoSize`: When called, auto size columns. The following can be passed as the first argument of `args`. - `skipHeader: boolean`: Do not consider header content width when auto-sizing columns. - `columnIds: string[]`: List of `colId`s for which to calculate auto-size when called.
|
|
78
113
|
- `setFilterModel`: When called, apply filter model to table. See https://www.ag-grid.com/javascript-data-grid/filter-api/ for model details.
|
|
79
114
|
- `setQuickFilter`: When called, pass a quick filter text into the grid for filtering. See https://www.ag-grid.com/javascript-data-grid/filter-quick/ for details.
|
|
80
115
|
|
|
@@ -299,12 +334,14 @@ pages:
|
|
|
299
334
|
sortable: true
|
|
300
335
|
resizable: true
|
|
301
336
|
filter: true
|
|
302
|
-
rowSelection:
|
|
337
|
+
rowSelection:
|
|
338
|
+
mode: multiRow
|
|
339
|
+
enableClickSelection: true
|
|
340
|
+
checkboxes: true
|
|
303
341
|
columnDefs:
|
|
304
342
|
- headerName: Title
|
|
305
343
|
field: title
|
|
306
344
|
width: 350
|
|
307
|
-
checkboxSelection: true
|
|
308
345
|
- headerName: Year
|
|
309
346
|
field: year
|
|
310
347
|
width: 100
|
|
@@ -379,13 +416,15 @@ pages:
|
|
|
379
416
|
sortable: true
|
|
380
417
|
resizable: true
|
|
381
418
|
filter: true
|
|
382
|
-
rowSelection:
|
|
419
|
+
rowSelection:
|
|
420
|
+
mode: multiRow
|
|
421
|
+
enableClickSelection: true
|
|
422
|
+
checkboxes: true
|
|
423
|
+
headerCheckbox: true
|
|
383
424
|
columnDefs:
|
|
384
425
|
- headerName: Title
|
|
385
426
|
field: title
|
|
386
427
|
width: 350
|
|
387
|
-
checkboxSelection: true
|
|
388
|
-
headerCheckboxSelection: true
|
|
389
428
|
- headerName: Year
|
|
390
429
|
field: year
|
|
391
430
|
width: 100
|
package/dist/AgGrid.js
CHANGED
|
@@ -13,22 +13,31 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React, { useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
16
|
-
import { AgGridReact } from '
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import processColDefs from './processColDefs.js';
|
|
16
|
+
import { AgGridReact } from 'ag-grid-react';
|
|
17
|
+
import { AllCommunityModule, ModuleRegistry } from 'ag-grid-community';
|
|
18
|
+
import useColDefs from './useColDefs.js';
|
|
20
19
|
import assignRowId from './assignRowId.js';
|
|
21
20
|
import LoadingOverlay from './LoadingOverlay.js';
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
// Registration is idempotent, so each core registers independently to stay standalone.
|
|
22
|
+
ModuleRegistry.registerModules([
|
|
23
|
+
AllCommunityModule
|
|
24
|
+
]);
|
|
25
|
+
const AgGrid = ({ components, events, loading, methods, properties, theme })=>{
|
|
26
|
+
const { quickFilterValue, columnDefs, defaultColDef, height, rowData: newRowData, rowId, size, suppressCellFocus = true, themeParams, ...someProperties } = properties;
|
|
24
27
|
const [rowData, setRowData] = useState(newRowData ?? []);
|
|
25
28
|
const gridRef = useRef();
|
|
26
29
|
const memoDefaultColDef = useMemo(()=>defaultColDef);
|
|
30
|
+
const processedColDefs = useColDefs({
|
|
31
|
+
columnDefs,
|
|
32
|
+
methods,
|
|
33
|
+
components,
|
|
34
|
+
gridRef
|
|
35
|
+
});
|
|
27
36
|
const getRowId = useCallback((params)=>{
|
|
28
|
-
if (
|
|
37
|
+
if (rowId && params.data[rowId] !== undefined) return params.data[rowId];
|
|
29
38
|
return assignRowId(params);
|
|
30
39
|
}, [
|
|
31
|
-
|
|
40
|
+
rowId
|
|
32
41
|
]);
|
|
33
42
|
const onRowClick = useCallback((event)=>{
|
|
34
43
|
if (events.onRowClick) {
|
|
@@ -60,7 +69,9 @@ const AgGrid = ({ properties, methods, loading, events, components })=>{
|
|
|
60
69
|
}
|
|
61
70
|
}, []);
|
|
62
71
|
const onRowSelected = useCallback((event)=>{
|
|
63
|
-
|
|
72
|
+
// AG Grid fires onRowSelected for deselection too, which the Lowdefy event does not represent.
|
|
73
|
+
// See https://stackoverflow.com/a/63265775/2453657
|
|
74
|
+
if (!event.node.isSelected()) return;
|
|
64
75
|
if (events.onRowSelected) {
|
|
65
76
|
methods.triggerEvent({
|
|
66
77
|
name: 'onRowSelected',
|
|
@@ -144,6 +155,7 @@ const AgGrid = ({ properties, methods, loading, events, components })=>{
|
|
|
144
155
|
}, /*#__PURE__*/ React.createElement(AgGridReact, {
|
|
145
156
|
columnMenu: "legacy",
|
|
146
157
|
...someProperties,
|
|
158
|
+
theme: theme,
|
|
147
159
|
suppressCellFocus: suppressCellFocus,
|
|
148
160
|
rowData: rowData,
|
|
149
161
|
defaultColDef: memoDefaultColDef,
|
|
@@ -153,11 +165,7 @@ const AgGrid = ({ properties, methods, loading, events, components })=>{
|
|
|
153
165
|
onRowSelected: onRowSelected,
|
|
154
166
|
onRowClicked: onRowClick,
|
|
155
167
|
onCellClicked: onCellClicked,
|
|
156
|
-
|
|
157
|
-
ClientSideRowModelModule,
|
|
158
|
-
CsvExportModule
|
|
159
|
-
],
|
|
160
|
-
columnDefs: processColDefs(columnDefs, methods, components),
|
|
168
|
+
columnDefs: processedColDefs,
|
|
161
169
|
ref: gridRef,
|
|
162
170
|
getRowId: getRowId,
|
|
163
171
|
suppressLoadingOverlay: true
|
package/dist/AgGridInput.js
CHANGED
|
@@ -13,22 +13,30 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React, { useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
16
|
-
import { AgGridReact } from '
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import processColDefs from './processColDefs.js';
|
|
16
|
+
import { AgGridReact } from 'ag-grid-react';
|
|
17
|
+
import { AllCommunityModule, ModuleRegistry } from 'ag-grid-community';
|
|
18
|
+
import useColDefs from './useColDefs.js';
|
|
20
19
|
import assignRowId from './assignRowId.js';
|
|
21
20
|
import LoadingOverlay from './LoadingOverlay.js';
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
// Registration is idempotent, so each core registers independently to stay standalone.
|
|
22
|
+
ModuleRegistry.registerModules([
|
|
23
|
+
AllCommunityModule
|
|
24
|
+
]);
|
|
25
|
+
const AgGridInput = ({ events, loading, methods, properties, theme, value })=>{
|
|
26
|
+
const { quickFilterValue, columnDefs, defaultColDef, height, rowId, size, themeParams, ...someProperties } = properties;
|
|
24
27
|
const [rowData, setRowData] = useState(value ?? []);
|
|
25
28
|
const gridRef = useRef();
|
|
26
29
|
const memoDefaultColDef = useMemo(()=>defaultColDef);
|
|
30
|
+
const processedColDefs = useColDefs({
|
|
31
|
+
columnDefs,
|
|
32
|
+
methods,
|
|
33
|
+
gridRef
|
|
34
|
+
});
|
|
27
35
|
const getRowId = useCallback((params)=>{
|
|
28
|
-
if (
|
|
36
|
+
if (rowId && params.data[rowId] !== undefined) return params.data[rowId];
|
|
29
37
|
return assignRowId(params);
|
|
30
38
|
}, [
|
|
31
|
-
|
|
39
|
+
rowId
|
|
32
40
|
]);
|
|
33
41
|
const onRowClick = useCallback((event)=>{
|
|
34
42
|
if (events.onRowClick) {
|
|
@@ -60,7 +68,9 @@ const AgGridInput = ({ properties, methods, loading, events, value })=>{
|
|
|
60
68
|
}
|
|
61
69
|
}, []);
|
|
62
70
|
const onRowSelected = useCallback((event)=>{
|
|
63
|
-
|
|
71
|
+
// AG Grid fires onRowSelected for deselection too, which the Lowdefy event does not represent.
|
|
72
|
+
// See https://stackoverflow.com/a/63265775/2453657
|
|
73
|
+
if (!event.node.isSelected()) return;
|
|
64
74
|
if (events.onRowSelected) {
|
|
65
75
|
methods.triggerEvent({
|
|
66
76
|
name: 'onRowSelected',
|
|
@@ -192,6 +202,7 @@ const AgGridInput = ({ properties, methods, loading, events, value })=>{
|
|
|
192
202
|
}, /*#__PURE__*/ React.createElement(AgGridReact, {
|
|
193
203
|
columnMenu: "legacy",
|
|
194
204
|
...someProperties,
|
|
205
|
+
theme: theme,
|
|
195
206
|
rowData: rowData,
|
|
196
207
|
onCellClicked: onCellClicked,
|
|
197
208
|
onCellValueChanged: onCellValueChanged,
|
|
@@ -202,11 +213,7 @@ const AgGridInput = ({ properties, methods, loading, events, value })=>{
|
|
|
202
213
|
onSortChanged: onSortChanged,
|
|
203
214
|
onRowDragEnd: onRowDragEnd,
|
|
204
215
|
defaultColDef: memoDefaultColDef,
|
|
205
|
-
|
|
206
|
-
ClientSideRowModelModule,
|
|
207
|
-
CsvExportModule
|
|
208
|
-
],
|
|
209
|
-
columnDefs: processColDefs(columnDefs, methods),
|
|
216
|
+
columnDefs: processedColDefs,
|
|
210
217
|
ref: gridRef,
|
|
211
218
|
getRowId: getRowId,
|
|
212
219
|
suppressLoadingOverlay: true
|
|
@@ -1,44 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
--ag-foreground-color: var(--ant-color-text);
|
|
4
|
-
--ag-secondary-foreground-color: var(--ant-color-text-secondary);
|
|
5
|
-
--ag-border-color: var(--ant-color-border);
|
|
6
|
-
--ag-secondary-border-color: var(--ant-color-border-secondary);
|
|
7
|
-
--ag-header-background-color: var(--ant-color-fill-quaternary);
|
|
8
|
-
--ag-header-foreground-color: var(--ant-color-text);
|
|
9
|
-
--ag-header-cell-hover-background-color: var(--ant-color-fill-tertiary);
|
|
10
|
-
--ag-header-cell-moving-background-color: var(--ant-color-fill-secondary);
|
|
11
|
-
--ag-tooltip-background-color: var(--ant-color-bg-spotlight);
|
|
12
|
-
--ag-odd-row-background-color: var(--ant-color-fill-quaternary);
|
|
13
|
-
--ag-control-panel-background-color: var(--ant-color-bg-elevated);
|
|
14
|
-
--ag-subheader-background-color: var(--ant-color-bg-layout);
|
|
15
|
-
--ag-subheader-toolbar-background-color: var(--ant-color-bg-layout);
|
|
16
|
-
--ag-selected-row-background-color: var(--ant-color-primary-bg);
|
|
17
|
-
--ag-row-hover-color: var(--ant-color-primary-bg-hover);
|
|
18
|
-
--ag-column-hover-color: var(--ant-color-primary-bg-hover);
|
|
19
|
-
--ag-range-selection-highlight-color: var(--ant-color-primary-bg-hover);
|
|
20
|
-
--ag-modal-overlay-background-color: var(--ant-color-bg-mask);
|
|
21
|
-
--ag-input-disabled-background-color: var(--ant-color-bg-container-disabled);
|
|
22
|
-
--ag-input-disabled-border-color: var(--ant-color-border);
|
|
23
|
-
--ag-disabled-foreground-color: var(--ant-color-text-disabled);
|
|
24
|
-
--ag-chip-background-color: var(--ant-color-fill-secondary);
|
|
25
|
-
--ag-input-focus-box-shadow: 0 0 0 2px var(--ant-color-primary-bg);
|
|
26
|
-
--ag-input-focus-border-color: var(--ant-color-primary);
|
|
27
|
-
--ag-range-selection-border-color: var(--ant-color-primary);
|
|
28
|
-
--ag-range-selection-background-color: var(--ant-color-primary-bg);
|
|
29
|
-
--ag-checkbox-checked-color: var(--ant-color-primary);
|
|
30
|
-
--ag-checkbox-unchecked-color: var(--ant-color-text-quaternary);
|
|
31
|
-
--ag-checkbox-background-color: var(--ant-color-bg-container);
|
|
32
|
-
--ag-card-shadow: var(--ant-box-shadow-secondary);
|
|
33
|
-
--ag-popup-shadow: var(--ant-box-shadow);
|
|
34
|
-
--ag-font-family: var(--ant-font-family);
|
|
35
|
-
--ag-font-size: var(--ant-font-size);
|
|
36
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2026 Lowdefy, Inc
|
|
37
3
|
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* Lowdefy's own cell-rendering and layout helpers for all AgGrid blocks. Colours come from the
|
|
18
|
+
theme params in src/theme/themeLowdefy.js, not from this file: the Theming API honours AG Grid
|
|
19
|
+
custom properties inherited from an ancestor, so declaring any here would override those params. */
|
|
42
20
|
|
|
43
21
|
/* Avatar sizing per ag-grid theme — reads row-height via the wrapper class. */
|
|
44
22
|
.antdTheme:global(.ag-theme-balham),
|
|
@@ -56,15 +34,6 @@
|
|
|
56
34
|
--lf-avatar-font-size: var(--ant-font-size-sm, 12px);
|
|
57
35
|
}
|
|
58
36
|
|
|
59
|
-
.antdTheme :global(.ag-overlay-loading-wrapper) {
|
|
60
|
-
background-color: color-mix(in srgb, var(--ant-color-bg-container) 70%, transparent);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.antdTheme :global(.ag-overlay-loading-center) {
|
|
64
|
-
border-radius: var(--ant-border-radius);
|
|
65
|
-
box-shadow: var(--ant-box-shadow-secondary);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
37
|
.antdTheme :global(.ag-overlay-no-rows-wrapper) {
|
|
69
38
|
color: var(--ant-color-text-secondary);
|
|
70
39
|
}
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React from 'react';
|
|
16
16
|
import { withBlockDefaults } from '@lowdefy/block-utils';
|
|
17
|
-
import '@ag-grid-community/styles/ag-grid.css';
|
|
18
|
-
import '@ag-grid-community/styles/ag-theme-alpine.css';
|
|
19
17
|
import antdStyles from '../../ag-grid-antd.module.css';
|
|
18
|
+
import { themeAlpineAntd, useGridTheme } from '../../theme/themeLowdefy.js';
|
|
20
19
|
import AgGrid from '../../AgGrid.js';
|
|
21
20
|
const AgGridAlpine = ({ blockId, components, events, loading, methods, properties, styles })=>{
|
|
21
|
+
const theme = useGridTheme(themeAlpineAntd, properties.themeParams);
|
|
22
22
|
return /*#__PURE__*/ React.createElement("div", {
|
|
23
23
|
id: blockId,
|
|
24
24
|
className: `ag-theme-alpine ${antdStyles.antdTheme}`,
|
|
@@ -32,7 +32,8 @@ const AgGridAlpine = ({ blockId, components, events, loading, methods, propertie
|
|
|
32
32
|
events: events,
|
|
33
33
|
loading: loading,
|
|
34
34
|
methods: methods,
|
|
35
|
-
properties: properties
|
|
35
|
+
properties: properties,
|
|
36
|
+
theme: theme
|
|
36
37
|
}));
|
|
37
38
|
};
|
|
38
39
|
export default withBlockDefaults(AgGridAlpine);
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import createAgGridDisplayHelper from '../../createAgGridDisplayHelper.js';
|
|
16
|
-
export default createAgGridDisplayHelper(
|
|
16
|
+
export default createAgGridDisplayHelper();
|