@alaarab/ogrid-angular-radix 2.0.4

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.
Files changed (33) hide show
  1. package/README.md +76 -0
  2. package/dist/esm/column-chooser/column-chooser.component.js +199 -0
  3. package/dist/esm/column-header-filter/column-header-filter.component.js +497 -0
  4. package/dist/esm/datagrid-table/datagrid-table.component.js +573 -0
  5. package/dist/esm/index.js +14 -0
  6. package/dist/esm/ogrid/ogrid.component.js +77 -0
  7. package/dist/esm/pagination-controls/pagination-controls.component.js +189 -0
  8. package/dist/types/column-chooser/column-chooser.component.d.ts +26 -0
  9. package/dist/types/column-header-filter/column-header-filter.component.d.ts +67 -0
  10. package/dist/types/datagrid-table/datagrid-table.component.d.ts +131 -0
  11. package/dist/types/index.d.ts +12 -0
  12. package/dist/types/ogrid/ogrid.component.d.ts +14 -0
  13. package/dist/types/pagination-controls/pagination-controls.component.d.ts +15 -0
  14. package/jest-mocks/angular-cdk-overlay.cjs.js +38 -0
  15. package/jest-mocks/style-mock.js +1 -0
  16. package/jest.config.js +43 -0
  17. package/package.json +37 -0
  18. package/scripts/compile-styles.js +53 -0
  19. package/src/__tests__/column-chooser.component.spec.ts.skip +195 -0
  20. package/src/__tests__/column-header-filter.component.spec.ts.skip +401 -0
  21. package/src/__tests__/datagrid-table.component.spec.ts.skip +417 -0
  22. package/src/__tests__/exports.test.ts +54 -0
  23. package/src/__tests__/ogrid.component.spec.ts.skip +236 -0
  24. package/src/__tests__/pagination-controls.component.spec.ts.skip +190 -0
  25. package/src/column-chooser/column-chooser.component.ts +204 -0
  26. package/src/column-header-filter/column-header-filter.component.ts +528 -0
  27. package/src/datagrid-table/datagrid-table.component.scss +289 -0
  28. package/src/datagrid-table/datagrid-table.component.ts +636 -0
  29. package/src/index.ts +16 -0
  30. package/src/ogrid/ogrid.component.ts +78 -0
  31. package/src/pagination-controls/pagination-controls.component.ts +187 -0
  32. package/tsconfig.build.json +9 -0
  33. package/tsconfig.json +21 -0
