@libs-ui/components-drag-drop 0.2.343-0 → 0.2.344-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drag-drop.directive.d.ts +2 -2
- package/drag-item-in-container-virtual-scroll.directive.d.ts +3 -5
- package/drag-item.directive.d.ts +2 -2
- package/drag-scroll.directive.d.ts +3 -5
- package/esm2022/drag-drop.directive.mjs +6 -5
- package/esm2022/drag-item-in-container-virtual-scroll.directive.mjs +8 -12
- package/esm2022/drag-item.directive.mjs +7 -6
- package/esm2022/drag-scroll.directive.mjs +8 -12
- package/fesm2022/libs-ui-components-drag-drop.mjs +19 -27
- package/fesm2022/libs-ui-components-drag-drop.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { Directive, ElementRef, effect, inject, input, output, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { checkMouseOverInContainer, checkViewInScreen, get, getDragEventByElement, getViewport } from '@libs-ui/utils';
|
|
4
|
-
import { fromEvent,
|
|
5
|
+
import { fromEvent, tap, throttleTime } from 'rxjs';
|
|
5
6
|
import { LibsUiDragItemInContainerVirtualScrollDirective } from './drag-item-in-container-virtual-scroll.directive';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDirective {
|
|
@@ -54,7 +55,7 @@ export class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScr
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
element.classList.add(this.dragDropService.ClassItemDefine);
|
|
57
|
-
this.dragDropService.OnDragging.pipe(throttleTime(this.throttleTimeHandlerDraggingEvent()),
|
|
58
|
+
this.dragDropService.OnDragging.pipe(throttleTime(this.throttleTimeHandlerDraggingEvent()), takeUntilDestroyed(this.destroyRef)).subscribe((eventDragging) => {
|
|
58
59
|
if (this.disable() || element.getAttribute('disableDragContainer') || (this.fieldId() && this.item() && eventDragging.elementDrag.getAttribute('item_id') === get(this.item(), this.fieldId()))) {
|
|
59
60
|
return;
|
|
60
61
|
}
|
|
@@ -82,7 +83,7 @@ export class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScr
|
|
|
82
83
|
this.outDragLeave.emit(eventDragLeave);
|
|
83
84
|
}
|
|
84
85
|
});
|
|
85
|
-
this.dragDropService.OnDropContainer.pipe(
|
|
86
|
+
this.dragDropService.OnDropContainer.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((eventDrop) => {
|
|
86
87
|
if (eventDrop.elementDrop !== element) {
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
@@ -122,7 +123,7 @@ export class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScr
|
|
|
122
123
|
updatePositionElementRootAndRemoveNodeClone();
|
|
123
124
|
}
|
|
124
125
|
contextMenu = true;
|
|
125
|
-
}),
|
|
126
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
126
127
|
.subscribe();
|
|
127
128
|
let ignoreMousedown = false;
|
|
128
129
|
getDragEventByElement({
|
|
@@ -170,7 +171,7 @@ export class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScr
|
|
|
170
171
|
styleTag.remove();
|
|
171
172
|
updatePositionElementRootAndRemoveNodeClone();
|
|
172
173
|
},
|
|
173
|
-
|
|
174
|
+
destroyRef: this.destroyRef,
|
|
174
175
|
})
|
|
175
176
|
.pipe(tap((dragMouseEvent) => {
|
|
176
177
|
const rectElement = element.getBoundingClientRect();
|
|
@@ -272,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
272
273
|
standalone: true,
|
|
273
274
|
}]
|
|
274
275
|
}], ctorParameters: () => [] });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kcmFnLWRyb3Avc3JjL2RyYWctaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsK0NBQStDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFRcEgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLCtDQUErQztJQUMxRixtQkFBbUI7SUFDWCxVQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFNUMsZ0JBQWdCO0lBQ2hCLG9FQUFvRTtJQUMzRCxPQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLElBQUksR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7SUFDN0IsNEJBQTRCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDekQsb0NBQW9DO0lBQzNCLGdDQUFnQyxHQUFHLEtBQUssQ0FBNkIsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RyxlQUFlLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDbkMsc0JBQXNCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDMUMsZUFBZSxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ25DLFlBQVksR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNoQyxxQ0FBcUMsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUN6RCxnQkFBZ0IsR0FBRyxLQUFLLEVBQWUsQ0FBQztJQUN4QyxNQUFNLEdBQUcsS0FBSyxDQUE2QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLE9BQU8sR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUVqRCxpQkFBaUI7SUFDUixZQUFZLEdBQUcsTUFBTSxFQUFjLENBQUM7SUFDcEMsV0FBVyxHQUFHLE1BQU0sRUFBYSxDQUFDO0lBQ2xDLFlBQVksR0FBRyxNQUFNLEVBQWMsQ0FBQztJQUNwQyxVQUFVLEdBQUcsTUFBTSxFQUFZLENBQUM7SUFDaEMsVUFBVSxHQUFHLE1BQU0sRUFBUyxDQUFDO0lBRXRDLGlCQUFpQjtJQUNULFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQztnQkFDcEMsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTRCLENBQUM7WUFFN0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsVUFBVSxDQUFDLENBQUM7WUFDNUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyRyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxVQUFVLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsZUFBZTtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTRCLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDakosSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDaE0sT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRWxHLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLElBQ0UsYUFBYSxDQUFDLG9CQUFvQjtvQkFDbEMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDeE4sQ0FBQztvQkFDRCxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE9BQU8sS0FBSyxhQUFhLENBQUMsV0FBVyxJQUFJLGFBQWEsSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDaE4sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztvQkFDdEIsT0FBTztnQkFDVCxDQUFDO2dCQUNELE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxhQUFhLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUVyRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFMUIsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixNQUFNLGNBQWMsR0FBRyxFQUFFLEdBQUcsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzNGLElBQUksU0FBUyxDQUFDLFdBQVcsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUVySCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQsUUFBUSxDQUFDLFdBQVcsR0FBRywrQ0FBK0MsQ0FBQztRQUN2RSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxnQ0FBZ0MsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLCtCQUErQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQXNCLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQzVCLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLDJDQUEyQyxHQUFHLEdBQUcsRUFBRTtZQUN2RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUMzQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUVsRyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxhQUFhLEVBQUUsYUFBYSxJQUFJLGFBQWEsRUFBRSxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDekgsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQzVELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRS9ILE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNoRixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDN0UsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELGdDQUFnQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLCtCQUErQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixTQUFTLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQzthQUMvQixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLDJDQUEyQyxFQUFFLENBQUM7WUFDaEQsQ0FBQztZQUNELFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUU1QixxQkFBcUIsQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLGlCQUFpQixFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7Z0JBQ3pDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7b0JBQ3BLLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUNELGlCQUFpQixFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUN2QyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUNELGVBQWUsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztvQkFDeEcsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFFcEIsT0FBTztnQkFDVCxDQUFDO2dCQUNELFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDakUsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO29CQUN4QyxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsTUFBTSxhQUFhLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUV6RSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMscUNBQXFDLEVBQUUsRUFBRSxDQUFDO29CQUN4RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFFL0ssYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO29CQUN2QyxhQUFhLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsTUFBTSxZQUFZLEdBQUcsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFFOUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUVuQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztvQkFDakMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVsQiwyQ0FBMkMsRUFBRSxDQUFDO1lBQ2hELENBQUM7WUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQzthQUNDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUEwQixFQUFFLEVBQUU7WUFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUF5QixDQUFDO1lBRXRELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLGVBQWUsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ROLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFFNUMsSUFBSSxnQ0FBZ0MsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxnQ0FBZ0MsR0FBRyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNoRSxDQUFDO1lBRUQsSUFBSSwrQkFBK0IsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzQywrQkFBK0IsR0FBRyxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdHLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNsTixPQUFPO1lBQ1QsQ0FBQztZQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFDNUMsTUFBTSxhQUFhLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFFcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsTUFBTSxjQUFjLEdBQUcsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFFaEgsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3RELGNBQWMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUV2QyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWdCLENBQUM7Z0JBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQzVDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2dCQUN4RSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2dCQUNqRSxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUMzRCxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQztnQkFDakQsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztvQkFDakMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7b0JBQzNCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUM7d0JBQzNELFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVk7d0JBQy9DLFdBQVcsRUFBRSxTQUFTO3dCQUN0QiwrQkFBK0I7d0JBQy9CLGdDQUFnQzt3QkFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUN6QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTt3QkFDakMscUNBQXFDLEVBQUUsSUFBSSxDQUFDLHFDQUFxQyxFQUFFO3dCQUNuRixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTt3QkFDdkMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksS0FBSztxQkFDM0QsQ0FBQyxDQUFDO29CQUVILE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUVqTCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUN6RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLGdDQUFnQyxDQUFDO1lBQy9ELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsK0JBQStCLENBQUM7WUFFN0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkMsYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDL0MsQ0FBQztnQkFDRCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNwQyxhQUFhLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxDQUFDO2dCQUNELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2xDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQzlDLENBQUM7Z0JBQ0QsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDckMsYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDakQsQ0FBQztZQUNILENBQUM7WUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO1lBQ25DLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFFakMsTUFBTSxhQUFhLEdBQUcsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV2SSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQTNTVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQm91bmRpbmdDbGllbnRSZWN0IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBjaGVja01vdXNlT3ZlckluQ29udGFpbmVyLCBjaGVja1ZpZXdJblNjcmVlbiwgZ2V0LCBnZXREcmFnRXZlbnRCeUVsZW1lbnQsIGdldFZpZXdwb3J0IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCB0YWtlVW50aWwsIHRhcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJzVWlEcmFnSXRlbUluQ29udGFpbmVyVmlydHVhbFNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1pdGVtLWluLWNvbnRhaW5lci12aXJ0dWFsLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSURyYWdFbmQsIElEcmFnTGVhdmUsIElEcmFnT3ZlciwgSURyYWdTdGFydCwgSURyb3AgfSBmcm9tICcuL2ludGVyZmFjZXMvZXZlbnQuaW50ZXJmYWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaURyYWdJdGVtRGlyZWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaURyYWdJdGVtRGlyZWN0aXZlIGV4dGVuZHMgTGlic1VpRHJhZ0l0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgaXNEcmFnT3ZlciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgaXNEcmFnZ2luZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICAvL3NldHVwIDMgZmllbGQgcGjDrWEgZMaw4bubaSBu4bq/dSDEkWFuZyBz4butIGThu6VuZyBpdGVtIHRyb25nIHZpcnR1YWwtc2Nyb2xsXG4gIHJlYWRvbmx5IGZpZWxkSWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgaXRlbSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXRlbUluQ29udGFpbmVyVmlydHVhbFNjcm9sbCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByZWFkb25seSB0aHJvdHRsZVRpbWVIYW5kbGVyRHJhZ2dpbmdFdmVudCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgdW5kZWZpbmVkPigwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSB8fCAwIH0pO1xuICByZWFkb25seSBpZ25vcmVTdG9wRXZlbnQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBvbmx5TW91c2VEb3duU3RvcEV2ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZHJhZ1Jvb3RFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZHJhZ0JvdW5kYXJ5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZHJhZ0JvdW5kYXJ5QWNjZXB0TW91c2VMZWF2ZUNvbnRhaW5lciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGVsZW1lbnRDb250YWluZXIgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDEzMDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEzMDAgfSk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBpZ25vcmVVc2VyU2VsZWN0Tm9uZSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0RHJhZ1N0YXJ0ID0gb3V0cHV0PElEcmFnU3RhcnQ+KCk7XG4gIHJlYWRvbmx5IG91dERyYWdPdmVyID0gb3V0cHV0PElEcmFnT3Zlcj4oKTtcbiAgcmVhZG9ubHkgb3V0RHJhZ0xlYXZlID0gb3V0cHV0PElEcmFnTGVhdmU+KCk7XG4gIHJlYWRvbmx5IG91dERyYWdFbmQgPSBvdXRwdXQ8SURyYWdFbmQ+KCk7XG4gIHJlYWRvbmx5IG91dERyb3BwZWQgPSBvdXRwdXQ8SURyb3A+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGAke3RoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkNsYXNzSXRlbURlZmluZX0tZGlzYWJsZWApO1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpICYmICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhgJHt0aGlzLmRyYWdEcm9wU2VydmljZS5DbGFzc0l0ZW1EZWZpbmV9LWRpc2FibGVgKSkge1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoYCR7dGhpcy5kcmFnRHJvcFNlcnZpY2UuQ2xhc3NJdGVtRGVmaW5lfS1kaXNhYmxlYCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0aGlzLmZpZWxkSWQoKSkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2ZpZWxkX2lkJywgdGhpcy5maWVsZElkKCkpO1xuICAgICAgaWYgKHRoaXMuaXRlbSgpKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdpdGVtX2lkJywgZ2V0KHRoaXMuaXRlbSgpLCB0aGlzLmZpZWxkSWQoKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5kcmFnRHJvcFNlcnZpY2UuQ2xhc3NJdGVtRGVmaW5lKTtcbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdnaW5nLnBpcGUodGhyb3R0bGVUaW1lKHRoaXMudGhyb3R0bGVUaW1lSGFuZGxlckRyYWdnaW5nRXZlbnQoKSksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZXZlbnREcmFnZ2luZykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8ICh0aGlzLmZpZWxkSWQoKSAmJiB0aGlzLml0ZW0oKSAmJiBldmVudERyYWdnaW5nLmVsZW1lbnREcmFnLmdldEF0dHJpYnV0ZSgnaXRlbV9pZCcpID09PSBnZXQodGhpcy5pdGVtKCksIHRoaXMuZmllbGRJZCgpKSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udGFpbmVyQnlJZCA9IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkNvbnRhaW5lcigpLmdldChlbGVtZW50LmdldEF0dHJpYnV0ZSgnZ3JvdXBJRCcpIHx8ICcnKTtcblxuICAgICAgaWYgKGNvbnRhaW5lckJ5SWQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50RHJhZ2dpbmcuZWxlbWVudEtlZXBDb250YWluZXIgfHxcbiAgICAgICAgICAhdGhpcy5kcmFnRHJvcFNlcnZpY2UuY2hlY2tFbGVtZW50T3ZlckFjY2VwdEVsZW1lbnREcmFnKGNvbnRhaW5lckJ5SWQuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2dyb3VwTmFtZScpLCBldmVudERyYWdnaW5nLmVsZW1lbnREcmFnLmdldEF0dHJpYnV0ZSgnZ3JvdXBOYW1lJyksIGV2ZW50RHJhZ2dpbmcuZWxlbWVudERyYWcuZ2V0QXR0cmlidXRlKCdkcm9wVG9Hcm91cE5hbWUnKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lcihldmVudERyYWdnaW5nLm1vdXNlUG9zaXRpb24sIGVsZW1lbnQpICYmIGVsZW1lbnQgIT09IGV2ZW50RHJhZ2dpbmcuZWxlbWVudERyYWcgJiYgY29udGFpbmVyQnlJZCAmJiBjaGVja1ZpZXdJblNjcmVlbihjb250YWluZXJCeUlkLmVsZW1lbnQsIGVsZW1lbnQsIGNvbnRhaW5lckJ5SWQuZWxlbWVudFNjcm9sbCkpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnT3ZlcigpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV2ZW50RHJhZ092ZXIgPSB7IC4uLmV2ZW50RHJhZ2dpbmcsIGVsZW1lbnREcmFnT3ZlcjogZWxlbWVudCB9O1xuXG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ092ZXIubmV4dChldmVudERyYWdPdmVyKTtcbiAgICAgICAgdGhpcy5vdXREcmFnT3Zlci5lbWl0KGV2ZW50RHJhZ092ZXIpO1xuICAgICAgICB0aGlzLmlzRHJhZ092ZXIuc2V0KHRydWUpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNEcmFnT3ZlcigpKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RHJhZ0xlYXZlID0geyAuLi5ldmVudERyYWdnaW5nLCBlbGVtZW50RHJhZ0xlYXZlOiBlbGVtZW50IH07XG4gICAgICAgIHRoaXMuaXNEcmFnT3Zlci5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdMZWF2ZS5uZXh0KGV2ZW50RHJhZ0xlYXZlKTtcbiAgICAgICAgdGhpcy5vdXREcmFnTGVhdmUuZW1pdChldmVudERyYWdMZWF2ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyb3BDb250YWluZXIucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKGV2ZW50RHJvcCkgPT4ge1xuICAgICAgaWYgKGV2ZW50RHJvcC5lbGVtZW50RHJvcCAhPT0gZWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBkcm9wRXZlbnQgPSB7IGVsZW1lbnREcmFnOiBldmVudERyb3AuZWxlbWVudERyYWcsIGVsZW1lbnREcm9wOiBlbGVtZW50LCBpdGVtRHJhZ0luZm86IGV2ZW50RHJvcC5pdGVtRHJhZ0luZm8gfTtcblxuICAgICAgdGhpcy5vdXREcm9wcGVkLmVtaXQoZHJvcEV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICBzdHlsZVRhZy50ZXh0Q29udGVudCA9IGAubGlicy11aS1kcmFnLWRyb3AtaXRlbS1kcmFnZ2luZ3tjdXJzb3I6bW92ZX1gO1xuICAgIGxldCBub2RlQ2xvbmUgPSBlbGVtZW50O1xuICAgIGxldCBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdCA9IC0xO1xuICAgIGxldCBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlVG9wID0gLTE7XG4gICAgbGV0IGNvbnRleHRNZW51ID0gZmFsc2U7XG4gICAgY29uc3Qgc3RvcEV2ZW50TW91c2UgPSAobW91c2VFdmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlnbm9yZVN0b3BFdmVudCgpKSB7XG4gICAgICAgIG1vdXNlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbW91c2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVwZGF0ZVBvc2l0aW9uRWxlbWVudFJvb3RBbmRSZW1vdmVOb2RlQ2xvbmUgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcmFnUm9vdEVsZW1lbnQoKSkge1xuICAgICAgICBjb25zdCBjb250YWluZXJCeUlkID0gdGhpcy5kcmFnRHJvcFNlcnZpY2UuQ29udGFpbmVyKCkuZ2V0KGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdncm91cElEJykgfHwgJycpO1xuXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckl0ZW0gPSB0aGlzLmVsZW1lbnRDb250YWluZXIoKSB8fCBjb250YWluZXJCeUlkPy5lbGVtZW50U2Nyb2xsIHx8IGNvbnRhaW5lckJ5SWQ/LmVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keTtcbiAgICAgICAgY29uc3QgcmVjdENvbnRhaW5lciA9IGNvbnRhaW5lckl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlY3ROb2RlQ2xvbmUgPSBub2RlQ2xvbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG51bWJlclN1YiA9IE51bWJlcigoZ2V0Q29tcHV0ZWRTdHlsZShjb250YWluZXJJdGVtKS5ib3JkZXIubWF0Y2goL1xcZCtweC9naSkgfHwgWycwJ10pWzBdLnJlcGxhY2UoL1xcRCsvZ2ksICcnKSkudmFsdWVPZigpO1xuXG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3ROb2RlQ2xvbmUubGVmdCAtIHJlY3RDb250YWluZXIubGVmdCAtIG51bWJlclN1YiArICdweCc7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gcmVjdE5vZGVDbG9uZS50b3AgLSByZWN0Q29udGFpbmVyLnRvcCAtIG51bWJlclN1YiArICdweCc7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnb3BhY2l0eS0wJyk7XG4gICAgICB9XG4gICAgICBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdCA9IC0xO1xuICAgICAgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcCA9IC0xO1xuICAgICAgbm9kZUNsb25lLnJlbW92ZSgpO1xuICAgIH07XG5cbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdjb250ZXh0bWVudScpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pc0RyYWdnaW5nKCkpIHtcbiAgICAgICAgICAgIHVwZGF0ZVBvc2l0aW9uRWxlbWVudFJvb3RBbmRSZW1vdmVOb2RlQ2xvbmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGV4dE1lbnUgPSB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgbGV0IGlnbm9yZU1vdXNlZG93biA9IGZhbHNlO1xuXG4gICAgZ2V0RHJhZ0V2ZW50QnlFbGVtZW50KHtcbiAgICAgIGVsZW1lbnRNb3VzZURvd246IGVsZW1lbnQsXG4gICAgICBmdW5jdGlvbk1vdXNlRG93bjogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1DbGljayA9IGVsZW1lbnQ7XG4gICAgICAgIGNvbnRleHRNZW51ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlTW91c2VFdmVudHNXaGVuTW92ZU92ZXJJZnJhbWUoJ25vbmUnKTtcbiAgICAgICAgaWYgKCh0aGlzLmRpc2FibGUoKSB8fCBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZURyYWdDb250YWluZXInKSB8fCAhdGhpcy5pc0RyYWdnaW5nKCkgfHwgdGhpcy5pdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsKCkpICYmICF0aGlzLm9ubHlNb3VzZURvd25TdG9wRXZlbnQoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdG9wRXZlbnRNb3VzZShldmVudCk7XG4gICAgICB9LFxuICAgICAgZnVuY3Rpb25Nb3VzZU1vdmU6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBzdG9wRXZlbnRNb3VzZShldmVudCk7XG4gICAgICB9LFxuICAgICAgZnVuY3Rpb25Nb3VzZVVwOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVNb3VzZUV2ZW50c1doZW5Nb3ZlT3ZlcklmcmFtZSgnYXV0bycpO1xuICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5yZXNldEl0ZW1DbGljaygpO1xuICAgICAgICBzdG9wRXZlbnRNb3VzZShldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGUoKSB8fCBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZURyYWdDb250YWluZXInKSB8fCBjb250ZXh0TWVudSB8fCAhdGhpcy5pc0RyYWdnaW5nKCkpIHtcbiAgICAgICAgICBjb250ZXh0TWVudSA9IGZhbHNlO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHRNZW51ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQoZmFsc2UpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmRyYWdEcm9wU2VydmljZS5UYXJnZXRJdGVtRHJhZ0ZsYWcpO1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsKCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW91c2VQb3NpdGlvbiA9IHsgY2xpZW50WDogZXZlbnQuY2xpZW50WCwgY2xpZW50WTogZXZlbnQuY2xpZW50WSB9O1xuXG4gICAgICAgIGlmICh0aGlzLmRyYWdCb3VuZGFyeSgpICYmIHRoaXMuZHJhZ0JvdW5kYXJ5QWNjZXB0TW91c2VMZWF2ZUNvbnRhaW5lcigpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRDbGllbnRQb3NpdGlvbihlbGVtZW50LCBtb3VzZVBvc2l0aW9uLCBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdCwgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcCwgdGhpcy5kcmFnQm91bmRhcnkoKSwgdGhpcy5lbGVtZW50Q29udGFpbmVyKCkpO1xuXG4gICAgICAgICAgbW91c2VQb3NpdGlvbi5jbGllbnRYID0gcmVzdWx0LmNsaWVudFg7XG4gICAgICAgICAgbW91c2VQb3NpdGlvbi5jbGllbnRZID0gcmVzdWx0LmNsaWVudFk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZHJhZ0VuZEV2ZW50ID0geyBtb3VzZVBvc2l0aW9uLCBlbGVtZW50RHJhZzogZWxlbWVudCwgaXRlbURyYWdJbmZvOiB0aGlzLmRyYWdEcm9wU2VydmljZS5JdGVtRHJhZ0luZm8gfTtcblxuICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5JdGVtRHJhZ0luZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ0VuZC5uZXh0KGRyYWdFbmRFdmVudCk7XG4gICAgICAgIHRoaXMub3V0RHJhZ0VuZC5lbWl0KGRyYWdFbmRFdmVudCk7XG5cbiAgICAgICAgbm9kZUNsb25lLmNsYXNzTGlzdC5yZW1vdmUoJ2xpYnMtdWktZHJhZy1kcm9wLWl0ZW0tZHJhZ2dpbmcnKTtcbiAgICAgICAgaWYgKCF0aGlzLmlnbm9yZVVzZXJTZWxlY3ROb25lKCkpIHtcbiAgICAgICAgICBub2RlQ2xvbmUuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0LW5vbmUnKTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZVRhZy5yZW1vdmUoKTtcblxuICAgICAgICB1cGRhdGVQb3NpdGlvbkVsZW1lbnRSb290QW5kUmVtb3ZlTm9kZUNsb25lKCk7XG4gICAgICB9LFxuICAgICAgb25EZXN0cm95OiB0aGlzLm9uRGVzdHJveSxcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZHJhZ01vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCByZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSBnZXRWaWV3cG9ydCgpIGFzIElCb3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlKCkgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVEcmFnQ29udGFpbmVyJykgfHwgIWRyYWdNb3VzZUV2ZW50LmNsaWVudFggfHwgKCFpZ25vcmVNb3VzZWRvd24gJiYgZHJhZ01vdXNlRXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bicgJiYgcmVjdEVsZW1lbnQuaGVpZ2h0ICsgcmVjdEVsZW1lbnQudG9wID49IHZpZXdwb3J0LmhlaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBjbGllbnRYLCBjbGllbnRZIH0gPSBkcmFnTW91c2VFdmVudDtcblxuICAgICAgICAgIGlmIChkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdCA9PT0gLTEpIHtcbiAgICAgICAgICAgIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VMZWZ0ID0gY2xpZW50WCAtIHJlY3RFbGVtZW50LmxlZnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VUb3AgPT09IC0xKSB7XG4gICAgICAgICAgICBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlVG9wID0gY2xpZW50WSAtIHJlY3RFbGVtZW50LnRvcDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChkcmFnTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5kcmFnRHJvcFNlcnZpY2UuSXRlbUNsaWNrLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gZWxlbWVudCkuc29tZSgoaXRlbSkgPT4gZWxlbWVudC5jb250YWlucyhpdGVtKSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8ICFkcmFnTW91c2VFdmVudC5jbGllbnRYIHx8IGRyYWdNb3VzZUV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nIHx8IGNvbnRleHRNZW51IHx8ICh0aGlzLml0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGwoKSAmJiB0aGlzLmlzRHJhZ2dpbmcoKSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWdub3JlTW91c2Vkb3duID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBjbGllbnRYLCBjbGllbnRZIH0gPSBkcmFnTW91c2VFdmVudDtcbiAgICAgICAgY29uc3QgbW91c2VQb3NpdGlvbiA9IHsgY2xpZW50WCwgY2xpZW50WSB9O1xuICAgICAgICBjb25zdCByZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcoKSkge1xuICAgICAgICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQodHJ1ZSk7XG4gICAgICAgICAgY29uc3QgZXZlbnREcmFnU3RhcnQgPSB7IG1vdXNlUG9zaXRpb24sIGVsZW1lbnREcmFnOiBlbGVtZW50LCBpdGVtRHJhZ0luZm86IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbyB9O1xuXG4gICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5kcmFnRHJvcFNlcnZpY2UuVGFyZ2V0SXRlbURyYWdGbGFnLCAndHJ1ZScpO1xuICAgICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ1N0YXJ0Lm5leHQoZXZlbnREcmFnU3RhcnQpO1xuICAgICAgICAgIGV2ZW50RHJhZ1N0YXJ0Lml0ZW1EcmFnSW5mbyA9IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbztcbiAgICAgICAgICB0aGlzLm91dERyYWdTdGFydC5lbWl0KGV2ZW50RHJhZ1N0YXJ0KTtcblxuICAgICAgICAgIG5vZGVDbG9uZSA9IGVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIG5vZGVDbG9uZS5zdHlsZS56SW5kZXggPSBgJHt0aGlzLnpJbmRleCgpfWA7XG4gICAgICAgICAgbm9kZUNsb25lLmNsYXNzTGlzdC5hZGQoJyFmaXhlZCcpO1xuICAgICAgICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QucmVtb3ZlKCdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLW9yaWdpbi1wbGFjZWhvbGRlcicpO1xuICAgICAgICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QucmVtb3ZlKCdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLXBsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgbm9kZUNsb25lLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcbiAgICAgICAgICBub2RlQ2xvbmUuY2xhc3NMaXN0LmFkZCgnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIG5vZGVDbG9uZS5zdHlsZS53aWR0aCA9IGAke3JlY3RFbGVtZW50LndpZHRofXB4YDtcbiAgICAgICAgICBub2RlQ2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7cmVjdEVsZW1lbnQuaGVpZ2h0fXB4YDtcbiAgICAgICAgICBub2RlQ2xvbmUuc3R5bGUubGVmdCA9IGAkey05OTl9cHhgO1xuICAgICAgICAgIG5vZGVDbG9uZS5zdHlsZS50b3AgPSBgJHstOTk5fXB4YDtcbiAgICAgICAgICBpZiAoIXRoaXMuaWdub3JlVXNlclNlbGVjdE5vbmUoKSkge1xuICAgICAgICAgICAgbm9kZUNsb25lLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdC1ub25lJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKG5vZGVDbG9uZSk7XG4gICAgICAgICAgaWYgKHRoaXMuZHJhZ1Jvb3RFbGVtZW50KCkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnb3BhY2l0eS0wJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbUluQ29udGFpbmVyVmlydHVhbFNjcm9sbCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdJdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsLm5leHQoe1xuICAgICAgICAgICAgICBpdGVtRHJhZ0luZm86IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbyxcbiAgICAgICAgICAgICAgZWxlbWVudERyYWc6IG5vZGVDbG9uZSxcbiAgICAgICAgICAgICAgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcCxcbiAgICAgICAgICAgICAgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQsXG4gICAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXI6IHRoaXMuZWxlbWVudENvbnRhaW5lcigpLFxuICAgICAgICAgICAgICBkcmFnQm91bmRhcnk6IHRoaXMuZHJhZ0JvdW5kYXJ5KCksXG4gICAgICAgICAgICAgIGRyYWdCb3VuZGFyeUFjY2VwdE1vdXNlTGVhdmVDb250YWluZXI6IHRoaXMuZHJhZ0JvdW5kYXJ5QWNjZXB0TW91c2VMZWF2ZUNvbnRhaW5lcigpLFxuICAgICAgICAgICAgICBpZ25vcmVTdG9wRXZlbnQ6IHRoaXMuaWdub3JlU3RvcEV2ZW50KCksXG4gICAgICAgICAgICAgIGlnbm9yZVVzZXJTZWxlY3ROb25lOiB0aGlzLmlnbm9yZVVzZXJTZWxlY3ROb25lKCkgfHwgZmFsc2UsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldENsaWVudFBvc2l0aW9uKG5vZGVDbG9uZSwgbW91c2VQb3NpdGlvbiwgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQsIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VUb3AsIHRoaXMuZHJhZ0JvdW5kYXJ5KCksIHRoaXMuZWxlbWVudENvbnRhaW5lcigpKTtcblxuICAgICAgICBjb25zdCBlbGVtZW50S2VlcENvbnRhaW5lciA9IHJlc3VsdC5lbGVtZW50S2VlcENvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgbGVmdCA9IHJlc3VsdC5jbGllbnRYIC0gZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQ7XG4gICAgICAgIGNvbnN0IHRvcCA9IHJlc3VsdC5jbGllbnRZIC0gZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcDtcblxuICAgICAgICBpZiAodGhpcy5kcmFnQm91bmRhcnkoKSAmJiB0aGlzLmRyYWdCb3VuZGFyeUFjY2VwdE1vdXNlTGVhdmVDb250YWluZXIoKSkge1xuICAgICAgICAgIGlmIChjbGllbnRYIDwgcmVzdWx0LnZpZXdwb3J0LmxlZnQpIHtcbiAgICAgICAgICAgIG1vdXNlUG9zaXRpb24uY2xpZW50WCA9IHJlc3VsdC52aWV3cG9ydC5sZWZ0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2xpZW50WCA+IHJlc3VsdC52aWV3cG9ydC53aWR0aCkge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jbGllbnRYID0gcmVzdWx0LnZpZXdwb3J0LndpZHRoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2xpZW50WSA8IHJlc3VsdC52aWV3cG9ydC50b3ApIHtcbiAgICAgICAgICAgIG1vdXNlUG9zaXRpb24uY2xpZW50WSA9IHJlc3VsdC52aWV3cG9ydC50b3A7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjbGllbnRZID4gcmVzdWx0LnZpZXdwb3J0LmhlaWdodCkge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jbGllbnRZID0gcmVzdWx0LnZpZXdwb3J0LmhlaWdodDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbm9kZUNsb25lLnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YDtcbiAgICAgICAgbm9kZUNsb25lLnN0eWxlLnRvcCA9IGAke3RvcH1weGA7XG5cbiAgICAgICAgY29uc3QgZXZlbnREcmFnZ2luZyA9IHsgbW91c2VQb3NpdGlvbiwgZWxlbWVudERyYWc6IG5vZGVDbG9uZSwgZWxlbWVudEtlZXBDb250YWluZXIsIGl0ZW1EcmFnSW5mbzogdGhpcy5kcmFnRHJvcFNlcnZpY2UuSXRlbURyYWdJbmZvIH07XG5cbiAgICAgICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnZ2luZy5uZXh0KGV2ZW50RHJhZ2dpbmcpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kcmFnLWRyb3Avc3JjL2RyYWctaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkgsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQVFwSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsK0NBQStDO0lBQzFGLG1CQUFtQjtJQUNYLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUU1QyxnQkFBZ0I7SUFDaEIsb0VBQW9FO0lBQzNELE9BQU8sR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBSSxHQUFHLEtBQUssQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUM3Qiw0QkFBNEIsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUN6RCxvQ0FBb0M7SUFDM0IsZ0NBQWdDLEdBQUcsS0FBSyxDQUE2QixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFD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LFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDbEMsYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDOUMsQ0FBQztnQkFDRCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNyQyxhQUFhLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxDQUFDO1lBQ0gsQ0FBQztZQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztZQUVqQyxNQUFNLGFBQWEsR0FBRyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXZJLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBM1NVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBJQm91bmRpbmdDbGllbnRSZWN0IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBjaGVja01vdXNlT3ZlckluQ29udGFpbmVyLCBjaGVja1ZpZXdJblNjcmVlbiwgZ2V0LCBnZXREcmFnRXZlbnRCeUVsZW1lbnQsIGdldFZpZXdwb3J0IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGlic1VpRHJhZ0l0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctaXRlbS1pbi1jb250YWluZXItdmlydHVhbC1zY3JvbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IElEcmFnRW5kLCBJRHJhZ0xlYXZlLCBJRHJhZ092ZXIsIElEcmFnU3RhcnQsIElEcm9wIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2V2ZW50LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tMaWJzVWlEcmFnSXRlbURpcmVjdGl2ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlEcmFnSXRlbURpcmVjdGl2ZSBleHRlbmRzIExpYnNVaURyYWdJdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJpdmF0ZSBpc0RyYWdPdmVyID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpc0RyYWdnaW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIC8vc2V0dXAgMyBmaWVsZCBwaMOtYSBkxrDhu5tpIG7hur91IMSRYW5nIHPhu60gZOG7pW5nIGl0ZW0gdHJvbmcgdmlydHVhbC1zY3JvbGxcbiAgcmVhZG9ubHkgZmllbGRJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBpdGVtID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBpdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHJlYWRvbmx5IHRocm90dGxlVGltZUhhbmRsZXJEcmFnZ2luZ0V2ZW50ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDAgfSk7XG4gIHJlYWRvbmx5IGlnbm9yZVN0b3BFdmVudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG9ubHlNb3VzZURvd25TdG9wRXZlbnQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkcmFnUm9vdEVsZW1lbnQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkcmFnQm91bmRhcnkgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkcmFnQm91bmRhcnlBY2NlcHRNb3VzZUxlYXZlQ29udGFpbmVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZWxlbWVudENvbnRhaW5lciA9IGlucHV0PEhUTUxFbGVtZW50PigpO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oMTMwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTMwMCB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVVzZXJTZWxlY3ROb25lID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXREcmFnU3RhcnQgPSBvdXRwdXQ8SURyYWdTdGFydD4oKTtcbiAgcmVhZG9ubHkgb3V0RHJhZ092ZXIgPSBvdXRwdXQ8SURyYWdPdmVyPigpO1xuICByZWFkb25seSBvdXREcmFnTGVhdmUgPSBvdXRwdXQ8SURyYWdMZWF2ZT4oKTtcbiAgcmVhZG9ubHkgb3V0RHJhZ0VuZCA9IG91dHB1dDxJRHJhZ0VuZD4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcHBlZCA9IG91dHB1dDxJRHJvcD4oKTtcblxuICAvLyAjcmVnaW9uIElOSkVDVFxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYCR7dGhpcy5kcmFnRHJvcFNlcnZpY2UuQ2xhc3NJdGVtRGVmaW5lfS1kaXNhYmxlYCk7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlKCkgJiYgIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGAke3RoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkNsYXNzSXRlbURlZmluZX0tZGlzYWJsZWApKSB7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChgJHt0aGlzLmRyYWdEcm9wU2VydmljZS5DbGFzc0l0ZW1EZWZpbmV9LWRpc2FibGVgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZmllbGRJZCgpKSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZmllbGRfaWQnLCB0aGlzLmZpZWxkSWQoKSk7XG4gICAgICBpZiAodGhpcy5pdGVtKCkpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2l0ZW1faWQnLCBnZXQodGhpcy5pdGVtKCksIHRoaXMuZmllbGRJZCgpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmRyYWdEcm9wU2VydmljZS5DbGFzc0l0ZW1EZWZpbmUpO1xuICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ2dpbmcucGlwZSh0aHJvdHRsZVRpbWUodGhpcy50aHJvdHRsZVRpbWVIYW5kbGVyRHJhZ2dpbmdFdmVudCgpKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZXZlbnREcmFnZ2luZykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8ICh0aGlzLmZpZWxkSWQoKSAmJiB0aGlzLml0ZW0oKSAmJiBldmVudERyYWdnaW5nLmVsZW1lbnREcmFnLmdldEF0dHJpYnV0ZSgnaXRlbV9pZCcpID09PSBnZXQodGhpcy5pdGVtKCksIHRoaXMuZmllbGRJZCgpKSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udGFpbmVyQnlJZCA9IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkNvbnRhaW5lcigpLmdldChlbGVtZW50LmdldEF0dHJpYnV0ZSgnZ3JvdXBJRCcpIHx8ICcnKTtcblxuICAgICAgaWYgKGNvbnRhaW5lckJ5SWQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50RHJhZ2dpbmcuZWxlbWVudEtlZXBDb250YWluZXIgfHxcbiAgICAgICAgICAhdGhpcy5kcmFnRHJvcFNlcnZpY2UuY2hlY2tFbGVtZW50T3ZlckFjY2VwdEVsZW1lbnREcmFnKGNvbnRhaW5lckJ5SWQuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2dyb3VwTmFtZScpLCBldmVudERyYWdnaW5nLmVsZW1lbnREcmFnLmdldEF0dHJpYnV0ZSgnZ3JvdXBOYW1lJyksIGV2ZW50RHJhZ2dpbmcuZWxlbWVudERyYWcuZ2V0QXR0cmlidXRlKCdkcm9wVG9Hcm91cE5hbWUnKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lcihldmVudERyYWdnaW5nLm1vdXNlUG9zaXRpb24sIGVsZW1lbnQpICYmIGVsZW1lbnQgIT09IGV2ZW50RHJhZ2dpbmcuZWxlbWVudERyYWcgJiYgY29udGFpbmVyQnlJZCAmJiBjaGVja1ZpZXdJblNjcmVlbihjb250YWluZXJCeUlkLmVsZW1lbnQsIGVsZW1lbnQsIGNvbnRhaW5lckJ5SWQuZWxlbWVudFNjcm9sbCkpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnT3ZlcigpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV2ZW50RHJhZ092ZXIgPSB7IC4uLmV2ZW50RHJhZ2dpbmcsIGVsZW1lbnREcmFnT3ZlcjogZWxlbWVudCB9O1xuXG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ092ZXIubmV4dChldmVudERyYWdPdmVyKTtcbiAgICAgICAgdGhpcy5vdXREcmFnT3Zlci5lbWl0KGV2ZW50RHJhZ092ZXIpO1xuICAgICAgICB0aGlzLmlzRHJhZ092ZXIuc2V0KHRydWUpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNEcmFnT3ZlcigpKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RHJhZ0xlYXZlID0geyAuLi5ldmVudERyYWdnaW5nLCBlbGVtZW50RHJhZ0xlYXZlOiBlbGVtZW50IH07XG4gICAgICAgIHRoaXMuaXNEcmFnT3Zlci5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdMZWF2ZS5uZXh0KGV2ZW50RHJhZ0xlYXZlKTtcbiAgICAgICAgdGhpcy5vdXREcmFnTGVhdmUuZW1pdChldmVudERyYWdMZWF2ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyb3BDb250YWluZXIucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChldmVudERyb3ApID0+IHtcbiAgICAgIGlmIChldmVudERyb3AuZWxlbWVudERyb3AgIT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZHJvcEV2ZW50ID0geyBlbGVtZW50RHJhZzogZXZlbnREcm9wLmVsZW1lbnREcmFnLCBlbGVtZW50RHJvcDogZWxlbWVudCwgaXRlbURyYWdJbmZvOiBldmVudERyb3AuaXRlbURyYWdJbmZvIH07XG5cbiAgICAgIHRoaXMub3V0RHJvcHBlZC5lbWl0KGRyb3BFdmVudCk7XG4gICAgfSk7XG4gICAgY29uc3Qgc3R5bGVUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgc3R5bGVUYWcudGV4dENvbnRlbnQgPSBgLmxpYnMtdWktZHJhZy1kcm9wLWl0ZW0tZHJhZ2dpbmd7Y3Vyc29yOm1vdmV9YDtcbiAgICBsZXQgbm9kZUNsb25lID0gZWxlbWVudDtcbiAgICBsZXQgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQgPSAtMTtcbiAgICBsZXQgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcCA9IC0xO1xuICAgIGxldCBjb250ZXh0TWVudSA9IGZhbHNlO1xuICAgIGNvbnN0IHN0b3BFdmVudE1vdXNlID0gKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5pZ25vcmVTdG9wRXZlbnQoKSkge1xuICAgICAgICBtb3VzZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG1vdXNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVQb3NpdGlvbkVsZW1lbnRSb290QW5kUmVtb3ZlTm9kZUNsb25lID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZHJhZ1Jvb3RFbGVtZW50KCkpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyQnlJZCA9IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkNvbnRhaW5lcigpLmdldChlbGVtZW50LmdldEF0dHJpYnV0ZSgnZ3JvdXBJRCcpIHx8ICcnKTtcblxuICAgICAgICBjb25zdCBjb250YWluZXJJdGVtID0gdGhpcy5lbGVtZW50Q29udGFpbmVyKCkgfHwgY29udGFpbmVyQnlJZD8uZWxlbWVudFNjcm9sbCB8fCBjb250YWluZXJCeUlkPy5lbGVtZW50IHx8IGRvY3VtZW50LmJvZHk7XG4gICAgICAgIGNvbnN0IHJlY3RDb250YWluZXIgPSBjb250YWluZXJJdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCByZWN0Tm9kZUNsb25lID0gbm9kZUNsb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBudW1iZXJTdWIgPSBOdW1iZXIoKGdldENvbXB1dGVkU3R5bGUoY29udGFpbmVySXRlbSkuYm9yZGVyLm1hdGNoKC9cXGQrcHgvZ2kpIHx8IFsnMCddKVswXS5yZXBsYWNlKC9cXEQrL2dpLCAnJykpLnZhbHVlT2YoKTtcblxuICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSByZWN0Tm9kZUNsb25lLmxlZnQgLSByZWN0Q29udGFpbmVyLmxlZnQgLSBudW1iZXJTdWIgKyAncHgnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHJlY3ROb2RlQ2xvbmUudG9wIC0gcmVjdENvbnRhaW5lci50b3AgLSBudW1iZXJTdWIgKyAncHgnO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ29wYWNpdHktMCcpO1xuICAgICAgfVxuICAgICAgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQgPSAtMTtcbiAgICAgIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VUb3AgPSAtMTtcbiAgICAgIG5vZGVDbG9uZS5yZW1vdmUoKTtcbiAgICB9O1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnY29udGV4dG1lbnUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNEcmFnZ2luZygpKSB7XG4gICAgICAgICAgICB1cGRhdGVQb3NpdGlvbkVsZW1lbnRSb290QW5kUmVtb3ZlTm9kZUNsb25lKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRleHRNZW51ID0gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBsZXQgaWdub3JlTW91c2Vkb3duID0gZmFsc2U7XG5cbiAgICBnZXREcmFnRXZlbnRCeUVsZW1lbnQoe1xuICAgICAgZWxlbWVudE1vdXNlRG93bjogZWxlbWVudCxcbiAgICAgIGZ1bmN0aW9uTW91c2VEb3duOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuSXRlbUNsaWNrID0gZWxlbWVudDtcbiAgICAgICAgY29udGV4dE1lbnUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVNb3VzZUV2ZW50c1doZW5Nb3ZlT3ZlcklmcmFtZSgnbm9uZScpO1xuICAgICAgICBpZiAoKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8ICF0aGlzLmlzRHJhZ2dpbmcoKSB8fCB0aGlzLml0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGwoKSkgJiYgIXRoaXMub25seU1vdXNlRG93blN0b3BFdmVudCgpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN0b3BFdmVudE1vdXNlKGV2ZW50KTtcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbk1vdXNlTW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHN0b3BFdmVudE1vdXNlKGV2ZW50KTtcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbk1vdXNlVXA6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1vdXNlRXZlbnRzV2hlbk1vdmVPdmVySWZyYW1lKCdhdXRvJyk7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLnJlc2V0SXRlbUNsaWNrKCk7XG4gICAgICAgIHN0b3BFdmVudE1vdXNlKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8IGNvbnRleHRNZW51IHx8ICF0aGlzLmlzRHJhZ2dpbmcoKSkge1xuICAgICAgICAgIGNvbnRleHRNZW51ID0gZmFsc2U7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dE1lbnUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nLnNldChmYWxzZSk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLlRhcmdldEl0ZW1EcmFnRmxhZyk7XG4gICAgICAgIGlmICh0aGlzLml0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGwoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb3VzZVBvc2l0aW9uID0geyBjbGllbnRYOiBldmVudC5jbGllbnRYLCBjbGllbnRZOiBldmVudC5jbGllbnRZIH07XG5cbiAgICAgICAgaWYgKHRoaXMuZHJhZ0JvdW5kYXJ5KCkgJiYgdGhpcy5kcmFnQm91bmRhcnlBY2NlcHRNb3VzZUxlYXZlQ29udGFpbmVyKCkpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldENsaWVudFBvc2l0aW9uKGVsZW1lbnQsIG1vdXNlUG9zaXRpb24sIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VMZWZ0LCBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlVG9wLCB0aGlzLmRyYWdCb3VuZGFyeSgpLCB0aGlzLmVsZW1lbnRDb250YWluZXIoKSk7XG5cbiAgICAgICAgICBtb3VzZVBvc2l0aW9uLmNsaWVudFggPSByZXN1bHQuY2xpZW50WDtcbiAgICAgICAgICBtb3VzZVBvc2l0aW9uLmNsaWVudFkgPSByZXN1bHQuY2xpZW50WTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkcmFnRW5kRXZlbnQgPSB7IG1vdXNlUG9zaXRpb24sIGVsZW1lbnREcmFnOiBlbGVtZW50LCBpdGVtRHJhZ0luZm86IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbyB9O1xuXG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnRW5kLm5leHQoZHJhZ0VuZEV2ZW50KTtcbiAgICAgICAgdGhpcy5vdXREcmFnRW5kLmVtaXQoZHJhZ0VuZEV2ZW50KTtcblxuICAgICAgICBub2RlQ2xvbmUuY2xhc3NMaXN0LnJlbW92ZSgnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICBpZiAoIXRoaXMuaWdub3JlVXNlclNlbGVjdE5vbmUoKSkge1xuICAgICAgICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3Qtbm9uZScpO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlVGFnLnJlbW92ZSgpO1xuXG4gICAgICAgIHVwZGF0ZVBvc2l0aW9uRWxlbWVudFJvb3RBbmRSZW1vdmVOb2RlQ2xvbmUoKTtcbiAgICAgIH0sXG4gICAgICBkZXN0cm95UmVmOiB0aGlzLmRlc3Ryb3lSZWYsXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGRyYWdNb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVjdEVsZW1lbnQgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gZ2V0Vmlld3BvcnQoKSBhcyBJQm91bmRpbmdDbGllbnRSZWN0O1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZSgpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlRHJhZ0NvbnRhaW5lcicpIHx8ICFkcmFnTW91c2VFdmVudC5jbGllbnRYIHx8ICghaWdub3JlTW91c2Vkb3duICYmIGRyYWdNb3VzZUV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nICYmIHJlY3RFbGVtZW50LmhlaWdodCArIHJlY3RFbGVtZW50LnRvcCA+PSB2aWV3cG9ydC5oZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgY2xpZW50WCwgY2xpZW50WSB9ID0gZHJhZ01vdXNlRXZlbnQ7XG5cbiAgICAgICAgICBpZiAoZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZUxlZnQgPT09IC0xKSB7XG4gICAgICAgICAgICBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdCA9IGNsaWVudFggLSByZWN0RWxlbWVudC5sZWZ0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlVG9wID09PSAtMSkge1xuICAgICAgICAgICAgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcCA9IGNsaWVudFkgLSByZWN0RWxlbWVudC50b3A7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZHJhZ01vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1DbGljay5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IGVsZW1lbnQpLnNvbWUoKGl0ZW0pID0+IGVsZW1lbnQuY29udGFpbnMoaXRlbSkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGUoKSB8fCBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZURyYWdDb250YWluZXInKSB8fCAhZHJhZ01vdXNlRXZlbnQuY2xpZW50WCB8fCBkcmFnTW91c2VFdmVudC50eXBlID09PSAnbW91c2Vkb3duJyB8fCBjb250ZXh0TWVudSB8fCAodGhpcy5pdGVtSW5Db250YWluZXJWaXJ0dWFsU2Nyb2xsKCkgJiYgdGhpcy5pc0RyYWdnaW5nKCkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlnbm9yZU1vdXNlZG93biA9IHRydWU7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50WCwgY2xpZW50WSB9ID0gZHJhZ01vdXNlRXZlbnQ7XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zaXRpb24gPSB7IGNsaWVudFgsIGNsaWVudFkgfTtcbiAgICAgICAgY29uc3QgcmVjdEVsZW1lbnQgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKCkpIHtcbiAgICAgICAgICB0aGlzLmlzRHJhZ2dpbmcuc2V0KHRydWUpO1xuICAgICAgICAgIGNvbnN0IGV2ZW50RHJhZ1N0YXJ0ID0geyBtb3VzZVBvc2l0aW9uLCBlbGVtZW50RHJhZzogZWxlbWVudCwgaXRlbURyYWdJbmZvOiB0aGlzLmRyYWdEcm9wU2VydmljZS5JdGVtRHJhZ0luZm8gfTtcblxuICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLlRhcmdldEl0ZW1EcmFnRmxhZywgJ3RydWUnKTtcbiAgICAgICAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdTdGFydC5uZXh0KGV2ZW50RHJhZ1N0YXJ0KTtcbiAgICAgICAgICBldmVudERyYWdTdGFydC5pdGVtRHJhZ0luZm8gPSB0aGlzLmRyYWdEcm9wU2VydmljZS5JdGVtRHJhZ0luZm87XG4gICAgICAgICAgdGhpcy5vdXREcmFnU3RhcnQuZW1pdChldmVudERyYWdTdGFydCk7XG5cbiAgICAgICAgICBub2RlQ2xvbmUgPSBlbGVtZW50LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBub2RlQ2xvbmUuc3R5bGUuekluZGV4ID0gYCR7dGhpcy56SW5kZXgoKX1gO1xuICAgICAgICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QuYWRkKCchZml4ZWQnKTtcbiAgICAgICAgICBub2RlQ2xvbmUuY2xhc3NMaXN0LnJlbW92ZSgnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1vcmlnaW4tcGxhY2Vob2xkZXInKTtcbiAgICAgICAgICBub2RlQ2xvbmUuY2xhc3NMaXN0LnJlbW92ZSgnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1wbGFjZWhvbGRlcicpO1xuICAgICAgICAgIG5vZGVDbG9uZS5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG4gICAgICAgICAgbm9kZUNsb25lLmNsYXNzTGlzdC5hZGQoJ2xpYnMtdWktZHJhZy1kcm9wLWl0ZW0tZHJhZ2dpbmcnKTtcbiAgICAgICAgICBub2RlQ2xvbmUuc3R5bGUud2lkdGggPSBgJHtyZWN0RWxlbWVudC53aWR0aH1weGA7XG4gICAgICAgICAgbm9kZUNsb25lLnN0eWxlLmhlaWdodCA9IGAke3JlY3RFbGVtZW50LmhlaWdodH1weGA7XG4gICAgICAgICAgbm9kZUNsb25lLnN0eWxlLmxlZnQgPSBgJHstOTk5fXB4YDtcbiAgICAgICAgICBub2RlQ2xvbmUuc3R5bGUudG9wID0gYCR7LTk5OX1weGA7XG4gICAgICAgICAgaWYgKCF0aGlzLmlnbm9yZVVzZXJTZWxlY3ROb25lKCkpIHtcbiAgICAgICAgICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QuYWRkKCdzZWxlY3Qtbm9uZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChub2RlQ2xvbmUpO1xuICAgICAgICAgIGlmICh0aGlzLmRyYWdSb290RWxlbWVudCgpKSB7XG4gICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ29wYWNpdHktMCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLml0ZW1JbkNvbnRhaW5lclZpcnR1YWxTY3JvbGwoKSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnSXRlbUluQ29udGFpbmVyVmlydHVhbFNjcm9sbC5uZXh0KHtcbiAgICAgICAgICAgICAgaXRlbURyYWdJbmZvOiB0aGlzLmRyYWdEcm9wU2VydmljZS5JdGVtRHJhZ0luZm8sXG4gICAgICAgICAgICAgIGVsZW1lbnREcmFnOiBub2RlQ2xvbmUsXG4gICAgICAgICAgICAgIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VUb3AsXG4gICAgICAgICAgICAgIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VMZWZ0LFxuICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyOiB0aGlzLmVsZW1lbnRDb250YWluZXIoKSxcbiAgICAgICAgICAgICAgZHJhZ0JvdW5kYXJ5OiB0aGlzLmRyYWdCb3VuZGFyeSgpLFxuICAgICAgICAgICAgICBkcmFnQm91bmRhcnlBY2NlcHRNb3VzZUxlYXZlQ29udGFpbmVyOiB0aGlzLmRyYWdCb3VuZGFyeUFjY2VwdE1vdXNlTGVhdmVDb250YWluZXIoKSxcbiAgICAgICAgICAgICAgaWdub3JlU3RvcEV2ZW50OiB0aGlzLmlnbm9yZVN0b3BFdmVudCgpLFxuICAgICAgICAgICAgICBpZ25vcmVVc2VyU2VsZWN0Tm9uZTogdGhpcy5pZ25vcmVVc2VyU2VsZWN0Tm9uZSgpIHx8IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRDbGllbnRQb3NpdGlvbihub2RlQ2xvbmUsIG1vdXNlUG9zaXRpb24sIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VMZWZ0LCBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlVG9wLCB0aGlzLmRyYWdCb3VuZGFyeSgpLCB0aGlzLmVsZW1lbnRDb250YWluZXIoKSk7XG5cbiAgICAgICAgY29uc3QgZWxlbWVudEtlZXBDb250YWluZXIgPSByZXN1bHQuZWxlbWVudEtlZXBDb250YWluZXI7XG4gICAgICAgIGNvbnN0IGxlZnQgPSByZXN1bHQuY2xpZW50WCAtIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VMZWZ0O1xuICAgICAgICBjb25zdCB0b3AgPSByZXN1bHQuY2xpZW50WSAtIGRpc3RhbmNlU3RhcnRFbGVtZW50QW5kTW91c2VUb3A7XG5cbiAgICAgICAgaWYgKHRoaXMuZHJhZ0JvdW5kYXJ5KCkgJiYgdGhpcy5kcmFnQm91bmRhcnlBY2NlcHRNb3VzZUxlYXZlQ29udGFpbmVyKCkpIHtcbiAgICAgICAgICBpZiAoY2xpZW50WCA8IHJlc3VsdC52aWV3cG9ydC5sZWZ0KSB7XG4gICAgICAgICAgICBtb3VzZVBvc2l0aW9uLmNsaWVudFggPSByZXN1bHQudmlld3BvcnQubGVmdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNsaWVudFggPiByZXN1bHQudmlld3BvcnQud2lkdGgpIHtcbiAgICAgICAgICAgIG1vdXNlUG9zaXRpb24uY2xpZW50WCA9IHJlc3VsdC52aWV3cG9ydC53aWR0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNsaWVudFkgPCByZXN1bHQudmlld3BvcnQudG9wKSB7XG4gICAgICAgICAgICBtb3VzZVBvc2l0aW9uLmNsaWVudFkgPSByZXN1bHQudmlld3BvcnQudG9wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2xpZW50WSA+IHJlc3VsdC52aWV3cG9ydC5oZWlnaHQpIHtcbiAgICAgICAgICAgIG1vdXNlUG9zaXRpb24uY2xpZW50WSA9IHJlc3VsdC52aWV3cG9ydC5oZWlnaHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGVDbG9uZS5zdHlsZS5sZWZ0ID0gYCR7bGVmdH1weGA7XG4gICAgICAgIG5vZGVDbG9uZS5zdHlsZS50b3AgPSBgJHt0b3B9cHhgO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50RHJhZ2dpbmcgPSB7IG1vdXNlUG9zaXRpb24sIGVsZW1lbnREcmFnOiBub2RlQ2xvbmUsIGVsZW1lbnRLZWVwQ29udGFpbmVyLCBpdGVtRHJhZ0luZm86IHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLkl0ZW1EcmFnSW5mbyB9O1xuXG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ2dpbmcubmV4dChldmVudERyYWdnaW5nKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Directive, ElementRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { DestroyRef, Directive, ElementRef, inject, input, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { checkMouseOverInContainer, cloneIBoundingClientRect, get } from '@libs-ui/utils';
|
|
4
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
5
5
|
import { MoLibsSharedDragDropService } from './drag-drop.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class LibsUiComponentsDragScrollDirective {
|
|
@@ -9,7 +9,6 @@ export class LibsUiComponentsDragScrollDirective {
|
|
|
9
9
|
stopScroll = signal(false);
|
|
10
10
|
virtualScrollPageInfo = signal(undefined);
|
|
11
11
|
intervalScrollToElement = signal(undefined);
|
|
12
|
-
onDestroy = new Subject();
|
|
13
12
|
// #region INPUT
|
|
14
13
|
ignoreAutoScroll = input();
|
|
15
14
|
widthZoneDetect = input(16, { transform: (value) => value ?? 16 });
|
|
@@ -19,9 +18,10 @@ export class LibsUiComponentsDragScrollDirective {
|
|
|
19
18
|
// #region INJECT
|
|
20
19
|
elementRef = inject(ElementRef);
|
|
21
20
|
dragDropService = inject(MoLibsSharedDragDropService);
|
|
21
|
+
destroyRef = inject(DestroyRef);
|
|
22
22
|
ngAfterViewInit() {
|
|
23
|
-
this.dragDropService.OnDragging.pipe(
|
|
24
|
-
this.dragDropService.OnDragEnd.pipe(
|
|
23
|
+
this.dragDropService.OnDragging.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((eventDragging) => this.checkAndScrollElementToPosition(eventDragging, this.ignoreAutoScroll()));
|
|
24
|
+
this.dragDropService.OnDragEnd.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
25
25
|
clearInterval(this.intervalScrollToElement());
|
|
26
26
|
if (this.virtualScrollPageInfo()) {
|
|
27
27
|
const firstElement = get(this.virtualScrollerComponent(), 'element')?.nativeElement.firstElementChild;
|
|
@@ -36,7 +36,7 @@ export class LibsUiComponentsDragScrollDirective {
|
|
|
36
36
|
}
|
|
37
37
|
this.stopScroll.set(false);
|
|
38
38
|
});
|
|
39
|
-
this.dragDropService.OnDragStart.pipe(
|
|
39
|
+
this.dragDropService.OnDragStart.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
40
40
|
if (this.virtualScrollerComponent) {
|
|
41
41
|
this.virtualScrollerComponent()?.scrollToIndex(0);
|
|
42
42
|
}
|
|
@@ -45,7 +45,7 @@ export class LibsUiComponentsDragScrollDirective {
|
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
this.virtualScrollerComponent()
|
|
48
|
-
?.vsChange.pipe(
|
|
48
|
+
?.vsChange.pipe(takeUntilDestroyed(this.destroyRef))
|
|
49
49
|
.subscribe((pageInfo) => {
|
|
50
50
|
const items = get(this.virtualScrollerComponent, '_items');
|
|
51
51
|
if (items && items.length === pageInfo.endIndex) {
|
|
@@ -126,10 +126,6 @@ export class LibsUiComponentsDragScrollDirective {
|
|
|
126
126
|
}
|
|
127
127
|
}, 10));
|
|
128
128
|
}
|
|
129
|
-
ngOnDestroy() {
|
|
130
|
-
this.onDestroy.next();
|
|
131
|
-
this.onDestroy.complete();
|
|
132
|
-
}
|
|
133
129
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
134
130
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsDragScrollDirective, isStandalone: true, selector: "[LibsUiComponentsDragScrollDirective]", inputs: { ignoreAutoScroll: { classPropertyName: "ignoreAutoScroll", publicName: "ignoreAutoScroll", isSignal: true, isRequired: false, transformFunction: null }, widthZoneDetect: { classPropertyName: "widthZoneDetect", publicName: "widthZoneDetect", isSignal: true, isRequired: false, transformFunction: null }, movementLength: { classPropertyName: "movementLength", publicName: "movementLength", isSignal: true, isRequired: false, transformFunction: null }, rootElementScroll: { classPropertyName: "rootElementScroll", publicName: "rootElementScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollerComponent: { classPropertyName: "virtualScrollerComponent", publicName: "virtualScrollerComponent", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
135
131
|
}
|
|
@@ -141,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
141
137
|
standalone: true,
|
|
142
138
|
}]
|
|
143
139
|
}] });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RyYWctZHJvcC9zcmMvZHJhZy1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQWEsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sbUNBQW1DO0lBQzlDLG1CQUFtQjtJQUNYLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEMscUJBQXFCLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztJQUMvRCx1QkFBdUIsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTFDLGdCQUFnQjtJQUNQLGdCQUFnQixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ3BDLGVBQWUsR0FBRyxLQUFLLENBQTZCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0YsY0FBYyxHQUFHLEtBQUssQ0FBNkIsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RixpQkFB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QW1DOzs0RkFBbkMsbUNBQW1DO2tCQUwvQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHVDQUF1QztvQkFDakQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBhZ2VJbmZvLCBWaXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQgfSBmcm9tICdAaWhhcmJlY2svbmd4LXZpcnR1YWwtc2Nyb2xsZXInO1xuaW1wb3J0IHsgSUJvdW5kaW5nQ2xpZW50UmVjdCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lciwgY2xvbmVJQm91bmRpbmdDbGllbnRSZWN0LCBnZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1vTGlic1NoYXJlZERyYWdEcm9wU2VydmljZSB9IGZyb20gJy4vZHJhZy1kcm9wLnNlcnZpY2UnO1xuaW1wb3J0IHsgSURyYWdnaW5nIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2V2ZW50LmludGVyZmFjZSc7XG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbTGlic1VpQ29tcG9uZW50c0RyYWdTY3JvbGxEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RyYWdTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgc3RvcFNjcm9sbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgdmlydHVhbFNjcm9sbFBhZ2VJbmZvID0gc2lnbmFsPElQYWdlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGludGVydmFsU2Nyb2xsVG9FbGVtZW50ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBpZ25vcmVBdXRvU2Nyb2xsID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgd2lkdGhab25lRGV0ZWN0ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDE2LCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxNiB9KTtcbiAgcmVhZG9ubHkgbW92ZW1lbnRMZW5ndGggPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oNiwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gNiB9KTtcbiAgcmVhZG9ubHkgcm9vdEVsZW1lbnRTY3JvbGwgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcbiAgcmVhZG9ubHkgdmlydHVhbFNjcm9sbGVyQ29tcG9uZW50ID0gaW5wdXQ8VmlydHVhbFNjcm9sbGVyQ29tcG9uZW50PigpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm90ZWN0ZWQgZHJhZ0Ryb3BTZXJ2aWNlID0gaW5qZWN0KE1vTGlic1NoYXJlZERyYWdEcm9wU2VydmljZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ2dpbmcucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKGV2ZW50RHJhZ2dpbmcpID0+IHRoaXMuY2hlY2tBbmRTY3JvbGxFbGVtZW50VG9Qb3NpdGlvbihldmVudERyYWdnaW5nLCB0aGlzLmlnbm9yZUF1dG9TY3JvbGwoKSkpO1xuICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ0VuZC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG4gICAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsUGFnZUluZm8oKSkge1xuICAgICAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSBnZXQ8YW55Pih0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpLCAnZWxlbWVudCcpPy5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBnZXQ8YW55Pih0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpLCAnX2hvcml6b250YWwnKTtcbiAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgIGZpcnN0RWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgc2NhbGVYKCR7dGhpcy52aXJ0dWFsU2Nyb2xsUGFnZUluZm8oKT8uc2Nyb2xsRW5kUG9zaXRpb259KWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0hvcml6b250YWwpIHtcbiAgICAgICAgICBmaXJzdEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHNjYWxlWSgke3RoaXMudmlydHVhbFNjcm9sbFBhZ2VJbmZvKCk/LnNjcm9sbEVuZFBvc2l0aW9ufSlgO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlydHVhbFNjcm9sbFBhZ2VJbmZvLnNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5zdG9wU2Nyb2xsLnNldChmYWxzZSk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnU3RhcnQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KCk/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpXG4gICAgICA/LnZzQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2VJbmZvKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0PGFueT4odGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQsICdfaXRlbXMnKTtcblxuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID09PSBwYWdlSW5mby5lbmRJbmRleCkge1xuICAgICAgICAgIHRoaXMudmlydHVhbFNjcm9sbFBhZ2VJbmZvLnNldChwYWdlSW5mbyk7XG4gICAgICAgICAgY29uc3QgZWxlbWVudFNldFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKSB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBnZXQ8YW55Pih0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCwgJ19ob3Jpem9udGFsJyk7XG5cbiAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsICYmIHBhZ2VJbmZvLnNjcm9sbEVuZFBvc2l0aW9uIDwgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aCArIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIDMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFNjcm9sbC5zZXQodHJ1ZSk7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbCAmJiBwYWdlSW5mby5zY3JvbGxFbmRQb3NpdGlvbiA8IGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0SGVpZ2h0ICsgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgKyAzKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KHRydWUpO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsU2Nyb2xsVG9FbGVtZW50KCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcFNjcm9sbC5zZXQoZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJvdGVjdGVkIGNoZWNrQW5kU2Nyb2xsRWxlbWVudFRvUG9zaXRpb24oZXZlbnREcmFnZ2luZzogSURyYWdnaW5nLCBpZ25vcmVBdXRvU2Nyb2xsPzogYm9vbGVhbikge1xuICAgIGxldCBlbGVtZW50U2V0U2Nyb2xsID0gdGhpcy5yb290RWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGlnbm9yZUF1dG9TY3JvbGwgfHwgIWNoZWNrTW91c2VPdmVySW5Db250YWluZXIoZXZlbnREcmFnZ2luZy5tb3VzZVBvc2l0aW9uLCBlbGVtZW50U2V0U2Nyb2xsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWN0RWxlbWVudCA9IGNsb25lSUJvdW5kaW5nQ2xpZW50UmVjdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgICBpZiAodGhpcy5yb290RWxlbWVudFNjcm9sbCgpKSB7XG4gICAgICBjb25zdCByZWN0RWxlbWVudFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYXMgSUJvdW5kaW5nQ2xpZW50UmVjdDtcblxuICAgICAgcmVjdEVsZW1lbnQubGVmdCA9IHJlY3RFbGVtZW50U2Nyb2xsLmxlZnQ7XG4gICAgICByZWN0RWxlbWVudC50b3AgPSByZWN0RWxlbWVudFNjcm9sbC50b3A7XG4gICAgfVxuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQgfSA9IHJlY3RFbGVtZW50O1xuICAgIGNvbnN0IHsgY2xpZW50WCwgY2xpZW50WSB9ID0gZXZlbnREcmFnZ2luZy5tb3VzZVBvc2l0aW9uO1xuICAgIGNvbnN0IGxpbWl0TGVmdCA9IGxlZnQgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGxpbWl0VG9wID0gdG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG4gICAgaWYgKChjbGllbnRYIDwgbGVmdCB8fCBjbGllbnRYID4gbGVmdCArIHdpZHRoKSAmJiAoY2xpZW50WSA8IHRvcCB8fCBjbGllbnRZID4gdG9wICsgaGVpZ2h0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQuc2V0KFxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBlbGVtZW50U2V0U2Nyb2xsID0gdGhpcy5yb290RWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBsZXQgZGlyZWN0aW9uVG9wID0gMDtcbiAgICAgICAgbGV0IGRpcmVjdGlvbkxlZnQgPSAwO1xuXG4gICAgICAgIGlmICh0b3AgPD0gY2xpZW50WSAmJiBjbGllbnRZIDw9IHRvcCArIHRoaXMud2lkdGhab25lRGV0ZWN0KCkpIHtcbiAgICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCAtPSB0aGlzLm1vdmVtZW50TGVuZ3RoKCk7XG4gICAgICAgICAgZGlyZWN0aW9uVG9wID0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGltaXRUb3AgLSB0aGlzLndpZHRoWm9uZURldGVjdCgpIDw9IGNsaWVudFkgJiYgY2xpZW50WSA8PSBsaW1pdFRvcCkge1xuICAgICAgICAgIGlmICh0aGlzLnN0b3BTY3JvbGwoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCArPSB0aGlzLm1vdmVtZW50TGVuZ3RoKCk7XG4gICAgICAgICAgZGlyZWN0aW9uVG9wID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaW1pdExlZnQgLSB0aGlzLndpZHRoWm9uZURldGVjdCgpIDw9IGNsaWVudFggJiYgY2xpZW50WCA8PSBsaW1pdExlZnQpIHtcbiAgICAgICAgICBpZiAodGhpcy5zdG9wU2Nyb2xsKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0ICs9IHRoaXMubW92ZW1lbnRMZW5ndGgoKTtcbiAgICAgICAgICBkaXJlY3Rpb25MZWZ0ID0gKzE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlZnQgPD0gY2xpZW50WCAmJiBjbGllbnRYIDw9IGxlZnQgKyB0aGlzLndpZHRoWm9uZURldGVjdCgpKSB7XG4gICAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0IC09IHRoaXMubW92ZW1lbnRMZW5ndGgoKTtcbiAgICAgICAgICBkaXJlY3Rpb25MZWZ0ID0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0ICYmIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0V2lkdGggPj0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxXaWR0aCkge1xuICAgICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCAtPSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldFdpZHRoIC0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCAmJiBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0SGVpZ2h0ID49IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgLT0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldEhlaWdodCAtIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIChkaXJlY3Rpb25Ub3AgPCAwICYmICFlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCkgfHxcbiAgICAgICAgICAoIWVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCAmJiBkaXJlY3Rpb25MZWZ0IDwgMCkgfHxcbiAgICAgICAgICAoZGlyZWN0aW9uVG9wICYmIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsSGVpZ2h0IDw9IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQgKyAzKSB8fFxuICAgICAgICAgIChkaXJlY3Rpb25MZWZ0ICYmIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsV2lkdGggPD0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0ICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aCArIDMpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RyYWctZHJvcC9zcmMvZHJhZy1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWlCLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxtQkFBbUI7SUFDWCxVQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLHFCQUFxQixHQUFHLE1BQU0sQ0FBd0IsU0FBUyxDQUFDLENBQUM7SUFDL0QsdUJBQXVCLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUUxRSxnQkFBZ0I7SUFDUCxnQkFBZ0IsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNwQyxlQUFlLEdBQUcsS0FBSyxDQUE2QixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLGNBQWMsR0FBRyxLQUFLLENBQTZCLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUYsaUJBQWlCLEdBQUcsS0FBSyxFQUFlLENBQUM7SUFDekMsd0JB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VSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IElQYWdlSW5mbywgVmlydHVhbFNjcm9sbGVyQ29tcG9uZW50IH0gZnJvbSAnQGloYXJiZWNrL25neC12aXJ0dWFsLXNjcm9sbGVyJztcbmltcG9ydCB7IElCb3VuZGluZ0NsaWVudFJlY3QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IGNoZWNrTW91c2VPdmVySW5Db250YWluZXIsIGNsb25lSUJvdW5kaW5nQ2xpZW50UmVjdCwgZ2V0IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgTW9MaWJzU2hhcmVkRHJhZ0Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi9kcmFnLWRyb3Auc2VydmljZSc7XG5pbXBvcnQgeyBJRHJhZ2dpbmcgfSBmcm9tICcuL2ludGVyZmFjZXMvZXZlbnQuaW50ZXJmYWNlJztcbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tMaWJzVWlDb21wb25lbnRzRHJhZ1Njcm9sbERpcmVjdGl2ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRHJhZ1Njcm9sbERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgc3RvcFNjcm9sbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgdmlydHVhbFNjcm9sbFBhZ2VJbmZvID0gc2lnbmFsPElQYWdlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGludGVydmFsU2Nyb2xsVG9FbGVtZW50ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGlnbm9yZUF1dG9TY3JvbGwgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB3aWR0aFpvbmVEZXRlY3QgPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oMTYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDE2IH0pO1xuICByZWFkb25seSBtb3ZlbWVudExlbmd0aCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgdW5kZWZpbmVkPig2LCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyA2IH0pO1xuICByZWFkb25seSByb290RWxlbWVudFNjcm9sbCA9IGlucHV0PEhUTUxFbGVtZW50PigpO1xuICByZWFkb25seSB2aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQgPSBpbnB1dDxWaXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJvdGVjdGVkIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByb3RlY3RlZCBkcmFnRHJvcFNlcnZpY2UgPSBpbmplY3QoTW9MaWJzU2hhcmVkRHJhZ0Ryb3BTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdnaW5nLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZXZlbnREcmFnZ2luZzogSURyYWdnaW5nKSA9PiB0aGlzLmNoZWNrQW5kU2Nyb2xsRWxlbWVudFRvUG9zaXRpb24oZXZlbnREcmFnZ2luZywgdGhpcy5pZ25vcmVBdXRvU2Nyb2xsKCkpKTtcbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdFbmQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbFNjcm9sbFRvRWxlbWVudCgpKTtcbiAgICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mbygpKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGdldDxhbnk+KHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KCksICdlbGVtZW50Jyk/Lm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IGdldDxhbnk+KHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KCksICdfaG9yaXpvbnRhbCcpO1xuICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgZmlyc3RFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGBzY2FsZVgoJHt0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mbygpPy5zY3JvbGxFbmRQb3NpdGlvbn0pYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgIGZpcnN0RWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgc2NhbGVZKCR7dGhpcy52aXJ0dWFsU2Nyb2xsUGFnZUluZm8oKT8uc2Nyb2xsRW5kUG9zaXRpb259KWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsUGFnZUluZm8uc2V0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWdEcm9wU2VydmljZS5PbkRyYWdTdGFydC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50KCk/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpXG4gICAgICA/LnZzQ2hhbmdlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChwYWdlSW5mbykgPT4ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IGdldDxhbnk+KHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50LCAnX2l0ZW1zJyk7XG5cbiAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA9PT0gcGFnZUluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mby5zZXQocGFnZUluZm8pO1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnRTZXRTY3JvbGwgPSB0aGlzLnJvb3RFbGVtZW50U2Nyb2xsKCkgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gZ2V0PGFueT4odGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQsICdfaG9yaXpvbnRhbCcpO1xuXG4gICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCAmJiBwYWdlSW5mby5zY3JvbGxFbmRQb3NpdGlvbiA8IGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0V2lkdGggKyBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgKyAzKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KHRydWUpO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsU2Nyb2xsVG9FbGVtZW50KCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFpc0hvcml6b250YWwgJiYgcGFnZUluZm8uc2Nyb2xsRW5kUG9zaXRpb24gPCBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldEhlaWdodCArIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wICsgMykge1xuICAgICAgICAgICAgdGhpcy5zdG9wU2Nyb2xsLnNldCh0cnVlKTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbFNjcm9sbFRvRWxlbWVudCgpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KGZhbHNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHByb3RlY3RlZCBjaGVja0FuZFNjcm9sbEVsZW1lbnRUb1Bvc2l0aW9uKGV2ZW50RHJhZ2dpbmc6IElEcmFnZ2luZywgaWdub3JlQXV0b1Njcm9sbD86IGJvb2xlYW4pIHtcbiAgICBsZXQgZWxlbWVudFNldFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKSB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGlmIChpZ25vcmVBdXRvU2Nyb2xsIHx8ICFjaGVja01vdXNlT3ZlckluQ29udGFpbmVyKGV2ZW50RHJhZ2dpbmcubW91c2VQb3NpdGlvbiwgZWxlbWVudFNldFNjcm9sbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVjdEVsZW1lbnQgPSBjbG9uZUlCb3VuZGluZ0NsaWVudFJlY3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gICAgaWYgKHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKSkge1xuICAgICAgY29uc3QgcmVjdEVsZW1lbnRTY3JvbGwgPSB0aGlzLnJvb3RFbGVtZW50U2Nyb2xsKCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGFzIElCb3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgIHJlY3RFbGVtZW50LmxlZnQgPSByZWN0RWxlbWVudFNjcm9sbC5sZWZ0O1xuICAgICAgcmVjdEVsZW1lbnQudG9wID0gcmVjdEVsZW1lbnRTY3JvbGwudG9wO1xuICAgIH1cblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdG9wLCBsZWZ0IH0gPSByZWN0RWxlbWVudDtcbiAgICBjb25zdCB7IGNsaWVudFgsIGNsaWVudFkgfSA9IGV2ZW50RHJhZ2dpbmcubW91c2VQb3NpdGlvbjtcbiAgICBjb25zdCBsaW1pdExlZnQgPSBsZWZ0ICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBsaW1pdFRvcCA9IHRvcCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsU2Nyb2xsVG9FbGVtZW50KCkpO1xuICAgIGlmICgoY2xpZW50WCA8IGxlZnQgfHwgY2xpZW50WCA+IGxlZnQgKyB3aWR0aCkgJiYgKGNsaWVudFkgPCB0b3AgfHwgY2xpZW50WSA+IHRvcCArIGhlaWdodCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmludGVydmFsU2Nyb2xsVG9FbGVtZW50LnNldChcbiAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgZWxlbWVudFNldFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKSB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgbGV0IGRpcmVjdGlvblRvcCA9IDA7XG4gICAgICAgIGxldCBkaXJlY3Rpb25MZWZ0ID0gMDtcblxuICAgICAgICBpZiAodG9wIDw9IGNsaWVudFkgJiYgY2xpZW50WSA8PSB0b3AgKyB0aGlzLndpZHRoWm9uZURldGVjdCgpKSB7XG4gICAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgLT0gdGhpcy5tb3ZlbWVudExlbmd0aCgpO1xuICAgICAgICAgIGRpcmVjdGlvblRvcCA9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpbWl0VG9wIC0gdGhpcy53aWR0aFpvbmVEZXRlY3QoKSA8PSBjbGllbnRZICYmIGNsaWVudFkgPD0gbGltaXRUb3ApIHtcbiAgICAgICAgICBpZiAodGhpcy5zdG9wU2Nyb2xsKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgKz0gdGhpcy5tb3ZlbWVudExlbmd0aCgpO1xuICAgICAgICAgIGRpcmVjdGlvblRvcCA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGltaXRMZWZ0IC0gdGhpcy53aWR0aFpvbmVEZXRlY3QoKSA8PSBjbGllbnRYICYmIGNsaWVudFggPD0gbGltaXRMZWZ0KSB7XG4gICAgICAgICAgaWYgKHRoaXMuc3RvcFNjcm9sbCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArPSB0aGlzLm1vdmVtZW50TGVuZ3RoKCk7XG4gICAgICAgICAgZGlyZWN0aW9uTGVmdCA9ICsxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsZWZ0IDw9IGNsaWVudFggJiYgY2xpZW50WCA8PSBsZWZ0ICsgdGhpcy53aWR0aFpvbmVEZXRlY3QoKSkge1xuICAgICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCAtPSB0aGlzLm1vdmVtZW50TGVuZ3RoKCk7XG4gICAgICAgICAgZGlyZWN0aW9uTGVmdCA9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCAmJiBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldFdpZHRoID49IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsV2lkdGgpIHtcbiAgICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgLT0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0ICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aCAtIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgJiYgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldEhlaWdodCA+PSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbEhlaWdodCkge1xuICAgICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wIC09IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQgLSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoZGlyZWN0aW9uVG9wIDwgMCAmJiAhZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3ApIHx8XG4gICAgICAgICAgKCFlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgJiYgZGlyZWN0aW9uTGVmdCA8IDApIHx8XG4gICAgICAgICAgKGRpcmVjdGlvblRvcCAmJiBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbEhlaWdodCA8PSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0SGVpZ2h0ICsgMykgfHxcbiAgICAgICAgICAoZGlyZWN0aW9uTGVmdCAmJiBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFdpZHRoIDw9IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0V2lkdGggKyAzKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsU2Nyb2xsVG9FbGVtZW50KCkpO1xuICAgICAgICB9XG4gICAgICB9LCAxMClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable, input, inject, ElementRef, Directive, ChangeDetectorRef, model, output, effect, untracked, Component } from '@angular/core';
|
|
2
|
+
import { signal, Injectable, input, inject, ElementRef, DestroyRef, Directive, ChangeDetectorRef, model, output, effect, untracked, Component } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { get, checkMouseOverInContainer, cloneIBoundingClientRect, uuid, set, cloneDeep, getViewport, checkViewInScreen, getDragEventByElement } from '@libs-ui/utils';
|
|
4
|
-
import { Subject,
|
|
5
|
+
import { Subject, debounceTime, filter, fromEvent, tap, takeUntil, throttleTime } from 'rxjs';
|
|
5
6
|
import { CommonModule } from '@angular/common';
|
|
6
7
|
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
7
8
|
|
|
@@ -208,7 +209,6 @@ class LibsUiComponentsDragScrollDirective {
|
|
|
208
209
|
stopScroll = signal(false);
|
|
209
210
|
virtualScrollPageInfo = signal(undefined);
|
|
210
211
|
intervalScrollToElement = signal(undefined);
|
|
211
|
-
onDestroy = new Subject();
|
|
212
212
|
// #region INPUT
|
|
213
213
|
ignoreAutoScroll = input();
|
|
214
214
|
widthZoneDetect = input(16, { transform: (value) => value ?? 16 });
|
|
@@ -218,9 +218,10 @@ class LibsUiComponentsDragScrollDirective {
|
|
|
218
218
|
// #region INJECT
|
|
219
219
|
elementRef = inject(ElementRef);
|
|
220
220
|
dragDropService = inject(MoLibsSharedDragDropService);
|
|
221
|
+
destroyRef = inject(DestroyRef);
|
|
221
222
|
ngAfterViewInit() {
|
|
222
|
-
this.dragDropService.OnDragging.pipe(
|
|
223
|
-
this.dragDropService.OnDragEnd.pipe(
|
|
223
|
+
this.dragDropService.OnDragging.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((eventDragging) => this.checkAndScrollElementToPosition(eventDragging, this.ignoreAutoScroll()));
|
|
224
|
+
this.dragDropService.OnDragEnd.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
224
225
|
clearInterval(this.intervalScrollToElement());
|
|
225
226
|
if (this.virtualScrollPageInfo()) {
|
|
226
227
|
const firstElement = get(this.virtualScrollerComponent(), 'element')?.nativeElement.firstElementChild;
|
|
@@ -235,7 +236,7 @@ class LibsUiComponentsDragScrollDirective {
|
|
|
235
236
|
}
|
|
236
237
|
this.stopScroll.set(false);
|
|
237
238
|
});
|
|
238
|
-
this.dragDropService.OnDragStart.pipe(
|
|
239
|
+
this.dragDropService.OnDragStart.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
239
240
|
if (this.virtualScrollerComponent) {
|
|
240
241
|
this.virtualScrollerComponent()?.scrollToIndex(0);
|
|
241
242
|
}
|
|
@@ -244,7 +245,7 @@ class LibsUiComponentsDragScrollDirective {
|
|
|
244
245
|
return;
|
|
245
246
|
}
|
|
246
247
|
this.virtualScrollerComponent()
|
|
247
|
-
?.vsChange.pipe(
|
|
248
|
+
?.vsChange.pipe(takeUntilDestroyed(this.destroyRef))
|
|
248
249
|
.subscribe((pageInfo) => {
|
|
249
250
|
const items = get(this.virtualScrollerComponent, '_items');
|
|
250
251
|
if (items && items.length === pageInfo.endIndex) {
|
|
@@ -325,10 +326,6 @@ class LibsUiComponentsDragScrollDirective {
|
|
|
325
326
|
}
|
|
326
327
|
}, 10));
|
|
327
328
|
}
|
|
328
|
-
ngOnDestroy() {
|
|
329
|
-
this.onDestroy.next();
|
|
330
|
-
this.onDestroy.complete();
|
|
331
|
-
}
|
|
332
329
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
333
330
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsDragScrollDirective, isStandalone: true, selector: "[LibsUiComponentsDragScrollDirective]", inputs: { ignoreAutoScroll: { classPropertyName: "ignoreAutoScroll", publicName: "ignoreAutoScroll", isSignal: true, isRequired: false, transformFunction: null }, widthZoneDetect: { classPropertyName: "widthZoneDetect", publicName: "widthZoneDetect", isSignal: true, isRequired: false, transformFunction: null }, movementLength: { classPropertyName: "movementLength", publicName: "movementLength", isSignal: true, isRequired: false, transformFunction: null }, rootElementScroll: { classPropertyName: "rootElementScroll", publicName: "rootElementScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollerComponent: { classPropertyName: "virtualScrollerComponent", publicName: "virtualScrollerComponent", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
334
331
|
}
|
|
@@ -395,7 +392,7 @@ class LibsUiComponentsDragContainerDirective extends LibsUiComponentsDragScrollD
|
|
|
395
392
|
this.outDroppedContainer.subscribe((eventDropped) => {
|
|
396
393
|
this.dragDropService.OnDropContainer.next(eventDropped);
|
|
397
394
|
});
|
|
398
|
-
this.onDestroy
|
|
395
|
+
this.destroyRef.onDestroy(() => {
|
|
399
396
|
if (indexSpliceListTo > -1) {
|
|
400
397
|
this.items.update((items) => {
|
|
401
398
|
items.splice(indexSpliceListTo, 1);
|
|
@@ -406,7 +403,7 @@ class LibsUiComponentsDragContainerDirective extends LibsUiComponentsDragScrollD
|
|
|
406
403
|
});
|
|
407
404
|
const elementContainer = this.elementRef.nativeElement;
|
|
408
405
|
this.initStyleAndAttribute(elementContainer, true);
|
|
409
|
-
this.dragDropService.OnItemInit.pipe(debounceTime(250), filter((groupName) => groupName === this.groupName()),
|
|
406
|
+
this.dragDropService.OnItemInit.pipe(debounceTime(250), filter((groupName) => groupName === this.groupName()), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.initStyleAndAttribute(elementContainer));
|
|
410
407
|
const styleTag = document.createElement('style');
|
|
411
408
|
styleTag.textContent = styleContainer(this.stylesOverride() || [], this.viewEncapsulation(), this.groupID());
|
|
412
409
|
elementContainer.appendChild(styleTag);
|
|
@@ -672,7 +669,7 @@ class LibsUiComponentsDragContainerDirective extends LibsUiComponentsDragScrollD
|
|
|
672
669
|
event: this.dragDropService.OnDrop,
|
|
673
670
|
functionCall: handlerDrop,
|
|
674
671
|
},
|
|
675
|
-
].forEach((item) => item.event.pipe(
|
|
672
|
+
].forEach((item) => item.event.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(item.functionCall));
|
|
676
673
|
}
|
|
677
674
|
get FunctionsControl() {
|
|
678
675
|
return {
|
|
@@ -818,12 +815,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
818
815
|
}], ctorParameters: () => [] });
|
|
819
816
|
|
|
820
817
|
class LibsUiDragItemInContainerVirtualScrollDirective {
|
|
821
|
-
// #region PROPERTY
|
|
822
|
-
onDestroy = new Subject();
|
|
823
818
|
// #region OUTPUT
|
|
824
819
|
outDragEndContainer = output();
|
|
825
820
|
// #region INJECT
|
|
826
821
|
dragDropService = inject(MoLibsSharedDragDropService);
|
|
822
|
+
destroyRef = inject(DestroyRef);
|
|
827
823
|
ngAfterViewInit() {
|
|
828
824
|
const addClass = (ignoreUserSelectNone) => {
|
|
829
825
|
if (!ignoreUserSelectNone) {
|
|
@@ -837,10 +833,10 @@ class LibsUiDragItemInContainerVirtualScrollDirective {
|
|
|
837
833
|
}
|
|
838
834
|
document.body.classList.remove('!cursor-move');
|
|
839
835
|
};
|
|
840
|
-
this.dragDropService.OnDragEnd.pipe(
|
|
836
|
+
this.dragDropService.OnDragEnd.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((e) => {
|
|
841
837
|
this.outDragEndContainer.emit(e);
|
|
842
838
|
});
|
|
843
|
-
this.dragDropService.OnDragItemInContainerVirtualScroll.pipe(
|
|
839
|
+
this.dragDropService.OnDragItemInContainerVirtualScroll.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((dragItemInContainerVirtualScrollEvent) => {
|
|
844
840
|
addClass(dragItemInContainerVirtualScrollEvent.ignoreUserSelectNone);
|
|
845
841
|
const stopEventMouse = (mouseEvent) => {
|
|
846
842
|
if (!dragItemInContainerVirtualScrollEvent.ignoreStopEvent) {
|
|
@@ -889,7 +885,7 @@ class LibsUiDragItemInContainerVirtualScrollDirective {
|
|
|
889
885
|
dragItemInContainerVirtualScrollEvent.elementDrag.style.left = `${left}px`;
|
|
890
886
|
dragItemInContainerVirtualScrollEvent.elementDrag.style.top = `${top}px`;
|
|
891
887
|
this.dragDropService.OnDragging.next({ mousePosition, elementDrag: dragItemInContainerVirtualScrollEvent.elementDrag, elementKeepContainer, itemDragInfo: this.dragDropService.ItemDragInfo });
|
|
892
|
-
}), takeUntil(documentMouseUp),
|
|
888
|
+
}), takeUntil(documentMouseUp), takeUntilDestroyed(this.destroyRef))
|
|
893
889
|
.subscribe();
|
|
894
890
|
});
|
|
895
891
|
}
|
|
@@ -934,10 +930,6 @@ class LibsUiDragItemInContainerVirtualScrollDirective {
|
|
|
934
930
|
frames[i].style.pointerEvents = pointerEvents;
|
|
935
931
|
}
|
|
936
932
|
}
|
|
937
|
-
ngOnDestroy() {
|
|
938
|
-
this.onDestroy.next();
|
|
939
|
-
this.onDestroy.complete();
|
|
940
|
-
}
|
|
941
933
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiDragItemInContainerVirtualScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
942
934
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: LibsUiDragItemInContainerVirtualScrollDirective, isStandalone: true, selector: "[LibsUiDragItemInContainerVirtualScrollDirective]", outputs: { outDragEndContainer: "outDragEndContainer" }, ngImport: i0 });
|
|
943
935
|
}
|
|
@@ -1001,7 +993,7 @@ class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDire
|
|
|
1001
993
|
}
|
|
1002
994
|
}
|
|
1003
995
|
element.classList.add(this.dragDropService.ClassItemDefine);
|
|
1004
|
-
this.dragDropService.OnDragging.pipe(throttleTime(this.throttleTimeHandlerDraggingEvent()),
|
|
996
|
+
this.dragDropService.OnDragging.pipe(throttleTime(this.throttleTimeHandlerDraggingEvent()), takeUntilDestroyed(this.destroyRef)).subscribe((eventDragging) => {
|
|
1005
997
|
if (this.disable() || element.getAttribute('disableDragContainer') || (this.fieldId() && this.item() && eventDragging.elementDrag.getAttribute('item_id') === get(this.item(), this.fieldId()))) {
|
|
1006
998
|
return;
|
|
1007
999
|
}
|
|
@@ -1029,7 +1021,7 @@ class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDire
|
|
|
1029
1021
|
this.outDragLeave.emit(eventDragLeave);
|
|
1030
1022
|
}
|
|
1031
1023
|
});
|
|
1032
|
-
this.dragDropService.OnDropContainer.pipe(
|
|
1024
|
+
this.dragDropService.OnDropContainer.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((eventDrop) => {
|
|
1033
1025
|
if (eventDrop.elementDrop !== element) {
|
|
1034
1026
|
return;
|
|
1035
1027
|
}
|
|
@@ -1069,7 +1061,7 @@ class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDire
|
|
|
1069
1061
|
updatePositionElementRootAndRemoveNodeClone();
|
|
1070
1062
|
}
|
|
1071
1063
|
contextMenu = true;
|
|
1072
|
-
}),
|
|
1064
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
1073
1065
|
.subscribe();
|
|
1074
1066
|
let ignoreMousedown = false;
|
|
1075
1067
|
getDragEventByElement({
|
|
@@ -1117,7 +1109,7 @@ class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDire
|
|
|
1117
1109
|
styleTag.remove();
|
|
1118
1110
|
updatePositionElementRootAndRemoveNodeClone();
|
|
1119
1111
|
},
|
|
1120
|
-
|
|
1112
|
+
destroyRef: this.destroyRef,
|
|
1121
1113
|
})
|
|
1122
1114
|
.pipe(tap((dragMouseEvent) => {
|
|
1123
1115
|
const rectElement = element.getBoundingClientRect();
|