@lavalogic/scoria 0.1.0 → 0.2.1

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.
@@ -2,13 +2,17 @@
2
2
 
3
3
  <script lang="ts" module>
4
4
  import type { GridItem } from '../Types/Internal/GridItem.js';
5
- import type { GridMultiSelectItem } from '../Types/Internal/GridMultiSelectItem.js';
6
- import type { GridMultiSelectItemAsObject } from '../Types/Internal/GridMultiSelectItemAsObject.js';
7
- import type { GridMultiSelectItemAsPrimitive } from '../Types/Internal/GridMultiSelectItemAsPrimitive.js';
5
+ import type {
6
+ GridMultiSelectItem,
7
+ GridMultiSelectItemAsObject,
8
+ GridMultiSelectItemAsPrimitive
9
+ } from '../Types/Internal/GridMultiSelectItem.js';
8
10
  import type { GridSelectItem } from '../Types/Internal/GridSelectItem.js';
9
- import type { GridSingleSelectItem } from '../Types/Internal/GridSingleSelectItem.js';
10
- import type { GridSingleSelectItemAsObject } from '../Types/Internal/GridSingleSelectItemAsObject.js';
11
- import type { GridSingleSelectItemAsPrimitive } from '../Types/Internal/GridSingleSelectItemAsPrimitive.js';
11
+ import type {
12
+ GridSingleSelectItem,
13
+ GridSingleSelectItemAsObject,
14
+ GridSingleSelectItemAsPrimitive
15
+ } from '../Types/Internal/GridSingleSelectItem.js';
12
16
  import type { GridTextItem } from '../Types/Internal/GridTextItem.js';
13
17
  import type { ValueProp } from '../Types/Internal/Misc.js';
14
18
  import MultiSelect from './MultiSelect.svelte';
@@ -28,8 +32,10 @@
28
32
  const textTypes = new Set(['text', 'email', 'tel']);
29
33
  </script>
30
34
 
31
- <script lang="ts" generics="V,VP">
32
- const { item = $bindable(), first, last }: GridInputProps<V, VP> = $props();
35
+ <script lang="ts" generics="V extends object,VP extends ValueProp<V>">
36
+ const { item, first, last }: GridInputProps<V, VP> = $props();
37
+
38
+ let value = $state(isText(item) ? (item.value ?? '') : '');
33
39
 
