intelliwaketssveltekitv25 0.1.114 → 0.1.116
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
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
possibles,
|
|
18
18
|
selected = $bindable([]),
|
|
19
19
|
selectedIDs = $bindable(undefined),
|
|
20
|
+
autoModifySelected = true,
|
|
20
21
|
created = $bindable([]),
|
|
21
22
|
existing = $bindable([]),
|
|
22
23
|
name = null,
|
|
@@ -44,7 +45,10 @@
|
|
|
44
45
|
controlClass = '',
|
|
45
46
|
inputClass = '',
|
|
46
47
|
parentDivElement = null,
|
|
47
|
-
form = undefined
|
|
48
|
+
form = undefined,
|
|
49
|
+
onadd,
|
|
50
|
+
onclear,
|
|
51
|
+
onclearall
|
|
48
52
|
}: {
|
|
49
53
|
id?: string
|
|
50
54
|
show?: boolean
|
|
@@ -52,6 +56,7 @@
|
|
|
52
56
|
possibles: T[]
|
|
53
57
|
selected?: T[]
|
|
54
58
|
selectedIDs?: (number | string)[] | undefined
|
|
59
|
+
autoModifySelected?: boolean
|
|
55
60
|
created?: T[]
|
|
56
61
|
existing?: T[]
|
|
57
62
|
name?: string | null
|
|
@@ -80,7 +85,10 @@
|
|
|
80
85
|
controlClass?: string
|
|
81
86
|
inputClass?: string
|
|
82
87
|
parentDivElement?: HTMLDivElement | null
|
|
83
|
-
form?: string | undefined
|
|
88
|
+
form?: string | undefined,
|
|
89
|
+
onadd?: (item: T) => void,
|
|
90
|
+
onclear?: (item: T) => void,
|
|
91
|
+
onclearall?: () => void
|
|
84
92
|
} = $props()
|
|
85
93
|
|
|
86
94
|
let searchValue = $state('')
|
|
@@ -98,21 +106,23 @@
|
|
|
98
106
|
async function doAdd(item: T | null | undefined) {
|
|
99
107
|
if (!disable) {
|
|
100
108
|
if (item) {
|
|
101
|
-
selected = [...selected, item]
|
|
109
|
+
if (autoModifySelected) selected = [...selected, item]
|
|
102
110
|
searchValue = ''
|
|
103
111
|
await tick()
|
|
104
112
|
if (elInput) elInput.focus()
|
|
113
|
+
if (onadd) onadd(item)
|
|
105
114
|
}
|
|
106
115
|
}
|
|
107
116
|
}
|
|
108
117
|
|
|
109
118
|
async function doClear(item: T) {
|
|
110
119
|
if (!disable) {
|
|
111
|
-
selected = selected.filter(s => !DeepEqual(idValue(s), idValue(item)))
|
|
120
|
+
if (autoModifySelected) selected = selected.filter(s => !DeepEqual(idValue(s), idValue(item)))
|
|
112
121
|
if (elInput) {
|
|
113
122
|
await tick()
|
|
114
123
|
elInput.focus()
|
|
115
124
|
}
|
|
125
|
+
if (onclear) onclear(item)
|
|
116
126
|
}
|
|
117
127
|
}
|
|
118
128
|
|
|
@@ -120,13 +130,14 @@
|
|
|
120
130
|
e.stopPropagation()
|
|
121
131
|
if (!disable) {
|
|
122
132
|
if (allowClearAll) {
|
|
123
|
-
selected = []
|
|
133
|
+
if (autoModifySelected) selected = []
|
|
124
134
|
await tick()
|
|
125
135
|
}
|
|
126
136
|
if (elInput) {
|
|
127
137
|
await tick()
|
|
128
138
|
elInput.focus()
|
|
129
139
|
}
|
|
140
|
+
if (onclearall) onclearall()
|
|
130
141
|
}
|
|
131
142
|
}
|
|
132
143
|
|
|
@@ -155,7 +166,7 @@
|
|
|
155
166
|
})))
|
|
156
167
|
|
|
157
168
|
function setSelectedIDs(sels: T[]) {
|
|
158
|
-
if (!initialPass && selectedIDs && (selectedIDs.length !== sels.length || !sels.every(sel => !!selectedIDs?.some(selID => selID === idValue(sel))))) {
|
|
169
|
+
if (!initialPass && autoModifySelected && selectedIDs && (selectedIDs.length !== sels.length || !sels.every(sel => !!selectedIDs?.some(selID => selID === idValue(sel))))) {
|
|
159
170
|
selectedIDs = sels.map(sel => idValue(sel))
|
|
160
171
|
}
|
|
161
172
|
}
|
|
@@ -165,7 +176,7 @@
|
|
|
165
176
|
})
|
|
166
177
|
|
|
167
178
|
function setSelected(selIDs: (string | number)[] | undefined, poss: T[]) {
|
|
168
|
-
if (selIDs && (selIDs.length !== selected.length || !selected.every(sel => !!selIDs?.some(selID => selID === idValue(sel))))) {
|
|
179
|
+
if (selIDs && autoModifySelected && (selIDs.length !== selected.length || !selected.every(sel => !!selIDs?.some(selID => selID === idValue(sel))))) {
|
|
169
180
|
selected = poss.filter(po => !!selIDs?.some(selID => selID == idValue(po)))
|
|
170
181
|
}
|
|
171
182
|
}
|
|
@@ -8,6 +8,7 @@ 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;
|
|
11
12
|
created?: T[] | undefined;
|
|
12
13
|
existing?: T[] | undefined;
|
|
13
14
|
name?: string | null;
|
|
@@ -37,6 +38,9 @@ declare class __sveltets_Render<T extends TGenericMultiSelect> {
|
|
|
37
38
|
inputClass?: string;
|
|
38
39
|
parentDivElement?: HTMLDivElement | null;
|
|
39
40
|
form?: string | undefined;
|
|
41
|
+
onadd?: ((item: T) => void) | undefined;
|
|
42
|
+
onclear?: ((item: T) => void) | undefined;
|
|
43
|
+
onclearall?: (() => void) | undefined;
|
|
40
44
|
};
|
|
41
45
|
events(): {};
|
|
42
46
|
slots(): {};
|