@ims360/svelte-ivory 0.4.18 → 0.4.20
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/components/layout/drawer/Drawer.svelte +2 -2
- package/dist/components/layout/drawer/Drawer.svelte.d.ts +1 -1
- package/dist/components/layout/drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/layout/tooltip/Tooltip.svelte +8 -4
- package/dist/components/layout/tooltip/Tooltip.svelte.d.ts.map +1 -1
- package/dist/components/table/Table.svelte +4 -1
- package/dist/components/table/Table.svelte.d.ts +1 -0
- package/dist/components/table/Table.svelte.d.ts.map +1 -1
- package/dist/components/table/VirtualList.svelte +22 -7
- package/dist/components/table/VirtualList.svelte.d.ts +1 -0
- package/dist/components/table/VirtualList.svelte.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/layout/drawer/Drawer.svelte +2 -2
- package/src/lib/components/layout/tooltip/Tooltip.svelte +8 -4
- package/src/lib/components/table/Table.svelte +4 -1
- package/src/lib/components/table/VirtualList.svelte +22 -7
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export type DrawerProps = {
|
|
11
11
|
class?: string;
|
|
12
12
|
title?: string | Snippet;
|
|
13
|
-
children
|
|
13
|
+
children?: Snippet;
|
|
14
14
|
placement?: DrawerPlacement;
|
|
15
15
|
closeOnOutsideClick?: boolean;
|
|
16
16
|
/** Overwrites entire content of the drawer */
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<X class="h-full w-auto transition-[stroke-width] group-hover:stroke-3" />
|
|
77
77
|
</button>
|
|
78
78
|
</div>
|
|
79
|
-
{@render children()}
|
|
79
|
+
{@render children?.()}
|
|
80
80
|
{/if}
|
|
81
81
|
</div>
|
|
82
82
|
</Dialog>
|
|
@@ -3,7 +3,7 @@ export type DrawerPlacement = 'left' | 'right';
|
|
|
3
3
|
export type DrawerProps = {
|
|
4
4
|
class?: string;
|
|
5
5
|
title?: string | Snippet;
|
|
6
|
-
children
|
|
6
|
+
children?: Snippet;
|
|
7
7
|
placement?: DrawerPlacement;
|
|
8
8
|
closeOnOutsideClick?: boolean;
|
|
9
9
|
/** Overwrites entire content of the drawer */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/drawer/Drawer.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/drawer/Drawer.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA8DN,QAAA,MAAM,MAAM;;;;;MAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
let popover = $state<Popover>();
|
|
45
45
|
|
|
46
46
|
let currentTimeout: number;
|
|
47
|
-
function
|
|
47
|
+
function onpointerenter(e: PointerEvent) {
|
|
48
|
+
if (e.pointerType === 'touch') return;
|
|
49
|
+
|
|
48
50
|
clearTimeout(currentTimeout);
|
|
49
51
|
if (timeout === 0) {
|
|
50
52
|
popover?.open();
|
|
@@ -55,7 +57,9 @@
|
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
function
|
|
60
|
+
function onpointerleave(e: PointerEvent) {
|
|
61
|
+
if (e.pointerType === 'touch') return;
|
|
62
|
+
|
|
59
63
|
clearTimeout(currentTimeout);
|
|
60
64
|
popover?.close();
|
|
61
65
|
}
|
|
@@ -71,8 +75,8 @@
|
|
|
71
75
|
{...rest}
|
|
72
76
|
{href}
|
|
73
77
|
bind:this={target}
|
|
74
|
-
{
|
|
75
|
-
{
|
|
78
|
+
{onpointerenter}
|
|
79
|
+
{onpointerleave}
|
|
76
80
|
>
|
|
77
81
|
{@render children?.()}
|
|
78
82
|
</svelte:element>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tooltip/Tooltip.svelte.ts"],"names":[],"mappings":"AAGI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"Tooltip.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tooltip/Tooltip.svelte.ts"],"names":[],"mappings":"AAGI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAuDL,kEAAkE;AAClE,QAAA,MAAM,OAAO,kDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
onclick?: (row: T) => void;
|
|
20
20
|
href?: (row: T) => string | undefined;
|
|
21
21
|
rowHeight?: number;
|
|
22
|
+
virtualized?: boolean;
|
|
22
23
|
/** Renders the rows */
|
|
23
24
|
children?: Snippet<[{ row: T; nestingLevel?: number; index: number }]>;
|
|
24
25
|
rowClass?: ClassValue;
|
|
@@ -75,7 +76,8 @@
|
|
|
75
76
|
nestingInset = 4,
|
|
76
77
|
b_columns: externalColumns = $bindable(),
|
|
77
78
|
b_scrollTop = $bindable(),
|
|
78
|
-
search
|
|
79
|
+
search,
|
|
80
|
+
virtualized = true
|
|
79
81
|
}: TableProps<T> = $props();
|
|
80
82
|
|
|
81
83
|
let columns = $state<ColumnController[]>(externalColumns ?? []);
|
|
@@ -207,6 +209,7 @@
|
|
|
207
209
|
)}
|
|
208
210
|
rowClass={merge('pl-2 pr-4', theme.current.table?.row?.class, rowClass)}
|
|
209
211
|
{rowHeight}
|
|
212
|
+
{virtualized}
|
|
210
213
|
>
|
|
211
214
|
{#snippet header()}
|
|
212
215
|
<div
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"AAMI,OAAO,EAAmC,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKzD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;KAChC,CAAC;IACF;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,IAAI;IAC9C,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,gBAAgB,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5D,CAAC;AAMF,wBAAgB,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAExE;AAIH,iBAAS,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
rowHeight: number;
|
|
13
13
|
overscan?: number;
|
|
14
14
|
rowClass?: ClassValue;
|
|
15
|
+
virtualized?: boolean;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
let {
|
|
@@ -22,7 +23,8 @@
|
|
|
22
23
|
b_scrollTop = $bindable(),
|
|
23
24
|
rowHeight,
|
|
24
25
|
overscan = 2,
|
|
25
|
-
rowClass
|
|
26
|
+
rowClass,
|
|
27
|
+
virtualized = true
|
|
26
28
|
}: Props<T> = $props();
|
|
27
29
|
|
|
28
30
|
const finalRowClass = $derived(
|
|
@@ -49,11 +51,18 @@
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
const start = $derived
|
|
54
|
+
const start = $derived.by(() => {
|
|
55
|
+
if (!virtualized) return 0;
|
|
56
|
+
return Math.max(0, Math.floor(scroll_top / rowHeight) - overscan);
|
|
57
|
+
});
|
|
53
58
|
|
|
54
|
-
const end = $derived(
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
const end = $derived.by(() => {
|
|
60
|
+
if (!virtualized) return data.length;
|
|
61
|
+
return Math.min(
|
|
62
|
+
data.length,
|
|
63
|
+
Math.ceil((scroll_top + viewport_height) / rowHeight) + overscan
|
|
64
|
+
);
|
|
65
|
+
});
|
|
57
66
|
|
|
58
67
|
const visible = $derived(
|
|
59
68
|
data.slice(start, end).map((data, i) => {
|
|
@@ -61,8 +70,14 @@
|
|
|
61
70
|
})
|
|
62
71
|
);
|
|
63
72
|
|
|
64
|
-
const top = $derived(
|
|
65
|
-
|
|
73
|
+
const top = $derived.by(() => {
|
|
74
|
+
if (!virtualized) return 0;
|
|
75
|
+
return start * rowHeight;
|
|
76
|
+
});
|
|
77
|
+
const bottom = $derived.by(() => {
|
|
78
|
+
if (!virtualized) return 0;
|
|
79
|
+
return (data.length - end) * rowHeight;
|
|
80
|
+
});
|
|
66
81
|
|
|
67
82
|
async function onscroll() {
|
|
68
83
|
if (!viewport) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9C,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAAC,iBAAS,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;
|
|
1
|
+
{"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9C,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAAC,iBAAS,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;WA6HpB,KAAK,CAAC,CAAC,CAAC;aAAwB;QAAE,QAAQ,SA/F1C,MAAM,SAAS,MAAM,UA+FsC;KAAE;;;;EAA0E;AACpK,cAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC5C,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;yBArGkB,MAAM,SAAS,MAAM;;CAsGjD;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACnZ,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClJ,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,WAAW,EAAE,qBAAmC,CAAC;AACrC,KAAK,WAAW,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,eAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export type DrawerProps = {
|
|
11
11
|
class?: string;
|
|
12
12
|
title?: string | Snippet;
|
|
13
|
-
children
|
|
13
|
+
children?: Snippet;
|
|
14
14
|
placement?: DrawerPlacement;
|
|
15
15
|
closeOnOutsideClick?: boolean;
|
|
16
16
|
/** Overwrites entire content of the drawer */
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<X class="h-full w-auto transition-[stroke-width] group-hover:stroke-3" />
|
|
77
77
|
</button>
|
|
78
78
|
</div>
|
|
79
|
-
{@render children()}
|
|
79
|
+
{@render children?.()}
|
|
80
80
|
{/if}
|
|
81
81
|
</div>
|
|
82
82
|
</Dialog>
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
let popover = $state<Popover>();
|
|
45
45
|
|
|
46
46
|
let currentTimeout: number;
|
|
47
|
-
function
|
|
47
|
+
function onpointerenter(e: PointerEvent) {
|
|
48
|
+
if (e.pointerType === 'touch') return;
|
|
49
|
+
|
|
48
50
|
clearTimeout(currentTimeout);
|
|
49
51
|
if (timeout === 0) {
|
|
50
52
|
popover?.open();
|
|
@@ -55,7 +57,9 @@
|
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
function
|
|
60
|
+
function onpointerleave(e: PointerEvent) {
|
|
61
|
+
if (e.pointerType === 'touch') return;
|
|
62
|
+
|
|
59
63
|
clearTimeout(currentTimeout);
|
|
60
64
|
popover?.close();
|
|
61
65
|
}
|
|
@@ -71,8 +75,8 @@
|
|
|
71
75
|
{...rest}
|
|
72
76
|
{href}
|
|
73
77
|
bind:this={target}
|
|
74
|
-
{
|
|
75
|
-
{
|
|
78
|
+
{onpointerenter}
|
|
79
|
+
{onpointerleave}
|
|
76
80
|
>
|
|
77
81
|
{@render children?.()}
|
|
78
82
|
</svelte:element>
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
onclick?: (row: T) => void;
|
|
20
20
|
href?: (row: T) => string | undefined;
|
|
21
21
|
rowHeight?: number;
|
|
22
|
+
virtualized?: boolean;
|
|
22
23
|
/** Renders the rows */
|
|
23
24
|
children?: Snippet<[{ row: T; nestingLevel?: number; index: number }]>;
|
|
24
25
|
rowClass?: ClassValue;
|
|
@@ -75,7 +76,8 @@
|
|
|
75
76
|
nestingInset = 4,
|
|
76
77
|
b_columns: externalColumns = $bindable(),
|
|
77
78
|
b_scrollTop = $bindable(),
|
|
78
|
-
search
|
|
79
|
+
search,
|
|
80
|
+
virtualized = true
|
|
79
81
|
}: TableProps<T> = $props();
|
|
80
82
|
|
|
81
83
|
let columns = $state<ColumnController[]>(externalColumns ?? []);
|
|
@@ -207,6 +209,7 @@
|
|
|
207
209
|
)}
|
|
208
210
|
rowClass={merge('pl-2 pr-4', theme.current.table?.row?.class, rowClass)}
|
|
209
211
|
{rowHeight}
|
|
212
|
+
{virtualized}
|
|
210
213
|
>
|
|
211
214
|
{#snippet header()}
|
|
212
215
|
<div
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
rowHeight: number;
|
|
13
13
|
overscan?: number;
|
|
14
14
|
rowClass?: ClassValue;
|
|
15
|
+
virtualized?: boolean;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
let {
|
|
@@ -22,7 +23,8 @@
|
|
|
22
23
|
b_scrollTop = $bindable(),
|
|
23
24
|
rowHeight,
|
|
24
25
|
overscan = 2,
|
|
25
|
-
rowClass
|
|
26
|
+
rowClass,
|
|
27
|
+
virtualized = true
|
|
26
28
|
}: Props<T> = $props();
|
|
27
29
|
|
|
28
30
|
const finalRowClass = $derived(
|
|
@@ -49,11 +51,18 @@
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
const start = $derived
|
|
54
|
+
const start = $derived.by(() => {
|
|
55
|
+
if (!virtualized) return 0;
|
|
56
|
+
return Math.max(0, Math.floor(scroll_top / rowHeight) - overscan);
|
|
57
|
+
});
|
|
53
58
|
|
|
54
|
-
const end = $derived(
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
const end = $derived.by(() => {
|
|
60
|
+
if (!virtualized) return data.length;
|
|
61
|
+
return Math.min(
|
|
62
|
+
data.length,
|
|
63
|
+
Math.ceil((scroll_top + viewport_height) / rowHeight) + overscan
|
|
64
|
+
);
|
|
65
|
+
});
|
|
57
66
|
|
|
58
67
|
const visible = $derived(
|
|
59
68
|
data.slice(start, end).map((data, i) => {
|
|
@@ -61,8 +70,14 @@
|
|
|
61
70
|
})
|
|
62
71
|
);
|
|
63
72
|
|
|
64
|
-
const top = $derived(
|
|
65
|
-
|
|
73
|
+
const top = $derived.by(() => {
|
|
74
|
+
if (!virtualized) return 0;
|
|
75
|
+
return start * rowHeight;
|
|
76
|
+
});
|
|
77
|
+
const bottom = $derived.by(() => {
|
|
78
|
+
if (!virtualized) return 0;
|
|
79
|
+
return (data.length - end) * rowHeight;
|
|
80
|
+
});
|
|
66
81
|
|
|
67
82
|
async function onscroll() {
|
|
68
83
|
if (!viewport) {
|