@ibobbyts/svelte-ui-utils 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -13
- package/dist/data-table/BaseDataTable.svelte +68 -41
- package/dist/data-table/BaseDataTable.svelte.d.ts +1 -0
- package/dist/data-table/BaseDataTable.svelte.d.ts.map +1 -1
- package/dist/data-table/DataTable.svelte +2 -0
- package/dist/data-table/DataTable.svelte.d.ts +1 -0
- package/dist/data-table/DataTable.svelte.d.ts.map +1 -1
- package/dist/data-table/DateRangeFilter.svelte +25 -0
- package/dist/data-table/DateRangeFilter.svelte.d.ts +1 -0
- package/dist/data-table/DateRangeFilter.svelte.d.ts.map +1 -1
- package/dist/data-table/FilterControl.svelte +1 -0
- package/dist/data-table/index.d.ts +1 -1
- package/dist/data-table/index.d.ts.map +1 -1
- package/dist/data-table/types.d.ts +8 -2
- package/dist/data-table/types.d.ts.map +1 -1
- package/dist/style.css +22 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,13 +10,19 @@ Install from the public npm registry. No GitHub Packages token is required.
|
|
|
10
10
|
With Bun:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
bun add @ibobbyts/svelte-ui-utils@0.
|
|
13
|
+
bun add @ibobbyts/svelte-ui-utils@0.2.0
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Canonical Bun pull address:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
@ibobbyts/svelte-ui-utils@0.2.0
|
|
14
20
|
```
|
|
15
21
|
|
|
16
22
|
With npm:
|
|
17
23
|
|
|
18
24
|
```bash
|
|
19
|
-
npm install @ibobbyts/svelte-ui-utils@0.
|
|
25
|
+
npm install @ibobbyts/svelte-ui-utils@0.2.0
|
|
20
26
|
```
|
|
21
27
|
|
|
22
28
|
The repository does not track `dist/`; releases and local integration builds run
|
|
@@ -156,7 +162,15 @@ pagination bars. `DataTable` uses this same component for its page-size picker.
|
|
|
156
162
|
|
|
157
163
|
const columns = [
|
|
158
164
|
{ key: 'name', header: 'Name', sortable: true },
|
|
159
|
-
{
|
|
165
|
+
{
|
|
166
|
+
key: 'createdAt',
|
|
167
|
+
header: 'Created',
|
|
168
|
+
sortable: true,
|
|
169
|
+
headerHorizontalAlign: 'center',
|
|
170
|
+
headerVerticalAlign: 'middle',
|
|
171
|
+
cellHorizontalAlign: 'right',
|
|
172
|
+
cellVerticalAlign: 'top'
|
|
173
|
+
}
|
|
160
174
|
];
|
|
161
175
|
|
|
162
176
|
let sort = null;
|
|
@@ -189,9 +203,17 @@ pagination bars. `DataTable` uses this same component for its page-size picker.
|
|
|
189
203
|
default, including a page-size selector. Use `language` for package-owned
|
|
190
204
|
defaults such as empty state, pagination label, and page-size label; use
|
|
191
205
|
`pageSizeLabel` or `emptyText` when a specific app needs to override them.
|
|
192
|
-
Use `showPagination={false}` for static tables.
|
|
193
|
-
|
|
194
|
-
|
|
206
|
+
Use `showPagination={false}` for static tables. Use `showHeader={false}` for
|
|
207
|
+
tables that should render body rows without a header section. Sortable headers
|
|
208
|
+
preserve the current window scroll position by default and wait for an async
|
|
209
|
+
`onSortChange` before restoring scroll position.
|
|
210
|
+
|
|
211
|
+
Column alignment is configured separately for headers and body cells.
|
|
212
|
+
Horizontal alignment accepts `left`, `center`, or `right`; vertical alignment
|
|
213
|
+
accepts `top`, `middle`, or `bottom`. Header alignment defaults to
|
|
214
|
+
`left`/`middle`; cell alignment defaults to `left`/`top`.
|
|
215
|
+
Use `headerHorizontalAlign`, `headerVerticalAlign`, `cellHorizontalAlign`, and
|
|
216
|
+
`cellVerticalAlign` instead of the older combined `align` field.
|
|
195
217
|
|
|
196
218
|
`Pagination` is also available as a standalone module when an app needs
|
|
197
219
|
pagination outside `DataTable`:
|
|
@@ -271,9 +293,11 @@ to a parent that does not wrap the dropdown menu directly.
|
|
|
271
293
|
`dateRange` renders two browser date inputs plus preset buttons:
|
|
272
294
|
`last 24 hours`, `last 7 days`, `last 30 days`, `today`, `this week`,
|
|
273
295
|
`this month`, and `this year`. Manual changes emit `{ startDate, endDate,
|
|
274
|
-
preset: null }`.
|
|
275
|
-
|
|
276
|
-
|
|
296
|
+
preset: null }`. Pass `defaultPreset` to apply a preset on mount when the
|
|
297
|
+
current value is empty. Clicking the currently active preset clears both date
|
|
298
|
+
inputs and emits an empty range. The `last24Hours` preset also emits
|
|
299
|
+
`startDateTime` and `endDateTime` so a consuming app can run an exact timestamp
|
|
300
|
+
query while still showing the covered dates in the inputs.
|
|
277
301
|
|
|
278
302
|
`numberRange` renders min/max number inputs and supports `prefixLabel`, for
|
|
279
303
|
example `$` for currency filters.
|
|
@@ -356,9 +380,9 @@ explicitly requested.
|
|
|
356
380
|
|
|
357
381
|
```bash
|
|
358
382
|
gh repo create iBobbyTS/svelte-ui-utils --public --source . --remote origin --push
|
|
359
|
-
git tag v0.
|
|
360
|
-
git push origin v0.
|
|
361
|
-
gh release create v0.
|
|
383
|
+
git tag v0.2.0
|
|
384
|
+
git push origin v0.2.0
|
|
385
|
+
gh release create v0.2.0 --title "v0.2.0" --notes "Publish public npm package"
|
|
362
386
|
gh run watch
|
|
363
387
|
```
|
|
364
388
|
|
|
@@ -373,7 +397,7 @@ consumer project and installs the released npm version without registry-specific
|
|
|
373
397
|
tokens:
|
|
374
398
|
|
|
375
399
|
```bash
|
|
376
|
-
bun add @ibobbyts/svelte-ui-utils@0.
|
|
400
|
+
bun add @ibobbyts/svelte-ui-utils@0.2.0 svelte
|
|
377
401
|
```
|
|
378
402
|
|
|
379
403
|
Use it after each release when a Bun-based project will consume the package.
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
export let rows: unknown[] = [];
|
|
16
16
|
export let columns: DataTableColumn[] = [];
|
|
17
17
|
export let sort: SortState | null = null;
|
|
18
|
+
export let showHeader = true;
|
|
18
19
|
export let zebra = true;
|
|
19
20
|
export let bordered = true;
|
|
20
21
|
export let verticalSeparators = false;
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
function updateStickyHeader() {
|
|
66
|
-
if (!stickyHeader || typeof window === 'undefined' || !tableElement) {
|
|
67
|
+
if (!showHeader || !stickyHeader || typeof window === 'undefined' || !tableElement) {
|
|
67
68
|
stickyHeaderVisible = false;
|
|
68
69
|
return;
|
|
69
70
|
}
|
|
@@ -161,6 +162,22 @@
|
|
|
161
162
|
return column.class ?? '';
|
|
162
163
|
}
|
|
163
164
|
|
|
165
|
+
function resolveHeaderHorizontalAlign(column: DataTableColumn) {
|
|
166
|
+
return column.headerHorizontalAlign ?? 'left';
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function resolveHeaderVerticalAlign(column: DataTableColumn) {
|
|
170
|
+
return column.headerVerticalAlign ?? 'middle';
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function resolveCellHorizontalAlign(column: DataTableColumn) {
|
|
174
|
+
return column.cellHorizontalAlign ?? 'left';
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function resolveCellVerticalAlign(column: DataTableColumn) {
|
|
178
|
+
return column.cellVerticalAlign ?? 'top';
|
|
179
|
+
}
|
|
180
|
+
|
|
164
181
|
onMount(() => {
|
|
165
182
|
const update = () => queueStickyHeaderUpdate();
|
|
166
183
|
const observer = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(update) : undefined;
|
|
@@ -187,6 +204,7 @@
|
|
|
187
204
|
rows;
|
|
188
205
|
columns;
|
|
189
206
|
sort;
|
|
207
|
+
showHeader;
|
|
190
208
|
stickyHeader;
|
|
191
209
|
resolvedStickyHeaderTop;
|
|
192
210
|
queueStickyHeaderUpdate();
|
|
@@ -196,7 +214,7 @@
|
|
|
196
214
|
<div class:suu-table-wrap--borderless={!bordered} class="suu-table-wrap" style:--suu-table-sticky-top={resolvedStickyHeaderTop}>
|
|
197
215
|
<span bind:this={stickyHeaderOffsetProbe} class="suu-table__sticky-offset-probe" aria-hidden="true"></span>
|
|
198
216
|
|
|
199
|
-
{#if stickyHeaderVisible}
|
|
217
|
+
{#if showHeader && stickyHeaderVisible}
|
|
200
218
|
<div
|
|
201
219
|
class="suu-table__sticky-clone"
|
|
202
220
|
style:left={`${stickyHeaderLeft}px`}
|
|
@@ -217,7 +235,8 @@
|
|
|
217
235
|
<th
|
|
218
236
|
class={column.headerClass}
|
|
219
237
|
aria-sort={column.sortable ? getAriaSort(sort, column.key) : undefined}
|
|
220
|
-
data-align={column
|
|
238
|
+
data-horizontal-align={resolveHeaderHorizontalAlign(column)}
|
|
239
|
+
data-vertical-align={resolveHeaderVerticalAlign(column)}
|
|
221
240
|
scope="col"
|
|
222
241
|
style:width={stickyHeaderColumnWidths[columnIndex] ? `${stickyHeaderColumnWidths[columnIndex]}px` : undefined}
|
|
223
242
|
style:min-width={stickyHeaderColumnWidths[columnIndex] ? `${stickyHeaderColumnWidths[columnIndex]}px` : undefined}
|
|
@@ -259,54 +278,62 @@
|
|
|
259
278
|
class:suu-table--layout-auto={tableLayout === 'auto'}
|
|
260
279
|
class:suu-table--layout-fixed={tableLayout === 'fixed'}
|
|
261
280
|
class:suu-table--sticky-header={stickyHeader}
|
|
262
|
-
class:suu-table--sticky-header-shadowed={stickyHeaderVisible}
|
|
281
|
+
class:suu-table--sticky-header-shadowed={showHeader && stickyHeaderVisible}
|
|
263
282
|
class:suu-table--zebra={zebra}
|
|
264
283
|
class:suu-table--vertical-separators={verticalSeparators}
|
|
265
284
|
class="suu-table"
|
|
266
285
|
>
|
|
267
|
-
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
<
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
<
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
286
|
+
{#if showHeader}
|
|
287
|
+
<thead>
|
|
288
|
+
<tr>
|
|
289
|
+
{#each columns as column (column.key)}
|
|
290
|
+
<th
|
|
291
|
+
class={column.headerClass}
|
|
292
|
+
aria-sort={column.sortable ? getAriaSort(sort, column.key) : undefined}
|
|
293
|
+
data-horizontal-align={resolveHeaderHorizontalAlign(column)}
|
|
294
|
+
data-vertical-align={resolveHeaderVerticalAlign(column)}
|
|
295
|
+
scope="col"
|
|
296
|
+
>
|
|
297
|
+
{#if column.sortable}
|
|
298
|
+
<button class="suu-table__sort-button" type="button" on:click={() => handleSort(column)}>
|
|
299
|
+
<span><slot name="header" {column} {sort}>{column.header}</slot></span>
|
|
300
|
+
<span class="suu-table__sort-indicator" aria-hidden="true">
|
|
301
|
+
{#if sort?.key === column.key && sort.direction === 'asc'}
|
|
302
|
+
<svg class="suu-table__sort-icon suu-table__sort-icon--asc" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
303
|
+
<path d="M5 9.5 8 6.5l3 3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" />
|
|
304
|
+
</svg>
|
|
305
|
+
{:else if sort?.key === column.key}
|
|
306
|
+
<svg class="suu-table__sort-icon suu-table__sort-icon--desc" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
307
|
+
<path d="m5 6.5 3 3 3-3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" />
|
|
308
|
+
</svg>
|
|
309
|
+
{:else}
|
|
310
|
+
<svg class="suu-table__sort-icon suu-table__sort-icon--both" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
311
|
+
<path d="M5 6.5 8 3.5l3 3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" />
|
|
312
|
+
<path d="m5 9.5 3 3 3-3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" />
|
|
313
|
+
</svg>
|
|
314
|
+
{/if}
|
|
315
|
+
</span>
|
|
316
|
+
</button>
|
|
317
|
+
{:else}
|
|
318
|
+
<slot name="header" {column} {sort}>{column.header}</slot>
|
|
319
|
+
{/if}
|
|
320
|
+
</th>
|
|
321
|
+
{/each}
|
|
322
|
+
</tr>
|
|
323
|
+
</thead>
|
|
324
|
+
{/if}
|
|
303
325
|
<tbody>
|
|
304
326
|
{#if rows.length > 0}
|
|
305
327
|
{#each rows as row, rowIndex (resolveRowKey(row, rowIndex))}
|
|
306
328
|
<tr {...resolveRowAttributes(row, rowIndex)} class={resolveRowClass(row, rowIndex)}>
|
|
307
329
|
{#each columns as column (column.key)}
|
|
308
330
|
{@const value = getCellValue(row, column)}
|
|
309
|
-
<td
|
|
331
|
+
<td
|
|
332
|
+
class={resolveCellClass(column, row, value)}
|
|
333
|
+
data-horizontal-align={resolveCellHorizontalAlign(column)}
|
|
334
|
+
data-vertical-align={resolveCellVerticalAlign(column)}
|
|
335
|
+
data-nowrap={column.nowrap === false ? 'false' : 'true'}
|
|
336
|
+
>
|
|
310
337
|
<slot name="cell" {row} {column} {value}>{value as string}</slot>
|
|
311
338
|
</td>
|
|
312
339
|
{/each}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDataTable.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/BaseDataTable.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAER,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseDataTable.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/BaseDataTable.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAER,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACV,MAAM,YAAY,CAAC;AAiTtB,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAUD,QAAA,MAAM,aAAa;WAf0d,OAAO,EAAE;cAAY,eAAe,EAAE;WAAS,SAAS,GAAG,IAAI;;;;;kBAAkJ,eAAe;;sBAAwD,MAAM,GAAG,SAAS;yBAAuB,MAAM,GAAG,SAAS;;eAAiE,UAAU;gBAAc,MAAM,GAAG,SAAS;aAAW,eAAe,GAAG,SAAS;eAAa,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS;oBAAkB,sBAAsB,GAAG,SAAS;mBAAiB,0BAA0B,GAAG,SAAS;;;;;;;;;;;;;cAeljC,CAAC;AACvF,KAAK,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAe,aAAa,CAAC"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
export let emptyText: string | undefined = undefined;
|
|
21
21
|
export let sort: SortState | null = null;
|
|
22
22
|
export let onSortChange: DataTableSortChangeHandler | undefined = undefined;
|
|
23
|
+
export let showHeader = true;
|
|
23
24
|
export let showPagination = true;
|
|
24
25
|
export let page = 1;
|
|
25
26
|
export let pageSize = 20;
|
|
@@ -70,6 +71,7 @@
|
|
|
70
71
|
{rows}
|
|
71
72
|
{columns}
|
|
72
73
|
{sort}
|
|
74
|
+
{showHeader}
|
|
73
75
|
{zebra}
|
|
74
76
|
{bordered}
|
|
75
77
|
{verticalSeparators}
|
|
@@ -21,6 +21,7 @@ declare const DataTable: $$__sveltets_2_IsomorphicComponent<{
|
|
|
21
21
|
emptyText?: string | undefined;
|
|
22
22
|
sort?: SortState | null;
|
|
23
23
|
onSortChange?: DataTableSortChangeHandler | undefined;
|
|
24
|
+
showHeader?: boolean;
|
|
24
25
|
showPagination?: boolean;
|
|
25
26
|
page?: number;
|
|
26
27
|
pageSize?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/DataTable.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EAEvB,SAAS,EACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTable.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/DataTable.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EAEvB,SAAS,EACV,MAAM,YAAY,CAAC;AAiEtB,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAUD,QAAA,MAAM,SAAS;WAfosB,OAAO,EAAE;cAAY,eAAe,EAAE;aAAW,eAAe,GAAG,SAAS;eAAa,UAAU;gBAAc,MAAM,GAAG,SAAS;WAAS,SAAS,GAAG,IAAI;mBAAiB,0BAA0B,GAAG,SAAS;;;;;gBAAsI,MAAM,GAAG,SAAS;sBAAoB,MAAM,EAAE;oBAAkB,MAAM,GAAG,SAAS;;yBAA+D,uBAAuB,GAAG,SAAS;;;;kBAAkH,eAAe;;sBAAwD,MAAM,GAAG,SAAS;yBAAuB,MAAM,GAAG,SAAS;;eAAiE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS;oBAAkB,sBAAsB,GAAG,SAAS;;;;;;;;;;;;;;;cAetjD,CAAC;AACnF,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAe,SAAS,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { onMount } from 'svelte';
|
|
2
3
|
import { getUiMessages, type UiLanguage } from '../i18n.js';
|
|
3
4
|
import type { DateRangeFilterValue, DateRangePreset } from './types.js';
|
|
4
5
|
|
|
@@ -11,6 +12,7 @@
|
|
|
11
12
|
export let startLabel: string | undefined = undefined;
|
|
12
13
|
export let endLabel: string | undefined = undefined;
|
|
13
14
|
export let presetLabels: Partial<Record<DateRangePreset, string>> = {};
|
|
15
|
+
export let defaultPreset: DateRangePreset | undefined = undefined;
|
|
14
16
|
export let now: () => Date = () => new Date();
|
|
15
17
|
export let weekStartsOn: 0 | 1 = 1;
|
|
16
18
|
export let onChange: ((value: DateRangeFilterValue) => void) | undefined = undefined;
|
|
@@ -125,6 +127,18 @@
|
|
|
125
127
|
onChange?.(next);
|
|
126
128
|
}
|
|
127
129
|
|
|
130
|
+
function emptyRange(): DateRangeFilterValue {
|
|
131
|
+
return {
|
|
132
|
+
startDate: '',
|
|
133
|
+
endDate: '',
|
|
134
|
+
preset: null
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function isEmptyRange(nextValue: DateRangeFilterValue) {
|
|
139
|
+
return !nextValue.startDate && !nextValue.endDate && nextValue.preset === null;
|
|
140
|
+
}
|
|
141
|
+
|
|
128
142
|
function updateDate(part: 'startDate' | 'endDate', nextValue: string) {
|
|
129
143
|
emit({
|
|
130
144
|
startDate: part === 'startDate' ? nextValue : value.startDate,
|
|
@@ -134,12 +148,23 @@
|
|
|
134
148
|
}
|
|
135
149
|
|
|
136
150
|
function applyPreset(preset: DateRangePreset) {
|
|
151
|
+
if (value.preset === preset) {
|
|
152
|
+
emit(emptyRange());
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
137
156
|
emit(resolvePreset(preset));
|
|
138
157
|
}
|
|
139
158
|
|
|
140
159
|
function labelFor(preset: DateRangePreset) {
|
|
141
160
|
return presetLabels[preset] ?? messages.dateRange.presetLabels[preset];
|
|
142
161
|
}
|
|
162
|
+
|
|
163
|
+
onMount(() => {
|
|
164
|
+
if (defaultPreset && isEmptyRange(value)) {
|
|
165
|
+
emit(resolvePreset(defaultPreset));
|
|
166
|
+
}
|
|
167
|
+
});
|
|
143
168
|
</script>
|
|
144
169
|
|
|
145
170
|
<div class="suu-date-range-filter">
|
|
@@ -19,6 +19,7 @@ declare const DateRangeFilter: $$__sveltets_2_IsomorphicComponent<{
|
|
|
19
19
|
startLabel?: string | undefined;
|
|
20
20
|
endLabel?: string | undefined;
|
|
21
21
|
presetLabels?: Partial<Record<DateRangePreset, string>>;
|
|
22
|
+
defaultPreset?: DateRangePreset | undefined;
|
|
22
23
|
now?: () => Date;
|
|
23
24
|
weekStartsOn?: 0 | 1;
|
|
24
25
|
onChange?: ((value: DateRangeFilterValue) => void) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeFilter.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/DateRangeFilter.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateRangeFilter.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/DateRangeFilter.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA+LxE,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,eAAe;YAVkN,oBAAoB;eAAa,UAAU;iBAAe,MAAM,GAAG,SAAS;eAAa,MAAM,GAAG,SAAS;mBAAiB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBAAkB,eAAe,GAAG,SAAS;UAAQ,MAAM,IAAI;mBAAiB,CAAC,GAAG,CAAC;eAAa,CAAC,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC,GAAG,SAAS;;;kBAU5b,CAAC;AACnF,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAe,eAAe,CAAC"}
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
startLabel={control.startLabel}
|
|
113
113
|
endLabel={control.endLabel}
|
|
114
114
|
presetLabels={control.presetLabels ?? {}}
|
|
115
|
+
defaultPreset={control.defaultPreset}
|
|
115
116
|
now={control.now ?? (() => new Date())}
|
|
116
117
|
weekStartsOn={control.weekStartsOn ?? 1}
|
|
117
118
|
onChange={(detail) => control.type === 'dateRange' && void control.onChange(detail)}
|
|
@@ -7,5 +7,5 @@ export { filter } from './filter.js';
|
|
|
7
7
|
export { getUiMessages, resolveUiLanguage, uiLanguages } from '../i18n.js';
|
|
8
8
|
export { getAriaSort, getCellValue, getPageCount, normalizePagination, setDataTableFilters, setDataTablePageSize, setDataTablePagination, setDataTableSort, toggleSort } from './state.js';
|
|
9
9
|
export type { UiLanguage, UiMessages } from '../i18n.js';
|
|
10
|
-
export type { CheckboxFilterDefinition, CheckboxFilterControl, DataTableColumn, DataTableCellValue, DataTableClassValue, DataTableLayout, DateRangeFilterDefinition, DateRangeFilterControl, DateRangeFilterValue, DateRangePreset, DataTableRowAttributes, DataTableRowKey, DataTableSortChangeHandler, DataTableState, DataTableStateChangeHandler, DropdownSearchFilterDefinition, DropdownSearchFilterControl, FilterDefinition, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterOption, FilterSelectControl, FilterState, FilterTableRow, FilterValue, NumberRangeFilterDefinition, NumberRangeFilterControl, NumberRangeFilterValue, PaginationState, PaginationChangeHandler, PaginationDropdownPlacement, RadioFilterDefinition, RadioFilterControl, SortDirection, SortState } from './types.js';
|
|
10
|
+
export type { CheckboxFilterDefinition, CheckboxFilterControl, DataTableColumn, DataTableCellValue, DataTableClassValue, DataTableHorizontalAlign, DataTableLayout, DataTableVerticalAlign, DateRangeFilterDefinition, DateRangeFilterControl, DateRangeFilterValue, DateRangePreset, DataTableRowAttributes, DataTableRowKey, DataTableSortChangeHandler, DataTableState, DataTableStateChangeHandler, DropdownSearchFilterDefinition, DropdownSearchFilterControl, FilterDefinition, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterOption, FilterSelectControl, FilterState, FilterTableRow, FilterValue, NumberRangeFilterDefinition, NumberRangeFilterControl, NumberRangeFilterValue, PaginationState, PaginationChangeHandler, PaginationDropdownPlacement, RadioFilterDefinition, RadioFilterControl, SortDirection, SortState } from './types.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,YAAY,CAAC"}
|
|
@@ -25,11 +25,16 @@ export type DataTableCellValue = unknown;
|
|
|
25
25
|
export type DataTableClassValue<Row = unknown> = string | undefined | null | ((row: Row, value: DataTableCellValue, column: DataTableColumn<Row>) => string | undefined | null);
|
|
26
26
|
export type DataTableRowKey<Row = unknown> = string | ((row: Row, index: number) => string | number);
|
|
27
27
|
export type DataTableRowAttributes<Row = unknown> = (row: Row, index: number) => Record<string, string | number | boolean | null | undefined>;
|
|
28
|
+
export type DataTableHorizontalAlign = 'left' | 'center' | 'right';
|
|
29
|
+
export type DataTableVerticalAlign = 'top' | 'middle' | 'bottom';
|
|
28
30
|
export interface DataTableColumn<Row = unknown> {
|
|
29
31
|
key: string;
|
|
30
|
-
header
|
|
32
|
+
header?: string;
|
|
31
33
|
sortable?: boolean;
|
|
32
|
-
|
|
34
|
+
headerHorizontalAlign?: DataTableHorizontalAlign;
|
|
35
|
+
headerVerticalAlign?: DataTableVerticalAlign;
|
|
36
|
+
cellHorizontalAlign?: DataTableHorizontalAlign;
|
|
37
|
+
cellVerticalAlign?: DataTableVerticalAlign;
|
|
33
38
|
class?: DataTableClassValue<Row>;
|
|
34
39
|
headerClass?: string;
|
|
35
40
|
nowrap?: boolean;
|
|
@@ -117,6 +122,7 @@ export interface DateRangeFilterControl {
|
|
|
117
122
|
startLabel?: string;
|
|
118
123
|
endLabel?: string;
|
|
119
124
|
presetLabels?: Partial<Record<DateRangePreset, string>>;
|
|
125
|
+
defaultPreset?: DateRangePreset;
|
|
120
126
|
now?: () => Date;
|
|
121
127
|
weekStartsOn?: 0 | 1;
|
|
122
128
|
onChange: (value: DateRangeFilterValue) => void | Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5F,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,oBAAoB,GACpB,sBAAsB,GACtB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEzC,MAAM,MAAM,mBAAmB,CAAC,GAAG,GAAG,OAAO,IACzC,MAAM,GACN,SAAS,GACT,IAAI,GACJ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAEvG,MAAM,MAAM,eAAe,CAAC,GAAG,GAAG,OAAO,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;AAErG,MAAM,MAAM,sBAAsB,CAAC,GAAG,GAAG,OAAO,IAAI,CAClD,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe,CAAC,GAAG,GAAG,OAAO;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"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"}
|
package/dist/style.css
CHANGED
|
@@ -790,16 +790,26 @@
|
|
|
790
790
|
white-space: nowrap;
|
|
791
791
|
}
|
|
792
792
|
|
|
793
|
-
.suu-table th[data-align='center'],
|
|
794
|
-
.suu-table td[data-align='center'] {
|
|
793
|
+
.suu-table th[data-horizontal-align='center'],
|
|
794
|
+
.suu-table td[data-horizontal-align='center'] {
|
|
795
795
|
text-align: center;
|
|
796
796
|
}
|
|
797
797
|
|
|
798
|
-
.suu-table th[data-align='right'],
|
|
799
|
-
.suu-table td[data-align='right'] {
|
|
798
|
+
.suu-table th[data-horizontal-align='right'],
|
|
799
|
+
.suu-table td[data-horizontal-align='right'] {
|
|
800
800
|
text-align: right;
|
|
801
801
|
}
|
|
802
802
|
|
|
803
|
+
.suu-table th[data-vertical-align='middle'],
|
|
804
|
+
.suu-table td[data-vertical-align='middle'] {
|
|
805
|
+
vertical-align: middle;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
.suu-table th[data-vertical-align='bottom'],
|
|
809
|
+
.suu-table td[data-vertical-align='bottom'] {
|
|
810
|
+
vertical-align: bottom;
|
|
811
|
+
}
|
|
812
|
+
|
|
803
813
|
.suu-table thead th {
|
|
804
814
|
background: var(--suu-color-surface);
|
|
805
815
|
color: var(--suu-color-text);
|
|
@@ -869,6 +879,14 @@
|
|
|
869
879
|
text-align: inherit;
|
|
870
880
|
}
|
|
871
881
|
|
|
882
|
+
.suu-table th[data-horizontal-align='center'] .suu-table__sort-button {
|
|
883
|
+
justify-content: center;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
.suu-table th[data-horizontal-align='right'] .suu-table__sort-button {
|
|
887
|
+
justify-content: flex-end;
|
|
888
|
+
}
|
|
889
|
+
|
|
872
890
|
.suu-table__sort-button:focus-visible {
|
|
873
891
|
outline: 2px solid var(--suu-color-accent);
|
|
874
892
|
outline-offset: 2px;
|