@taiga-ui/core 2.88.0 → 2.90.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.
Files changed (29) hide show
  1. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +41 -64
  2. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
  4. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-core-tokens.umd.js +10 -5
  6. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
  8. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  9. package/components/scroll-controls/scroll-controls.component.d.ts +1 -2
  10. package/components/scroll-controls/scrollbar.directive.d.ts +4 -7
  11. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  12. package/constants/version.d.ts +1 -1
  13. package/esm2015/components/scroll-controls/scroll-controls.component.js +8 -15
  14. package/esm2015/components/scroll-controls/scrollbar.directive.js +31 -48
  15. package/esm2015/tokens/scroll-ref.js +9 -3
  16. package/esm5/components/scroll-controls/scroll-controls.component.js +8 -15
  17. package/esm5/components/scroll-controls/scrollbar.directive.js +31 -48
  18. package/esm5/tokens/scroll-ref.js +9 -3
  19. package/fesm2015/taiga-ui-core-components-scroll-controls.js +36 -59
  20. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  21. package/fesm2015/taiga-ui-core-tokens.js +8 -2
  22. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  23. package/fesm5/taiga-ui-core-components-scroll-controls.js +36 -59
  24. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  25. package/fesm5/taiga-ui-core-tokens.js +8 -2
  26. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  27. package/package.json +4 -4
  28. package/tokens/scroll-ref.d.ts +3 -0
  29. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
@@ -1,28 +1,26 @@
1
1
  import { __decorate, __param } from "tslib";
