@libs-ui/components-drag-drop 0.2.10-6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/defines/css.define.d.ts +4 -0
- package/drag-drop.directive.d.ts +37 -0
- package/drag-drop.service.d.ts +45 -0
- package/drag-item-in-container-virtual-scroll.directive.d.ts +25 -0
- package/drag-item.directive.d.ts +31 -0
- package/drag-scroll.directive.d.ts +24 -0
- package/esm2022/defines/css.define.mjs +102 -0
- package/esm2022/drag-drop.directive.mjs +470 -0
- package/esm2022/drag-drop.service.mjs +92 -0
- package/esm2022/drag-item-in-container-virtual-scroll.directive.mjs +124 -0
- package/esm2022/drag-item.directive.mjs +263 -0
- package/esm2022/drag-scroll.directive.mjs +138 -0
- package/esm2022/index.mjs +6 -0
- package/esm2022/interfaces/event.interface.mjs +2 -0
- package/esm2022/libs-ui-components-drag-drop.mjs +5 -0
- package/fesm2022/libs-ui-components-drag-drop.mjs +1176 -0
- package/fesm2022/libs-ui-components-drag-drop.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/interfaces/event.interface.d.ts +60 -0
- package/package.json +25 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, input, signal } from "@angular/core";
|
|
2
|
+
import { checkMouseOverInContainer, cloneIBoundingClientRect, get } from "@libs-ui/utils";
|
|
3
|
+
import { Subject, takeUntil } from "rxjs";
|
|
4
|
+
import { MoLibsSharedDragDropService } from "./drag-drop.service";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class LibsUiComponentsDragScrollDirective {
|
|
7
|
+
/* PROPERTY */
|
|
8
|
+
stopScroll = signal(false);
|
|
9
|
+
virtualScrollPageInfo = signal(undefined);
|
|
10
|
+
intervalScrollToElement = signal(undefined);
|
|
11
|
+
onDestroy = new Subject();
|
|
12
|
+
/* INPUT */
|
|
13
|
+
ignoreAutoScroll = input();
|
|
14
|
+
widthZoneDetect = input(16, { transform: value => value ?? 16 });
|
|
15
|
+
movementLength = input(6, { transform: value => value ?? 6 });
|
|
16
|
+
rootElementScroll = input();
|
|
17
|
+
virtualScrollerComponent = input();
|
|
18
|
+
/* INJECT */
|
|
19
|
+
elementRef = inject(ElementRef);
|
|
20
|
+
dragDropService = inject(MoLibsSharedDragDropService);
|
|
21
|
+
ngAfterViewInit() {
|
|
22
|
+
this.dragDropService.OnDragging.pipe(takeUntil(this.onDestroy)).subscribe((eventDragging) => this.checkAndScrollElementToPosition(eventDragging, this.ignoreAutoScroll()));
|
|
23
|
+
this.dragDropService.OnDragEnd.pipe(takeUntil(this.onDestroy)).subscribe(() => {
|
|
24
|
+
clearInterval(this.intervalScrollToElement());
|
|
25
|
+
if (this.virtualScrollPageInfo()) {
|
|
26
|
+
const firstElement = get(this.virtualScrollerComponent(), 'element')?.nativeElement.firstElementChild;
|
|
27
|
+
const isHorizontal = get(this.virtualScrollerComponent(), '_horizontal');
|
|
28
|
+
if (isHorizontal) {
|
|
29
|
+
firstElement.style.transform = `scaleX(${this.virtualScrollPageInfo()?.scrollEndPosition})`;
|
|
30
|
+
}
|
|
31
|
+
if (!isHorizontal) {
|
|
32
|
+
firstElement.style.transform = `scaleY(${this.virtualScrollPageInfo()?.scrollEndPosition})`;
|
|
33
|
+
}
|
|
34
|
+
this.virtualScrollPageInfo.set(undefined);
|
|
35
|
+
}
|
|
36
|
+
this.stopScroll.set(false);
|
|
37
|
+
});
|
|
38
|
+
this.dragDropService.OnDragStart.pipe(takeUntil(this.onDestroy)).subscribe(() => {
|
|
39
|
+
if (this.virtualScrollerComponent) {
|
|
40
|
+
this.virtualScrollerComponent()?.scrollToIndex(0);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
if (!this.virtualScrollerComponent) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.virtualScrollerComponent()?.vsChange.pipe(takeUntil(this.onDestroy)).subscribe(pageInfo => {
|
|
47
|
+
const items = get(this.virtualScrollerComponent, '_items');
|
|
48
|
+
if (items && items.length === pageInfo.endIndex) {
|
|
49
|
+
this.virtualScrollPageInfo.set(pageInfo);
|
|
50
|
+
const elementSetScroll = this.rootElementScroll() || this.elementRef.nativeElement;
|
|
51
|
+
const isHorizontal = get(this.virtualScrollerComponent, '_horizontal');
|
|
52
|
+
if (isHorizontal && pageInfo.scrollEndPosition < elementSetScroll.offsetWidth + elementSetScroll.scrollLeft + 3) {
|
|
53
|
+
this.stopScroll.set(true);
|
|
54
|
+
clearInterval(this.intervalScrollToElement());
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (!isHorizontal && pageInfo.scrollEndPosition < elementSetScroll.offsetHeight + elementSetScroll.scrollTop + 3) {
|
|
58
|
+
this.stopScroll.set(true);
|
|
59
|
+
clearInterval(this.intervalScrollToElement());
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.stopScroll.set(false);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/* FUNCTIONS */
|
|
67
|
+
checkAndScrollElementToPosition(eventDragging, ignoreAutoScroll) {
|
|
68
|
+
let elementSetScroll = this.rootElementScroll() || this.elementRef.nativeElement;
|
|
69
|
+
if (ignoreAutoScroll || !checkMouseOverInContainer(eventDragging.mousePosition, elementSetScroll)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const rectElement = cloneIBoundingClientRect(this.elementRef.nativeElement.getBoundingClientRect());
|
|
73
|
+
if (this.rootElementScroll()) {
|
|
74
|
+
const rectElementScroll = this.rootElementScroll()?.getBoundingClientRect();
|
|
75
|
+
rectElement.left = rectElementScroll.left;
|
|
76
|
+
rectElement.top = rectElementScroll.top;
|
|
77
|
+
}
|
|
78
|
+
const { width, height, top, left } = rectElement;
|
|
79
|
+
const { clientX, clientY } = eventDragging.mousePosition;
|
|
80
|
+
const limitLeft = left + elementSetScroll.offsetWidth;
|
|
81
|
+
const limitTop = top + elementSetScroll.offsetHeight;
|
|
82
|
+
clearInterval(this.intervalScrollToElement());
|
|
83
|
+
if ((clientX < left || clientX > left + width) && (clientY < top || clientY > top + height)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.intervalScrollToElement.set(setInterval(() => {
|
|
87
|
+
elementSetScroll = (this.rootElementScroll() || this.elementRef.nativeElement);
|
|
88
|
+
let directionTop = 0;
|
|
89
|
+
let directionLeft = 0;
|
|
90
|
+
if (top <= clientY && clientY <= top + this.widthZoneDetect()) {
|
|
91
|
+
elementSetScroll.scrollTop -= this.movementLength();
|
|
92
|
+
directionTop = -1;
|
|
93
|
+
}
|
|
94
|
+
if (limitTop - this.widthZoneDetect() <= clientY && clientY <= limitTop) {
|
|
95
|
+
if (this.stopScroll()) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
elementSetScroll.scrollTop += this.movementLength();
|
|
99
|
+
directionTop = 1;
|
|
100
|
+
}
|
|
101
|
+
if ((limitLeft - this.widthZoneDetect() <= clientX) && (clientX <= limitLeft)) {
|
|
102
|
+
if (this.stopScroll()) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
elementSetScroll.scrollLeft += this.movementLength();
|
|
106
|
+
directionLeft = +1;
|
|
107
|
+
}
|
|
108
|
+
if (left <= clientX && clientX <= left + this.widthZoneDetect()) {
|
|
109
|
+
elementSetScroll.scrollLeft -= this.movementLength();
|
|
110
|
+
directionLeft = -1;
|
|
111
|
+
}
|
|
112
|
+
if (elementSetScroll.scrollLeft && (elementSetScroll.scrollLeft + elementSetScroll.offsetWidth >= elementSetScroll.scrollWidth)) {
|
|
113
|
+
elementSetScroll.scrollLeft -= elementSetScroll.scrollLeft + elementSetScroll.offsetWidth - elementSetScroll.scrollWidth;
|
|
114
|
+
}
|
|
115
|
+
if (elementSetScroll.scrollTop && (elementSetScroll.scrollTop + elementSetScroll.offsetHeight >= elementSetScroll.scrollHeight)) {
|
|
116
|
+
elementSetScroll.scrollTop -= elementSetScroll.scrollTop + elementSetScroll.offsetHeight - elementSetScroll.scrollHeight;
|
|
117
|
+
}
|
|
118
|
+
if ((directionTop < 0 && !elementSetScroll.scrollTop) || (!elementSetScroll.scrollLeft && directionLeft < 0) || (directionTop && elementSetScroll.scrollHeight <= elementSetScroll.scrollTop + elementSetScroll.offsetHeight + 3) || (directionLeft && elementSetScroll.scrollWidth <= elementSetScroll.scrollLeft + elementSetScroll.offsetWidth + 3)) {
|
|
119
|
+
return clearInterval(this.intervalScrollToElement());
|
|
120
|
+
}
|
|
121
|
+
}, 10));
|
|
122
|
+
}
|
|
123
|
+
ngOnDestroy() {
|
|
124
|
+
this.onDestroy.next();
|
|
125
|
+
this.onDestroy.complete();
|
|
126
|
+
}
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
128
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", 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 });
|
|
129
|
+
}
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDragScrollDirective, decorators: [{
|
|
131
|
+
type: Directive,
|
|
132
|
+
args: [{
|
|
133
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
134
|
+
selector: "[LibsUiComponentsDragScrollDirective]",
|
|
135
|
+
standalone: true
|
|
136
|
+
}]
|
|
137
|
+
}] });
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RyYWctZHJvcC9zcmMvZHJhZy1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsY0FBYztJQUNOLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEMscUJBQXFCLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztJQUMvRCx1QkFBdUIsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTFDLFdBQVc7SUFDRixnQkFBZ0IsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNwQyxlQUFlLEdBQUcsS0FBSyxDQUE2QixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RixjQUFjLEdBQUcsS0FBSyxDQUE2QixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRixpQkFBaUIsR0FBRyxLQUFLLEVBQWUsQ0FBQztJQUN6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bUNBQW1DOzs0RkFBbkMsbUNBQW1DO2tCQUwvQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHVDQUF1QztvQkFDakQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJUGFnZUluZm8sIFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCB9IGZyb20gXCJAaWhhcmJlY2svbmd4LXZpcnR1YWwtc2Nyb2xsZXJcIjtcbmltcG9ydCB7IElCb3VuZGluZ0NsaWVudFJlY3QgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lciwgY2xvbmVJQm91bmRpbmdDbGllbnRSZWN0LCBnZXQgfSBmcm9tIFwiQGxpYnMtdWkvdXRpbHNcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBNb0xpYnNTaGFyZWREcmFnRHJvcFNlcnZpY2UgfSBmcm9tIFwiLi9kcmFnLWRyb3Auc2VydmljZVwiO1xuaW1wb3J0IHsgSURyYWdnaW5nIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9ldmVudC5pbnRlcmZhY2VcIjtcbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogXCJbTGlic1VpQ29tcG9uZW50c0RyYWdTY3JvbGxEaXJlY3RpdmVdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RyYWdTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKiBQUk9QRVJUWSAqL1xuICBwcml2YXRlIHN0b3BTY3JvbGwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHZpcnR1YWxTY3JvbGxQYWdlSW5mbyA9IHNpZ25hbDxJUGFnZUluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBpbnRlcnZhbFNjcm9sbFRvRWxlbWVudCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qIElOUFVUICovXG4gIHJlYWRvbmx5IGlnbm9yZUF1dG9TY3JvbGwgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB3aWR0aFpvbmVEZXRlY3QgPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oMTYsIHsgdHJhbnNmb3JtOiB2YWx1ZSA9PiB2YWx1ZSA/PyAxNiB9KTtcbiAgcmVhZG9ubHkgbW92ZW1lbnRMZW5ndGggPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oNiwgeyB0cmFuc2Zvcm06IHZhbHVlID0+IHZhbHVlID8/IDYgfSk7XG4gIHJlYWRvbmx5IHJvb3RFbGVtZW50U2Nyb2xsID0gaW5wdXQ8SFRNTEVsZW1lbnQ+KCk7XG4gIHJlYWRvbmx5IHZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCA9IGlucHV0PFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudD4oKTtcblxuICAvKiBJTkpFQ1QgKi9cbiAgcHJvdGVjdGVkIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByb3RlY3RlZCBkcmFnRHJvcFNlcnZpY2UgPSBpbmplY3QoTW9MaWJzU2hhcmVkRHJhZ0Ryb3BTZXJ2aWNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnZ2luZy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZXZlbnREcmFnZ2luZykgPT4gdGhpcy5jaGVja0FuZFNjcm9sbEVsZW1lbnRUb1Bvc2l0aW9uKGV2ZW50RHJhZ2dpbmcsIHRoaXMuaWdub3JlQXV0b1Njcm9sbCgpKSk7XG4gICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuT25EcmFnRW5kLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbFNjcm9sbFRvRWxlbWVudCgpKTtcbiAgICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mbygpKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGdldCh0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpLCAnZWxlbWVudCcpPy5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICBjb25zdCBpc0hvcml6b250YWwgPSBnZXQodGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQoKSwgJ19ob3Jpem9udGFsJyk7XG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICBmaXJzdEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHNjYWxlWCgke3RoaXMudmlydHVhbFNjcm9sbFBhZ2VJbmZvKCk/LnNjcm9sbEVuZFBvc2l0aW9ufSlgO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgZmlyc3RFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGBzY2FsZVkoJHt0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mbygpPy5zY3JvbGxFbmRQb3NpdGlvbn0pYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxQYWdlSW5mby5zZXQodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RvcFNjcm9sbC5zZXQoZmFsc2UpO1xuICAgIH0pO1xuICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLk9uRHJhZ1N0YXJ0LnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCgpPy5zY3JvbGxUb0luZGV4KDApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghdGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQoKT8udnNDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUocGFnZUluZm8gPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSBnZXQodGhpcy52aXJ0dWFsU2Nyb2xsZXJDb21wb25lbnQsICdfaXRlbXMnKTtcblxuICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA9PT0gcGFnZUluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsUGFnZUluZm8uc2V0KHBhZ2VJbmZvKTtcbiAgICAgICAgY29uc3QgZWxlbWVudFNldFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKSB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gZ2V0KHRoaXMudmlydHVhbFNjcm9sbGVyQ29tcG9uZW50LCAnX2hvcml6b250YWwnKTtcblxuICAgICAgICBpZiAoaXNIb3Jpem9udGFsICYmIHBhZ2VJbmZvLnNjcm9sbEVuZFBvc2l0aW9uIDwgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aCArIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIDMpIHtcbiAgICAgICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KHRydWUpO1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbFNjcm9sbFRvRWxlbWVudCgpKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNIb3Jpem9udGFsICYmIHBhZ2VJbmZvLnNjcm9sbEVuZFBvc2l0aW9uIDwgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQgKyBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCArIDMpIHtcbiAgICAgICAgICB0aGlzLnN0b3BTY3JvbGwuc2V0KHRydWUpO1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbFNjcm9sbFRvRWxlbWVudCgpKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zdG9wU2Nyb2xsLnNldChmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJvdGVjdGVkIGNoZWNrQW5kU2Nyb2xsRWxlbWVudFRvUG9zaXRpb24oZXZlbnREcmFnZ2luZzogSURyYWdnaW5nLCBpZ25vcmVBdXRvU2Nyb2xsPzogYm9vbGVhbikge1xuICAgIGxldCBlbGVtZW50U2V0U2Nyb2xsID0gdGhpcy5yb290RWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGlnbm9yZUF1dG9TY3JvbGwgfHwgIWNoZWNrTW91c2VPdmVySW5Db250YWluZXIoZXZlbnREcmFnZ2luZy5tb3VzZVBvc2l0aW9uLCBlbGVtZW50U2V0U2Nyb2xsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWN0RWxlbWVudCA9IGNsb25lSUJvdW5kaW5nQ2xpZW50UmVjdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgICBpZiAodGhpcy5yb290RWxlbWVudFNjcm9sbCgpKSB7XG4gICAgICBjb25zdCByZWN0RWxlbWVudFNjcm9sbCA9IHRoaXMucm9vdEVsZW1lbnRTY3JvbGwoKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYXMgSUJvdW5kaW5nQ2xpZW50UmVjdDtcblxuICAgICAgcmVjdEVsZW1lbnQubGVmdCA9IHJlY3RFbGVtZW50U2Nyb2xsLmxlZnQ7XG4gICAgICByZWN0RWxlbWVudC50b3AgPSByZWN0RWxlbWVudFNjcm9sbC50b3A7XG4gICAgfVxuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQgfSA9IHJlY3RFbGVtZW50O1xuICAgIGNvbnN0IHsgY2xpZW50WCwgY2xpZW50WSB9ID0gZXZlbnREcmFnZ2luZy5tb3VzZVBvc2l0aW9uO1xuICAgIGNvbnN0IGxpbWl0TGVmdCA9IGxlZnQgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGxpbWl0VG9wID0gdG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG4gICAgaWYgKChjbGllbnRYIDwgbGVmdCB8fCBjbGllbnRYID4gbGVmdCArIHdpZHRoKSAmJiAoY2xpZW50WSA8IHRvcCB8fCBjbGllbnRZID4gdG9wICsgaGVpZ2h0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQuc2V0KHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGVsZW1lbnRTZXRTY3JvbGwgPSAodGhpcy5yb290RWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIGxldCBkaXJlY3Rpb25Ub3AgPSAwO1xuICAgICAgbGV0IGRpcmVjdGlvbkxlZnQgPSAwO1xuXG4gICAgICBpZiAodG9wIDw9IGNsaWVudFkgJiYgY2xpZW50WSA8PSB0b3AgKyB0aGlzLndpZHRoWm9uZURldGVjdCgpKSB7XG4gICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wIC09IHRoaXMubW92ZW1lbnRMZW5ndGgoKTtcbiAgICAgICAgZGlyZWN0aW9uVG9wID0gLTE7XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW1pdFRvcCAtIHRoaXMud2lkdGhab25lRGV0ZWN0KCkgPD0gY2xpZW50WSAmJiBjbGllbnRZIDw9IGxpbWl0VG9wKSB7XG4gICAgICAgIGlmICh0aGlzLnN0b3BTY3JvbGwoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCArPSB0aGlzLm1vdmVtZW50TGVuZ3RoKCk7XG4gICAgICAgIGRpcmVjdGlvblRvcCA9IDE7XG4gICAgICB9XG5cbiAgICAgIGlmICgobGltaXRMZWZ0IC0gdGhpcy53aWR0aFpvbmVEZXRlY3QoKSA8PSBjbGllbnRYKSAmJiAoY2xpZW50WCA8PSBsaW1pdExlZnQpKSB7XG4gICAgICAgIGlmICh0aGlzLnN0b3BTY3JvbGwoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgKz0gdGhpcy5tb3ZlbWVudExlbmd0aCgpO1xuICAgICAgICBkaXJlY3Rpb25MZWZ0ID0gKzE7XG5cbiAgICAgIH1cbiAgICAgIGlmIChsZWZ0IDw9IGNsaWVudFggJiYgY2xpZW50WCA8PSBsZWZ0ICsgdGhpcy53aWR0aFpvbmVEZXRlY3QoKSkge1xuICAgICAgICBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgLT0gdGhpcy5tb3ZlbWVudExlbmd0aCgpO1xuICAgICAgICBkaXJlY3Rpb25MZWZ0ID0gLTE7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgJiYgKGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0V2lkdGggPj0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxXaWR0aCkpIHtcbiAgICAgICAgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0IC09IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsTGVmdCArIGVsZW1lbnRTZXRTY3JvbGwub2Zmc2V0V2lkdGggLSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFdpZHRoO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgJiYgKGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQgPj0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxIZWlnaHQpKSB7XG4gICAgICAgIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wIC09IGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsVG9wICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRIZWlnaHQgLSBlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbEhlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKChkaXJlY3Rpb25Ub3AgPCAwICYmICFlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbFRvcCkgfHwgKCFlbGVtZW50U2V0U2Nyb2xsLnNjcm9sbExlZnQgJiYgZGlyZWN0aW9uTGVmdCA8IDApIHx8IChkaXJlY3Rpb25Ub3AgJiYgZWxlbWVudFNldFNjcm9sbC5zY3JvbGxIZWlnaHQgPD0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxUb3AgKyBlbGVtZW50U2V0U2Nyb2xsLm9mZnNldEhlaWdodCArIDMpIHx8IChkaXJlY3Rpb25MZWZ0ICYmIGVsZW1lbnRTZXRTY3JvbGwuc2Nyb2xsV2lkdGggPD0gZWxlbWVudFNldFNjcm9sbC5zY3JvbGxMZWZ0ICsgZWxlbWVudFNldFNjcm9sbC5vZmZzZXRXaWR0aCArIDMpKSB7XG4gICAgICAgIHJldHVybiBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxTY3JvbGxUb0VsZW1lbnQoKSk7XG4gICAgICB9XG4gICAgfSwgMTApKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './drag-drop.directive';
|
|
2
|
+
export * from './drag-item.directive';
|
|
3
|
+
export * from './drag-scroll.directive';
|
|
4
|
+
export * from './interfaces/event.interface';
|
|
5
|
+
export * from './drag-item-in-container-virtual-scroll.directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZHJhZy1kcm9wL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RyYWctZHJvcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWl0ZW0taW4tY29udGFpbmVyLXZpcnR1YWwtc2Nyb2xsLmRpcmVjdGl2ZSc7Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RyYWctZHJvcC9zcmMvaW50ZXJmYWNlcy9ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdyaXRhYmxlU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ2dpbmcgeyBtb3VzZVBvc2l0aW9uOiBJTW91c2VQb3NpdGlvbjsgZWxlbWVudERyYWc6IEhUTUxFbGVtZW50LCBlbGVtZW50S2VlcENvbnRhaW5lcj86IGJvb2xlYW4sIGl0ZW1EcmFnSW5mbz86IElJdGVtRHJhZ0luZm8gfVxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ1N0YXJ0IHsgbW91c2VQb3NpdGlvbjogSU1vdXNlUG9zaXRpb247IGVsZW1lbnREcmFnOiBIVE1MRWxlbWVudCwgaXRlbURyYWdJbmZvPzogSUl0ZW1EcmFnSW5mbyB9XG5leHBvcnQgaW50ZXJmYWNlIElEcmFnT3ZlciB7IG1vdXNlUG9zaXRpb246IElNb3VzZVBvc2l0aW9uOyBlbGVtZW50RHJhZzogSFRNTEVsZW1lbnQ7IGVsZW1lbnREcmFnT3ZlcjogSFRNTEVsZW1lbnQsIGl0ZW1EcmFnSW5mbz86IElJdGVtRHJhZ0luZm8gfVxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ0xlYXZlIHsgZWxlbWVudERyYWc6IEhUTUxFbGVtZW50OyBlbGVtZW50RHJhZ0xlYXZlOiBIVE1MRWxlbWVudCwgaXRlbURyYWdJbmZvPzogSUl0ZW1EcmFnSW5mbyB9XG5leHBvcnQgaW50ZXJmYWNlIElEcmFnRW5kIHsgbW91c2VQb3NpdGlvbjogSU1vdXNlUG9zaXRpb247IGVsZW1lbnREcmFnOiBIVE1MRWxlbWVudCwgaXRlbURyYWdJbmZvPzogSUl0ZW1EcmFnSW5mbyB9XG5leHBvcnQgaW50ZXJmYWNlIElEcm9wIHsgZWxlbWVudERyYWc6IEhUTUxFbGVtZW50OyBlbGVtZW50RHJvcDogSFRNTEVsZW1lbnQsIGl0ZW1EcmFnSW5mbz86IElJdGVtRHJhZ0luZm8gfVxuZXhwb3J0IGludGVyZmFjZSBJSXRlbURyYWdJbmZvIHsgaXRlbTogb2JqZWN0OyBpdGVtc01vdmU/OiBXcml0YWJsZVNpZ25hbDxBcnJheTx1bmtub3duPj4sIGluZGV4RHJhZz86IG51bWJlcjsgaW5kZXhEcm9wPzogbnVtYmVyOyBpdGVtc0RyYWc6IFdyaXRhYmxlU2lnbmFsPEFycmF5PHVua25vd24+PjsgaXRlbXNEcm9wPzogV3JpdGFibGVTaWduYWw8QXJyYXk8dW5rbm93bj4+OyBjb250YWluZXJEcmFnPzogSFRNTEVsZW1lbnQ7IGNvbnRhaW5lckRyb3A/OiBIVE1MRWxlbWVudCB9XG5leHBvcnQgaW50ZXJmYWNlIElEcmFnSXRlbUluQ29udGFpbmVyVmlydHVhbFNjcm9sbCB7IGl0ZW1EcmFnSW5mbz86IElJdGVtRHJhZ0luZm87IGVsZW1lbnREcmFnOiBIVE1MRWxlbWVudDsgZGlzdGFuY2VTdGFydEVsZW1lbnRBbmRNb3VzZVRvcDogbnVtYmVyOyBkaXN0YW5jZVN0YXJ0RWxlbWVudEFuZE1vdXNlTGVmdDogbnVtYmVyOyBlbGVtZW50Q29udGFpbmVyPzogSFRNTEVsZW1lbnQ7IGRyYWdCb3VuZGFyeT86IGJvb2xlYW47IGRyYWdCb3VuZGFyeUFjY2VwdE1vdXNlTGVhdmVDb250YWluZXI/OiBib29sZWFuLCBpZ25vcmVTdG9wRXZlbnQ/OiBib29sZWFuIH1cbmV4cG9ydCBpbnRlcmZhY2UgSU1vdXNlUG9zaXRpb24geyBjbGllbnRYOiBudW1iZXI7IGNsaWVudFk6IG51bWJlciB9XG5leHBvcnQgaW50ZXJmYWNlIElEcmFnRHJvcEZ1bmN0aW9uQ29udHJvbEV2ZW50IHsgc2V0QXR0cmlidXRlRWxlbWVudEFuZEl0ZW1EcmFnOiAoKSA9PiBQcm9taXNlPHZvaWQ+IH0iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWRyYWctZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kcmFnLWRyb3Avc3JjL2xpYnMtdWktY29tcG9uZW50cy1kcmFnLWRyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|