@@ -0,0 +1,289 @@
1
+ :host { display: block; }
2
+ .ogrid-datagrid-root {
3
+ position: relative;
4
+ flex: 1;
5
+ min-height: 0;
6
+ display: flex;
7
+ flex-direction: column;
8
+ }
9
+ .ogrid-datagrid-wrapper {
10
+ position: relative;
11
+ flex: 1;
12
+ min-height: 0;
13
+ width: 100%;
14
+ max-width: 100%;
15
+ overflow-x: hidden;
16
+ overflow-y: auto;
17
+ background: var(--ogrid-bg, #ffffff);
18
+ will-change: scroll-position;
19
+ outline: none;
20
+ }
21
+ .ogrid-datagrid-wrapper [data-drag-range] {
22
+ background: rgba(33, 115, 70, 0.12) !important;
23
+ }
24
+ .ogrid-datagrid-wrapper--fit { width: fit-content; }
25
+ .ogrid-datagrid-wrapper--overflow-x { overflow-x: auto; }
26
+ .ogrid-datagrid-scroll-wrapper {
27
+ display: flex;
28
+ flex-direction: column;
29
+ min-height: 100%;
30
+ }
31
+ .ogrid-datagrid-table-wrapper--loading {
32
+ position: relative;
33
+ opacity: 0.6;
34
+ }
35
+ .ogrid-datagrid-table {
36
+ width: 100%;
37
+ border-collapse: collapse;
38
+ overflow: hidden;
39
+ table-layout: fixed;
40
+ }
41
+ .ogrid-datagrid-thead {
42
+ position: sticky;
43
+ top: 0;
44
+ z-index: 8;
45
+ background: var(--ogrid-header-bg, #f5f5f5);
46
+ }
47
+ .ogrid-datagrid-thead th {
48
+ background: var(--ogrid-header-bg, #f5f5f5);
49
+ }
50
+ .ogrid-datagrid-header-row {
51
+ background: var(--ogrid-header-bg, #f5f5f5);
52
+ }
53
+ .ogrid-datagrid-th {
54
+ font-weight: 600;
55
+ position: relative;
56
+ padding: 6px 10px;
57
+ text-align: left;
58
+ font-size: 14px;
59
+ border-bottom: 1px solid var(--ogrid-border, #e0e0e0);
60
+ color: var(--ogrid-fg, #242424);
61
+ }
62
+ .ogrid-datagrid-th--pinned-left {
63
+ position: sticky;
64
+ left: 0;
65
+ z-index: 9;
66
+ background: var(--ogrid-header-bg, #f5f5f5);
67
+ will-change: transform;
68
+ }
69
+ .ogrid-datagrid-th--pinned-right {
70
+ position: sticky;
71
+ right: 0;
72
+ z-index: 9;
73
+ background: var(--ogrid-header-bg, #f5f5f5);
74
+ will-change: transform;
75
+ }
76
+ .ogrid-datagrid-group-header {
77
+ text-align: center;
78
+ font-weight: 600;
79
+ border-bottom: 2px solid var(--ogrid-border, #e0e0e0);
80
+ padding: 6px;
81
+ }
82
+ .ogrid-datagrid-checkbox-col {
83
+ width: ${CHECKBOX_COLUMN_WIDTH}px;
84
+ min-width: ${CHECKBOX_COLUMN_WIDTH}px;
85
+ max-width: ${CHECKBOX_COLUMN_WIDTH}px;
86
+ text-align: center;
87
+ }
88
+ .ogrid-datagrid-checkbox-wrapper {
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ }
93
+ .ogrid-datagrid-row:hover {
94
+ background: var(--ogrid-hover-bg, #f9f9f9);
95
+ }
96
+ .ogrid-datagrid-row--selected {
97
+ background: rgba(0, 120, 212, 0.08);
98
+ }
99
+ .ogrid-datagrid-td {
100
+ position: relative;
101
+ padding: 0;
102
+ height: 1px;
103
+ border-bottom: 1px solid var(--ogrid-border, #e0e0e0);
104
+ }
105
+ .ogrid-datagrid-td--pinned-left {
106
+ position: sticky;
107
+ left: 0;
108
+ z-index: 6;
109
+ background: var(--ogrid-bg, #ffffff);
110
+ will-change: transform;
111
+ }
112
+ .ogrid-datagrid-td--pinned-right {
113
+ position: sticky;
114
+ right: 0;
115
+ z-index: 6;
116
+ background: var(--ogrid-bg, #ffffff);
117
+ will-change: transform;
118
+ }
119
+ .ogrid-datagrid-cell {
120
+ width: 100%;
121
+ height: 100%;
122
+ display: flex;
123
+ align-items: center;
124
+ min-width: 0;
125
+ padding: 6px 10px;
126
+ box-sizing: border-box;
127
+ overflow: hidden;
128
+ text-overflow: ellipsis;
129
+ white-space: nowrap;
130
+ user-select: none;
131
+ outline: none;
132
+ font-size: 14px;
133
+ color: var(--ogrid-fg, #242424);
134
+ }
135
+ .ogrid-datagrid-cell--numeric {
136
+ justify-content: flex-end;
137
+ text-align: right;
138
+ }
139
+ .ogrid-datagrid-cell--boolean {
140
+ justify-content: center;
141
+ text-align: center;
142
+ }
143
+ .ogrid-datagrid-cell--editable { cursor: cell; }
144
+ .ogrid-datagrid-cell--active {
145
+ outline: 2px solid var(--ogrid-active-border, #0078d4);
146
+ outline-offset: -1px;
147
+ z-index: 2;
148
+ position: relative;
149
+ overflow: visible;
150
+ }
151
+ .ogrid-datagrid-cell--in-range {
152
+ background: var(--ogrid-bg-range, rgba(33, 115, 70, 0.12));
153
+ }
154
+ .ogrid-datagrid-cell--in-cut-range {
155
+ background: var(--ogrid-hover-bg, #f0f0f0);
156
+ opacity: 0.7;
157
+ }
158
+ .ogrid-datagrid-cell--editing { padding: 0; }
159
+ .ogrid-datagrid-editor-input {
160
+ width: 100%;
161
+ height: 100%;
162
+ padding: 6px 10px;
163
+ border: 2px solid var(--ogrid-active-border, #0078d4);
164
+ box-sizing: border-box;
165
+ font-size: 14px;
166
+ outline: none;
167
+ background: var(--ogrid-bg, #ffffff);
168
+ color: var(--ogrid-fg, #242424);
169
+ font-family: inherit;
170
+ line-height: inherit;
171
+ }
172
+ .ogrid-datagrid-cell--numeric .ogrid-datagrid-editor-input {
173
+ text-align: right;
174
+ }
175
+ .ogrid-datagrid-editor-select {
176
+ width: 100%;
177
+ height: 100%;
178
+ padding: 4px 8px;
179
+ border: 2px solid var(--ogrid-active-border, #0078d4);
180
+ box-sizing: border-box;
181
+ font-size: 14px;
182
+ background: var(--ogrid-bg, #ffffff);
183
+ color: var(--ogrid-fg, #242424);
184
+ }
185
+ .ogrid-datagrid-fill-handle {
186
+ position: absolute;
187
+ right: -3px;
188
+ bottom: -3px;
189
+ width: 7px;
190
+ height: 7px;
191
+ background: var(--ogrid-active-border, #0078d4);
192
+ border: 1px solid var(--ogrid-bg, #ffffff);
193
+ border-radius: 1px;
194
+ cursor: crosshair;
195
+ pointer-events: auto;
196
+ z-index: 3;
197
+ }
198
+ .ogrid-datagrid-resize-handle {
199
+ position: absolute;
200
+ top: 0;
201
+ right: -3px;
202
+ bottom: 0;
203
+ width: 8px;
204
+ cursor: col-resize;
205
+ user-select: none;
206
+ }
207
+ .ogrid-datagrid-resize-handle::after {
208
+ content: '';
209
+ position: absolute;
210
+ top: 0;
211
+ right: 3px;
212
+ bottom: 0;
213
+ width: 2px;
214
+ }
215
+ .ogrid-datagrid-resize-handle:hover::after {
216
+ background: var(--ogrid-active-border, #0078d4);
217
+ }
218
+ .ogrid-datagrid-resize-handle:active::after {
219
+ background: var(--ogrid-active-border, #0078d4);
220
+ }
221
+ .ogrid-datagrid-empty {
222
+ padding: 32px 16px;
223
+ text-align: center;
224
+ border-top: 1px solid var(--ogrid-border, #e0e0e0);
225
+ background: var(--ogrid-header-bg, #f5f5f5);
226
+ }
227
+ .ogrid-datagrid-empty__title {
228
+ font-size: 18px;
229
+ font-weight: 600;
230
+ margin-bottom: 8px;
231
+ color: var(--ogrid-fg, #242424);
232
+ }
233
+ .ogrid-datagrid-empty__message {
234
+ font-size: 14px;
235
+ color: var(--ogrid-fg, #242424);
236
+ opacity: 0.7;
237
+ }
238
+ .ogrid-datagrid-empty__clear {
239
+ background: none;
240
+ border: none;
241
+ color: var(--ogrid-active-border, #0078d4);
242
+ cursor: pointer;
243
+ font-size: inherit;
244
+ text-decoration: underline;
245
+ padding: 0;
246
+ }
247
+ .ogrid-datagrid-loading-overlay {
248
+ position: absolute;
249
+ inset: 0;
250
+ z-index: 2;
251
+ display: flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ background: rgba(255,255,255,0.7);
255
+ }
256
+ .ogrid-datagrid-loading-inner {
257
+ display: flex;
258
+ flex-direction: column;
259
+ align-items: center;
260
+ gap: 8px;
261
+ padding: 16px;
262
+ background: var(--ogrid-bg, #ffffff);
263
+ border: 1px solid var(--ogrid-border, #e0e0e0);
264
+ border-radius: 4px;
265
+ }
266
+ .ogrid-datagrid-spinner {
267
+ width: 24px;
268
+ height: 24px;
269
+ border: 3px solid var(--ogrid-border, #e0e0e0);
270
+ border-top-color: var(--ogrid-active-border, #0078d4);
271
+ border-radius: 50%;
272
+ animation: ogrid-spin 0.8s linear infinite;
273
+ }
274
+ @keyframes ogrid-spin { to { transform: rotate(360deg); } }
275
+ .ogrid-datagrid-drop-indicator {
276
+ position: absolute;
277
+ top: 0;
278
+ bottom: 0;
279
+ width: 3px;
280
+ background: var(--ogrid-active-border, #0078d4);
281
+ pointer-events: none;
282
+ z-index: 100;
283
+ transition: left 0.05s;
284
+ }
285
+ .ogrid-datagrid-context-menu-overlay {
286
+ position: fixed;
287
+ inset: 0;
288
+ z-index: 1000;
289
+ }