@ims360/svelte-ivory 0.0.52 → 0.0.54
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/table/Table.svelte +12 -0
- package/dist/components/table/Table.svelte.d.ts +7 -2
- package/dist/components/table/Table.svelte.d.ts.map +1 -1
- package/dist/components/table/VirtualList.svelte +13 -0
- package/dist/components/table/VirtualList.svelte.d.ts +6 -2
- package/dist/components/table/VirtualList.svelte.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/table/Table.svelte +12 -0
- package/src/lib/components/table/VirtualList.svelte +13 -0
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
readonly toggleExpansion: (id: string) => void;
|
|
49
49
|
readonly nestingInset: number;
|
|
50
50
|
readonly rowHeight: number;
|
|
51
|
+
readonly scrollTo: (top?: number, left?: number) => void;
|
|
51
52
|
};
|
|
52
53
|
|
|
53
54
|
function setTableContext<T extends TableRow<T>>(context: TableContext<T>) {
|
|
@@ -88,6 +89,7 @@
|
|
|
88
89
|
else expanded.add(id);
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
// eslint-disable-next-line svelte/no-unnecessary-state-wrap
|
|
91
93
|
let hidden = $state(new SvelteSet<string>());
|
|
92
94
|
const searchResult = $derived.by(() => {
|
|
93
95
|
if (!search)
|
|
@@ -174,11 +176,21 @@
|
|
|
174
176
|
},
|
|
175
177
|
get rowHeight() {
|
|
176
178
|
return rowHeight;
|
|
179
|
+
},
|
|
180
|
+
scrollTo(top?: number, left?: number) {
|
|
181
|
+
list?.scrollTo(top, left);
|
|
177
182
|
}
|
|
178
183
|
});
|
|
184
|
+
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
let list = $state<VirtualList<any>>();
|
|
187
|
+
export function scrollTo(top?: number, left?: number) {
|
|
188
|
+
list?.scrollTo(top, left);
|
|
189
|
+
}
|
|
179
190
|
</script>
|
|
180
191
|
|
|
181
192
|
<VirtualList
|
|
193
|
+
bind:this={list}
|
|
182
194
|
data={results.entries}
|
|
183
195
|
class={twMerge(clsx(['flex flex-col overflow-hidden border-transparent', clazz]))}
|
|
184
196
|
bind:b_scrollTop
|
|
@@ -42,11 +42,14 @@ export type TableContext<T extends TableRow<T>> = {
|
|
|
42
42
|
readonly toggleExpansion: (id: string) => void;
|
|
43
43
|
readonly nestingInset: number;
|
|
44
44
|
readonly rowHeight: number;
|
|
45
|
+
readonly scrollTo: (top?: number, left?: number) => void;
|
|
45
46
|
};
|
|
46
47
|
export declare function getTableContext<T extends TableRow<T>>(): TableContext<T>;
|
|
47
48
|
declare function $$render<T extends TableRow<T>>(): {
|
|
48
49
|
props: TableProps<T>;
|
|
49
|
-
exports: {
|
|
50
|
+
exports: {
|
|
51
|
+
scrollTo: (top?: number, left?: number) => void;
|
|
52
|
+
};
|
|
50
53
|
bindings: "b_scrollTop" | "b_columns";
|
|
51
54
|
slots: {};
|
|
52
55
|
events: {};
|
|
@@ -56,7 +59,9 @@ declare class __sveltets_Render<T extends TableRow<T>> {
|
|
|
56
59
|
events(): ReturnType<typeof $$render<T>>['events'];
|
|
57
60
|
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
58
61
|
bindings(): "b_scrollTop" | "b_columns";
|
|
59
|
-
exports(): {
|
|
62
|
+
exports(): {
|
|
63
|
+
scrollTo: (top?: number, left?: number) => void;
|
|
64
|
+
};
|
|
60
65
|
}
|
|
61
66
|
interface $$IsomorphicComponent {
|
|
62
67
|
new <T extends TableRow<T>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"AAKI,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;AAG9C,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,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,CAAC;IACpC,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;
|
|
1
|
+
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,19 @@
|
|
|
36
36
|
let viewport = $state<HTMLElement>();
|
|
37
37
|
let viewport_height = $state(0);
|
|
38
38
|
|
|
39
|
+
export function scrollTo(top?: number, left?: number) {
|
|
40
|
+
if (!viewport) return;
|
|
41
|
+
if (top !== undefined) {
|
|
42
|
+
scroll_top = top;
|
|
43
|
+
viewport.scrollTop = top;
|
|
44
|
+
b_scrollTop = top;
|
|
45
|
+
}
|
|
46
|
+
if (left !== undefined) {
|
|
47
|
+
scroll_left = left;
|
|
48
|
+
viewport.scrollLeft = left;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
39
52
|
const start = $derived(Math.max(0, Math.floor(scroll_top / rowHeight) - overscan));
|
|
40
53
|
|
|
41
54
|
const end = $derived(
|
|
@@ -18,7 +18,9 @@ declare function $$render<T extends {
|
|
|
18
18
|
id: string;
|
|
19
19
|
}>(): {
|
|
20
20
|
props: Props<T>;
|
|
21
|
-
exports: {
|
|
21
|
+
exports: {
|
|
22
|
+
scrollTo: (top?: number, left?: number) => void;
|
|
23
|
+
};
|
|
22
24
|
bindings: "b_scrollTop";
|
|
23
25
|
slots: {};
|
|
24
26
|
events: {};
|
|
@@ -30,7 +32,9 @@ declare class __sveltets_Render<T extends {
|
|
|
30
32
|
events(): ReturnType<typeof $$render<T>>['events'];
|
|
31
33
|
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
32
34
|
bindings(): "b_scrollTop";
|
|
33
|
-
exports(): {
|
|
35
|
+
exports(): {
|
|
36
|
+
scrollTo: (top?: number, left?: number) => void;
|
|
37
|
+
};
|
|
34
38
|
}
|
|
35
39
|
interface $$IsomorphicComponent {
|
|
36
40
|
new <T extends {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI9C,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,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI9C,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;WAgGpB,KAAK,CAAC,CAAC,CAAC;aAAwB;QAAE,QAAQ,SAnE1C,MAAM,SAAS,MAAM,UAmEsC;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;yBAzEkB,MAAM,SAAS,MAAM;;CA0EjD;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
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
readonly toggleExpansion: (id: string) => void;
|
|
49
49
|
readonly nestingInset: number;
|
|
50
50
|
readonly rowHeight: number;
|
|
51
|
+
readonly scrollTo: (top?: number, left?: number) => void;
|
|
51
52
|
};
|
|
52
53
|
|
|
53
54
|
function setTableContext<T extends TableRow<T>>(context: TableContext<T>) {
|
|
@@ -88,6 +89,7 @@
|
|
|
88
89
|
else expanded.add(id);
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
// eslint-disable-next-line svelte/no-unnecessary-state-wrap
|
|
91
93
|
let hidden = $state(new SvelteSet<string>());
|
|
92
94
|
const searchResult = $derived.by(() => {
|
|
93
95
|
if (!search)
|
|
@@ -174,11 +176,21 @@
|
|
|
174
176
|
},
|
|
175
177
|
get rowHeight() {
|
|
176
178
|
return rowHeight;
|
|
179
|
+
},
|
|
180
|
+
scrollTo(top?: number, left?: number) {
|
|
181
|
+
list?.scrollTo(top, left);
|
|
177
182
|
}
|
|
178
183
|
});
|
|
184
|
+
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
let list = $state<VirtualList<any>>();
|
|
187
|
+
export function scrollTo(top?: number, left?: number) {
|
|
188
|
+
list?.scrollTo(top, left);
|
|
189
|
+
}
|
|
179
190
|
</script>
|
|
180
191
|
|
|
181
192
|
<VirtualList
|
|
193
|
+
bind:this={list}
|
|
182
194
|
data={results.entries}
|
|
183
195
|
class={twMerge(clsx(['flex flex-col overflow-hidden border-transparent', clazz]))}
|
|
184
196
|
bind:b_scrollTop
|
|
@@ -36,6 +36,19 @@
|
|
|
36
36
|
let viewport = $state<HTMLElement>();
|
|
37
37
|
let viewport_height = $state(0);
|
|
38
38
|
|
|
39
|
+
export function scrollTo(top?: number, left?: number) {
|
|
40
|
+
if (!viewport) return;
|
|
41
|
+
if (top !== undefined) {
|
|
42
|
+
scroll_top = top;
|
|
43
|
+
viewport.scrollTop = top;
|
|
44
|
+
b_scrollTop = top;
|
|
45
|
+
}
|
|
46
|
+
if (left !== undefined) {
|
|
47
|
+
scroll_left = left;
|
|
48
|
+
viewport.scrollLeft = left;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
39
52
|
const start = $derived(Math.max(0, Math.floor(scroll_top / rowHeight) - overscan));
|
|
40
53
|
|
|
41
54
|
const end = $derived(
|