@modeltables/fontawesome-vuetify 4.1.0 → 4.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.
- package/README.md +4 -0
- package/components/dataSets/dataSetItems.ts +22 -8
- package/components/table/TableView.vue +40 -11
- package/dist/index.amd.ts +14 -14
- package/dist/index.esm.ts +1197 -1175
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,6 +54,10 @@ The table shows your data and lets you manage it easily. It has built-in `load`
|
|
|
54
54
|
|
|
55
55
|
Loading spinner appears while items and pagination changes.
|
|
56
56
|
|
|
57
|
+
Data items are organized in selections with two main events `itemSelection` and `multiSelection` to easy control your items.
|
|
58
|
+
|
|
59
|
+
Using `showFilters` are essential with `rowClick` event when paginationModel mode is on for quick data changes.
|
|
60
|
+
|
|
57
61
|
CRUD features like add, edit, or delete are ready to use.
|
|
58
62
|
|
|
59
63
|
License
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { selectedRow, unSelectedRow } from "../helpers/resources";
|
|
2
|
+
import { isEqual } from "../helpers/instances";
|
|
2
3
|
|
|
3
4
|
export class DataSetItems{
|
|
4
5
|
id: number = 0;
|
|
@@ -26,14 +27,27 @@ export const changeMultipleSets = (method: any, item: DataSetItems, dataItems: D
|
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
export const changeSet = (dataSetItems: DataSetItems[], multiSelected: boolean) => {
|
|
30
|
+
export const changeSet = (dataSetItems: DataSetItems[], multiSelected: boolean, multiSelectedItems: Object[] = []) => {
|
|
31
|
+
let next, before;
|
|
30
32
|
for(const value of dataSetItems){
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
if(!multiSelected){
|
|
34
|
+
value.properties.selected = false;
|
|
35
|
+
value.properties.rowClass = unSelectedRow;
|
|
36
|
+
if(multiSelectedItems.some(element => isEqual(element, value.dataItem))){
|
|
37
|
+
multiSelectedItems = multiSelectedItems.filter(element => !isEqual(element, value.dataItem));
|
|
38
|
+
before = value.dataItem;
|
|
39
|
+
next = multiSelected;
|
|
40
|
+
}
|
|
41
|
+
}else{
|
|
42
|
+
value.properties.selected = true;
|
|
43
|
+
value.properties.rowClass = selectedRow;
|
|
44
|
+
if(!multiSelectedItems.some(element => isEqual(element, value.dataItem))){
|
|
45
|
+
multiSelectedItems = [...multiSelectedItems, value.dataItem];
|
|
46
|
+
next = value.dataItem;
|
|
47
|
+
before = multiSelected;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
38
50
|
}
|
|
51
|
+
|
|
52
|
+
return { selectedItems: multiSelectedItems, beforeItem: before, afterItem: next };
|
|
39
53
|
}
|
|
@@ -164,6 +164,7 @@ export default {
|
|
|
164
164
|
showFilters: this.showFilters,
|
|
165
165
|
modelValue: ref([]),
|
|
166
166
|
firstChange: true,
|
|
167
|
+
lastSelectedItem: Object as any,
|
|
167
168
|
multiSelected: false,
|
|
168
169
|
perPage: this.pagination!.PerPage,
|
|
169
170
|
page: this.pagination!.CurrentPage,
|
|
@@ -202,11 +203,15 @@ export default {
|
|
|
202
203
|
|
|
203
204
|
dataSet.changeMultipleSet = [(item: DataSetItems) => {
|
|
204
205
|
if(this.multiSelectedItems.some(element => isEqual(element, item.dataItem))){
|
|
205
|
-
|
|
206
|
-
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
item.properties.rowClass = selectedRow;
|
|
208
|
+
item.properties.selected = true;
|
|
209
|
+
}, 100)
|
|
207
210
|
}else{
|
|
208
|
-
|
|
209
|
-
|
|
211
|
+
setTimeout(() => {
|
|
212
|
+
item.properties.rowClass = unSelectedRow;
|
|
213
|
+
item.properties.selected = false;
|
|
214
|
+
}, 100)
|
|
210
215
|
}
|
|
211
216
|
}];
|
|
212
217
|
|
|
@@ -215,6 +220,8 @@ export default {
|
|
|
215
220
|
dataSet.properties.rowClass = unSelectedRow;
|
|
216
221
|
}
|
|
217
222
|
|
|
223
|
+
this.multiSelectedItems = [];
|
|
224
|
+
this.multiSelectedItems = [item.dataItem];
|
|
218
225
|
changeActiveSets(dataSet.changeMultipleSet, item);
|
|
219
226
|
}]
|
|
220
227
|
|
|
@@ -227,7 +234,9 @@ export default {
|
|
|
227
234
|
|
|
228
235
|
this.dataSetItems = dataSetItems;
|
|
229
236
|
this.dataItems = dataItems;
|
|
230
|
-
|
|
237
|
+
if(this.multiSelect){
|
|
238
|
+
this.changePageActiveSet(event);
|
|
239
|
+
}
|
|
231
240
|
},
|
|
232
241
|
initHeaders() {
|
|
233
242
|
let dataSetHeaders = [] as DataSetHeader[];
|
|
@@ -271,13 +280,12 @@ export default {
|
|
|
271
280
|
for(let dataSet of this.dataSetItems){
|
|
272
281
|
dataSet.properties.rowClass = unSelectedRow;
|
|
273
282
|
}
|
|
274
|
-
|
|
275
283
|
changeMultipleSets(item.changeItemSet, item, this.dataSetItems);
|
|
276
|
-
this.$emit(itemSelection, item.dataItem);
|
|
284
|
+
this.$emit(itemSelection, {item: item.dataItem, lastItem: this.lastSelectedItem});
|
|
285
|
+
this.lastSelectedItem = item.dataItem;
|
|
277
286
|
}
|
|
278
287
|
|
|
279
288
|
if(this.multiSelect){
|
|
280
|
-
|
|
281
289
|
if(!this.multiSelectedItems.length){
|
|
282
290
|
this.multiSelectedItems = [item.dataItem];
|
|
283
291
|
}else if(this.multiSelectedItems.some(element => isEqual(element, item.dataItem))){
|
|
@@ -287,7 +295,7 @@ export default {
|
|
|
287
295
|
}
|
|
288
296
|
|
|
289
297
|
changeActiveSets(item.changeMultipleSet, item);
|
|
290
|
-
this.$emit(multiSelection, this.multiSelectedItems);
|
|
298
|
+
this.$emit(multiSelection, { selectedItems: this.multiSelectedItems, beforeItem: item.dataItem, afterItem: item.dataItem });
|
|
291
299
|
}
|
|
292
300
|
},
|
|
293
301
|
filterValue(event: any, dataItem: any){
|
|
@@ -342,7 +350,6 @@ export default {
|
|
|
342
350
|
this.search();
|
|
343
351
|
},
|
|
344
352
|
pageSize(event: any){
|
|
345
|
-
console.log(event);
|
|
346
353
|
this.perPage = event;
|
|
347
354
|
this.filters.PerPage = this.perPage;
|
|
348
355
|
this.search();
|
|
@@ -353,12 +360,34 @@ export default {
|
|
|
353
360
|
this.filters.SortDirection = window.Number(prop.sort);
|
|
354
361
|
this.search();
|
|
355
362
|
},
|
|
363
|
+
changePageActiveSet(event: any){
|
|
364
|
+
if(this.dataSetItems.length && this.multiSelectedItems.length){
|
|
365
|
+
for(let multiSelectItem of this.multiSelectedItems){
|
|
366
|
+
let dataSetItem = this.dataSetItems.find((dataSet) => isEqual(dataSet.dataItem, multiSelectItem));
|
|
367
|
+
if(dataSetItem != undefined){
|
|
368
|
+
changeActiveSets(dataSetItem.changeMultipleSet, dataSetItem);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
this.changeCheckActiveSet(event);
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
changeCheckActiveSet(event: any){
|
|
375
|
+
for(let dataSetItem of this.dataSetItems){
|
|
376
|
+
if(this.multiSelectedItems.some(element => isEqual(element, dataSetItem.dataItem))){
|
|
377
|
+
this.multiSelected = true;
|
|
378
|
+
}else{
|
|
379
|
+
this.multiSelected = false;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
},
|
|
356
383
|
selectItem(event){
|
|
357
384
|
console.log(event);
|
|
358
385
|
},
|
|
359
386
|
multiSelectItems(event){
|
|
360
|
-
changeSet(this.dataSetItems, this.multiSelected);
|
|
361
387
|
this.multiSelected = !this.multiSelected;
|
|
388
|
+
let result = changeSet(this.dataSetItems, this.multiSelected, this.multiSelectedItems);
|
|
389
|
+
this.multiSelectedItems = result.selectedItems;
|
|
390
|
+
this.$emit(multiSelection, result);
|
|
362
391
|
}
|
|
363
392
|
}
|
|
364
393
|
}
|