@lavalogic/scoria 0.0.36 → 0.0.38

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.
@@ -10,6 +10,7 @@
10
10
  import type { GridSingleSelectItemAsObject } from '../Types/Internal/GridSingleSelectItemAsObject.js';
11
11
  import type { GridSingleSelectItemAsPrimitive } from '../Types/Internal/GridSingleSelectItemAsPrimitive.js';
12
12
  import type { GridTextItem } from '../Types/Internal/GridTextItem.js';
13
+ import type { ValueProp } from '../Types/Internal/Misc.js';
13
14
  import MultiSelect from './MultiSelect.svelte';
14
15
  import SingleSelect from './SingleSelect.svelte';
15
16
  import TextInput from './TextInput.svelte';
@@ -32,45 +33,41 @@
32
33
 
33
34
  function isSelect(
34
35
  item: GridItem<V, VP>
35
- ): item is V extends object
36
- ? VP extends string & keyof V
37
- ? GridSelectItem<V, VP>
38
- : never
39
- : never {
36
+ ): item is V extends object ? (VP extends ValueProp<V> ? GridSelectItem<V, VP> : never) : never {
40
37
  return item.type == 'select';
41
38
  }
42
39
 
43
- function isMultiSelect<A extends object, B extends keyof A & string>(
40
+ function isMultiSelect<A extends object, B extends ValueProp<A>>(
44
41
  item: GridSelectItem<A, B>
45
42
  ): item is GridMultiSelectItem<A, B> {
46
43
  return 'multi' in item && item.multi === true;
47
44
  }
48
45
 
49
- function isMultiSelectPrimitive<A extends object, B extends keyof A & string>(
46
+ function isMultiSelectPrimitive<A extends object, B extends ValueProp<A>>(
50
47
  item: GridMultiSelectItem<A, B>
51
48
  ): item is GridMultiSelectItemAsPrimitive<A, B> {
52
49
  return 'valueAsObject' in item && item.valueAsObject === false;
53
50
  }
54
51
 
55
- function isMultiSelectObject<A extends object, B extends keyof A & string>(
52
+ function isMultiSelectObject<A extends object, B extends ValueProp<A>>(
56
53
  item: GridMultiSelectItem<A, B>
57
54
  ): item is GridMultiSelectItemAsObject<A, B> {
58
55
  return 'valueAsObject' in item && item.valueAsObject === true;
59
56
  }
60
57
 
61
- function isSingleSelect<A extends object, B extends keyof A & string>(
58
+ function isSingleSelect<A extends object, B extends ValueProp<A>>(
62
59
  item: GridSelectItem<A, B>
63
60
  ): item is GridSingleSelectItem<A, B> {
64
61
  return !('multi' in item) || item.multi === false;
65
62
  }
66
63
 
67
- function isSingleSelectPrimitive<A extends object, B extends keyof A & string>(
64
+ function isSingleSelectPrimitive<A extends object, B extends ValueProp<A>>(
68
65
  item: GridSingleSelectItem<A, B>
69
66
  ): item is GridSingleSelectItemAsPrimitive<A, B> {
70
67
  return 'valueAsObject' in item && item.valueAsObject === false;
71
68
  }
72
69
 
73
- function isSingleSelectObject<A extends object, B extends keyof A & string>(
70
+ function isSingleSelectObject<A extends object, B extends ValueProp<A>>(
74
71
  item: GridSingleSelectItem<A, B>
75
72
  ): item is GridSingleSelectItemAsObject<A, B> {
76
73
  return 'valueAsObject' in item && item.valueAsObject === true;
@@ -129,7 +126,7 @@
129
126
  <SingleSelect
130
127
  {options}
131
128
  name={item.name}
132
- valueAsObject={item.valueAsObject}
129
+ valueAsObject={true}
133
130
  labelProp={item.labelProp}
134
131
  valueProp={item.valueProp}
135
132
  value={item.value}
@@ -145,7 +142,7 @@
145
142
  <SingleSelect
146
143
  {options}
147
144
  name={item.name}
148
- valueAsObject={item.valueAsObject}
145
+ valueAsObject={false}
149
146
  labelProp={item.labelProp}
150
147
  valueProp={item.valueProp}
151
148
  value={item.value}
@@ -96,7 +96,7 @@
96
96
  let valueMax: number | null = $state(null);
97
97
 
98
98
  let selectedOptions: Array<SelectOption<string | number>> = $state([]);
99
- let lastQueryOptions: Array<SelectOption<unknown>> = $state([]);
99
+ let lastQueryOptions: Array<SelectOption<string | number>> = $state([]);
100
100
 
101
101
  const inputId = $derived(`${tableContext.tableName}-cell-quicksearch-${column.id}`);
102
102
 
@@ -290,7 +290,7 @@
290
290
  name={customFilter?.objectName ?? 'Item'}
291
291
  valueProp="value"
292
292
  labelProp="label"
293
- selectedValue={value}
293
+ {value}
294
294
  query={customFilter!.query!}
295
295
  bind:options={lastQueryOptions}
296
296
  onchange={(newValue) => {
@@ -18,7 +18,9 @@
18
18
  <script lang="ts" generics="T extends object,">
19
19
  const { cell }: TableQuerySelectProps<T> = $props();
20
20
 
21
- const value = $derived((cell.getValue() ?? null) as SelectOption<unknown> | null);
21
+ const value = $derived(
22
+ (cell.getValue() ?? null) as SelectOption<unknown> | Promise<SelectOption<unknown>> | null
23
+ );
22
24
 
23
25
  let tdref = $state<HTMLTableCellElement | undefined>();
24
26
 
@@ -210,8 +212,8 @@
210
212
  name={cell.column.columnDef.id}
211
213
  valueProp="value"
212
214
  labelProp="label"
213
- valueAsObject={columnDef.valueAsObject as true}
214
- selectedValue={value}
215
+ valueAsObject={columnDef.valueAsObject}
216
+ {value}
215
217
  query={(v) => columnDef.query(v, cell.row.original, cell.row.originalIndex)}
216
218
  bind:options={lastOptions}
217
219
  onfocus={addKeydownEvent}
@@ -364,7 +364,7 @@
364
364
  name={customFilter?.objectName ?? 'Item'}
365
365
  valueProp="value"
366
366
  labelProp="label"
367
- selectedValue={value}
367
+ {value}
368
368
  query={customFilter!.query!}
369
369
  bind:options={lastQueryOptions}
370
370
  onchange={(newValue) => {
@@ -8,7 +8,7 @@ export interface ExpandDefProps<T extends object, R extends object> extends Colu
8
8
  headerIcon: IconProps['name'];
9
9
  innerTableName: string;
10
10
  innerTableOptions: TableInitOptions<R>;
11
- accessorFn: (item: T, index: number) => R;
11
+ accessorFn: (item: T, index: number) => R[] | Promise<R[]>;
12
12
  }
13
13
  export declare class ExpandDef<T extends object, R extends object = object> extends ColumnDef<T> {
14
14
  readonly columnType: "Expand";
@@ -1,4 +1,5 @@
1
1
  import type { GridNumberItem } from './GridNumberItem.js';
2
2
  import type { GridSelectItem } from './GridSelectItem.js';
3
3
  import type { GridTextItem } from './GridTextItem.js';
4
- export type GridItem<V = unknown, VP = unknown> = GridTextItem | GridNumberItem | (V extends object ? (VP extends string & keyof V ? GridSelectItem<V, VP> : never) : never);
4
+ import type { ValueProp } from './Misc.js';
5
+ export type GridItem<V = unknown, VP = unknown> = GridTextItem | GridNumberItem | (V extends object ? VP extends ValueProp<V> ? VP extends string & keyof V ? GridSelectItem<V, VP> : never : never : never);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lavalogic/scoria",
3
3
  "description": "Svelte components used for the FloWMS Web Frontend",
4
- "version": "0.0.36",
4
+ "version": "0.0.38",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },