@uibit/table 0.1.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/dist/styles.js ADDED
@@ -0,0 +1,530 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ font-size: var(--uibit-table-font-size, var(--uibit-font-size-sm, calc(0.875rem * var(--uibit-font-scale-factor, 1))));
6
+ font-family: var(--uibit-table-font-family, inherit);
7
+ color: var(--uibit-table-color, var(--uibit-text-primary, #111827));
8
+ --uibit-table-bg: var(--uibit-bg-surface, #ffffff);
9
+ --uibit-table-border-color: var(--uibit-border-color, #e5e7eb);
10
+ --uibit-table-head-bg: var(--uibit-bg-subtle, #f9fafb);
11
+ --uibit-table-head-color: var(--uibit-text-muted, #6b7280);
12
+ --uibit-table-hover-bg: var(--uibit-bg-subtle, #f9fafb);
13
+ --uibit-table-stripe-bg: var(--uibit-stripe-bg, #f9fafb);
14
+ --uibit-table-selected-bg: var(--uibit-selected-bg, #eff6ff);
15
+ --uibit-table-selected-hover-bg: var(--uibit-selected-hover-bg, #dbeafe);
16
+ --uibit-table-focus-color: var(--uibit-focus-color, #6b7280);
17
+ --uibit-table-radius: var(--uibit-radius-lg, 0.375rem);
18
+ --uibit-table-cell-padding: var(--uibit-spacing-2, 0.5rem) var(--uibit-spacing-3, 0.75rem);
19
+ }
20
+
21
+ /* ── Toolbar ─────────────────────────────────────────────── */
22
+
23
+ .toolbar {
24
+ display: flex;
25
+ align-items: center;
26
+ gap: 0.5rem;
27
+ flex-wrap: wrap;
28
+ margin-bottom: 0.75rem;
29
+ }
30
+
31
+ .search-wrap {
32
+ position: relative;
33
+ flex: 1 1 12rem;
34
+ }
35
+
36
+ .search-icon {
37
+ position: absolute;
38
+ left: 0.625rem;
39
+ top: 50%;
40
+ transform: translateY(-50%);
41
+ width: 0.875rem;
42
+ height: 0.875rem;
43
+ color: var(--uibit-text-muted, #9ca3af);
44
+ pointer-events: none;
45
+ }
46
+
47
+ .search {
48
+ width: 100%;
49
+ padding: 0.375rem 0.625rem 0.375rem 2rem;
50
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
51
+ border-radius: var(--uibit-table-radius, 0.375rem);
52
+ font: inherit;
53
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
54
+ background: var(--uibit-table-bg, #ffffff);
55
+ color: inherit;
56
+ outline: none;
57
+ transition: border-color 0.15s;
58
+ }
59
+
60
+ .search:focus { border-color: var(--uibit-table-focus-color, #6b7280); }
61
+ .search::placeholder { color: var(--uibit-text-muted, #9ca3af); }
62
+
63
+ .controls {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 0.375rem;
67
+ flex-shrink: 0;
68
+ flex-wrap: wrap;
69
+ }
70
+
71
+ .toolbar-label {
72
+ font-size: var(--uibit-font-size-xs, 0.75rem);
73
+ color: var(--uibit-text-muted, #6b7280);
74
+ white-space: nowrap;
75
+ }
76
+
77
+ .ctrl-select {
78
+ padding: 0.3rem 0.5rem;
79
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
80
+ border-radius: var(--uibit-table-radius, 0.375rem);
81
+ font: inherit;
82
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
83
+ background: var(--uibit-table-bg, #ffffff);
84
+ color: inherit;
85
+ cursor: pointer;
86
+ outline: none;
87
+ }
88
+
89
+ .ctrl-select:focus { border-color: var(--uibit-table-focus-color, #6b7280); }
90
+
91
+ .ctrl-btn {
92
+ padding: 0.35rem 0.75rem;
93
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
94
+ border-radius: var(--uibit-table-radius, 0.375rem);
95
+ font: inherit;
96
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
97
+ background: var(--uibit-table-bg, #ffffff);
98
+ color: inherit;
99
+ cursor: pointer;
100
+ white-space: nowrap;
101
+ transition: background 0.12s, border-color 0.12s, opacity 0.1s ease, box-shadow 0.1s ease;
102
+ display: inline-flex;
103
+ align-items: center;
104
+ gap: 0.3rem;
105
+ }
106
+
107
+ .ctrl-btn:hover {
108
+ background: var(--uibit-table-hover-bg, #f9fafb);
109
+ border-color: var(--uibit-table-border-color, #d1d5db);
110
+ }
111
+ .ctrl-btn:active { box-shadow: inset 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.1); opacity: 0.8; }
112
+ .ctrl-btn:focus-visible { outline: 0.125rem solid var(--uibit-table-focus-color, currentColor); outline-offset: 0.125rem; }
113
+ .ctrl-btn .chevron { font-size: 0.625rem; opacity: 0.6; }
114
+
115
+ /* ── Column menu ─────────────────────────────────────────── */
116
+
117
+ .col-menu-wrap { position: relative; }
118
+
119
+ .col-dropdown {
120
+ position: absolute;
121
+ right: 0;
122
+ top: calc(100% + 0.25rem);
123
+ z-index: 20;
124
+ background: var(--uibit-table-bg, #ffffff);
125
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
126
+ border-radius: var(--uibit-table-radius, 0.375rem);
127
+ padding: 0.375rem;
128
+ min-width: 10rem;
129
+ box-shadow: 0 4px 6px -1px rgba(0,0,0,0.08), 0 2px 4px -2px rgba(0,0,0,0.06);
130
+ }
131
+
132
+ .col-dropdown-item {
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 0.5rem;
136
+ padding: 0.3rem 0.5rem;
137
+ border-radius: 0.25rem;
138
+ cursor: pointer;
139
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
140
+ white-space: nowrap;
141
+ user-select: none;
142
+ }
143
+
144
+ .col-dropdown-item:hover { background: var(--uibit-bg-subtle, #f3f4f6); }
145
+
146
+ .col-dropdown-item input[type="checkbox"] {
147
+ width: 0.875rem;
148
+ height: 0.875rem;
149
+ cursor: pointer;
150
+ flex-shrink: 0;
151
+ margin: 0;
152
+ accent-color: var(--uibit-focus-color, #111827);
153
+ }
154
+
155
+ /* Consolidated Options dropdown styles */
156
+ .options-dropdown {
157
+ min-width: 12rem;
158
+ }
159
+ .dropdown-section-title {
160
+ font-size: var(--uibit-font-size-xs, 0.6875rem);
161
+ font-weight: var(--uibit-font-weight-bold, 700);
162
+ text-transform: uppercase;
163
+ letter-spacing: var(--uibit-letter-spacing-wide, 0.05em);
164
+ color: var(--uibit-text-muted, #6b7280);
165
+ padding: 0.375rem 0.5rem 0.25rem;
166
+ }
167
+ .dropdown-divider {
168
+ height: 1px;
169
+ background: var(--uibit-table-border-color, #e5e7eb);
170
+ margin: 0.375rem 0;
171
+ }
172
+ .dropdown-btn {
173
+ display: block;
174
+ width: 100%;
175
+ text-align: left;
176
+ background: none;
177
+ border: none;
178
+ padding: 0.375rem 0.5rem;
179
+ font: inherit;
180
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
181
+ color: var(--uibit-text-primary, #111827);
182
+ border-radius: 0.25rem;
183
+ cursor: pointer;
184
+ }
185
+ .dropdown-btn:hover {
186
+ background: var(--uibit-bg-subtle, #f3f4f6);
187
+ }
188
+ .dropdown-btn-danger {
189
+ color: #b91c1c;
190
+ }
191
+ .dropdown-btn-danger:hover {
192
+ background: #fef2f2;
193
+ }
194
+
195
+ /* ── Selection banner ────────────────────────────────────── */
196
+
197
+ .sel-banner {
198
+ display: flex;
199
+ align-items: center;
200
+ gap: 0.75rem;
201
+ flex-wrap: wrap;
202
+ padding: 0.5rem 0.875rem;
203
+ margin-bottom: 0.5rem;
204
+ background: var(--uibit-selected-bg, #eff6ff);
205
+ border: 1px solid var(--uibit-border-color, #bfdbfe);
206
+ border-radius: var(--uibit-table-radius, 0.375rem);
207
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
208
+ color: var(--uibit-text-primary, #1e40af);
209
+ }
210
+
211
+ .sel-banner-count { font-weight: 600; }
212
+
213
+ .sel-banner-btn {
214
+ background: none;
215
+ border: none;
216
+ padding: 0;
217
+ font: inherit;
218
+ font-size: var(--uibit-font-size-xs, 0.8125rem);
219
+ color: var(--uibit-focus-color, #1d4ed8);
220
+ cursor: pointer;
221
+ text-decoration: underline;
222
+ text-underline-offset: 0.15em;
223
+ }
224
+
225
+ .sel-banner-btn:focus-visible { outline: 0.125rem solid var(--uibit-focus-color, currentColor); outline-offset: 0.125rem; border-radius: 0.125rem; }
226
+
227
+ .sel-banner-sep { color: var(--uibit-border-color, #93c5fd); }
228
+
229
+ /* ── Table wrapper ───────────────────────────────────────── */
230
+
231
+ .table-wrap {
232
+ width: 100%;
233
+ overflow-x: auto;
234
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
235
+ border-radius: var(--uibit-table-radius, 0.375rem);
236
+ }
237
+
238
+ :host([sticky-header]) .table-wrap {
239
+ max-height: var(--uibit-table-max-height, 24rem);
240
+ overflow-y: auto;
241
+ }
242
+
243
+ table {
244
+ width: 100%;
245
+ border-collapse: collapse;
246
+ table-layout: auto;
247
+ }
248
+
249
+ /* ── Head ────────────────────────────────────────────────── */
250
+
251
+ thead { background: var(--uibit-table-head-bg, #f9fafb); }
252
+
253
+ :host([sticky-header]) thead th {
254
+ position: sticky;
255
+ top: 0;
256
+ z-index: 2;
257
+ background: var(--uibit-table-head-bg, #f9fafb);
258
+ }
259
+
260
+ th {
261
+ padding: var(--uibit-table-cell-padding, 0.5rem 0.75rem);
262
+ text-align: left;
263
+ font-weight: var(--uibit-font-weight-semibold, 600);
264
+ font-size: var(--uibit-font-size-xs, 0.75rem);
265
+ text-transform: uppercase;
266
+ letter-spacing: var(--uibit-letter-spacing-wide, 0.04em);
267
+ color: var(--uibit-table-head-color, #6b7280);
268
+ border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb);
269
+ user-select: none;
270
+ position: relative;
271
+ white-space: nowrap;
272
+ }
273
+
274
+ th.sortable { cursor: pointer; }
275
+ th.sortable:hover { color: var(--uibit-table-color, #111827); }
276
+
277
+ .th-inner {
278
+ display: inline-flex;
279
+ align-items: center;
280
+ gap: 0.25rem;
281
+ }
282
+
283
+ /* ── Sort icon ───────────────────────────────────────────── */
284
+
285
+ .sort-icon {
286
+ width: 0.75rem;
287
+ height: 0.75rem;
288
+ flex-shrink: 0;
289
+ opacity: 0.35;
290
+ }
291
+
292
+ th.sort-asc .sort-icon,
293
+ th.sort-desc .sort-icon { opacity: 1; }
294
+
295
+ .sort-badge {
296
+ display: inline-flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ width: 1rem;
300
+ width: 1rem;
301
+ height: 1rem;
302
+ border-radius: 50%;
303
+ background: var(--uibit-focus-color, #374151);
304
+ color: var(--uibit-bg-surface, #fff);
305
+ font-size: var(--uibit-font-size-xs, 0.625rem);
306
+ font-weight: var(--uibit-font-weight-bold, 700);
307
+ line-height: 1;
308
+ flex-shrink: 0;
309
+ }
310
+
311
+ /* ── Resize handle ───────────────────────────────────────── */
312
+
313
+ .resize-handle {
314
+ position: absolute;
315
+ right: 0;
316
+ top: 0;
317
+ bottom: 0;
318
+ width: 5px;
319
+ cursor: col-resize;
320
+ z-index: 1;
321
+ }
322
+
323
+ .resize-handle::after {
324
+ content: '';
325
+ position: absolute;
326
+ right: 1px;
327
+ top: 20%;
328
+ bottom: 20%;
329
+ width: 2px;
330
+ background: transparent;
331
+ border-radius: 1px;
332
+ transition: background 0.15s;
333
+ }
334
+
335
+ .resize-handle:hover::after,
336
+ .resizing .resize-handle::after { background: var(--uibit-table-focus-color, #6b7280); }
337
+
338
+ /* ── Filter row ──────────────────────────────────────────── */
339
+
340
+ .filter-row th {
341
+ padding: 0.3rem 0.5rem;
342
+ background: var(--uibit-table-head-bg, #f9fafb);
343
+ border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb);
344
+ text-transform: none;
345
+ letter-spacing: 0;
346
+ font-weight: 400;
347
+ }
348
+
349
+ :host([sticky-header]) .filter-row th {
350
+ position: sticky;
351
+ top: var(--uibit-table-header-height, 2.5rem);
352
+ z-index: 2;
353
+ background: var(--uibit-table-head-bg, #f9fafb);
354
+ }
355
+
356
+ .filter-input {
357
+ width: 100%;
358
+ padding: 0.2rem 0.375rem;
359
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
360
+ border-radius: 0.25rem;
361
+ font: inherit;
362
+ font-size: var(--uibit-font-size-xs, 0.75rem);
363
+ background: var(--uibit-table-bg, #ffffff);
364
+ color: inherit;
365
+ outline: none;
366
+ min-width: 0;
367
+ box-sizing: border-box;
368
+ }
369
+
370
+ .filter-input:focus { border-color: var(--uibit-table-focus-color, #6b7280); }
371
+ .filter-input::placeholder { color: var(--uibit-text-muted, #d1d5db); }
372
+ .filter-input.active { border-color: var(--uibit-table-focus-color, #6b7280); background: var(--uibit-bg-subtle, #fafafa); }
373
+
374
+ /* ── Checkbox column ─────────────────────────────────────── */
375
+
376
+ .col-check {
377
+ width: 2.75rem;
378
+ text-align: center;
379
+ padding-left: 0.875rem;
380
+ padding-right: 0;
381
+ }
382
+
383
+ td.col-check { padding-left: 0.875rem; padding-right: 0; }
384
+
385
+ input[type="checkbox"] {
386
+ width: 0.875rem;
387
+ height: 0.875rem;
388
+ cursor: pointer;
389
+ margin: 0;
390
+ vertical-align: middle;
391
+ accent-color: var(--uibit-focus-color, #111827);
392
+ }
393
+
394
+ /* ── Body rows ───────────────────────────────────────────── */
395
+
396
+ td {
397
+ padding: var(--uibit-table-cell-padding, 0.5rem 0.75rem);
398
+ border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb);
399
+ color: var(--uibit-table-color, #111827);
400
+ white-space: nowrap;
401
+ overflow: hidden;
402
+ text-overflow: ellipsis;
403
+ max-width: 20rem;
404
+ }
405
+
406
+ tr:last-child td { border-bottom: none; }
407
+
408
+ tbody tr { transition: background 0.1s; }
409
+ tbody tr:hover { background: var(--uibit-table-hover-bg, #f9fafb); }
410
+
411
+ tbody tr.row-selected td { background: var(--uibit-table-selected-bg, #eff6ff); }
412
+ tbody tr.row-selected:hover td { background: #dbeafe; }
413
+
414
+ :host([striped]) tbody tr:nth-child(even):not(.row-selected) td {
415
+ background: var(--uibit-table-stripe-bg, #f9fafb);
416
+ }
417
+
418
+ /* ── Misc ────────────────────────────────────────────────── */
419
+
420
+ .empty {
421
+ padding: 2.5rem;
422
+ text-align: center;
423
+ color: var(--uibit-text-muted, #9ca3af);
424
+ font-size: var(--uibit-font-size-sm, 0.875rem);
425
+ }
426
+
427
+ .highlight {
428
+ background: var(--uibit-highlight-bg, #fef9c3);
429
+ color: var(--uibit-highlight-text, #000000);
430
+ border-radius: 0.125rem;
431
+ padding: 0 0.1em;
432
+ }
433
+
434
+ .filter-highlight {
435
+ background: var(--uibit-filter-highlight-bg, #dcfce7);
436
+ color: var(--uibit-filter-highlight-text, #000000);
437
+ border-radius: 0.125rem;
438
+ padding: 0 0.1em;
439
+ }
440
+
441
+ /* ── Footer ──────────────────────────────────────────────── */
442
+
443
+ .footer {
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ flex-wrap: wrap;
448
+ gap: 0.5rem;
449
+ margin-top: 0.75rem;
450
+ font-size: var(--uibit-font-size-xs, 0.75rem);
451
+ color: #6b7280;
452
+ }
453
+
454
+ .footer-left {
455
+ display: flex;
456
+ align-items: center;
457
+ gap: 0.5rem;
458
+ }
459
+
460
+ .footer-sep {
461
+ color: var(--uibit-table-border-color, #e5e7eb);
462
+ }
463
+
464
+ .footer-label {
465
+ color: var(--uibit-text-muted, #6b7280);
466
+ }
467
+
468
+ .footer-select {
469
+ padding: 0.15rem 0.35rem;
470
+ font-size: var(--uibit-font-size-xs, 0.75rem);
471
+ }
472
+
473
+ .pagination {
474
+ display: flex;
475
+ align-items: center;
476
+ gap: 0.25rem;
477
+ }
478
+
479
+ .page-btn {
480
+ min-width: 1.75rem;
481
+ height: 1.75rem;
482
+ padding: 0 0.375rem;
483
+ border: 1px solid var(--uibit-table-border-color, #e5e7eb);
484
+ border-radius: 0.25rem;
485
+ font: inherit;
486
+ font-size: var(--uibit-font-size-xs, 0.75rem);
487
+ background: var(--uibit-table-bg, #ffffff);
488
+ color: inherit;
489
+ cursor: pointer;
490
+ display: inline-flex;
491
+ align-items: center;
492
+ justify-content: center;
493
+ transition: background 0.12s, box-shadow 0.1s ease, opacity 0.1s ease;
494
+ }
495
+
496
+ .page-btn:hover:not(:disabled) { background: var(--uibit-bg-subtle, #f3f4f6); }
497
+ .page-btn:active:not(:disabled) { box-shadow: inset 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12); opacity: 0.8; }
498
+ .page-btn.active {
499
+ background: var(--uibit-focus-color, #111827);
500
+ color: var(--uibit-bg-surface, #fff);
501
+ border-color: var(--uibit-focus-color, #111827);
502
+ font-weight: 600;
503
+ }
504
+ .page-btn:disabled { opacity: 0.4; cursor: default; }
505
+ .page-btn:focus-visible { outline: 0.125rem solid var(--uibit-focus-color, currentColor); outline-offset: 0.125rem; }
506
+
507
+ /* Loading Spinner */
508
+ .loading-spinner {
509
+ font-size: var(--uibit-font-size-xs, 0.75rem);
510
+ color: var(--uibit-text-muted, #6b7280);
511
+ display: inline-flex;
512
+ align-items: center;
513
+ gap: 0.375rem;
514
+ }
515
+ .loading-spinner::before {
516
+ content: '';
517
+ width: 0.75rem;
518
+ height: 0.75rem;
519
+ border: 1.5px solid currentColor;
520
+ border-right-color: transparent;
521
+ border-radius: 50%;
522
+ animation: uibit-spin 0.6s linear infinite;
523
+ }
524
+ @keyframes uibit-spin {
525
+ to { transform: rotate(360deg); }
526
+ }
527
+
528
+ slot { display: none; }
529
+ `;
530
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+gBxB,CAAC"}
@@ -0,0 +1,98 @@
1
+ import type { TemplateResult, PropertyValues } from 'lit';
2
+ import { UIBitElement } from '@uibit/core';
3
+ export declare class Table extends UIBitElement {
4
+ static styles: import("lit").CSSResult;
5
+ /** Show the global search input. */
6
+ searchable: boolean;
7
+ /** Show pagination controls and per-page selector. */
8
+ paginated: boolean;
9
+ /** Show CSV export button. */
10
+ exportable: boolean;
11
+ /** Enable row-selection checkboxes. */
12
+ selectable: boolean;
13
+ /** Show per-column filter row below the header. */
14
+ filterable: boolean;
15
+ /** Enable drag-to-resize column handles. */
16
+ resizable: boolean;
17
+ /** Show column visibility toggle in the toolbar. */
18
+ columnChooser: boolean;
19
+ /** Alternating row background. */
20
+ striped: boolean;
21
+ /** Stick the header row when the table overflows vertically. */
22
+ stickyHeader: boolean;
23
+ /** Comma-separated rows-per-page options. */
24
+ pageSizes: string;
25
+ /** Controls layout: 'inline' or consolidated 'menu' under a dropdown. */
26
+ controlsLayout: 'inline' | 'menu';
27
+ /** Enable infinite scroll behavior instead of page pagination. */
28
+ infiniteScroll: boolean;
29
+ /** Indicates the table is loading more items in infinite scroll mode. */
30
+ loading: boolean;
31
+ private _cols;
32
+ private _rows;
33
+ private _query;
34
+ private _sorts;
35
+ private _page;
36
+ private _perPage;
37
+ private _selected;
38
+ private _hiddenCols;
39
+ private _colFilters;
40
+ private _colMenuOpen;
41
+ private _optionsMenuOpen;
42
+ private _allFilteredSelected;
43
+ private _searchPlaceholderText;
44
+ private _colWidths;
45
+ private _resizing;
46
+ private _rafId;
47
+ private _closeMenuHandler?;
48
+ private _escMenuHandler?;
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ firstUpdated(changedProperties: PropertyValues): void;
52
+ updated(changedProperties: PropertyValues): void;
53
+ private get _pageSizeOptions();
54
+ private get _visibleCols();
55
+ private get _indexed();
56
+ private get _colFiltered();
57
+ private get _searched();
58
+ private get _sortedRows();
59
+ private get _pageRows();
60
+ private get _totalPages();
61
+ private get _allPageSelected();
62
+ private get _somePageSelected();
63
+ private _resizeHandler;
64
+ private _updateHeaderHeight;
65
+ private _onSlotChange;
66
+ private _onSearchPlaceholderChange;
67
+ private _onSearch;
68
+ private _onSort;
69
+ private _onPerPage;
70
+ private _onColFilter;
71
+ private _onSelectRow;
72
+ private _onSelectAllPage;
73
+ private _onTableClick;
74
+ private _onTableChange;
75
+ private _onSelectAllFiltered;
76
+ private _clearSelection;
77
+ private _emitSelect;
78
+ private _onToggleCol;
79
+ private _openColMenu;
80
+ private _openOptionsMenu;
81
+ private _removeMenuListener;
82
+ private _onScroll;
83
+ private _onResizeStart;
84
+ private _cleanupResizeListeners;
85
+ private _exportCsv;
86
+ private _highlight;
87
+ private _applyHighlight;
88
+ private _colStyle;
89
+ private _renderSortIcon;
90
+ private _renderPagination;
91
+ private _renderSelectionBanner;
92
+ private _renderColMenu;
93
+ private _renderOptionsMenu;
94
+ private _renderFilterRow;
95
+ render(): TemplateResult<1>;
96
+ }
97
+ export default Table;
98
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}