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.
@@ -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(): {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelliwaketssveltekitv25",
3
- "version": "0.1.114",
3
+ "version": "0.1.116",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",