argent-grid 0.1.0 → 0.2.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/.github/workflows/ci.yml +69 -0
- package/.github/workflows/pages.yml +6 -12
- package/.storybook/main.ts +20 -0
- package/.storybook/preview.ts +18 -0
- package/.storybook/tsconfig.json +24 -0
- package/AGENTS.md +2 -2
- package/README.md +51 -34
- package/angular.json +66 -0
- package/biome.json +66 -0
- package/demo-app/e2e/selection-screenshot.spec.ts +20 -0
- package/docs/AG-GRID-COMPARISON.md +725 -0
- package/docs/CELL-RENDERER-GUIDE.md +241 -0
- package/docs/CONTEXT-MENU-GUIDE.md +371 -0
- package/docs/LIVE-DATA-OPTIMIZATIONS.md +497 -0
- package/docs/PERFORMANCE-OPTIMIZATIONS-PHASE1.md +162 -0
- package/docs/PERFORMANCE-REVIEW.md +571 -0
- package/docs/RESEARCH-STATUS.md +234 -0
- package/docs/STATE-PERSISTENCE-GUIDE.md +370 -0
- package/docs/STORYBOOK-REFACTOR.md +215 -0
- package/docs/STORYBOOK-STATUS.md +156 -0
- package/docs/TEST-COVERAGE-REPORT.md +276 -0
- package/docs/THEME-API-GUIDE.md +445 -0
- package/docs/THEME-API-PLAN.md +364 -0
- package/e2e/advanced.spec.ts +109 -0
- package/e2e/argentgrid.spec.ts +65 -0
- package/e2e/benchmark.spec.ts +52 -0
- package/e2e/screenshots.spec.ts +52 -0
- package/e2e/theming.spec.ts +35 -0
- package/e2e/visual.spec.ts +91 -0
- package/e2e/visual.spec.ts-snapshots/grid-default.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-empty-state.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-filter-popup.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-scroll-borders.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-sidebar-buttons.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-text-filter.png +0 -0
- package/e2e/visual.spec.ts-snapshots/grid-with-selection.png +0 -0
- package/package.json +20 -6
- package/plan.md +50 -18
- package/playwright.config.ts +38 -0
- package/setup-vitest.ts +10 -13
- package/src/lib/argent-grid.module.ts +10 -12
- package/src/lib/components/argent-grid.component.css +327 -76
- package/src/lib/components/argent-grid.component.html +186 -64
- package/src/lib/components/argent-grid.component.spec.ts +120 -160
- package/src/lib/components/argent-grid.component.ts +642 -189
- package/src/lib/components/argent-grid.selection.spec.ts +132 -0
- package/src/lib/components/set-filter/set-filter.component.ts +302 -0
- package/src/lib/directives/ag-grid-compatibility.directive.ts +16 -26
- package/src/lib/directives/click-outside.directive.ts +19 -0
- package/src/lib/rendering/canvas-renderer.spec.ts +366 -0
- package/src/lib/rendering/canvas-renderer.ts +418 -305
- package/src/lib/rendering/live-data-handler.ts +110 -0
- package/src/lib/rendering/live-data-optimizations.ts +133 -0
- package/src/lib/rendering/render/blit.spec.ts +16 -27
- package/src/lib/rendering/render/blit.ts +48 -36
- package/src/lib/rendering/render/cells.spec.ts +132 -0
- package/src/lib/rendering/render/cells.ts +46 -24
- package/src/lib/rendering/render/column-utils.ts +73 -0
- package/src/lib/rendering/render/hit-test.ts +55 -0
- package/src/lib/rendering/render/index.ts +79 -76
- package/src/lib/rendering/render/lines.ts +43 -43
- package/src/lib/rendering/render/primitives.ts +161 -0
- package/src/lib/rendering/render/theme.spec.ts +8 -12
- package/src/lib/rendering/render/theme.ts +7 -10
- package/src/lib/rendering/render/types.ts +2 -2
- package/src/lib/rendering/render/walk.spec.ts +35 -38
- package/src/lib/rendering/render/walk.ts +60 -50
- package/src/lib/rendering/utils/damage-tracker.spec.ts +8 -7
- package/src/lib/rendering/utils/damage-tracker.ts +6 -18
- package/src/lib/rendering/utils/index.ts +1 -1
- package/src/lib/services/grid.service.set-filter.spec.ts +219 -0
- package/src/lib/services/grid.service.spec.ts +1165 -201
- package/src/lib/services/grid.service.ts +819 -187
- package/src/lib/themes/parts/color-schemes.ts +132 -0
- package/src/lib/themes/parts/icon-sets.ts +258 -0
- package/src/lib/themes/theme-builder.ts +347 -0
- package/src/lib/themes/theme-quartz.ts +72 -0
- package/src/lib/themes/types.ts +238 -0
- package/src/lib/types/ag-grid-types.ts +73 -14
- package/src/public-api.ts +39 -9
- package/src/stories/Advanced.stories.ts +188 -0
- package/src/stories/ArgentGrid.stories.ts +277 -0
- package/src/stories/Benchmark.stories.ts +74 -0
- package/src/stories/CellRenderers.stories.ts +221 -0
- package/src/stories/Filtering.stories.ts +252 -0
- package/src/stories/Grouping.stories.ts +217 -0
- package/src/stories/Theming.stories.ts +124 -0
- package/src/stories/benchmark-wrapper.component.ts +315 -0
- package/tsconfig.storybook.json +10 -0
- package/vitest.config.ts +9 -9
- package/demo-app/README.md +0 -70
- package/demo-app/angular.json +0 -78
- package/demo-app/e2e/benchmark.spec.ts +0 -53
- package/demo-app/e2e/demo-page.spec.ts +0 -77
- package/demo-app/e2e/grid-features.spec.ts +0 -269
- package/demo-app/package-lock.json +0 -14023
- package/demo-app/package.json +0 -36
- package/demo-app/playwright-test-menu.js +0 -19
- package/demo-app/playwright.config.ts +0 -23
- package/demo-app/src/app/app.component.ts +0 -10
- package/demo-app/src/app/app.config.ts +0 -13
- package/demo-app/src/app/app.routes.ts +0 -7
- package/demo-app/src/app/demo-page/demo-page.component.css +0 -313
- package/demo-app/src/app/demo-page/demo-page.component.html +0 -124
- package/demo-app/src/app/demo-page/demo-page.component.ts +0 -366
- package/demo-app/src/index.html +0 -19
- package/demo-app/src/main.ts +0 -6
- package/demo-app/tsconfig.json +0 -31
|
@@ -2,9 +2,20 @@
|
|
|
2
2
|
box-sizing: border-box;
|
|
3
3
|
position: relative;
|
|
4
4
|
overflow: hidden;
|
|
5
|
-
border: 1px solid #babed1;
|
|
6
|
-
background: #fff;
|
|
7
|
-
font-family:
|
|
5
|
+
border: 1px solid var(--ag-border-color, #babed1);
|
|
6
|
+
background: var(--ag-background-color, #fff);
|
|
7
|
+
font-family: var(
|
|
8
|
+
--ag-font-family,
|
|
9
|
+
-apple-system,
|
|
10
|
+
BlinkMacSystemFont,
|
|
11
|
+
"Segoe UI",
|
|
12
|
+
Roboto,
|
|
13
|
+
Oxygen,
|
|
14
|
+
Ubuntu,
|
|
15
|
+
sans-serif
|
|
16
|
+
);
|
|
17
|
+
font-size: var(--ag-font-size, 14px);
|
|
18
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
8
19
|
display: flex;
|
|
9
20
|
flex-direction: column;
|
|
10
21
|
}
|
|
@@ -29,7 +40,7 @@
|
|
|
29
40
|
right: 0;
|
|
30
41
|
top: 0;
|
|
31
42
|
bottom: 0;
|
|
32
|
-
z-index:
|
|
43
|
+
z-index: 25; /* Higher than header z-index (20) */
|
|
33
44
|
background: transparent;
|
|
34
45
|
display: flex;
|
|
35
46
|
flex-direction: row-reverse;
|
|
@@ -48,7 +59,8 @@
|
|
|
48
59
|
flex-direction: column;
|
|
49
60
|
pointer-events: none;
|
|
50
61
|
height: 100%;
|
|
51
|
-
border-left: 1px solid #babed1;
|
|
62
|
+
border-left: 1px solid var(--ag-border-color, #babed1);
|
|
63
|
+
padding-top: 32px; /* Start below the header row */
|
|
52
64
|
}
|
|
53
65
|
|
|
54
66
|
.side-bar-button {
|
|
@@ -56,54 +68,49 @@
|
|
|
56
68
|
padding: 12px 8px;
|
|
57
69
|
cursor: pointer;
|
|
58
70
|
font-size: 12px;
|
|
59
|
-
color: #666;
|
|
60
|
-
border-bottom: 1px solid #ddd;
|
|
61
|
-
background: #f4f4f4;
|
|
71
|
+
color: var(--ag-secondary-foreground-color, #666);
|
|
72
|
+
border-bottom: 1px solid var(--ag-border-color, #ddd);
|
|
73
|
+
background: var(--ag-background-color, #f4f4f4);
|
|
62
74
|
pointer-events: auto;
|
|
63
75
|
}
|
|
64
76
|
|
|
65
77
|
.side-bar-button:hover {
|
|
66
|
-
background: #fff;
|
|
78
|
+
background: var(--ag-background-color, #fff);
|
|
67
79
|
}
|
|
68
80
|
|
|
69
81
|
.side-bar-button.active {
|
|
70
|
-
background: #fff;
|
|
71
|
-
border-left: 2px solid #2196f3;
|
|
72
|
-
color: #2196f3;
|
|
82
|
+
background: var(--ag-background-color, #fff);
|
|
83
|
+
border-left: 2px solid var(--ag-selected-row-background-color, #2196f3);
|
|
84
|
+
color: var(--ag-selected-row-background-color, #2196f3);
|
|
73
85
|
font-weight: bold;
|
|
74
86
|
}
|
|
75
87
|
|
|
76
88
|
.tool-panel-content {
|
|
77
89
|
width: 250px;
|
|
78
90
|
padding: 12px;
|
|
91
|
+
padding-top: 32px; /* Start below the header row */
|
|
79
92
|
overflow-y: auto;
|
|
80
|
-
background: #fff;
|
|
93
|
+
background: var(--ag-background-color, #fff);
|
|
81
94
|
pointer-events: auto;
|
|
82
|
-
border-left: 1px solid #babed1;
|
|
95
|
+
border-left: 1px solid var(--ag-border-color, #babed1);
|
|
83
96
|
box-shadow: -5px 0 10px rgba(0, 0, 0, 0.05);
|
|
84
97
|
}
|
|
85
98
|
|
|
86
99
|
.tool-panel-content h3 {
|
|
87
100
|
margin: 0 0 12px 0;
|
|
88
101
|
font-size: 14px;
|
|
89
|
-
color: #333;
|
|
90
|
-
border-bottom: 1px solid #eee;
|
|
102
|
+
color: var(--ag-foreground-color, #333);
|
|
103
|
+
border-bottom: 1px solid var(--ag-border-color, #eee);
|
|
91
104
|
padding-bottom: 8px;
|
|
92
105
|
}
|
|
93
106
|
|
|
94
|
-
.column-list {
|
|
95
|
-
display: flex;
|
|
96
|
-
flex-direction: column;
|
|
97
|
-
gap: 8px;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
107
|
.column-item {
|
|
101
108
|
display: flex;
|
|
102
109
|
align-items: center;
|
|
103
110
|
padding: 6px 8px;
|
|
104
111
|
gap: 8px;
|
|
105
|
-
background: #fff;
|
|
106
|
-
border-bottom: 1px solid #f0f0f0;
|
|
112
|
+
background: var(--ag-background-color, #fff);
|
|
113
|
+
border-bottom: 1px solid var(--ag-border-color, #f0f0f0);
|
|
107
114
|
cursor: default;
|
|
108
115
|
}
|
|
109
116
|
|
|
@@ -113,7 +120,7 @@
|
|
|
113
120
|
|
|
114
121
|
.column-drag-handle {
|
|
115
122
|
cursor: grab;
|
|
116
|
-
color: #ccc;
|
|
123
|
+
color: var(--ag-secondary-foreground-color, #ccc);
|
|
117
124
|
font-size: 14px;
|
|
118
125
|
user-select: none;
|
|
119
126
|
display: flex;
|
|
@@ -127,7 +134,7 @@
|
|
|
127
134
|
.column-label {
|
|
128
135
|
flex: 1;
|
|
129
136
|
font-size: 12px;
|
|
130
|
-
color: #333;
|
|
137
|
+
color: var(--ag-foreground-color, #333);
|
|
131
138
|
overflow: hidden;
|
|
132
139
|
text-overflow: ellipsis;
|
|
133
140
|
white-space: nowrap;
|
|
@@ -137,20 +144,22 @@
|
|
|
137
144
|
.sidebar-drag-preview {
|
|
138
145
|
box-sizing: border-box;
|
|
139
146
|
border-radius: 4px;
|
|
140
|
-
box-shadow:
|
|
141
|
-
|
|
142
|
-
|
|
147
|
+
box-shadow:
|
|
148
|
+
0 5px 5px -3px rgba(0, 0, 0, 0.2),
|
|
149
|
+
0 8px 10px 1px rgba(0, 0, 0, 0.14),
|
|
150
|
+
0 3px 14px 2px rgba(0, 0, 0, 0.12);
|
|
143
151
|
display: flex;
|
|
144
152
|
align-items: center;
|
|
145
153
|
padding: 8px 12px;
|
|
146
|
-
background: white;
|
|
154
|
+
background: var(--ag-background-color, white);
|
|
147
155
|
z-index: 10001;
|
|
148
156
|
gap: 8px;
|
|
157
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
.sidebar-drag-placeholder {
|
|
152
161
|
opacity: 0.3;
|
|
153
|
-
background: #e0e0e0;
|
|
162
|
+
background: var(--ag-border-color, #e0e0e0);
|
|
154
163
|
}
|
|
155
164
|
|
|
156
165
|
.column-list.cdk-drop-list-dragging .column-item:not(.cdk-drag-placeholder) {
|
|
@@ -161,14 +170,21 @@
|
|
|
161
170
|
margin: 0;
|
|
162
171
|
}
|
|
163
172
|
|
|
164
|
-
.argent-grid-container *,
|
|
173
|
+
.argent-grid-container *,
|
|
174
|
+
.argent-grid-container *:before,
|
|
175
|
+
.argent-grid-container *:after {
|
|
165
176
|
box-sizing: inherit;
|
|
166
177
|
}
|
|
167
178
|
|
|
168
179
|
.argent-grid-header {
|
|
169
|
-
border-bottom: 1px solid #babed1;
|
|
170
|
-
background: #f8f9fa;
|
|
180
|
+
border-bottom: 1px solid var(--ag-border-color, #babed1);
|
|
181
|
+
background: var(--ag-header-background-color, #f8f9fa);
|
|
182
|
+
color: var(--ag-header-foreground-color, #181d1f);
|
|
171
183
|
font-weight: 600;
|
|
184
|
+
position: relative;
|
|
185
|
+
z-index: 20;
|
|
186
|
+
display: flex;
|
|
187
|
+
flex-direction: column;
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
.argent-grid-header-row {
|
|
@@ -179,6 +195,11 @@
|
|
|
179
195
|
.argent-grid-header-scrollable {
|
|
180
196
|
overflow: hidden;
|
|
181
197
|
flex: 1;
|
|
198
|
+
display: flex;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.argent-grid-header-scrollable .argent-grid-header-row {
|
|
202
|
+
flex: 1;
|
|
182
203
|
}
|
|
183
204
|
|
|
184
205
|
.argent-grid-header-pinned-left-container,
|
|
@@ -189,16 +210,18 @@
|
|
|
189
210
|
.cdk-drag-preview {
|
|
190
211
|
box-sizing: border-box;
|
|
191
212
|
border-radius: 4px;
|
|
192
|
-
box-shadow:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
213
|
+
box-shadow:
|
|
214
|
+
0 5px 5px -3px rgba(0, 0, 0, 0.2),
|
|
215
|
+
0 8px 10px 1px rgba(0, 0, 0, 0.14),
|
|
216
|
+
0 3px 14px 2px rgba(0, 0, 0, 0.12);
|
|
217
|
+
background: var(--ag-background-color, #f5f5f5);
|
|
196
218
|
display: flex;
|
|
197
219
|
align-items: center;
|
|
198
220
|
justify-content: center;
|
|
199
221
|
padding: 8px 12px;
|
|
200
222
|
font-weight: 600;
|
|
201
223
|
opacity: 0.8;
|
|
224
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
202
225
|
}
|
|
203
226
|
|
|
204
227
|
.cdk-drag-placeholder {
|
|
@@ -209,13 +232,43 @@
|
|
|
209
232
|
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
|
|
210
233
|
}
|
|
211
234
|
|
|
212
|
-
.argent-grid-header-cell.cdk-drop-list-dragging
|
|
235
|
+
.argent-grid-header-cell.cdk-drop-list-dragging
|
|
236
|
+
.argent-grid-header-cell:not(.cdk-drag-placeholder) {
|
|
213
237
|
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
|
|
214
238
|
}
|
|
215
239
|
|
|
240
|
+
.argent-grid-header-checkbox {
|
|
241
|
+
display: flex;
|
|
242
|
+
align-items: center;
|
|
243
|
+
justify-content: center;
|
|
244
|
+
margin-right: 8px;
|
|
245
|
+
flex-shrink: 0;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.argent-grid-header-cell.center-content .argent-grid-header-checkbox {
|
|
249
|
+
margin-right: 0;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.argent-grid-header-cell.center-content {
|
|
253
|
+
justify-content: center;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.argent-grid-header-cell.center-content .argent-grid-header-content {
|
|
257
|
+
justify-content: center;
|
|
258
|
+
flex: none; /* Don't grow so parent's justify-content works better, or just center inside */
|
|
259
|
+
width: 100%;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.argent-grid-header-checkbox input {
|
|
263
|
+
margin: 0;
|
|
264
|
+
cursor: pointer;
|
|
265
|
+
width: 14px;
|
|
266
|
+
height: 14px;
|
|
267
|
+
}
|
|
268
|
+
|
|
216
269
|
.argent-grid-header-cell {
|
|
217
|
-
padding:
|
|
218
|
-
border-right: 1px solid #babed1;
|
|
270
|
+
padding: 4px 12px;
|
|
271
|
+
border-right: 1px solid var(--ag-border-color, #babed1);
|
|
219
272
|
display: flex;
|
|
220
273
|
align-items: center;
|
|
221
274
|
justify-content: space-between;
|
|
@@ -223,7 +276,8 @@
|
|
|
223
276
|
user-select: none;
|
|
224
277
|
flex-shrink: 0;
|
|
225
278
|
position: relative;
|
|
226
|
-
height:
|
|
279
|
+
min-height: 32px;
|
|
280
|
+
color: var(--ag-header-foreground-color, #181d1f);
|
|
227
281
|
}
|
|
228
282
|
|
|
229
283
|
.argent-grid-header-cell:hover .argent-grid-header-menu-icon {
|
|
@@ -235,7 +289,6 @@
|
|
|
235
289
|
align-items: center;
|
|
236
290
|
overflow: hidden;
|
|
237
291
|
flex: 1;
|
|
238
|
-
height: 100%;
|
|
239
292
|
}
|
|
240
293
|
|
|
241
294
|
.header-text {
|
|
@@ -247,15 +300,15 @@
|
|
|
247
300
|
.argent-grid-header-menu-icon {
|
|
248
301
|
opacity: 0;
|
|
249
302
|
padding: 0 6px;
|
|
250
|
-
color: #666;
|
|
303
|
+
color: var(--ag-secondary-foreground-color, #666);
|
|
251
304
|
transition: opacity 0.2s;
|
|
252
305
|
font-size: 16px;
|
|
253
306
|
line-height: 1;
|
|
254
307
|
}
|
|
255
308
|
|
|
256
309
|
.argent-grid-header-menu-icon:hover {
|
|
257
|
-
color: #000;
|
|
258
|
-
background: #e0e0e0;
|
|
310
|
+
color: var(--ag-foreground-color, #000);
|
|
311
|
+
background: var(--ag-row-hover-color, #e0e0e0);
|
|
259
312
|
border-radius: 4px;
|
|
260
313
|
}
|
|
261
314
|
|
|
@@ -268,36 +321,37 @@
|
|
|
268
321
|
cursor: col-resize;
|
|
269
322
|
z-index: 5;
|
|
270
323
|
transition: background-color 0.2s;
|
|
324
|
+
height: 100%;
|
|
271
325
|
}
|
|
272
326
|
|
|
273
327
|
.argent-grid-header-resize-handle:hover,
|
|
274
328
|
.argent-grid-header-resize-handle.resizing {
|
|
275
|
-
background-color: #2196f3;
|
|
329
|
+
background-color: var(--ag-selected-row-background-color, #2196f3);
|
|
276
330
|
}
|
|
277
331
|
|
|
278
332
|
.argent-grid-header-cell-pinned-left {
|
|
279
333
|
position: sticky;
|
|
280
334
|
left: 0;
|
|
281
335
|
z-index: 10;
|
|
282
|
-
background: #f8f9fa;
|
|
336
|
+
background: var(--ag-header-background-color, #f8f9fa);
|
|
283
337
|
}
|
|
284
338
|
|
|
285
339
|
.argent-grid-header-cell-pinned-right {
|
|
286
340
|
position: sticky;
|
|
287
341
|
right: 0;
|
|
288
342
|
z-index: 10;
|
|
289
|
-
background: #f8f9fa;
|
|
343
|
+
background: var(--ag-header-background-color, #f8f9fa);
|
|
290
344
|
}
|
|
291
345
|
|
|
292
346
|
.argent-grid-header-cell.sortable:hover {
|
|
293
|
-
background: #e8e8e8;
|
|
347
|
+
background: var(--ag-row-hover-color, #e8e8e8);
|
|
294
348
|
}
|
|
295
349
|
|
|
296
350
|
.sort-indicator {
|
|
297
351
|
margin-left: 4px;
|
|
298
352
|
font-size: 12px;
|
|
353
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
299
354
|
}
|
|
300
|
-
|
|
301
355
|
.argent-grid-viewport {
|
|
302
356
|
position: relative;
|
|
303
357
|
overflow: auto;
|
|
@@ -305,6 +359,7 @@
|
|
|
305
359
|
will-change: scroll-position;
|
|
306
360
|
flex: 1;
|
|
307
361
|
min-height: 0;
|
|
362
|
+
background: var(--ag-background-color, #fff);
|
|
308
363
|
}
|
|
309
364
|
|
|
310
365
|
.argent-grid-canvas {
|
|
@@ -322,9 +377,9 @@
|
|
|
322
377
|
position: absolute;
|
|
323
378
|
top: 0;
|
|
324
379
|
left: 0;
|
|
325
|
-
width: 1px;
|
|
326
|
-
visibility: hidden;
|
|
327
380
|
pointer-events: none;
|
|
381
|
+
z-index: -1;
|
|
382
|
+
background: var(--ag-background-color, #fff);
|
|
328
383
|
}
|
|
329
384
|
|
|
330
385
|
.argent-grid-overlay {
|
|
@@ -336,7 +391,7 @@
|
|
|
336
391
|
display: flex;
|
|
337
392
|
align-items: center;
|
|
338
393
|
justify-content: center;
|
|
339
|
-
background: rgba(255, 255, 255, 0.9);
|
|
394
|
+
background: var(--ag-background-color, rgba(255, 255, 255, 0.9));
|
|
340
395
|
z-index: 10;
|
|
341
396
|
}
|
|
342
397
|
|
|
@@ -349,25 +404,28 @@
|
|
|
349
404
|
.argent-grid-editor-input {
|
|
350
405
|
width: 100%;
|
|
351
406
|
height: 100%;
|
|
352
|
-
border: 2px solid #2196f3;
|
|
407
|
+
border: 2px solid var(--ag-selected-row-background-color, #2196f3);
|
|
353
408
|
outline: none;
|
|
354
409
|
padding: 4px 8px;
|
|
355
|
-
font-size: 13px;
|
|
356
|
-
font-family: inherit;
|
|
410
|
+
font-size: var(--ag-font-size, 13px);
|
|
411
|
+
font-family: var(--ag-font-family, inherit);
|
|
357
412
|
box-sizing: border-box;
|
|
413
|
+
background: var(--ag-background-color, #fff);
|
|
414
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
358
415
|
}
|
|
359
416
|
|
|
360
|
-
.argent-grid-header-menu,
|
|
417
|
+
.argent-grid-header-menu,
|
|
418
|
+
.argent-grid-context-menu {
|
|
361
419
|
position: fixed;
|
|
362
|
-
background: #ffffff;
|
|
363
|
-
border: 1px solid #babed1;
|
|
420
|
+
background: var(--ag-background-color, #ffffff);
|
|
421
|
+
border: 1px solid var(--ag-border-color, #babed1);
|
|
364
422
|
box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.2);
|
|
365
423
|
border-radius: 3px;
|
|
366
424
|
padding: 4px 0;
|
|
367
425
|
z-index: 10000;
|
|
368
426
|
min-width: 200px;
|
|
369
427
|
font-size: 13px;
|
|
370
|
-
color: #181d1f;
|
|
428
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
371
429
|
}
|
|
372
430
|
|
|
373
431
|
.menu-item {
|
|
@@ -380,11 +438,11 @@
|
|
|
380
438
|
}
|
|
381
439
|
|
|
382
440
|
.menu-item:hover {
|
|
383
|
-
background-color: #f0f2f5;
|
|
441
|
+
background-color: var(--ag-row-hover-color, #f0f2f5);
|
|
384
442
|
}
|
|
385
443
|
|
|
386
444
|
.menu-item.disabled {
|
|
387
|
-
color: #999;
|
|
445
|
+
color: var(--ag-secondary-foreground-color, #999);
|
|
388
446
|
cursor: not-allowed;
|
|
389
447
|
}
|
|
390
448
|
|
|
@@ -399,7 +457,7 @@
|
|
|
399
457
|
.menu-arrow {
|
|
400
458
|
margin-left: 8px;
|
|
401
459
|
font-size: 10px;
|
|
402
|
-
color: #999;
|
|
460
|
+
color: var(--ag-secondary-foreground-color, #999);
|
|
403
461
|
}
|
|
404
462
|
|
|
405
463
|
/* Sub-menu styling */
|
|
@@ -422,24 +480,33 @@
|
|
|
422
480
|
align-items: center;
|
|
423
481
|
margin-right: 8px;
|
|
424
482
|
font-size: 14px;
|
|
425
|
-
color: #555;
|
|
483
|
+
color: var(--ag-foreground-color, #555);
|
|
426
484
|
}
|
|
427
485
|
|
|
428
486
|
.menu-divider {
|
|
429
487
|
height: 1px;
|
|
430
|
-
background-color: #babed1;
|
|
488
|
+
background-color: var(--ag-border-color, #babed1);
|
|
431
489
|
margin: 4px 0;
|
|
432
490
|
opacity: 0.5;
|
|
433
491
|
}
|
|
434
492
|
|
|
435
493
|
.floating-filter-row {
|
|
436
|
-
background: #fafafa;
|
|
437
|
-
border-top: 1px solid #
|
|
494
|
+
background: var(--ag-background-color, #fafafa);
|
|
495
|
+
border-top: 1px solid var(--ag-border-color, #babed1);
|
|
496
|
+
position: relative;
|
|
497
|
+
z-index: 20;
|
|
498
|
+
min-height: 28px;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.argent-grid-floating-filter-cell {
|
|
502
|
+
padding: 2px 12px;
|
|
503
|
+
cursor: default;
|
|
504
|
+
min-height: 28px;
|
|
438
505
|
}
|
|
439
506
|
|
|
440
507
|
.floating-filter-container {
|
|
441
508
|
width: 100%;
|
|
442
|
-
padding:
|
|
509
|
+
padding: 1px 4px;
|
|
443
510
|
box-sizing: border-box;
|
|
444
511
|
position: relative;
|
|
445
512
|
display: flex;
|
|
@@ -448,20 +515,22 @@
|
|
|
448
515
|
|
|
449
516
|
.floating-filter-input {
|
|
450
517
|
width: 100%;
|
|
451
|
-
height:
|
|
452
|
-
border: 1px solid #d0d0d0;
|
|
518
|
+
height: 22px;
|
|
519
|
+
border: 1px solid var(--ag-border-color, #d0d0d0);
|
|
453
520
|
border-radius: 2px;
|
|
454
521
|
padding: 0 20px 0 6px;
|
|
455
522
|
font-size: 12px;
|
|
456
523
|
outline: none;
|
|
457
524
|
box-sizing: border-box;
|
|
525
|
+
background: var(--ag-background-color, #fff);
|
|
526
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
458
527
|
}
|
|
459
528
|
|
|
460
529
|
.floating-filter-clear {
|
|
461
530
|
position: absolute;
|
|
462
531
|
right: 8px;
|
|
463
532
|
cursor: pointer;
|
|
464
|
-
color: #999;
|
|
533
|
+
color: var(--ag-secondary-foreground-color, #999);
|
|
465
534
|
font-size: 10px;
|
|
466
535
|
display: flex;
|
|
467
536
|
align-items: center;
|
|
@@ -469,15 +538,197 @@
|
|
|
469
538
|
width: 14px;
|
|
470
539
|
height: 14px;
|
|
471
540
|
border-radius: 50%;
|
|
472
|
-
transition:
|
|
541
|
+
transition:
|
|
542
|
+
background-color 0.2s,
|
|
543
|
+
color 0.2s;
|
|
473
544
|
}
|
|
474
545
|
|
|
475
546
|
.floating-filter-clear:hover {
|
|
476
|
-
background-color: #eee;
|
|
477
|
-
color: #333;
|
|
547
|
+
background-color: var(--ag-row-hover-color, #eee);
|
|
548
|
+
color: var(--ag-foreground-color, #333);
|
|
478
549
|
}
|
|
479
550
|
|
|
480
551
|
.floating-filter-input:focus {
|
|
481
|
-
border-color: #2196f3;
|
|
552
|
+
border-color: var(--ag-selected-row-background-color, #2196f3);
|
|
482
553
|
box-shadow: 0 0 2px rgba(33, 150, 243, 0.2);
|
|
483
554
|
}
|
|
555
|
+
|
|
556
|
+
/* Set Filter Button */
|
|
557
|
+
.floating-filter-btn {
|
|
558
|
+
width: 100%;
|
|
559
|
+
height: 22px;
|
|
560
|
+
border: 1px solid var(--ag-border-color, #d0d0d0);
|
|
561
|
+
border-radius: 2px;
|
|
562
|
+
padding: 0 8px;
|
|
563
|
+
font-size: 11px;
|
|
564
|
+
background: var(--ag-background-color, #fff);
|
|
565
|
+
cursor: pointer;
|
|
566
|
+
display: flex;
|
|
567
|
+
align-items: center;
|
|
568
|
+
justify-content: space-between;
|
|
569
|
+
gap: 4px;
|
|
570
|
+
outline: none;
|
|
571
|
+
transition: all 0.2s;
|
|
572
|
+
color: var(--ag-foreground-color, #181d1f);
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.floating-filter-btn:hover {
|
|
576
|
+
border-color: var(--ag-selected-row-background-color, #4f46e5);
|
|
577
|
+
background: var(--ag-row-hover-color, #f5f5f5);
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.floating-filter-btn.active {
|
|
581
|
+
border-color: var(--ag-selected-row-background-color, #4f46e5);
|
|
582
|
+
background: var(--ag-selected-row-background-color, #eef2ff);
|
|
583
|
+
color: var(--ag-selected-row-background-color, #4f46e5);
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/* Set Filter Popup */
|
|
587
|
+
.set-filter-popup {
|
|
588
|
+
position: fixed;
|
|
589
|
+
z-index: 1000;
|
|
590
|
+
background: var(--ag-background-color, #fff);
|
|
591
|
+
border: 1px solid var(--ag-border-color, #e0e0e0);
|
|
592
|
+
border-radius: 6px;
|
|
593
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
594
|
+
animation: fadeIn 0.15s ease-out;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
/* Filter Popup */
|
|
598
|
+
.filter-popup {
|
|
599
|
+
position: fixed;
|
|
600
|
+
z-index: 1000;
|
|
601
|
+
background: var(--ag-background-color, #fff);
|
|
602
|
+
border: 1px solid var(--ag-border-color, #babed1);
|
|
603
|
+
border-radius: 4px;
|
|
604
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
605
|
+
min-width: 180px;
|
|
606
|
+
padding: 8px;
|
|
607
|
+
animation: fadeIn 0.1s ease-out;
|
|
608
|
+
pointer-events: auto;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
.filter-popup-header {
|
|
612
|
+
font-size: 11px;
|
|
613
|
+
font-weight: bold;
|
|
614
|
+
color: var(--ag-secondary-foreground-color, #666);
|
|
615
|
+
margin-bottom: 6px;
|
|
616
|
+
text-transform: uppercase;
|
|
617
|
+
display: flex;
|
|
618
|
+
justify-content: space-between;
|
|
619
|
+
align-items: center;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
.filter-popup-close {
|
|
623
|
+
cursor: pointer;
|
|
624
|
+
padding: 2px;
|
|
625
|
+
opacity: 0.6;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
.filter-popup-close:hover {
|
|
629
|
+
opacity: 1;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
.filter-popup-body {
|
|
633
|
+
display: flex;
|
|
634
|
+
flex-direction: column;
|
|
635
|
+
gap: 8px;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
.filter-popup-row {
|
|
639
|
+
display: flex;
|
|
640
|
+
flex-direction: column;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.filter-popup-select {
|
|
644
|
+
width: 100%;
|
|
645
|
+
height: 28px;
|
|
646
|
+
border: 1px solid var(--ag-border-color, #d0d0d0);
|
|
647
|
+
border-radius: 2px;
|
|
648
|
+
padding: 0 4px;
|
|
649
|
+
font-size: 13px;
|
|
650
|
+
background: var(--ag-background-color, #fff);
|
|
651
|
+
outline: none;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
.filter-popup-select:focus {
|
|
655
|
+
border-color: var(--ag-selected-row-background-color, #2196f3);
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
.filter-popup-footer {
|
|
659
|
+
display: flex;
|
|
660
|
+
justify-content: flex-end;
|
|
661
|
+
gap: 8px;
|
|
662
|
+
margin-top: 4px;
|
|
663
|
+
padding-top: 8px;
|
|
664
|
+
border-top: 1px solid var(--ag-border-color, #f0f0f0);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
.filter-popup-btn {
|
|
668
|
+
padding: 4px 12px;
|
|
669
|
+
border-radius: 3px;
|
|
670
|
+
font-size: 12px;
|
|
671
|
+
cursor: pointer;
|
|
672
|
+
border: 1px solid transparent;
|
|
673
|
+
transition: all 0.1s;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.clear-btn {
|
|
677
|
+
background: transparent;
|
|
678
|
+
color: var(--ag-secondary-foreground-color, #666);
|
|
679
|
+
border-color: var(--ag-border-color, #d0d0d0);
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
.clear-btn:hover {
|
|
683
|
+
background: #f5f5f5;
|
|
684
|
+
color: #333;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
.apply-btn {
|
|
688
|
+
background: var(--ag-selected-row-background-color, #2196f3);
|
|
689
|
+
color: white;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.apply-btn:hover {
|
|
693
|
+
background: #1976d2;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
.filter-popup-input-wrapper {
|
|
697
|
+
position: relative;
|
|
698
|
+
display: flex;
|
|
699
|
+
align-items: center;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
.filter-popup-clear {
|
|
703
|
+
position: absolute;
|
|
704
|
+
right: 8px;
|
|
705
|
+
cursor: pointer;
|
|
706
|
+
color: var(--ag-secondary-foreground-color, #999);
|
|
707
|
+
font-size: 10px;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.filter-popup-input {
|
|
711
|
+
width: 100%;
|
|
712
|
+
height: 28px;
|
|
713
|
+
border: 1px solid var(--ag-border-color, #d0d0d0);
|
|
714
|
+
border-radius: 2px;
|
|
715
|
+
padding: 0 8px;
|
|
716
|
+
font-size: 13px;
|
|
717
|
+
outline: none;
|
|
718
|
+
box-sizing: border-box;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
.filter-popup-input:focus {
|
|
722
|
+
border-color: var(--ag-selected-row-background-color, #2196f3);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
@keyframes fadeIn {
|
|
726
|
+
from {
|
|
727
|
+
opacity: 0;
|
|
728
|
+
transform: translateY(-5px);
|
|
729
|
+
}
|
|
730
|
+
to {
|
|
731
|
+
opacity: 1;
|
|
732
|
+
transform: translateY(0);
|
|
733
|
+
}
|
|
734
|
+
}
|