@lavalogic/scoria 0.0.40 → 0.0.42
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/Body/Rows/Columns/TableQuerySelect.svelte +17 -2
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +9 -1
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +1 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +4 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +4 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +2 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +2 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<script lang="ts" module>
|
|
4
4
|
import QuerySelect from '../../../../QuerySelect.svelte';
|
|
5
|
+
import type { Column } from '../../../Types/Columns/Column.js';
|
|
5
6
|
import type { QueryDef } from '../../../Types/Columns/Definitions/Accessors/QueryDef.svelte.js';
|
|
6
7
|
import type { TableCell } from '../../../Types/Columns/TableCell.js';
|
|
7
8
|
import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
|
|
@@ -10,8 +11,17 @@
|
|
|
10
11
|
import type { SelectOption } from '../../../../../Types/Internal/SelectOption.js';
|
|
11
12
|
import { Validity } from '../../../../../Types/Internal/Validity.js';
|
|
12
13
|
import { getContext, tick, untrack } from 'svelte';
|
|
14
|
+
|
|
15
|
+
export interface TableQueryColumn<T extends object> extends Column<T> {
|
|
16
|
+
columnDef: QueryDef<T>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface TableQueryCell<T extends object> extends TableCell<T> {
|
|
20
|
+
column: TableQueryColumn<T>;
|
|
21
|
+
}
|
|
22
|
+
|
|
13
23
|
export interface TableQuerySelectProps<T extends object> {
|
|
14
|
-
cell:
|
|
24
|
+
cell: TableQueryCell<T>;
|
|
15
25
|
}
|
|
16
26
|
</script>
|
|
17
27
|
|
|
@@ -22,6 +32,10 @@
|
|
|
22
32
|
(cell.getValue() ?? null) as SelectOption<unknown> | Promise<SelectOption<unknown>> | null
|
|
23
33
|
);
|
|
24
34
|
|
|
35
|
+
const visibleValue = $derived(
|
|
36
|
+
cell.column.columnDef.getDisplayValue(cell.row.original, cell.row.originalIndex)
|
|
37
|
+
);
|
|
38
|
+
|
|
25
39
|
let tdref = $state<HTMLTableCellElement | undefined>();
|
|
26
40
|
|
|
27
41
|
const columnDef: QueryDef<T> = $derived(cell.column.columnDef) as unknown as QueryDef<T>; // TODO stabilise and remove `as unknown`
|
|
@@ -211,6 +225,7 @@
|
|
|
211
225
|
focusOnLoad
|
|
212
226
|
name={cell.column.columnDef.id}
|
|
213
227
|
valueProp="value"
|
|
228
|
+
clearable={cell.column.columnDef.clearable ?? true}
|
|
214
229
|
labelProp="label"
|
|
215
230
|
valueAsObject={columnDef.valueAsObject}
|
|
216
231
|
{value}
|
|
@@ -269,7 +284,7 @@
|
|
|
269
284
|
}
|
|
270
285
|
}}
|
|
271
286
|
>
|
|
272
|
-
{#await
|
|
287
|
+
{#await visibleValue}
|
|
273
288
|
loading…
|
|
274
289
|
{:then v}
|
|
275
290
|
{v}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import type { Column } from '../../../Types/Columns/Column.js';
|
|
2
|
+
import type { QueryDef } from '../../../Types/Columns/Definitions/Accessors/QueryDef.svelte.js';
|
|
1
3
|
import type { TableCell } from '../../../Types/Columns/TableCell.js';
|
|
4
|
+
export interface TableQueryColumn<T extends object> extends Column<T> {
|
|
5
|
+
columnDef: QueryDef<T>;
|
|
6
|
+
}
|
|
7
|
+
export interface TableQueryCell<T extends object> extends TableCell<T> {
|
|
8
|
+
column: TableQueryColumn<T>;
|
|
9
|
+
}
|
|
2
10
|
export interface TableQuerySelectProps<T extends object> {
|
|
3
|
-
cell:
|
|
11
|
+
cell: TableQueryCell<T>;
|
|
4
12
|
}
|
|
5
13
|
declare function $$render<T extends object>(): {
|
|
6
14
|
props: TableQuerySelectProps<T>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
3
|
<script lang="ts" module>
|
|
4
|
-
import { dev } from '$app/environment';
|
|
5
4
|
import SingleSelect from '../../../../SingleSelect.svelte';
|
|
6
5
|
import type { Column } from '../../../Types/Columns/Column.js';
|
|
7
6
|
import type { SelectDef } from '../../../Types/Columns/Definitions/Accessors/SelectDef.svelte.js';
|
|
@@ -209,7 +208,7 @@
|
|
|
209
208
|
value={selectValue}
|
|
210
209
|
{options}
|
|
211
210
|
width="100%"
|
|
212
|
-
clearable={
|
|
211
|
+
clearable={cell.column.columnDef.clearable}
|
|
213
212
|
onfocus={addKeydownEvent}
|
|
214
213
|
valueAsObject={false}
|
|
215
214
|
onchange={(newValue: SelectOption<unknown> | null) => {
|
|
@@ -5,10 +5,14 @@ import { AccessorDef } from './AccessorDef.svelte.js';
|
|
|
5
5
|
export interface QueryDefProps<T extends object> extends ColumnDefProps<T> {
|
|
6
6
|
valueAsObject: boolean;
|
|
7
7
|
query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
8
|
+
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
9
|
+
clearable?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export declare class QueryDef<T extends object> extends AccessorDef<T, StringFilterValueType> {
|
|
10
12
|
readonly accessorType: "Query";
|
|
11
13
|
constructor(props: QueryDefProps<T>);
|
|
12
14
|
readonly valueAsObject: boolean;
|
|
15
|
+
readonly getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
13
16
|
readonly query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
17
|
+
readonly clearable: boolean;
|
|
14
18
|
}
|
|
@@ -6,7 +6,11 @@ export class QueryDef extends AccessorDef {
|
|
|
6
6
|
super(props);
|
|
7
7
|
this.valueAsObject = $derived(props.valueAsObject);
|
|
8
8
|
this.query = $derived(props.query);
|
|
9
|
+
this.getDisplayValue = $derived(props.getDisplayValue);
|
|
10
|
+
this.clearable = $derived(props.clearable ?? true);
|
|
9
11
|
}
|
|
10
12
|
valueAsObject;
|
|
13
|
+
getDisplayValue;
|
|
11
14
|
query;
|
|
15
|
+
clearable;
|
|
12
16
|
}
|
|
@@ -7,6 +7,7 @@ export interface SelectDefProps<T extends object> extends ColumnDefProps<T> {
|
|
|
7
7
|
sortingFn?: (a: T, b: T) => 1 | -1 | 0;
|
|
8
8
|
getSpecificOptions?: (item?: T, index?: number) => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
|
|
9
9
|
optional?: boolean;
|
|
10
|
+
clearable?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare class SelectDef<T extends object> extends AccessorDef<T, T> {
|
|
12
13
|
constructor(props: SelectDefProps<T>);
|
|
@@ -14,6 +15,7 @@ export declare class SelectDef<T extends object> extends AccessorDef<T, T> {
|
|
|
14
15
|
readonly sortingFn?: (a: T, b: T) => 1 | -1 | 0;
|
|
15
16
|
readonly getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
16
17
|
readonly optional: boolean;
|
|
18
|
+
readonly clearable: boolean;
|
|
17
19
|
readonly getSpecificOptions?: (item?: T, index?: number) => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
|
|
18
20
|
readonly getOptions: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
|
|
19
21
|
}
|
|
@@ -7,12 +7,14 @@ export class SelectDef extends AccessorDef {
|
|
|
7
7
|
this.getOptions = $derived(props.getOptions);
|
|
8
8
|
this.sortingFn = $derived(props.sortingFn);
|
|
9
9
|
this.optional = $derived(props.optional ?? false);
|
|
10
|
+
this.clearable = $derived(props.clearable ?? true);
|
|
10
11
|
this.getDisplayValue = $derived(props.getDisplayValue);
|
|
11
12
|
}
|
|
12
13
|
accessorType = AccessorType.Select;
|
|
13
14
|
sortingFn;
|
|
14
15
|
getDisplayValue;
|
|
15
16
|
optional;
|
|
17
|
+
clearable;
|
|
16
18
|
getSpecificOptions;
|
|
17
19
|
getOptions;
|
|
18
20
|
}
|