do-ui-design-system 1.1.16 → 1.1.18
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/do-theme/table.css +58 -58
- package/dist/organisms/TableBasic/TableBasic.svelte +135 -98
- package/dist/organisms/TableBasic/TableBasic.svelte.d.ts +26 -0
- package/dist/organisms/TableBasic/TableBasic.svelte.d.ts.map +1 -1
- package/dist/organisms/TableBasic/TableBasic.types.d.ts +2 -0
- package/dist/organisms/TableBasic/TableBasic.types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/do-theme/table.css
CHANGED
|
@@ -5,15 +5,56 @@
|
|
|
5
5
|
justify-content: space-between;
|
|
6
6
|
margin-bottom: 1rem;
|
|
7
7
|
|
|
8
|
-
.do-
|
|
8
|
+
.do-table__header__left__tags {
|
|
9
9
|
display: flex;
|
|
10
10
|
align-items: center;
|
|
11
11
|
gap: 0.5rem;
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
.do-table__header__right {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
gap: 1rem;
|
|
18
|
+
|
|
19
|
+
.do-table__header__right__dates {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: flex-end;
|
|
22
|
+
gap: 0.75rem;
|
|
23
|
+
flex-wrap: wrap;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.do-table__header__right__date-range {
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
gap: 0.5rem;
|
|
31
|
+
flex-wrap: wrap;
|
|
32
|
+
position: relative;
|
|
33
|
+
|
|
34
|
+
h5 {
|
|
35
|
+
margin: 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.do-table__date-fields {
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
gap: 0.5rem;
|
|
43
|
+
flex-wrap: wrap;
|
|
44
|
+
position: relative;
|
|
45
|
+
|
|
46
|
+
.do-table__date-fields__field {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: 0.25rem;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
13
52
|
}
|
|
14
53
|
|
|
15
54
|
.do-table-wrapper {
|
|
16
55
|
overflow-x: auto;
|
|
56
|
+
border: 1px solid var(--do-table-border);
|
|
57
|
+
border-radius: 1rem;
|
|
17
58
|
}
|
|
18
59
|
|
|
19
60
|
.do-table__content {
|
|
@@ -30,6 +71,9 @@
|
|
|
30
71
|
}
|
|
31
72
|
|
|
32
73
|
.do-table__content__th {
|
|
74
|
+
display: grid;
|
|
75
|
+
grid-template-columns: 1fr min-content;
|
|
76
|
+
align-items: center;
|
|
33
77
|
padding: 0.75rem 1rem;
|
|
34
78
|
text-align: left;
|
|
35
79
|
font-size: 1rem;
|
|
@@ -37,9 +81,10 @@
|
|
|
37
81
|
cursor: pointer;
|
|
38
82
|
transition: color 0.15s;
|
|
39
83
|
color: #ffffff;
|
|
84
|
+
width: 88%;
|
|
40
85
|
|
|
41
86
|
&:not(.col-check):not(.do-table__content__th-action) {
|
|
42
|
-
min-width:
|
|
87
|
+
min-width: 2rem;
|
|
43
88
|
}
|
|
44
89
|
|
|
45
90
|
.do-table__content__th__sort {
|
|
@@ -101,7 +146,11 @@
|
|
|
101
146
|
padding: 0.2rem 0.5rem;
|
|
102
147
|
|
|
103
148
|
input {
|
|
104
|
-
|
|
149
|
+
width: 90%;
|
|
150
|
+
|
|
151
|
+
&::placeholder {
|
|
152
|
+
color: #c8c8c8;
|
|
153
|
+
}
|
|
105
154
|
}
|
|
106
155
|
}
|
|
107
156
|
|
|
@@ -115,7 +164,7 @@
|
|
|
115
164
|
color: inherit;
|
|
116
165
|
|
|
117
166
|
&:not(.col-check):not(.do-table__content__th-action) {
|
|
118
|
-
min-width:
|
|
167
|
+
min-width: 2rem;
|
|
119
168
|
}
|
|
120
169
|
}
|
|
121
170
|
|
|
@@ -142,72 +191,23 @@
|
|
|
142
191
|
grid-template-columns: 1fr min-content;
|
|
143
192
|
align-items: center;
|
|
144
193
|
padding: 10px 16px;
|
|
145
|
-
border-top: 1px solid white;
|
|
146
194
|
gap: 16px;
|
|
147
195
|
color: inherit;
|
|
148
196
|
font-size: 1rem;
|
|
149
197
|
|
|
150
198
|
.selected-count {
|
|
151
|
-
color: #
|
|
199
|
+
color: #8a8a8a;
|
|
152
200
|
}
|
|
153
201
|
|
|
154
202
|
.sort-label strong {
|
|
155
|
-
color: #
|
|
203
|
+
color: #8a8a8a;
|
|
156
204
|
font-weight: 500;
|
|
157
205
|
}
|
|
158
|
-
}
|
|
159
206
|
|
|
160
|
-
|
|
161
|
-
display: flex;
|
|
162
|
-
align-items: flex-end;
|
|
163
|
-
gap: 0.75rem;
|
|
164
|
-
flex-wrap: wrap;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
.do-table__date-toggle {
|
|
168
|
-
display: flex;
|
|
169
|
-
border: 1px solid var(--do-border, #3f3f46);
|
|
170
|
-
border-radius: 6px;
|
|
171
|
-
overflow: hidden;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.do-table__date-toggle__btn {
|
|
175
|
-
padding: 0.375rem 0.75rem;
|
|
176
|
-
font-size: 0.875rem;
|
|
177
|
-
background: transparent;
|
|
178
|
-
border: none;
|
|
179
|
-
cursor: pointer;
|
|
180
|
-
color: inherit;
|
|
181
|
-
transition: background 0.15s;
|
|
182
|
-
|
|
183
|
-
&.active {
|
|
184
|
-
background: var(--do-bg-secondary, #3f3f46);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
&:hover:not(.active) {
|
|
188
|
-
background: var(--do-bg-secondary-hover, #52525b);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.do-table__date-range {
|
|
193
|
-
display: flex;
|
|
194
|
-
align-items: center;
|
|
195
|
-
gap: 0.5rem;
|
|
196
|
-
flex-wrap: wrap;
|
|
197
|
-
position: relative;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
.do-table__date-fields {
|
|
201
|
-
display: flex;
|
|
202
|
-
align-items: center;
|
|
203
|
-
gap: 0.5rem;
|
|
204
|
-
flex-wrap: wrap;
|
|
205
|
-
position: relative;
|
|
206
|
-
|
|
207
|
-
.do-table__date-fields__field {
|
|
207
|
+
.do-table__footer__left {
|
|
208
208
|
display: flex;
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
gap: 1rem;
|
|
210
|
+
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
<!-- @component
|
|
2
|
+
```Svelte
|
|
3
|
+
<TableBasic
|
|
4
|
+
data={rows}
|
|
5
|
+
columns={columns}
|
|
6
|
+
actionColumns?={actionColumns}
|
|
7
|
+
tagConfig?={tagConfig}
|
|
8
|
+
dateConfig?={dateConfig}
|
|
9
|
+
idKey?={'id'}
|
|
10
|
+
headerActions?={headerActions}
|
|
11
|
+
pageSize?={25}
|
|
12
|
+
showCheckbox?={true}
|
|
13
|
+
onSelectionChange?={(ids) => {}}
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
- `data`: T[] - array of row objects
|
|
17
|
+
- `columns`: ColumnDef<T>[] - column definitions `{ key: keyof T, label: string, maxWidth?: number }` — `maxWidth` in rem
|
|
18
|
+
- `actionColumns?`: ActionColumnDef<T>[] - icon button columns `{ key: string, icon: IconNames, label?: string, showHeader?: boolean, onClick: (row: T) => void }`
|
|
19
|
+
- `tagConfig?`: `{ column: keyof T, label: string }` - enables tag filter buttons in the header
|
|
20
|
+
- `dateConfig?`: `{ columnFrom?: keyof T, columnTo?: keyof T, mode?: 'year' | 'date' }` - enables date range filter; filters by overlap when both columns are set
|
|
21
|
+
- `idKey?`: keyof T - row identifier key (default `'id'`)
|
|
22
|
+
- `headerActions?`: HeaderAction[] - `{ icon: IconNames, label: string, onClick: () => void, disabled?: boolean }` - action buttons in the table header
|
|
23
|
+
- `pageSize?`: number - rows per page (default `25`)
|
|
24
|
+
- `showCheckbox?`: boolean - show row selection checkboxes (default `true`)
|
|
25
|
+
- `onSelectionChange?`: `(ids: (string | number)[]) => void` - callback fired when row selection changes
|
|
26
|
+
-->
|
|
1
27
|
<script lang="ts">
|
|
2
28
|
import { Button, Icon } from '../../atoms/index.js';
|
|
3
29
|
import type { IconNames } from '../../do-theme/index.ts';
|
|
@@ -101,15 +127,14 @@
|
|
|
101
127
|
if (!dateConfig || (!dateFrom && !dateTo) || dateError) return true;
|
|
102
128
|
|
|
103
129
|
const normalize = (val: string) =>
|
|
104
|
-
dateMode === 'year' && val.length > 4
|
|
105
|
-
? new Date(val).getFullYear().toString()
|
|
106
|
-
: val;
|
|
130
|
+
dateMode === 'year' && val.length > 4 ? new Date(val).getFullYear().toString() : val;
|
|
107
131
|
|
|
108
132
|
if (dateConfig.columnFrom && dateConfig.columnTo) {
|
|
109
133
|
const from = normalize(String(row[dateConfig.columnFrom]));
|
|
110
134
|
const to = normalize(String(row[dateConfig.columnTo]));
|
|
111
|
-
|
|
112
|
-
if (dateTo &&
|
|
135
|
+
// overlap: rowFrom <= filterTo AND rowTo >= filterFrom
|
|
136
|
+
if (dateTo && from > dateTo) return false;
|
|
137
|
+
if (dateFrom && to < dateFrom) return false;
|
|
113
138
|
} else if (dateConfig.columnFrom) {
|
|
114
139
|
const from = normalize(String(row[dateConfig.columnFrom]));
|
|
115
140
|
if (dateFrom && from < dateFrom) return false;
|
|
@@ -211,93 +236,98 @@
|
|
|
211
236
|
|
|
212
237
|
<div class="do-table">
|
|
213
238
|
<section class="do-table__header">
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
<div class="do-table__header__dates">
|
|
241
|
-
<div class="do-table__date-range">
|
|
242
|
-
<h5>Rango fechas</h5>
|
|
243
|
-
<div class="do-table__date-fields">
|
|
244
|
-
<div class="do-table__date-fields__field">
|
|
245
|
-
{#if dateMode === 'year'}
|
|
246
|
-
<select bind:value={dateFrom} class="do-select">
|
|
247
|
-
<option value="">Desde</option>
|
|
248
|
-
{#each years as year}
|
|
249
|
-
<option value={year}>{year}</option>
|
|
250
|
-
{/each}
|
|
251
|
-
</select>
|
|
252
|
-
{:else}
|
|
253
|
-
<input type="date" bind:value={dateFrom} class="do-input" />
|
|
254
|
-
{/if}
|
|
255
|
-
</div>
|
|
239
|
+
<div class="do-table__header__left">
|
|
240
|
+
{#if tagConfig?.column}
|
|
241
|
+
<div class="do-table__header__left__tags">
|
|
242
|
+
{#if tagConfig.label}
|
|
243
|
+
<Button
|
|
244
|
+
label={tagConfig.label}
|
|
245
|
+
ariaLabel="Ver todos"
|
|
246
|
+
rounded
|
|
247
|
+
variant={activeTags.size === 0 ? 'do-btn-accent' : 'do-btn-primary'}
|
|
248
|
+
onClick={clearTags}
|
|
249
|
+
/>
|
|
250
|
+
{:else}
|
|
251
|
+
<p>{columnName}:</p>
|
|
252
|
+
{/if}
|
|
253
|
+
{#each tagOptions() as value}
|
|
254
|
+
<Button
|
|
255
|
+
label={value}
|
|
256
|
+
ariaLabel={value}
|
|
257
|
+
rounded
|
|
258
|
+
variant={activeTags.has(value) ? 'do-btn-accent' : 'do-btn-primary'}
|
|
259
|
+
onClick={() => toggleTag(value)}
|
|
260
|
+
/>
|
|
261
|
+
{/each}
|
|
262
|
+
</div>
|
|
263
|
+
{/if}
|
|
264
|
+
</div>
|
|
256
265
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
<div class="do-table__header__right">
|
|
267
|
+
{#if dateConfig}
|
|
268
|
+
<div class="do-table__header__right__dates">
|
|
269
|
+
<div class="do-table__header__right__date-range">
|
|
270
|
+
<h5>Rango fechas</h5>
|
|
271
|
+
<div class="do-table__date-fields">
|
|
272
|
+
<div class="do-table__date-fields__field">
|
|
273
|
+
{#if dateMode === 'year'}
|
|
274
|
+
<select bind:value={dateFrom} class="do-select">
|
|
275
|
+
<option value="">Desde</option>
|
|
276
|
+
{#each years as year}
|
|
277
|
+
<option value={year}>{year}</option>
|
|
278
|
+
{/each}
|
|
279
|
+
</select>
|
|
280
|
+
{:else}
|
|
281
|
+
<input type="date" bind:value={dateFrom} class="do-input" />
|
|
282
|
+
{/if}
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<div class="do-table__date-fields__field">
|
|
286
|
+
{#if dateMode === 'year'}
|
|
287
|
+
<select bind:value={dateTo} class="do-select">
|
|
288
|
+
<option value="">Hasta</option>
|
|
289
|
+
{#each years as year}
|
|
290
|
+
<option value={year}>{year}</option>
|
|
291
|
+
{/each}
|
|
292
|
+
</select>
|
|
293
|
+
{:else}
|
|
294
|
+
<input type="date" bind:value={dateTo} class="do-input" />
|
|
295
|
+
{/if}
|
|
296
|
+
</div>
|
|
297
|
+
|
|
298
|
+
{#if dateError}
|
|
299
|
+
<span class="do-table__date-error">{dateError}</span>
|
|
267
300
|
{/if}
|
|
268
301
|
</div>
|
|
269
302
|
|
|
270
|
-
{#if
|
|
271
|
-
<
|
|
303
|
+
{#if dateFrom || dateTo}
|
|
304
|
+
<IconButton
|
|
305
|
+
iconName="icon-close"
|
|
306
|
+
ariaLabel="limpiar fechas"
|
|
307
|
+
variant="do-btn-secondary"
|
|
308
|
+
circle
|
|
309
|
+
onClick={clearDates}
|
|
310
|
+
/>
|
|
272
311
|
{/if}
|
|
273
312
|
</div>
|
|
313
|
+
</div>
|
|
314
|
+
{/if}
|
|
274
315
|
|
|
275
|
-
|
|
316
|
+
{#if headerActions.length}
|
|
317
|
+
<div class="do-table__header__right__actions">
|
|
318
|
+
{#each headerActions as action}
|
|
276
319
|
<IconButton
|
|
277
|
-
iconName=
|
|
278
|
-
ariaLabel=
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
320
|
+
iconName={action.icon}
|
|
321
|
+
ariaLabel={action.label}
|
|
322
|
+
label={action.label}
|
|
323
|
+
variant="do-btn-accent"
|
|
324
|
+
disabled={action.disabled}
|
|
325
|
+
onClick={action.onClick}
|
|
282
326
|
/>
|
|
283
|
-
{/
|
|
327
|
+
{/each}
|
|
284
328
|
</div>
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
{#if headerActions.length}
|
|
289
|
-
<div class="do-table__actions">
|
|
290
|
-
{#each headerActions as action}
|
|
291
|
-
<IconButton
|
|
292
|
-
iconName={action.icon}
|
|
293
|
-
ariaLabel={action.label}
|
|
294
|
-
label={action.label}
|
|
295
|
-
variant="do-btn-accent"
|
|
296
|
-
onClick={action.onClick}
|
|
297
|
-
/>
|
|
298
|
-
{/each}
|
|
299
|
-
</div>
|
|
300
|
-
{/if}
|
|
329
|
+
{/if}
|
|
330
|
+
</div>
|
|
301
331
|
</section>
|
|
302
332
|
|
|
303
333
|
<section class="do-table-wrapper">
|
|
@@ -317,22 +347,24 @@
|
|
|
317
347
|
{/if}
|
|
318
348
|
{#each columns as col}
|
|
319
349
|
<th
|
|
320
|
-
class="do-table__content__th"
|
|
321
350
|
class:sort-active={sortKey === col.key}
|
|
351
|
+
style={col.maxWidth ? `max-width: ${col.maxWidth}rem` : undefined}
|
|
322
352
|
onclick={() => handleSort(String(col.key))}
|
|
323
353
|
>
|
|
324
|
-
<
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
354
|
+
<div class="do-table__content__th">
|
|
355
|
+
<span>{col.label}</span>
|
|
356
|
+
{#if sortKey === col.key}
|
|
357
|
+
<span
|
|
358
|
+
class="do-table__content__th__sort {sortDir === 'asc'
|
|
359
|
+
? ''
|
|
360
|
+
: 'do-table__content__th__sort--up'}"
|
|
361
|
+
>
|
|
362
|
+
<Icon name="icon-chevron-down" />
|
|
363
|
+
</span>
|
|
364
|
+
{:else}
|
|
365
|
+
<Icon name="icon-chevron-up-down" />
|
|
366
|
+
{/if}
|
|
367
|
+
</div>
|
|
336
368
|
</th>
|
|
337
369
|
{/each}
|
|
338
370
|
{#each actionColumns as col}
|
|
@@ -347,7 +379,10 @@
|
|
|
347
379
|
<th></th>
|
|
348
380
|
{/if}
|
|
349
381
|
{#each columns as col}
|
|
350
|
-
<th
|
|
382
|
+
<th
|
|
383
|
+
class="do-table__content__th-filter"
|
|
384
|
+
style={col.maxWidth ? `max-width: ${col.maxWidth}rem` : undefined}
|
|
385
|
+
>
|
|
351
386
|
<input
|
|
352
387
|
type="text"
|
|
353
388
|
class="do-table__content__filter-input do-input"
|
|
@@ -384,7 +419,9 @@
|
|
|
384
419
|
</td>
|
|
385
420
|
{/if}
|
|
386
421
|
{#each columns as col}
|
|
387
|
-
<td
|
|
422
|
+
<td style={col.maxWidth ? `max-width: ${col.maxWidth}rem` : undefined}
|
|
423
|
+
>{row[col.key]}</td
|
|
424
|
+
>
|
|
388
425
|
{/each}
|
|
389
426
|
{#each actionColumns as col}
|
|
390
427
|
<td class="do-table__content__th-action">
|
|
@@ -417,7 +454,7 @@
|
|
|
417
454
|
{/if}
|
|
418
455
|
{#if sortKey}
|
|
419
456
|
<span class="sort-label">
|
|
420
|
-
Ordenado por
|
|
457
|
+
Ordenado por:
|
|
421
458
|
<strong>{columns.find((c) => c.key === sortKey)?.label}</strong>
|
|
422
459
|
{sortDir === 'asc' ? '↑' : '↓'}
|
|
423
460
|
</span>
|
|
@@ -11,6 +11,32 @@ type Props<T extends Record<string, any>> = {
|
|
|
11
11
|
showCheckbox?: boolean;
|
|
12
12
|
onSelectionChange?: (ids: (string | number)[]) => void;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* ```Svelte
|
|
16
|
+
* <TableBasic
|
|
17
|
+
* data={rows}
|
|
18
|
+
* columns={columns}
|
|
19
|
+
* actionColumns?={actionColumns}
|
|
20
|
+
* tagConfig?={tagConfig}
|
|
21
|
+
* dateConfig?={dateConfig}
|
|
22
|
+
* idKey?={'id'}
|
|
23
|
+
* headerActions?={headerActions}
|
|
24
|
+
* pageSize?={25}
|
|
25
|
+
* showCheckbox?={true}
|
|
26
|
+
* onSelectionChange?={(ids) => {}}
|
|
27
|
+
* />
|
|
28
|
+
* ```
|
|
29
|
+
* - `data`: T[] - array of row objects
|
|
30
|
+
* - `columns`: ColumnDef<T>[] - column definitions `{ key: keyof T, label: string, maxWidth?: number }` — `maxWidth` in rem
|
|
31
|
+
* - `actionColumns?`: ActionColumnDef<T>[] - icon button columns `{ key: string, icon: IconNames, label?: string, showHeader?: boolean, onClick: (row: T) => void }`
|
|
32
|
+
* - `tagConfig?`: `{ column: keyof T, label: string }` - enables tag filter buttons in the header
|
|
33
|
+
* - `dateConfig?`: `{ columnFrom?: keyof T, columnTo?: keyof T, mode?: 'year' | 'date' }` - enables date range filter; filters by overlap when both columns are set
|
|
34
|
+
* - `idKey?`: keyof T - row identifier key (default `'id'`)
|
|
35
|
+
* - `headerActions?`: HeaderAction[] - `{ icon: IconNames, label: string, onClick: () => void, disabled?: boolean }` - action buttons in the table header
|
|
36
|
+
* - `pageSize?`: number - rows per page (default `25`)
|
|
37
|
+
* - `showCheckbox?`: boolean - show row selection checkboxes (default `true`)
|
|
38
|
+
* - `onSelectionChange?`: `(ids: (string | number)[]) => void` - callback fired when row selection changes
|
|
39
|
+
*/
|
|
14
40
|
declare const TableBasic: import("svelte").Component<Props<any>, {}, "">;
|
|
15
41
|
type TableBasic = ReturnType<typeof TableBasic>;
|
|
16
42
|
export default TableBasic;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBasic.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/organisms/TableBasic/TableBasic.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,SAAS,EAET,MAAM,uBAAuB,CAAC;AAG/B,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IAC3C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAChB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;CACvD,CAAC;
|
|
1
|
+
{"version":3,"file":"TableBasic.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/organisms/TableBasic/TableBasic.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,SAAS,EAET,MAAM,uBAAuB,CAAC;AAG/B,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IAC3C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAChB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;CACvD,CAAC;AA6WH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,UAAU,gDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -14,6 +14,7 @@ export type HeaderAction = {
|
|
|
14
14
|
icon: IconNames;
|
|
15
15
|
label: string;
|
|
16
16
|
onClick: () => void;
|
|
17
|
+
disabled?: boolean;
|
|
17
18
|
};
|
|
18
19
|
export type ActionColumnDef<T> = {
|
|
19
20
|
key: string;
|
|
@@ -25,6 +26,7 @@ export type ActionColumnDef<T> = {
|
|
|
25
26
|
export type ColumnDef<T> = {
|
|
26
27
|
key: keyof T;
|
|
27
28
|
label: string;
|
|
29
|
+
maxWidth?: number;
|
|
28
30
|
};
|
|
29
31
|
export type TableProps<T extends Record<string, any>> = {
|
|
30
32
|
data: T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBasic.types.d.ts","sourceRoot":"","sources":["../../../src/lib/organisms/TableBasic/TableBasic.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACvB,MAAM,EAAE,MAAM,CAAC,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"TableBasic.types.d.ts","sourceRoot":"","sources":["../../../src/lib/organisms/TableBasic/TableBasic.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACvB,MAAM,EAAE,MAAM,CAAC,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACvB,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACpD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAChB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;CAC1D,CAAC"}
|