2
- import { DOCUMENT, ViewportScroller } from '@angular/common';
3
- import { Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, } from '@angular/core';
4
- import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
5
- import { POLLING_TIME, preventDefault, stopPropagation, TuiDestroyService, tuiZonefree, typedFromEvent, } from '@taiga-ui/cdk';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { Directive, ElementRef, Inject, Input, NgZone, Renderer2, Self, } from '@angular/core';
4
+ import { ANIMATION_FRAME } from '@ng-web-apis/common';
5
+ import { POLLING_TIME, TuiDestroyService, tuiPreventDefault, tuiScrollFrom, tuiStopPropagation, tuiTypedFromEvent, tuiZonefree, } from '@taiga-ui/cdk';
6
6
  import { TUI_ELEMENT_REF, TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
7
- import { fromEvent, merge, Observable } from 'rxjs';
7
+ import { merge, Observable } from 'rxjs';
8
8
  import { map, switchMap, takeUntil, throttleTime } from 'rxjs/operators';
9
9
  const MIN_WIDTH = 24;
10
10
  // @dynamic
11
11
  let TuiScrollbarDirective = class TuiScrollbarDirective {
12
- constructor(ngZone, renderer, destroy$, animationFrame$, wrapper, container, documentRef, windowRef, elementRef, viewportScroller) {
12
+ constructor(ngZone, renderer, destroy$, animationFrame$, wrapper, container, doc, el) {
13
13
  this.wrapper = wrapper;
14
14
  this.container = container;
15
- this.documentRef = documentRef;
16
- this.windowRef = windowRef;
17
- this.elementRef = elementRef;
18
- this.viewportScroller = viewportScroller;
15
+ this.doc = doc;
16
+ this.el = el;
19
17
  this.tuiScrollbar = 'vertical';
20
- const { nativeElement } = this.elementRef;
21
- const mousedown$ = typedFromEvent(nativeElement, 'mousedown');
22
- const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');
23
- const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');
24
- const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');
25
- merge(mousedownWrapper$.pipe(preventDefault(), map(event => this.getScrolled(event, 0.5, 0.5))), mousedown$.pipe(preventDefault(), stopPropagation(), switchMap(event => {
18
+ const { nativeElement } = this.el;
19
+ const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');
20
+ const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');
21
+ const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');
22
+ const mousedownWrapper$ = tuiTypedFromEvent(this.wrapper.nativeElement, 'mousedown');
23
+ merge(mousedownWrapper$.pipe(tuiPreventDefault(), map(event => this.getScrolled(event, 0.5, 0.5))), mousedown$.pipe(tuiPreventDefault(), tuiStopPropagation(), switchMap(event => {
26
24
  const rect = nativeElement.getBoundingClientRect();
27
25
  const vertical = getOffsetVertical(event, rect);
28
26
  const horizontal = getOffsetHorizontal(event, rect);
@@ -30,22 +28,14 @@ let TuiScrollbarDirective = class TuiScrollbarDirective {
30
28
  })))
31
29
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
32
30
  .subscribe(([scrollTop, scrollLeft]) => {
33
- const [x, y] = this.viewportScroller.getScrollPosition();
34
- if (!this.container) {
35
- this.viewportScroller.scrollToPosition([
36
- this.tuiScrollbar === 'vertical' ? x : scrollLeft,
37
- this.tuiScrollbar === 'vertical' ? scrollTop : y,
38
- ]);
39
- return;
40
- }
41
31
  if (this.tuiScrollbar === 'vertical') {
42
- renderer.setProperty(this.container.nativeElement, 'scrollTop', scrollTop);
32
+ renderer.setProperty(this.element, 'scrollTop', scrollTop);
43
33
  }
44
34
  else {
45
- renderer.setProperty(this.container.nativeElement, 'scrollLeft', scrollLeft);
35
+ renderer.setProperty(this.element, 'scrollLeft', scrollLeft);
46
36
  }
47
37
  });
48
- merge(fromEvent(this.container ? this.container.nativeElement : this.windowRef, 'scroll'), animationFrame$.pipe(throttleTime(POLLING_TIME)))
38
+ merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), tuiScrollFrom(this.element))
49
39
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
50
40
  .subscribe(() => {
51
41
  if (this.tuiScrollbar === 'vertical') {
@@ -59,13 +49,13 @@ let TuiScrollbarDirective = class TuiScrollbarDirective {
59
49
  });
60
50
  }
61
51
  get scrolled() {
62
- const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.computedContainer;
52
+ const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.element;
63
53
  return this.tuiScrollbar === 'vertical'
64
54
  ? scrollTop / (scrollHeight - clientHeight)
65
55
  : scrollLeft / (scrollWidth - clientWidth);
66
56
  }
67
57
  get compensation() {
68
- const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.computedContainer;
58
+ const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
69
59
  if (((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&
70
60
  this.tuiScrollbar === 'vertical') ||
71
61
  ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&
@@ -81,21 +71,19 @@ let TuiScrollbarDirective = class TuiScrollbarDirective {
81
71
  return this.scrolled * (1 - compensation);
82
72
  }
83
73
  get view() {
84
- const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.computedContainer;
74
+ const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
85
75
  return this.tuiScrollbar === 'vertical'
86
76
  ? Math.ceil((clientHeight / scrollHeight) * 100) / 100
87
77
  : Math.ceil((clientWidth / scrollWidth) * 100) / 100;
88
78
  }
89
- get computedContainer() {
90
- return this.container
91
- ? this.container.nativeElement
92
- : this.documentRef.scrollingElement;
79
+ get element() {
80
+ return this.container.nativeElement;
93
81
  }
94
82
  getScrolled({ clientY, clientX }, offsetVertical, offsetHorizontal) {
95
- const { offsetHeight, offsetWidth } = this.elementRef.nativeElement;
83
+ const { offsetHeight, offsetWidth } = this.el.nativeElement;
96
84
  const { top, left, width, height } = this.wrapper.nativeElement.getBoundingClientRect();
97
- const maxTop = this.computedContainer.scrollHeight - height;
98
- const maxLeft = this.computedContainer.scrollWidth - width;
85
+ const maxTop = this.element.scrollHeight - height;
86
+ const maxLeft = this.element.scrollWidth - width;
99
87
  const scrolledTop = (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);
100
88
  const scrolledLeft = (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);
101
89
  return [maxTop * scrolledTop, maxLeft * scrolledLeft];
@@ -104,14 +92,12 @@ let TuiScrollbarDirective = class TuiScrollbarDirective {
104
92
  TuiScrollbarDirective.ctorParameters = () => [
105
93
  { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
106
94
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
107
- { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
95
+ { type: Observable, decorators: [{ type: Self }, { type: Inject, args: [TuiDestroyService,] }] },
108
96
  { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
109
97
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_ELEMENT_REF,] }] },
110
- { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
98
+ { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
111
99
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
112
- { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] },
113
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
114
- { type: ViewportScroller, decorators: [{ type: Inject, args: [ViewportScroller,] }] }
100
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
115
101
  ];
116
102
  __decorate([
117
103
  Input()
@@ -123,15 +109,12 @@ TuiScrollbarDirective = __decorate([
123
109
  }),
124
110
  __param(0, Inject(NgZone)),
125
111
  __param(1, Inject(Renderer2)),
126
- __param(2, Inject(TuiDestroyService)),
112
+ __param(2, Self()), __param(2, Inject(TuiDestroyService)),
127
113
  __param(3, Inject(ANIMATION_FRAME)),
128
114
  __param(4, Inject(TUI_ELEMENT_REF)),
129
- __param(5, Optional()),
130
115
  __param(5, Inject(TUI_SCROLL_REF)),
131
116
  __param(6, Inject(DOCUMENT)),
132
- __param(7, Inject(WINDOW)),
133
- __param(8, Inject(ElementRef)),
134
- __param(9, Inject(ViewportScroller))
117
+ __param(7, Inject(ElementRef))
135
118
  ], TuiScrollbarDirective);
136
119
  export { TuiScrollbarDirective };
137
120
  function getOffsetVertical({ clientY }, { top, height }) {
@@ -140,4 +123,4 @@ function getOffsetVertical({ clientY }, { top, height }) {
140
123
  function getOffsetHorizontal({ clientX }, { left, width }) {
141
124
  return (clientX - left) / width;
142
125
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsV0FBVztBQUtYLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBSTlCLFlBQ29CLE1BQWMsRUFDWCxRQUFtQixFQUNYLFFBQTBCLEVBQzVCLGVBQW1DLEVBQ2xCLE9BQWdDLEVBR3pELFNBQXlDLEVBQ3ZCLFdBQXFCLEVBQ3ZCLFNBQWlCLEVBQ2IsVUFBbUMsRUFDN0IsZ0JBQWtDO1FBUG5DLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBR3pELGNBQVMsR0FB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Q0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQUMsT0FBTyxFQUFhLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFhO0lBQ3pFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5ULCBWaWV3cG9ydFNjcm9sbGVyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUE9MTElOR19USU1FLFxuICAgIHByZXZlbnREZWZhdWx0LFxuICAgIHN0b3BQcm9wYWdhdGlvbixcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlab25lZnJlZSxcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9FTEVNRU5UX1JFRiwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aU9yaWVudGF0aW9uVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDI0O1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpU2Nyb2xsYmFyXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxiYXJEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgdHVpU2Nyb2xsYmFyOiBUdWlPcmllbnRhdGlvblQgPSAndmVydGljYWwnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0VMRU1FTlRfUkVGKSBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9TQ1JPTExfUkVGKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChXSU5ET1cpIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmOiBXaW5kb3csXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChWaWV3cG9ydFNjcm9sbGVyKSBwcml2YXRlIHJlYWRvbmx5IHZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXIsXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IHRoaXMuZWxlbWVudFJlZjtcbiAgICAgICAgY29uc3QgbW91c2Vkb3duJCA9IHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKTtcbiAgICAgICAgY29uc3QgbW91c2Vtb3ZlJCA9IHR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2V1cCQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmRvY3VtZW50UmVmLCAnbW91c2V1cCcpO1xuICAgICAgICBjb25zdCBtb3VzZWRvd25XcmFwcGVyJCA9IHR5cGVkRnJvbUV2ZW50KHdyYXBwZXIubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgbW91c2Vkb3duV3JhcHBlciQucGlwZShcbiAgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCAwLjUsIDAuNSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1vdXNlZG93biQucGlwZShcbiAgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbigpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBuYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGdldE9mZnNldFZlcnRpY2FsKGV2ZW50LCByZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbCA9IGdldE9mZnNldEhvcml6b250YWwoZXZlbnQsIHJlY3QpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb3VzZW1vdmUkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4gdGhpcy5nZXRTY3JvbGxlZChldmVudCwgdmVydGljYWwsIGhvcml6b250YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChtb3VzZXVwJCksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3Njcm9sbFRvcCwgc2Nyb2xsTGVmdF0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbeCwgeV0gPSB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oW1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCcgPyB4IDogc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnID8gc2Nyb2xsVG9wIDogeSxcbiAgICAgICAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsVG9wJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsTGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50KFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID8gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCA6IHRoaXMud2luZG93UmVmLFxuICAgICAgICAgICAgICAgICdzY3JvbGwnLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRTdHlsZShuYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLnZpZXcgKiAxMDB9JWApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsZWQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgICAgIH0gPSB0aGlzLmNvbXB1dGVkQ29udGFpbmVyO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KVxuICAgICAgICAgICAgOiBzY3JvbGxMZWZ0IC8gKHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbXBlbnNhdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7Y2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQsIGNsaWVudFdpZHRoLCBzY3JvbGxXaWR0aH0gPVxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZENvbnRhaW5lcjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGNsaWVudEhlaWdodCAqIGNsaWVudEhlaWdodCkgLyBzY3JvbGxIZWlnaHQgPiBNSU5fV0lEVEggJiZcbiAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykgfHxcbiAgICAgICAgICAgICgoY2xpZW50V2lkdGggKiBjbGllbnRXaWR0aCkgLyBzY3JvbGxXaWR0aCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAnaG9yaXpvbnRhbCcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTUlOX1dJRFRIIC8gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICA6IE1JTl9XSURUSCAvIGNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRodW1iKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBlbnNhdGlvbiA9IHRoaXMuY29tcGVuc2F0aW9uIHx8IHRoaXMudmlldztcblxuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxlZCAqICgxIC0gY29tcGVuc2F0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB2aWV3KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkQ29udGFpbmVyO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKGNsaWVudEhlaWdodCAvIHNjcm9sbEhlaWdodCkgKiAxMDApIC8gMTAwXG4gICAgICAgICAgICA6IE1hdGguY2VpbCgoY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCkgKiAxMDApIC8gMTAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbXB1dGVkQ29udGFpbmVyKCk6IEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXJcbiAgICAgICAgICAgID8gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiAodGhpcy5kb2N1bWVudFJlZi5zY3JvbGxpbmdFbGVtZW50IGFzIHVua25vd24gYXMgRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTY3JvbGxlZChcbiAgICAgICAge2NsaWVudFksIGNsaWVudFh9OiBNb3VzZUV2ZW50LFxuICAgICAgICBvZmZzZXRWZXJ0aWNhbDogbnVtYmVyLFxuICAgICAgICBvZmZzZXRIb3Jpem9udGFsOiBudW1iZXIsXG4gICAgKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGNvbnN0IHtvZmZzZXRIZWlnaHQsIG9mZnNldFdpZHRofSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSA9XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBtYXhUb3AgPSB0aGlzLmNvbXB1dGVkQ29udGFpbmVyLnNjcm9sbEhlaWdodCAtIGhlaWdodDtcbiAgICAgICAgY29uc3QgbWF4TGVmdCA9IHRoaXMuY29tcHV0ZWRDb250YWluZXIuc2Nyb2xsV2lkdGggLSB3aWR0aDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsZWRUb3AgPVxuICAgICAgICAgICAgKGNsaWVudFkgLSB0b3AgLSBvZmZzZXRIZWlnaHQgKiBvZmZzZXRWZXJ0aWNhbCkgLyAoaGVpZ2h0IC0gb2Zmc2V0SGVpZ2h0KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsZWRMZWZ0ID1cbiAgICAgICAgICAgIChjbGllbnRYIC0gbGVmdCAtIG9mZnNldFdpZHRoICogb2Zmc2V0SG9yaXpvbnRhbCkgLyAod2lkdGggLSBvZmZzZXRXaWR0aCk7XG5cbiAgICAgICAgcmV0dXJuIFttYXhUb3AgKiBzY3JvbGxlZFRvcCwgbWF4TGVmdCAqIHNjcm9sbGVkTGVmdF07XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXRWZXJ0aWNhbCh7Y2xpZW50WX06IE1vdXNlRXZlbnQsIHt0b3AsIGhlaWdodH06IENsaWVudFJlY3QpOiBudW1iZXIge1xuICAgIHJldHVybiAoY2xpZW50WSAtIHRvcCkgLyBoZWlnaHQ7XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldEhvcml6b250YWwoe2NsaWVudFh9OiBNb3VzZUV2ZW50LCB7bGVmdCwgd2lkdGh9OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gKGNsaWVudFggLSBsZWZ0KSAvIHdpZHRoO1xufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RSxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBRXJCLFdBQVc7QUFLWCxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUk5QixZQUNvQixNQUFjLEVBQ1gsUUFBbUIsRUFDSCxRQUEwQixFQUNwQyxlQUFtQyxFQUNsQixPQUFnQyxFQUNqQyxTQUFrQyxFQUN4QyxHQUFhLEVBQ1gsRUFBMkI7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDeEMsUUFBRyxHQUFILEdBQUcsQ0FBVTtR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QUMsQ0FBQTtJQUNoQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtHQVpkLHFCQUFxQixDQXdJakM7U0F4SVkscUJBQXFCO0FBMElsQyxTQUFTLGlCQUFpQixDQUFDLEVBQUMsT0FBTyxFQUFhLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFhO0lBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQUMsT0FBTyxFQUFhLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFhO0lBQ3pFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUE9MTElOR19USU1FLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aVByZXZlbnREZWZhdWx0LFxuICAgIHR1aVNjcm9sbEZyb20sXG4gICAgdHVpU3RvcFByb3BhZ2F0aW9uLFxuICAgIHR1aVR5cGVkRnJvbUV2ZW50LFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0VMRU1FTlRfUkVGLCBUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpT3JpZW50YXRpb25UfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDI0O1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpU2Nyb2xsYmFyXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxiYXJEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgdHVpU2Nyb2xsYmFyOiBUdWlPcmllbnRhdGlvblQgPSAndmVydGljYWwnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfRUxFTUVOVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBjb25zdCB7bmF0aXZlRWxlbWVudH0gPSB0aGlzLmVsO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHVpVHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpO1xuICAgICAgICBjb25zdCBtb3VzZW1vdmUkID0gdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5kb2MsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2V1cCQgPSB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmRvYywgJ21vdXNldXAnKTtcbiAgICAgICAgY29uc3QgbW91c2Vkb3duV3JhcHBlciQgPSB0dWlUeXBlZEZyb21FdmVudChcbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlZG93bicsXG4gICAgICAgICk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZWRvd25XcmFwcGVyJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0U2Nyb2xsZWQoZXZlbnQsIDAuNSwgMC41KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgdHVpU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0T2Zmc2V0VmVydGljYWwoZXZlbnQsIHJlY3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gZ2V0T2Zmc2V0SG9yaXpvbnRhbChldmVudCwgcmVjdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdXNlbW92ZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0XSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQsICdzY3JvbGxUb3AnLCBzY3JvbGxUb3ApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudCwgJ3Njcm9sbExlZnQnLCBzY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHR1aVNjcm9sbEZyb20odGhpcy5lbGVtZW50KSxcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRTdHlsZShuYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLnZpZXcgKiAxMDB9JWApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsZWQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgICAgIH0gPSB0aGlzLmVsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcGVuc2F0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGNsaWVudEhlaWdodCAqIGNsaWVudEhlaWdodCkgLyBzY3JvbGxIZWlnaHQgPiBNSU5fV0lEVEggJiZcbiAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykgfHxcbiAgICAgICAgICAgICgoY2xpZW50V2lkdGggKiBjbGllbnRXaWR0aCkgLyBzY3JvbGxXaWR0aCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAnaG9yaXpvbnRhbCcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTUlOX1dJRFRIIC8gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICA6IE1JTl9XSURUSCAvIGNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRodW1iKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBlbnNhdGlvbiA9IHRoaXMuY29tcGVuc2F0aW9uIHx8IHRoaXMudmlldztcblxuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxlZCAqICgxIC0gY29tcGVuc2F0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB2aWV3KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSAvIDEwMFxuICAgICAgICAgICAgOiBNYXRoLmNlaWwoKGNsaWVudFdpZHRoIC8gc2Nyb2xsV2lkdGgpICogMTAwKSAvIDEwMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50KCk6IEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGVkKFxuICAgICAgICB7Y2xpZW50WSwgY2xpZW50WH06IE1vdXNlRXZlbnQsXG4gICAgICAgIG9mZnNldFZlcnRpY2FsOiBudW1iZXIsXG4gICAgICAgIG9mZnNldEhvcml6b250YWw6IG51bWJlcixcbiAgICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGh9ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSA9XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBtYXhUb3AgPSB0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gdGhpcy5lbGVtZW50LnNjcm9sbFdpZHRoIC0gd2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcm9sbGVkVG9wID1cbiAgICAgICAgICAgIChjbGllbnRZIC0gdG9wIC0gb2Zmc2V0SGVpZ2h0ICogb2Zmc2V0VmVydGljYWwpIC8gKGhlaWdodCAtIG9mZnNldEhlaWdodCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGVkTGVmdCA9XG4gICAgICAgICAgICAoY2xpZW50WCAtIGxlZnQgLSBvZmZzZXRXaWR0aCAqIG9mZnNldEhvcml6b250YWwpIC8gKHdpZHRoIC0gb2Zmc2V0V2lkdGgpO1xuXG4gICAgICAgIHJldHVybiBbbWF4VG9wICogc2Nyb2xsZWRUb3AsIG1heExlZnQgKiBzY3JvbGxlZExlZnRdO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0VmVydGljYWwoe2NsaWVudFl9OiBNb3VzZUV2ZW50LCB7dG9wLCBoZWlnaHR9OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gKGNsaWVudFkgLSB0b3ApIC8gaGVpZ2h0O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXRIb3Jpem9udGFsKHtjbGllbnRYfTogTW91c2VFdmVudCwge2xlZnQsIHdpZHRofTogQ2xpZW50UmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChjbGllbnRYIC0gbGVmdCkgLyB3aWR0aDtcbn1cbiJdfQ==
@@ -1,3 +1,9 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const TUI_SCROLL_REF = new InjectionToken(`Scrollable container`);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3Rva2Vucy8iLCJzb3VyY2VzIjpbInNjcm9sbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQzVDLHNCQUFzQixDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBUVUlfU0NST0xMX1JFRiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXG4gICAgYFNjcm9sbGFibGUgY29udGFpbmVyYCxcbik7XG4iXX0=
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { ElementRef, inject, InjectionToken } from '@angular/core';
3
+ /**
4
+ * Scrollable container
5
+ */
6
+ export const TUI_SCROLL_REF = new InjectionToken(`[TUI_SCROLL_REF]`, {
7
+ factory: () => new ElementRef(inject(DOCUMENT).documentElement),
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3Rva2Vucy8iLCJzb3VyY2VzIjpbInNjcm9sbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FDNUMsa0JBQWtCLEVBQ2xCO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxlQUFlLENBQUM7Q0FDbEUsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250YWluZXJcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9TQ1JPTExfUkVGID0gbmV3IEluamVjdGlvblRva2VuPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihcbiAgICBgW1RVSV9TQ1JPTExfUkVGXWAsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBuZXcgRWxlbWVudFJlZihpbmplY3QoRE9DVU1FTlQpLmRvY3VtZW50RWxlbWVudCksXG4gICAgfSxcbik7XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { __assign, __decorate, __param } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ElementRef, Inject, NgZone, Optional, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, NgZone, } from '@angular/core';
4
3
  import { ANIMATION_FRAME } from '@ng-web-apis/common';
5
4
  import { tuiZoneOptimized } from '@taiga-ui/cdk';
6
5
  import { tuiFadeIn } from '@taiga-ui/core/animations';
@@ -10,11 +9,10 @@ import { Observable } from 'rxjs';
10
9
  import { distinctUntilChanged, map, startWith, throttleTime } from 'rxjs/operators';
11
10
  // @dynamic
12
11
  var TuiScrollControlsComponent = /** @class */ (function () {
13
- function TuiScrollControlsComponent(options, ngZone, documentRef, scrollRef, animationFrame$, mode$) {
12
+ function TuiScrollControlsComponent(options, ngZone, scrollRef, animationFrame$, mode$) {
14
13
  var _this = this;
15
14
  this.options = options;
16
15
  this.ngZone = ngZone;
17
- this.documentRef = documentRef;
18
16
  this.scrollRef = scrollRef;
19
17
  this.animationFrame$ = animationFrame$;
20
18
  this.mode$ = mode$;
@@ -23,9 +21,7 @@ var TuiScrollControlsComponent = /** @class */ (function () {
23
21
  }
24
22
  Object.defineProperty(TuiScrollControlsComponent.prototype, "scrollbars", {
25
23
  get: function () {
26
- var _a = this.scrollRef
27
- ? this.scrollRef.nativeElement
28
- : this.documentRef.documentElement, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
24
+ var _a = this.scrollRef.nativeElement, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
29
25
  return [
30
26
  Math.ceil((clientHeight / scrollHeight) * 100) < 100,
31
27
  Math.ceil((clientWidth / scrollWidth) * 100) < 100,
@@ -37,8 +33,7 @@ var TuiScrollControlsComponent = /** @class */ (function () {
37
33
  TuiScrollControlsComponent.ctorParameters = function () { return [
38
34
  { type: undefined, decorators: [{ type: Inject, args: [TUI_ANIMATION_OPTIONS,] }] },
39
35
  { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
40
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
41
- { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
36
+ { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
42
37
  { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
43
38
  { type: Observable, decorators: [{ type: Inject, args: [TUI_MODE,] }] }
44
39
  ]; };
@@ -56,13 +51,11 @@ var TuiScrollControlsComponent = /** @class */ (function () {
56
51
  }),
57
52
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
58
53
  __param(1, Inject(NgZone)),
59
- __param(2, Inject(DOCUMENT)),
60
- __param(3, Optional()),
61
- __param(3, Inject(TUI_SCROLL_REF)),
62
- __param(4, Inject(ANIMATION_FRAME)),
63
- __param(5, Inject(TUI_MODE))
54
+ __param(2, Inject(TUI_SCROLL_REF)),
55
+ __param(3, Inject(ANIMATION_FRAME)),
56
+ __param(4, Inject(TUI_MODE))
64
57
  ], TuiScrollControlsComponent);
65
58
  return TuiScrollControlsComponent;
66
59
  }());
67
60
  export { TuiScrollControlsComponent };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLFdBQVc7QUFZWDtJQWNJLG9DQUNvRCxPQUF5QixFQUN4QyxNQUFjLEVBQ1osV0FBcUIsRUFHdkMsU0FBeUMsRUFDaEIsZUFBbUMsRUFDbEQsS0FBdUM7UUFSdEUsaUJBU0k7UUFSZ0QsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBR3ZDLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNsRCxVQUFLLEdBQUwsS0FBSyxDQUFrQztRQXJCN0QsYUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN6QyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFVBQVUsRUFBZixDQUFlLENBQUMsRUFDMUIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3pCLG9CQUFvQixDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUM5RCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ2hDLENBQUM7UUFFTyxjQUFTLEdBQUcsV0FDakIsS0FBSyxFQUFFLEVBQUUsSUFDTixJQUFJLENBQUMsT0FBTyxDQUNULENBQUM7SUFXUixDQUFDO0lBRUosc0JBQVksa0RBQVU7YUFBdEI7WUFDVSxJQUFBOztrREFFZ0MsRUFGL0IsOEJBQVksRUFBRSw4QkFBWSxFQUFFLDRCQUFXLEVBQUUsNEJBRVYsQ0FBQztZQUV2QyxPQUFPO2dCQUNILElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztnQkFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHO2FBQ3JELENBQUM7UUFDTixDQUFDOzs7T0FBQTs7Z0RBbkJJLE1BQU0sU0FBQyxxQkFBcUI7Z0JBQ1ksTUFBTSx1QkFBOUMsTUFBTSxTQUFDLE1BQU07Z0JBQ2tDLFFBQVEsdUJBQXZELE1BQU0sU0FBQyxRQUFRO2dCQUdZLFVBQVUsdUJBRnJDLFFBQVEsWUFDUixNQUFNLFNBQUMsY0FBYztnQkFFcUMsVUFBVSx1QkFBcEUsTUFBTSxTQUFDLGVBQWU7Z0JBQ1csVUFBVSx1QkFBM0MsTUFBTSxTQUFDLFFBQVE7O0lBdEJYLDBCQUEwQjtRQVh0QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLG9zQkFBOEM7WUFFOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUMxQixJQUFJLEVBQUU7Z0JBQ0Ysb0JBQW9CLEVBQUUsT0FBTzthQUNoQzs7U0FDSixDQUFDO1FBZ0JPLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDN0IsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0F0QlosMEJBQTBCLENBbUN0QztJQUFELGlDQUFDO0NBQUEsQUFuQ0QsSUFtQ0M7U0FuQ1ksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25PcHRpb25zfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlab25lT3B0aW1pemVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRmFkZUlufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7TU9ERV9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfTU9ERSwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aUJyaWdodG5lc3N9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1zY3JvbGwtY29udHJvbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGwtY29udHJvbHMudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsLWNvbnRyb2xzLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbdHVpRmFkZUluXSxcbiAgICBwcm92aWRlcnM6IFtNT0RFX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiAnbW9kZSQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbENvbnRyb2xzQ29tcG9uZW50IHtcbiAgICByZWFkb25seSByZWZyZXNoJCA9IHRoaXMuYW5pbWF0aW9uRnJhbWUkLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zY3JvbGxiYXJzKSxcbiAgICAgICAgc3RhcnRXaXRoKFtmYWxzZSwgZmFsc2VdKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFbMF0gPT09IGJbMF0gJiYgYVsxXSA9PT0gYlsxXSksXG4gICAgICAgIHR1aVpvbmVPcHRpbWl6ZWQodGhpcy5uZ1pvbmUpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBhbmltYXRpb24gPSB7XG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9TQ1JPTExfUkVGKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICkge31cblxuICAgIHByaXZhdGUgZ2V0IHNjcm9sbGJhcnMoKTogW2Jvb2xlYW4sIGJvb2xlYW5dIHtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRXaWR0aCwgc2Nyb2xsV2lkdGh9ID0gdGhpcy5zY3JvbGxSZWZcbiAgICAgICAgICAgID8gdGhpcy5zY3JvbGxSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiB0aGlzLmRvY3VtZW50UmVmLmRvY3VtZW50RWxlbWVudDtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSA8IDEwMCxcbiAgICAgICAgICAgIE1hdGguY2VpbCgoY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCkgKiAxMDApIDwgMTAwLFxuICAgICAgICBdO1xuICAgIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixXQUFXO0FBWVg7SUFjSSxvQ0FDb0QsT0FBeUIsRUFDeEMsTUFBYyxFQUNOLFNBQWtDLEVBQ2pDLGVBQW1DLEVBQ2xELEtBQXVDO1FBTHRFLGlCQU1JO1FBTGdELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbEQsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFsQjdELGFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDekMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixHQUFHLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLEVBQWYsQ0FBZSxDQUFDLEVBQzFCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUN6QixvQkFBb0IsQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQTlCLENBQThCLENBQUMsRUFDOUQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNoQyxDQUFDO1FBRU8sY0FBUyxHQUFHLFdBQ2pCLEtBQUssRUFBRSxFQUFFLElBQ04sSUFBSSxDQUFDLE9BQU8sQ0FDVCxDQUFDO0lBUVIsQ0FBQztJQUVKLHNCQUFZLGtEQUFVO2FBQXRCO1lBQ1UsSUFBQSxpQ0FDMEIsRUFEekIsOEJBQVksRUFBRSw4QkFBWSxFQUFFLDRCQUFXLEVBQUUsNEJBQ2hCLENBQUM7WUFFakMsT0FBTztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUc7Z0JBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRzthQUNyRCxDQUFDO1FBQ04sQ0FBQzs7O09BQUE7O2dEQWZJLE1BQU0sU0FBQyxxQkFBcUI7Z0JBQ1ksTUFBTSx1QkFBOUMsTUFBTSxTQUFDLE1BQU07Z0JBQ3NDLFVBQVUsdUJBQTdELE1BQU0sU0FBQyxjQUFjO2dCQUNxQyxVQUFVLHVCQUFwRSxNQUFNLFNBQUMsZUFBZTtnQkFDVyxVQUFVLHVCQUEzQyxNQUFNLFNBQUMsUUFBUTs7SUFuQlgsMEJBQTBCO1FBWHRDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0Isb3NCQUE4QztZQUU5QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDdkIsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxPQUFPO2FBQ2hDOztTQUNKLENBQUM7UUFnQk8sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUM3QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3RCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO09BbkJaLDBCQUEwQixDQStCdEM7SUFBRCxpQ0FBQztDQUFBLEFBL0JELElBK0JDO1NBL0JZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlab25lT3B0aW1pemVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRmFkZUlufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hbmltYXRpb25zJztcbmltcG9ydCB7TU9ERV9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfTU9ERSwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aUJyaWdodG5lc3N9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1zY3JvbGwtY29udHJvbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGwtY29udHJvbHMudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsLWNvbnRyb2xzLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbdHVpRmFkZUluXSxcbiAgICBwcm92aWRlcnM6IFtNT0RFX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiAnbW9kZSQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbENvbnRyb2xzQ29tcG9uZW50IHtcbiAgICByZWFkb25seSByZWZyZXNoJCA9IHRoaXMuYW5pbWF0aW9uRnJhbWUkLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zY3JvbGxiYXJzKSxcbiAgICAgICAgc3RhcnRXaXRoKFtmYWxzZSwgZmFsc2VdKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFbMF0gPT09IGJbMF0gJiYgYVsxXSA9PT0gYlsxXSksXG4gICAgICAgIHR1aVpvbmVPcHRpbWl6ZWQodGhpcy5uZ1pvbmUpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBhbmltYXRpb24gPSB7XG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIHByaXZhdGUgcmVhZG9ubHkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIGdldCBzY3JvbGxiYXJzKCk6IFtib29sZWFuLCBib29sZWFuXSB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBNYXRoLmNlaWwoKGNsaWVudEhlaWdodCAvIHNjcm9sbEhlaWdodCkgKiAxMDApIDwgMTAwLFxuICAgICAgICAgICAgTWF0aC5jZWlsKChjbGllbnRXaWR0aCAvIHNjcm9sbFdpZHRoKSAqIDEwMCkgPCAxMDAsXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
@@ -1,29 +1,27 @@
1
1
  import { __decorate, __param, __read } from "tslib";
2
- import { DOCUMENT, ViewportScroller } from '@angular/common';
3
- import { Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, } from '@angular/core';
4
- import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
5
- import { POLLING_TIME, preventDefault, stopPropagation, TuiDestroyService, tuiZonefree, typedFromEvent, } from '@taiga-ui/cdk';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { Directive, ElementRef, Inject, Input, NgZone, Renderer2, Self, } from '@angular/core';
4
+ import { ANIMATION_FRAME } from '@ng-web-apis/common';
5
+ import { POLLING_TIME, TuiDestroyService, tuiPreventDefault, tuiScrollFrom, tuiStopPropagation, tuiTypedFromEvent, tuiZonefree, } from '@taiga-ui/cdk';
6
6
  import { TUI_ELEMENT_REF, TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
7
- import { fromEvent, merge, Observable } from 'rxjs';
7
+ import { merge, Observable } from 'rxjs';
8
8
  import { map, switchMap, takeUntil, throttleTime } from 'rxjs/operators';
9
9
  var MIN_WIDTH = 24;
10
10
  // @dynamic
11
11
  var TuiScrollbarDirective = /** @class */ (function () {
12
- function TuiScrollbarDirective(ngZone, renderer, destroy$, animationFrame$, wrapper, container, documentRef, windowRef, elementRef, viewportScroller) {
12
+ function TuiScrollbarDirective(ngZone, renderer, destroy$, animationFrame$, wrapper, container, doc, el) {
13
13
  var _this = this;
14
14
  this.wrapper = wrapper;
15
15
  this.container = container;
16
- this.documentRef = documentRef;
17
- this.windowRef = windowRef;
18
- this.elementRef = elementRef;
19
- this.viewportScroller = viewportScroller;
16
+ this.doc = doc;
17
+ this.el = el;
20
18
  this.tuiScrollbar = 'vertical';
21
- var nativeElement = this.elementRef.nativeElement;
22
- var mousedown$ = typedFromEvent(nativeElement, 'mousedown');
23
- var mousemove$ = typedFromEvent(this.documentRef, 'mousemove');
24
- var mouseup$ = typedFromEvent(this.documentRef, 'mouseup');
25
- var mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');
26
- merge(mousedownWrapper$.pipe(preventDefault(), map(function (event) { return _this.getScrolled(event, 0.5, 0.5); })), mousedown$.pipe(preventDefault(), stopPropagation(), switchMap(function (event) {
19
+ var nativeElement = this.el.nativeElement;
20
+ var mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');
21
+ var mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');
22
+ var mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');
23
+ var mousedownWrapper$ = tuiTypedFromEvent(this.wrapper.nativeElement, 'mousedown');
24
+ merge(mousedownWrapper$.pipe(tuiPreventDefault(), map(function (event) { return _this.getScrolled(event, 0.5, 0.5); })), mousedown$.pipe(tuiPreventDefault(), tuiStopPropagation(), switchMap(function (event) {
27
25
  var rect = nativeElement.getBoundingClientRect();
28
26
  var vertical = getOffsetVertical(event, rect);
29
27
  var horizontal = getOffsetHorizontal(event, rect);
@@ -32,22 +30,14 @@ var TuiScrollbarDirective = /** @class */ (function () {
32
30
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
33
31
  .subscribe(function (_a) {
34
32
  var _b = __read(_a, 2), scrollTop = _b[0], scrollLeft = _b[1];
35
- var _c = __read(_this.viewportScroller.getScrollPosition(), 2), x = _c[0], y = _c[1];
36
- if (!_this.container) {
37
- _this.viewportScroller.scrollToPosition([
38
- _this.tuiScrollbar === 'vertical' ? x : scrollLeft,
39
- _this.tuiScrollbar === 'vertical' ? scrollTop : y,
40
- ]);
41
- return;
42
- }
43
33
  if (_this.tuiScrollbar === 'vertical') {
44
- renderer.setProperty(_this.container.nativeElement, 'scrollTop', scrollTop);
34
+ renderer.setProperty(_this.element, 'scrollTop', scrollTop);
45
35
  }
46
36
  else {
47
- renderer.setProperty(_this.container.nativeElement, 'scrollLeft', scrollLeft);
37
+ renderer.setProperty(_this.element, 'scrollLeft', scrollLeft);
48
38
  }
49
39
  });
50
- merge(fromEvent(this.container ? this.container.nativeElement : this.windowRef, 'scroll'), animationFrame$.pipe(throttleTime(POLLING_TIME)))
40
+ merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), tuiScrollFrom(this.element))
51
41
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
52
42
  .subscribe(function () {
53
43
  if (_this.tuiScrollbar === 'vertical') {
@@ -62,7 +52,7 @@ var TuiScrollbarDirective = /** @class */ (function () {
62
52
  }
63
53
  Object.defineProperty(TuiScrollbarDirective.prototype, "scrolled", {
64
54
  get: function () {
65
- var _a = this.computedContainer, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
55
+ var _a = this.element, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
66
56
  return this.tuiScrollbar === 'vertical'
67
57
  ? scrollTop / (scrollHeight - clientHeight)
68
58
  : scrollLeft / (scrollWidth - clientWidth);
@@ -72,7 +62,7 @@ var TuiScrollbarDirective = /** @class */ (function () {
72
62
  });
73
63
  Object.defineProperty(TuiScrollbarDirective.prototype, "compensation", {
74
64
  get: function () {
75
- var _a = this.computedContainer, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
65
+ var _a = this.element, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
76
66
  if (((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&
77
67
  this.tuiScrollbar === 'vertical') ||
78
68
  ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&
@@ -96,7 +86,7 @@ var TuiScrollbarDirective = /** @class */ (function () {
96
86
  });
97
87
  Object.defineProperty(TuiScrollbarDirective.prototype, "view", {
98
88
  get: function () {
99
- var _a = this.computedContainer, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
89
+ var _a = this.element, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;
100
90
  return this.tuiScrollbar === 'vertical'
101
91
  ? Math.ceil((clientHeight / scrollHeight) * 100) / 100
102
92
  : Math.ceil((clientWidth / scrollWidth) * 100) / 100;
@@ -104,21 +94,19 @@ var TuiScrollbarDirective = /** @class */ (function () {
104
94
  enumerable: true,
105
95
  configurable: true
106
96
  });
107
- Object.defineProperty(TuiScrollbarDirective.prototype, "computedContainer", {
97
+ Object.defineProperty(TuiScrollbarDirective.prototype, "element", {
108
98
  get: function () {
109
- return this.container
110
- ? this.container.nativeElement
111
- : this.documentRef.scrollingElement;
99
+ return this.container.nativeElement;
112
100
  },
113
101
  enumerable: true,
114
102
  configurable: true
115
103
  });
116
104
  TuiScrollbarDirective.prototype.getScrolled = function (_a, offsetVertical, offsetHorizontal) {
117
105
  var clientY = _a.clientY, clientX = _a.clientX;
118
- var _b = this.elementRef.nativeElement, offsetHeight = _b.offsetHeight, offsetWidth = _b.offsetWidth;
106
+ var _b = this.el.nativeElement, offsetHeight = _b.offsetHeight, offsetWidth = _b.offsetWidth;
119
107
  var _c = this.wrapper.nativeElement.getBoundingClientRect(), top = _c.top, left = _c.left, width = _c.width, height = _c.height;
120
- var maxTop = this.computedContainer.scrollHeight - height;
121
- var maxLeft = this.computedContainer.scrollWidth - width;
108
+ var maxTop = this.element.scrollHeight - height;
109
+ var maxLeft = this.element.scrollWidth - width;
122
110
  var scrolledTop = (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);
123
111
  var scrolledLeft = (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);
124
112
  return [maxTop * scrolledTop, maxLeft * scrolledLeft];
@@ -126,14 +114,12 @@ var TuiScrollbarDirective = /** @class */ (function () {
126
114
  TuiScrollbarDirective.ctorParameters = function () { return [
127
115
  { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
128
116
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
129
- { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
117
+ { type: Observable, decorators: [{ type: Self }, { type: Inject, args: [TuiDestroyService,] }] },
130
118
  { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
131
119
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_ELEMENT_REF,] }] },
132
- { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
120
+ { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
133
121
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
134
- { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] },
135
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
136
- { type: ViewportScroller, decorators: [{ type: Inject, args: [ViewportScroller,] }] }
122
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
137
123
  ]; };
138
124
  __decorate([
139
125
  Input()
@@ -145,15 +131,12 @@ var TuiScrollbarDirective = /** @class */ (function () {
145
131
  }),
146
132
  __param(0, Inject(NgZone)),
147
133
  __param(1, Inject(Renderer2)),
148
- __param(2, Inject(TuiDestroyService)),
134
+ __param(2, Self()), __param(2, Inject(TuiDestroyService)),
149
135
  __param(3, Inject(ANIMATION_FRAME)),
150
136
  __param(4, Inject(TUI_ELEMENT_REF)),
151
- __param(5, Optional()),
152
137
  __param(5, Inject(TUI_SCROLL_REF)),
153
138
  __param(6, Inject(DOCUMENT)),
154
- __param(7, Inject(WINDOW)),
155
- __param(8, Inject(ElementRef)),
156
- __param(9, Inject(ViewportScroller))
139
+ __param(7, Inject(ElementRef))
157
140
  ], TuiScrollbarDirective);
158
141
  return TuiScrollbarDirective;
159
142
  }());
@@ -168,4 +151,4 @@ function getOffsetHorizontal(_a, _b) {
168
151
  var left = _b.left, width = _b.width;
169
152
  return (clientX - left) / width;
170
153
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsV0FBVztBQUtYO0lBSUksK0JBQ29CLE1BQWMsRUFDWCxRQUFtQixFQUNYLFFBQTBCLEVBQzVCLGVBQW1DLEVBQ2xCLE9BQWdDLEVBR3pELFNBQXlDLEVBQ3ZCLFdBQXFCLEVBQ3ZCLFNBQWlCLEVBQ2IsVUFBbUMsRUFDN0IsZ0JBQWtDO1FBWmpGLGlCQXFGQztRQWhGNkMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFHekQsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7UUFD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QW1CLENBQUMsRUFBcUIsRUFBRSxFQUF5QjtRQUEvQyxvQkFBTztRQUFnQixjQUFJLEVBQUUsZ0JBQUs7SUFDNUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlQsIFZpZXdwb3J0U2Nyb2xsZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBQT0xMSU5HX1RJTUUsXG4gICAgcHJldmVudERlZmF1bHQsXG4gICAgc3RvcFByb3BhZ2F0aW9uLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aVpvbmVmcmVlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0VMRU1FTlRfUkVGLCBUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpT3JpZW50YXRpb25UfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgTUlOX1dJRFRIID0gMjQ7XG5cbi8vIEBkeW5hbWljXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlTY3JvbGxiYXJdJyxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbGJhckRpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICB0dWlTY3JvbGxiYXI6IFR1aU9yaWVudGF0aW9uVCA9ICd2ZXJ0aWNhbCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfRUxFTUVOVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFZpZXdwb3J0U2Nyb2xsZXIpIHByaXZhdGUgcmVhZG9ubHkgdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcbiAgICApIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUVsZW1lbnR9ID0gdGhpcy5lbGVtZW50UmVmO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpO1xuICAgICAgICBjb25zdCBtb3VzZW1vdmUkID0gdHlwZWRGcm9tRXZlbnQodGhpcy5kb2N1bWVudFJlZiwgJ21vdXNlbW92ZScpO1xuICAgICAgICBjb25zdCBtb3VzZXVwJCA9IHR5cGVkRnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsICdtb3VzZXVwJyk7XG4gICAgICAgIGNvbnN0IG1vdXNlZG93bldyYXBwZXIkID0gdHlwZWRGcm9tRXZlbnQod3JhcHBlci5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJyk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZWRvd25XcmFwcGVyJC5waXBlKFxuICAgICAgICAgICAgICAgIHByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0U2Nyb2xsZWQoZXZlbnQsIDAuNSwgMC41KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgIHByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0T2Zmc2V0VmVydGljYWwoZXZlbnQsIHJlY3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gZ2V0T2Zmc2V0SG9yaXpvbnRhbChldmVudCwgcmVjdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdXNlbW92ZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0XSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IHRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJyA/IHggOiBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCcgPyBzY3JvbGxUb3AgOiB5LFxuICAgICAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzY3JvbGxUb3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzY3JvbGxMZWZ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPyB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IDogdGhpcy53aW5kb3dSZWYsXG4gICAgICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUkLnBpcGUodGhyb3R0bGVUaW1lKFBPTExJTkdfVElNRSkpLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHt0aGlzLnRodW1iICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7dGhpcy52aWV3ICogMTAwfSVgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzY3JvbGxlZCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzY3JvbGxUb3AsXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICBjbGllbnRXaWR0aCxcbiAgICAgICAgfSA9IHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcGVuc2F0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkQ29udGFpbmVyO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICgoY2xpZW50SGVpZ2h0ICogY2xpZW50SGVpZ2h0KSAvIHNjcm9sbEhlaWdodCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnKSB8fFxuICAgICAgICAgICAgKChjbGllbnRXaWR0aCAqIGNsaWVudFdpZHRoKSAvIHNjcm9sbFdpZHRoID4gTUlOX1dJRFRIICYmXG4gICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09ICdob3Jpem9udGFsJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBNSU5fV0lEVEggLyBjbGllbnRIZWlnaHRcbiAgICAgICAgICAgIDogTUlOX1dJRFRIIC8gY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGh1bWIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcGVuc2F0aW9uID0gdGhpcy5jb21wZW5zYXRpb24gfHwgdGhpcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNjcm9sbGVkICogKDEgLSBjb21wZW5zYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHZpZXcoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRXaWR0aCwgc2Nyb2xsV2lkdGh9ID1cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRDb250YWluZXI7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IE1hdGguY2VpbCgoY2xpZW50SGVpZ2h0IC8gc2Nyb2xsSGVpZ2h0KSAqIDEwMCkgLyAxMDBcbiAgICAgICAgICAgIDogTWF0aC5jZWlsKChjbGllbnRXaWR0aCAvIHNjcm9sbFdpZHRoKSAqIDEwMCkgLyAxMDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRDb250YWluZXIoKTogRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclxuICAgICAgICAgICAgPyB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6ICh0aGlzLmRvY3VtZW50UmVmLnNjcm9sbGluZ0VsZW1lbnQgYXMgdW5rbm93biBhcyBFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGVkKFxuICAgICAgICB7Y2xpZW50WSwgY2xpZW50WH06IE1vdXNlRXZlbnQsXG4gICAgICAgIG9mZnNldFZlcnRpY2FsOiBudW1iZXIsXG4gICAgICAgIG9mZnNldEhvcml6b250YWw6IG51bWJlcixcbiAgICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGh9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHt0b3AsIGxlZnQsIHdpZHRoLCBoZWlnaHR9ID1cbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IG1heFRvcCA9IHRoaXMuY29tcHV0ZWRDb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gdGhpcy5jb21wdXRlZENvbnRhaW5lci5zY3JvbGxXaWR0aCAtIHdpZHRoO1xuICAgICAgICBjb25zdCBzY3JvbGxlZFRvcCA9XG4gICAgICAgICAgICAoY2xpZW50WSAtIHRvcCAtIG9mZnNldEhlaWdodCAqIG9mZnNldFZlcnRpY2FsKSAvIChoZWlnaHQgLSBvZmZzZXRIZWlnaHQpO1xuICAgICAgICBjb25zdCBzY3JvbGxlZExlZnQgPVxuICAgICAgICAgICAgKGNsaWVudFggLSBsZWZ0IC0gb2Zmc2V0V2lkdGggKiBvZmZzZXRIb3Jpem9udGFsKSAvICh3aWR0aCAtIG9mZnNldFdpZHRoKTtcblxuICAgICAgICByZXR1cm4gW21heFRvcCAqIHNjcm9sbGVkVG9wLCBtYXhMZWZ0ICogc2Nyb2xsZWRMZWZ0XTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldFZlcnRpY2FsKHtjbGllbnRZfTogTW91c2VFdmVudCwge3RvcCwgaGVpZ2h0fTogQ2xpZW50UmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChjbGllbnRZIC0gdG9wKSAvIGhlaWdodDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0SG9yaXpvbnRhbCh7Y2xpZW50WH06IE1vdXNlRXZlbnQsIHtsZWZ0LCB3aWR0aH06IENsaWVudFJlY3QpOiBudW1iZXIge1xuICAgIHJldHVybiAoY2xpZW50WCAtIGxlZnQpIC8gd2lkdGg7XG59XG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsLWNvbnRyb2xzLyIsInNvdXJjZXMiOlsic2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RSxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsSUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBRXJCLFdBQVc7QUFLWDtJQUlJLCtCQUNvQixNQUFjLEVBQ1gsUUFBbUIsRUFDSCxRQUEwQixFQUNwQyxlQUFtQyxFQUNsQixPQUFnQyxFQUNqQyxTQUFrQyxFQUN4QyxHQUFhLEVBQ1gsRUFBMkI7UUFScEUsaUJBOERDO1FBekQ2QyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ1gsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFWcEUsaUJBQVksR0FBb0IsVUFBVSxDQUFDO1FBWWhDLElBQUEscUNBQWEsQ0FBWTtRQUNoQyxJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDakUsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixXQUFXLENBQ2QsQ0FBQztRQUVGLEtBQUssQ0FDRCxpQkFBaUIsQ0FBQyxJQUFJLENBQ2xCLGlCQUFpQixFQUFFLEVBQ25CLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBakMsQ0FBaUMsQ0FBQyxDQUNsRCxFQUNELFVBQVUsQ0FBQyxJQUFJLENBQ1gsaUJBQWlCLEVBQUUsRUFDbkIsa0JBQWtCLEVBQUUsRUFDcEIsU0FBUyxDQUFDLFVBQUEsS0FBSztZQUNYLElBQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25ELElBQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFcEQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUNsQixHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQTdDLENBQTZDLENBQUMsRUFDM0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FDSjthQUNJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlDLFNBQVMsQ0FBQyxVQUFDLEVBQXVCO2dCQUF2QixrQkFBdUIsRUFBdEIsaUJBQVMsRUFBRSxrQkFBVTtZQUM5QixJQUFJLEtBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFO2dCQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNILFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDaEU7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLEtBQUssQ0FDRCxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUNoRCxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUM5QjthQUNJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlDLFNBQVMsQ0FBQztZQUNQLElBQUksS0FBSSxDQUFDLFlBQVksS0FBSyxVQUFVLEVBQUU7Z0JBQ2xDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBSyxLQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsTUFBRyxDQUFDLENBQUM7Z0JBQ2hFLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBSyxLQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBRyxDQUFDLENBQUM7YUFDckU7aUJBQU07Z0JBQ0gsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFLLEtBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxNQUFHLENBQUMsQ0FBQztnQkFDakUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFLLEtBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxNQUFHLENBQUMsQ0FBQzthQUNwRTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELHNCQUFZLDJDQUFRO2FBQXBCO1lBQ1UsSUFBQSxpQkFPVSxFQU5aLHdCQUFTLEVBQ1QsOEJBQVksRUFDWiw4QkFBWSxFQUNaLDBCQUFVLEVBQ1YsNEJBQVcsRUFDWCw0QkFDWSxDQUFDO1lBRWpCLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVO2dCQUNuQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUNuRCxDQUFDOzs7T0FBQTtJQUVELHNCQUFZLCtDQUFZO2FBQXhCO1lBQ1UsSUFBQSxpQkFBcUUsRUFBcEUsOEJBQVksRUFBRSw4QkFBWSxFQUFFLDRCQUFXLEVBQUUsNEJBQTJCLENBQUM7WUFFNUUsSUFDSSxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLFlBQVksR0FBRyxTQUFTO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxXQUFXLEdBQUcsU0FBUztvQkFDbEQsSUFBSSxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsRUFDekM7Z0JBQ0UsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVO2dCQUNuQyxDQUFDLENBQUMsU0FBUyxHQUFHLFlBQVk7Z0JBQzFCLENBQUMsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBRUQsc0JBQVksd0NBQUs7YUFBakI7WUFDSSxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFFcEQsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7OztPQUFBO0lBRUQsc0JBQVksdUNBQUk7YUFBaEI7WUFDVSxJQUFBLGlCQUFxRSxFQUFwRSw4QkFBWSxFQUFFLDhCQUFZLEVBQUUsNEJBQVcsRUFBRSw0QkFBMkIsQ0FBQztZQUU1RSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVTtnQkFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztnQkFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdELENBQUM7OztPQUFBO0lBRUQsc0JBQVksMENBQU87YUFBbkI7WUFDSSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1FBQ3hDLENBQUM7OztPQUFBO0lBRU8sMkNBQVcsR0FBbkIsVUFDSSxFQUE4QixFQUM5QixjQUFzQixFQUN0QixnQkFBd0I7WUFGdkIsb0JBQU8sRUFBRSxvQkFBTztRQUlYLElBQUEsMEJBQW1ELEVBQWxELDhCQUFZLEVBQUUsNEJBQW9DLENBQUM7UUFDcEQsSUFBQSx1REFDZ0QsRUFEL0MsWUFBRyxFQUFFLGNBQUksRUFBRSxnQkFBSyxFQUFFLGtCQUM2QixDQUFDO1FBRXZELElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUNsRCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBTSxXQUFXLEdBQ2IsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFlBQVksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQztRQUM5RSxJQUFNLFlBQVksR0FDZCxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsV0FBVyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFFOUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxXQUFXLEVBQUUsT0FBTyxHQUFHLFlBQVksQ0FBQyxDQUFDO0lBQzFELENBQUM7O2dCQWxJMkIsTUFBTSx1QkFBN0IsTUFBTSxTQUFDLE1BQU07Z0JBQ2UsU0FBUyx1QkFBckMsTUFBTSxTQUFDLFNBQVM7Z0JBQzRCLFVBQVUsdUJBQXRELElBQUksWUFBSSxNQUFNLFNBQUMsaUJBQWlCO2dCQUNTLFVBQVUsdUJBQW5ELE1BQU0sU0FBQyxlQUFlO2dCQUM0QixVQUFVLHVCQUE1RCxNQUFNLFNBQUMsZUFBZTtnQkFDNkIsVUFBVSx1QkFBN0QsTUFBTSxTQUFDLGNBQWM7Z0JBQ2tCLFFBQVEsdUJBQS9DLE1BQU0sU0FBQyxRQUFRO2dCQUN5QixVQUFVLHVCQUFsRCxNQUFNLFNBQUMsVUFBVTs7SUFWdEI7UUFEQyxLQUFLLEVBQUU7K0RBQ21DO0lBRmxDLHFCQUFxQjtRQUpqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ2pDLENBQUM7UUFNTyxXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pCLFdBQUEsSUFBSSxFQUFFLENBQUEsRUFBRSxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pDLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3RCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO09BWmQscUJBQXFCLENBd0lqQztJQUFELDRCQUFDO0NBQUEsQUF4SUQsSUF3SUM7U0F4SVkscUJBQXFCO0FBMElsQyxTQUFTLGlCQUFpQixDQUFDLEVBQXFCLEVBQUUsRUFBeUI7UUFBL0Msb0JBQU87UUFBZ0IsWUFBRyxFQUFFLGtCQUFNO0lBQzFELE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQXFCLEVBQUUsRUFBeUI7UUFBL0Msb0JBQU87UUFBZ0IsY0FBSSxFQUFFLGdCQUFLO0lBQzVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUE9MTElOR19USU1FLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR1aVByZXZlbnREZWZhdWx0LFxuICAgIHR1aVNjcm9sbEZyb20sXG4gICAgdHVpU3RvcFByb3BhZ2F0aW9uLFxuICAgIHR1aVR5cGVkRnJvbUV2ZW50LFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0VMRU1FTlRfUkVGLCBUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpT3JpZW50YXRpb25UfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDI0O1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpU2Nyb2xsYmFyXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTY3JvbGxiYXJEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgdHVpU2Nyb2xsYmFyOiBUdWlPcmllbnRhdGlvblQgPSAndmVydGljYWwnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfRUxFTUVOVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBjb25zdCB7bmF0aXZlRWxlbWVudH0gPSB0aGlzLmVsO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHVpVHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpO1xuICAgICAgICBjb25zdCBtb3VzZW1vdmUkID0gdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5kb2MsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2V1cCQgPSB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmRvYywgJ21vdXNldXAnKTtcbiAgICAgICAgY29uc3QgbW91c2Vkb3duV3JhcHBlciQgPSB0dWlUeXBlZEZyb21FdmVudChcbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlZG93bicsXG4gICAgICAgICk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZWRvd25XcmFwcGVyJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0U2Nyb2xsZWQoZXZlbnQsIDAuNSwgMC41KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgdHVpU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0T2Zmc2V0VmVydGljYWwoZXZlbnQsIHJlY3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gZ2V0T2Zmc2V0SG9yaXpvbnRhbChldmVudCwgcmVjdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdXNlbW92ZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldFNjcm9sbGVkKGV2ZW50LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKG1vdXNldXAkKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0XSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQsICdzY3JvbGxUb3AnLCBzY3JvbGxUb3ApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudCwgJ3Njcm9sbExlZnQnLCBzY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHR1aVNjcm9sbEZyb20odGhpcy5lbGVtZW50KSxcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRTdHlsZShuYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLnZpZXcgKiAxMDB9JWApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy50aHVtYiAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKG5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMudmlldyAqIDEwMH0lYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsZWQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgICAgIH0gPSB0aGlzLmVsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcGVuc2F0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGNsaWVudEhlaWdodCAqIGNsaWVudEhlaWdodCkgLyBzY3JvbGxIZWlnaHQgPiBNSU5fV0lEVEggJiZcbiAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykgfHxcbiAgICAgICAgICAgICgoY2xpZW50V2lkdGggKiBjbGllbnRXaWR0aCkgLyBzY3JvbGxXaWR0aCA+IE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAnaG9yaXpvbnRhbCcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTUlOX1dJRFRIIC8gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICA6IE1JTl9XSURUSCAvIGNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRodW1iKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBlbnNhdGlvbiA9IHRoaXMuY29tcGVuc2F0aW9uIHx8IHRoaXMudmlldztcblxuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxlZCAqICgxIC0gY29tcGVuc2F0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB2aWV3KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCwgY2xpZW50V2lkdGgsIHNjcm9sbFdpZHRofSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSAvIDEwMFxuICAgICAgICAgICAgOiBNYXRoLmNlaWwoKGNsaWVudFdpZHRoIC8gc2Nyb2xsV2lkdGgpICogMTAwKSAvIDEwMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50KCk6IEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGVkKFxuICAgICAgICB7Y2xpZW50WSwgY2xpZW50WH06IE1vdXNlRXZlbnQsXG4gICAgICAgIG9mZnNldFZlcnRpY2FsOiBudW1iZXIsXG4gICAgICAgIG9mZnNldEhvcml6b250YWw6IG51bWJlcixcbiAgICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgY29uc3Qge29mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGh9ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSA9XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBtYXhUb3AgPSB0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gdGhpcy5lbGVtZW50LnNjcm9sbFdpZHRoIC0gd2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcm9sbGVkVG9wID1cbiAgICAgICAgICAgIChjbGllbnRZIC0gdG9wIC0gb2Zmc2V0SGVpZ2h0ICogb2Zmc2V0VmVydGljYWwpIC8gKGhlaWdodCAtIG9mZnNldEhlaWdodCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGVkTGVmdCA9XG4gICAgICAgICAgICAoY2xpZW50WCAtIGxlZnQgLSBvZmZzZXRXaWR0aCAqIG9mZnNldEhvcml6b250YWwpIC8gKHdpZHRoIC0gb2Zmc2V0V2lkdGgpO1xuXG4gICAgICAgIHJldHVybiBbbWF4VG9wICogc2Nyb2xsZWRUb3AsIG1heExlZnQgKiBzY3JvbGxlZExlZnRdO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0VmVydGljYWwoe2NsaWVudFl9OiBNb3VzZUV2ZW50LCB7dG9wLCBoZWlnaHR9OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gKGNsaWVudFkgLSB0b3ApIC8gaGVpZ2h0O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXRIb3Jpem9udGFsKHtjbGllbnRYfTogTW91c2VFdmVudCwge2xlZnQsIHdpZHRofTogQ2xpZW50UmVjdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChjbGllbnRYIC0gbGVmdCkgLyB3aWR0aDtcbn1cbiJdfQ==
@@ -1,3 +1,9 @@
1
- import { InjectionToken } from '@angular/core';
2
- export var TUI_SCROLL_REF = new InjectionToken("Scrollable container");
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3Rva2Vucy8iLCJzb3VyY2VzIjpbInNjcm9sbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6RCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQzVDLHNCQUFzQixDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBUVUlfU0NST0xMX1JFRiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXG4gICAgYFNjcm9sbGFibGUgY29udGFpbmVyYCxcbik7XG4iXX0=
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { ElementRef, inject, InjectionToken } from '@angular/core';
3
+ /**
4
+ * Scrollable container
5
+ */
6
+ export var TUI_SCROLL_REF = new InjectionToken("[TUI_SCROLL_REF]", {
7
+ factory: function () { return new ElementRef(inject(DOCUMENT).documentElement); },
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL3Rva2Vucy8iLCJzb3VyY2VzIjpbInNjcm9sbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FDNUMsa0JBQWtCLEVBQ2xCO0lBQ0ksT0FBTyxFQUFFLGNBQU0sT0FBQSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQWhELENBQWdEO0NBQ2xFLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNjcm9sbGFibGUgY29udGFpbmVyXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfU0NST0xMX1JFRiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXG4gICAgYFtUVUlfU0NST0xMX1JFRl1gLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gbmV3IEVsZW1lbnRSZWYoaW5qZWN0KERPQ1VNRU5UKS5kb2N1bWVudEVsZW1lbnQpLFxuICAgIH0sXG4pO1xuIl19