@cuby-ui/cdk 0.0.231 → 0.0.232
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/directives/drag-drop/drag-drop.directive.d.ts +42 -0
- package/directives/drag-drop/drag-drop.options.d.ts +11 -0
- package/directives/drag-drop/drag-list.directive.d.ts +10 -0
- package/directives/drag-drop/drag-pointer.directive.d.ts +8 -0
- package/directives/drag-drop/index.d.ts +4 -0
- package/directives/handle-scroll.directive.d.ts +23 -0
- package/directives/index.d.ts +2 -0
- package/esm2022/directives/drag-drop/drag-drop.directive.mjs +184 -0
- package/esm2022/directives/drag-drop/drag-drop.options.mjs +2 -0
- package/esm2022/directives/drag-drop/drag-list.directive.mjs +22 -0
- package/esm2022/directives/drag-drop/drag-pointer.directive.mjs +20 -0
- package/esm2022/directives/drag-drop/index.mjs +4 -0
- package/esm2022/directives/handle-scroll.directive.mjs +81 -0
- package/esm2022/directives/index.mjs +3 -1
- package/fesm2022/cuby-ui-cdk.mjs +295 -3
- package/fesm2022/cuby-ui-cdk.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { OnDestroy } from '@angular/core';
|
|
2
|
+
import type { CuiNullable } from '../../types';
|
|
3
|
+
import type { CuiDragData, CuiDragDropData } from './drag-drop.options';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CuiDragDropDirective implements OnDestroy {
|
|
6
|
+
private readonly zone;
|
|
7
|
+
private readonly document;
|
|
8
|
+
private readonly renderer;
|
|
9
|
+
private readonly element;
|
|
10
|
+
private readonly dragListDirective;
|
|
11
|
+
private readonly PLACEHOLDER_CLASS;
|
|
12
|
+
private readonly listId;
|
|
13
|
+
private readonly itemAttribute;
|
|
14
|
+
private index;
|
|
15
|
+
private prevIndex;
|
|
16
|
+
private abortController;
|
|
17
|
+
private hostAbortController;
|
|
18
|
+
protected readonly draggingElement: import("@angular/core").WritableSignal<CuiNullable<HTMLElement>>;
|
|
19
|
+
protected readonly placeholderElement: import("@angular/core").WritableSignal<CuiNullable<HTMLElement>>;
|
|
20
|
+
protected readonly dragData: import("@angular/core").WritableSignal<CuiDragData>;
|
|
21
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
readonly elementDragged: import("@angular/core").OutputEmitterRef<CuiDragDropData>;
|
|
23
|
+
constructor();
|
|
24
|
+
ngOnDestroy(): void;
|
|
25
|
+
changePointerEvents(element: HTMLElement): void;
|
|
26
|
+
private onDrag;
|
|
27
|
+
private onDragStart;
|
|
28
|
+
private onDragEnd;
|
|
29
|
+
private initDragItem;
|
|
30
|
+
private initPointerEvents;
|
|
31
|
+
private destroyEvents;
|
|
32
|
+
private prepareMoving;
|
|
33
|
+
private configurateDragData;
|
|
34
|
+
private createDragElement;
|
|
35
|
+
private createPlaceholderElement;
|
|
36
|
+
private removeDragElement;
|
|
37
|
+
private removePlaceholder;
|
|
38
|
+
private calculateIndex;
|
|
39
|
+
private calculatePreviousIndex;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiDragDropDirective, never>;
|
|
41
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CuiDragDropDirective, "[cuiDragDrop]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "elementDragged": "elementDragged"; }, never, never, true, never>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface CuiDragDropData {
|
|
2
|
+
readonly index: number;
|
|
3
|
+
readonly prevIndex: number;
|
|
4
|
+
readonly pointer: CuiDropPointer;
|
|
5
|
+
readonly targetElement: HTMLElement;
|
|
6
|
+
}
|
|
7
|
+
export interface CuiDragData {
|
|
8
|
+
readonly pointer?: CuiDropPointer;
|
|
9
|
+
readonly targetElement?: HTMLElement;
|
|
10
|
+
}
|
|
11
|
+
export type CuiDropPointer = 'BEFORE' | 'AFTER';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class CuiDragListDirective {
|
|
3
|
+
private readonly renderer;
|
|
4
|
+
private readonly element;
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly listId: string;
|
|
7
|
+
constructor();
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiDragListDirective, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CuiDragListDirective, "[cuiDragList]", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class CuiDragPointerDirective {
|
|
3
|
+
private readonly dragDropDirective;
|
|
4
|
+
private readonly element;
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiDragPointerDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CuiDragPointerDirective, "[cuiDragPointer]", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { OnDestroy } from '@angular/core';
|
|
2
|
+
import type { CuiNullable } from '../types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CuiHandleScrollDirective implements OnDestroy {
|
|
5
|
+
private readonly window;
|
|
6
|
+
private readonly document;
|
|
7
|
+
private readonly renderer;
|
|
8
|
+
private readonly zone;
|
|
9
|
+
private abortController;
|
|
10
|
+
private scrollSubscription?;
|
|
11
|
+
protected readonly SCROLL_AREA_HEIGHT = 100;
|
|
12
|
+
protected readonly scrollGapElements: import("@angular/core").WritableSignal<CuiNullable<HTMLDivElement[]>>;
|
|
13
|
+
readonly scrollSpeed: import("@angular/core").InputSignal<number>;
|
|
14
|
+
ngOnDestroy(): void;
|
|
15
|
+
onTargetMove(): void;
|
|
16
|
+
private initScrollEvent;
|
|
17
|
+
private handleScroll;
|
|
18
|
+
private setScrollGapElements;
|
|
19
|
+
private startScrolling;
|
|
20
|
+
private removeSubscription;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiHandleScrollDirective, never>;
|
|
22
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CuiHandleScrollDirective, "[cuiHandleScroll]", never, { "scrollSpeed": { "alias": "scrollSpeed"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
|
+
}
|
package/directives/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './active-zone';
|
|
2
2
|
export * from './hovered';
|
|
3
|
+
export * from './drag-drop';
|
|
3
4
|
export * from './auto-resizing.directive';
|
|
5
|
+
export * from './handle-scroll.directive';
|
|
4
6
|
export * from './click-outside.directive';
|
|
5
7
|
export * from './dimensions-observer.directive';
|
|
6
8
|
export * from './content-editable-value-accessor.directive';
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, inject, input, NgZone, output, Renderer2, signal } from '@angular/core';
|
|
3
|
+
import { CuiDragListDirective } from './drag-list.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CuiDragDropDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.zone = inject(NgZone);
|
|
8
|
+
this.document = inject(DOCUMENT);
|
|
9
|
+
this.renderer = inject(Renderer2);
|
|
10
|
+
this.element = inject(ElementRef).nativeElement;
|
|
11
|
+
this.dragListDirective = inject(CuiDragListDirective);
|
|
12
|
+
this.PLACEHOLDER_CLASS = 'cc-drag-drop-placeholder';
|
|
13
|
+
this.listId = this.dragListDirective.listId;
|
|
14
|
+
this.itemAttribute = `${this.listId}-drag-item`;
|
|
15
|
+
this.abortController = new AbortController();
|
|
16
|
+
this.hostAbortController = new AbortController();
|
|
17
|
+
this.draggingElement = signal(null);
|
|
18
|
+
this.placeholderElement = signal(null);
|
|
19
|
+
this.dragData = signal({});
|
|
20
|
+
this.disabled = input(false);
|
|
21
|
+
this.elementDragged = output();
|
|
22
|
+
this.initDragItem();
|
|
23
|
+
this.initPointerEvents(this.element);
|
|
24
|
+
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this.destroyEvents();
|
|
27
|
+
}
|
|
28
|
+
changePointerEvents(element) {
|
|
29
|
+
this.hostAbortController.abort();
|
|
30
|
+
this.hostAbortController = new AbortController();
|
|
31
|
+
this.initPointerEvents(element);
|
|
32
|
+
}
|
|
33
|
+
onDrag(clientX, clientY) {
|
|
34
|
+
if (!this.draggingElement()) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const elementsFromPoint = this.document.elementsFromPoint(clientX, clientY);
|
|
38
|
+
const elementFromPoint = elementsFromPoint.find((element) => element.closest(`#${this.listId}`));
|
|
39
|
+
if (!elementFromPoint) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const targetElement = elementFromPoint.closest(`[${this.itemAttribute}]`);
|
|
43
|
+
if (!targetElement || targetElement === this.draggingElement()) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.configurateDragData(targetElement, clientY);
|
|
47
|
+
}
|
|
48
|
+
onDragStart(event) {
|
|
49
|
+
if (this.disabled()) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
let isClicked = true;
|
|
53
|
+
const elementClientRect = this.element.getBoundingClientRect();
|
|
54
|
+
const shiftX = event.clientX - elementClientRect.left;
|
|
55
|
+
const shiftY = event.clientY - elementClientRect.top;
|
|
56
|
+
this.prevIndex = this.calculatePreviousIndex();
|
|
57
|
+
this.document.addEventListener('pointermove', ({ clientX, clientY }) => {
|
|
58
|
+
if (isClicked) {
|
|
59
|
+
this.prepareMoving();
|
|
60
|
+
isClicked = false;
|
|
61
|
+
}
|
|
62
|
+
const draggingElement = this.draggingElement();
|
|
63
|
+
this.renderer.setStyle(draggingElement, 'left', clientX - shiftX + 'px');
|
|
64
|
+
this.renderer.setStyle(draggingElement, 'top', clientY - shiftY + 'px');
|
|
65
|
+
this.onDrag(clientX, clientY);
|
|
66
|
+
}, { signal: this.abortController.signal });
|
|
67
|
+
}
|
|
68
|
+
onDragEnd() {
|
|
69
|
+
const { targetElement, pointer } = this.dragData();
|
|
70
|
+
if (targetElement && pointer) {
|
|
71
|
+
this.elementDragged.emit({
|
|
72
|
+
index: this.index,
|
|
73
|
+
prevIndex: this.prevIndex,
|
|
74
|
+
targetElement,
|
|
75
|
+
pointer
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// remove document events
|
|
79
|
+
this.abortController.abort();
|
|
80
|
+
this.abortController = new AbortController();
|
|
81
|
+
this.removeDragElement();
|
|
82
|
+
this.removePlaceholder();
|
|
83
|
+
this.dragData.set({});
|
|
84
|
+
}
|
|
85
|
+
initDragItem() {
|
|
86
|
+
this.renderer.setAttribute(this.element, this.itemAttribute, 'true');
|
|
87
|
+
}
|
|
88
|
+
initPointerEvents(element) {
|
|
89
|
+
const signal = this.hostAbortController.signal;
|
|
90
|
+
this.zone.runOutsideAngular(() => {
|
|
91
|
+
element.addEventListener('pointerup', this.onDragEnd.bind(this), { signal });
|
|
92
|
+
element.addEventListener('pointerdown', this.onDragStart.bind(this), { signal });
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
destroyEvents() {
|
|
96
|
+
this.hostAbortController.abort();
|
|
97
|
+
this.abortController.abort();
|
|
98
|
+
}
|
|
99
|
+
prepareMoving() {
|
|
100
|
+
const placeholderElement = this.createPlaceholderElement();
|
|
101
|
+
const draggingElement = this.createDragElement();
|
|
102
|
+
this.document.addEventListener('pointerup', this.onDragEnd.bind(this), {
|
|
103
|
+
signal: this.abortController.signal
|
|
104
|
+
});
|
|
105
|
+
this.element.after(placeholderElement);
|
|
106
|
+
this.draggingElement.set(draggingElement);
|
|
107
|
+
this.element.remove();
|
|
108
|
+
this.document.body.append(draggingElement);
|
|
109
|
+
}
|
|
110
|
+
configurateDragData(targetElement, clientY) {
|
|
111
|
+
const placeholderElement = this.placeholderElement();
|
|
112
|
+
const boundingRect = targetElement.getBoundingClientRect();
|
|
113
|
+
const middleY = boundingRect.top + boundingRect.height / 2;
|
|
114
|
+
if (clientY < middleY) {
|
|
115
|
+
targetElement.before(placeholderElement);
|
|
116
|
+
this.dragData.set({ targetElement, pointer: 'BEFORE' });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
targetElement.after(placeholderElement);
|
|
120
|
+
this.dragData.set({ targetElement, pointer: 'AFTER' });
|
|
121
|
+
}
|
|
122
|
+
this.index = this.calculateIndex(placeholderElement);
|
|
123
|
+
}
|
|
124
|
+
createDragElement() {
|
|
125
|
+
const width = this.element.clientWidth;
|
|
126
|
+
const draggingElement = this.element.cloneNode(true);
|
|
127
|
+
this.renderer.setStyle(draggingElement, 'position', 'fixed');
|
|
128
|
+
this.renderer.setStyle(draggingElement, 'display', 'block');
|
|
129
|
+
this.renderer.setStyle(draggingElement, 'margin', '0');
|
|
130
|
+
this.renderer.setStyle(draggingElement, 'width', `${width}px`);
|
|
131
|
+
return draggingElement;
|
|
132
|
+
}
|
|
133
|
+
createPlaceholderElement() {
|
|
134
|
+
const element = this.placeholderElement();
|
|
135
|
+
if (element) {
|
|
136
|
+
return element;
|
|
137
|
+
}
|
|
138
|
+
const placeholderElement = this.renderer.createElement('div');
|
|
139
|
+
this.renderer.addClass(placeholderElement, this.PLACEHOLDER_CLASS);
|
|
140
|
+
this.placeholderElement.set(placeholderElement);
|
|
141
|
+
return placeholderElement;
|
|
142
|
+
}
|
|
143
|
+
removeDragElement() {
|
|
144
|
+
const draggingElement = this.draggingElement();
|
|
145
|
+
if (!draggingElement) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
draggingElement.remove();
|
|
149
|
+
this.draggingElement.set(null);
|
|
150
|
+
}
|
|
151
|
+
removePlaceholder() {
|
|
152
|
+
const placeholderElement = this.placeholderElement();
|
|
153
|
+
if (!placeholderElement) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
placeholderElement.after(this.element);
|
|
157
|
+
placeholderElement.remove();
|
|
158
|
+
this.placeholderElement.set(null);
|
|
159
|
+
}
|
|
160
|
+
calculateIndex(placeholderElement) {
|
|
161
|
+
const childNodes = placeholderElement.parentElement.childNodes;
|
|
162
|
+
const elements = Array.from(childNodes).filter((node) => node instanceof HTMLElement);
|
|
163
|
+
return elements.indexOf(placeholderElement);
|
|
164
|
+
}
|
|
165
|
+
calculatePreviousIndex() {
|
|
166
|
+
let index = 0;
|
|
167
|
+
let currentElement = this.element;
|
|
168
|
+
while (currentElement && currentElement.previousElementSibling) {
|
|
169
|
+
index++;
|
|
170
|
+
currentElement = currentElement.previousElementSibling;
|
|
171
|
+
}
|
|
172
|
+
return index;
|
|
173
|
+
}
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
175
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: CuiDragDropDirective, isStandalone: true, selector: "[cuiDragDrop]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { elementDragged: "elementDragged" }, ngImport: i0 }); }
|
|
176
|
+
}
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragDropDirective, decorators: [{
|
|
178
|
+
type: Directive,
|
|
179
|
+
args: [{
|
|
180
|
+
selector: '[cuiDragDrop]',
|
|
181
|
+
standalone: true
|
|
182
|
+
}]
|
|
183
|
+
}], ctorParameters: () => [] });
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLG9CQUFvQjtJQXlCN0I7UUF4QmlCLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWpELHNCQUFpQixHQUFHLDBCQUEwQixDQUFDO1FBRS9DLFdBQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7UUFJcEQsb0JBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFakMsb0JBQWUsR0FBRyxNQUFNLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBQ3pELHVCQUFrQixHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFD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QztRQUNoRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLFdBQVcsQ0FBQyxDQUFDO1FBRXRGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBbUIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxzQkFBc0I7UUFDMUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxjQUFjLEdBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUzQyxPQUFPLGNBQWMsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM3RCxLQUFLLEVBQUUsQ0FBQztZQUNSLGNBQWMsR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7K0dBdk9RLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB0eXBlIHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgTmdab25lLCBvdXRwdXQsIFJlbmRlcmVyMiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcblxyXG5pbXBvcnQgdHlwZSB7IEN1aURyYWdEYXRhLCBDdWlEcmFnRHJvcERhdGEgfSBmcm9tICcuL2RyYWctZHJvcC5vcHRpb25zJztcclxuaW1wb3J0IHsgQ3VpRHJhZ0xpc3REaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctbGlzdC5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjdWlEcmFnRHJvcF0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpRHJhZ0Ryb3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcmFnTGlzdERpcmVjdGl2ZSA9IGluamVjdChDdWlEcmFnTGlzdERpcmVjdGl2ZSk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBQTEFDRUhPTERFUl9DTEFTUyA9ICdjYy1kcmFnLWRyb3AtcGxhY2Vob2xkZXInO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdElkID0gdGhpcy5kcmFnTGlzdERpcmVjdGl2ZS5saXN0SWQ7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1BdHRyaWJ1dGUgPSBgJHt0aGlzLmxpc3RJZH0tZHJhZy1pdGVtYDtcclxuXHJcbiAgICBwcml2YXRlIGluZGV4ITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBwcmV2SW5kZXghOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIHByaXZhdGUgaG9zdEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhZ2dpbmdFbGVtZW50ID0gc2lnbmFsPEN1aU51bGxhYmxlPEhUTUxFbGVtZW50Pj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2Vob2xkZXJFbGVtZW50ID0gc2lnbmFsPEN1aU51bGxhYmxlPEhUTUxFbGVtZW50Pj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhZ0RhdGEgPSBzaWduYWw8Q3VpRHJhZ0RhdGE+KHt9KTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnREcmFnZ2VkID0gb3V0cHV0PEN1aURyYWdEcm9wRGF0YT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmluaXREcmFnSXRlbSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFBvaW50ZXJFdmVudHModGhpcy5lbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95RXZlbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZVBvaW50ZXJFdmVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhvc3RBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcclxuICAgICAgICB0aGlzLmhvc3RBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFBvaW50ZXJFdmVudHMoZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkRyYWcoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZHJhZ2dpbmdFbGVtZW50KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZWxlbWVudHNGcm9tUG9pbnQgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGNsaWVudFgsIGNsaWVudFkpO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRGcm9tUG9pbnQgPSBlbGVtZW50c0Zyb21Qb2ludC5maW5kKChlbGVtZW50KSA9PiBlbGVtZW50LmNsb3Nlc3QoYCMke3RoaXMubGlzdElkfWApKTtcclxuXHJcbiAgICAgICAgaWYgKCFlbGVtZW50RnJvbVBvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlbGVtZW50RnJvbVBvaW50LmNsb3Nlc3Q8SFRNTEVsZW1lbnQ+KGBbJHt0aGlzLml0ZW1BdHRyaWJ1dGV9XWApO1xyXG5cclxuICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQgfHwgdGFyZ2V0RWxlbWVudCA9PT0gdGhpcy5kcmFnZ2luZ0VsZW1lbnQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRlRHJhZ0RhdGEodGFyZ2V0RWxlbWVudCwgY2xpZW50WSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkRyYWdTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlzQ2xpY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IHNoaWZ0WCA9IGV2ZW50LmNsaWVudFggLSBlbGVtZW50Q2xpZW50UmVjdC5sZWZ0O1xyXG4gICAgICAgIGNvbnN0IHNoaWZ0WSA9IGV2ZW50LmNsaWVudFkgLSBlbGVtZW50Q2xpZW50UmVjdC50b3A7XHJcblxyXG4gICAgICAgIHRoaXMucHJldkluZGV4ID0gdGhpcy5jYWxjdWxhdGVQcmV2aW91c0luZGV4KCk7XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgICAgICAgJ3BvaW50ZXJtb3ZlJyxcclxuICAgICAgICAgICAgKHsgY2xpZW50WCwgY2xpZW50WSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNDbGlja2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlTW92aW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlzQ2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGRyYWdnaW5nRWxlbWVudCA9IHRoaXMuZHJhZ2dpbmdFbGVtZW50KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcmFnZ2luZ0VsZW1lbnQsICdsZWZ0JywgY2xpZW50WCAtIHNoaWZ0WCArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcmFnZ2luZ0VsZW1lbnQsICd0b3AnLCBjbGllbnRZIC0gc2hpZnRZICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uRHJhZyhjbGllbnRYLCBjbGllbnRZKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBzaWduYWw6IHRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uRHJhZ0VuZCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHRhcmdldEVsZW1lbnQsIHBvaW50ZXIgfSA9IHRoaXMuZHJhZ0RhdGEoKTtcclxuXHJcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQgJiYgcG9pbnRlcikge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnREcmFnZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXgsXHJcbiAgICAgICAgICAgICAgICBwcmV2SW5kZXg6IHRoaXMucHJldkluZGV4LFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudCxcclxuICAgICAgICAgICAgICAgIHBvaW50ZXJcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZW1vdmUgZG9jdW1lbnQgZXZlbnRzXHJcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcclxuICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW1vdmVEcmFnRWxlbWVudCgpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXIoKTtcclxuICAgICAgICB0aGlzLmRyYWdEYXRhLnNldCh7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RHJhZ0l0ZW0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50LCB0aGlzLml0ZW1BdHRyaWJ1dGUsICd0cnVlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0UG9pbnRlckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuaG9zdEFib3J0Q29udHJvbGxlci5zaWduYWw7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5vbkRyYWdFbmQuYmluZCh0aGlzKSwgeyBzaWduYWwgfSk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLm9uRHJhZ1N0YXJ0LmJpbmQodGhpcyksIHsgc2lnbmFsIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVzdHJveUV2ZW50cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhvc3RBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcclxuICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJlcGFyZU1vdmluZygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLmNyZWF0ZVBsYWNlaG9sZGVyRWxlbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGRyYWdnaW5nRWxlbWVudCA9IHRoaXMuY3JlYXRlRHJhZ0VsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLm9uRHJhZ0VuZC5iaW5kKHRoaXMpLCB7XHJcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5hYm9ydENvbnRyb2xsZXIuc2lnbmFsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZWxlbWVudC5hZnRlcihwbGFjZWhvbGRlckVsZW1lbnQpO1xyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmdFbGVtZW50LnNldChkcmFnZ2luZ0VsZW1lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZChkcmFnZ2luZ0VsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29uZmlndXJhdGVEcmFnRGF0YSh0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCwgY2xpZW50WTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQoKTtcclxuICAgICAgICBjb25zdCBib3VuZGluZ1JlY3QgPSB0YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IG1pZGRsZVkgPSBib3VuZGluZ1JlY3QudG9wICsgYm91bmRpbmdSZWN0LmhlaWdodCAvIDI7XHJcblxyXG4gICAgICAgIGlmIChjbGllbnRZIDwgbWlkZGxlWSkge1xyXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50LmJlZm9yZShwbGFjZWhvbGRlckVsZW1lbnQhKTtcclxuICAgICAgICAgICAgdGhpcy5kcmFnRGF0YS5zZXQoeyB0YXJnZXRFbGVtZW50LCBwb2ludGVyOiAnQkVGT1JFJyB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50LmFmdGVyKHBsYWNlaG9sZGVyRWxlbWVudCEpO1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdEYXRhLnNldCh7IHRhcmdldEVsZW1lbnQsIHBvaW50ZXI6ICdBRlRFUicgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmluZGV4ID0gdGhpcy5jYWxjdWxhdGVJbmRleChwbGFjZWhvbGRlckVsZW1lbnQhKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZURyYWdFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgICAgICBjb25zdCBkcmFnZ2luZ0VsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyYWdnaW5nRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcmFnZ2luZ0VsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcmFnZ2luZ0VsZW1lbnQsICdtYXJnaW4nLCAnMCcpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJhZ2dpbmdFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG5cclxuICAgICAgICByZXR1cm4gZHJhZ2dpbmdFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlUGxhY2Vob2xkZXJFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHBsYWNlaG9sZGVyRWxlbWVudCwgdGhpcy5QTEFDRUhPTERFUl9DTEFTUyk7XHJcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQuc2V0KHBsYWNlaG9sZGVyRWxlbWVudCk7XHJcblxyXG4gICAgICAgIHJldHVybiBwbGFjZWhvbGRlckVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVEcmFnRWxlbWVudCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkcmFnZ2luZ0VsZW1lbnQgPSB0aGlzLmRyYWdnaW5nRWxlbWVudCgpO1xyXG5cclxuICAgICAgICBpZiAoIWRyYWdnaW5nRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkcmFnZ2luZ0VsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICAgICAgdGhpcy5kcmFnZ2luZ0VsZW1lbnQuc2V0KG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXIoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgaWYgKCFwbGFjZWhvbGRlckVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LmFmdGVyKHRoaXMuZWxlbWVudCk7XHJcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LnNldChudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZUluZGV4KHBsYWNlaG9sZGVyRWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBwbGFjZWhvbGRlckVsZW1lbnQucGFyZW50RWxlbWVudCEuY2hpbGROb2RlcztcclxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IEFycmF5LmZyb20oY2hpbGROb2RlcykuZmlsdGVyKChub2RlKSA9PiBub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpO1xyXG5cclxuICAgICAgICByZXR1cm4gZWxlbWVudHMuaW5kZXhPZihwbGFjZWhvbGRlckVsZW1lbnQhKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZVByZXZpb3VzSW5kZXgoKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGxldCBjdXJyZW50RWxlbWVudDogRWxlbWVudCA9IHRoaXMuZWxlbWVudDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50ICYmIGN1cnJlbnRFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcclxuICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgY3VycmVudEVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kcmFnLWRyb3AvZHJhZy1kcm9wLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ3VpRHJhZ0Ryb3BEYXRhIHtcclxuICAgIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XHJcbiAgICByZWFkb25seSBwcmV2SW5kZXg6IG51bWJlcjtcclxuICAgIHJlYWRvbmx5IHBvaW50ZXI6IEN1aURyb3BQb2ludGVyO1xyXG4gICAgcmVhZG9ubHkgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpRHJhZ0RhdGEge1xyXG4gICAgcmVhZG9ubHkgcG9pbnRlcj86IEN1aURyb3BQb2ludGVyO1xyXG4gICAgcmVhZG9ubHkgdGFyZ2V0RWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdWlEcm9wUG9pbnRlciA9ICdCRUZPUkUnIHwgJ0FGVEVSJztcclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';
|
|
2
|
+
import { CuiIdService } from '../../services';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiDragListDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.renderer = inject(Renderer2);
|
|
7
|
+
this.element = inject(ElementRef).nativeElement;
|
|
8
|
+
this.id = inject(CuiIdService).generate();
|
|
9
|
+
this.listId = `${this.id}-list`;
|
|
10
|
+
this.renderer.setAttribute(this.element, 'id', this.listId);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CuiDragListDirective, isStandalone: true, selector: "[cuiDragList]", ngImport: i0 }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragListDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: '[cuiDragList]',
|
|
19
|
+
standalone: true
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: () => [] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1saXN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLWxpc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU05QyxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCO1FBTmlCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDNUMsT0FBRSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVyQyxXQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7UUFHdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBVFEsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aUlkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbY3VpRHJhZ0xpc3RdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aURyYWdMaXN0RGlyZWN0aXZlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGlkID0gaW5qZWN0KEN1aUlkU2VydmljZSkuZ2VuZXJhdGUoKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdElkID0gYCR7dGhpcy5pZH0tbGlzdGA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50LCAnaWQnLCB0aGlzLmxpc3RJZCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject } from '@angular/core';
|
|
2
|
+
import { CuiDragDropDirective } from './drag-drop.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiDragPointerDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.dragDropDirective = inject(CuiDragDropDirective);
|
|
7
|
+
this.element = inject(ElementRef).nativeElement;
|
|
8
|
+
this.dragDropDirective.changePointerEvents(this.element);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragPointerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CuiDragPointerDirective, isStandalone: true, selector: "[cuiDragPointer]", ngImport: i0 }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiDragPointerDirective, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: '[cuiDragPointer]',
|
|
17
|
+
standalone: true
|
|
18
|
+
}]
|
|
19
|
+
}], ctorParameters: () => [] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wb2ludGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLXBvaW50ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLHVCQUF1QjtJQUloQztRQUhpQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRCxZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUd4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBTlEsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aURyYWdEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWRyb3AuZGlyZWN0aXZlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbY3VpRHJhZ1BvaW50ZXJdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aURyYWdQb2ludGVyRGlyZWN0aXZlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0Ryb3BEaXJlY3RpdmUgPSBpbmplY3QoQ3VpRHJhZ0Ryb3BEaXJlY3RpdmUpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kcmFnRHJvcERpcmVjdGl2ZS5jaGFuZ2VQb2ludGVyRXZlbnRzKHRoaXMuZWxlbWVudCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { CuiDragDropDirective } from './drag-drop.directive';
|
|
2
|
+
export { CuiDragListDirective } from './drag-list.directive';
|
|
3
|
+
export { CuiDragPointerDirective } from './drag-pointer.directive';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kcmFnLWRyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlEcmFnRHJvcERhdGEsIEN1aURyYWdEYXRhIH0gZnJvbSAnLi9kcmFnLWRyb3Aub3B0aW9ucyc7XHJcbmV4cG9ydCB7IEN1aURyYWdEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWRyb3AuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgQ3VpRHJhZ0xpc3REaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctbGlzdC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBDdWlEcmFnUG9pbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1wb2ludGVyLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Directive, inject, input, NgZone, Renderer2, signal } from '@angular/core';
|
|
3
|
+
import { interval } from 'rxjs';
|
|
4
|
+
import { CUI_WINDOW } from '../tokens';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CuiHandleScrollDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.window = inject(CUI_WINDOW);
|
|
9
|
+
this.document = inject(DOCUMENT);
|
|
10
|
+
this.renderer = inject(Renderer2);
|
|
11
|
+
this.zone = inject(NgZone);
|
|
12
|
+
this.abortController = new AbortController();
|
|
13
|
+
this.SCROLL_AREA_HEIGHT = 100;
|
|
14
|
+
this.scrollGapElements = signal(null);
|
|
15
|
+
this.scrollSpeed = input(100);
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this.removeSubscription();
|
|
19
|
+
}
|
|
20
|
+
onTargetMove() {
|
|
21
|
+
const signal = this.abortController.signal;
|
|
22
|
+
this.zone.runOutsideAngular(this.initScrollEvent.bind(this, signal));
|
|
23
|
+
}
|
|
24
|
+
initScrollEvent(signal) {
|
|
25
|
+
this.document.addEventListener('pointermove', ({ clientY }) => this.handleScroll(clientY), { signal });
|
|
26
|
+
this.document.addEventListener('pointerup', () => {
|
|
27
|
+
this.scrollGapElements()?.forEach((element) => element.remove());
|
|
28
|
+
this.scrollGapElements.set(null);
|
|
29
|
+
this.removeSubscription();
|
|
30
|
+
this.abortController.abort();
|
|
31
|
+
this.abortController = new AbortController();
|
|
32
|
+
}, { signal });
|
|
33
|
+
}
|
|
34
|
+
handleScroll(clientY) {
|
|
35
|
+
const windowHeight = this.document.documentElement.clientHeight;
|
|
36
|
+
const scrollSpeed = this.scrollSpeed();
|
|
37
|
+
if (!this.scrollGapElements()) {
|
|
38
|
+
this.setScrollGapElements();
|
|
39
|
+
}
|
|
40
|
+
if (clientY <= this.SCROLL_AREA_HEIGHT) {
|
|
41
|
+
this.startScrolling(-scrollSpeed);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (clientY >= windowHeight - this.SCROLL_AREA_HEIGHT) {
|
|
45
|
+
this.startScrolling(scrollSpeed);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.removeSubscription();
|
|
49
|
+
}
|
|
50
|
+
setScrollGapElements() {
|
|
51
|
+
const scrollGapElement = this.renderer.createElement('div');
|
|
52
|
+
this.renderer.setStyle(scrollGapElement, 'position', 'fixed');
|
|
53
|
+
this.renderer.setStyle(scrollGapElement, 'width', '100%');
|
|
54
|
+
this.renderer.setStyle(scrollGapElement, 'height', '48px');
|
|
55
|
+
this.renderer.setStyle(scrollGapElement, 'top', '0');
|
|
56
|
+
const scrollGapBottomElement = scrollGapElement.cloneNode(true);
|
|
57
|
+
this.renderer.appendChild(this.document.body, scrollGapElement);
|
|
58
|
+
this.renderer.appendChild(this.document.body, scrollGapBottomElement);
|
|
59
|
+
this.scrollGapElements.set([scrollGapElement, scrollGapBottomElement]);
|
|
60
|
+
}
|
|
61
|
+
startScrolling(speed) {
|
|
62
|
+
this.removeSubscription();
|
|
63
|
+
this.scrollSubscription = interval(this.scrollSpeed()).subscribe(() => this.window.scrollBy({ top: speed, behavior: 'smooth' }));
|
|
64
|
+
}
|
|
65
|
+
removeSubscription() {
|
|
66
|
+
this.scrollSubscription?.unsubscribe();
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiHandleScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: CuiHandleScrollDirective, isStandalone: true, selector: "[cuiHandleScroll]", inputs: { scrollSpeed: { classPropertyName: "scrollSpeed", publicName: "scrollSpeed", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointerdown": "onTargetMove()" } }, ngImport: i0 }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiHandleScrollDirective, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
selector: '[cuiHandleScroll]',
|
|
75
|
+
standalone: true,
|
|
76
|
+
host: {
|
|
77
|
+
'(pointerdown)': 'onTargetMove()'
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXNjcm9sbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9oYW5kbGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFTdkMsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFxQixXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUc3Qix1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFFekIsc0JBQWlCLEdBQUcsTUFBTSxDQUFnQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQThFNUM7SUE1RVUsV0FBVztRQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxZQUFZO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxD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O1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQzNELENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDOytHQTFGUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLGVBQWUsRUFBRSxnQkFBZ0I7cUJBQ3BDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQsIE5nWm9uZSwgUmVuZGVyZXIyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjdWlIYW5kbGVTY3JvbGxdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJyhwb2ludGVyZG93biknOiAnb25UYXJnZXRNb3ZlKCknXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlIYW5kbGVTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3cgPSBpbmplY3QoQ1VJX1dJTkRPVyk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICAgIHByaXZhdGUgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNDUk9MTF9BUkVBX0hFSUdIVCA9IDEwMDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsR2FwRWxlbWVudHMgPSBzaWduYWw8Q3VpTnVsbGFibGU8SFRNTERpdkVsZW1lbnRbXT4+KG51bGwpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzY3JvbGxTcGVlZCA9IGlucHV0KDEwMCk7XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVGFyZ2V0TW92ZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzaWduYWwgPSB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWw7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcih0aGlzLmluaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMsIHNpZ25hbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFNjcm9sbEV2ZW50KHNpZ25hbDogQWJvcnRTaWduYWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgKHsgY2xpZW50WSB9KSA9PiB0aGlzLmhhbmRsZVNjcm9sbChjbGllbnRZKSwgeyBzaWduYWwgfSk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxyXG4gICAgICAgICAgICAncG9pbnRlcnVwJyxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxHYXBFbGVtZW50cygpPy5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnJlbW92ZSgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsR2FwRWxlbWVudHMuc2V0KG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgc2lnbmFsIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlU2Nyb2xsKGNsaWVudFk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICBjb25zdCBzY3JvbGxTcGVlZCA9IHRoaXMuc2Nyb2xsU3BlZWQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbEdhcEVsZW1lbnRzKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxHYXBFbGVtZW50cygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNsaWVudFkgPD0gdGhpcy5TQ1JPTExfQVJFQV9IRUlHSFQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFNjcm9sbGluZygtc2Nyb2xsU3BlZWQpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNsaWVudFkgPj0gd2luZG93SGVpZ2h0IC0gdGhpcy5TQ1JPTExfQVJFQV9IRUlHSFQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFNjcm9sbGluZyhzY3JvbGxTcGVlZCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZVN1YnNjcmlwdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U2Nyb2xsR2FwRWxlbWVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsR2FwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2Nyb2xsR2FwRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzY3JvbGxHYXBFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2Nyb2xsR2FwRWxlbWVudCwgJ2hlaWdodCcsICc0OHB4Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzY3JvbGxHYXBFbGVtZW50LCAndG9wJywgJzAnKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsR2FwQm90dG9tRWxlbWVudCA9IHNjcm9sbEdhcEVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxEaXZFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgc2Nyb2xsR2FwRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIHNjcm9sbEdhcEJvdHRvbUVsZW1lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbEdhcEVsZW1lbnRzLnNldChbc2Nyb2xsR2FwRWxlbWVudCwgc2Nyb2xsR2FwQm90dG9tRWxlbWVudF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhcnRTY3JvbGxpbmcoc3BlZWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gaW50ZXJ2YWwodGhpcy5zY3JvbGxTcGVlZCgpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Nyb2xsQnkoeyB0b3A6IHNwZWVkLCBiZWhhdmlvcjogJ3Ntb290aCcgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './active-zone';
|
|
2
2
|
export * from './hovered';
|
|
3
|
+
export * from './drag-drop';
|
|
3
4
|
export * from './auto-resizing.directive';
|
|
5
|
+
export * from './handle-scroll.directive';
|
|
4
6
|
export * from './click-outside.directive';
|
|
5
7
|
export * from './dimensions-observer.directive';
|
|
6
8
|
export * from './content-editable-value-accessor.directive';
|
|
@@ -11,4 +13,4 @@ export * from './let.context';
|
|
|
11
13
|
export * from './let.directive';
|
|
12
14
|
export * from './target.directive';
|
|
13
15
|
export * from './ladder-list.directive';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGl2ZS16b25lJztcclxuZXhwb3J0ICogZnJvbSAnLi9ob3ZlcmVkJztcclxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWRyb3AnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG8tcmVzaXppbmcuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGUtc2Nyb2xsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpbWVuc2lvbnMtb2JzZXJ2ZXIuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LWVkaXRhYmxlLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzLXRyYXAuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pdGVtLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGV0LmNvbnRleHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xldC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhcmdldC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xhZGRlci1saXN0LmRpcmVjdGl2ZSc7XHJcbiJdfQ==
|