@libs-ui/components-scroll-measure-items-direction-horizontal 0.2.306 → 0.2.308-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/direction-horizontal.directive.d.ts +1 -0
- package/esm2022/direction-horizontal.directive.mjs +24 -17
- package/esm2022/interfaces/direction-horizontal.interface.mjs +1 -1
- package/fesm2022/libs-ui-components-scroll-measure-items-direction-horizontal.mjs +23 -16
- package/fesm2022/libs-ui-components-scroll-measure-items-direction-horizontal.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -18,6 +18,7 @@ export declare class LibsUiScrollMeasureItemDirectionHorizontalDirective impleme
|
|
|
18
18
|
constructor();
|
|
19
19
|
ngAfterViewInit(): void;
|
|
20
20
|
private get ElementScroll();
|
|
21
|
+
get FunctionsControl(): IScrollMeasureItemDirectionHorizontalFunctionsControl;
|
|
21
22
|
private handlerScroll;
|
|
22
23
|
private scrollInto;
|
|
23
24
|
private scrollToPosition;
|
|
@@ -47,13 +47,15 @@ export class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
47
47
|
newItems.push(newItem);
|
|
48
48
|
}
|
|
49
49
|
this.storeItems.set(newItems);
|
|
50
|
-
this.viewPortItems.set(this.storeItems()
|
|
50
|
+
this.viewPortItems.set(this.storeItems()
|
|
51
|
+
.slice(this.start(), this.end() + 3)
|
|
52
|
+
.map((item) => item['ref']));
|
|
51
53
|
this.outViewPortItem.emit(this.viewPortItems());
|
|
52
54
|
this.divVirtual.style.position = 'absolute';
|
|
53
55
|
this.divVirtual.style.width = `${width}px`;
|
|
54
56
|
this.divVirtual.style.height = '1px';
|
|
55
|
-
this.elementRef.nativeElement.classList.add(
|
|
56
|
-
this.elementRef.nativeElement.classList.remove(
|
|
57
|
+
this.elementRef.nativeElement.classList.add('relative');
|
|
58
|
+
this.elementRef.nativeElement.classList.remove('w-full');
|
|
57
59
|
this.elementRef.nativeElement.style.paddingLeft = `0px`;
|
|
58
60
|
this.ElementScroll.append(this.divVirtual);
|
|
59
61
|
this.outDivVirtual.emit(this.divVirtual);
|
|
@@ -63,18 +65,21 @@ export class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
63
65
|
ngAfterViewInit() {
|
|
64
66
|
setTimeout(() => {
|
|
65
67
|
fromEvent(this.ElementScroll, 'scroll').pipe(takeUntil(this.onDestroy)).subscribe(this.handlerScroll.bind(this));
|
|
66
|
-
this.outFunctionControl.emit(
|
|
67
|
-
scrollInto: this.scrollInto.bind(this),
|
|
68
|
-
scrollToPosition: this.scrollToPosition.bind(this),
|
|
69
|
-
scrollToIndex: this.scrollToIndex.bind(this),
|
|
70
|
-
reCalculatorViewPort: this.reCalculatorViewPort.bind(this)
|
|
71
|
-
});
|
|
68
|
+
this.outFunctionControl.emit(this.FunctionsControl);
|
|
72
69
|
});
|
|
73
70
|
}
|
|
74
71
|
get ElementScroll() {
|
|
75
72
|
return this.elementScroll() || this.elementRef.nativeElement;
|
|
76
73
|
}
|
|
77
74
|
/* FUNCTIONS */
|
|
75
|
+
get FunctionsControl() {
|
|
76
|
+
return {
|
|
77
|
+
scrollInto: this.scrollInto.bind(this),
|
|
78
|
+
scrollToPosition: this.scrollToPosition.bind(this),
|
|
79
|
+
scrollToIndex: this.scrollToIndex.bind(this),
|
|
80
|
+
reCalculatorViewPort: this.reCalculatorViewPort.bind(this),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
78
83
|
handlerScroll() {
|
|
79
84
|
if (!this.storeItems()?.length) {
|
|
80
85
|
return;
|
|
@@ -100,13 +105,15 @@ export class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
100
105
|
if (this.start() < 0) {
|
|
101
106
|
this.start.set(0);
|
|
102
107
|
}
|
|
103
|
-
this.viewPortItems.set(this.storeItems()
|
|
108
|
+
this.viewPortItems.set(this.storeItems()
|
|
109
|
+
.slice(this.start(), this.end() + 3)
|
|
110
|
+
.map((item) => item['ref']));
|
|
104
111
|
this.outViewPortItem.emit(this.viewPortItems());
|
|
105
112
|
}
|
|
106
113
|
async scrollInto(itemScroll) {
|
|
107
|
-
const itemFound = this.storeItems().find(item => item[
|
|
114
|
+
const itemFound = this.storeItems().find((item) => item['ref'] === itemScroll);
|
|
108
115
|
if (itemFound) {
|
|
109
|
-
this.ElementScroll.scrollLeft = itemFound[
|
|
116
|
+
this.ElementScroll.scrollLeft = itemFound['start'];
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
119
|
async scrollToPosition(position) {
|
|
@@ -115,14 +122,14 @@ export class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
115
122
|
async scrollToIndex(index) {
|
|
116
123
|
const itemOfIndex = this.storeItems()[index];
|
|
117
124
|
if (itemOfIndex) {
|
|
118
|
-
this.ElementScroll.scrollLeft = itemOfIndex[
|
|
125
|
+
this.ElementScroll.scrollLeft = itemOfIndex['start'];
|
|
119
126
|
}
|
|
120
127
|
}
|
|
121
128
|
async reCalculatorViewPort() {
|
|
122
129
|
let width = 0;
|
|
123
|
-
this.storeItems.update(items => {
|
|
130
|
+
this.storeItems.update((items) => {
|
|
124
131
|
items.forEach(async (item) => {
|
|
125
|
-
const itemWidth = await this.functionGetWidthItem()(item[
|
|
132
|
+
const itemWidth = await this.functionGetWidthItem()(item['ref']);
|
|
126
133
|
set(item, 'itemWidth', itemWidth);
|
|
127
134
|
set(item, 'start', width);
|
|
128
135
|
width += itemWidth;
|
|
@@ -146,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
146
153
|
args: [{
|
|
147
154
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
148
155
|
selector: '[LibsUiScrollMeasureItemDirectionHorizontalDirective]',
|
|
149
|
-
standalone: true
|
|
156
|
+
standalone: true,
|
|
150
157
|
}]
|
|
151
158
|
}], ctorParameters: () => [] });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLWhvcml6b250YWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1tZWFzdXJlLWl0ZW1zL2RpcmVjdGlvbi1ob3Jpem9udGFsL3NyYy9kaXJlY3Rpb24taG9yaXpvbnRhbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPckQsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxtQkFBbUI7SUFDWixhQUFhLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN0RCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLEdBQUcsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsVUFBVSxHQUFHLE1BQU0sQ0FBNkIsRUFBRSxDQUFDLENBQUM7SUFDcEQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsZ0JBQWdCO0lBQ1AsYUFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUM5QyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQyxDQUFDO0lBQ3hFLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7SUFFOUMsaUJB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c291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVNjcm9sbE1lYXN1cmVJdGVtRGlyZWN0aW9uSG9yaXpvbnRhbEZ1bmN0aW9uc0NvbnRyb2wgfSBmcm9tICcuL2ludGVyZmFjZXMvZGlyZWN0aW9uLWhvcml6b250YWwuaW50ZXJmYWNlJztcbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tMaWJzVWlTY3JvbGxNZWFzdXJlSXRlbURpcmVjdGlvbkhvcml6b250YWxEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlTY3JvbGxNZWFzdXJlSXRlbURpcmVjdGlvbkhvcml6b250YWxEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHB1YmxpYyB2aWV3UG9ydEl0ZW1zID0gc2lnbmFsPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+PihbXSk7XG4gIHByaXZhdGUgc3RhcnQgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBlbmQgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBzdG9yZUl0ZW1zID0gc2lnbmFsPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+PihbXSk7XG4gIHByaXZhdGUgZGl2VmlydHVhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBlbGVtZW50U2Nyb2xsID0gaW5wdXQucmVxdWlyZWQ8SFRNTEVsZW1lbnQ+KCk7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uR2V0V2lkdGhJdGVtID0gaW5wdXQucmVxdWlyZWQ8KGl0ZW06IGFueSkgPT4gUHJvbWlzZTxudW1iZXI+PigpO1xuICByZWFkb25seSBpdGVtcyA9IGlucHV0LnJlcXVpcmVkPEFycmF5PGFueT4+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Vmlld1BvcnRJdGVtID0gb3V0cHV0PEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+PigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SVNjcm9sbE1lYXN1cmVJdGVtRGlyZWN0aW9uSG9yaXpvbnRhbEZ1bmN0aW9uc0NvbnRyb2w+KCk7XG4gIHJlYWRvbmx5IG91dERpdlZpcnR1YWwgPSBvdXRwdXQ8SFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG5cbiAgICAgIGlmICghdW50cmFja2VkKCgpID0+IHRoaXMuRWxlbWVudFNjcm9sbCkgfHwgIXVudHJhY2tlZCgoKSA9PiB0aGlzLmZ1bmN0aW9uR2V0V2lkdGhJdGVtKCkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xuICAgICAgdW50cmFja2VkKGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5zdGFydC5zZXQoMCk7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLkVsZW1lbnRTY3JvbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCB3aWR0aCA9IDA7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW1zID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaW5kZXggaW4gaXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW0gPSBjbG9uZURlZXAoaXRlbSk7XG4gICAgICAgICAgbmV3SXRlbS5yZWYgPSBpdGVtO1xuICAgICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IGF3YWl0IHRoaXMuZnVuY3Rpb25HZXRXaWR0aEl0ZW0oKShpdGVtKTtcbiAgICAgICAgICBuZXdJdGVtLml0ZW1XaWR0aCA9IGl0ZW1XaWR0aDtcbiAgICAgICAgICBuZXdJdGVtLnN0YXJ0ID0gd2lkdGg7XG4gICAgICAgICAgd2lkdGggKz0gaXRlbVdpZHRoO1xuICAgICAgICAgIG5ld0l0ZW0uZW5kID0gd2lkdGg7XG4gICAgICAgICAgaWYgKG5ld0l0ZW0uZW5kIDw9IHJlY3Qud2lkdGggKyB0aGlzLkVsZW1lbnRTY3JvbGwuc2Nyb2xsTGVmdCkge1xuICAgICAgICAgICAgdGhpcy5lbmQuc2V0KCtpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5ld0l0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZUl0ZW1zLnNldChuZXdJdGVtcyk7XG4gICAgICAgIHRoaXMudmlld1BvcnRJdGVtcy5zZXQodGhpcy5zdG9yZUl0ZW1zKCkuc2xpY2UodGhpcy5zdGFydCgpLCB0aGlzLmVuZCgpICsgMykubWFwKGl0ZW0gPT4gaXRlbVsncmVmJ10pKTtcbiAgICAgICAgdGhpcy5vdXRWaWV3UG9ydEl0ZW0uZW1pdCh0aGlzLnZpZXdQb3J0SXRlbXMoKSk7XG5cbiAgICAgICAgdGhpcy5kaXZWaXJ0dWFsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgdGhpcy5kaXZWaXJ0dWFsLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgICB0aGlzLmRpdlZpcnR1YWwuc3R5bGUuaGVpZ2h0ID0gJzFweCc7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJyZWxhdGl2ZVwiKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInctZnVsbFwiKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQgPSBgMHB4YDtcbiAgICAgICAgdGhpcy5FbGVtZW50U2Nyb2xsLmFwcGVuZCh0aGlzLmRpdlZpcnR1YWwpO1xuICAgICAgICB0aGlzLm91dERpdlZpcnR1YWwuZW1pdCh0aGlzLmRpdlZpcnR1YWwpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGZyb21FdmVudDxFdmVudD4odGhpcy5FbGVtZW50U2Nyb2xsLCAnc2Nyb2xsJykucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5oYW5kbGVyU2Nyb2xsLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5vdXRGdW5jdGlvbkNvbnRyb2wuZW1pdCh7XG4gICAgICAgIHNjcm9sbEludG86IHRoaXMuc2Nyb2xsSW50by5iaW5kKHRoaXMpLFxuICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uOiB0aGlzLnNjcm9sbFRvUG9zaXRpb24uYmluZCh0aGlzKSxcbiAgICAgICAgc2Nyb2xsVG9JbmRleDogdGhpcy5zY3JvbGxUb0luZGV4LmJpbmQodGhpcyksXG4gICAgICAgIHJlQ2FsY3VsYXRvclZpZXdQb3J0OiB0aGlzLnJlQ2FsY3VsYXRvclZpZXdQb3J0LmJpbmQodGhpcylcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgRWxlbWVudFNjcm9sbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50U2Nyb2xsKCkgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcml2YXRlIGhhbmRsZXJTY3JvbGwoKSB7XG4gICAgaWYgKCF0aGlzLnN0b3JlSXRlbXMoKT8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLkVsZW1lbnRTY3JvbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHN0YXJ0ID0gdGhpcy5zdGFydCgpO1xuICAgIGxldCBpc1NldFN0YXJ0UG9zaXRpb25lZCA9IGZhbHNlXG5cbiAgICBmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuc3RvcmVJdGVtcygpKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5zdG9yZUl0ZW1zKClbaW5kZXhdO1xuICAgICAgaWYgKGl0ZW1bJ2VuZCddID4gcmVjdC53aWR0aCArIHRoaXMuRWxlbWVudFNjcm9sbC5zY3JvbGxMZWZ0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdGhpcy5lbmQuc2V0KCtpbmRleCk7XG4gICAgICBpZiAoaXRlbVsnZW5kJ10gPj0gdGhpcy5FbGVtZW50U2Nyb2xsLnNjcm9sbExlZnQgJiYgIWlzU2V0U3RhcnRQb3NpdGlvbmVkKSB7XG4gICAgICAgIHN0YXJ0ID0gK2luZGV4O1xuICAgICAgICBpc1NldFN0YXJ0UG9zaXRpb25lZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0ICE9PSB0aGlzLnN0YXJ0KCkpIHtcbiAgICAgIHRoaXMuc3RhcnQuc2V0KHN0YXJ0KTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0ID0gYCR7dGhpcy5zdG9yZUl0ZW1zKClbc3RhcnRdWydzdGFydCddfXB4YDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGFydCgpIDwgMCkge1xuICAgICAgdGhpcy5zdGFydC5zZXQoMCk7XG4gICAgfVxuICAgIHRoaXMudmlld1BvcnRJdGVtcy5zZXQodGhpcy5zdG9yZUl0ZW1zKCkuc2xpY2UodGhpcy5zdGFydCgpLCB0aGlzLmVuZCgpICsgMykubWFwKGl0ZW0gPT4gaXRlbVsncmVmJ10pKTtcbiAgICB0aGlzLm91dFZpZXdQb3J0SXRlbS5lbWl0KHRoaXMudmlld1BvcnRJdGVtcygpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2Nyb2xsSW50byhpdGVtU2Nyb2xsOiBhbnkpIHtcbiAgICBjb25zdCBpdGVtRm91bmQgPSB0aGlzLnN0b3JlSXRlbXMoKS5maW5kKGl0ZW0gPT4gaXRlbVtcInJlZlwiXSA9PT0gaXRlbVNjcm9sbCk7XG5cbiAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICB0aGlzLkVsZW1lbnRTY3JvbGwuc2Nyb2xsTGVmdCA9IGl0ZW1Gb3VuZFtcInN0YXJ0XCJdO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGFzeW5jIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb246IG51bWJlcikge1xuICAgIHRoaXMuRWxlbWVudFNjcm9sbC5zY3JvbGxMZWZ0ID0gcG9zaXRpb247XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGl0ZW1PZkluZGV4ID0gdGhpcy5zdG9yZUl0ZW1zKClbaW5kZXhdO1xuXG4gICAgaWYgKGl0ZW1PZkluZGV4KSB7XG4gICAgICB0aGlzLkVsZW1lbnRTY3JvbGwuc2Nyb2xsTGVmdCA9IGl0ZW1PZkluZGV4W1wic3RhcnRcIl07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZUNhbGN1bGF0b3JWaWV3UG9ydCgpIHtcbiAgICBsZXQgd2lkdGggPSAwO1xuXG4gICAgdGhpcy5zdG9yZUl0ZW1zLnVwZGF0ZShpdGVtcyA9PiB7XG4gICAgICBpdGVtcy5mb3JFYWNoKGFzeW5jIChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IGF3YWl0IHRoaXMuZnVuY3Rpb25HZXRXaWR0aEl0ZW0oKShpdGVtW1wicmVmXCJdKTtcblxuICAgICAgICBzZXQoaXRlbSwgJ2l0ZW1XaWR0aCcsIGl0ZW1XaWR0aCk7XG4gICAgICAgIHNldChpdGVtLCAnc3RhcnQnLCB3aWR0aCk7XG4gICAgICAgIHdpZHRoICs9IGl0ZW1XaWR0aDtcbiAgICAgICAgc2V0KGl0ZW0sICdlbmQnLCB3aWR0aCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbLi4uaXRlbXNdO1xuICAgIH0pO1xuICAgIHRoaXMuZGl2VmlydHVhbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICB0aGlzLmhhbmRsZXJTY3JvbGwoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGl2VmlydHVhbC5yZW1vdmUoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLWhvcml6b250YWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1tZWFzdXJlLWl0ZW1zL2RpcmVjdGlvbi1ob3Jpem9udGFsL3NyYy9kaXJlY3Rpb24taG9yaXpvbnRhbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPckQsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxtQkFBbUI7SUFDWixhQUFhLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN0RCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLEdBQUcsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsVUFBVSxHQUFHLE1BQU0sQ0FBNkIsRUFBRSxDQUFDLENBQUM7SUFDcEQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsZ0JBQWdCO0lBQ1AsYUFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUM5QyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQyxDQUFDO0lBQ3hFLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7SUFFOUMsaUJB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L0QsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx1REFBdUQ7b0JBQ2pFLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgc2V0IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElTY3JvbGxNZWFzdXJlSXRlbURpcmVjdGlvbkhvcml6b250YWxGdW5jdGlvbnNDb250cm9sIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2RpcmVjdGlvbi1ob3Jpem9udGFsLmludGVyZmFjZSc7XG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbTGlic1VpU2Nyb2xsTWVhc3VyZUl0ZW1EaXJlY3Rpb25Ib3Jpem9udGFsRGlyZWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaVNjcm9sbE1lYXN1cmVJdGVtRGlyZWN0aW9uSG9yaXpvbnRhbERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHVibGljIHZpZXdQb3J0SXRlbXMgPSBzaWduYWw8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+KFtdKTtcbiAgcHJpdmF0ZSBzdGFydCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIGVuZCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIHN0b3JlSXRlbXMgPSBzaWduYWw8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+KFtdKTtcbiAgcHJpdmF0ZSBkaXZWaXJ0dWFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGVsZW1lbnRTY3JvbGwgPSBpbnB1dC5yZXF1aXJlZDxIVE1MRWxlbWVudD4oKTtcbiAgcmVhZG9ubHkgZnVuY3Rpb25HZXRXaWR0aEl0ZW0gPSBpbnB1dC5yZXF1aXJlZDwoaXRlbTogYW55KSA9PiBQcm9taXNlPG51bWJlcj4+KCk7XG4gIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8YW55Pj4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRWaWV3UG9ydEl0ZW0gPSBvdXRwdXQ8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJU2Nyb2xsTWVhc3VyZUl0ZW1EaXJlY3Rpb25Ib3Jpem9udGFsRnVuY3Rpb25zQ29udHJvbD4oKTtcbiAgcmVhZG9ubHkgb3V0RGl2VmlydHVhbCA9IG91dHB1dDxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOSkVDVFxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdW50cmFja2VkKCgpID0+IHRoaXMuRWxlbWVudFNjcm9sbCkgfHwgIXVudHJhY2tlZCgoKSA9PiB0aGlzLmZ1bmN0aW9uR2V0V2lkdGhJdGVtKCkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xuICAgICAgdW50cmFja2VkKGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5zdGFydC5zZXQoMCk7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLkVsZW1lbnRTY3JvbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCB3aWR0aCA9IDA7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW1zID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaW5kZXggaW4gaXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW0gPSBjbG9uZURlZXAoaXRlbSk7XG4gICAgICAgICAgbmV3SXRlbS5yZWYgPSBpdGVtO1xuICAgICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IGF3YWl0IHRoaXMuZnVuY3Rpb25HZXRXaWR0aEl0ZW0oKShpdGVtKTtcbiAgICAgICAgICBuZXdJdGVtLml0ZW1XaWR0aCA9IGl0ZW1XaWR0aDtcbiAgICAgICAgICBuZXdJdGVtLnN0YXJ0ID0gd2lkdGg7XG4gICAgICAgICAgd2lkdGggKz0gaXRlbVdpZHRoO1xuICAgICAgICAgIG5ld0l0ZW0uZW5kID0gd2lkdGg7XG4gICAgICAgICAgaWYgKG5ld0l0ZW0uZW5kIDw9IHJlY3Qud2lkdGggKyB0aGlzLkVsZW1lbnRTY3JvbGwuc2Nyb2xsTGVmdCkge1xuICAgICAgICAgICAgdGhpcy5lbmQuc2V0KCtpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5ld0l0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZUl0ZW1zLnNldChuZXdJdGVtcyk7XG4gICAgICAgIHRoaXMudmlld1BvcnRJdGVtcy5zZXQoXG4gICAgICAgICAgdGhpcy5zdG9yZUl0ZW1zKClcbiAgICAgICAgICAgIC5zbGljZSh0aGlzLnN0YXJ0KCksIHRoaXMuZW5kKCkgKyAzKVxuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbVsncmVmJ10pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3V0Vmlld1BvcnRJdGVtLmVtaXQodGhpcy52aWV3UG9ydEl0ZW1zKCkpO1xuXG4gICAgICAgIHRoaXMuZGl2VmlydHVhbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHRoaXMuZGl2VmlydHVhbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgdGhpcy5kaXZWaXJ0dWFsLnN0eWxlLmhlaWdodCA9ICcxcHgnO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZWxhdGl2ZScpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd3LWZ1bGwnKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQgPSBgMHB4YDtcbiAgICAgICAgdGhpcy5FbGVtZW50U2Nyb2xsLmFwcGVuZCh0aGlzLmRpdlZpcnR1YWwpO1xuICAgICAgICB0aGlzLm91dERpdlZpcnR1YWwuZW1pdCh0aGlzLmRpdlZpcnR1YWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuRWxlbWVudFNjcm9sbCwgJ3Njcm9sbCcpLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKHRoaXMuaGFuZGxlclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IEVsZW1lbnRTY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHB1YmxpYyBnZXQgRnVuY3Rpb25zQ29udHJvbCgpOiBJU2Nyb2xsTWVhc3VyZUl0ZW1EaXJlY3Rpb25Ib3Jpem9udGFsRnVuY3Rpb25zQ29udHJvbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbEludG86IHRoaXMuc2Nyb2xsSW50by5iaW5kKHRoaXMpLFxuICAgICAgc2Nyb2xsVG9Qb3NpdGlvbjogdGhpcy5zY3JvbGxUb1Bvc2l0aW9uLmJpbmQodGhpcyksXG4gICAgICBzY3JvbGxUb0luZGV4OiB0aGlzLnNjcm9sbFRvSW5kZXguYmluZCh0aGlzKSxcbiAgICAgIHJlQ2FsY3VsYXRvclZpZXdQb3J0OiB0aGlzLnJlQ2FsY3VsYXRvclZpZXdQb3J0LmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIGhhbmRsZXJTY3JvbGwoKSB7XG4gICAgaWYgKCF0aGlzLnN0b3JlSXRlbXMoKT8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLkVsZW1lbnRTY3JvbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHN0YXJ0ID0gdGhpcy5zdGFydCgpO1xuICAgIGxldCBpc1NldFN0YXJ0UG9zaXRpb25lZCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLnN0b3JlSXRlbXMoKSkge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc3RvcmVJdGVtcygpW2luZGV4XTtcbiAgICAgIGlmIChpdGVtWydlbmQnXSA+IHJlY3Qud2lkdGggKyB0aGlzLkVsZW1lbnRTY3JvbGwuc2Nyb2xsTGVmdCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHRoaXMuZW5kLnNldCgraW5kZXgpO1xuICAgICAgaWYgKGl0ZW1bJ2VuZCddID49IHRoaXMuRWxlbWVudFNjcm9sbC5zY3JvbGxMZWZ0ICYmICFpc1NldFN0YXJ0UG9zaXRpb25lZCkge1xuICAgICAgICBzdGFydCA9ICtpbmRleDtcbiAgICAgICAgaXNTZXRTdGFydFBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGFydCAhPT0gdGhpcy5zdGFydCgpKSB7XG4gICAgICB0aGlzLnN0YXJ0LnNldChzdGFydCk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdCA9IGAke3RoaXMuc3RvcmVJdGVtcygpW3N0YXJ0XVsnc3RhcnQnXX1weGA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhcnQoKSA8IDApIHtcbiAgICAgIHRoaXMuc3RhcnQuc2V0KDApO1xuICAgIH1cbiAgICB0aGlzLnZpZXdQb3J0SXRlbXMuc2V0KFxuICAgICAgdGhpcy5zdG9yZUl0ZW1zKClcbiAgICAgICAgLnNsaWNlKHRoaXMuc3RhcnQoKSwgdGhpcy5lbmQoKSArIDMpXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW1bJ3JlZiddKVxuICAgICk7XG4gICAgdGhpcy5vdXRWaWV3UG9ydEl0ZW0uZW1pdCh0aGlzLnZpZXdQb3J0SXRlbXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNjcm9sbEludG8oaXRlbVNjcm9sbDogYW55KSB7XG4gICAgY29uc3QgaXRlbUZvdW5kID0gdGhpcy5zdG9yZUl0ZW1zKCkuZmluZCgoaXRlbSkgPT4gaXRlbVsncmVmJ10gPT09IGl0ZW1TY3JvbGwpO1xuXG4gICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgdGhpcy5FbGVtZW50U2Nyb2xsLnNjcm9sbExlZnQgPSBpdGVtRm91bmRbJ3N0YXJ0J107XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYXN5bmMgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5FbGVtZW50U2Nyb2xsLnNjcm9sbExlZnQgPSBwb3NpdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2Nyb2xsVG9JbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXRlbU9mSW5kZXggPSB0aGlzLnN0b3JlSXRlbXMoKVtpbmRleF07XG5cbiAgICBpZiAoaXRlbU9mSW5kZXgpIHtcbiAgICAgIHRoaXMuRWxlbWVudFNjcm9sbC5zY3JvbGxMZWZ0ID0gaXRlbU9mSW5kZXhbJ3N0YXJ0J107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZUNhbGN1bGF0b3JWaWV3UG9ydCgpIHtcbiAgICBsZXQgd2lkdGggPSAwO1xuXG4gICAgdGhpcy5zdG9yZUl0ZW1zLnVwZGF0ZSgoaXRlbXMpID0+IHtcbiAgICAgIGl0ZW1zLmZvckVhY2goYXN5bmMgKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbVdpZHRoID0gYXdhaXQgdGhpcy5mdW5jdGlvbkdldFdpZHRoSXRlbSgpKGl0ZW1bJ3JlZiddKTtcblxuICAgICAgICBzZXQoaXRlbSwgJ2l0ZW1XaWR0aCcsIGl0ZW1XaWR0aCk7XG4gICAgICAgIHNldChpdGVtLCAnc3RhcnQnLCB3aWR0aCk7XG4gICAgICAgIHdpZHRoICs9IGl0ZW1XaWR0aDtcbiAgICAgICAgc2V0KGl0ZW0sICdlbmQnLCB3aWR0aCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbLi4uaXRlbXNdO1xuICAgIH0pO1xuICAgIHRoaXMuZGl2VmlydHVhbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICB0aGlzLmhhbmRsZXJTY3JvbGwoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGl2VmlydHVhbC5yZW1vdmUoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLWhvcml6b250YWwuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1tZWFzdXJlLWl0ZW1zL2RpcmVjdGlvbi1ob3Jpem9udGFsL3NyYy9pbnRlcmZhY2VzL2RpcmVjdGlvbi1ob3Jpem9udGFsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2Nyb2xsTWVhc3VyZUl0ZW1EaXJlY3Rpb25Ib3Jpem9udGFsRnVuY3Rpb25zQ29udHJvbCB7XG4gIHNjcm9sbEludG86IChpdGVtOiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIHNjcm9sbFRvUG9zaXRpb246IChwb3NpdGlvbjogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzY3JvbGxUb0luZGV4OiAoaW5kZXg6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVDYWxjdWxhdG9yVmlld1BvcnQ6ICgpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLWhvcml6b250YWwuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1tZWFzdXJlLWl0ZW1zL2RpcmVjdGlvbi1ob3Jpem9udGFsL3NyYy9pbnRlcmZhY2VzL2RpcmVjdGlvbi1ob3Jpem9udGFsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2Nyb2xsTWVhc3VyZUl0ZW1EaXJlY3Rpb25Ib3Jpem9udGFsRnVuY3Rpb25zQ29udHJvbCB7XG4gIHNjcm9sbEludG86IChpdGVtOiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIHNjcm9sbFRvUG9zaXRpb246IChwb3NpdGlvbjogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzY3JvbGxUb0luZGV4OiAoaW5kZXg6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVDYWxjdWxhdG9yVmlld1BvcnQ6ICgpID0+IFByb21pc2U8dm9pZD47XG59XG4iXX0=
|
|
@@ -48,13 +48,15 @@ class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
48
48
|
newItems.push(newItem);
|
|
49
49
|
}
|
|
50
50
|
this.storeItems.set(newItems);
|
|
51
|
-
this.viewPortItems.set(this.storeItems()
|
|
51
|
+
this.viewPortItems.set(this.storeItems()
|
|
52
|
+
.slice(this.start(), this.end() + 3)
|
|
53
|
+
.map((item) => item['ref']));
|
|
52
54
|
this.outViewPortItem.emit(this.viewPortItems());
|
|
53
55
|
this.divVirtual.style.position = 'absolute';
|
|
54
56
|
this.divVirtual.style.width = `${width}px`;
|
|
55
57
|
this.divVirtual.style.height = '1px';
|
|
56
|
-
this.elementRef.nativeElement.classList.add(
|
|
57
|
-
this.elementRef.nativeElement.classList.remove(
|
|
58
|
+
this.elementRef.nativeElement.classList.add('relative');
|
|
59
|
+
this.elementRef.nativeElement.classList.remove('w-full');
|
|
58
60
|
this.elementRef.nativeElement.style.paddingLeft = `0px`;
|
|
59
61
|
this.ElementScroll.append(this.divVirtual);
|
|
60
62
|
this.outDivVirtual.emit(this.divVirtual);
|
|
@@ -64,18 +66,21 @@ class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
64
66
|
ngAfterViewInit() {
|
|
65
67
|
setTimeout(() => {
|
|
66
68
|
fromEvent(this.ElementScroll, 'scroll').pipe(takeUntil(this.onDestroy)).subscribe(this.handlerScroll.bind(this));
|
|
67
|
-
this.outFunctionControl.emit(
|
|
68
|
-
scrollInto: this.scrollInto.bind(this),
|
|
69
|
-
scrollToPosition: this.scrollToPosition.bind(this),
|
|
70
|
-
scrollToIndex: this.scrollToIndex.bind(this),
|
|
71
|
-
reCalculatorViewPort: this.reCalculatorViewPort.bind(this)
|
|
72
|
-
});
|
|
69
|
+
this.outFunctionControl.emit(this.FunctionsControl);
|
|
73
70
|
});
|
|
74
71
|
}
|
|
75
72
|
get ElementScroll() {
|
|
76
73
|
return this.elementScroll() || this.elementRef.nativeElement;
|
|
77
74
|
}
|
|
78
75
|
/* FUNCTIONS */
|
|
76
|
+
get FunctionsControl() {
|
|
77
|
+
return {
|
|
78
|
+
scrollInto: this.scrollInto.bind(this),
|
|
79
|
+
scrollToPosition: this.scrollToPosition.bind(this),
|
|
80
|
+
scrollToIndex: this.scrollToIndex.bind(this),
|
|
81
|
+
reCalculatorViewPort: this.reCalculatorViewPort.bind(this),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
79
84
|
handlerScroll() {
|
|
80
85
|
if (!this.storeItems()?.length) {
|
|
81
86
|
return;
|
|
@@ -101,13 +106,15 @@ class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
101
106
|
if (this.start() < 0) {
|
|
102
107
|
this.start.set(0);
|
|
103
108
|
}
|
|
104
|
-
this.viewPortItems.set(this.storeItems()
|
|
109
|
+
this.viewPortItems.set(this.storeItems()
|
|
110
|
+
.slice(this.start(), this.end() + 3)
|
|
111
|
+
.map((item) => item['ref']));
|
|
105
112
|
this.outViewPortItem.emit(this.viewPortItems());
|
|
106
113
|
}
|
|
107
114
|
async scrollInto(itemScroll) {
|
|
108
|
-
const itemFound = this.storeItems().find(item => item[
|
|
115
|
+
const itemFound = this.storeItems().find((item) => item['ref'] === itemScroll);
|
|
109
116
|
if (itemFound) {
|
|
110
|
-
this.ElementScroll.scrollLeft = itemFound[
|
|
117
|
+
this.ElementScroll.scrollLeft = itemFound['start'];
|
|
111
118
|
}
|
|
112
119
|
}
|
|
113
120
|
async scrollToPosition(position) {
|
|
@@ -116,14 +123,14 @@ class LibsUiScrollMeasureItemDirectionHorizontalDirective {
|
|
|
116
123
|
async scrollToIndex(index) {
|
|
117
124
|
const itemOfIndex = this.storeItems()[index];
|
|
118
125
|
if (itemOfIndex) {
|
|
119
|
-
this.ElementScroll.scrollLeft = itemOfIndex[
|
|
126
|
+
this.ElementScroll.scrollLeft = itemOfIndex['start'];
|
|
120
127
|
}
|
|
121
128
|
}
|
|
122
129
|
async reCalculatorViewPort() {
|
|
123
130
|
let width = 0;
|
|
124
|
-
this.storeItems.update(items => {
|
|
131
|
+
this.storeItems.update((items) => {
|
|
125
132
|
items.forEach(async (item) => {
|
|
126
|
-
const itemWidth = await this.functionGetWidthItem()(item[
|
|
133
|
+
const itemWidth = await this.functionGetWidthItem()(item['ref']);
|
|
127
134
|
set(item, 'itemWidth', itemWidth);
|
|
128
135
|
set(item, 'start', width);
|
|
129
136
|
width += itemWidth;
|
|
@@ -147,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
147
154
|
args: [{
|
|
148
155
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
149
156
|
selector: '[LibsUiScrollMeasureItemDirectionHorizontalDirective]',
|
|
150
|
-
standalone: true
|
|
157
|
+
standalone: true,
|
|
151
158
|
}]
|
|
152
159
|
}], ctorParameters: () => [] });
|
|
153
160
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-scroll-measure-items-direction-horizontal.mjs","sources":["../../../../../../libs-ui/components/scroll-measure-items/direction-horizontal/src/direction-horizontal.directive.ts","../../../../../../libs-ui/components/scroll-measure-items/direction-horizontal/src/libs-ui-components-scroll-measure-items-direction-horizontal.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Directive, ElementRef, OnDestroy, effect, inject, input, output, signal, untracked } from '@angular/core';\nimport { cloneDeep, set } from '@libs-ui/utils';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\nimport { IScrollMeasureItemDirectionHorizontalFunctionsControl } from './interfaces/direction-horizontal.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiScrollMeasureItemDirectionHorizontalDirective]',\n standalone: true\n})\nexport class LibsUiScrollMeasureItemDirectionHorizontalDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n public viewPortItems = signal<Array<Record<string, any>>>([]);\n private start = signal<number>(0);\n private end = signal<number>(0);\n private storeItems = signal<Array<Record<string, any>>>([]);\n private divVirtual = document.createElement('div');\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly elementScroll = input.required<HTMLElement>();\n readonly functionGetWidthItem = input.required<(item: any) => Promise<number>>();\n readonly items = input.required<Array<any>>();\n\n // #region OUTPUT\n readonly outViewPortItem = output<Array<Record<string, any>>>();\n readonly outFunctionControl = output<IScrollMeasureItemDirectionHorizontalFunctionsControl>();\n readonly outDivVirtual = output<HTMLDivElement>();\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n\n constructor() {\n effect(() => {\n\n if (!untracked(() => this.ElementScroll) || !untracked(() => this.functionGetWidthItem())) {\n return;\n }\n const items = this.items();\n untracked(async () => {\n this.start.set(0);\n const rect = this.ElementScroll.getBoundingClientRect();\n let width = 0;\n const newItems = [];\n for (const index in items) {\n const item = items[index];\n const newItem = cloneDeep(item);\n newItem.ref = item;\n const itemWidth = await this.functionGetWidthItem()(item);\n newItem.itemWidth = itemWidth;\n newItem.start = width;\n width += itemWidth;\n newItem.end = width;\n if (newItem.end <= rect.width + this.ElementScroll.scrollLeft) {\n this.end.set(+index);\n }\n newItems.push(newItem);\n }\n this.storeItems.set(newItems);\n this.viewPortItems.set(this.storeItems().slice(this.start(), this.end() + 3).map(item => item['ref']));\n this.outViewPortItem.emit(this.viewPortItems());\n\n this.divVirtual.style.position = 'absolute';\n this.divVirtual.style.width = `${width}px`;\n this.divVirtual.style.height = '1px';\n this.elementRef.nativeElement.classList.add(\"relative\");\n this.elementRef.nativeElement.classList.remove(\"w-full\");\n this.elementRef.nativeElement.style.paddingLeft = `0px`;\n this.ElementScroll.append(this.divVirtual);\n this.outDivVirtual.emit(this.divVirtual);\n });\n })\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n fromEvent<Event>(this.ElementScroll, 'scroll').pipe(takeUntil(this.onDestroy)).subscribe(this.handlerScroll.bind(this));\n this.outFunctionControl.emit({\n scrollInto: this.scrollInto.bind(this),\n scrollToPosition: this.scrollToPosition.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n reCalculatorViewPort: this.reCalculatorViewPort.bind(this)\n });\n });\n }\n\n private get ElementScroll() {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n\n /* FUNCTIONS */\n private handlerScroll() {\n if (!this.storeItems()?.length) {\n return;\n }\n const rect = this.ElementScroll.getBoundingClientRect();\n let start = this.start();\n let isSetStartPositioned = false\n\n for (const index in this.storeItems()) {\n const item = this.storeItems()[index];\n if (item['end'] > rect.width + this.ElementScroll.scrollLeft) {\n break;\n }\n this.end.set(+index);\n if (item['end'] >= this.ElementScroll.scrollLeft && !isSetStartPositioned) {\n start = +index;\n isSetStartPositioned = true;\n }\n }\n\n if (start !== this.start()) {\n this.start.set(start);\n this.elementRef.nativeElement.style.paddingLeft = `${this.storeItems()[start]['start']}px`;\n }\n\n if (this.start() < 0) {\n this.start.set(0);\n }\n this.viewPortItems.set(this.storeItems().slice(this.start(), this.end() + 3).map(item => item['ref']));\n this.outViewPortItem.emit(this.viewPortItems());\n }\n\n private async scrollInto(itemScroll: any) {\n const itemFound = this.storeItems().find(item => item[\"ref\"] === itemScroll);\n\n if (itemFound) {\n this.ElementScroll.scrollLeft = itemFound[\"start\"];\n }\n }\n private async scrollToPosition(position: number) {\n this.ElementScroll.scrollLeft = position;\n }\n\n private async scrollToIndex(index: number) {\n const itemOfIndex = this.storeItems()[index];\n\n if (itemOfIndex) {\n this.ElementScroll.scrollLeft = itemOfIndex[\"start\"];\n }\n }\n\n private async reCalculatorViewPort() {\n let width = 0;\n\n this.storeItems.update(items => {\n items.forEach(async (item) => {\n const itemWidth = await this.functionGetWidthItem()(item[\"ref\"]);\n\n set(item, 'itemWidth', itemWidth);\n set(item, 'start', width);\n width += itemWidth;\n set(item, 'end', width);\n });\n return [...items];\n });\n this.divVirtual.style.width = `${width}px`;\n this.handlerScroll();\n }\n\n ngOnDestroy(): void {\n this.divVirtual.remove();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-components-scroll-measure-items-direction-horizontal.mjs","sources":["../../../../../../libs-ui/components/scroll-measure-items/direction-horizontal/src/direction-horizontal.directive.ts","../../../../../../libs-ui/components/scroll-measure-items/direction-horizontal/src/libs-ui-components-scroll-measure-items-direction-horizontal.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Directive, ElementRef, OnDestroy, effect, inject, input, output, signal, untracked } from '@angular/core';\nimport { cloneDeep, set } from '@libs-ui/utils';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\nimport { IScrollMeasureItemDirectionHorizontalFunctionsControl } from './interfaces/direction-horizontal.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiScrollMeasureItemDirectionHorizontalDirective]',\n standalone: true,\n})\nexport class LibsUiScrollMeasureItemDirectionHorizontalDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n public viewPortItems = signal<Array<Record<string, any>>>([]);\n private start = signal<number>(0);\n private end = signal<number>(0);\n private storeItems = signal<Array<Record<string, any>>>([]);\n private divVirtual = document.createElement('div');\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly elementScroll = input.required<HTMLElement>();\n readonly functionGetWidthItem = input.required<(item: any) => Promise<number>>();\n readonly items = input.required<Array<any>>();\n\n // #region OUTPUT\n readonly outViewPortItem = output<Array<Record<string, any>>>();\n readonly outFunctionControl = output<IScrollMeasureItemDirectionHorizontalFunctionsControl>();\n readonly outDivVirtual = output<HTMLDivElement>();\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n\n constructor() {\n effect(() => {\n if (!untracked(() => this.ElementScroll) || !untracked(() => this.functionGetWidthItem())) {\n return;\n }\n const items = this.items();\n untracked(async () => {\n this.start.set(0);\n const rect = this.ElementScroll.getBoundingClientRect();\n let width = 0;\n const newItems = [];\n for (const index in items) {\n const item = items[index];\n const newItem = cloneDeep(item);\n newItem.ref = item;\n const itemWidth = await this.functionGetWidthItem()(item);\n newItem.itemWidth = itemWidth;\n newItem.start = width;\n width += itemWidth;\n newItem.end = width;\n if (newItem.end <= rect.width + this.ElementScroll.scrollLeft) {\n this.end.set(+index);\n }\n newItems.push(newItem);\n }\n this.storeItems.set(newItems);\n this.viewPortItems.set(\n this.storeItems()\n .slice(this.start(), this.end() + 3)\n .map((item) => item['ref'])\n );\n this.outViewPortItem.emit(this.viewPortItems());\n\n this.divVirtual.style.position = 'absolute';\n this.divVirtual.style.width = `${width}px`;\n this.divVirtual.style.height = '1px';\n this.elementRef.nativeElement.classList.add('relative');\n this.elementRef.nativeElement.classList.remove('w-full');\n this.elementRef.nativeElement.style.paddingLeft = `0px`;\n this.ElementScroll.append(this.divVirtual);\n this.outDivVirtual.emit(this.divVirtual);\n });\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n fromEvent<Event>(this.ElementScroll, 'scroll').pipe(takeUntil(this.onDestroy)).subscribe(this.handlerScroll.bind(this));\n this.outFunctionControl.emit(this.FunctionsControl);\n });\n }\n\n private get ElementScroll() {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n /* FUNCTIONS */\n public get FunctionsControl(): IScrollMeasureItemDirectionHorizontalFunctionsControl {\n return {\n scrollInto: this.scrollInto.bind(this),\n scrollToPosition: this.scrollToPosition.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n reCalculatorViewPort: this.reCalculatorViewPort.bind(this),\n };\n }\n private handlerScroll() {\n if (!this.storeItems()?.length) {\n return;\n }\n const rect = this.ElementScroll.getBoundingClientRect();\n let start = this.start();\n let isSetStartPositioned = false;\n\n for (const index in this.storeItems()) {\n const item = this.storeItems()[index];\n if (item['end'] > rect.width + this.ElementScroll.scrollLeft) {\n break;\n }\n this.end.set(+index);\n if (item['end'] >= this.ElementScroll.scrollLeft && !isSetStartPositioned) {\n start = +index;\n isSetStartPositioned = true;\n }\n }\n\n if (start !== this.start()) {\n this.start.set(start);\n this.elementRef.nativeElement.style.paddingLeft = `${this.storeItems()[start]['start']}px`;\n }\n\n if (this.start() < 0) {\n this.start.set(0);\n }\n this.viewPortItems.set(\n this.storeItems()\n .slice(this.start(), this.end() + 3)\n .map((item) => item['ref'])\n );\n this.outViewPortItem.emit(this.viewPortItems());\n }\n\n private async scrollInto(itemScroll: any) {\n const itemFound = this.storeItems().find((item) => item['ref'] === itemScroll);\n\n if (itemFound) {\n this.ElementScroll.scrollLeft = itemFound['start'];\n }\n }\n private async scrollToPosition(position: number) {\n this.ElementScroll.scrollLeft = position;\n }\n\n private async scrollToIndex(index: number) {\n const itemOfIndex = this.storeItems()[index];\n\n if (itemOfIndex) {\n this.ElementScroll.scrollLeft = itemOfIndex['start'];\n }\n }\n\n private async reCalculatorViewPort() {\n let width = 0;\n\n this.storeItems.update((items) => {\n items.forEach(async (item) => {\n const itemWidth = await this.functionGetWidthItem()(item['ref']);\n\n set(item, 'itemWidth', itemWidth);\n set(item, 'start', width);\n width += itemWidth;\n set(item, 'end', width);\n });\n return [...items];\n });\n this.divVirtual.style.width = `${width}px`;\n this.handlerScroll();\n }\n\n ngOnDestroy(): void {\n this.divVirtual.remove();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-scroll-measure-items-direction-horizontal",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.308-0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": ">=18.0.0",
|
|
6
|
-
"@libs-ui/utils": "0.2.
|
|
6
|
+
"@libs-ui/utils": "0.2.308-0",
|
|
7
7
|
"rxjs": "~7.8.0"
|
|
8
8
|
},
|
|
9
9
|
"sideEffects": false,
|