@lavalogic/scoria 0.0.35 → 0.0.37

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}
@@ -81,6 +81,18 @@
81
81
  onfocus
82
82
  }: QuerySelectProps<V, VP> = $props();
83
83
 
84
+ export function forceQuery() {
85
+ clearTimeout(timeoutHandler);
86
+
87
+ const input = document.getElementById(inputId);
88
+ const searchValue = (input as HTMLInputElement).value;
89
+
90
+ const currentHandler = (timeoutHandler = setTimeout(() => {
91
+ tryQuery(currentHandler, searchValue);
92
+ }, 500) as unknown as number);
93
+ tryQuery(currentHandler, searchValue);
94
+ }
95
+
84
96
  let ref: Svelecte | undefined = $state();
85
97
  let hasAutoFocused = $state(false);
86
98
  let loadingDiv: HTMLDivElement | undefined = $state();
@@ -29,7 +29,9 @@ export type QuerySelectProps<V extends object, VP extends ValueProp<V>> = QueryS
29
29
  import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
30
30
  declare function $$render<V extends object, VP extends ValueProp<V>>(): {
31
31
  props: QuerySelectProps<V, VP>;
32
- exports: {};
32
+ exports: {
33
+ forceQuery: () => void;
34
+ };
33
35
  bindings: "options";
34
36
  slots: {};
35
37
  events: {};
@@ -39,7 +41,9 @@ declare class __sveltets_Render<V extends object, VP extends ValueProp<V>> {
39
41
  events(): ReturnType<typeof $$render<V, VP>>['events'];
40
42
  slots(): ReturnType<typeof $$render<V, VP>>['slots'];
41
43
  bindings(): "options";
42
- exports(): {};
44
+ exports(): {
45
+ forceQuery: () => void;
46
+ };
43
47
  }
44
48
  interface $$IsomorphicComponent {
45
49
  new <V extends object, VP extends ValueProp<V>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, VP>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, VP>['props']>, ReturnType<__sveltets_Render<V, VP>['events']>, ReturnType<__sveltets_Render<V, VP>['slots']>> & {
@@ -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,7 +212,7 @@
210
212
  name={cell.column.columnDef.id}
211
213
  valueProp="value"
212
214
  labelProp="label"
213
- valueAsObject={columnDef.valueAsObject as true}
215
+ valueAsObject={columnDef.valueAsObject}
214
216
  selectedValue={value}
215
217
  query={(v) => columnDef.query(v, cell.row.original, cell.row.originalIndex)}
216
218
  bind:options={lastOptions}
@@ -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.35",
4
+ "version": "0.0.37",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },