@modeltables/fontawesome-vuetify 4.0.0 → 4.2.0
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 +6 -1
- package/components/dataSets/dataSetItems.ts +22 -8
- package/components/table/TableView.vue +38 -10
- package/dist/index.amd.ts +14 -14
- package/dist/index.esm.ts +1197 -1175
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,9 +48,14 @@ export class ExampleModel {
|
|
|
48
48
|
```
|
|
49
49
|
Documentation
|
|
50
50
|
|
|
51
|
-
Options data input key are required with optional
|
|
51
|
+
Options data input key are required with optional attributes.
|
|
52
|
+
|
|
52
53
|
The table shows your data and lets you manage it easily. It has built-in `load` and `search` events for quick requests and updates.
|
|
54
|
+
|
|
53
55
|
Loading spinner appears while items and pagination changes.
|
|
56
|
+
|
|
57
|
+
Data items are organized in selections with two main events `itemSelection` and `multiSelection` to easy control your items.
|
|
58
|
+
|
|
54
59
|
CRUD features like add, edit, or delete are ready to use.
|
|
55
60
|
|
|
56
61
|
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
|
|
|
@@ -227,7 +232,9 @@ export default {
|
|
|
227
232
|
|
|
228
233
|
this.dataSetItems = dataSetItems;
|
|
229
234
|
this.dataItems = dataItems;
|
|
230
|
-
|
|
235
|
+
if(this.multiSelect){
|
|
236
|
+
this.changePageActiveSet(event);
|
|
237
|
+
}
|
|
231
238
|
},
|
|
232
239
|
initHeaders() {
|
|
233
240
|
let dataSetHeaders = [] as DataSetHeader[];
|
|
@@ -273,11 +280,11 @@ export default {
|
|
|
273
280
|
}
|
|
274
281
|
|
|
275
282
|
changeMultipleSets(item.changeItemSet, item, this.dataSetItems);
|
|
276
|
-
this.$emit(itemSelection, item.dataItem);
|
|
283
|
+
this.$emit(itemSelection, {item: item.dataItem, lastItem: this.lastSelectedItem});
|
|
284
|
+
this.lastSelectedItem = item.dataItem;
|
|
277
285
|
}
|
|
278
286
|
|
|
279
287
|
if(this.multiSelect){
|
|
280
|
-
|
|
281
288
|
if(!this.multiSelectedItems.length){
|
|
282
289
|
this.multiSelectedItems = [item.dataItem];
|
|
283
290
|
}else if(this.multiSelectedItems.some(element => isEqual(element, item.dataItem))){
|
|
@@ -287,7 +294,7 @@ export default {
|
|
|
287
294
|
}
|
|
288
295
|
|
|
289
296
|
changeActiveSets(item.changeMultipleSet, item);
|
|
290
|
-
this.$emit(multiSelection, this.multiSelectedItems);
|
|
297
|
+
this.$emit(multiSelection, { selectedItems: this.multiSelectedItems, beforeItem: item.dataItem, afterItem: item.dataItem });
|
|
291
298
|
}
|
|
292
299
|
},
|
|
293
300
|
filterValue(event: any, dataItem: any){
|
|
@@ -342,7 +349,6 @@ export default {
|
|
|
342
349
|
this.search();
|
|
343
350
|
},
|
|
344
351
|
pageSize(event: any){
|
|
345
|
-
console.log(event);
|
|
346
352
|
this.perPage = event;
|
|
347
353
|
this.filters.PerPage = this.perPage;
|
|
348
354
|
this.search();
|
|
@@ -353,12 +359,34 @@ export default {
|
|
|
353
359
|
this.filters.SortDirection = window.Number(prop.sort);
|
|
354
360
|
this.search();
|
|
355
361
|
},
|
|
362
|
+
changePageActiveSet(event: any){
|
|
363
|
+
if(this.dataSetItems.length && this.multiSelectedItems.length){
|
|
364
|
+
for(let multiSelectItem of this.multiSelectedItems){
|
|
365
|
+
let dataSetItem = this.dataSetItems.find((dataSet) => isEqual(dataSet.dataItem, multiSelectItem));
|
|
366
|
+
if(dataSetItem != undefined){
|
|
367
|
+
changeActiveSets(dataSetItem.changeMultipleSet, dataSetItem);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
this.changeCheckActiveSet(event);
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
changeCheckActiveSet(event: any){
|
|
374
|
+
for(let dataSetItem of this.dataSetItems){
|
|
375
|
+
if(this.multiSelectedItems.some(element => isEqual(element, dataSetItem.dataItem))){
|
|
376
|
+
this.multiSelected = true;
|
|
377
|
+
}else{
|
|
378
|
+
this.multiSelected = false;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
},
|
|
356
382
|
selectItem(event){
|
|
357
383
|
console.log(event);
|
|
358
384
|
},
|
|
359
385
|
multiSelectItems(event){
|
|
360
|
-
changeSet(this.dataSetItems, this.multiSelected);
|
|
361
386
|
this.multiSelected = !this.multiSelected;
|
|
387
|
+
let result = changeSet(this.dataSetItems, this.multiSelected, this.multiSelectedItems);
|
|
388
|
+
this.multiSelectedItems = result.selectedItems;
|
|
389
|
+
this.$emit(multiSelection, result);
|
|
362
390
|
}
|
|
363
391
|
}
|
|
364
392
|
}
|