intelliwaketssveltekitv25 0.1.171 → 0.1.173
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/MultiSelect.svelte +18 -17
- package/dist/MultiSelect.svelte.d.ts +2 -1
- package/package.json +1 -1
package/dist/MultiSelect.svelte
CHANGED
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
possibles,
|
|
18
18
|
selected = $bindable([]),
|
|
19
19
|
selectedIDs = $bindable(undefined),
|
|
20
|
-
autoModifySelected = true,
|
|
21
20
|
created = $bindable([]),
|
|
22
21
|
existing = $bindable([]),
|
|
23
22
|
name = null,
|
|
24
23
|
placeholder = '',
|
|
24
|
+
placeholderHideNoFocus = false,
|
|
25
25
|
disabled = false,
|
|
26
26
|
readonly = false,
|
|
27
27
|
required = false,
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
onadd,
|
|
51
51
|
onselect,
|
|
52
52
|
oncreate,
|
|
53
|
+
onchange,
|
|
53
54
|
onclear,
|
|
54
55
|
onclearall
|
|
55
56
|
}: {
|
|
@@ -59,11 +60,11 @@
|
|
|
59
60
|
possibles: T[]
|
|
60
61
|
selected?: T[]
|
|
61
62
|
selectedIDs?: (number | string)[] | undefined
|
|
62
|
-
autoModifySelected?: boolean
|
|
63
63
|
created?: T[]
|
|
64
64
|
existing?: T[]
|
|
65
65
|
name?: string | null
|
|
66
66
|
placeholder?: string
|
|
67
|
+
placeholderHideNoFocus?: boolean
|
|
67
68
|
disabled?: boolean
|
|
68
69
|
readonly?: boolean
|
|
69
70
|
required?: boolean
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
onadd?: (item: T) => void,
|
|
94
95
|
onselect?: (item: T) => void,
|
|
95
96
|
oncreate?: (item: string) => void,
|
|
97
|
+
onchange?: (items: T[]) => void,
|
|
96
98
|
onclear?: (item: T) => void,
|
|
97
99
|
onclearall?: () => void
|
|
98
100
|
} = $props()
|
|
@@ -109,7 +111,7 @@
|
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
function updateSelectedIDs(sels: T[]) {
|
|
112
|
-
if (
|
|
114
|
+
if (!!selectedIDs) {
|
|
113
115
|
selectedIDs = sels.map(sel => idValue(sel))
|
|
114
116
|
}
|
|
115
117
|
}
|
|
@@ -117,10 +119,8 @@
|
|
|
117
119
|
async function doAdd(item: T | null | undefined, creating: boolean) {
|
|
118
120
|
if (!disable) {
|
|
119
121
|
if (item) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
updateSelectedIDs(selected)
|
|
123
|
-
}
|
|
122
|
+
selected = isMulti ? [...selected, item] : [item]
|
|
123
|
+
updateSelectedIDs(selected)
|
|
124
124
|
searchValue = ''
|
|
125
125
|
await tick()
|
|
126
126
|
if (elInput) elInput.focus()
|
|
@@ -130,21 +130,21 @@
|
|
|
130
130
|
} else {
|
|
131
131
|
if (oncreate) oncreate(inputValue(item))
|
|
132
132
|
}
|
|
133
|
+
if (onchange) onchange(selected)
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
|
|
137
138
|
async function doClear(item: T) {
|
|
138
139
|
if (!disable) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
updateSelectedIDs(selected)
|
|
142
|
-
}
|
|
140
|
+
selected = selected.filter(s => !DeepEqual(idValue(s), idValue(item)))
|
|
141
|
+
updateSelectedIDs(selected)
|
|
143
142
|
if (elInput) {
|
|
144
143
|
await tick()
|
|
145
144
|
elInput.focus()
|
|
146
145
|
}
|
|
147
146
|
if (onclear) onclear(item)
|
|
147
|
+
if (onchange) onchange(selected)
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -152,10 +152,8 @@
|
|
|
152
152
|
e.stopPropagation()
|
|
153
153
|
if (!disable) {
|
|
154
154
|
if (allowClearAll) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
updateSelectedIDs(selected)
|
|
158
|
-
}
|
|
155
|
+
selected = []
|
|
156
|
+
updateSelectedIDs(selected)
|
|
159
157
|
await tick()
|
|
160
158
|
}
|
|
161
159
|
if (elInput) {
|
|
@@ -163,6 +161,7 @@
|
|
|
163
161
|
elInput.focus()
|
|
164
162
|
}
|
|
165
163
|
if (onclearall) onclearall()
|
|
164
|
+
if (onchange) onchange(selected)
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
|
|
@@ -191,7 +190,7 @@
|
|
|
191
190
|
})))
|
|
192
191
|
|
|
193
192
|
function setSelected(selIDs: (string | number)[] | undefined, poss: T[]) {
|
|
194
|
-
if (selIDs &&
|
|
193
|
+
if (selIDs && (selIDs.length !== selected.length || !selected.every(sel => !!selIDs?.some(selID => selID === idValue(sel))))) {
|
|
195
194
|
selected = poss.filter(po => !!selIDs?.some(selID => selID == idValue(po)))
|
|
196
195
|
}
|
|
197
196
|
}
|
|
@@ -347,7 +346,9 @@
|
|
|
347
346
|
autocomplete="off"
|
|
348
347
|
bind:this={elInput}
|
|
349
348
|
bind:value={searchValue}
|
|
350
|
-
class="noFormat flex grow-1 m-1 ring-0 focus:ring-0 outline-0 focus:outline-0 min-w-[3em] w-[3em] border-none p-0
|
|
349
|
+
class="noFormat flex grow-1 m-1 ring-0 focus:ring-0 outline-0 focus:outline-0 min-w-[3em] w-[3em] border-none p-0 {inputClass}"
|
|
350
|
+
class:placeholder:opacity-0={placeholderHideNoFocus}
|
|
351
|
+
class:focus:placeholder:opacity-100={placeholderHideNoFocus}
|
|
351
352
|
onkeydown={onKeyPress} />
|
|
352
353
|
{/if}
|
|
353
354
|
</div>
|
|
@@ -8,11 +8,11 @@ declare class __sveltets_Render<T extends TGenericMultiSelect> {
|
|
|
8
8
|
possibles: T[];
|
|
9
9
|
selected?: T[] | undefined;
|
|
10
10
|
selectedIDs?: (number | string)[] | undefined;
|
|
11
|
-
autoModifySelected?: boolean;
|
|
12
11
|
created?: T[] | undefined;
|
|
13
12
|
existing?: T[] | undefined;
|
|
14
13
|
name?: string | null;
|
|
15
14
|
placeholder?: string;
|
|
15
|
+
placeholderHideNoFocus?: boolean;
|
|
16
16
|
disabled?: boolean;
|
|
17
17
|
readonly?: boolean;
|
|
18
18
|
required?: boolean;
|
|
@@ -42,6 +42,7 @@ declare class __sveltets_Render<T extends TGenericMultiSelect> {
|
|
|
42
42
|
onadd?: ((item: T) => void) | undefined;
|
|
43
43
|
onselect?: ((item: T) => void) | undefined;
|
|
44
44
|
oncreate?: ((item: string) => void) | undefined;
|
|
45
|
+
onchange?: ((items: T[]) => void) | undefined;
|
|
45
46
|
onclear?: ((item: T) => void) | undefined;
|
|
46
47
|
onclearall?: (() => void) | undefined;
|
|
47
48
|
};
|