ng-virtual-list 14.7.1 → 14.7.2
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 +1 -0
- package/esm2020/lib/components/ng-virtual-list-item.component.mjs +18 -4
- package/esm2020/lib/const/index.mjs +2 -1
- package/esm2020/lib/ng-virtual-list.component.mjs +36 -10
- package/esm2020/lib/ng-virtual-list.service.mjs +45 -8
- package/fesm2015/ng-virtual-list.mjs +95 -18
- package/fesm2015/ng-virtual-list.mjs.map +1 -1
- package/fesm2020/ng-virtual-list.mjs +95 -18
- package/fesm2020/ng-virtual-list.mjs.map +1 -1
- package/lib/components/ng-virtual-list-item.component.d.ts +17 -1
- package/lib/const/index.d.ts +1 -0
- package/lib/ng-virtual-list.component.d.ts +9 -1
- package/lib/ng-virtual-list.service.d.ts +7 -0
- package/package.json +1 -1
- package/fesm2022/ng-virtual-list.mjs +0 -2371
- package/fesm2022/ng-virtual-list.mjs.map +0 -1
|
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Subject, takeUntil, tap } from 'rxjs';
|
|
3
3
|
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
|
|
4
4
|
import { MethodsForSelectingTypes } from './enums/method-for-selecting-types';
|
|
5
|
+
import { DEFAULT_SELECT_BY_CLICK } from './const';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class NgVirtualListService {
|
|
7
8
|
constructor() {
|
|
@@ -13,6 +14,7 @@ export class NgVirtualListService {
|
|
|
13
14
|
this.$selectedIds = this._$selectedIds.asObservable();
|
|
14
15
|
this._$methodOfSelecting = new BehaviorSubject(0);
|
|
15
16
|
this.$methodOfSelecting = this._$methodOfSelecting.asObservable();
|
|
17
|
+
this.selectByClick = DEFAULT_SELECT_BY_CLICK;
|
|
16
18
|
this._$methodOfSelecting.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
17
19
|
switch (v) {
|
|
18
20
|
case MethodsForSelectingTypes.SELECT: {
|
|
@@ -40,25 +42,60 @@ export class NgVirtualListService {
|
|
|
40
42
|
this._$methodOfSelecting.next(v);
|
|
41
43
|
}
|
|
42
44
|
setSelectedIds(ids) {
|
|
43
|
-
this._$selectedIds.
|
|
45
|
+
if (JSON.stringify(this._$selectedIds.getValue()) !== JSON.stringify(ids)) {
|
|
46
|
+
this._$selectedIds.next(ids);
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
49
|
itemClick(data) {
|
|
46
|
-
this.
|
|
50
|
+
if (this.selectByClick) {
|
|
51
|
+
this.select(data);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Selects a list item
|
|
56
|
+
* @param data
|
|
57
|
+
* @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
|
|
58
|
+
*/
|
|
59
|
+
select(data, selected = undefined) {
|
|
47
60
|
if (data && data.config.selectable) {
|
|
48
61
|
switch (this._$methodOfSelecting.getValue()) {
|
|
49
62
|
case MethodsForSelectingTypes.SELECT: {
|
|
50
63
|
const curr = this._$selectedIds.getValue();
|
|
51
|
-
|
|
64
|
+
if (selected === undefined) {
|
|
65
|
+
this._$selectedIds.next(curr !== data?.id ? data?.id : undefined);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this._$selectedIds.next(selected ? data?.id : undefined);
|
|
69
|
+
}
|
|
52
70
|
break;
|
|
53
71
|
}
|
|
54
72
|
case MethodsForSelectingTypes.MULTI_SELECT: {
|
|
55
73
|
const curr = [...(this._$selectedIds.getValue() || [])], index = curr.indexOf(data.id);
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
74
|
+
if (selected === undefined) {
|
|
75
|
+
if (index > -1) {
|
|
76
|
+
curr.splice(index, 1);
|
|
77
|
+
this._$selectedIds.next(curr);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this._$selectedIds.next([...curr, data.id]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (selected) {
|
|
84
|
+
if (index > -1) {
|
|
85
|
+
this._$selectedIds.next(curr);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this._$selectedIds.next([...curr, data.id]);
|
|
89
|
+
}
|
|
59
90
|
}
|
|
60
91
|
else {
|
|
61
|
-
|
|
92
|
+
if (index > -1) {
|
|
93
|
+
curr.splice(index, 1);
|
|
94
|
+
this._$selectedIds.next(curr);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this._$selectedIds.next(curr);
|
|
98
|
+
}
|
|
62
99
|
}
|
|
63
100
|
break;
|
|
64
101
|
}
|
|
@@ -91,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
91
128
|
providedIn: 'root'
|
|
92
129
|
}]
|
|
93
130
|
}], ctorParameters: function () { return []; } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9uZy12aXJ0dWFsLWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBSzlFLE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CO1FBbkJVLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0QyxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFFN0IsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBMkMsQ0FBQztRQUM3RSxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVyQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUE2QixTQUFTLENBQUMsQ0FBQztRQUNuRixpQkFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFekMsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTJCLENBQUMsQ0FBQyxDQUFDO1FBQy9FLHVCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQVMzRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixRQUFRLENBQUMsRUFBRTtnQkFDVCxLQUFLLHdCQUF3QixDQUFDLE1BQU0s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QUM1QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLENBQUMsZ0JBQWdCO1lBQzlFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7aUhBN0ZVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhY2tCb3ggfSBmcm9tICcuL3V0aWxzL3RyYWNrQm94JztcclxuaW1wb3J0IHsgSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xyXG5pbXBvcnQgeyBJZCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMgfSBmcm9tICcuL2VudW1zL21ldGhvZC1mb3Itc2VsZWN0aW5nLXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVmlydHVhbExpc3RTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgXyR1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX25leHRDb21wb25lbnRJZDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfJGl0ZW1DbGljayA9IG5ldyBTdWJqZWN0PElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IHVuZGVmaW5lZD4oKTtcclxuICAkaXRlbUNsaWNrID0gdGhpcy5fJGl0ZW1DbGljay5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfJHNlbGVjdGVkSWRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxJZD4gfCBJZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAkc2VsZWN0ZWRJZHMgPSB0aGlzLl8kc2VsZWN0ZWRJZHMuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgXyRtZXRob2RPZlNlbGVjdGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzPigwKTtcclxuICAkbWV0aG9kT2ZTZWxlY3RpbmcgPSB0aGlzLl8kbWV0aG9kT2ZTZWxlY3RpbmcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHNldCBtZXRob2RPZlNlbGVjdGluZyh2OiBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMpIHtcclxuICAgIHRoaXMuXyRtZXRob2RPZlNlbGVjdGluZy5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhY2tCb3g6IFRyYWNrQm94IHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuXyRtZXRob2RPZlNlbGVjdGluZy5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgdGFwKHYgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAodikge1xyXG4gICAgICAgICAgY2FzZSBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMuU0VMRUNUOiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnIgPSB0aGlzLl8kc2VsZWN0ZWRJZHMuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgY3VyciAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMuTVVMVElfU0VMRUNUOiB7XHJcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl8kc2VsZWN0ZWRJZHMuZ2V0VmFsdWUoKSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dChbXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5OT05FOlxyXG4gICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkSWRzKGlkczogQXJyYXk8SWQ+IHwgSWQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KGlkcyk7XHJcbiAgfVxyXG5cclxuICBpdGVtQ2xpY2soZGF0YTogSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fJGl0ZW1DbGljay5uZXh0KGRhdGEpO1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5jb25maWcuc2VsZWN0YWJsZSkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuXyRtZXRob2RPZlNlbGVjdGluZy5nZXRWYWx1ZSgpKSB7XHJcbiAgICAgICAgY2FzZSBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMuU0VMRUNUOiB7XHJcbiAgICAgICAgICBjb25zdCBjdXJyID0gdGhpcy5fJHNlbGVjdGVkSWRzLmdldFZhbHVlKCkgYXMgKElkIHwgdW5kZWZpbmVkKTtcclxuICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KGN1cnIgIT09IGRhdGE/LmlkID8gZGF0YT8uaWQgOiB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgTWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzLk1VTFRJX1NFTEVDVDoge1xyXG4gICAgICAgICAgY29uc3QgY3VyciA9IFsuLi4odGhpcy5fJHNlbGVjdGVkSWRzLmdldFZhbHVlKCkgfHwgW10pIGFzIEFycmF5PElkPl0sIGluZGV4ID0gY3Vyci5pbmRleE9mKGRhdGEuaWQpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgY3Vyci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dChjdXJyKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KFsuLi5jdXJyLCBkYXRhLmlkXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMuTk9ORTpcclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSh0cmFja0JveDogVHJhY2tCb3gpIHtcclxuICAgIHRoaXMuX3RyYWNrQm94ID0gdHJhY2tCb3g7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNvbXBvbmVudElkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25leHRDb21wb25lbnRJZCA9IHRoaXMuX25leHRDb21wb25lbnRJZCA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcclxuICAgICAgPyAwIDogdGhpcy5fbmV4dENvbXBvbmVudElkICsgMTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fJHVuc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuXyR1bnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuXyR1bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9uZy12aXJ0dWFsLWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUtsRCxNQUFNLE9BQU8sb0JBQW9CO0lBc0IvQjtRQXJCVSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBRTdCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQTJDLENBQUM7UUFDN0UsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsU0FBUyxDQUFDLENBQUM7UUFDbkYsaUJBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUEyQixDQUFDLENBQUMsQ0FBQztRQUMvRSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFRN0Qsa0JBQWEsR0FBWSx1QkFBdUIsQ0FBQztRQUcvQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixH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QztJQUM1QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLENBQUMsZ0JBQWdCO1lBQzlFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7aUhBOUhVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhY2tCb3ggfSBmcm9tICcuL3V0aWxzL3RyYWNrQm94JztcclxuaW1wb3J0IHsgSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xyXG5pbXBvcnQgeyBJZCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMgfSBmcm9tICcuL2VudW1zL21ldGhvZC1mb3Itc2VsZWN0aW5nLXR5cGVzJztcclxuaW1wb3J0IHsgREVGQVVMVF9TRUxFQ1RfQllfQ0xJQ0sgfSBmcm9tICcuL2NvbnN0JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVmlydHVhbExpc3RTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgXyR1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX25leHRDb21wb25lbnRJZDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfJGl0ZW1DbGljayA9IG5ldyBTdWJqZWN0PElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IHVuZGVmaW5lZD4oKTtcclxuICAkaXRlbUNsaWNrID0gdGhpcy5fJGl0ZW1DbGljay5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfJHNlbGVjdGVkSWRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxJZD4gfCBJZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAkc2VsZWN0ZWRJZHMgPSB0aGlzLl8kc2VsZWN0ZWRJZHMuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgXyRtZXRob2RPZlNlbGVjdGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzPigwKTtcclxuICAkbWV0aG9kT2ZTZWxlY3RpbmcgPSB0aGlzLl8kbWV0aG9kT2ZTZWxlY3RpbmcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHNldCBtZXRob2RPZlNlbGVjdGluZyh2OiBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMpIHtcclxuICAgIHRoaXMuXyRtZXRob2RPZlNlbGVjdGluZy5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhY2tCb3g6IFRyYWNrQm94IHwgdW5kZWZpbmVkO1xyXG5cclxuICBzZWxlY3RCeUNsaWNrOiBib29sZWFuID0gREVGQVVMVF9TRUxFQ1RfQllfQ0xJQ0s7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fJG1ldGhvZE9mU2VsZWN0aW5nLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgc3dpdGNoICh2KSB7XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgY29uc3QgY3VyciA9IHRoaXMuXyRzZWxlY3RlZElkcy5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnIgIT09ICdudW1iZXInICYmIHR5cGVvZiBjdXJyICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5NVUxUSV9TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuXyRzZWxlY3RlZElkcy5nZXRWYWx1ZSgpKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KFtdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgTWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzLk5PTkU6XHJcbiAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0ZWRJZHMoaWRzOiBBcnJheTxJZD4gfCBJZCB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuXyRzZWxlY3RlZElkcy5nZXRWYWx1ZSgpKSAhPT0gSlNPTi5zdHJpbmdpZnkoaWRzKSkge1xyXG4gICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dChpZHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXRlbUNsaWNrKGRhdGE6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdEJ5Q2xpY2spIHtcclxuICAgICAgdGhpcy5zZWxlY3QoZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIGEgbGlzdCBpdGVtXHJcbiAgICogQHBhcmFtIGRhdGEgXHJcbiAgICogQHBhcmFtIHNlbGVjdGVkIC0gSWYgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgdG9nZ2xlIG1ldGhvZCBpcyBleGVjdXRlZCwgaWYgZmFsc2Ugb3IgdHJ1ZSwgdGhlbiB0aGUgc2VsZWN0aW9uL2Rlc2VsZWN0aW9uIGlzIHBlcmZvcm1lZC5cclxuICAgKi9cclxuICBzZWxlY3QoZGF0YTogSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IHVuZGVmaW5lZCwgc2VsZWN0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIGlmIChkYXRhICYmIGRhdGEuY29uZmlnLnNlbGVjdGFibGUpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLl8kbWV0aG9kT2ZTZWxlY3RpbmcuZ2V0VmFsdWUoKSkge1xyXG4gICAgICAgIGNhc2UgTWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzLlNFTEVDVDoge1xyXG4gICAgICAgICAgY29uc3QgY3VyciA9IHRoaXMuXyRzZWxlY3RlZElkcy5nZXRWYWx1ZSgpIGFzIChJZCB8IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dChjdXJyICE9PSBkYXRhPy5pZCA/IGRhdGE/LmlkIDogdW5kZWZpbmVkKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KHNlbGVjdGVkID8gZGF0YT8uaWQgOiB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgTWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzLk1VTFRJX1NFTEVDVDoge1xyXG4gICAgICAgICAgY29uc3QgY3VyciA9IFsuLi4odGhpcy5fJHNlbGVjdGVkSWRzLmdldFZhbHVlKCkgfHwgW10pIGFzIEFycmF5PElkPl0sIGluZGV4ID0gY3Vyci5pbmRleE9mKGRhdGEuaWQpO1xyXG4gICAgICAgICAgaWYgKHNlbGVjdGVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICBjdXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fJHNlbGVjdGVkSWRzLm5leHQoY3Vycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fJHNlbGVjdGVkSWRzLm5leHQoWy4uLmN1cnIsIGRhdGEuaWRdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KGN1cnIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KFsuLi5jdXJyLCBkYXRhLmlkXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgY3Vyci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KGN1cnIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuXyRzZWxlY3RlZElkcy5uZXh0KGN1cnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSBNZXRob2RzRm9yU2VsZWN0aW5nVHlwZXMuTk9ORTpcclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICB0aGlzLl8kc2VsZWN0ZWRJZHMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSh0cmFja0JveDogVHJhY2tCb3gpIHtcclxuICAgIHRoaXMuX3RyYWNrQm94ID0gdHJhY2tCb3g7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNvbXBvbmVudElkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25leHRDb21wb25lbnRJZCA9IHRoaXMuX25leHRDb21wb25lbnRJZCA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcclxuICAgICAgPyAwIDogdGhpcy5fbmV4dENvbXBvbmVudElkICsgMTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fJHVuc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuXyR1bnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuXyR1bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -69,6 +69,7 @@ const DEFAULT_BUFFER_SIZE = 2;
|
|
|
69
69
|
const DEFAULT_MAX_BUFFER_SIZE = 100;
|
|
70
70
|
const DEFAULT_LIST_SIZE = 400;
|
|
71
71
|
const DEFAULT_SNAP = false;
|
|
72
|
+
const DEFAULT_SELECT_BY_CLICK = true;
|
|
72
73
|
const DEFAULT_ENABLED_BUFFER_OPTIMIZATION = false;
|
|
73
74
|
const DEFAULT_DYNAMIC_SIZE = false;
|
|
74
75
|
const TRACK_BY_PROPERTY_NAME = 'id';
|
|
@@ -154,6 +155,7 @@ class NgVirtualListService {
|
|
|
154
155
|
this.$selectedIds = this._$selectedIds.asObservable();
|
|
155
156
|
this._$methodOfSelecting = new BehaviorSubject(0);
|
|
156
157
|
this.$methodOfSelecting = this._$methodOfSelecting.asObservable();
|
|
158
|
+
this.selectByClick = DEFAULT_SELECT_BY_CLICK;
|
|
157
159
|
this._$methodOfSelecting.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
158
160
|
switch (v) {
|
|
159
161
|
case MethodsForSelectingTypes.SELECT: {
|
|
@@ -181,25 +183,60 @@ class NgVirtualListService {
|
|
|
181
183
|
this._$methodOfSelecting.next(v);
|
|
182
184
|
}
|
|
183
185
|
setSelectedIds(ids) {
|
|
184
|
-
this._$selectedIds.
|
|
186
|
+
if (JSON.stringify(this._$selectedIds.getValue()) !== JSON.stringify(ids)) {
|
|
187
|
+
this._$selectedIds.next(ids);
|
|
188
|
+
}
|
|
185
189
|
}
|
|
186
190
|
itemClick(data) {
|
|
187
|
-
this.
|
|
191
|
+
if (this.selectByClick) {
|
|
192
|
+
this.select(data);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Selects a list item
|
|
197
|
+
* @param data
|
|
198
|
+
* @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
|
|
199
|
+
*/
|
|
200
|
+
select(data, selected = undefined) {
|
|
188
201
|
if (data && data.config.selectable) {
|
|
189
202
|
switch (this._$methodOfSelecting.getValue()) {
|
|
190
203
|
case MethodsForSelectingTypes.SELECT: {
|
|
191
204
|
const curr = this._$selectedIds.getValue();
|
|
192
|
-
|
|
205
|
+
if (selected === undefined) {
|
|
206
|
+
this._$selectedIds.next(curr !== (data === null || data === void 0 ? void 0 : data.id) ? data === null || data === void 0 ? void 0 : data.id : undefined);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this._$selectedIds.next(selected ? data === null || data === void 0 ? void 0 : data.id : undefined);
|
|
210
|
+
}
|
|
193
211
|
break;
|
|
194
212
|
}
|
|
195
213
|
case MethodsForSelectingTypes.MULTI_SELECT: {
|
|
196
214
|
const curr = [...(this._$selectedIds.getValue() || [])], index = curr.indexOf(data.id);
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
|
|
215
|
+
if (selected === undefined) {
|
|
216
|
+
if (index > -1) {
|
|
217
|
+
curr.splice(index, 1);
|
|
218
|
+
this._$selectedIds.next(curr);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
this._$selectedIds.next([...curr, data.id]);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else if (selected) {
|
|
225
|
+
if (index > -1) {
|
|
226
|
+
this._$selectedIds.next(curr);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
this._$selectedIds.next([...curr, data.id]);
|
|
230
|
+
}
|
|
200
231
|
}
|
|
201
232
|
else {
|
|
202
|
-
|
|
233
|
+
if (index > -1) {
|
|
234
|
+
curr.splice(index, 1);
|
|
235
|
+
this._$selectedIds.next(curr);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
this._$selectedIds.next(curr);
|
|
239
|
+
}
|
|
203
240
|
}
|
|
204
241
|
break;
|
|
205
242
|
}
|
|
@@ -250,10 +287,19 @@ class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
|
|
|
250
287
|
this._part = PART_DEFAULT_ITEM;
|
|
251
288
|
this._isSelected = false;
|
|
252
289
|
this.config = new BehaviorSubject$1({});
|
|
290
|
+
this.measures = new BehaviorSubject$1(undefined);
|
|
253
291
|
this.regular = false;
|
|
254
292
|
this._$data = new BehaviorSubject$1(this.data);
|
|
255
293
|
this.$data = this._$data.asObservable();
|
|
256
294
|
this._regularLength = SIZE_100_PERSENT;
|
|
295
|
+
this._selectHandler = (data) =>
|
|
296
|
+
/**
|
|
297
|
+
* Selects a list item
|
|
298
|
+
* @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
|
|
299
|
+
*/
|
|
300
|
+
(selected = undefined) => {
|
|
301
|
+
this._service.select(data, selected);
|
|
302
|
+
};
|
|
257
303
|
this._id = this._service.generateComponentId();
|
|
258
304
|
const $data = this.$data;
|
|
259
305
|
combineLatest([$data, this._service.$methodOfSelecting, this._service.$selectedIds]).pipe(takeUntil$1(this._$unsubscribe), map(([, m, ids]) => ({ method: m, ids })), tap$1(({ method, ids }) => {
|
|
@@ -279,6 +325,7 @@ class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
|
|
|
279
325
|
}
|
|
280
326
|
this.updatePartStr(this.data, this._isSelected);
|
|
281
327
|
this.updateConfig(this.data);
|
|
328
|
+
this.updateMeasures(this.data);
|
|
282
329
|
})).subscribe();
|
|
283
330
|
}
|
|
284
331
|
get id() {
|
|
@@ -292,6 +339,7 @@ class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
|
|
|
292
339
|
this.data = v;
|
|
293
340
|
this.updatePartStr(v, this._isSelected);
|
|
294
341
|
this.updateConfig(v);
|
|
342
|
+
this.updateMeasures(v);
|
|
295
343
|
this.update();
|
|
296
344
|
this._$data.next(v);
|
|
297
345
|
this._cdr.detectChanges();
|
|
@@ -321,8 +369,11 @@ class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
|
|
|
321
369
|
get element() {
|
|
322
370
|
return this._elementRef.nativeElement;
|
|
323
371
|
}
|
|
372
|
+
updateMeasures(v) {
|
|
373
|
+
this.measures.next((v === null || v === void 0 ? void 0 : v.measures) ? Object.assign({}, v.measures) : undefined);
|
|
374
|
+
}
|
|
324
375
|
updateConfig(v) {
|
|
325
|
-
this.config.next(Object.assign(Object.assign({}, (v === null || v === void 0 ? void 0 : v.config) || {}), { selected: this._isSelected }));
|
|
376
|
+
this.config.next(Object.assign(Object.assign({}, (v === null || v === void 0 ? void 0 : v.config) || {}), { selected: this._isSelected, select: this._selectHandler(v) }));
|
|
326
377
|
}
|
|
327
378
|
update() {
|
|
328
379
|
const data = this.data, regular = this.regular, length = this._regularLength;
|
|
@@ -415,13 +466,13 @@ class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
|
|
|
415
466
|
}
|
|
416
467
|
}
|
|
417
468
|
NgVirtualListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgVirtualListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: NgVirtualListService }], target: i0.ɵɵFactoryTarget.Component });
|
|
418
|
-
NgVirtualListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgVirtualListItemComponent, selector: "ng-virtual-list-item", host: { attributes: { "role": "listitem" }, classAttribute: "ngvl__item" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"data\">\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': data.config.snapped,\r\n 'snapped-out': data.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n <ng-container *ngIf=\"itemRenderer\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer\"\r\n [ngTemplateOutletContext]=\"{data: data.data || {}, config: config | async}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
469
|
+
NgVirtualListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgVirtualListItemComponent, selector: "ng-virtual-list-item", host: { attributes: { "role": "listitem" }, classAttribute: "ngvl__item" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"data\">\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': data.config.snapped,\r\n 'snapped-out': data.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n <ng-container *ngIf=\"itemRenderer\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer\"\r\n [ngTemplateOutletContext]=\"{data: data.data || {}, measures: measures | async, config: config | async}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
419
470
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgVirtualListItemComponent, decorators: [{
|
|
420
471
|
type: Component,
|
|
421
472
|
args: [{ selector: 'ng-virtual-list-item', host: {
|
|
422
473
|
'class': 'ngvl__item',
|
|
423
474
|
'role': 'listitem',
|
|
424
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"data\">\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': data.config.snapped,\r\n 'snapped-out': data.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n <ng-container *ngIf=\"itemRenderer\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer\"\r\n [ngTemplateOutletContext]=\"{data: data.data || {}, config: config | async}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"] }]
|
|
475
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"data\">\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': data.config.snapped,\r\n 'snapped-out': data.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n <ng-container *ngIf=\"itemRenderer\">\r\n <ng-container [ngTemplateOutlet]=\"itemRenderer\"\r\n [ngTemplateOutletContext]=\"{data: data.data || {}, measures: measures | async, config: config | async}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"] }]
|
|
425
476
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: NgVirtualListService }]; } });
|
|
426
477
|
|
|
427
478
|
/**
|
|
@@ -1816,6 +1867,8 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
1816
1867
|
};
|
|
1817
1868
|
this._$selectedIds = new BehaviorSubject$1(undefined);
|
|
1818
1869
|
this.$selectedIds = this._$selectedIds.asObservable();
|
|
1870
|
+
this._$selectByClick = new BehaviorSubject$1(DEFAULT_SELECT_BY_CLICK);
|
|
1871
|
+
this.$selectByClick = this._$selectByClick.asObservable();
|
|
1819
1872
|
this._$snap = new BehaviorSubject$1(DEFAULT_SNAP);
|
|
1820
1873
|
this.$snap = this._$snap.asObservable();
|
|
1821
1874
|
this._$enabledBufferOptimization = new BehaviorSubject$1(DEFAULT_ENABLED_BUFFER_OPTIMIZATION);
|
|
@@ -1973,7 +2026,10 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
1973
2026
|
this._$initialized = new BehaviorSubject$1(false);
|
|
1974
2027
|
this.$initialized = this._$initialized.asObservable();
|
|
1975
2028
|
this._trackBox.displayComponents = this._displayComponents;
|
|
1976
|
-
const $trackBy = this.$trackBy;
|
|
2029
|
+
const $trackBy = this.$trackBy, $selectByClick = this.$selectByClick;
|
|
2030
|
+
$selectByClick.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
2031
|
+
this._service.selectByClick = v;
|
|
2032
|
+
})).subscribe();
|
|
1977
2033
|
$trackBy.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
1978
2034
|
this._trackBox.trackingPropertyName = v;
|
|
1979
2035
|
})).subscribe();
|
|
@@ -1993,7 +2049,6 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
1993
2049
|
this._isMultiSelecting = true;
|
|
1994
2050
|
this._isNotSelecting = this._isSingleSelecting = false;
|
|
1995
2051
|
if (el) {
|
|
1996
|
-
console.log('set role', ROLE_LIST_BOX);
|
|
1997
2052
|
el.setAttribute('role', ROLE_LIST_BOX);
|
|
1998
2053
|
}
|
|
1999
2054
|
this._service.methodOfSelecting = MethodsForSelectingTypes.MULTI_SELECT;
|
|
@@ -2002,7 +2057,6 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
2002
2057
|
this._isSingleSelecting = true;
|
|
2003
2058
|
this._isNotSelecting = this._isMultiSelecting = false;
|
|
2004
2059
|
if (el) {
|
|
2005
|
-
console.log('set role', ROLE_LIST_BOX);
|
|
2006
2060
|
el.setAttribute('role', ROLE_LIST_BOX);
|
|
2007
2061
|
}
|
|
2008
2062
|
this._service.methodOfSelecting = MethodsForSelectingTypes.SELECT;
|
|
@@ -2011,7 +2065,6 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
2011
2065
|
this._isNotSelecting = true;
|
|
2012
2066
|
this._isSingleSelecting = this._isMultiSelecting = false;
|
|
2013
2067
|
if (el) {
|
|
2014
|
-
console.log('set role', ROLE_LIST);
|
|
2015
2068
|
el.setAttribute('role', ROLE_LIST);
|
|
2016
2069
|
}
|
|
2017
2070
|
this._service.methodOfSelecting = MethodsForSelectingTypes.NONE;
|
|
@@ -2060,10 +2113,19 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
2060
2113
|
this._service.$itemClick.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
2061
2114
|
this.onItemClick.emit(v !== null && v !== void 0 ? v : undefined);
|
|
2062
2115
|
})).subscribe();
|
|
2063
|
-
|
|
2064
|
-
|
|
2116
|
+
let isSelectedIdsFirstEmit = 0;
|
|
2117
|
+
this._service.$selectedIds.pipe(takeUntil(this._$unsubscribe), distinctUntilChanged(), tap(v => {
|
|
2118
|
+
if (this.isSingleSelecting || (this.isMultiSelecting && isSelectedIdsFirstEmit >= 2)) {
|
|
2119
|
+
const curr = this._$selectedIds.getValue();
|
|
2120
|
+
if ((this.isSingleSelecting && JSON.stringify(v) !== JSON.stringify(curr)) || (isSelectedIdsFirstEmit === 2 && JSON.stringify(v) !== JSON.stringify(curr)) || isSelectedIdsFirstEmit > 2) {
|
|
2121
|
+
this.onSelect.emit(v);
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
if (isSelectedIdsFirstEmit < 3) {
|
|
2125
|
+
isSelectedIdsFirstEmit++;
|
|
2126
|
+
}
|
|
2065
2127
|
})).subscribe();
|
|
2066
|
-
$selectedIds.pipe(takeUntil(this._$unsubscribe), tap(v => {
|
|
2128
|
+
$selectedIds.pipe(takeUntil(this._$unsubscribe), distinctUntilChanged(), tap(v => {
|
|
2067
2129
|
this._service.setSelectedIds(v);
|
|
2068
2130
|
})).subscribe();
|
|
2069
2131
|
}
|
|
@@ -2096,6 +2158,19 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
2096
2158
|
}
|
|
2097
2159
|
;
|
|
2098
2160
|
get selectedIds() { return this._$selectedIds.getValue(); }
|
|
2161
|
+
/**
|
|
2162
|
+
* If false, the element is selected using the config.select method passed to the template;
|
|
2163
|
+
* if true, the element is selected by clicking on it. The default value is true.
|
|
2164
|
+
*/
|
|
2165
|
+
set selectByClick(v) {
|
|
2166
|
+
if (this._$selectByClick.getValue() === v) {
|
|
2167
|
+
return;
|
|
2168
|
+
}
|
|
2169
|
+
this._$selectByClick.next(v);
|
|
2170
|
+
this._cdr.markForCheck();
|
|
2171
|
+
}
|
|
2172
|
+
;
|
|
2173
|
+
get selectByClick() { return this._$selectByClick.getValue(); }
|
|
2099
2174
|
/**
|
|
2100
2175
|
* Determines whether elements will snap. Default value is "true".
|
|
2101
2176
|
*/
|
|
@@ -2501,7 +2576,7 @@ class NgVirtualListComponent extends DisposableComponent {
|
|
|
2501
2576
|
}
|
|
2502
2577
|
NgVirtualListComponent.__nextId = 0;
|
|
2503
2578
|
NgVirtualListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgVirtualListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: NgVirtualListService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2504
|
-
NgVirtualListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgVirtualListComponent, selector: "ng-virtual-list", inputs: { items: "items", selectedIds: "selectedIds", snap: "snap", enabledBufferOptimization: "enabledBufferOptimization", itemRenderer: "itemRenderer", stickyMap: "stickyMap", itemConfigMap: "itemConfigMap", itemSize: "itemSize", dynamicSize: "dynamicSize", direction: "direction", itemsOffset: "itemsOffset", bufferSize: "bufferSize", maxBufferSize: "maxBufferSize", trackBy: "trackBy", snappingMethod: "snappingMethod", methodForSelecting: "methodForSelecting" }, outputs: { onScroll: "onScroll", onScrollEnd: "onScrollEnd", onViewportChange: "onViewportChange", onItemClick: "onItemClick", onSelect: "onSelect" }, providers: [NgVirtualListService], viewQueries: [{ propertyName: "_listContainerRef", first: true, predicate: ["renderersContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_container", first: true, predicate: ["container"], descendants: true, read: (ElementRef) }, { propertyName: "_list", first: true, predicate: ["list"], descendants: true, read: (ElementRef) }, { propertyName: "_snapContainerRef", first: true, predicate: ["snapRendererContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_snappedContainer", first: true, predicate: ["snapped"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"snap\" #snapped part=\"snapped-item\" class=\"ngvl__list-snapper\">\r\n <ng-container #snapRendererContainer></ng-container>\r\n</div>\r\n<div #container part=\"scroller\" class=\"ngvl__scroller\">\r\n <div [attr.aria-orientation]=\"orientation\" #list part=\"list\" class=\"ngvl__list\">\r\n <ng-container #renderersContainer></ng-container>\r\n </div>\r\n</div>", styles: [":host{position:relative;display:block;width:400px;overflow:hidden}:host(.horizontal){height:48px}:host(.horizontal) .ngvl__list{display:inline-flex}:host(.horizontal) .ngvl__scroller{overflow:auto hidden}:host(.vertical) .ngvl__scroller{overflow:hidden auto}:host(.vertical){height:320px}.ngvl__scroller{overflow:auto;width:100%;height:100%}.ngvl__list-snapper{pointer-events:none;position:absolute;list-style:none;left:0;top:0;z-index:1}.ngvl__list{position:relative;list-style:none;padding:0;margin:0;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom });
|
|
2579
|
+
NgVirtualListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgVirtualListComponent, selector: "ng-virtual-list", inputs: { items: "items", selectedIds: "selectedIds", selectByClick: "selectByClick", snap: "snap", enabledBufferOptimization: "enabledBufferOptimization", itemRenderer: "itemRenderer", stickyMap: "stickyMap", itemConfigMap: "itemConfigMap", itemSize: "itemSize", dynamicSize: "dynamicSize", direction: "direction", itemsOffset: "itemsOffset", bufferSize: "bufferSize", maxBufferSize: "maxBufferSize", trackBy: "trackBy", snappingMethod: "snappingMethod", methodForSelecting: "methodForSelecting" }, outputs: { onScroll: "onScroll", onScrollEnd: "onScrollEnd", onViewportChange: "onViewportChange", onItemClick: "onItemClick", onSelect: "onSelect" }, providers: [NgVirtualListService], viewQueries: [{ propertyName: "_listContainerRef", first: true, predicate: ["renderersContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_container", first: true, predicate: ["container"], descendants: true, read: (ElementRef) }, { propertyName: "_list", first: true, predicate: ["list"], descendants: true, read: (ElementRef) }, { propertyName: "_snapContainerRef", first: true, predicate: ["snapRendererContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_snappedContainer", first: true, predicate: ["snapped"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"snap\" #snapped part=\"snapped-item\" class=\"ngvl__list-snapper\">\r\n <ng-container #snapRendererContainer></ng-container>\r\n</div>\r\n<div #container part=\"scroller\" class=\"ngvl__scroller\">\r\n <div [attr.aria-orientation]=\"orientation\" #list part=\"list\" class=\"ngvl__list\">\r\n <ng-container #renderersContainer></ng-container>\r\n </div>\r\n</div>", styles: [":host{position:relative;display:block;width:400px;overflow:hidden}:host(.horizontal){height:48px}:host(.horizontal) .ngvl__list{display:inline-flex}:host(.horizontal) .ngvl__scroller{overflow:auto hidden}:host(.vertical) .ngvl__scroller{overflow:hidden auto}:host(.vertical){height:320px}.ngvl__scroller{overflow:auto;width:100%;height:100%}.ngvl__list-snapper{pointer-events:none;position:absolute;list-style:none;left:0;top:0;z-index:1}.ngvl__list{position:relative;list-style:none;padding:0;margin:0;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom });
|
|
2505
2580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgVirtualListComponent, decorators: [{
|
|
2506
2581
|
type: Component,
|
|
2507
2582
|
args: [{ selector: 'ng-virtual-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, providers: [NgVirtualListService], template: "<div *ngIf=\"snap\" #snapped part=\"snapped-item\" class=\"ngvl__list-snapper\">\r\n <ng-container #snapRendererContainer></ng-container>\r\n</div>\r\n<div #container part=\"scroller\" class=\"ngvl__scroller\">\r\n <div [attr.aria-orientation]=\"orientation\" #list part=\"list\" class=\"ngvl__list\">\r\n <ng-container #renderersContainer></ng-container>\r\n </div>\r\n</div>", styles: [":host{position:relative;display:block;width:400px;overflow:hidden}:host(.horizontal){height:48px}:host(.horizontal) .ngvl__list{display:inline-flex}:host(.horizontal) .ngvl__scroller{overflow:auto hidden}:host(.vertical) .ngvl__scroller{overflow:hidden auto}:host(.vertical){height:320px}.ngvl__scroller{overflow:auto;width:100%;height:100%}.ngvl__list-snapper{pointer-events:none;position:absolute;list-style:none;left:0;top:0;z-index:1}.ngvl__list{position:relative;list-style:none;padding:0;margin:0;width:100%;height:100%}\n"] }]
|
|
@@ -2534,6 +2609,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2534
2609
|
type: Input
|
|
2535
2610
|
}], selectedIds: [{
|
|
2536
2611
|
type: Input
|
|
2612
|
+
}], selectByClick: [{
|
|
2613
|
+
type: Input
|
|
2537
2614
|
}], snap: [{
|
|
2538
2615
|
type: Input
|
|
2539
2616
|
}], enabledBufferOptimization: [{
|