@nuralyui/table 0.0.6 → 0.0.7
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/bundle.js +949 -95
- package/package.json +1 -1
- package/react.js +1 -1
- package/react.js.map +1 -1
- package/table.component.d.ts +31 -4
- package/table.component.js +63 -7
- package/table.component.js.map +1 -1
- package/table.style.js +432 -9
- package/table.style.js.map +1 -1
- package/table.types.d.ts +38 -0
- package/table.types.js.map +1 -1
package/table.style.js
CHANGED
|
@@ -57,6 +57,33 @@ export default css `
|
|
|
57
57
|
color: var(--nuraly-table-background, #ffffff);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/* Fixed Header Styles */
|
|
61
|
+
.table-content-wrapper.fixed-header {
|
|
62
|
+
overflow-y: auto;
|
|
63
|
+
overflow-x: auto;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.table-content-wrapper.fixed-header table {
|
|
67
|
+
border-collapse: separate;
|
|
68
|
+
border-spacing: 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.table-content-wrapper.fixed-header thead {
|
|
72
|
+
background-color: var(--nuraly-table-header-background, #fafafa);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.table-content-wrapper.fixed-header thead th {
|
|
76
|
+
position: sticky;
|
|
77
|
+
top: 0;
|
|
78
|
+
z-index: 10;
|
|
79
|
+
background-color: var(--nuraly-table-header-background, #fafafa);
|
|
80
|
+
border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.table-content-wrapper.fixed-header thead tr {
|
|
84
|
+
box-shadow: 0 1px 0 0 var(--nuraly-table-row-border-color, #f0f0f0);
|
|
85
|
+
}
|
|
86
|
+
|
|
60
87
|
.actions-container button {
|
|
61
88
|
cursor: pointer;
|
|
62
89
|
border: none;
|
|
@@ -120,19 +147,19 @@ export default css `
|
|
|
120
147
|
--nuraly-icon-color: var(--nuraly-table-text-color);
|
|
121
148
|
}
|
|
122
149
|
|
|
123
|
-
tr {
|
|
150
|
+
tbody tr {
|
|
124
151
|
background-color: var(--nuraly-table-row-background, #ffffff);
|
|
125
152
|
}
|
|
126
153
|
|
|
127
|
-
tr:hover {
|
|
154
|
+
tbody tr:hover {
|
|
128
155
|
background-color: var(--nuraly-table-row-hover-background, #f5f5f5);
|
|
129
156
|
}
|
|
130
157
|
|
|
131
|
-
tr
|
|
158
|
+
thead tr {
|
|
132
159
|
background-color: var(--nuraly-table-header-background, #fafafa);
|
|
133
160
|
}
|
|
134
161
|
|
|
135
|
-
tr:has(
|
|
162
|
+
tbody tr:has(input:checked) {
|
|
136
163
|
background-color: var(--nuraly-table-row-selected-background, #e6f7ff);
|
|
137
164
|
}
|
|
138
165
|
|
|
@@ -157,13 +184,14 @@ export default css `
|
|
|
157
184
|
.pagination-container {
|
|
158
185
|
display: flex;
|
|
159
186
|
justify-content: space-between;
|
|
187
|
+
align-items: center;
|
|
160
188
|
background-color: var(--nuraly-pagination-background-color);
|
|
161
189
|
color: var(--nuraly-pagination-text-color);
|
|
162
190
|
}
|
|
163
191
|
|
|
164
192
|
.pagination-container .left-content {
|
|
165
193
|
display: flex;
|
|
166
|
-
|
|
194
|
+
align-items: center;
|
|
167
195
|
}
|
|
168
196
|
|
|
169
197
|
.pagination-container .left-content .items-details {
|
|
@@ -184,8 +212,9 @@ export default css `
|
|
|
184
212
|
white-space: nowrap;
|
|
185
213
|
}
|
|
186
214
|
|
|
187
|
-
.pagination-container .left-content .select-details
|
|
188
|
-
min-width:
|
|
215
|
+
.pagination-container .left-content .select-details nr-select {
|
|
216
|
+
min-width: 60px;
|
|
217
|
+
max-width: 80px;
|
|
189
218
|
--select-border-color: var(--nuraly-table-border-color, #d9d9d9);
|
|
190
219
|
--select-background: var(--nuraly-table-pagination-background, #fafafa);
|
|
191
220
|
--select-text-color: var(--nuraly-table-pagination-text, #000000);
|
|
@@ -193,13 +222,13 @@ export default css `
|
|
|
193
222
|
|
|
194
223
|
.pagination-container .right-content {
|
|
195
224
|
display: flex;
|
|
196
|
-
|
|
225
|
+
align-items: center;
|
|
197
226
|
border-left: var(--nuraly-pagination-borders);
|
|
198
227
|
}
|
|
199
228
|
|
|
200
229
|
.pagination-container .right-content .icon-container {
|
|
201
230
|
display: flex;
|
|
202
|
-
|
|
231
|
+
align-items: center;
|
|
203
232
|
border-left: var(--nuraly-pagination-borders);
|
|
204
233
|
}
|
|
205
234
|
|
|
@@ -261,5 +290,399 @@ export default css `
|
|
|
261
290
|
.pagination-container[data-size='large'] .icon-container .right-arrow {
|
|
262
291
|
padding: 15px;
|
|
263
292
|
}
|
|
293
|
+
|
|
294
|
+
/* Column Filter Styles */
|
|
295
|
+
th .th-content {
|
|
296
|
+
display: flex;
|
|
297
|
+
align-items: center;
|
|
298
|
+
justify-content: space-between;
|
|
299
|
+
gap: 8px;
|
|
300
|
+
position: relative;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
th .th-text {
|
|
304
|
+
display: flex;
|
|
305
|
+
align-items: center;
|
|
306
|
+
gap: 10px;
|
|
307
|
+
flex: 1;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
th .filter-wrapper {
|
|
311
|
+
position: relative;
|
|
312
|
+
display: flex;
|
|
313
|
+
align-items: center;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.filter-trigger {
|
|
317
|
+
background: transparent;
|
|
318
|
+
border: none;
|
|
319
|
+
cursor: pointer;
|
|
320
|
+
padding: 4px;
|
|
321
|
+
display: flex;
|
|
322
|
+
align-items: center;
|
|
323
|
+
justify-content: center;
|
|
324
|
+
border-radius: 4px;
|
|
325
|
+
transition: background-color 0.2s;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.filter-trigger:hover {
|
|
329
|
+
background-color: var(--nuraly-table-filter-hover, rgba(0, 0, 0, 0.04));
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.filter-icon {
|
|
333
|
+
position: relative;
|
|
334
|
+
display: flex;
|
|
335
|
+
align-items: center;
|
|
336
|
+
justify-content: center;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.filter-icon.has-filter {
|
|
340
|
+
color: var(--nuraly-table-filter-active, #1890ff);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.filter-indicator {
|
|
344
|
+
position: absolute;
|
|
345
|
+
top: -2px;
|
|
346
|
+
right: -2px;
|
|
347
|
+
width: 6px;
|
|
348
|
+
height: 6px;
|
|
349
|
+
border-radius: 50%;
|
|
350
|
+
background-color: var(--nuraly-table-filter-active, #1890ff);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.column-filter-dropdown {
|
|
354
|
+
position: absolute;
|
|
355
|
+
top: calc(100% + 4px);
|
|
356
|
+
right: 0;
|
|
357
|
+
background: var(--nuraly-table-background, #ffffff);
|
|
358
|
+
border: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
|
|
359
|
+
border-radius: 4px;
|
|
360
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
361
|
+
z-index: 100;
|
|
362
|
+
min-width: 200px;
|
|
363
|
+
padding: 8px;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.column-filter-content {
|
|
367
|
+
display: flex;
|
|
368
|
+
flex-direction: column;
|
|
369
|
+
gap: 8px;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.column-filter-input {
|
|
373
|
+
padding: 8px;
|
|
374
|
+
border: 1px solid var(--nuraly-table-row-border-color, #d9d9d9);
|
|
375
|
+
border-radius: 4px;
|
|
376
|
+
font-size: 14px;
|
|
377
|
+
width: 100%;
|
|
378
|
+
box-sizing: border-box;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
.column-filter-input:focus {
|
|
382
|
+
outline: none;
|
|
383
|
+
border-color: var(--nuraly-table-filter-active, #1890ff);
|
|
384
|
+
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.column-filter-clear {
|
|
388
|
+
background: transparent;
|
|
389
|
+
border: none;
|
|
390
|
+
cursor: pointer;
|
|
391
|
+
padding: 4px;
|
|
392
|
+
display: flex;
|
|
393
|
+
align-items: center;
|
|
394
|
+
justify-content: center;
|
|
395
|
+
color: var(--nuraly-table-text-color, #000);
|
|
396
|
+
align-self: flex-end;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.column-filter-clear:hover {
|
|
400
|
+
color: var(--nuraly-table-filter-active, #1890ff);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* Fixed Columns Styles */
|
|
404
|
+
th.fixed-column,
|
|
405
|
+
td.fixed-column {
|
|
406
|
+
position: sticky;
|
|
407
|
+
background-color: var(--nuraly-table-row-background, #ffffff);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/* Fixed columns in header - highest priority */
|
|
411
|
+
thead th.fixed-column {
|
|
412
|
+
z-index: 20;
|
|
413
|
+
background-color: var(--nuraly-table-header-background, #fafafa);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/* When table has fixed header, fixed columns in header need even higher z-index */
|
|
417
|
+
.table-content-wrapper.fixed-header thead th.fixed-column {
|
|
418
|
+
z-index: 25;
|
|
419
|
+
background-color: var(--nuraly-table-header-background, #fafafa);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/* Fixed columns in body */
|
|
423
|
+
tbody td.fixed-column {
|
|
424
|
+
z-index: 8;
|
|
425
|
+
background-color: var(--nuraly-table-row-background, #ffffff);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/* Ensure fixed columns in tbody have proper background */
|
|
429
|
+
tbody tr td.fixed-column {
|
|
430
|
+
background-color: var(--nuraly-table-row-background, #ffffff);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
tbody tr:hover td.fixed-column {
|
|
434
|
+
background-color: var(--nuraly-table-row-hover-background, #f5f5f5);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
th.fixed-column-left,
|
|
438
|
+
td.fixed-column-left {
|
|
439
|
+
left: 0;
|
|
440
|
+
border-right: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
th.fixed-column-right,
|
|
444
|
+
td.fixed-column-right {
|
|
445
|
+
right: 0;
|
|
446
|
+
border-left: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/* Shadow effect for fixed columns */
|
|
450
|
+
th.fixed-column-left::after,
|
|
451
|
+
td.fixed-column-left::after {
|
|
452
|
+
content: '';
|
|
453
|
+
position: absolute;
|
|
454
|
+
top: 0;
|
|
455
|
+
right: -10px;
|
|
456
|
+
bottom: 0;
|
|
457
|
+
width: 10px;
|
|
458
|
+
pointer-events: none;
|
|
459
|
+
transition: box-shadow 0.3s;
|
|
460
|
+
box-shadow: none;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.table-content-wrapper.has-scroll th.fixed-column-left::after,
|
|
464
|
+
.table-content-wrapper.has-scroll td.fixed-column-left::after {
|
|
465
|
+
box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
th.fixed-column-right::before,
|
|
469
|
+
td.fixed-column-right::before {
|
|
470
|
+
content: '';
|
|
471
|
+
position: absolute;
|
|
472
|
+
top: 0;
|
|
473
|
+
left: -10px;
|
|
474
|
+
bottom: 0;
|
|
475
|
+
width: 10px;
|
|
476
|
+
pointer-events: none;
|
|
477
|
+
transition: box-shadow 0.3s;
|
|
478
|
+
box-shadow: none;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.table-content-wrapper.has-scroll th.fixed-column-right::before,
|
|
482
|
+
.table-content-wrapper.has-scroll td.fixed-column-right::before {
|
|
483
|
+
box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/* ============================================ */
|
|
487
|
+
/* Loading State Styles */
|
|
488
|
+
/* ============================================ */
|
|
489
|
+
|
|
490
|
+
/* Skeleton Loading Rows */
|
|
491
|
+
.skeleton-row {
|
|
492
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.skeleton-cell {
|
|
496
|
+
padding: var(--nuraly-spacing-3, 0.75rem) var(--nuraly-spacing-4, 1rem);
|
|
497
|
+
border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.skeleton-cell.selection-skeleton {
|
|
501
|
+
width: 48px;
|
|
502
|
+
text-align: center;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.skeleton-checkbox {
|
|
506
|
+
width: 16px;
|
|
507
|
+
height: 16px;
|
|
508
|
+
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
509
|
+
background-size: 200% 100%;
|
|
510
|
+
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
511
|
+
border-radius: 2px;
|
|
512
|
+
margin: 0 auto;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.skeleton-content {
|
|
516
|
+
height: 16px;
|
|
517
|
+
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
518
|
+
background-size: 200% 100%;
|
|
519
|
+
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
520
|
+
border-radius: 4px;
|
|
521
|
+
width: 80%;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
@keyframes skeleton-shimmer {
|
|
525
|
+
0% {
|
|
526
|
+
background-position: 200% 0;
|
|
527
|
+
}
|
|
528
|
+
100% {
|
|
529
|
+
background-position: -200% 0;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
@keyframes skeleton-pulse {
|
|
534
|
+
0%, 100% {
|
|
535
|
+
opacity: 1;
|
|
536
|
+
}
|
|
537
|
+
50% {
|
|
538
|
+
opacity: 0.6;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/* Spinner Loading */
|
|
543
|
+
.loading-row {
|
|
544
|
+
background-color: var(--nuraly-table-row-background, #ffffff);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.loading-cell {
|
|
548
|
+
padding: var(--nuraly-spacing-8, 2rem) var(--nuraly-spacing-4, 1rem);
|
|
549
|
+
text-align: center;
|
|
550
|
+
border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
.loading-spinner-container {
|
|
554
|
+
display: flex;
|
|
555
|
+
flex-direction: column;
|
|
556
|
+
align-items: center;
|
|
557
|
+
gap: var(--nuraly-spacing-4, 1rem);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.loading-spinner {
|
|
561
|
+
width: 40px;
|
|
562
|
+
height: 40px;
|
|
563
|
+
border: 4px solid var(--nuraly-table-border-color, #f0f0f0);
|
|
564
|
+
border-top-color: var(--nuraly-color-primary, #1890ff);
|
|
565
|
+
border-radius: 50%;
|
|
566
|
+
animation: spinner-rotate 0.8s linear infinite;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
@keyframes spinner-rotate {
|
|
570
|
+
0% {
|
|
571
|
+
transform: rotate(0deg);
|
|
572
|
+
}
|
|
573
|
+
100% {
|
|
574
|
+
transform: rotate(360deg);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.loading-text {
|
|
579
|
+
margin: 0;
|
|
580
|
+
color: var(--nuraly-color-text-secondary, #666666);
|
|
581
|
+
font-size: 14px;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
/* Empty State Styles */
|
|
585
|
+
.empty-row {
|
|
586
|
+
background: var(--nuraly-table-row-bg-color, #ffffff);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.empty-row:hover {
|
|
590
|
+
background: var(--nuraly-table-row-bg-color, #ffffff);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
.empty-cell {
|
|
594
|
+
padding: 64px 24px;
|
|
595
|
+
text-align: center;
|
|
596
|
+
border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.empty-state {
|
|
600
|
+
display: flex;
|
|
601
|
+
flex-direction: column;
|
|
602
|
+
align-items: center;
|
|
603
|
+
gap: 16px;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.empty-icon {
|
|
607
|
+
width: 64px;
|
|
608
|
+
height: 64px;
|
|
609
|
+
color: var(--nuraly-color-text-quaternary, #bfbfbf);
|
|
610
|
+
display: flex;
|
|
611
|
+
align-items: center;
|
|
612
|
+
justify-content: center;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.empty-icon svg {
|
|
616
|
+
width: 100%;
|
|
617
|
+
height: 100%;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.empty-icon nr-icon {
|
|
621
|
+
font-size: 64px;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
.empty-text {
|
|
625
|
+
margin: 0;
|
|
626
|
+
color: var(--nuraly-color-text-secondary, #666666);
|
|
627
|
+
font-size: 14px;
|
|
628
|
+
line-height: 1.5;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
/* Expansion Row Styles */
|
|
632
|
+
.expand-icon {
|
|
633
|
+
text-align: center;
|
|
634
|
+
vertical-align: middle;
|
|
635
|
+
transition: transform 0.3s ease;
|
|
636
|
+
outline: none;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
.expand-icon:hover {
|
|
640
|
+
background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.expand-icon:focus {
|
|
644
|
+
background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);
|
|
645
|
+
box-shadow: inset 0 0 0 2px var(--nuraly-color-primary, #1890ff);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
.expand-icon nr-icon {
|
|
649
|
+
transition: transform 0.3s ease;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.expand-icon.expanded nr-icon {
|
|
653
|
+
transform: rotate(180deg);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
.expansion-row {
|
|
657
|
+
transition: all 0.3s ease;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.expansion-row.collapsed {
|
|
661
|
+
opacity: 0;
|
|
662
|
+
height: 0;
|
|
663
|
+
overflow: hidden;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.expansion-row.expanded {
|
|
667
|
+
opacity: 1;
|
|
668
|
+
animation: slideDown 0.3s ease;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
.expansion-content {
|
|
672
|
+
padding: 16px;
|
|
673
|
+
background-color: var(--nuraly-color-fill-quaternary, #fafafa);
|
|
674
|
+
border-top: 1px solid var(--nuraly-color-border, #d9d9d9);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
@keyframes slideDown {
|
|
678
|
+
from {
|
|
679
|
+
opacity: 0;
|
|
680
|
+
transform: translateY(-10px);
|
|
681
|
+
}
|
|
682
|
+
to {
|
|
683
|
+
opacity: 1;
|
|
684
|
+
transform: translateY(0);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
264
687
|
`;
|
|
265
688
|
//# sourceMappingURL=table.style.js.map
|
package/table.style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.style.js","sourceRoot":"","sources":["../../../src/components/table/table.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsQjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n :host {\n display: block;\n width: 100%;\n font-family: var(--nuraly-font-family, Arial, sans-serif);\n color: var(--nuraly-color-text);\n background-color: var(--nuraly-color-background);\n }\n\n /* Filter Container Styles */\n .filter-container {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n padding: var(--nuraly-spacing-2, 0.5rem) 0;\n position: relative;\n margin-bottom: 5px;\n }\n\n .filter-container input {\n padding: 5px;\n padding-left: 30px;\n width: 100%;\n box-sizing: border-box;\n background-color: var(--nuraly-table-filter-background, #ffffff);\n color: var(--nuraly-table-filter-text, #000000);\n }\n\n .filter-container input:focus {\n outline-style: none;\n border: 1px solid var(--nuraly-table-filter-border, #1890ff);\n }\n\n .filter-container .icon-container {\n height: 25px;\n width: 35px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .filter-container .search-icon {\n position: absolute;\n left: 10px;\n top: 25%;\n }\n\n /* Actions Bar Styles */\n .actions-container {\n background-color: var(--nuraly-table-action-color, #0f62fe);\n padding: 10px;\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n color: var(--nuraly-table-background, #ffffff);\n }\n\n .actions-container button {\n cursor: pointer;\n border: none;\n color: var(--nuraly-table-background, #ffffff);\n background-color: var(--nuraly-table-action-color, #0f62fe);\n }\n\n .actions-container[data-size='small'] {\n padding: 5px;\n }\n\n .actions-container[data-size='large'] {\n padding: 15px;\n }\n\n /* Table Content Wrapper Styles */\n .table-content-wrapper {\n display: block;\n overflow: auto;\n }\n\n input[type='checkbox'][data-indeterminate='true']::after {\n width: 13px;\n height: 13px;\n background-color: var(--nuraly-table-checkbox-checked, #161616);\n color: var(--nuraly-table-background, #ffffff);\n display: flex;\n justify-content: center;\n align-items: center;\n content: '-';\n }\n\n /* Table Styles */\n table {\n width: 100%;\n border-spacing: 0px;\n color: var(--nuraly-table-text-color);\n }\n\n td {\n text-align: center;\n border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);\n padding: 10px;\n }\n\n th {\n cursor: pointer;\n padding: 10px;\n }\n\n th span {\n display: flex;\n justify-content: center;\n gap: 10px;\n }\n\n nr-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n --nuraly-icon-color: var(--nuraly-table-text-color);\n }\n\n tr {\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n tr:hover {\n background-color: var(--nuraly-table-row-hover-background, #f5f5f5);\n }\n\n tr:first-child {\n background-color: var(--nuraly-table-header-background, #fafafa);\n }\n\n tr:has(:not(th) > input:checked) {\n background-color: var(--nuraly-table-row-selected-background, #e6f7ff);\n }\n\n input,\n .expand-icon {\n cursor: pointer;\n accent-color: var(--nuraly-table-checkbox-checked, #1890ff);\n }\n\n /* Size Variants for Table Content */\n :host([size='small']) td,\n :host([size='small']) th {\n padding: 5px;\n }\n\n :host([size='large']) td,\n :host([size='large']) th {\n padding: 15px;\n }\n\n /* Pagination Styles */\n .pagination-container {\n display: flex;\n justify-content: space-between;\n background-color: var(--nuraly-pagination-background-color);\n color: var(--nuraly-pagination-text-color);\n }\n\n .pagination-container .left-content {\n display: flex;\n justify-content: space-between;\n }\n\n .pagination-container .left-content .items-details {\n border-left: var(--nuraly-pagination-borders);\n padding: 10px;\n }\n\n .pagination-container .left-content .select-details {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n }\n\n .pagination-container .left-content .select-details label {\n font-size: var(--nuraly-font-size-input, 14px);\n color: var(--nuraly-table-pagination-text, #000000);\n white-space: nowrap;\n }\n\n .pagination-container .left-content .select-details hy-select {\n min-width: 80px;\n --select-border-color: var(--nuraly-table-border-color, #d9d9d9);\n --select-background: var(--nuraly-table-pagination-background, #fafafa);\n --select-text-color: var(--nuraly-table-pagination-text, #000000);\n }\n\n .pagination-container .right-content {\n display: flex;\n justify-content: space-between;\n border-left: var(--nuraly-pagination-borders);\n }\n\n .pagination-container .right-content .icon-container {\n display: flex;\n justify-content: space-between;\n border-left: var(--nuraly-pagination-borders);\n }\n\n .pagination-container .right-content .page-details {\n padding: 10px;\n }\n\n .pagination-container .icon-container .left-arrow,\n .pagination-container .icon-container .right-arrow {\n padding: 10px;\n --nuraly-icon-color: var(--nuraly-pagination-text-color);\n }\n\n .pagination-container .icon-container .left-arrow {\n border-right: var(--nuraly-pagination-borders);\n }\n\n .pagination-container nr-icon[data-enabled='false'] {\n cursor: not-allowed;\n }\n\n .pagination-container nr-icon[data-enabled='true'] {\n cursor: pointer;\n }\n\n /* Size Variants for Pagination */\n .pagination-container[data-size='small'] .left-content .items-details {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .left-content .items-details {\n padding: 15px;\n }\n\n .pagination-container[data-size='small'] .left-content .select-details {\n padding: 5px;\n gap: 6px;\n }\n\n .pagination-container[data-size='large'] .left-content .select-details {\n padding: 15px;\n gap: 10px;\n }\n\n .pagination-container[data-size='small'] .right-content .page-details {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .right-content .page-details {\n padding: 15px;\n }\n\n .pagination-container[data-size='small'] .icon-container .left-arrow,\n .pagination-container[data-size='small'] .icon-container .right-arrow {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .icon-container .left-arrow,\n .pagination-container[data-size='large'] .icon-container .right-arrow {\n padding: 15px;\n }\n`;\n"]}
|
|
1
|
+
{"version":3,"file":"table.style.js","sourceRoot":"","sources":["../../../src/components/table/table.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6qBjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n :host {\n display: block;\n width: 100%;\n font-family: var(--nuraly-font-family, Arial, sans-serif);\n color: var(--nuraly-color-text);\n background-color: var(--nuraly-color-background);\n }\n\n /* Filter Container Styles */\n .filter-container {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n padding: var(--nuraly-spacing-2, 0.5rem) 0;\n position: relative;\n margin-bottom: 5px;\n }\n\n .filter-container input {\n padding: 5px;\n padding-left: 30px;\n width: 100%;\n box-sizing: border-box;\n background-color: var(--nuraly-table-filter-background, #ffffff);\n color: var(--nuraly-table-filter-text, #000000);\n }\n\n .filter-container input:focus {\n outline-style: none;\n border: 1px solid var(--nuraly-table-filter-border, #1890ff);\n }\n\n .filter-container .icon-container {\n height: 25px;\n width: 35px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .filter-container .search-icon {\n position: absolute;\n left: 10px;\n top: 25%;\n }\n\n /* Actions Bar Styles */\n .actions-container {\n background-color: var(--nuraly-table-action-color, #0f62fe);\n padding: 10px;\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n color: var(--nuraly-table-background, #ffffff);\n }\n\n /* Fixed Header Styles */\n .table-content-wrapper.fixed-header {\n overflow-y: auto;\n overflow-x: auto;\n }\n\n .table-content-wrapper.fixed-header table {\n border-collapse: separate;\n border-spacing: 0;\n }\n\n .table-content-wrapper.fixed-header thead {\n background-color: var(--nuraly-table-header-background, #fafafa);\n }\n\n .table-content-wrapper.fixed-header thead th {\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--nuraly-table-header-background, #fafafa);\n border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);\n }\n\n .table-content-wrapper.fixed-header thead tr {\n box-shadow: 0 1px 0 0 var(--nuraly-table-row-border-color, #f0f0f0);\n }\n\n .actions-container button {\n cursor: pointer;\n border: none;\n color: var(--nuraly-table-background, #ffffff);\n background-color: var(--nuraly-table-action-color, #0f62fe);\n }\n\n .actions-container[data-size='small'] {\n padding: 5px;\n }\n\n .actions-container[data-size='large'] {\n padding: 15px;\n }\n\n /* Table Content Wrapper Styles */\n .table-content-wrapper {\n display: block;\n overflow: auto;\n }\n\n input[type='checkbox'][data-indeterminate='true']::after {\n width: 13px;\n height: 13px;\n background-color: var(--nuraly-table-checkbox-checked, #161616);\n color: var(--nuraly-table-background, #ffffff);\n display: flex;\n justify-content: center;\n align-items: center;\n content: '-';\n }\n\n /* Table Styles */\n table {\n width: 100%;\n border-spacing: 0px;\n color: var(--nuraly-table-text-color);\n }\n\n td {\n text-align: center;\n border-bottom: var(--nuraly-table-border-width, 1px) solid var(--nuraly-table-row-border-color, #f0f0f0);\n padding: 10px;\n }\n\n th {\n cursor: pointer;\n padding: 10px;\n }\n\n th span {\n display: flex;\n justify-content: center;\n gap: 10px;\n }\n\n nr-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n --nuraly-icon-color: var(--nuraly-table-text-color);\n }\n\n tbody tr {\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n tbody tr:hover {\n background-color: var(--nuraly-table-row-hover-background, #f5f5f5);\n }\n\n thead tr {\n background-color: var(--nuraly-table-header-background, #fafafa);\n }\n\n tbody tr:has(input:checked) {\n background-color: var(--nuraly-table-row-selected-background, #e6f7ff);\n }\n\n input,\n .expand-icon {\n cursor: pointer;\n accent-color: var(--nuraly-table-checkbox-checked, #1890ff);\n }\n\n /* Size Variants for Table Content */\n :host([size='small']) td,\n :host([size='small']) th {\n padding: 5px;\n }\n\n :host([size='large']) td,\n :host([size='large']) th {\n padding: 15px;\n }\n\n /* Pagination Styles */\n .pagination-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: var(--nuraly-pagination-background-color);\n color: var(--nuraly-pagination-text-color);\n }\n\n .pagination-container .left-content {\n display: flex;\n align-items: center;\n }\n\n .pagination-container .left-content .items-details {\n border-left: var(--nuraly-pagination-borders);\n padding: 10px;\n }\n\n .pagination-container .left-content .select-details {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n }\n\n .pagination-container .left-content .select-details label {\n font-size: var(--nuraly-font-size-input, 14px);\n color: var(--nuraly-table-pagination-text, #000000);\n white-space: nowrap;\n }\n\n .pagination-container .left-content .select-details nr-select {\n min-width: 60px;\n max-width: 80px;\n --select-border-color: var(--nuraly-table-border-color, #d9d9d9);\n --select-background: var(--nuraly-table-pagination-background, #fafafa);\n --select-text-color: var(--nuraly-table-pagination-text, #000000);\n }\n\n .pagination-container .right-content {\n display: flex;\n align-items: center;\n border-left: var(--nuraly-pagination-borders);\n }\n\n .pagination-container .right-content .icon-container {\n display: flex;\n align-items: center;\n border-left: var(--nuraly-pagination-borders);\n }\n\n .pagination-container .right-content .page-details {\n padding: 10px;\n }\n\n .pagination-container .icon-container .left-arrow,\n .pagination-container .icon-container .right-arrow {\n padding: 10px;\n --nuraly-icon-color: var(--nuraly-pagination-text-color);\n }\n\n .pagination-container .icon-container .left-arrow {\n border-right: var(--nuraly-pagination-borders);\n }\n\n .pagination-container nr-icon[data-enabled='false'] {\n cursor: not-allowed;\n }\n\n .pagination-container nr-icon[data-enabled='true'] {\n cursor: pointer;\n }\n\n /* Size Variants for Pagination */\n .pagination-container[data-size='small'] .left-content .items-details {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .left-content .items-details {\n padding: 15px;\n }\n\n .pagination-container[data-size='small'] .left-content .select-details {\n padding: 5px;\n gap: 6px;\n }\n\n .pagination-container[data-size='large'] .left-content .select-details {\n padding: 15px;\n gap: 10px;\n }\n\n .pagination-container[data-size='small'] .right-content .page-details {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .right-content .page-details {\n padding: 15px;\n }\n\n .pagination-container[data-size='small'] .icon-container .left-arrow,\n .pagination-container[data-size='small'] .icon-container .right-arrow {\n padding: 5px;\n }\n\n .pagination-container[data-size='large'] .icon-container .left-arrow,\n .pagination-container[data-size='large'] .icon-container .right-arrow {\n padding: 15px;\n }\n\n /* Column Filter Styles */\n th .th-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n position: relative;\n }\n\n th .th-text {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n }\n\n th .filter-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .filter-trigger {\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: background-color 0.2s;\n }\n\n .filter-trigger:hover {\n background-color: var(--nuraly-table-filter-hover, rgba(0, 0, 0, 0.04));\n }\n\n .filter-icon {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .filter-icon.has-filter {\n color: var(--nuraly-table-filter-active, #1890ff);\n }\n\n .filter-indicator {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--nuraly-table-filter-active, #1890ff);\n }\n\n .column-filter-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n background: var(--nuraly-table-background, #ffffff);\n border: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 100;\n min-width: 200px;\n padding: 8px;\n }\n\n .column-filter-content {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .column-filter-input {\n padding: 8px;\n border: 1px solid var(--nuraly-table-row-border-color, #d9d9d9);\n border-radius: 4px;\n font-size: 14px;\n width: 100%;\n box-sizing: border-box;\n }\n\n .column-filter-input:focus {\n outline: none;\n border-color: var(--nuraly-table-filter-active, #1890ff);\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n .column-filter-clear {\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--nuraly-table-text-color, #000);\n align-self: flex-end;\n }\n\n .column-filter-clear:hover {\n color: var(--nuraly-table-filter-active, #1890ff);\n }\n\n /* Fixed Columns Styles */\n th.fixed-column,\n td.fixed-column {\n position: sticky;\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n /* Fixed columns in header - highest priority */\n thead th.fixed-column {\n z-index: 20;\n background-color: var(--nuraly-table-header-background, #fafafa);\n }\n\n /* When table has fixed header, fixed columns in header need even higher z-index */\n .table-content-wrapper.fixed-header thead th.fixed-column {\n z-index: 25;\n background-color: var(--nuraly-table-header-background, #fafafa);\n }\n\n /* Fixed columns in body */\n tbody td.fixed-column {\n z-index: 8;\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n /* Ensure fixed columns in tbody have proper background */\n tbody tr td.fixed-column {\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n tbody tr:hover td.fixed-column {\n background-color: var(--nuraly-table-row-hover-background, #f5f5f5);\n }\n\n th.fixed-column-left,\n td.fixed-column-left {\n left: 0;\n border-right: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);\n }\n\n th.fixed-column-right,\n td.fixed-column-right {\n right: 0;\n border-left: 1px solid var(--nuraly-table-row-border-color, #f0f0f0);\n }\n\n /* Shadow effect for fixed columns */\n th.fixed-column-left::after,\n td.fixed-column-left::after {\n content: '';\n position: absolute;\n top: 0;\n right: -10px;\n bottom: 0;\n width: 10px;\n pointer-events: none;\n transition: box-shadow 0.3s;\n box-shadow: none;\n }\n\n .table-content-wrapper.has-scroll th.fixed-column-left::after,\n .table-content-wrapper.has-scroll td.fixed-column-left::after {\n box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);\n }\n\n th.fixed-column-right::before,\n td.fixed-column-right::before {\n content: '';\n position: absolute;\n top: 0;\n left: -10px;\n bottom: 0;\n width: 10px;\n pointer-events: none;\n transition: box-shadow 0.3s;\n box-shadow: none;\n }\n\n .table-content-wrapper.has-scroll th.fixed-column-right::before,\n .table-content-wrapper.has-scroll td.fixed-column-right::before {\n box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);\n }\n\n /* ============================================ */\n /* Loading State Styles */\n /* ============================================ */\n \n /* Skeleton Loading Rows */\n .skeleton-row {\n animation: skeleton-pulse 1.5s ease-in-out infinite;\n }\n\n .skeleton-cell {\n padding: var(--nuraly-spacing-3, 0.75rem) var(--nuraly-spacing-4, 1rem);\n border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);\n }\n\n .skeleton-cell.selection-skeleton {\n width: 48px;\n text-align: center;\n }\n\n .skeleton-checkbox {\n width: 16px;\n height: 16px;\n background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n background-size: 200% 100%;\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\n border-radius: 2px;\n margin: 0 auto;\n }\n\n .skeleton-content {\n height: 16px;\n background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n background-size: 200% 100%;\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\n border-radius: 4px;\n width: 80%;\n }\n\n @keyframes skeleton-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n\n @keyframes skeleton-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n }\n\n /* Spinner Loading */\n .loading-row {\n background-color: var(--nuraly-table-row-background, #ffffff);\n }\n\n .loading-cell {\n padding: var(--nuraly-spacing-8, 2rem) var(--nuraly-spacing-4, 1rem);\n text-align: center;\n border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);\n }\n\n .loading-spinner-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--nuraly-spacing-4, 1rem);\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 4px solid var(--nuraly-table-border-color, #f0f0f0);\n border-top-color: var(--nuraly-color-primary, #1890ff);\n border-radius: 50%;\n animation: spinner-rotate 0.8s linear infinite;\n }\n\n @keyframes spinner-rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loading-text {\n margin: 0;\n color: var(--nuraly-color-text-secondary, #666666);\n font-size: 14px;\n }\n\n /* Empty State Styles */\n .empty-row {\n background: var(--nuraly-table-row-bg-color, #ffffff);\n }\n\n .empty-row:hover {\n background: var(--nuraly-table-row-bg-color, #ffffff);\n }\n\n .empty-cell {\n padding: 64px 24px;\n text-align: center;\n border-bottom: 1px solid var(--nuraly-table-border-color, #f0f0f0);\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n color: var(--nuraly-color-text-quaternary, #bfbfbf);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .empty-icon svg {\n width: 100%;\n height: 100%;\n }\n\n .empty-icon nr-icon {\n font-size: 64px;\n }\n\n .empty-text {\n margin: 0;\n color: var(--nuraly-color-text-secondary, #666666);\n font-size: 14px;\n line-height: 1.5;\n }\n\n /* Expansion Row Styles */\n .expand-icon {\n text-align: center;\n vertical-align: middle;\n transition: transform 0.3s ease;\n outline: none;\n }\n\n .expand-icon:hover {\n background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);\n }\n\n .expand-icon:focus {\n background-color: var(--nuraly-color-fill-tertiary, #f5f5f5);\n box-shadow: inset 0 0 0 2px var(--nuraly-color-primary, #1890ff);\n }\n\n .expand-icon nr-icon {\n transition: transform 0.3s ease;\n }\n\n .expand-icon.expanded nr-icon {\n transform: rotate(180deg);\n }\n\n .expansion-row {\n transition: all 0.3s ease;\n }\n\n .expansion-row.collapsed {\n opacity: 0;\n height: 0;\n overflow: hidden;\n }\n\n .expansion-row.expanded {\n opacity: 1;\n animation: slideDown 0.3s ease;\n }\n\n .expansion-content {\n padding: 16px;\n background-color: var(--nuraly-color-fill-quaternary, #fafafa);\n border-top: 1px solid var(--nuraly-color-border, #d9d9d9);\n }\n\n @keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n`;\n\n"]}
|
package/table.types.d.ts
CHANGED
|
@@ -1,9 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column filter types
|
|
3
|
+
*/
|
|
4
|
+
export declare const enum FilterType {
|
|
5
|
+
Text = "text",
|
|
6
|
+
Select = "select",
|
|
7
|
+
Number = "number",
|
|
8
|
+
Date = "date"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Column filter configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface ColumnFilter {
|
|
14
|
+
type: FilterType;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
options?: Array<{
|
|
17
|
+
label: string;
|
|
18
|
+
value: string | number;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Active filter state for a column
|
|
23
|
+
*/
|
|
24
|
+
export interface ActiveColumnFilter {
|
|
25
|
+
columnKey: string;
|
|
26
|
+
value: string | number | null;
|
|
27
|
+
}
|
|
1
28
|
/**
|
|
2
29
|
* Table header configuration
|
|
3
30
|
*/
|
|
4
31
|
export interface IHeader {
|
|
5
32
|
name: string;
|
|
6
33
|
key: string;
|
|
34
|
+
filterable?: boolean;
|
|
35
|
+
filterConfig?: ColumnFilter;
|
|
36
|
+
fixed?: 'left' | 'right';
|
|
37
|
+
width?: number | string;
|
|
7
38
|
}
|
|
8
39
|
/**
|
|
9
40
|
* Selection mode for table rows
|
|
@@ -43,5 +74,12 @@ export interface SortAttribute {
|
|
|
43
74
|
index: number;
|
|
44
75
|
order: SortOrder;
|
|
45
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Expansion content render function
|
|
79
|
+
* @param row - The row data
|
|
80
|
+
* @param index - The row index
|
|
81
|
+
* @returns Template result for the expanded content
|
|
82
|
+
*/
|
|
83
|
+
export declare type ExpansionContentRenderer = (row: any, index: number) => any;
|
|
46
84
|
export declare const EMPTY_STRING = "";
|
|
47
85
|
//# sourceMappingURL=table.types.d.ts.map
|
package/table.types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.types.js","sourceRoot":"","sources":["../../../src/components/table/table.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.types.js","sourceRoot":"","sources":["../../../src/components/table/table.types.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC","sourcesContent":["/**\n * Column filter types\n */\nexport const enum FilterType {\n Text = 'text',\n Select = 'select',\n Number = 'number',\n Date = 'date',\n}\n\n/**\n * Column filter configuration\n */\nexport interface ColumnFilter {\n type: FilterType;\n placeholder?: string;\n options?: Array<{ label: string; value: string | number }>;\n}\n\n/**\n * Active filter state for a column\n */\nexport interface ActiveColumnFilter {\n columnKey: string;\n value: string | number | null;\n}\n\n/**\n * Table header configuration\n */\nexport interface IHeader {\n name: string;\n key: string;\n filterable?: boolean;\n filterConfig?: ColumnFilter;\n fixed?: 'left' | 'right';\n width?: number | string;\n}\n\n/**\n * Selection mode for table rows\n */\nexport const enum SelectionMode {\n Single = 'single',\n Multiple = 'multiple',\n}\n\n/**\n * Table size variants\n */\nexport const enum Sizes {\n Small = 'small',\n Normal = 'normal',\n Large = 'large',\n}\n\n/**\n * Sort order states\n */\nexport const enum SortOrder {\n Default = 'default',\n Ascending = 'ascending',\n Descending = 'descending',\n}\n\n/**\n * Sort direction values\n */\nexport const enum SortValue {\n Default = 0,\n Ascending = 1,\n Descending = -1,\n}\n\n/**\n * Sort attribute configuration\n */\nexport interface SortAttribute {\n index: number;\n order: SortOrder;\n}\n\n/**\n * Expansion content render function\n * @param row - The row data\n * @param index - The row index\n * @returns Template result for the expanded content\n */\nexport type ExpansionContentRenderer = (row: any, index: number) => any;\n\nexport const EMPTY_STRING = '';\n"]}
|