34
40
  function isSelect(
35
41
  item: GridItem<V, VP>
@@ -81,7 +87,10 @@
81
87
  {#if isText(item)}
82
88
  <TextInput
83
89
  disabled={item.disabled}
84
- bind:value={item.value}
90
+ bind:value
91
+ oninput={() => {
92
+ item.updater(value);
93
+ }}
85
94
  required={item.required}
86
95
  invalid={item.invalid}
87
96
  />
@@ -94,26 +103,26 @@
94
103
  <MultiSelect
95
104
  name={item.name}
96
105
  {options}
97
- valueAsObject={item.valueAsObject}
106
+ valueAsObject={true}
98
107
  labelProp={item.labelProp}
99
108
  valueProp={item.valueProp}
100
109
  selectedValues={item.value}
101
110
  invalid={item.invalid}
102
111
  onchange={(v) => {
103
- item.value = v;
112
+ item.updater(v || null);
104
113
  }}
105
114
  />
106
115
  {:else if isMultiSelectPrimitive(item)}
107
116
  <MultiSelect
108
117
  name={item.name}
109
118
  {options}
110
- valueAsObject={item.valueAsObject}
119
+ valueAsObject={false}
111
120
  labelProp={item.labelProp}
112
121
  valueProp={item.valueProp}
113
122
  selectedValues={item.value}
114
123
  invalid={item.invalid}
115
124
  onchange={(v) => {
116
- item.value = v.map((it) => it[item.valueProp]);
125
+ item.updater(v.map((it) => it[item.valueProp]));
117
126
  }}
118
127
  />
119
128
  {/if}
@@ -135,7 +144,7 @@
135
144
  disabled={item.disabled}
136
145
  invalid={item.invalid}
137
146
  onchange={(v) => {
138
- item.value = v;
147
+ item.updater(v || null);
139
148
  }}
140
149
  />
141
150
  {:else if isSingleSelectPrimitive(item)}
@@ -151,7 +160,7 @@
151
160
  disabled={item.disabled}
152
161
  invalid={item.invalid}
153
162
  onchange={(v) => {
154
- item.value = v?.[item.valueProp] ?? null;
163
+ item.updater(v?.[item.valueProp] ?? null);
155
164
  }}
156
165
  />
157
166
  {/if}
@@ -1,30 +1,31 @@
1
1
  import type { GridItem } from '../Types/Internal/GridItem.js';
2
+ import type { ValueProp } from '../Types/Internal/Misc.js';
2
3
  export interface GridInputProps<V, VP> {
3
4
  item: GridItem<V, VP>;
4
5
  first: boolean;
5
6
  last: boolean;
6
7
  }
7
- declare function $$render<V, VP>(): {
8
+ declare function $$render<V extends object, VP extends ValueProp<V>>(): {
8
9
  props: GridInputProps<V, VP>;
9
10
  exports: {};
10
- bindings: "item";
11
+ bindings: "";
11
12
  slots: {};
12
13
  events: {};
13
14
  };
14
- declare class __sveltets_Render<V, VP> {
15
+ declare class __sveltets_Render<V extends object, VP extends ValueProp<V>> {
15
16
  props(): ReturnType<typeof $$render<V, VP>>['props'];
16
17
  events(): ReturnType<typeof $$render<V, VP>>['events'];
17
18
  slots(): ReturnType<typeof $$render<V, VP>>['slots'];
18
- bindings(): "item";
19
+ bindings(): "";
19
20
  exports(): {};
20
21
  }
21
22
  interface $$IsomorphicComponent {
22
- new <V, VP>(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']>> & {
23
+ 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']>> & {
23
24
  $$bindings?: ReturnType<__sveltets_Render<V, VP>['bindings']>;
24
25
  } & ReturnType<__sveltets_Render<V, VP>['exports']>;
25
- <V, VP>(internal: unknown, props: ReturnType<__sveltets_Render<V, VP>['props']> & {}): ReturnType<__sveltets_Render<V, VP>['exports']>;
26
+ <V extends object, VP extends ValueProp<V>>(internal: unknown, props: ReturnType<__sveltets_Render<V, VP>['props']> & {}): ReturnType<__sveltets_Render<V, VP>['exports']>;
26
27
  z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
27
28
  }
28
29
  declare const GridInput: $$IsomorphicComponent;
29
- type GridInput<V, VP> = InstanceType<typeof GridInput<V, VP>>;
30
+ type GridInput<V extends object, VP extends ValueProp<V>> = InstanceType<typeof GridInput<V, VP>>;
30
31
  export default GridInput;
@@ -9,11 +9,12 @@
9
9
  }
10
10
  </script>
11
11
 
12
- <script lang="ts" generics="V,VP">
12
+ <script lang="ts" generics="V extends object,VP extends ValueProp<V>">
13
13
  import GridInput from './GridInput.svelte';
14
14
  import type { GridItem } from '../Types/Internal/GridItem.js';
15
+ import type { ValueProp } from '../Types/Internal/Misc.js';
15
16
 
16
- const { items = $bindable(), header }: GridInputSetProps<V, VP> = $props();
17
+ const { items, header }: GridInputSetProps<V, VP> = $props();
17
18
 
18
19
  const lastIndex = $derived(items.length - 1);
19
20
  </script>
@@ -23,7 +24,7 @@
23
24
  {@render header()}
24
25
  {/if}
25
26
  {#each items as item, index (item)}
26
- <GridInput bind:item={items[index]} first={index == 0} last={index == lastIndex} />
27
+ <GridInput item={items[index]} first={index == 0} last={index == lastIndex} />
27
28
  {/each}
28
29
  </div>
29
30
 
@@ -4,27 +4,28 @@ export interface GridInputSetProps<V, VP> {
4
4
  header?: Snippet;
5
5
  }
6
6
  import type { GridItem } from '../Types/Internal/GridItem.js';
7
- declare function $$render<V, VP>(): {
7
+ import type { ValueProp } from '../Types/Internal/Misc.js';
8
+ declare function $$render<V extends object, VP extends ValueProp<V>>(): {
8
9
  props: GridInputSetProps<V, VP>;
9
10
  exports: {};
10
- bindings: "items";
11
+ bindings: "";
11
12
  slots: {};
12
13
  events: {};
13
14
  };
14
- declare class __sveltets_Render<V, VP> {
15
+ declare class __sveltets_Render<V extends object, VP extends ValueProp<V>> {
15
16
  props(): ReturnType<typeof $$render<V, VP>>['props'];
16
17
  events(): ReturnType<typeof $$render<V, VP>>['events'];
17
18
  slots(): ReturnType<typeof $$render<V, VP>>['slots'];
18
- bindings(): "items";
19
+ bindings(): "";
19
20
  exports(): {};
20
21
  }
21
22
  interface $$IsomorphicComponent {
22
- new <V, VP>(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']>> & {
23
+ 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']>> & {
23
24
  $$bindings?: ReturnType<__sveltets_Render<V, VP>['bindings']>;
24
25
  } & ReturnType<__sveltets_Render<V, VP>['exports']>;
25
- <V, VP>(internal: unknown, props: ReturnType<__sveltets_Render<V, VP>['props']> & {}): ReturnType<__sveltets_Render<V, VP>['exports']>;
26
+ <V extends object, VP extends ValueProp<V>>(internal: unknown, props: ReturnType<__sveltets_Render<V, VP>['props']> & {}): ReturnType<__sveltets_Render<V, VP>['exports']>;
26
27
  z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
27
28
  }
28
29
  declare const GridInputSet: $$IsomorphicComponent;
29
- type GridInputSet<V, VP> = InstanceType<typeof GridInputSet<V, VP>>;
30
+ type GridInputSet<V extends object, VP extends ValueProp<V>> = InstanceType<typeof GridInputSet<V, VP>>;
30
31
  export default GridInputSet;
@@ -1,4 +1,16 @@
1
1
  import type { GridSelectItem } from './GridSelectItem.js';
2
- export interface GridMultiSelectItem<V extends object, VP extends string & keyof V> extends GridSelectItem<V, VP> {
2
+ interface _GridMultiSelectItem<V extends object, VP extends string & keyof V> extends GridSelectItem<V, VP> {
3
3
  multi: true;
4
4
  }
5
+ export interface GridMultiSelectItemAsObject<V extends object, VP extends string & keyof V> extends _GridMultiSelectItem<V, VP> {
6
+ valueAsObject: true;
7
+ value: V[];
8
+ updater: (v: V[]) => void;
9
+ }
10
+ export interface GridMultiSelectItemAsPrimitive<V extends object, VP extends string & keyof V> extends _GridMultiSelectItem<V, VP> {
11
+ valueAsObject: false;
12
+ value: Array<V[VP]>;
13
+ updater: (v: Array<V[VP] | null>) => void;
14
+ }
15
+ export type GridMultiSelectItem<V extends object, VP extends string & keyof V> = GridMultiSelectItemAsObject<V, VP> | GridMultiSelectItemAsPrimitive<V, VP>;
16
+ export {};
@@ -1,4 +1,5 @@
1
1
  import type { GridStringItem } from './GridStringItem.js';
2
2
  export interface GridNumberItem extends GridStringItem {
3
3
  type: 'number';
4
+ updater: (v: number) => void;
4
5
  }
@@ -1,5 +1,17 @@
1
1
  import type { GridSelectItem } from './GridSelectItem.js';
2
- export interface GridSingleSelectItem<V extends object, VP extends keyof V> extends GridSelectItem<V, VP> {
2
+ interface _GridSingleSelectItem<V extends object, VP extends keyof V> extends GridSelectItem<V, VP> {
3
3
  multi?: false;
4
4
  required?: boolean;
5
5
  }
6
+ export interface GridSingleSelectItemAsObject<V extends object, VP extends keyof V> extends _GridSingleSelectItem<V, VP> {
7
+ valueAsObject: true;
8
+ value: V | null;
9
+ updater: (v: V | null) => void;
10
+ }
11
+ export interface GridSingleSelectItemAsPrimitive<V extends object, VP extends keyof V> extends _GridSingleSelectItem<V, VP> {
12
+ valueAsObject: false;
13
+ value: V[VP] | null;
14
+ updater: (v: V[VP] | null) => void;
15
+ }
16
+ export type GridSingleSelectItem<V extends object, VP extends keyof V> = GridSingleSelectItemAsObject<V, VP> | GridSingleSelectItemAsPrimitive<V, VP>;
17
+ export {};
@@ -1,4 +1,5 @@
1
1
  import type { GridStringItem } from './GridStringItem.js';
2
2
  export interface GridTextItem extends GridStringItem {
3
3
  type?: 'text' | 'email' | 'tel';
4
+ updater: (v: string) => void;
4
5
  }
package/dist/index.d.ts CHANGED
@@ -130,14 +130,10 @@ export { type CallbackButton } from './Types/Internal/CallbackButton.js';
130
130
  export { type DateChange } from './Types/Internal/DateChange.js';
131
131
  export { DatePickerType } from './Types/Internal/DatePickerType.js';
132
132
  export { type GridItem } from './Types/Internal/GridItem.js';
133
- export { type GridMultiSelectItem } from './Types/Internal/GridMultiSelectItem.js';
134
- export { type GridMultiSelectItemAsObject } from './Types/Internal/GridMultiSelectItemAsObject.js';
135
- export { type GridMultiSelectItemAsPrimitive } from './Types/Internal/GridMultiSelectItemAsPrimitive.js';
133
+ export type { GridMultiSelectItem, GridMultiSelectItemAsObject, GridMultiSelectItemAsPrimitive } from './Types/Internal/GridMultiSelectItem.js';
136
134
  export { type GridNumberItem } from './Types/Internal/GridNumberItem.js';
137
135
  export { type GridSelectItem } from './Types/Internal/GridSelectItem.js';
138
- export { type GridSingleSelectItem } from './Types/Internal/GridSingleSelectItem.js';
139
- export { type GridSingleSelectItemAsObject } from './Types/Internal/GridSingleSelectItemAsObject.js';
140
- export { type GridSingleSelectItemAsPrimitive } from './Types/Internal/GridSingleSelectItemAsPrimitive.js';
136
+ export type { GridSingleSelectItem, GridSingleSelectItemAsObject, GridSingleSelectItemAsPrimitive } from './Types/Internal/GridSingleSelectItem.js';
141
137
  export { type GridStringItem } from './Types/Internal/GridStringItem.js';
142
138
  export { type GridTextItem } from './Types/Internal/GridTextItem.js';
143
139
  export { type IdentifiableToastMessage } from './Types/Internal/IdentifiableToastMessage.js';
package/dist/index.js CHANGED
@@ -137,14 +137,8 @@ export {} from './Types/Internal/CallbackButton.js';
137
137
  export {} from './Types/Internal/DateChange.js';
138
138
  export { DatePickerType } from './Types/Internal/DatePickerType.js';
139
139
  export {} from './Types/Internal/GridItem.js';
140
- export {} from './Types/Internal/GridMultiSelectItem.js';
141
- export {} from './Types/Internal/GridMultiSelectItemAsObject.js';
142
- export {} from './Types/Internal/GridMultiSelectItemAsPrimitive.js';
143
140
  export {} from './Types/Internal/GridNumberItem.js';
144
141
  export {} from './Types/Internal/GridSelectItem.js';
145
- export {} from './Types/Internal/GridSingleSelectItem.js';
146
- export {} from './Types/Internal/GridSingleSelectItemAsObject.js';
147
- export {} from './Types/Internal/GridSingleSelectItemAsPrimitive.js';
148
142
  export {} from './Types/Internal/GridStringItem.js';
149
143
  export {} from './Types/Internal/GridTextItem.js';
150
144
  export {} from './Types/Internal/IdentifiableToastMessage.js';
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.1.0",
4
+ "version": "0.2.1",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
@@ -1,5 +0,0 @@
1
- import type { GridMultiSelectItem } from './GridMultiSelectItem.js';
2
- export interface GridMultiSelectItemAsObject<V extends object, VP extends string & keyof V> extends GridMultiSelectItem<V, VP> {
3
- valueAsObject: true;
4
- value: V[];
5
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import type { GridMultiSelectItem } from './GridMultiSelectItem.js';
2
- export interface GridMultiSelectItemAsPrimitive<V extends object, VP extends string & keyof V> extends GridMultiSelectItem<V, VP> {
3
- valueAsObject: false;
4
- value: Array<V[VP]>;
5
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import type { GridSingleSelectItem } from './GridSingleSelectItem.js';
2
- export interface GridSingleSelectItemAsObject<V extends object, VP extends keyof V> extends GridSingleSelectItem<V, VP> {
3
- valueAsObject: true;
4
- value: V | null;
5
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import type { GridSingleSelectItem } from './GridSingleSelectItem.js';
2
- export interface GridSingleSelectItemAsPrimitive<V extends object, VP extends keyof V> extends GridSingleSelectItem<V, VP> {
3
- valueAsObject: false;
4
- value: V[VP] | null;
5
- }