ngx-drag-drop 13.0.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,9 +7,9 @@ export class DndDragImageRefDirective {
7
7
  parent.registerDragImage(elementRef);
8
8
  }
9
9
  }
10
- DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
10
+ DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11
+ DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: "[dndDragImageRef]"
@@ -143,9 +143,9 @@ export class DndDraggableDirective {
143
143
  }
144
144
  }
145
145
  }
146
- DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
147
- DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, decorators: [{
146
+ DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
147
+ DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, decorators: [{
149
149
  type: Directive,
150
150
  args: [{
151
151
  selector: "[dndDraggable]"
@@ -192,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
192
192
  type: HostListener,
193
193
  args: ["dragend", ["$event"]]
194
194
  }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kbmQvc3JjL2xpYi9kbmQtZHJhZ2dhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU0zRCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQTZELE1BQTZCLEVBQUUsVUFBcUI7UUFDL0csTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7O3NIQUpVLHdCQUF3QixrQkFFZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7MEdBRmhELHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFFO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzBEQUdzRSxxQkFBcUI7MEJBQTdFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDOztBQVE3RCxNQUFNLE9BQU8scUJBQXFCO0lBNkVoQyxZQUFxQixVQUFxQixFQUNyQixRQUFrQixFQUNsQixNQUFhO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUF6RWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFB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QUMsYUFBYSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7bUhBdk5VLHFCQUFxQjt1R0FBckIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUU7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OElBSUMsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixNQUFNO2dCQUlFLE9BQU87c0JBRGYsTUFBTTtnQkFJRSxNQUFNO3NCQURkLE1BQU07Z0JBSUUsUUFBUTtzQkFEaEIsTUFBTTtnQkFJRSxTQUFTO3NCQURqQixNQUFNO2dCQUlFLFNBQVM7c0JBRGpCLE1BQU07Z0JBSUUsV0FBVztzQkFEbkIsTUFBTTtnQkFJUCxTQUFTO3NCQURSLFdBQVc7dUJBQUUsZ0JBQWdCO2dCQWMxQixZQUFZO3NCQURmLEtBQUs7Z0JBZ0JGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTtnQkF1RHhDLFNBQVM7c0JBRFIsWUFBWTt1QkFBRSxTQUFTLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVEcmFnSW1hZ2VPZmZzZXQsIERuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uLCBEbmRFdmVudCwgc2V0RHJhZ0RhdGEsIHNldERyYWdJbWFnZSB9IGZyb20gXCIuL2RuZC11dGlsc1wiO1xuaW1wb3J0IHsgRG5kSGFuZGxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZG5kLWhhbmRsZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGRuZFN0YXRlLCBlbmREcmFnLCBzdGFydERyYWcgfSBmcm9tIFwiLi9kbmQtc3RhdGVcIjtcbmltcG9ydCB7IEVmZmVjdEFsbG93ZWQgfSBmcm9tIFwiLi9kbmQtdHlwZXNcIjtcblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJhZ0ltYWdlUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmREcmFnSW1hZ2VSZWZEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBEbmREcmFnZ2FibGVEaXJlY3RpdmUpKSBwYXJlbnQ6IERuZERyYWdnYWJsZURpcmVjdGl2ZSwgZWxlbWVudFJlZjpFbGVtZW50UmVmICkge1xuICAgIHBhcmVudC5yZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZiApO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdnYWJsZV1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ2dhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2FibGU6YW55O1xuXG4gIEBJbnB1dCgpXG4gIGRuZEVmZmVjdEFsbG93ZWQ6RWZmZWN0QWxsb3dlZCA9IFwiY29weVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZFR5cGU/OnN0cmluZztcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ0NsYXNzID0gXCJkbmREcmFnZ2luZ1wiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnaW5nU291cmNlQ2xhc3MgPSBcImRuZERyYWdnaW5nU291cmNlXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJhZ2dhYmxlRGlzYWJsZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbjpEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiA9IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldDtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kU3RhcnQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZzpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRFbmQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kTW92ZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ29waWVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZExpbmtlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRDYW5jZWxlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZyggXCJhdHRyLmRyYWdnYWJsZVwiIClcbiAgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBwcml2YXRlIGRuZEhhbmRsZT86RG5kSGFuZGxlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgZG5kRHJhZ0ltYWdlRWxlbWVudFJlZj86RWxlbWVudFJlZjtcblxuICBwcml2YXRlIGRyYWdJbWFnZTpFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgaXNEcmFnU3RhcnRlZDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWcoIGV2ZW50ICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVJZiggdmFsdWU6Ym9vbGVhbiApIHtcblxuICAgIHRoaXMuZHJhZ2dhYmxlID0gIXZhbHVlO1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlICkge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2FibGVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2FibGVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVEcmFnSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG4gICAgdGhpcy5kbmREaXNhYmxlSWYgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGVsZW1lbnRSZWY6RWxlbWVudFJlZixcbiAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6UmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6Tmdab25lICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6dm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICBpZih0aGlzLmlzRHJhZ1N0YXJ0ZWQgPT09IHRydWUpIHtcbiAgICAgIGVuZERyYWcoKVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICk6IGJvb2xlYW4ge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG5cbiAgICBzZXREcmFnRGF0YSggZXZlbnQsIHtkYXRhOiB0aGlzLmRuZERyYWdnYWJsZSwgdHlwZTogdGhpcy5kbmRUeXBlfSwgZG5kU3RhdGUuZWZmZWN0QWxsb3dlZCEgKTtcblxuICAgIHRoaXMuZHJhZ0ltYWdlID0gdGhpcy5kZXRlcm1pbmVEcmFnSW1hZ2UoKTtcblxuICAgIC8vIHNldCBkcmFnZ2luZyBjc3MgY2xhc3MgcHJpb3IgdG8gc2V0RHJhZ0ltYWdlIHNvIHN0eWxlcyBhcmUgYXBwbGllZCBiZWZvcmVcbiAgICAvLyBUT0RPIGJyZWFraW5nIGNoYW5nZTogYWRkIGNsYXNzIHRvIGVsZW1lbnRSZWYgcmF0aGVyIHRoYW4gZHJhZyBpbWFnZSB3aGljaCBjb3VsZCBiZSBhbm90aGVyIGVsZW1lbnRcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmRyYWdJbWFnZSwgdGhpcy5kbmREcmFnZ2luZ0NsYXNzICk7XG5cbiAgICAvLyBzZXQgY3VzdG9tIGRyYWdpbWFnZSBpZiBwcmVzZW50XG4gICAgLy8gc2V0IGRyYWdpbWFnZSBpZiBkcmFnIGlzIHN0YXJ0ZWQgZnJvbSBkbmRIYW5kbGVcbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgfHwgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgc2V0RHJhZ0ltYWdlKCBldmVudCwgdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24gKTtcbiAgICB9XG5cbiAgICAvLyBhZGQgZHJhZ2dpbmcgc291cmNlIGNzcyBjbGFzcyBvbiBmaXJzdCBkcmFnIGV2ZW50XG4gICAgY29uc3QgdW5yZWdpc3RlciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkcmFnXCIsICgpID0+IHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dpbmdTb3VyY2VDbGFzcyApO1xuICAgICAgdW5yZWdpc3RlcigpO1xuICAgIH0gKTtcblxuICAgIHRoaXMuZG5kU3RhcnQuZW1pdCggZXZlbnQgKTtcblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25EcmFnKCBldmVudDpEcmFnRXZlbnQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWcuZW1pdCggZXZlbnQgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ2VuZFwiLCBbIFwiJGV2ZW50XCIgXSApXG4gIG9uRHJhZ0VuZCggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgLy8gZ2V0IGRyb3AgZWZmZWN0IGZyb20gY3VzdG9tIHN0b3JlZCBzdGF0ZSBhcyBpdHMgbm90IHJlbGlhYmxlIGFjcm9zcyBicm93c2Vyc1xuICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBkbmRTdGF0ZS5kcm9wRWZmZWN0O1xuXG4gICAgbGV0IGRyb3BFZmZlY3RFbWl0dGVyOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuXG4gICAgc3dpdGNoKCBkcm9wRWZmZWN0ICkge1xuXG4gICAgICBjYXNlIFwiY29weVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ29waWVkO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZExpbmtlZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJtb3ZlXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRNb3ZlZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRDYW5jZWxlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZHJvcEVmZmVjdEVtaXR0ZXIuZW1pdCggZXZlbnQgKTtcbiAgICB0aGlzLmRuZEVuZC5lbWl0KCBldmVudCApO1xuXG4gICAgLy8gcmVzZXQgZ2xvYmFsIHN0YXRlXG4gICAgZW5kRHJhZygpO1xuXG4gICAgdGhpcy5pc0RyYWdTdGFydGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmRyYWdJbWFnZSwgdGhpcy5kbmREcmFnZ2luZ0NsYXNzICk7XG5cbiAgICAvLyBJRTkgc3BlY2lhbCBoYW1tZXJpbmdcbiAgICB3aW5kb3cuc2V0VGltZW91dCggKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dpbmdTb3VyY2VDbGFzcyApO1xuICAgIH0sIDAgKTtcblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcmVnaXN0ZXJEcmFnSGFuZGxlKCBoYW5kbGU6RG5kSGFuZGxlRGlyZWN0aXZlIHwgdW5kZWZpbmVkICkge1xuXG4gICAgdGhpcy5kbmRIYW5kbGUgPSBoYW5kbGU7XG4gIH1cblxuICByZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZjpFbGVtZW50UmVmIHwgdW5kZWZpbmVkICkge1xuXG4gICAgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lRHJhZ0ltYWdlKCk6RWxlbWVudCB7XG5cbiAgICAvLyBldmFsdWF0ZSBjdXN0b20gZHJhZyBpbWFnZSBleGlzdGVuY2VcbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZiAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEVsZW1lbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICB9XG59XG4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kbmQvc3JjL2xpYi9kbmQtZHJhZ2dhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU0zRCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQTZELE1BQTZCLEVBQUUsVUFBcUI7UUFDL0csTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7O3FIQUpVLHdCQUF3QixrQkFFZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7eUdBRmhELHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFFO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzBEQUdzRSxxQkFBcUI7MEJBQTdFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDOztBQVE3RCxNQUFNLE9BQU8scUJBQXFCO0lBNkVoQyxZQUFxQixVQUFxQixFQUNyQixRQUFrQixFQUNsQixNQUFhO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUF6RWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFB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QUMsYUFBYSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7a0hBdk5VLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUU7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OElBSUMsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixNQUFNO2dCQUlFLE9BQU87c0JBRGYsTUFBTTtnQkFJRSxNQUFNO3NCQURkLE1BQU07Z0JBSUUsUUFBUTtzQkFEaEIsTUFBTTtnQkFJRSxTQUFTO3NCQURqQixNQUFNO2dCQUlFLFNBQVM7c0JBRGpCLE1BQU07Z0JBSUUsV0FBVztzQkFEbkIsTUFBTTtnQkFJUCxTQUFTO3NCQURSLFdBQVc7dUJBQUUsZ0JBQWdCO2dCQWMxQixZQUFZO3NCQURmLEtBQUs7Z0JBZ0JGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTtnQkF1RHhDLFNBQVM7c0JBRFIsWUFBWTt1QkFBRSxTQUFTLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVEcmFnSW1hZ2VPZmZzZXQsIERuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uLCBEbmRFdmVudCwgc2V0RHJhZ0RhdGEsIHNldERyYWdJbWFnZSB9IGZyb20gXCIuL2RuZC11dGlsc1wiO1xuaW1wb3J0IHsgRG5kSGFuZGxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZG5kLWhhbmRsZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGRuZFN0YXRlLCBlbmREcmFnLCBzdGFydERyYWcgfSBmcm9tIFwiLi9kbmQtc3RhdGVcIjtcbmltcG9ydCB7IEVmZmVjdEFsbG93ZWQgfSBmcm9tIFwiLi9kbmQtdHlwZXNcIjtcblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJhZ0ltYWdlUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmREcmFnSW1hZ2VSZWZEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBEbmREcmFnZ2FibGVEaXJlY3RpdmUpKSBwYXJlbnQ6IERuZERyYWdnYWJsZURpcmVjdGl2ZSwgZWxlbWVudFJlZjpFbGVtZW50UmVmICkge1xuICAgIHBhcmVudC5yZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZiApO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdnYWJsZV1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ2dhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2FibGU6YW55O1xuXG4gIEBJbnB1dCgpXG4gIGRuZEVmZmVjdEFsbG93ZWQ6RWZmZWN0QWxsb3dlZCA9IFwiY29weVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZFR5cGU/OnN0cmluZztcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ0NsYXNzID0gXCJkbmREcmFnZ2luZ1wiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnaW5nU291cmNlQ2xhc3MgPSBcImRuZERyYWdnaW5nU291cmNlXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJhZ2dhYmxlRGlzYWJsZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbjpEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiA9IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldDtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kU3RhcnQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZzpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRFbmQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kTW92ZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ29waWVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZExpbmtlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRDYW5jZWxlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZyggXCJhdHRyLmRyYWdnYWJsZVwiIClcbiAgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBwcml2YXRlIGRuZEhhbmRsZT86RG5kSGFuZGxlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgZG5kRHJhZ0ltYWdlRWxlbWVudFJlZj86RWxlbWVudFJlZjtcblxuICBwcml2YXRlIGRyYWdJbWFnZTpFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgaXNEcmFnU3RhcnRlZDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWcoIGV2ZW50ICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVJZiggdmFsdWU6Ym9vbGVhbiApIHtcblxuICAgIHRoaXMuZHJhZ2dhYmxlID0gIXZhbHVlO1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlICkge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2FibGVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2FibGVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVEcmFnSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG4gICAgdGhpcy5kbmREaXNhYmxlSWYgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGVsZW1lbnRSZWY6RWxlbWVudFJlZixcbiAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6UmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6Tmdab25lICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6dm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICBpZih0aGlzLmlzRHJhZ1N0YXJ0ZWQgPT09IHRydWUpIHtcbiAgICAgIGVuZERyYWcoKVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICk6IGJvb2xlYW4ge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG5cbiAgICBzZXREcmFnRGF0YSggZXZlbnQsIHtkYXRhOiB0aGlzLmRuZERyYWdnYWJsZSwgdHlwZTogdGhpcy5kbmRUeXBlfSwgZG5kU3RhdGUuZWZmZWN0QWxsb3dlZCEgKTtcblxuICAgIHRoaXMuZHJhZ0ltYWdlID0gdGhpcy5kZXRlcm1pbmVEcmFnSW1hZ2UoKTtcblxuICAgIC8vIHNldCBkcmFnZ2luZyBjc3MgY2xhc3MgcHJpb3IgdG8gc2V0RHJhZ0ltYWdlIHNvIHN0eWxlcyBhcmUgYXBwbGllZCBiZWZvcmVcbiAgICAvLyBUT0RPIGJyZWFraW5nIGNoYW5nZTogYWRkIGNsYXNzIHRvIGVsZW1lbnRSZWYgcmF0aGVyIHRoYW4gZHJhZyBpbWFnZSB3aGljaCBjb3VsZCBiZSBhbm90aGVyIGVsZW1lbnRcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmRyYWdJbWFnZSwgdGhpcy5kbmREcmFnZ2luZ0NsYXNzICk7XG5cbiAgICAvLyBzZXQgY3VzdG9tIGRyYWdpbWFnZSBpZiBwcmVzZW50XG4gICAgLy8gc2V0IGRyYWdpbWFnZSBpZiBkcmFnIGlzIHN0YXJ0ZWQgZnJvbSBkbmRIYW5kbGVcbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgfHwgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgc2V0RHJhZ0ltYWdlKCBldmVudCwgdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24gKTtcbiAgICB9XG5cbiAgICAvLyBhZGQgZHJhZ2dpbmcgc291cmNlIGNzcyBjbGFzcyBvbiBmaXJzdCBkcmFnIGV2ZW50XG4gICAgY29uc3QgdW5yZWdpc3RlciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJkcmFnXCIsICgpID0+IHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dpbmdTb3VyY2VDbGFzcyApO1xuICAgICAgdW5yZWdpc3RlcigpO1xuICAgIH0gKTtcblxuICAgIHRoaXMuZG5kU3RhcnQuZW1pdCggZXZlbnQgKTtcblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25EcmFnKCBldmVudDpEcmFnRXZlbnQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWcuZW1pdCggZXZlbnQgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ2VuZFwiLCBbIFwiJGV2ZW50XCIgXSApXG4gIG9uRHJhZ0VuZCggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgLy8gZ2V0IGRyb3AgZWZmZWN0IGZyb20gY3VzdG9tIHN0b3JlZCBzdGF0ZSBhcyBpdHMgbm90IHJlbGlhYmxlIGFjcm9zcyBicm93c2Vyc1xuICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBkbmRTdGF0ZS5kcm9wRWZmZWN0O1xuXG4gICAgbGV0IGRyb3BFZmZlY3RFbWl0dGVyOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuXG4gICAgc3dpdGNoKCBkcm9wRWZmZWN0ICkge1xuXG4gICAgICBjYXNlIFwiY29weVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ29waWVkO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZExpbmtlZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJtb3ZlXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRNb3ZlZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRDYW5jZWxlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZHJvcEVmZmVjdEVtaXR0ZXIuZW1pdCggZXZlbnQgKTtcbiAgICB0aGlzLmRuZEVuZC5lbWl0KCBldmVudCApO1xuXG4gICAgLy8gcmVzZXQgZ2xvYmFsIHN0YXRlXG4gICAgZW5kRHJhZygpO1xuXG4gICAgdGhpcy5pc0RyYWdTdGFydGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmRyYWdJbWFnZSwgdGhpcy5kbmREcmFnZ2luZ0NsYXNzICk7XG5cbiAgICAvLyBJRTkgc3BlY2lhbCBoYW1tZXJpbmdcbiAgICB3aW5kb3cuc2V0VGltZW91dCggKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dpbmdTb3VyY2VDbGFzcyApO1xuICAgIH0sIDAgKTtcblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcmVnaXN0ZXJEcmFnSGFuZGxlKCBoYW5kbGU6RG5kSGFuZGxlRGlyZWN0aXZlIHwgdW5kZWZpbmVkICkge1xuXG4gICAgdGhpcy5kbmRIYW5kbGUgPSBoYW5kbGU7XG4gIH1cblxuICByZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZjpFbGVtZW50UmVmIHwgdW5kZWZpbmVkICkge1xuXG4gICAgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lRHJhZ0ltYWdlKCk6RWxlbWVudCB7XG5cbiAgICAvLyBldmFsdWF0ZSBjdXN0b20gZHJhZyBpbWFnZSBleGlzdGVuY2VcbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZiAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIHRoaXMuZG5kRHJhZ0ltYWdlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEVsZW1lbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -7,9 +7,9 @@ export class DndPlaceholderRefDirective {
7
7
  this.elementRef = elementRef;
8
8
  }
9
9
  }
10
- DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
10
+ DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11
+ DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: "[dndPlaceholderRef]"
@@ -240,9 +240,9 @@ export class DndDropzoneDirective {
240
240
  this.removePlaceholderFromDOM();
241
241
  }
242
242
  }
243
- DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
244
- DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, decorators: [{
243
+ DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
244
+ DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, decorators: [{
246
246
  type: Directive,
247
247
  args: [{
248
248
  selector: "[dndDropzone]"
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
274
274
  type: HostListener,
275
275
  args: ["drop", ["$event"]]
276
276
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RuZC9zcmMvbGliL2RuZC1kcm9wem9uZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxxQkFBcUIsRUFDckIsV0FBVyxFQUNYLHNDQUFzQyxFQUN2QyxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQWV2RixNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQTZCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFDbEQsQ0FBQzs7d0hBSFUsMEJBQTBCOzRHQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBRTtvQkFDVixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFVRCxNQUFNLE9BQU8sb0JBQW9CO0lBeUQvQixZQUFxQixNQUFhLEVBQ2IsVUFBcUIsRUFDckIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXhEdkMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLHFCQUFnQixHQUFpQixlQUFlLENBQUM7UUFHakQscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQVcsS0FBSyxDQUFDO1FBRzlCLHFCQUFnQixHQUFVLGFBQWEsQ0FBQztRQUd4Qyw2QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQztRQUd4QyxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFB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Q2xDLENBQUM7O2tIQTNWVSxvQkFBb0I7c0dBQXBCLG9CQUFvQix3Z0JBMEJoQiwwQkFBMEI7NEZBMUI5QixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUU7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOzhJQUlDLFdBQVc7c0JBRFYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsT0FBTztzQkFEZixNQUFNO2dCQUlVLGlCQUFpQjtzQkFEakMsWUFBWTt1QkFBRSwwQkFBMEI7Z0JBWXJDLFlBQVk7c0JBRGYsS0FBSztnQkFnQkYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQW9HTixNQUFNO3NCQURMLFlBQVk7dUJBQUUsTUFBTSxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBEbmRFdmVudCxcbiAgRHJhZ0Ryb3BEYXRhLFxuICBnZXREaXJlY3RDaGlsZEVsZW1lbnQsXG4gIGdldERyb3BEYXRhLFxuICBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudFxufSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IGdldERuZFR5cGUsIGdldERyb3BFZmZlY3QsIGlzRXh0ZXJuYWxEcmFnLCBzZXREcm9wRWZmZWN0IH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBEcm9wRWZmZWN0LCBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG5kRHJvcEV2ZW50IHtcbiAgZXZlbnQ6RHJhZ0V2ZW50O1xuICBkcm9wRWZmZWN0OkRyb3BFZmZlY3Q7XG4gIGlzRXh0ZXJuYWw6Ym9vbGVhbjtcbiAgZGF0YT86YW55O1xuICBpbmRleD86bnVtYmVyO1xuICB0eXBlPzphbnk7XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJvcHpvbmVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyb3B6b25lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZT86c3RyaW5nW10gfCBcIlwiID0gXCJcIjtcblxuICBASW5wdXQoKVxuICBkbmRFZmZlY3RBbGxvd2VkOkVmZmVjdEFsbG93ZWQgPSBcInVuaW5pdGlhbGl6ZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmRBbGxvd0V4dGVybmFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmRIb3Jpem9udGFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmREcmFnb3ZlckNsYXNzOnN0cmluZyA9IFwiZG5kRHJhZ292ZXJcIjtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZURpc2FibGVkQ2xhc3MgPSBcImRuZERyb3B6b25lRGlzYWJsZWRcIjtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZ292ZXI6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJvcDpFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlIClcbiAgcHJpdmF0ZSByZWFkb25seSBkbmRQbGFjZWhvbGRlclJlZj86RG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBwbGFjZWhvbGRlcjpFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBkaXNhYmxlZDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnRW50ZXJFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ0VudGVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdPdmVyRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdPdmVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdMZWF2ZUV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnTGVhdmUoIGV2ZW50ICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVJZiggdmFsdWU6Ym9vbGVhbiApIHtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVEcm9wSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG4gICAgdGhpcy5kbmREaXNhYmxlSWYgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIG5nWm9uZTpOZ1pvbmUsXG4gICAgICAgICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6RWxlbWVudFJlZixcbiAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6UmVuZGVyZXIyICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6dm9pZCB7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy50cnlHZXRQbGFjZWhvbGRlcigpO1xuXG4gICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdlbnRlclwiLCB0aGlzLmRyYWdFbnRlckV2ZW50SGFuZGxlciApO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnb3ZlclwiLCB0aGlzLmRyYWdPdmVyRXZlbnRIYW5kbGVyICk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdsZWF2ZVwiLCB0aGlzLmRyYWdMZWF2ZUV2ZW50SGFuZGxlciApO1xuICAgIH0gKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6dm9pZCB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnZW50ZXJcIiwgdGhpcy5kcmFnRW50ZXJFdmVudEhhbmRsZXIgKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdvdmVyXCIsIHRoaXMuZHJhZ092ZXJFdmVudEhhbmRsZXIgKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdsZWF2ZVwiLCB0aGlzLmRyYWdMZWF2ZUV2ZW50SGFuZGxlciApO1xuICB9XG5cbiAgb25EcmFnRW50ZXIoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgLy8gY2hlY2sgaWYgYW5vdGhlciBkcm9wem9uZSBpcyBhY3RpdmF0ZWRcbiAgICBpZiggZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSB0cnVlICkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gc2V0IGFzIGFjdGl2ZSBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgaW5zaWRlIHRoaXMgZHJvcHpvbmVcbiAgICBpZiggdHlwZW9mIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCggZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSApO1xuXG4gICAgICBpZiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoIG5ld1RhcmdldCApICkge1xuXG4gICAgICAgIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGFsbG93IHRoZSBkcmFnZW50ZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25EcmFnT3ZlciggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuICAgIC8vIFdpdGggbmVzdGVkIGRyb3B6b25lcywgd2Ugd2FudCB0byBpZ25vcmUgdGhpcyBldmVudCBpZiBhIGNoaWxkIGRyb3B6b25lXG4gICAgLy8gaGFzIGFscmVhZHkgaGFuZGxlZCBhIGRyYWdvdmVyLiAgSGlzdG9yaWNhbGx5LCBldmVudC5zdG9wUHJvcGFnYXRpb24oKSB3YXNcbiAgICAvLyB1c2VkIHRvIHByZXZlbnQgdGhpcyBidWJibGluZywgYnV0IHRoYXQgcHJldmVudHMgYW55IGRyYWdvdmVycyBvdXRzaWRlIHRoZVxuICAgIC8vIG5neC1kcmFnLWRyb3AgY29tcG9uZW50LCBhbmQgc3RvcHMgb3RoZXIgdXNlIGNhc2VzIHN1Y2ggYXMgc2Nyb2xsaW5nIG9uIGRyYWcuXG4gICAgLy8gSW5zdGVhZCwgd2UgY2FuIGNoZWNrIGlmIHRoZSBldmVudCB3YXMgYWxyZWFkeSBwcmV2ZW50ZWQgYnkgYSBjaGlsZCBhbmQgYmFpbCBlYXJseS5cbiAgICBpZiggZXZlbnQuZGVmYXVsdFByZXZlbnRlZCApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlUGxhY2Vob2xkZXJQb3NpdGlvbiggZXZlbnQgKTtcblxuICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBnZXREcm9wRWZmZWN0KCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkICk7XG5cbiAgICBpZiggZHJvcEVmZmVjdCA9PT0gXCJub25lXCIgKSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0aGUgZHJhZ292ZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gc2V0IHRoZSBkcm9wIGVmZmVjdFxuICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBkcm9wRWZmZWN0ICk7XG5cbiAgICB0aGlzLmRuZERyYWdvdmVyLmVtaXQoIGV2ZW50ICk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnb3ZlckNsYXNzICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyb3BcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyb3AoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YTpEcmFnRHJvcERhdGEgPSBnZXREcm9wRGF0YSggZXZlbnQsIGlzRXh0ZXJuYWxEcmFnKCkgKTtcblxuICAgICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggZGF0YS50eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2lnbmFsIGN1c3RvbSBkcm9wIGhhbmRsaW5nXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBkcm9wRWZmZWN0ID0gZ2V0RHJvcEVmZmVjdCggZXZlbnQgKTtcblxuICAgICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIGRyb3BFZmZlY3QgKTtcblxuICAgICAgaWYoIGRyb3BFZmZlY3QgPT09IFwibm9uZVwiICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZHJvcEluZGV4ID0gdGhpcy5nZXRQbGFjZWhvbGRlckluZGV4KCk7XG5cbiAgICAgIC8vIGlmIGZvciB3aGF0ZXZlciByZWFzb24gdGhlIHBsYWNlaG9sZGVyIGlzIG5vdCBwcmVzZW50IGluIHRoZSBET00gYnV0IGl0IHNob3VsZCBiZSB0aGVyZVxuICAgICAgLy8gd2UgZG9uJ3QgYWxsb3cvZW1pdCB0aGUgZHJvcCBldmVudCBzaW5jZSBpdCBicmVha3MgdGhlIGNvbnRyYWN0XG4gICAgICAvLyBzZWVtcyB0byBvbmx5IGhhcHBlbiBpZiBkcmFnIGFuZCBkcm9wIGlzIGV4ZWN1dGVkIGZhc3RlciB0aGFuIHRoZSBET00gdXBkYXRlc1xuICAgICAgaWYoIGRyb3BJbmRleCA9PT0gLTEgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRuZERyb3AuZW1pdCgge1xuICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgIGRyb3BFZmZlY3Q6IGRyb3BFZmZlY3QsXG4gICAgICAgIGlzRXh0ZXJuYWw6IGlzRXh0ZXJuYWxEcmFnKCksXG4gICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgaW5kZXg6IGRyb3BJbmRleCxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgIH0gKTtcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB9XG4gICAgZmluYWxseSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkRyYWdMZWF2ZSggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICAvLyBjaGVjayBpZiBzdGlsbCBpbnNpZGUgdGhpcyBkcm9wem9uZSBhbmQgbm90IHlldCBoYW5kbGVkIGJ5IGFub3RoZXIgZHJvcHpvbmVcbiAgICBpZiggdHlwZW9mIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCggZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSApO1xuXG4gICAgICBpZiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoIG5ld1RhcmdldCApICkge1xuXG4gICAgICAgIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG5cbiAgICAvLyBjbGVhbnVwIGRyb3AgZWZmZWN0IHdoZW4gbGVhdmluZyBkcm9wem9uZVxuICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBcIm5vbmVcIiApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Ryb3BBbGxvd2VkKCB0eXBlPzpzdHJpbmcgKTpib29sZWFuIHtcblxuICAgIC8vIGRyb3B6b25lIGlzIGRpc2FibGVkIC0+IGRlbnkgaXRcbiAgICBpZiggdGhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGlmIGRyYWcgZGlkIG5vdCBzdGFydCBmcm9tIG91ciBkaXJlY3RpdmVcbiAgICAvLyBhbmQgZXh0ZXJuYWwgZHJhZyBzb3VyY2VzIGFyZSBub3QgYWxsb3dlZCAtPiBkZW55IGl0XG4gICAgaWYoIGlzRXh0ZXJuYWxEcmFnKCkgPT09IHRydWVcbiAgICAgICYmIHRoaXMuZG5kQWxsb3dFeHRlcm5hbCA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBubyBmaWx0ZXJpbmcgYnkgdHlwZXMgLT4gYWxsb3cgaXRcbiAgICBpZiggIXRoaXMuZG5kRHJvcHpvbmUgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIG5vIHR5cGUgc2V0IC0+IGFsbG93IGl0XG4gICAgaWYoICF0eXBlICkge1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiggQXJyYXkuaXNBcnJheSggdGhpcy5kbmREcm9wem9uZSApID09PSBmYWxzZSApIHtcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCBcImRuZERyb3B6b25lOiBib3VuZCB2YWx1ZSB0byBbZG5kRHJvcHpvbmVdIG11c3QgYmUgYW4gYXJyYXkhXCIgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBkcm9wem9uZSBjb250YWlucyB0eXBlIC0+IGFsbG93IGl0XG4gICAgcmV0dXJuIHRoaXMuZG5kRHJvcHpvbmUuaW5kZXhPZiggdHlwZSApICE9PSAtMTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ5R2V0UGxhY2Vob2xkZXIoKTpFbGVtZW50IHwgbnVsbCB7XG5cbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kUGxhY2Vob2xkZXJSZWYgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmRuZFBsYWNlaG9sZGVyUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50O1xuICAgIH1cblxuICAgIC8vIFRPRE8gbmFzdHkgd29ya2Fyb3VuZCBuZWVkZWQgYmVjYXVzZSBpZiBuZy1jb250YWluZXIgLyB0ZW1wbGF0ZSBpcyB1c2VkIEBDb250ZW50Q2hpbGQoKSBvciBESSB3aWxsIGZhaWwgYmVjYXVzZVxuICAgIC8vIG9mIHdyb25nIGNvbnRleHQgc2VlIGFuZ3VsYXIgYnVnIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTE3XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyICE9PSBudWxsXG4gICAgICAmJiB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUgIT09IG51bGwgKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQW5kVXBkYXRlUGxhY2Vob2xkZXJQb3NpdGlvbiggZXZlbnQ6RHJhZ0V2ZW50ICk6dm9pZCB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciA9PT0gbnVsbCApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgcGxhY2Vob2xkZXIgaXMgaW4gdGhlIERPTVxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUgIT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICkge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciApO1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZSB0aGUgcG9zaXRpb24gaWYgdGhlIGV2ZW50IG9yaWdpbmF0ZXMgZnJvbSBhIGNoaWxkIGVsZW1lbnQgb2YgdGhlIGRyb3B6b25lXG4gICAgY29uc3QgZGlyZWN0Q2hpbGQgPSBnZXREaXJlY3RDaGlsZEVsZW1lbnQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBldmVudC50YXJnZXQgYXMgRWxlbWVudCApO1xuXG4gICAgLy8gZWFybHkgZXhpdCBpZiBubyBkaXJlY3QgY2hpbGQgb3IgZGlyZWN0IGNoaWxkIGlzIHBsYWNlaG9sZGVyXG4gICAgaWYoIGRpcmVjdENoaWxkID09PSBudWxsXG4gICAgICB8fCBkaXJlY3RDaGlsZCA9PT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVEaXJlY3RDaGlsZCA9IHNob3VsZFBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVFbGVtZW50KCBldmVudCwgZGlyZWN0Q2hpbGQsIHRoaXMuZG5kSG9yaXpvbnRhbCApO1xuXG4gICAgaWYoIHBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVEaXJlY3RDaGlsZCApIHtcblxuICAgICAgLy8gZG8gaW5zZXJ0IGJlZm9yZSBvbmx5IGlmIG5lY2Vzc2FyeVxuICAgICAgaWYoIGRpcmVjdENoaWxkLnByZXZpb3VzU2libGluZyAhPT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIsIGRpcmVjdENoaWxkICk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICAvLyBkbyBpbnNlcnQgYWZ0ZXIgb25seSBpZiBuZWNlc3NhcnlcbiAgICAgIGlmKCBkaXJlY3RDaGlsZC5uZXh0U2libGluZyAhPT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIsIGRpcmVjdENoaWxkLm5leHRTaWJsaW5nICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZWhvbGRlckluZGV4KCk6bnVtYmVyIHwgdW5kZWZpbmVkIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyID09PSBudWxsICkge1xuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKCBlbGVtZW50LmNoaWxkcmVuLCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBEcmFnb3ZlclN0YXRlKCkge1xuXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ292ZXJDbGFzcyApO1xuXG4gICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKTtcbiAgfVxufVxuIl19
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RuZC9zcmMvbGliL2RuZC1kcm9wem9uZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxxQkFBcUIsRUFDckIsV0FBVyxFQUNYLHNDQUFzQyxFQUN2QyxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQWV2RixNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQTZCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFDbEQsQ0FBQzs7dUhBSFUsMEJBQTBCOzJHQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBRTtvQkFDVixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFVRCxNQUFNLE9BQU8sb0JBQW9CO0lBeUQvQixZQUFxQixNQUFhLEVBQ2IsVUFBcUIsRUFDckIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXhEdkMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLHFCQUFnQixHQUFpQixlQUFlLENBQUM7UUFHakQscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQVcsS0FBSyxDQUFDO1FBRzlCLHFCQUFnQixHQUFVLGFBQWEsQ0FBQztRQUd4Qyw2QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQztRQUd4QyxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFB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Q2xDLENBQUM7O2lIQTNWVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3Z0JBMEJoQiwwQkFBMEI7MkZBMUI5QixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUU7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOzhJQUlDLFdBQVc7c0JBRFYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsT0FBTztzQkFEZixNQUFNO2dCQUlVLGlCQUFpQjtzQkFEakMsWUFBWTt1QkFBRSwwQkFBMEI7Z0JBWXJDLFlBQVk7c0JBRGYsS0FBSztnQkFnQkYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQW9HTixNQUFNO3NCQURMLFlBQVk7dUJBQUUsTUFBTSxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBEbmRFdmVudCxcbiAgRHJhZ0Ryb3BEYXRhLFxuICBnZXREaXJlY3RDaGlsZEVsZW1lbnQsXG4gIGdldERyb3BEYXRhLFxuICBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudFxufSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IGdldERuZFR5cGUsIGdldERyb3BFZmZlY3QsIGlzRXh0ZXJuYWxEcmFnLCBzZXREcm9wRWZmZWN0IH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBEcm9wRWZmZWN0LCBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG5kRHJvcEV2ZW50IHtcbiAgZXZlbnQ6RHJhZ0V2ZW50O1xuICBkcm9wRWZmZWN0OkRyb3BFZmZlY3Q7XG4gIGlzRXh0ZXJuYWw6Ym9vbGVhbjtcbiAgZGF0YT86YW55O1xuICBpbmRleD86bnVtYmVyO1xuICB0eXBlPzphbnk7XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJvcHpvbmVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyb3B6b25lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZT86c3RyaW5nW10gfCBcIlwiID0gXCJcIjtcblxuICBASW5wdXQoKVxuICBkbmRFZmZlY3RBbGxvd2VkOkVmZmVjdEFsbG93ZWQgPSBcInVuaW5pdGlhbGl6ZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmRBbGxvd0V4dGVybmFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmRIb3Jpem9udGFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmREcmFnb3ZlckNsYXNzOnN0cmluZyA9IFwiZG5kRHJhZ292ZXJcIjtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZURpc2FibGVkQ2xhc3MgPSBcImRuZERyb3B6b25lRGlzYWJsZWRcIjtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZ292ZXI6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJvcDpFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlIClcbiAgcHJpdmF0ZSByZWFkb25seSBkbmRQbGFjZWhvbGRlclJlZj86RG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBwbGFjZWhvbGRlcjpFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBkaXNhYmxlZDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnRW50ZXJFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ0VudGVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdPdmVyRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdPdmVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdMZWF2ZUV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnTGVhdmUoIGV2ZW50ICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVJZiggdmFsdWU6Ym9vbGVhbiApIHtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVEcm9wSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG4gICAgdGhpcy5kbmREaXNhYmxlSWYgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIG5nWm9uZTpOZ1pvbmUsXG4gICAgICAgICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6RWxlbWVudFJlZixcbiAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6UmVuZGVyZXIyICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6dm9pZCB7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy50cnlHZXRQbGFjZWhvbGRlcigpO1xuXG4gICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdlbnRlclwiLCB0aGlzLmRyYWdFbnRlckV2ZW50SGFuZGxlciApO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnb3ZlclwiLCB0aGlzLmRyYWdPdmVyRXZlbnRIYW5kbGVyICk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdsZWF2ZVwiLCB0aGlzLmRyYWdMZWF2ZUV2ZW50SGFuZGxlciApO1xuICAgIH0gKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6dm9pZCB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnZW50ZXJcIiwgdGhpcy5kcmFnRW50ZXJFdmVudEhhbmRsZXIgKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdvdmVyXCIsIHRoaXMuZHJhZ092ZXJFdmVudEhhbmRsZXIgKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdsZWF2ZVwiLCB0aGlzLmRyYWdMZWF2ZUV2ZW50SGFuZGxlciApO1xuICB9XG5cbiAgb25EcmFnRW50ZXIoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgLy8gY2hlY2sgaWYgYW5vdGhlciBkcm9wem9uZSBpcyBhY3RpdmF0ZWRcbiAgICBpZiggZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSB0cnVlICkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gc2V0IGFzIGFjdGl2ZSBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgaW5zaWRlIHRoaXMgZHJvcHpvbmVcbiAgICBpZiggdHlwZW9mIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCggZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSApO1xuXG4gICAgICBpZiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoIG5ld1RhcmdldCApICkge1xuXG4gICAgICAgIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGFsbG93IHRoZSBkcmFnZW50ZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25EcmFnT3ZlciggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuICAgIC8vIFdpdGggbmVzdGVkIGRyb3B6b25lcywgd2Ugd2FudCB0byBpZ25vcmUgdGhpcyBldmVudCBpZiBhIGNoaWxkIGRyb3B6b25lXG4gICAgLy8gaGFzIGFscmVhZHkgaGFuZGxlZCBhIGRyYWdvdmVyLiAgSGlzdG9yaWNhbGx5LCBldmVudC5zdG9wUHJvcGFnYXRpb24oKSB3YXNcbiAgICAvLyB1c2VkIHRvIHByZXZlbnQgdGhpcyBidWJibGluZywgYnV0IHRoYXQgcHJldmVudHMgYW55IGRyYWdvdmVycyBvdXRzaWRlIHRoZVxuICAgIC8vIG5neC1kcmFnLWRyb3AgY29tcG9uZW50LCBhbmQgc3RvcHMgb3RoZXIgdXNlIGNhc2VzIHN1Y2ggYXMgc2Nyb2xsaW5nIG9uIGRyYWcuXG4gICAgLy8gSW5zdGVhZCwgd2UgY2FuIGNoZWNrIGlmIHRoZSBldmVudCB3YXMgYWxyZWFkeSBwcmV2ZW50ZWQgYnkgYSBjaGlsZCBhbmQgYmFpbCBlYXJseS5cbiAgICBpZiggZXZlbnQuZGVmYXVsdFByZXZlbnRlZCApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlUGxhY2Vob2xkZXJQb3NpdGlvbiggZXZlbnQgKTtcblxuICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBnZXREcm9wRWZmZWN0KCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkICk7XG5cbiAgICBpZiggZHJvcEVmZmVjdCA9PT0gXCJub25lXCIgKSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0aGUgZHJhZ292ZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gc2V0IHRoZSBkcm9wIGVmZmVjdFxuICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBkcm9wRWZmZWN0ICk7XG5cbiAgICB0aGlzLmRuZERyYWdvdmVyLmVtaXQoIGV2ZW50ICk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnb3ZlckNsYXNzICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyb3BcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyb3AoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YTpEcmFnRHJvcERhdGEgPSBnZXREcm9wRGF0YSggZXZlbnQsIGlzRXh0ZXJuYWxEcmFnKCkgKTtcblxuICAgICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggZGF0YS50eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2lnbmFsIGN1c3RvbSBkcm9wIGhhbmRsaW5nXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBkcm9wRWZmZWN0ID0gZ2V0RHJvcEVmZmVjdCggZXZlbnQgKTtcblxuICAgICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIGRyb3BFZmZlY3QgKTtcblxuICAgICAgaWYoIGRyb3BFZmZlY3QgPT09IFwibm9uZVwiICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZHJvcEluZGV4ID0gdGhpcy5nZXRQbGFjZWhvbGRlckluZGV4KCk7XG5cbiAgICAgIC8vIGlmIGZvciB3aGF0ZXZlciByZWFzb24gdGhlIHBsYWNlaG9sZGVyIGlzIG5vdCBwcmVzZW50IGluIHRoZSBET00gYnV0IGl0IHNob3VsZCBiZSB0aGVyZVxuICAgICAgLy8gd2UgZG9uJ3QgYWxsb3cvZW1pdCB0aGUgZHJvcCBldmVudCBzaW5jZSBpdCBicmVha3MgdGhlIGNvbnRyYWN0XG4gICAgICAvLyBzZWVtcyB0byBvbmx5IGhhcHBlbiBpZiBkcmFnIGFuZCBkcm9wIGlzIGV4ZWN1dGVkIGZhc3RlciB0aGFuIHRoZSBET00gdXBkYXRlc1xuICAgICAgaWYoIGRyb3BJbmRleCA9PT0gLTEgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRuZERyb3AuZW1pdCgge1xuICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgIGRyb3BFZmZlY3Q6IGRyb3BFZmZlY3QsXG4gICAgICAgIGlzRXh0ZXJuYWw6IGlzRXh0ZXJuYWxEcmFnKCksXG4gICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgaW5kZXg6IGRyb3BJbmRleCxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgIH0gKTtcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB9XG4gICAgZmluYWxseSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkRyYWdMZWF2ZSggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICAvLyBjaGVjayBpZiBzdGlsbCBpbnNpZGUgdGhpcyBkcm9wem9uZSBhbmQgbm90IHlldCBoYW5kbGVkIGJ5IGFub3RoZXIgZHJvcHpvbmVcbiAgICBpZiggdHlwZW9mIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgY29uc3QgbmV3VGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCggZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSApO1xuXG4gICAgICBpZiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoIG5ld1RhcmdldCApICkge1xuXG4gICAgICAgIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG5cbiAgICAvLyBjbGVhbnVwIGRyb3AgZWZmZWN0IHdoZW4gbGVhdmluZyBkcm9wem9uZVxuICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBcIm5vbmVcIiApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Ryb3BBbGxvd2VkKCB0eXBlPzpzdHJpbmcgKTpib29sZWFuIHtcblxuICAgIC8vIGRyb3B6b25lIGlzIGRpc2FibGVkIC0+IGRlbnkgaXRcbiAgICBpZiggdGhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGlmIGRyYWcgZGlkIG5vdCBzdGFydCBmcm9tIG91ciBkaXJlY3RpdmVcbiAgICAvLyBhbmQgZXh0ZXJuYWwgZHJhZyBzb3VyY2VzIGFyZSBub3QgYWxsb3dlZCAtPiBkZW55IGl0XG4gICAgaWYoIGlzRXh0ZXJuYWxEcmFnKCkgPT09IHRydWVcbiAgICAgICYmIHRoaXMuZG5kQWxsb3dFeHRlcm5hbCA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBubyBmaWx0ZXJpbmcgYnkgdHlwZXMgLT4gYWxsb3cgaXRcbiAgICBpZiggIXRoaXMuZG5kRHJvcHpvbmUgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIG5vIHR5cGUgc2V0IC0+IGFsbG93IGl0XG4gICAgaWYoICF0eXBlICkge1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiggQXJyYXkuaXNBcnJheSggdGhpcy5kbmREcm9wem9uZSApID09PSBmYWxzZSApIHtcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCBcImRuZERyb3B6b25lOiBib3VuZCB2YWx1ZSB0byBbZG5kRHJvcHpvbmVdIG11c3QgYmUgYW4gYXJyYXkhXCIgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBkcm9wem9uZSBjb250YWlucyB0eXBlIC0+IGFsbG93IGl0XG4gICAgcmV0dXJuIHRoaXMuZG5kRHJvcHpvbmUuaW5kZXhPZiggdHlwZSApICE9PSAtMTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ5R2V0UGxhY2Vob2xkZXIoKTpFbGVtZW50IHwgbnVsbCB7XG5cbiAgICBpZiggdHlwZW9mIHRoaXMuZG5kUGxhY2Vob2xkZXJSZWYgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmRuZFBsYWNlaG9sZGVyUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50O1xuICAgIH1cblxuICAgIC8vIFRPRE8gbmFzdHkgd29ya2Fyb3VuZCBuZWVkZWQgYmVjYXVzZSBpZiBuZy1jb250YWluZXIgLyB0ZW1wbGF0ZSBpcyB1c2VkIEBDb250ZW50Q2hpbGQoKSBvciBESSB3aWxsIGZhaWwgYmVjYXVzZVxuICAgIC8vIG9mIHdyb25nIGNvbnRleHQgc2VlIGFuZ3VsYXIgYnVnIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTE3XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyICE9PSBudWxsXG4gICAgICAmJiB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUgIT09IG51bGwgKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQW5kVXBkYXRlUGxhY2Vob2xkZXJQb3NpdGlvbiggZXZlbnQ6RHJhZ0V2ZW50ICk6dm9pZCB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciA9PT0gbnVsbCApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgcGxhY2Vob2xkZXIgaXMgaW4gdGhlIERPTVxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyLnBhcmVudE5vZGUgIT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICkge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciApO1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZSB0aGUgcG9zaXRpb24gaWYgdGhlIGV2ZW50IG9yaWdpbmF0ZXMgZnJvbSBhIGNoaWxkIGVsZW1lbnQgb2YgdGhlIGRyb3B6b25lXG4gICAgY29uc3QgZGlyZWN0Q2hpbGQgPSBnZXREaXJlY3RDaGlsZEVsZW1lbnQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBldmVudC50YXJnZXQgYXMgRWxlbWVudCApO1xuXG4gICAgLy8gZWFybHkgZXhpdCBpZiBubyBkaXJlY3QgY2hpbGQgb3IgZGlyZWN0IGNoaWxkIGlzIHBsYWNlaG9sZGVyXG4gICAgaWYoIGRpcmVjdENoaWxkID09PSBudWxsXG4gICAgICB8fCBkaXJlY3RDaGlsZCA9PT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVEaXJlY3RDaGlsZCA9IHNob3VsZFBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVFbGVtZW50KCBldmVudCwgZGlyZWN0Q2hpbGQsIHRoaXMuZG5kSG9yaXpvbnRhbCApO1xuXG4gICAgaWYoIHBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVEaXJlY3RDaGlsZCApIHtcblxuICAgICAgLy8gZG8gaW5zZXJ0IGJlZm9yZSBvbmx5IGlmIG5lY2Vzc2FyeVxuICAgICAgaWYoIGRpcmVjdENoaWxkLnByZXZpb3VzU2libGluZyAhPT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIsIGRpcmVjdENoaWxkICk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICAvLyBkbyBpbnNlcnQgYWZ0ZXIgb25seSBpZiBuZWNlc3NhcnlcbiAgICAgIGlmKCBkaXJlY3RDaGlsZC5uZXh0U2libGluZyAhPT0gdGhpcy5wbGFjZWhvbGRlciApIHtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIsIGRpcmVjdENoaWxkLm5leHRTaWJsaW5nICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZWhvbGRlckluZGV4KCk6bnVtYmVyIHwgdW5kZWZpbmVkIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyID09PSBudWxsICkge1xuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKCBlbGVtZW50LmNoaWxkcmVuLCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBEcmFnb3ZlclN0YXRlKCkge1xuXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ292ZXJDbGFzcyApO1xuXG4gICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKTtcbiAgfVxufVxuIl19
@@ -10,9 +10,9 @@ export class DndHandleDirective {
10
10
  event._dndUsingHandle = true;
11
11
  }
12
12
  }
13
- DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, deps: [{ token: i1.DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
14
- DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, decorators: [{
13
+ DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, deps: [{ token: i1.DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
14
+ DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: "[dndHandle]"
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
27
27
  type: HostListener,
28
28
  args: ["dragend", ["$event"]]
29
29
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kbmQvc3JjL2xpYi9kbmQtaGFuZGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9yRSxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCLFlBQWEsTUFBNEI7UUFGekMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlmLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNwQyxDQUFDO0lBSUQsV0FBVyxDQUFFLEtBQWM7UUFFekIsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQzs7Z0hBZlUsa0JBQWtCO29HQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBRTtvQkFDVixRQUFRLEVBQUUsYUFBYTtpQkFDeEI7NEdBSUMsU0FBUztzQkFEUixXQUFXO3VCQUFFLGdCQUFnQjtnQkFVOUIsV0FBVztzQkFGVixZQUFZO3VCQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTs7c0JBQ3ZDLFlBQVk7dUJBQUUsU0FBUyxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERuZEV2ZW50IH0gZnJvbSBcIi4vZG5kLXV0aWxzXCI7XG5pbXBvcnQgeyBEbmREcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9kbmQtZHJhZ2dhYmxlLmRpcmVjdGl2ZVwiO1xuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmRIYW5kbGVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZEhhbmRsZURpcmVjdGl2ZSB7XG5cbiAgQEhvc3RCaW5kaW5nKCBcImF0dHIuZHJhZ2dhYmxlXCIgKVxuICBkcmFnZ2FibGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCBwYXJlbnQ6RG5kRHJhZ2dhYmxlRGlyZWN0aXZlICkge1xuXG4gICAgcGFyZW50LnJlZ2lzdGVyRHJhZ0hhbmRsZSggdGhpcyApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lciggXCJkcmFnc3RhcnRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFdmVudCggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICBldmVudC5fZG5kVXNpbmdIYW5kbGUgPSB0cnVlO1xuICB9XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kbmQvc3JjL2xpYi9kbmQtaGFuZGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9yRSxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCLFlBQWEsTUFBNEI7UUFGekMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlmLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNwQyxDQUFDO0lBSUQsV0FBVyxDQUFFLEtBQWM7UUFFekIsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQzs7K0dBZlUsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBRTtvQkFDVixRQUFRLEVBQUUsYUFBYTtpQkFDeEI7NEdBSUMsU0FBUztzQkFEUixXQUFXO3VCQUFFLGdCQUFnQjtnQkFVOUIsV0FBVztzQkFGVixZQUFZO3VCQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTs7c0JBQ3ZDLFlBQVk7dUJBQUUsU0FBUyxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERuZEV2ZW50IH0gZnJvbSBcIi4vZG5kLXV0aWxzXCI7XG5pbXBvcnQgeyBEbmREcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9kbmQtZHJhZ2dhYmxlLmRpcmVjdGl2ZVwiO1xuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmRIYW5kbGVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZEhhbmRsZURpcmVjdGl2ZSB7XG5cbiAgQEhvc3RCaW5kaW5nKCBcImF0dHIuZHJhZ2dhYmxlXCIgKVxuICBkcmFnZ2FibGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCBwYXJlbnQ6RG5kRHJhZ2dhYmxlRGlyZWN0aXZlICkge1xuXG4gICAgcGFyZW50LnJlZ2lzdGVyRHJhZ0hhbmRsZSggdGhpcyApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lciggXCJkcmFnc3RhcnRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFdmVudCggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICBldmVudC5fZG5kVXNpbmdIYW5kbGUgPSB0cnVlO1xuICB9XG59XG4iXX0=
@@ -6,8 +6,8 @@ import { DndHandleDirective } from "./dnd-handle.directive";
6
6
  import * as i0 from "@angular/core";
7
7
  export class DndModule {
8
8
  }
9
- DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
9
+ DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
11
11
  DndDropzoneDirective,
12
12
  DndHandleDirective,
13
13
  DndPlaceholderRefDirective,
@@ -16,10 +16,8 @@ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
16
16
  DndHandleDirective,
17
17
  DndPlaceholderRefDirective,
18
18
  DndDragImageRefDirective] });
19
- DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, imports: [[
20
- CommonModule
21
- ]] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, decorators: [{
19
+ DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, imports: [CommonModule] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, decorators: [{
23
21
  type: NgModule,
24
22
  args: [{
25
23
  imports: [
@@ -41,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
41
39
  ]
42
40
  }]
43
41
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RuZC9zcmMvbGliL2RuZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBcUI1RCxNQUFNLE9BQU8sU0FBUzs7dUdBQVQsU0FBUzt3R0FBVCxTQUFTLGlCQWRsQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsd0JBQXdCLGFBUHhCLFlBQVksYUFVWixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsd0JBQXdCO3dHQUdmLFNBQVMsWUFsQlg7WUFDUCxZQUFZO1NBQ2I7NEZBZ0JVLFNBQVM7a0JBbkJyQixRQUFRO21CQUFFO29CQUNULE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IERuZERyYWdnYWJsZURpcmVjdGl2ZSwgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlIH0gZnJvbSBcIi4vZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERuZERyb3B6b25lRGlyZWN0aXZlLCBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1kcm9wem9uZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERuZEhhbmRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1oYW5kbGUuZGlyZWN0aXZlXCI7XG5cbkBOZ01vZHVsZSgge1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERuZERyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICBEbmREcm9wem9uZURpcmVjdGl2ZSxcbiAgICBEbmRIYW5kbGVEaXJlY3RpdmUsXG4gICAgRG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmUsXG4gICAgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEbmREcmFnZ2FibGVEaXJlY3RpdmUsXG4gICAgRG5kRHJvcHpvbmVEaXJlY3RpdmUsXG4gICAgRG5kSGFuZGxlRGlyZWN0aXZlLFxuICAgIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlLFxuICAgIERuZERyYWdJbWFnZVJlZkRpcmVjdGl2ZVxuICBdXG59IClcbmV4cG9ydCBjbGFzcyBEbmRNb2R1bGUge1xufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RuZC9zcmMvbGliL2RuZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBcUI1RCxNQUFNLE9BQU8sU0FBUzs7c0dBQVQsU0FBUzt1R0FBVCxTQUFTLGlCQWRsQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsd0JBQXdCLGFBUHhCLFlBQVksYUFVWixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsd0JBQXdCO3VHQUdmLFNBQVMsWUFqQmxCLFlBQVk7MkZBaUJILFNBQVM7a0JBbkJyQixRQUFRO21CQUFFO29CQUNULE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IERuZERyYWdnYWJsZURpcmVjdGl2ZSwgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlIH0gZnJvbSBcIi4vZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERuZERyb3B6b25lRGlyZWN0aXZlLCBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1kcm9wem9uZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERuZEhhbmRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1oYW5kbGUuZGlyZWN0aXZlXCI7XG5cbkBOZ01vZHVsZSgge1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERuZERyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICBEbmREcm9wem9uZURpcmVjdGl2ZSxcbiAgICBEbmRIYW5kbGVEaXJlY3RpdmUsXG4gICAgRG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmUsXG4gICAgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEbmREcmFnZ2FibGVEaXJlY3RpdmUsXG4gICAgRG5kRHJvcHpvbmVEaXJlY3RpdmUsXG4gICAgRG5kSGFuZGxlRGlyZWN0aXZlLFxuICAgIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlLFxuICAgIERuZERyYWdJbWFnZVJlZkRpcmVjdGl2ZVxuICBdXG59IClcbmV4cG9ydCBjbGFzcyBEbmRNb2R1bGUge1xufVxuIl19
@@ -193,9 +193,9 @@ class DndDragImageRefDirective {
193
193
  parent.registerDragImage(elementRef);
194
194
  }
195
195
  }
196
- DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
197
- DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
196
+ DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
197
+ DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
199
199
  type: Directive,
200
200
  args: [{
201
201
  selector: "[dndDragImageRef]"
@@ -331,9 +331,9 @@ class DndDraggableDirective {
331
331
  }
332
332
  }
333
333
  }
334
- DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
335
- DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, decorators: [{
334
+ DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
335
+ DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, decorators: [{
337
337
  type: Directive,
338
338
  args: [{
339
339
  selector: "[dndDraggable]"
@@ -386,9 +386,9 @@ class DndPlaceholderRefDirective {
386
386
  this.elementRef = elementRef;
387
387
  }
388
388
  }
389
- DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
390
- DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
389
+ DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
390
+ DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
392
392
  type: Directive,
393
393
  args: [{
394
394
  selector: "[dndPlaceholderRef]"
@@ -619,9 +619,9 @@ class DndDropzoneDirective {
619
619
  this.removePlaceholderFromDOM();
620
620
  }
621
621
  }
622
- DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
623
- DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, decorators: [{
622
+ DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
623
+ DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, decorators: [{
625
625
  type: Directive,
626
626
  args: [{
627
627
  selector: "[dndDropzone]"
@@ -663,9 +663,9 @@ class DndHandleDirective {
663
663
  event._dndUsingHandle = true;
664
664
  }
665
665
  }
666
- DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, deps: [{ token: DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
667
- DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, decorators: [{
666
+ DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, deps: [{ token: DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
667
+ DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, decorators: [{
669
669
  type: Directive,
670
670
  args: [{
671
671
  selector: "[dndHandle]"
@@ -683,8 +683,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
683
683
 
684
684
  class DndModule {
685
685
  }
686
- DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
687
- DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
686
+ DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
687
+ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
688
688
  DndDropzoneDirective,
689
689
  DndHandleDirective,
690
690
  DndPlaceholderRefDirective,
@@ -693,10 +693,8 @@ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
693
693
  DndHandleDirective,
694
694
  DndPlaceholderRefDirective,
695
695
  DndDragImageRefDirective] });
696
- DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, imports: [[
697
- CommonModule
698
- ]] });
699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, decorators: [{
696
+ DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, imports: [CommonModule] });
697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, decorators: [{
700
698
  type: NgModule,
701
699
  args: [{
702
700
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-drag-drop.mjs","sources":["../../../projects/dnd/src/lib/dnd-utils.ts","../../../projects/dnd/src/lib/dnd-state.ts","../../../projects/dnd/src/lib/dnd-draggable.directive.ts","../../../projects/dnd/src/lib/dnd-dropzone.directive.ts","../../../projects/dnd/src/lib/dnd-handle.directive.ts","../../../projects/dnd/src/lib/dnd.module.ts","../../../projects/dnd/src/public-api.ts","../../../projects/dnd/src/ngx-drag-drop.ts"],"sourcesContent":["import { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DragDropData {\n data?:any;\n type?:string;\n}\n\nexport interface DndEvent extends DragEvent {\n _dndUsingHandle?:boolean;\n _dndDropzoneActive?:true;\n}\n\nexport type DndDragImageOffsetFunction = ( event:DragEvent, dragImage:Element ) => { x:number, y:number };\n\nexport const DROP_EFFECTS = [ \"move\", \"copy\", \"link\" ] as DropEffect[];\n\nexport const CUSTOM_MIME_TYPE = \"application/x-dnd\";\nexport const JSON_MIME_TYPE = \"application/json\";\nexport const MSIE_MIME_TYPE = \"Text\";\n\nfunction mimeTypeIsCustom( mimeType:string ) {\n\n return mimeType.substr( 0, CUSTOM_MIME_TYPE.length ) === CUSTOM_MIME_TYPE;\n}\n\nexport function getWellKnownMimeType( event:DragEvent ):string | null {\n\n if( event.dataTransfer ) {\n\n const types = event.dataTransfer.types;\n\n // IE 9 workaround.\n if( !types ) {\n\n return MSIE_MIME_TYPE;\n }\n\n for( let i = 0; i < types.length; i++ ) {\n\n if( types[ i ] === MSIE_MIME_TYPE\n || types[ i ] === JSON_MIME_TYPE\n || mimeTypeIsCustom( types[ i ] ) ) {\n\n return types[ i ];\n }\n }\n }\n\n return null;\n}\n\nexport function setDragData( event:DragEvent, data:DragDropData, effectAllowed:EffectAllowed ):void {\n\n // Internet Explorer and Microsoft Edge don't support custom mime types, see design doc:\n // https://github.com/marceljuenemann/angular-drag-and-drop-lists/wiki/Data-Transfer-Design\n const mimeType = CUSTOM_MIME_TYPE + (data.type ? (\"-\" + data.type) : \"\");\n\n const dataString = JSON.stringify( data );\n\n try {\n\n event.dataTransfer?.setData( mimeType, dataString );\n\n }\n catch( e ) {\n\n // Setting a custom MIME type did not work, we are probably in IE or Edge.\n try {\n\n event.dataTransfer?.setData( JSON_MIME_TYPE, dataString );\n\n }\n catch( e ) {\n\n // We are in Internet Explorer and can only use the Text MIME type. Also note that IE\n // does not allow changing the cursor in the dragover event, therefore we have to choose\n // the one we want to display now by setting effectAllowed.\n const effectsAllowed = filterEffects( DROP_EFFECTS, effectAllowed );\n if(event.dataTransfer) {\n event.dataTransfer.effectAllowed = effectsAllowed[ 0 ];\n }\n\n event.dataTransfer?.setData( MSIE_MIME_TYPE, dataString );\n }\n }\n}\n\nexport function getDropData( event:DragEvent, dragIsExternal:boolean ):DragDropData {\n\n // check if the mime type is well known\n const mimeType = getWellKnownMimeType( event );\n\n // drag did not originate from [dndDraggable]\n if( dragIsExternal === true ) {\n\n if( mimeType !== null\n && mimeTypeIsCustom( mimeType ) ) {\n\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n }\n\n if(mimeType !== null) {\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n}\n\nexport function filterEffects( effects:DropEffect[], allowed:EffectAllowed | DropEffect ):DropEffect[] {\n\n if( allowed === \"all\"\n || allowed === \"uninitialized\" ) {\n\n return effects;\n }\n\n return effects.filter( function( effect ) {\n\n return allowed.toLowerCase().indexOf( effect ) !== -1;\n } );\n}\n\nexport function getDirectChildElement( parentElement:Element, childElement:Element ):Element | null {\n\n let directChild:Node = childElement;\n\n while( directChild.parentNode !== parentElement ) {\n\n // reached root node without finding given parent\n if( !directChild.parentNode ) {\n\n return null;\n }\n\n directChild = directChild.parentNode;\n }\n\n return directChild as Element;\n}\n\nexport function shouldPositionPlaceholderBeforeElement( event:DragEvent, element:Element, horizontal:boolean ) {\n\n const bounds = element.getBoundingClientRect();\n\n // If the pointer is in the upper half of the list item element,\n // we position the placeholder before the list item, otherwise after it.\n if( horizontal ) {\n\n return (event.clientX < bounds.left + bounds.width / 2);\n }\n\n return (event.clientY < bounds.top + bounds.height / 2);\n}\n\nexport function calculateDragImageOffset( event:DragEvent, dragImage:Element ):{ x:number, y:number } {\n\n const dragImageComputedStyle = window.getComputedStyle( dragImage );\n const paddingTop = parseFloat( dragImageComputedStyle.paddingTop ) || 0;\n const paddingLeft = parseFloat( dragImageComputedStyle.paddingLeft ) || 0;\n const borderTop = parseFloat( dragImageComputedStyle.borderTopWidth ) || 0;\n const borderLeft = parseFloat( dragImageComputedStyle.borderLeftWidth ) || 0;\n\n return {\n x: event.offsetX + paddingLeft + borderLeft,\n y: event.offsetY + paddingTop + borderTop\n };\n}\n\nexport function setDragImage( event:DragEvent, dragImage:Element, offsetFunction:DndDragImageOffsetFunction ):void {\n\n const offset = offsetFunction( event, dragImage ) || {x: 0, y: 0};\n\n (event.dataTransfer as any).setDragImage( dragImage, offset.x, offset.y );\n}\n","import {\n CUSTOM_MIME_TYPE,\n DROP_EFFECTS,\n filterEffects,\n getWellKnownMimeType,\n JSON_MIME_TYPE,\n MSIE_MIME_TYPE\n} from \"./dnd-utils\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndState {\n isDragging:boolean;\n dropEffect?:DropEffect;\n effectAllowed?:EffectAllowed;\n type?:string;\n}\n\nconst _dndState:DndState = {\n isDragging: false,\n dropEffect: \"none\",\n effectAllowed: \"all\",\n type: undefined\n};\n\nexport function startDrag( event:DragEvent, effectAllowed:EffectAllowed, type:string | undefined ) {\n\n _dndState.isDragging = true;\n _dndState.dropEffect = \"none\";\n _dndState.effectAllowed = effectAllowed;\n _dndState.type = type;\n\n if(event.dataTransfer) {\n\n event.dataTransfer.effectAllowed = effectAllowed;\n }\n}\n\nexport function endDrag() {\n\n _dndState.isDragging = false;\n _dndState.dropEffect = undefined;\n _dndState.effectAllowed = undefined;\n _dndState.type = undefined;\n}\n\nexport function setDropEffect( event:DragEvent, dropEffect:DropEffect ) {\n\n if( _dndState.isDragging === true ) {\n\n _dndState.dropEffect = dropEffect;\n }\n\n if(event.dataTransfer) {\n\n event.dataTransfer.dropEffect = dropEffect;\n }\n}\n\nexport function getDropEffect( event:DragEvent, effectAllowed?:EffectAllowed | DropEffect ):DropEffect {\n\n const dataTransferEffectAllowed:EffectAllowed = (event.dataTransfer) ? event.dataTransfer.effectAllowed as EffectAllowed : \"uninitialized\";\n\n let effects = filterEffects( DROP_EFFECTS, dataTransferEffectAllowed );\n\n if( _dndState.isDragging === true ) {\n\n effects = filterEffects( effects, _dndState.effectAllowed! );\n }\n\n if( effectAllowed ) {\n\n effects = filterEffects( effects, effectAllowed );\n }\n\n // MacOS automatically filters dataTransfer.effectAllowed depending on the modifier keys,\n // therefore the following modifier keys will only affect other operating systems.\n if( effects.length === 0 ) {\n\n return \"none\";\n }\n\n if( event.ctrlKey && effects.indexOf( \"copy\" ) !== -1 ) {\n\n return \"copy\";\n }\n\n if( event.altKey && effects.indexOf( \"link\" ) !== -1 ) {\n\n return \"link\";\n }\n\n return effects[ 0 ] as DropEffect;\n}\n\nexport function getDndType( event:DragEvent ):string | undefined {\n\n if( _dndState.isDragging === true ) {\n\n return _dndState.type;\n }\n\n const mimeType = getWellKnownMimeType( event );\n\n if( mimeType === null ) {\n\n return undefined;\n }\n\n if( mimeType === MSIE_MIME_TYPE\n || mimeType === JSON_MIME_TYPE ) {\n\n return undefined;\n }\n\n return mimeType.substr( CUSTOM_MIME_TYPE.length + 1 ) || undefined;\n}\n\nexport function isExternalDrag():boolean {\n\n return _dndState.isDragging === false;\n}\n\nexport const dndState:Readonly<DndState> = _dndState as Readonly<DndState>;\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport { calculateDragImageOffset, DndDragImageOffsetFunction, DndEvent, setDragData, setDragImage } from \"./dnd-utils\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\nimport { dndState, endDrag, startDrag } from \"./dnd-state\";\nimport { EffectAllowed } from \"./dnd-types\";\n\n@Directive( {\n selector: \"[dndDragImageRef]\"\n} )\nexport class DndDragImageRefDirective {\n\n constructor(@Inject(forwardRef(() => DndDraggableDirective)) parent: DndDraggableDirective, elementRef:ElementRef ) {\n parent.registerDragImage( elementRef );\n }\n}\n\n@Directive( {\n selector: \"[dndDraggable]\"\n} )\nexport class DndDraggableDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDraggable:any;\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"copy\";\n\n @Input()\n dndType?:string;\n\n @Input()\n dndDraggingClass = \"dndDragging\";\n\n @Input()\n dndDraggingSourceClass = \"dndDraggingSource\";\n\n @Input()\n dndDraggableDisabledClass = \"dndDraggableDisabled\";\n\n @Input()\n dndDragImageOffsetFunction:DndDragImageOffsetFunction = calculateDragImageOffset;\n\n @Output()\n readonly dndStart:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrag:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndEnd:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndMoved:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCopied:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndLinked:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCanceled:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n private dndHandle?:DndHandleDirective;\n\n private dndDragImageElementRef?:ElementRef;\n\n private dragImage:Element | undefined;\n\n private isDragStarted:boolean = false;\n\n private readonly dragEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDrag( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.draggable = !value;\n\n if( this.draggable ) {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n else {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDragIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private elementRef:ElementRef,\n private renderer:Renderer2,\n private ngZone:NgZone ) {\n }\n\n ngAfterViewInit():void {\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"drag\", this.dragEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"drag\", this.dragEventHandler );\n if(this.isDragStarted === true) {\n endDrag()\n }\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n onDragStart( event:DndEvent ): boolean {\n\n if( this.draggable === false ) {\n\n return false;\n }\n\n // check if there is dnd handle and if the dnd handle was used to start the drag\n if( typeof this.dndHandle !== \"undefined\"\n && typeof event._dndUsingHandle === \"undefined\" ) {\n\n return false;\n }\n\n // initialize global state\n startDrag( event, this.dndEffectAllowed, this.dndType );\n\n this.isDragStarted = true;\n\n setDragData( event, {data: this.dndDraggable, type: this.dndType}, dndState.effectAllowed! );\n\n this.dragImage = this.determineDragImage();\n\n // set dragging css class prior to setDragImage so styles are applied before\n // TODO breaking change: add class to elementRef rather than drag image which could be another element\n this.renderer.addClass( this.dragImage, this.dndDraggingClass );\n\n // set custom dragimage if present\n // set dragimage if drag is started from dndHandle\n if( typeof this.dndDragImageElementRef !== \"undefined\"\n || typeof event._dndUsingHandle !== \"undefined\" ) {\n\n setDragImage( event, this.dragImage, this.dndDragImageOffsetFunction );\n }\n\n // add dragging source css class on first drag event\n const unregister = this.renderer.listen( this.elementRef.nativeElement, \"drag\", () => {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n unregister();\n } );\n\n this.dndStart.emit( event );\n\n event.stopPropagation();\n return true;\n }\n\n onDrag( event:DragEvent ) {\n\n this.dndDrag.emit( event );\n }\n\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEnd( event:DragEvent ) {\n\n // get drop effect from custom stored state as its not reliable across browsers\n const dropEffect = dndState.dropEffect;\n\n let dropEffectEmitter:EventEmitter<DragEvent>;\n\n switch( dropEffect ) {\n\n case \"copy\":\n dropEffectEmitter = this.dndCopied;\n break;\n\n case \"link\":\n dropEffectEmitter = this.dndLinked;\n break;\n\n case \"move\":\n dropEffectEmitter = this.dndMoved;\n break;\n\n default:\n dropEffectEmitter = this.dndCanceled;\n break;\n }\n\n dropEffectEmitter.emit( event );\n this.dndEnd.emit( event );\n\n // reset global state\n endDrag();\n\n this.isDragStarted = false;\n\n this.renderer.removeClass( this.dragImage, this.dndDraggingClass );\n\n // IE9 special hammering\n window.setTimeout( () => {\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n }, 0 );\n\n event.stopPropagation();\n }\n\n registerDragHandle( handle:DndHandleDirective | undefined ) {\n\n this.dndHandle = handle;\n }\n\n registerDragImage( elementRef:ElementRef | undefined ) {\n\n this.dndDragImageElementRef = elementRef;\n }\n\n private determineDragImage():Element {\n\n // evaluate custom drag image existence\n if( typeof this.dndDragImageElementRef !== \"undefined\" ) {\n\n return this.dndDragImageElementRef.nativeElement as Element;\n }\n else {\n\n return this.elementRef.nativeElement;\n }\n }\n}\n","import {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport {\n DndEvent,\n DragDropData,\n getDirectChildElement,\n getDropData,\n shouldPositionPlaceholderBeforeElement\n} from \"./dnd-utils\";\nimport { getDndType, getDropEffect, isExternalDrag, setDropEffect } from \"./dnd-state\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndDropEvent {\n event:DragEvent;\n dropEffect:DropEffect;\n isExternal:boolean;\n data?:any;\n index?:number;\n type?:any;\n}\n\n@Directive( {\n selector: \"[dndPlaceholderRef]\"\n} )\nexport class DndPlaceholderRefDirective {\n\n constructor( public readonly elementRef:ElementRef ) {\n }\n}\n\n@Directive( {\n selector: \"[dndDropzone]\"\n} )\nexport class DndDropzoneDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDropzone?:string[] | \"\" = \"\";\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"uninitialized\";\n\n @Input()\n dndAllowExternal:boolean = false;\n\n @Input()\n dndHorizontal:boolean = false;\n\n @Input()\n dndDragoverClass:string = \"dndDragover\";\n\n @Input()\n dndDropzoneDisabledClass = \"dndDropzoneDisabled\";\n\n @Output()\n readonly dndDragover:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrop:EventEmitter<DndDropEvent> = new EventEmitter<DndDropEvent>();\n\n @ContentChild( DndPlaceholderRefDirective )\n private readonly dndPlaceholderRef?:DndPlaceholderRefDirective;\n\n private placeholder:Element | null = null;\n\n private disabled:boolean = false;\n\n private readonly dragEnterEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragEnter( event );\n private readonly dragOverEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragOver( event );\n private readonly dragLeaveEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragLeave( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.disabled = !!value;\n\n if( this.disabled ) {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n else {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDropIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private ngZone:NgZone,\n private elementRef:ElementRef,\n private renderer:Renderer2 ) {\n }\n\n ngAfterViewInit():void {\n\n this.placeholder = this.tryGetPlaceholder();\n\n this.removePlaceholderFromDOM();\n\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragleave\", this.dragLeaveEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragleave\", this.dragLeaveEventHandler );\n }\n\n onDragEnter( event:DndEvent ) {\n\n // check if another dropzone is activated\n if( event._dndDropzoneActive === true ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // set as active if the target element is inside this dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n }\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n // allow the dragenter\n event.preventDefault();\n }\n\n onDragOver( event:DragEvent ) {\n // With nested dropzones, we want to ignore this event if a child dropzone\n // has already handled a dragover. Historically, event.stopPropagation() was\n // used to prevent this bubbling, but that prevents any dragovers outside the\n // ngx-drag-drop component, and stops other use cases such as scrolling on drag.\n // Instead, we can check if the event was already prevented by a child and bail early.\n if( event.defaultPrevented ) {\n\n return;\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n this.checkAndUpdatePlaceholderPosition( event );\n\n const dropEffect = getDropEffect( event, this.dndEffectAllowed );\n\n if( dropEffect === \"none\" ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // allow the dragover\n event.preventDefault();\n\n // set the drop effect\n setDropEffect( event, dropEffect );\n\n this.dndDragover.emit( event );\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDragoverClass );\n }\n\n @HostListener( \"drop\", [ \"$event\" ] )\n onDrop( event:DragEvent ) {\n\n try {\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n const data:DragDropData = getDropData( event, isExternalDrag() );\n\n if( this.isDropAllowed( data.type ) === false ) {\n\n return;\n }\n\n // signal custom drop handling\n event.preventDefault();\n\n const dropEffect = getDropEffect( event );\n\n setDropEffect( event, dropEffect );\n\n if( dropEffect === \"none\" ) {\n\n return;\n }\n\n const dropIndex = this.getPlaceholderIndex();\n\n // if for whatever reason the placeholder is not present in the DOM but it should be there\n // we don't allow/emit the drop event since it breaks the contract\n // seems to only happen if drag and drop is executed faster than the DOM updates\n if( dropIndex === -1 ) {\n\n return;\n }\n\n this.dndDrop.emit( {\n event: event,\n dropEffect: dropEffect,\n isExternal: isExternalDrag(),\n data: data.data,\n index: dropIndex,\n type: type,\n } );\n\n event.stopPropagation();\n\n }\n finally {\n\n this.cleanupDragoverState();\n }\n }\n\n onDragLeave( event:DndEvent ) {\n\n // check if still inside this dropzone and not yet handled by another dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n return;\n }\n }\n\n this.cleanupDragoverState();\n\n // cleanup drop effect when leaving dropzone\n setDropEffect( event, \"none\" );\n }\n\n private isDropAllowed( type?:string ):boolean {\n\n // dropzone is disabled -> deny it\n if( this.disabled === true ) {\n\n return false;\n }\n\n // if drag did not start from our directive\n // and external drag sources are not allowed -> deny it\n if( isExternalDrag() === true\n && this.dndAllowExternal === false ) {\n\n return false;\n }\n\n // no filtering by types -> allow it\n if( !this.dndDropzone ) {\n\n return true;\n }\n\n // no type set -> allow it\n if( !type ) {\n\n return true;\n }\n\n if( Array.isArray( this.dndDropzone ) === false ) {\n\n throw new Error( \"dndDropzone: bound value to [dndDropzone] must be an array!\" );\n }\n\n // if dropzone contains type -> allow it\n return this.dndDropzone.indexOf( type ) !== -1;\n }\n\n private tryGetPlaceholder():Element | null {\n\n if( typeof this.dndPlaceholderRef !== \"undefined\" ) {\n\n return this.dndPlaceholderRef.elementRef.nativeElement as Element;\n }\n\n // TODO nasty workaround needed because if ng-container / template is used @ContentChild() or DI will fail because\n // of wrong context see angular bug https://github.com/angular/angular/issues/13517\n return this.elementRef.nativeElement.querySelector( \"[dndPlaceholderRef]\" );\n }\n\n private removePlaceholderFromDOM() {\n\n if( this.placeholder !== null\n && this.placeholder.parentNode !== null ) {\n this.placeholder.parentNode.removeChild( this.placeholder );\n }\n }\n\n private checkAndUpdatePlaceholderPosition( event:DragEvent ):void {\n\n if( this.placeholder === null ) {\n\n return;\n }\n\n // make sure the placeholder is in the DOM\n if( this.placeholder.parentNode !== this.elementRef.nativeElement ) {\n\n this.renderer.appendChild( this.elementRef.nativeElement, this.placeholder );\n }\n\n // update the position if the event originates from a child element of the dropzone\n const directChild = getDirectChildElement( this.elementRef.nativeElement, event.target as Element );\n\n // early exit if no direct child or direct child is placeholder\n if( directChild === null\n || directChild === this.placeholder ) {\n\n return;\n }\n\n const positionPlaceholderBeforeDirectChild = shouldPositionPlaceholderBeforeElement( event, directChild, this.dndHorizontal );\n\n if( positionPlaceholderBeforeDirectChild ) {\n\n // do insert before only if necessary\n if( directChild.previousSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild );\n }\n }\n else {\n\n // do insert after only if necessary\n if( directChild.nextSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild.nextSibling );\n }\n }\n }\n\n private getPlaceholderIndex():number | undefined {\n\n if( this.placeholder === null ) {\n\n return undefined;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n\n return Array.prototype.indexOf.call( element.children, this.placeholder );\n }\n\n private cleanupDragoverState() {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDragoverClass );\n\n this.removePlaceholderFromDOM();\n }\n}\n","import { Directive, HostBinding, HostListener } from \"@angular/core\";\nimport { DndEvent } from \"./dnd-utils\";\nimport { DndDraggableDirective } from \"./dnd-draggable.directive\";\n\n@Directive( {\n selector: \"[dndHandle]\"\n} )\nexport class DndHandleDirective {\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n constructor( parent:DndDraggableDirective ) {\n\n parent.registerDragHandle( this );\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEvent( event:DndEvent ) {\n\n event._dndUsingHandle = true;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DndDraggableDirective, DndDragImageRefDirective } from \"./dnd-draggable.directive\";\nimport { DndDropzoneDirective, DndPlaceholderRefDirective } from \"./dnd-dropzone.directive\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\n\n@NgModule( {\n imports: [\n CommonModule\n ],\n declarations: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ],\n exports: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ]\n} )\nexport class DndModule {\n}\n","/*\n * Public API Surface of dnd\n */\n\nexport * from \"./lib/dnd-draggable.directive\";\nexport * from \"./lib/dnd-dropzone.directive\";\nexport * from \"./lib/dnd-handle.directive\";\nexport * from \"./lib/dnd-types\";\nexport { DndDragImageOffsetFunction } from \"./lib/dnd-utils\";\nexport * from \"./lib/dnd.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-drag-drop.mjs","sources":["../../../projects/dnd/src/lib/dnd-utils.ts","../../../projects/dnd/src/lib/dnd-state.ts","../../../projects/dnd/src/lib/dnd-draggable.directive.ts","../../../projects/dnd/src/lib/dnd-dropzone.directive.ts","../../../projects/dnd/src/lib/dnd-handle.directive.ts","../../../projects/dnd/src/lib/dnd.module.ts","../../../projects/dnd/src/public-api.ts","../../../projects/dnd/src/ngx-drag-drop.ts"],"sourcesContent":["import { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DragDropData {\n data?:any;\n type?:string;\n}\n\nexport interface DndEvent extends DragEvent {\n _dndUsingHandle?:boolean;\n _dndDropzoneActive?:true;\n}\n\nexport type DndDragImageOffsetFunction = ( event:DragEvent, dragImage:Element ) => { x:number, y:number };\n\nexport const DROP_EFFECTS = [ \"move\", \"copy\", \"link\" ] as DropEffect[];\n\nexport const CUSTOM_MIME_TYPE = \"application/x-dnd\";\nexport const JSON_MIME_TYPE = \"application/json\";\nexport const MSIE_MIME_TYPE = \"Text\";\n\nfunction mimeTypeIsCustom( mimeType:string ) {\n\n return mimeType.substr( 0, CUSTOM_MIME_TYPE.length ) === CUSTOM_MIME_TYPE;\n}\n\nexport function getWellKnownMimeType( event:DragEvent ):string | null {\n\n if( event.dataTransfer ) {\n\n const types = event.dataTransfer.types;\n\n // IE 9 workaround.\n if( !types ) {\n\n return MSIE_MIME_TYPE;\n }\n\n for( let i = 0; i < types.length; i++ ) {\n\n if( types[ i ] === MSIE_MIME_TYPE\n || types[ i ] === JSON_MIME_TYPE\n || mimeTypeIsCustom( types[ i ] ) ) {\n\n return types[ i ];\n }\n }\n }\n\n return null;\n}\n\nexport function setDragData( event:DragEvent, data:DragDropData, effectAllowed:EffectAllowed ):void {\n\n // Internet Explorer and Microsoft Edge don't support custom mime types, see design doc:\n // https://github.com/marceljuenemann/angular-drag-and-drop-lists/wiki/Data-Transfer-Design\n const mimeType = CUSTOM_MIME_TYPE + (data.type ? (\"-\" + data.type) : \"\");\n\n const dataString = JSON.stringify( data );\n\n try {\n\n event.dataTransfer?.setData( mimeType, dataString );\n\n }\n catch( e ) {\n\n // Setting a custom MIME type did not work, we are probably in IE or Edge.\n try {\n\n event.dataTransfer?.setData( JSON_MIME_TYPE, dataString );\n\n }\n catch( e ) {\n\n // We are in Internet Explorer and can only use the Text MIME type. Also note that IE\n // does not allow changing the cursor in the dragover event, therefore we have to choose\n // the one we want to display now by setting effectAllowed.\n const effectsAllowed = filterEffects( DROP_EFFECTS, effectAllowed );\n if(event.dataTransfer) {\n event.dataTransfer.effectAllowed = effectsAllowed[ 0 ];\n }\n\n event.dataTransfer?.setData( MSIE_MIME_TYPE, dataString );\n }\n }\n}\n\nexport function getDropData( event:DragEvent, dragIsExternal:boolean ):DragDropData {\n\n // check if the mime type is well known\n const mimeType = getWellKnownMimeType( event );\n\n // drag did not originate from [dndDraggable]\n if( dragIsExternal === true ) {\n\n if( mimeType !== null\n && mimeTypeIsCustom( mimeType ) ) {\n\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n }\n\n if(mimeType !== null) {\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n}\n\nexport function filterEffects( effects:DropEffect[], allowed:EffectAllowed | DropEffect ):DropEffect[] {\n\n if( allowed === \"all\"\n || allowed === \"uninitialized\" ) {\n\n return effects;\n }\n\n return effects.filter( function( effect ) {\n\n return allowed.toLowerCase().indexOf( effect ) !== -1;\n } );\n}\n\nexport function getDirectChildElement( parentElement:Element, childElement:Element ):Element | null {\n\n let directChild:Node = childElement;\n\n while( directChild.parentNode !== parentElement ) {\n\n // reached root node without finding given parent\n if( !directChild.parentNode ) {\n\n return null;\n }\n\n directChild = directChild.parentNode;\n }\n\n return directChild as Element;\n}\n\nexport function shouldPositionPlaceholderBeforeElement( event:DragEvent, element:Element, horizontal:boolean ) {\n\n const bounds = element.getBoundingClientRect();\n\n // If the pointer is in the upper half of the list item element,\n // we position the placeholder before the list item, otherwise after it.\n if( horizontal ) {\n\n return (event.clientX < bounds.left + bounds.width / 2);\n }\n\n return (event.clientY < bounds.top + bounds.height / 2);\n}\n\nexport function calculateDragImageOffset( event:DragEvent, dragImage:Element ):{ x:number, y:number } {\n\n const dragImageComputedStyle = window.getComputedStyle( dragImage );\n const paddingTop = parseFloat( dragImageComputedStyle.paddingTop ) || 0;\n const paddingLeft = parseFloat( dragImageComputedStyle.paddingLeft ) || 0;\n const borderTop = parseFloat( dragImageComputedStyle.borderTopWidth ) || 0;\n const borderLeft = parseFloat( dragImageComputedStyle.borderLeftWidth ) || 0;\n\n return {\n x: event.offsetX + paddingLeft + borderLeft,\n y: event.offsetY + paddingTop + borderTop\n };\n}\n\nexport function setDragImage( event:DragEvent, dragImage:Element, offsetFunction:DndDragImageOffsetFunction ):void {\n\n const offset = offsetFunction( event, dragImage ) || {x: 0, y: 0};\n\n (event.dataTransfer as any).setDragImage( dragImage, offset.x, offset.y );\n}\n","import {\n CUSTOM_MIME_TYPE,\n DROP_EFFECTS,\n filterEffects,\n getWellKnownMimeType,\n JSON_MIME_TYPE,\n MSIE_MIME_TYPE\n} from \"./dnd-utils\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndState {\n isDragging:boolean;\n dropEffect?:DropEffect;\n effectAllowed?:EffectAllowed;\n type?:string;\n}\n\nconst _dndState:DndState = {\n isDragging: false,\n dropEffect: \"none\",\n effectAllowed: \"all\",\n type: undefined\n};\n\nexport function startDrag( event:DragEvent, effectAllowed:EffectAllowed, type:string | undefined ) {\n\n _dndState.isDragging = true;\n _dndState.dropEffect = \"none\";\n _dndState.effectAllowed = effectAllowed;\n _dndState.type = type;\n\n if(event.dataTransfer) {\n\n event.dataTransfer.effectAllowed = effectAllowed;\n }\n}\n\nexport function endDrag() {\n\n _dndState.isDragging = false;\n _dndState.dropEffect = undefined;\n _dndState.effectAllowed = undefined;\n _dndState.type = undefined;\n}\n\nexport function setDropEffect( event:DragEvent, dropEffect:DropEffect ) {\n\n if( _dndState.isDragging === true ) {\n\n _dndState.dropEffect = dropEffect;\n }\n\n if(event.dataTransfer) {\n\n event.dataTransfer.dropEffect = dropEffect;\n }\n}\n\nexport function getDropEffect( event:DragEvent, effectAllowed?:EffectAllowed | DropEffect ):DropEffect {\n\n const dataTransferEffectAllowed:EffectAllowed = (event.dataTransfer) ? event.dataTransfer.effectAllowed as EffectAllowed : \"uninitialized\";\n\n let effects = filterEffects( DROP_EFFECTS, dataTransferEffectAllowed );\n\n if( _dndState.isDragging === true ) {\n\n effects = filterEffects( effects, _dndState.effectAllowed! );\n }\n\n if( effectAllowed ) {\n\n effects = filterEffects( effects, effectAllowed );\n }\n\n // MacOS automatically filters dataTransfer.effectAllowed depending on the modifier keys,\n // therefore the following modifier keys will only affect other operating systems.\n if( effects.length === 0 ) {\n\n return \"none\";\n }\n\n if( event.ctrlKey && effects.indexOf( \"copy\" ) !== -1 ) {\n\n return \"copy\";\n }\n\n if( event.altKey && effects.indexOf( \"link\" ) !== -1 ) {\n\n return \"link\";\n }\n\n return effects[ 0 ] as DropEffect;\n}\n\nexport function getDndType( event:DragEvent ):string | undefined {\n\n if( _dndState.isDragging === true ) {\n\n return _dndState.type;\n }\n\n const mimeType = getWellKnownMimeType( event );\n\n if( mimeType === null ) {\n\n return undefined;\n }\n\n if( mimeType === MSIE_MIME_TYPE\n || mimeType === JSON_MIME_TYPE ) {\n\n return undefined;\n }\n\n return mimeType.substr( CUSTOM_MIME_TYPE.length + 1 ) || undefined;\n}\n\nexport function isExternalDrag():boolean {\n\n return _dndState.isDragging === false;\n}\n\nexport const dndState:Readonly<DndState> = _dndState as Readonly<DndState>;\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport { calculateDragImageOffset, DndDragImageOffsetFunction, DndEvent, setDragData, setDragImage } from \"./dnd-utils\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\nimport { dndState, endDrag, startDrag } from \"./dnd-state\";\nimport { EffectAllowed } from \"./dnd-types\";\n\n@Directive( {\n selector: \"[dndDragImageRef]\"\n} )\nexport class DndDragImageRefDirective {\n\n constructor(@Inject(forwardRef(() => DndDraggableDirective)) parent: DndDraggableDirective, elementRef:ElementRef ) {\n parent.registerDragImage( elementRef );\n }\n}\n\n@Directive( {\n selector: \"[dndDraggable]\"\n} )\nexport class DndDraggableDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDraggable:any;\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"copy\";\n\n @Input()\n dndType?:string;\n\n @Input()\n dndDraggingClass = \"dndDragging\";\n\n @Input()\n dndDraggingSourceClass = \"dndDraggingSource\";\n\n @Input()\n dndDraggableDisabledClass = \"dndDraggableDisabled\";\n\n @Input()\n dndDragImageOffsetFunction:DndDragImageOffsetFunction = calculateDragImageOffset;\n\n @Output()\n readonly dndStart:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrag:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndEnd:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndMoved:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCopied:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndLinked:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCanceled:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n private dndHandle?:DndHandleDirective;\n\n private dndDragImageElementRef?:ElementRef;\n\n private dragImage:Element | undefined;\n\n private isDragStarted:boolean = false;\n\n private readonly dragEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDrag( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.draggable = !value;\n\n if( this.draggable ) {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n else {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDragIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private elementRef:ElementRef,\n private renderer:Renderer2,\n private ngZone:NgZone ) {\n }\n\n ngAfterViewInit():void {\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"drag\", this.dragEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"drag\", this.dragEventHandler );\n if(this.isDragStarted === true) {\n endDrag()\n }\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n onDragStart( event:DndEvent ): boolean {\n\n if( this.draggable === false ) {\n\n return false;\n }\n\n // check if there is dnd handle and if the dnd handle was used to start the drag\n if( typeof this.dndHandle !== \"undefined\"\n && typeof event._dndUsingHandle === \"undefined\" ) {\n\n return false;\n }\n\n // initialize global state\n startDrag( event, this.dndEffectAllowed, this.dndType );\n\n this.isDragStarted = true;\n\n setDragData( event, {data: this.dndDraggable, type: this.dndType}, dndState.effectAllowed! );\n\n this.dragImage = this.determineDragImage();\n\n // set dragging css class prior to setDragImage so styles are applied before\n // TODO breaking change: add class to elementRef rather than drag image which could be another element\n this.renderer.addClass( this.dragImage, this.dndDraggingClass );\n\n // set custom dragimage if present\n // set dragimage if drag is started from dndHandle\n if( typeof this.dndDragImageElementRef !== \"undefined\"\n || typeof event._dndUsingHandle !== \"undefined\" ) {\n\n setDragImage( event, this.dragImage, this.dndDragImageOffsetFunction );\n }\n\n // add dragging source css class on first drag event\n const unregister = this.renderer.listen( this.elementRef.nativeElement, \"drag\", () => {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n unregister();\n } );\n\n this.dndStart.emit( event );\n\n event.stopPropagation();\n return true;\n }\n\n onDrag( event:DragEvent ) {\n\n this.dndDrag.emit( event );\n }\n\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEnd( event:DragEvent ) {\n\n // get drop effect from custom stored state as its not reliable across browsers\n const dropEffect = dndState.dropEffect;\n\n let dropEffectEmitter:EventEmitter<DragEvent>;\n\n switch( dropEffect ) {\n\n case \"copy\":\n dropEffectEmitter = this.dndCopied;\n break;\n\n case \"link\":\n dropEffectEmitter = this.dndLinked;\n break;\n\n case \"move\":\n dropEffectEmitter = this.dndMoved;\n break;\n\n default:\n dropEffectEmitter = this.dndCanceled;\n break;\n }\n\n dropEffectEmitter.emit( event );\n this.dndEnd.emit( event );\n\n // reset global state\n endDrag();\n\n this.isDragStarted = false;\n\n this.renderer.removeClass( this.dragImage, this.dndDraggingClass );\n\n // IE9 special hammering\n window.setTimeout( () => {\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n }, 0 );\n\n event.stopPropagation();\n }\n\n registerDragHandle( handle:DndHandleDirective | undefined ) {\n\n this.dndHandle = handle;\n }\n\n registerDragImage( elementRef:ElementRef | undefined ) {\n\n this.dndDragImageElementRef = elementRef;\n }\n\n private determineDragImage():Element {\n\n // evaluate custom drag image existence\n if( typeof this.dndDragImageElementRef !== \"undefined\" ) {\n\n return this.dndDragImageElementRef.nativeElement as Element;\n }\n else {\n\n return this.elementRef.nativeElement;\n }\n }\n}\n","import {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport {\n DndEvent,\n DragDropData,\n getDirectChildElement,\n getDropData,\n shouldPositionPlaceholderBeforeElement\n} from \"./dnd-utils\";\nimport { getDndType, getDropEffect, isExternalDrag, setDropEffect } from \"./dnd-state\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndDropEvent {\n event:DragEvent;\n dropEffect:DropEffect;\n isExternal:boolean;\n data?:any;\n index?:number;\n type?:any;\n}\n\n@Directive( {\n selector: \"[dndPlaceholderRef]\"\n} )\nexport class DndPlaceholderRefDirective {\n\n constructor( public readonly elementRef:ElementRef ) {\n }\n}\n\n@Directive( {\n selector: \"[dndDropzone]\"\n} )\nexport class DndDropzoneDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDropzone?:string[] | \"\" = \"\";\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"uninitialized\";\n\n @Input()\n dndAllowExternal:boolean = false;\n\n @Input()\n dndHorizontal:boolean = false;\n\n @Input()\n dndDragoverClass:string = \"dndDragover\";\n\n @Input()\n dndDropzoneDisabledClass = \"dndDropzoneDisabled\";\n\n @Output()\n readonly dndDragover:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrop:EventEmitter<DndDropEvent> = new EventEmitter<DndDropEvent>();\n\n @ContentChild( DndPlaceholderRefDirective )\n private readonly dndPlaceholderRef?:DndPlaceholderRefDirective;\n\n private placeholder:Element | null = null;\n\n private disabled:boolean = false;\n\n private readonly dragEnterEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragEnter( event );\n private readonly dragOverEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragOver( event );\n private readonly dragLeaveEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragLeave( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.disabled = !!value;\n\n if( this.disabled ) {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n else {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDropIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private ngZone:NgZone,\n private elementRef:ElementRef,\n private renderer:Renderer2 ) {\n }\n\n ngAfterViewInit():void {\n\n this.placeholder = this.tryGetPlaceholder();\n\n this.removePlaceholderFromDOM();\n\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragleave\", this.dragLeaveEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragleave\", this.dragLeaveEventHandler );\n }\n\n onDragEnter( event:DndEvent ) {\n\n // check if another dropzone is activated\n if( event._dndDropzoneActive === true ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // set as active if the target element is inside this dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n }\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n // allow the dragenter\n event.preventDefault();\n }\n\n onDragOver( event:DragEvent ) {\n // With nested dropzones, we want to ignore this event if a child dropzone\n // has already handled a dragover. Historically, event.stopPropagation() was\n // used to prevent this bubbling, but that prevents any dragovers outside the\n // ngx-drag-drop component, and stops other use cases such as scrolling on drag.\n // Instead, we can check if the event was already prevented by a child and bail early.\n if( event.defaultPrevented ) {\n\n return;\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n this.checkAndUpdatePlaceholderPosition( event );\n\n const dropEffect = getDropEffect( event, this.dndEffectAllowed );\n\n if( dropEffect === \"none\" ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // allow the dragover\n event.preventDefault();\n\n // set the drop effect\n setDropEffect( event, dropEffect );\n\n this.dndDragover.emit( event );\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDragoverClass );\n }\n\n @HostListener( \"drop\", [ \"$event\" ] )\n onDrop( event:DragEvent ) {\n\n try {\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n const data:DragDropData = getDropData( event, isExternalDrag() );\n\n if( this.isDropAllowed( data.type ) === false ) {\n\n return;\n }\n\n // signal custom drop handling\n event.preventDefault();\n\n const dropEffect = getDropEffect( event );\n\n setDropEffect( event, dropEffect );\n\n if( dropEffect === \"none\" ) {\n\n return;\n }\n\n const dropIndex = this.getPlaceholderIndex();\n\n // if for whatever reason the placeholder is not present in the DOM but it should be there\n // we don't allow/emit the drop event since it breaks the contract\n // seems to only happen if drag and drop is executed faster than the DOM updates\n if( dropIndex === -1 ) {\n\n return;\n }\n\n this.dndDrop.emit( {\n event: event,\n dropEffect: dropEffect,\n isExternal: isExternalDrag(),\n data: data.data,\n index: dropIndex,\n type: type,\n } );\n\n event.stopPropagation();\n\n }\n finally {\n\n this.cleanupDragoverState();\n }\n }\n\n onDragLeave( event:DndEvent ) {\n\n // check if still inside this dropzone and not yet handled by another dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n return;\n }\n }\n\n this.cleanupDragoverState();\n\n // cleanup drop effect when leaving dropzone\n setDropEffect( event, \"none\" );\n }\n\n private isDropAllowed( type?:string ):boolean {\n\n // dropzone is disabled -> deny it\n if( this.disabled === true ) {\n\n return false;\n }\n\n // if drag did not start from our directive\n // and external drag sources are not allowed -> deny it\n if( isExternalDrag() === true\n && this.dndAllowExternal === false ) {\n\n return false;\n }\n\n // no filtering by types -> allow it\n if( !this.dndDropzone ) {\n\n return true;\n }\n\n // no type set -> allow it\n if( !type ) {\n\n return true;\n }\n\n if( Array.isArray( this.dndDropzone ) === false ) {\n\n throw new Error( \"dndDropzone: bound value to [dndDropzone] must be an array!\" );\n }\n\n // if dropzone contains type -> allow it\n return this.dndDropzone.indexOf( type ) !== -1;\n }\n\n private tryGetPlaceholder():Element | null {\n\n if( typeof this.dndPlaceholderRef !== \"undefined\" ) {\n\n return this.dndPlaceholderRef.elementRef.nativeElement as Element;\n }\n\n // TODO nasty workaround needed because if ng-container / template is used @ContentChild() or DI will fail because\n // of wrong context see angular bug https://github.com/angular/angular/issues/13517\n return this.elementRef.nativeElement.querySelector( \"[dndPlaceholderRef]\" );\n }\n\n private removePlaceholderFromDOM() {\n\n if( this.placeholder !== null\n && this.placeholder.parentNode !== null ) {\n this.placeholder.parentNode.removeChild( this.placeholder );\n }\n }\n\n private checkAndUpdatePlaceholderPosition( event:DragEvent ):void {\n\n if( this.placeholder === null ) {\n\n return;\n }\n\n // make sure the placeholder is in the DOM\n if( this.placeholder.parentNode !== this.elementRef.nativeElement ) {\n\n this.renderer.appendChild( this.elementRef.nativeElement, this.placeholder );\n }\n\n // update the position if the event originates from a child element of the dropzone\n const directChild = getDirectChildElement( this.elementRef.nativeElement, event.target as Element );\n\n // early exit if no direct child or direct child is placeholder\n if( directChild === null\n || directChild === this.placeholder ) {\n\n return;\n }\n\n const positionPlaceholderBeforeDirectChild = shouldPositionPlaceholderBeforeElement( event, directChild, this.dndHorizontal );\n\n if( positionPlaceholderBeforeDirectChild ) {\n\n // do insert before only if necessary\n if( directChild.previousSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild );\n }\n }\n else {\n\n // do insert after only if necessary\n if( directChild.nextSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild.nextSibling );\n }\n }\n }\n\n private getPlaceholderIndex():number | undefined {\n\n if( this.placeholder === null ) {\n\n return undefined;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n\n return Array.prototype.indexOf.call( element.children, this.placeholder );\n }\n\n private cleanupDragoverState() {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDragoverClass );\n\n this.removePlaceholderFromDOM();\n }\n}\n","import { Directive, HostBinding, HostListener } from \"@angular/core\";\nimport { DndEvent } from \"./dnd-utils\";\nimport { DndDraggableDirective } from \"./dnd-draggable.directive\";\n\n@Directive( {\n selector: \"[dndHandle]\"\n} )\nexport class DndHandleDirective {\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n constructor( parent:DndDraggableDirective ) {\n\n parent.registerDragHandle( this );\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEvent( event:DndEvent ) {\n\n event._dndUsingHandle = true;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DndDraggableDirective, DndDragImageRefDirective } from \"./dnd-draggable.directive\";\nimport { DndDropzoneDirective, DndPlaceholderRefDirective } from \"./dnd-dropzone.directive\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\n\n@NgModule( {\n imports: [\n CommonModule\n ],\n declarations: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ],\n exports: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ]\n} )\nexport class DndModule {\n}\n","/*\n * Public API Surface of dnd\n */\n\nexport * from \"./lib/dnd-draggable.directive\";\nexport * from \"./lib/dnd-dropzone.directive\";\nexport * from \"./lib/dnd-handle.directive\";\nexport * from \"./lib/dnd-types\";\nexport { DndDragImageOffsetFunction } from \"./lib/dnd-utils\";\nexport * from \"./lib/dnd.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DndDraggableDirective"],"mappings":"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"}
@@ -191,9 +191,9 @@ class DndDragImageRefDirective {
191
191
  parent.registerDragImage(elementRef);
192
192
  }
193
193
  }
194
- DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
195
- DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
194
+ DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: forwardRef(() => DndDraggableDirective) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
195
+ DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
197
197
  type: Directive,
198
198
  args: [{
199
199
  selector: "[dndDragImageRef]"
@@ -327,9 +327,9 @@ class DndDraggableDirective {
327
327
  }
328
328
  }
329
329
  }
330
- DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
331
- DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDraggableDirective, decorators: [{
330
+ DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
331
+ DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDraggableDirective, decorators: [{
333
333
  type: Directive,
334
334
  args: [{
335
335
  selector: "[dndDraggable]"
@@ -382,9 +382,9 @@ class DndPlaceholderRefDirective {
382
382
  this.elementRef = elementRef;
383
383
  }
384
384
  }
385
- DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
386
- DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
385
+ DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
386
+ DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
388
388
  type: Directive,
389
389
  args: [{
390
390
  selector: "[dndPlaceholderRef]"
@@ -615,9 +615,9 @@ class DndDropzoneDirective {
615
615
  this.removePlaceholderFromDOM();
616
616
  }
617
617
  }
618
- DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
619
- DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndDropzoneDirective, decorators: [{
618
+ DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
619
+ DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndDropzoneDirective, selector: "[dndDropzone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndDropzoneDirective, decorators: [{
621
621
  type: Directive,
622
622
  args: [{
623
623
  selector: "[dndDropzone]"
@@ -659,9 +659,9 @@ class DndHandleDirective {
659
659
  event._dndUsingHandle = true;
660
660
  }
661
661
  }
662
- DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, deps: [{ token: DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
663
- DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
664
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndHandleDirective, decorators: [{
662
+ DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, deps: [{ token: DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
663
+ DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndHandleDirective, decorators: [{
665
665
  type: Directive,
666
666
  args: [{
667
667
  selector: "[dndHandle]"
@@ -679,8 +679,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
679
679
 
680
680
  class DndModule {
681
681
  }
682
- DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
683
- DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
682
+ DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
683
+ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
684
684
  DndDropzoneDirective,
685
685
  DndHandleDirective,
686
686
  DndPlaceholderRefDirective,
@@ -689,10 +689,8 @@ DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
689
689
  DndHandleDirective,
690
690
  DndPlaceholderRefDirective,
691
691
  DndDragImageRefDirective] });
692
- DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, imports: [[
693
- CommonModule
694
- ]] });
695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DndModule, decorators: [{
692
+ DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, imports: [CommonModule] });
693
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DndModule, decorators: [{
696
694
  type: NgModule,
697
695
  args: [{
698
696
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-drag-drop.mjs","sources":["../../../projects/dnd/src/lib/dnd-utils.ts","../../../projects/dnd/src/lib/dnd-state.ts","../../../projects/dnd/src/lib/dnd-draggable.directive.ts","../../../projects/dnd/src/lib/dnd-dropzone.directive.ts","../../../projects/dnd/src/lib/dnd-handle.directive.ts","../../../projects/dnd/src/lib/dnd.module.ts","../../../projects/dnd/src/public-api.ts","../../../projects/dnd/src/ngx-drag-drop.ts"],"sourcesContent":["import { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DragDropData {\n data?:any;\n type?:string;\n}\n\nexport interface DndEvent extends DragEvent {\n _dndUsingHandle?:boolean;\n _dndDropzoneActive?:true;\n}\n\nexport type DndDragImageOffsetFunction = ( event:DragEvent, dragImage:Element ) => { x:number, y:number };\n\nexport const DROP_EFFECTS = [ \"move\", \"copy\", \"link\" ] as DropEffect[];\n\nexport const CUSTOM_MIME_TYPE = \"application/x-dnd\";\nexport const JSON_MIME_TYPE = \"application/json\";\nexport const MSIE_MIME_TYPE = \"Text\";\n\nfunction mimeTypeIsCustom( mimeType:string ) {\n\n return mimeType.substr( 0, CUSTOM_MIME_TYPE.length ) === CUSTOM_MIME_TYPE;\n}\n\nexport function getWellKnownMimeType( event:DragEvent ):string | null {\n\n if( event.dataTransfer ) {\n\n const types = event.dataTransfer.types;\n\n // IE 9 workaround.\n if( !types ) {\n\n return MSIE_MIME_TYPE;\n }\n\n for( let i = 0; i < types.length; i++ ) {\n\n if( types[ i ] === MSIE_MIME_TYPE\n || types[ i ] === JSON_MIME_TYPE\n || mimeTypeIsCustom( types[ i ] ) ) {\n\n return types[ i ];\n }\n }\n }\n\n return null;\n}\n\nexport function setDragData( event:DragEvent, data:DragDropData, effectAllowed:EffectAllowed ):void {\n\n // Internet Explorer and Microsoft Edge don't support custom mime types, see design doc:\n // https://github.com/marceljuenemann/angular-drag-and-drop-lists/wiki/Data-Transfer-Design\n const mimeType = CUSTOM_MIME_TYPE + (data.type ? (\"-\" + data.type) : \"\");\n\n const dataString = JSON.stringify( data );\n\n try {\n\n event.dataTransfer?.setData( mimeType, dataString );\n\n }\n catch( e ) {\n\n // Setting a custom MIME type did not work, we are probably in IE or Edge.\n try {\n\n event.dataTransfer?.setData( JSON_MIME_TYPE, dataString );\n\n }\n catch( e ) {\n\n // We are in Internet Explorer and can only use the Text MIME type. Also note that IE\n // does not allow changing the cursor in the dragover event, therefore we have to choose\n // the one we want to display now by setting effectAllowed.\n const effectsAllowed = filterEffects( DROP_EFFECTS, effectAllowed );\n if(event.dataTransfer) {\n event.dataTransfer.effectAllowed = effectsAllowed[ 0 ];\n }\n\n event.dataTransfer?.setData( MSIE_MIME_TYPE, dataString );\n }\n }\n}\n\nexport function getDropData( event:DragEvent, dragIsExternal:boolean ):DragDropData {\n\n // check if the mime type is well known\n const mimeType = getWellKnownMimeType( event );\n\n // drag did not originate from [dndDraggable]\n if( dragIsExternal === true ) {\n\n if( mimeType !== null\n && mimeTypeIsCustom( mimeType ) ) {\n\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n }\n\n if(mimeType !== null) {\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n}\n\nexport function filterEffects( effects:DropEffect[], allowed:EffectAllowed | DropEffect ):DropEffect[] {\n\n if( allowed === \"all\"\n || allowed === \"uninitialized\" ) {\n\n return effects;\n }\n\n return effects.filter( function( effect ) {\n\n return allowed.toLowerCase().indexOf( effect ) !== -1;\n } );\n}\n\nexport function getDirectChildElement( parentElement:Element, childElement:Element ):Element | null {\n\n let directChild:Node = childElement;\n\n while( directChild.parentNode !== parentElement ) {\n\n // reached root node without finding given parent\n if( !directChild.parentNode ) {\n\n return null;\n }\n\n directChild = directChild.parentNode;\n }\n\n return directChild as Element;\n}\n\nexport function shouldPositionPlaceholderBeforeElement( event:DragEvent, element:Element, horizontal:boolean ) {\n\n const bounds = element.getBoundingClientRect();\n\n // If the pointer is in the upper half of the list item element,\n // we position the placeholder before the list item, otherwise after it.\n if( horizontal ) {\n\n return (event.clientX < bounds.left + bounds.width / 2);\n }\n\n return (event.clientY < bounds.top + bounds.height / 2);\n}\n\nexport function calculateDragImageOffset( event:DragEvent, dragImage:Element ):{ x:number, y:number } {\n\n const dragImageComputedStyle = window.getComputedStyle( dragImage );\n const paddingTop = parseFloat( dragImageComputedStyle.paddingTop ) || 0;\n const paddingLeft = parseFloat( dragImageComputedStyle.paddingLeft ) || 0;\n const borderTop = parseFloat( dragImageComputedStyle.borderTopWidth ) || 0;\n const borderLeft = parseFloat( dragImageComputedStyle.borderLeftWidth ) || 0;\n\n return {\n x: event.offsetX + paddingLeft + borderLeft,\n y: event.offsetY + paddingTop + borderTop\n };\n}\n\nexport function setDragImage( event:DragEvent, dragImage:Element, offsetFunction:DndDragImageOffsetFunction ):void {\n\n const offset = offsetFunction( event, dragImage ) || {x: 0, y: 0};\n\n (event.dataTransfer as any).setDragImage( dragImage, offset.x, offset.y );\n}\n","import {\n CUSTOM_MIME_TYPE,\n DROP_EFFECTS,\n filterEffects,\n getWellKnownMimeType,\n JSON_MIME_TYPE,\n MSIE_MIME_TYPE\n} from \"./dnd-utils\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndState {\n isDragging:boolean;\n dropEffect?:DropEffect;\n effectAllowed?:EffectAllowed;\n type?:string;\n}\n\nconst _dndState:DndState = {\n isDragging: false,\n dropEffect: \"none\",\n effectAllowed: \"all\",\n type: undefined\n};\n\nexport function startDrag( event:DragEvent, effectAllowed:EffectAllowed, type:string | undefined ) {\n\n _dndState.isDragging = true;\n _dndState.dropEffect = \"none\";\n _dndState.effectAllowed = effectAllowed;\n _dndState.type = type;\n\n if(event.dataTransfer) {\n\n event.dataTransfer.effectAllowed = effectAllowed;\n }\n}\n\nexport function endDrag() {\n\n _dndState.isDragging = false;\n _dndState.dropEffect = undefined;\n _dndState.effectAllowed = undefined;\n _dndState.type = undefined;\n}\n\nexport function setDropEffect( event:DragEvent, dropEffect:DropEffect ) {\n\n if( _dndState.isDragging === true ) {\n\n _dndState.dropEffect = dropEffect;\n }\n\n if(event.dataTransfer) {\n\n event.dataTransfer.dropEffect = dropEffect;\n }\n}\n\nexport function getDropEffect( event:DragEvent, effectAllowed?:EffectAllowed | DropEffect ):DropEffect {\n\n const dataTransferEffectAllowed:EffectAllowed = (event.dataTransfer) ? event.dataTransfer.effectAllowed as EffectAllowed : \"uninitialized\";\n\n let effects = filterEffects( DROP_EFFECTS, dataTransferEffectAllowed );\n\n if( _dndState.isDragging === true ) {\n\n effects = filterEffects( effects, _dndState.effectAllowed! );\n }\n\n if( effectAllowed ) {\n\n effects = filterEffects( effects, effectAllowed );\n }\n\n // MacOS automatically filters dataTransfer.effectAllowed depending on the modifier keys,\n // therefore the following modifier keys will only affect other operating systems.\n if( effects.length === 0 ) {\n\n return \"none\";\n }\n\n if( event.ctrlKey && effects.indexOf( \"copy\" ) !== -1 ) {\n\n return \"copy\";\n }\n\n if( event.altKey && effects.indexOf( \"link\" ) !== -1 ) {\n\n return \"link\";\n }\n\n return effects[ 0 ] as DropEffect;\n}\n\nexport function getDndType( event:DragEvent ):string | undefined {\n\n if( _dndState.isDragging === true ) {\n\n return _dndState.type;\n }\n\n const mimeType = getWellKnownMimeType( event );\n\n if( mimeType === null ) {\n\n return undefined;\n }\n\n if( mimeType === MSIE_MIME_TYPE\n || mimeType === JSON_MIME_TYPE ) {\n\n return undefined;\n }\n\n return mimeType.substr( CUSTOM_MIME_TYPE.length + 1 ) || undefined;\n}\n\nexport function isExternalDrag():boolean {\n\n return _dndState.isDragging === false;\n}\n\nexport const dndState:Readonly<DndState> = _dndState as Readonly<DndState>;\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport { calculateDragImageOffset, DndDragImageOffsetFunction, DndEvent, setDragData, setDragImage } from \"./dnd-utils\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\nimport { dndState, endDrag, startDrag } from \"./dnd-state\";\nimport { EffectAllowed } from \"./dnd-types\";\n\n@Directive( {\n selector: \"[dndDragImageRef]\"\n} )\nexport class DndDragImageRefDirective {\n\n constructor(@Inject(forwardRef(() => DndDraggableDirective)) parent: DndDraggableDirective, elementRef:ElementRef ) {\n parent.registerDragImage( elementRef );\n }\n}\n\n@Directive( {\n selector: \"[dndDraggable]\"\n} )\nexport class DndDraggableDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDraggable:any;\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"copy\";\n\n @Input()\n dndType?:string;\n\n @Input()\n dndDraggingClass = \"dndDragging\";\n\n @Input()\n dndDraggingSourceClass = \"dndDraggingSource\";\n\n @Input()\n dndDraggableDisabledClass = \"dndDraggableDisabled\";\n\n @Input()\n dndDragImageOffsetFunction:DndDragImageOffsetFunction = calculateDragImageOffset;\n\n @Output()\n readonly dndStart:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrag:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndEnd:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndMoved:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCopied:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndLinked:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCanceled:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n private dndHandle?:DndHandleDirective;\n\n private dndDragImageElementRef?:ElementRef;\n\n private dragImage:Element | undefined;\n\n private isDragStarted:boolean = false;\n\n private readonly dragEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDrag( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.draggable = !value;\n\n if( this.draggable ) {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n else {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDragIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private elementRef:ElementRef,\n private renderer:Renderer2,\n private ngZone:NgZone ) {\n }\n\n ngAfterViewInit():void {\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"drag\", this.dragEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"drag\", this.dragEventHandler );\n if(this.isDragStarted === true) {\n endDrag()\n }\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n onDragStart( event:DndEvent ): boolean {\n\n if( this.draggable === false ) {\n\n return false;\n }\n\n // check if there is dnd handle and if the dnd handle was used to start the drag\n if( typeof this.dndHandle !== \"undefined\"\n && typeof event._dndUsingHandle === \"undefined\" ) {\n\n return false;\n }\n\n // initialize global state\n startDrag( event, this.dndEffectAllowed, this.dndType );\n\n this.isDragStarted = true;\n\n setDragData( event, {data: this.dndDraggable, type: this.dndType}, dndState.effectAllowed! );\n\n this.dragImage = this.determineDragImage();\n\n // set dragging css class prior to setDragImage so styles are applied before\n // TODO breaking change: add class to elementRef rather than drag image which could be another element\n this.renderer.addClass( this.dragImage, this.dndDraggingClass );\n\n // set custom dragimage if present\n // set dragimage if drag is started from dndHandle\n if( typeof this.dndDragImageElementRef !== \"undefined\"\n || typeof event._dndUsingHandle !== \"undefined\" ) {\n\n setDragImage( event, this.dragImage, this.dndDragImageOffsetFunction );\n }\n\n // add dragging source css class on first drag event\n const unregister = this.renderer.listen( this.elementRef.nativeElement, \"drag\", () => {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n unregister();\n } );\n\n this.dndStart.emit( event );\n\n event.stopPropagation();\n return true;\n }\n\n onDrag( event:DragEvent ) {\n\n this.dndDrag.emit( event );\n }\n\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEnd( event:DragEvent ) {\n\n // get drop effect from custom stored state as its not reliable across browsers\n const dropEffect = dndState.dropEffect;\n\n let dropEffectEmitter:EventEmitter<DragEvent>;\n\n switch( dropEffect ) {\n\n case \"copy\":\n dropEffectEmitter = this.dndCopied;\n break;\n\n case \"link\":\n dropEffectEmitter = this.dndLinked;\n break;\n\n case \"move\":\n dropEffectEmitter = this.dndMoved;\n break;\n\n default:\n dropEffectEmitter = this.dndCanceled;\n break;\n }\n\n dropEffectEmitter.emit( event );\n this.dndEnd.emit( event );\n\n // reset global state\n endDrag();\n\n this.isDragStarted = false;\n\n this.renderer.removeClass( this.dragImage, this.dndDraggingClass );\n\n // IE9 special hammering\n window.setTimeout( () => {\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n }, 0 );\n\n event.stopPropagation();\n }\n\n registerDragHandle( handle:DndHandleDirective | undefined ) {\n\n this.dndHandle = handle;\n }\n\n registerDragImage( elementRef:ElementRef | undefined ) {\n\n this.dndDragImageElementRef = elementRef;\n }\n\n private determineDragImage():Element {\n\n // evaluate custom drag image existence\n if( typeof this.dndDragImageElementRef !== \"undefined\" ) {\n\n return this.dndDragImageElementRef.nativeElement as Element;\n }\n else {\n\n return this.elementRef.nativeElement;\n }\n }\n}\n","import {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport {\n DndEvent,\n DragDropData,\n getDirectChildElement,\n getDropData,\n shouldPositionPlaceholderBeforeElement\n} from \"./dnd-utils\";\nimport { getDndType, getDropEffect, isExternalDrag, setDropEffect } from \"./dnd-state\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndDropEvent {\n event:DragEvent;\n dropEffect:DropEffect;\n isExternal:boolean;\n data?:any;\n index?:number;\n type?:any;\n}\n\n@Directive( {\n selector: \"[dndPlaceholderRef]\"\n} )\nexport class DndPlaceholderRefDirective {\n\n constructor( public readonly elementRef:ElementRef ) {\n }\n}\n\n@Directive( {\n selector: \"[dndDropzone]\"\n} )\nexport class DndDropzoneDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDropzone?:string[] | \"\" = \"\";\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"uninitialized\";\n\n @Input()\n dndAllowExternal:boolean = false;\n\n @Input()\n dndHorizontal:boolean = false;\n\n @Input()\n dndDragoverClass:string = \"dndDragover\";\n\n @Input()\n dndDropzoneDisabledClass = \"dndDropzoneDisabled\";\n\n @Output()\n readonly dndDragover:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrop:EventEmitter<DndDropEvent> = new EventEmitter<DndDropEvent>();\n\n @ContentChild( DndPlaceholderRefDirective )\n private readonly dndPlaceholderRef?:DndPlaceholderRefDirective;\n\n private placeholder:Element | null = null;\n\n private disabled:boolean = false;\n\n private readonly dragEnterEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragEnter( event );\n private readonly dragOverEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragOver( event );\n private readonly dragLeaveEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragLeave( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.disabled = !!value;\n\n if( this.disabled ) {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n else {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDropIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private ngZone:NgZone,\n private elementRef:ElementRef,\n private renderer:Renderer2 ) {\n }\n\n ngAfterViewInit():void {\n\n this.placeholder = this.tryGetPlaceholder();\n\n this.removePlaceholderFromDOM();\n\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragleave\", this.dragLeaveEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragleave\", this.dragLeaveEventHandler );\n }\n\n onDragEnter( event:DndEvent ) {\n\n // check if another dropzone is activated\n if( event._dndDropzoneActive === true ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // set as active if the target element is inside this dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n }\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n // allow the dragenter\n event.preventDefault();\n }\n\n onDragOver( event:DragEvent ) {\n // With nested dropzones, we want to ignore this event if a child dropzone\n // has already handled a dragover. Historically, event.stopPropagation() was\n // used to prevent this bubbling, but that prevents any dragovers outside the\n // ngx-drag-drop component, and stops other use cases such as scrolling on drag.\n // Instead, we can check if the event was already prevented by a child and bail early.\n if( event.defaultPrevented ) {\n\n return;\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n this.checkAndUpdatePlaceholderPosition( event );\n\n const dropEffect = getDropEffect( event, this.dndEffectAllowed );\n\n if( dropEffect === \"none\" ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // allow the dragover\n event.preventDefault();\n\n // set the drop effect\n setDropEffect( event, dropEffect );\n\n this.dndDragover.emit( event );\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDragoverClass );\n }\n\n @HostListener( \"drop\", [ \"$event\" ] )\n onDrop( event:DragEvent ) {\n\n try {\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n const data:DragDropData = getDropData( event, isExternalDrag() );\n\n if( this.isDropAllowed( data.type ) === false ) {\n\n return;\n }\n\n // signal custom drop handling\n event.preventDefault();\n\n const dropEffect = getDropEffect( event );\n\n setDropEffect( event, dropEffect );\n\n if( dropEffect === \"none\" ) {\n\n return;\n }\n\n const dropIndex = this.getPlaceholderIndex();\n\n // if for whatever reason the placeholder is not present in the DOM but it should be there\n // we don't allow/emit the drop event since it breaks the contract\n // seems to only happen if drag and drop is executed faster than the DOM updates\n if( dropIndex === -1 ) {\n\n return;\n }\n\n this.dndDrop.emit( {\n event: event,\n dropEffect: dropEffect,\n isExternal: isExternalDrag(),\n data: data.data,\n index: dropIndex,\n type: type,\n } );\n\n event.stopPropagation();\n\n }\n finally {\n\n this.cleanupDragoverState();\n }\n }\n\n onDragLeave( event:DndEvent ) {\n\n // check if still inside this dropzone and not yet handled by another dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n return;\n }\n }\n\n this.cleanupDragoverState();\n\n // cleanup drop effect when leaving dropzone\n setDropEffect( event, \"none\" );\n }\n\n private isDropAllowed( type?:string ):boolean {\n\n // dropzone is disabled -> deny it\n if( this.disabled === true ) {\n\n return false;\n }\n\n // if drag did not start from our directive\n // and external drag sources are not allowed -> deny it\n if( isExternalDrag() === true\n && this.dndAllowExternal === false ) {\n\n return false;\n }\n\n // no filtering by types -> allow it\n if( !this.dndDropzone ) {\n\n return true;\n }\n\n // no type set -> allow it\n if( !type ) {\n\n return true;\n }\n\n if( Array.isArray( this.dndDropzone ) === false ) {\n\n throw new Error( \"dndDropzone: bound value to [dndDropzone] must be an array!\" );\n }\n\n // if dropzone contains type -> allow it\n return this.dndDropzone.indexOf( type ) !== -1;\n }\n\n private tryGetPlaceholder():Element | null {\n\n if( typeof this.dndPlaceholderRef !== \"undefined\" ) {\n\n return this.dndPlaceholderRef.elementRef.nativeElement as Element;\n }\n\n // TODO nasty workaround needed because if ng-container / template is used @ContentChild() or DI will fail because\n // of wrong context see angular bug https://github.com/angular/angular/issues/13517\n return this.elementRef.nativeElement.querySelector( \"[dndPlaceholderRef]\" );\n }\n\n private removePlaceholderFromDOM() {\n\n if( this.placeholder !== null\n && this.placeholder.parentNode !== null ) {\n this.placeholder.parentNode.removeChild( this.placeholder );\n }\n }\n\n private checkAndUpdatePlaceholderPosition( event:DragEvent ):void {\n\n if( this.placeholder === null ) {\n\n return;\n }\n\n // make sure the placeholder is in the DOM\n if( this.placeholder.parentNode !== this.elementRef.nativeElement ) {\n\n this.renderer.appendChild( this.elementRef.nativeElement, this.placeholder );\n }\n\n // update the position if the event originates from a child element of the dropzone\n const directChild = getDirectChildElement( this.elementRef.nativeElement, event.target as Element );\n\n // early exit if no direct child or direct child is placeholder\n if( directChild === null\n || directChild === this.placeholder ) {\n\n return;\n }\n\n const positionPlaceholderBeforeDirectChild = shouldPositionPlaceholderBeforeElement( event, directChild, this.dndHorizontal );\n\n if( positionPlaceholderBeforeDirectChild ) {\n\n // do insert before only if necessary\n if( directChild.previousSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild );\n }\n }\n else {\n\n // do insert after only if necessary\n if( directChild.nextSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild.nextSibling );\n }\n }\n }\n\n private getPlaceholderIndex():number | undefined {\n\n if( this.placeholder === null ) {\n\n return undefined;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n\n return Array.prototype.indexOf.call( element.children, this.placeholder );\n }\n\n private cleanupDragoverState() {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDragoverClass );\n\n this.removePlaceholderFromDOM();\n }\n}\n","import { Directive, HostBinding, HostListener } from \"@angular/core\";\nimport { DndEvent } from \"./dnd-utils\";\nimport { DndDraggableDirective } from \"./dnd-draggable.directive\";\n\n@Directive( {\n selector: \"[dndHandle]\"\n} )\nexport class DndHandleDirective {\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n constructor( parent:DndDraggableDirective ) {\n\n parent.registerDragHandle( this );\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEvent( event:DndEvent ) {\n\n event._dndUsingHandle = true;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DndDraggableDirective, DndDragImageRefDirective } from \"./dnd-draggable.directive\";\nimport { DndDropzoneDirective, DndPlaceholderRefDirective } from \"./dnd-dropzone.directive\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\n\n@NgModule( {\n imports: [\n CommonModule\n ],\n declarations: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ],\n exports: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ]\n} )\nexport class DndModule {\n}\n","/*\n * Public API Surface of dnd\n */\n\nexport * from \"./lib/dnd-draggable.directive\";\nexport * from \"./lib/dnd-dropzone.directive\";\nexport * from \"./lib/dnd-handle.directive\";\nexport * from \"./lib/dnd-types\";\nexport { DndDragImageOffsetFunction } from \"./lib/dnd-utils\";\nexport * from \"./lib/dnd.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-drag-drop.mjs","sources":["../../../projects/dnd/src/lib/dnd-utils.ts","../../../projects/dnd/src/lib/dnd-state.ts","../../../projects/dnd/src/lib/dnd-draggable.directive.ts","../../../projects/dnd/src/lib/dnd-dropzone.directive.ts","../../../projects/dnd/src/lib/dnd-handle.directive.ts","../../../projects/dnd/src/lib/dnd.module.ts","../../../projects/dnd/src/public-api.ts","../../../projects/dnd/src/ngx-drag-drop.ts"],"sourcesContent":["import { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DragDropData {\n data?:any;\n type?:string;\n}\n\nexport interface DndEvent extends DragEvent {\n _dndUsingHandle?:boolean;\n _dndDropzoneActive?:true;\n}\n\nexport type DndDragImageOffsetFunction = ( event:DragEvent, dragImage:Element ) => { x:number, y:number };\n\nexport const DROP_EFFECTS = [ \"move\", \"copy\", \"link\" ] as DropEffect[];\n\nexport const CUSTOM_MIME_TYPE = \"application/x-dnd\";\nexport const JSON_MIME_TYPE = \"application/json\";\nexport const MSIE_MIME_TYPE = \"Text\";\n\nfunction mimeTypeIsCustom( mimeType:string ) {\n\n return mimeType.substr( 0, CUSTOM_MIME_TYPE.length ) === CUSTOM_MIME_TYPE;\n}\n\nexport function getWellKnownMimeType( event:DragEvent ):string | null {\n\n if( event.dataTransfer ) {\n\n const types = event.dataTransfer.types;\n\n // IE 9 workaround.\n if( !types ) {\n\n return MSIE_MIME_TYPE;\n }\n\n for( let i = 0; i < types.length; i++ ) {\n\n if( types[ i ] === MSIE_MIME_TYPE\n || types[ i ] === JSON_MIME_TYPE\n || mimeTypeIsCustom( types[ i ] ) ) {\n\n return types[ i ];\n }\n }\n }\n\n return null;\n}\n\nexport function setDragData( event:DragEvent, data:DragDropData, effectAllowed:EffectAllowed ):void {\n\n // Internet Explorer and Microsoft Edge don't support custom mime types, see design doc:\n // https://github.com/marceljuenemann/angular-drag-and-drop-lists/wiki/Data-Transfer-Design\n const mimeType = CUSTOM_MIME_TYPE + (data.type ? (\"-\" + data.type) : \"\");\n\n const dataString = JSON.stringify( data );\n\n try {\n\n event.dataTransfer?.setData( mimeType, dataString );\n\n }\n catch( e ) {\n\n // Setting a custom MIME type did not work, we are probably in IE or Edge.\n try {\n\n event.dataTransfer?.setData( JSON_MIME_TYPE, dataString );\n\n }\n catch( e ) {\n\n // We are in Internet Explorer and can only use the Text MIME type. Also note that IE\n // does not allow changing the cursor in the dragover event, therefore we have to choose\n // the one we want to display now by setting effectAllowed.\n const effectsAllowed = filterEffects( DROP_EFFECTS, effectAllowed );\n if(event.dataTransfer) {\n event.dataTransfer.effectAllowed = effectsAllowed[ 0 ];\n }\n\n event.dataTransfer?.setData( MSIE_MIME_TYPE, dataString );\n }\n }\n}\n\nexport function getDropData( event:DragEvent, dragIsExternal:boolean ):DragDropData {\n\n // check if the mime type is well known\n const mimeType = getWellKnownMimeType( event );\n\n // drag did not originate from [dndDraggable]\n if( dragIsExternal === true ) {\n\n if( mimeType !== null\n && mimeTypeIsCustom( mimeType ) ) {\n\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n }\n\n if(mimeType !== null) {\n // the type of content is well known and safe to handle\n return JSON.parse( event.dataTransfer?.getData( mimeType ) ?? \"{}\" );\n }\n\n // the contained data is unknown, let user handle it\n return {};\n}\n\nexport function filterEffects( effects:DropEffect[], allowed:EffectAllowed | DropEffect ):DropEffect[] {\n\n if( allowed === \"all\"\n || allowed === \"uninitialized\" ) {\n\n return effects;\n }\n\n return effects.filter( function( effect ) {\n\n return allowed.toLowerCase().indexOf( effect ) !== -1;\n } );\n}\n\nexport function getDirectChildElement( parentElement:Element, childElement:Element ):Element | null {\n\n let directChild:Node = childElement;\n\n while( directChild.parentNode !== parentElement ) {\n\n // reached root node without finding given parent\n if( !directChild.parentNode ) {\n\n return null;\n }\n\n directChild = directChild.parentNode;\n }\n\n return directChild as Element;\n}\n\nexport function shouldPositionPlaceholderBeforeElement( event:DragEvent, element:Element, horizontal:boolean ) {\n\n const bounds = element.getBoundingClientRect();\n\n // If the pointer is in the upper half of the list item element,\n // we position the placeholder before the list item, otherwise after it.\n if( horizontal ) {\n\n return (event.clientX < bounds.left + bounds.width / 2);\n }\n\n return (event.clientY < bounds.top + bounds.height / 2);\n}\n\nexport function calculateDragImageOffset( event:DragEvent, dragImage:Element ):{ x:number, y:number } {\n\n const dragImageComputedStyle = window.getComputedStyle( dragImage );\n const paddingTop = parseFloat( dragImageComputedStyle.paddingTop ) || 0;\n const paddingLeft = parseFloat( dragImageComputedStyle.paddingLeft ) || 0;\n const borderTop = parseFloat( dragImageComputedStyle.borderTopWidth ) || 0;\n const borderLeft = parseFloat( dragImageComputedStyle.borderLeftWidth ) || 0;\n\n return {\n x: event.offsetX + paddingLeft + borderLeft,\n y: event.offsetY + paddingTop + borderTop\n };\n}\n\nexport function setDragImage( event:DragEvent, dragImage:Element, offsetFunction:DndDragImageOffsetFunction ):void {\n\n const offset = offsetFunction( event, dragImage ) || {x: 0, y: 0};\n\n (event.dataTransfer as any).setDragImage( dragImage, offset.x, offset.y );\n}\n","import {\n CUSTOM_MIME_TYPE,\n DROP_EFFECTS,\n filterEffects,\n getWellKnownMimeType,\n JSON_MIME_TYPE,\n MSIE_MIME_TYPE\n} from \"./dnd-utils\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndState {\n isDragging:boolean;\n dropEffect?:DropEffect;\n effectAllowed?:EffectAllowed;\n type?:string;\n}\n\nconst _dndState:DndState = {\n isDragging: false,\n dropEffect: \"none\",\n effectAllowed: \"all\",\n type: undefined\n};\n\nexport function startDrag( event:DragEvent, effectAllowed:EffectAllowed, type:string | undefined ) {\n\n _dndState.isDragging = true;\n _dndState.dropEffect = \"none\";\n _dndState.effectAllowed = effectAllowed;\n _dndState.type = type;\n\n if(event.dataTransfer) {\n\n event.dataTransfer.effectAllowed = effectAllowed;\n }\n}\n\nexport function endDrag() {\n\n _dndState.isDragging = false;\n _dndState.dropEffect = undefined;\n _dndState.effectAllowed = undefined;\n _dndState.type = undefined;\n}\n\nexport function setDropEffect( event:DragEvent, dropEffect:DropEffect ) {\n\n if( _dndState.isDragging === true ) {\n\n _dndState.dropEffect = dropEffect;\n }\n\n if(event.dataTransfer) {\n\n event.dataTransfer.dropEffect = dropEffect;\n }\n}\n\nexport function getDropEffect( event:DragEvent, effectAllowed?:EffectAllowed | DropEffect ):DropEffect {\n\n const dataTransferEffectAllowed:EffectAllowed = (event.dataTransfer) ? event.dataTransfer.effectAllowed as EffectAllowed : \"uninitialized\";\n\n let effects = filterEffects( DROP_EFFECTS, dataTransferEffectAllowed );\n\n if( _dndState.isDragging === true ) {\n\n effects = filterEffects( effects, _dndState.effectAllowed! );\n }\n\n if( effectAllowed ) {\n\n effects = filterEffects( effects, effectAllowed );\n }\n\n // MacOS automatically filters dataTransfer.effectAllowed depending on the modifier keys,\n // therefore the following modifier keys will only affect other operating systems.\n if( effects.length === 0 ) {\n\n return \"none\";\n }\n\n if( event.ctrlKey && effects.indexOf( \"copy\" ) !== -1 ) {\n\n return \"copy\";\n }\n\n if( event.altKey && effects.indexOf( \"link\" ) !== -1 ) {\n\n return \"link\";\n }\n\n return effects[ 0 ] as DropEffect;\n}\n\nexport function getDndType( event:DragEvent ):string | undefined {\n\n if( _dndState.isDragging === true ) {\n\n return _dndState.type;\n }\n\n const mimeType = getWellKnownMimeType( event );\n\n if( mimeType === null ) {\n\n return undefined;\n }\n\n if( mimeType === MSIE_MIME_TYPE\n || mimeType === JSON_MIME_TYPE ) {\n\n return undefined;\n }\n\n return mimeType.substr( CUSTOM_MIME_TYPE.length + 1 ) || undefined;\n}\n\nexport function isExternalDrag():boolean {\n\n return _dndState.isDragging === false;\n}\n\nexport const dndState:Readonly<DndState> = _dndState as Readonly<DndState>;\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport { calculateDragImageOffset, DndDragImageOffsetFunction, DndEvent, setDragData, setDragImage } from \"./dnd-utils\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\nimport { dndState, endDrag, startDrag } from \"./dnd-state\";\nimport { EffectAllowed } from \"./dnd-types\";\n\n@Directive( {\n selector: \"[dndDragImageRef]\"\n} )\nexport class DndDragImageRefDirective {\n\n constructor(@Inject(forwardRef(() => DndDraggableDirective)) parent: DndDraggableDirective, elementRef:ElementRef ) {\n parent.registerDragImage( elementRef );\n }\n}\n\n@Directive( {\n selector: \"[dndDraggable]\"\n} )\nexport class DndDraggableDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDraggable:any;\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"copy\";\n\n @Input()\n dndType?:string;\n\n @Input()\n dndDraggingClass = \"dndDragging\";\n\n @Input()\n dndDraggingSourceClass = \"dndDraggingSource\";\n\n @Input()\n dndDraggableDisabledClass = \"dndDraggableDisabled\";\n\n @Input()\n dndDragImageOffsetFunction:DndDragImageOffsetFunction = calculateDragImageOffset;\n\n @Output()\n readonly dndStart:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrag:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndEnd:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndMoved:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCopied:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndLinked:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndCanceled:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n private dndHandle?:DndHandleDirective;\n\n private dndDragImageElementRef?:ElementRef;\n\n private dragImage:Element | undefined;\n\n private isDragStarted:boolean = false;\n\n private readonly dragEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDrag( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.draggable = !value;\n\n if( this.draggable ) {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n else {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggableDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDragIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private elementRef:ElementRef,\n private renderer:Renderer2,\n private ngZone:NgZone ) {\n }\n\n ngAfterViewInit():void {\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"drag\", this.dragEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"drag\", this.dragEventHandler );\n if(this.isDragStarted === true) {\n endDrag()\n }\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n onDragStart( event:DndEvent ): boolean {\n\n if( this.draggable === false ) {\n\n return false;\n }\n\n // check if there is dnd handle and if the dnd handle was used to start the drag\n if( typeof this.dndHandle !== \"undefined\"\n && typeof event._dndUsingHandle === \"undefined\" ) {\n\n return false;\n }\n\n // initialize global state\n startDrag( event, this.dndEffectAllowed, this.dndType );\n\n this.isDragStarted = true;\n\n setDragData( event, {data: this.dndDraggable, type: this.dndType}, dndState.effectAllowed! );\n\n this.dragImage = this.determineDragImage();\n\n // set dragging css class prior to setDragImage so styles are applied before\n // TODO breaking change: add class to elementRef rather than drag image which could be another element\n this.renderer.addClass( this.dragImage, this.dndDraggingClass );\n\n // set custom dragimage if present\n // set dragimage if drag is started from dndHandle\n if( typeof this.dndDragImageElementRef !== \"undefined\"\n || typeof event._dndUsingHandle !== \"undefined\" ) {\n\n setDragImage( event, this.dragImage, this.dndDragImageOffsetFunction );\n }\n\n // add dragging source css class on first drag event\n const unregister = this.renderer.listen( this.elementRef.nativeElement, \"drag\", () => {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n unregister();\n } );\n\n this.dndStart.emit( event );\n\n event.stopPropagation();\n return true;\n }\n\n onDrag( event:DragEvent ) {\n\n this.dndDrag.emit( event );\n }\n\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEnd( event:DragEvent ) {\n\n // get drop effect from custom stored state as its not reliable across browsers\n const dropEffect = dndState.dropEffect;\n\n let dropEffectEmitter:EventEmitter<DragEvent>;\n\n switch( dropEffect ) {\n\n case \"copy\":\n dropEffectEmitter = this.dndCopied;\n break;\n\n case \"link\":\n dropEffectEmitter = this.dndLinked;\n break;\n\n case \"move\":\n dropEffectEmitter = this.dndMoved;\n break;\n\n default:\n dropEffectEmitter = this.dndCanceled;\n break;\n }\n\n dropEffectEmitter.emit( event );\n this.dndEnd.emit( event );\n\n // reset global state\n endDrag();\n\n this.isDragStarted = false;\n\n this.renderer.removeClass( this.dragImage, this.dndDraggingClass );\n\n // IE9 special hammering\n window.setTimeout( () => {\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDraggingSourceClass );\n }, 0 );\n\n event.stopPropagation();\n }\n\n registerDragHandle( handle:DndHandleDirective | undefined ) {\n\n this.dndHandle = handle;\n }\n\n registerDragImage( elementRef:ElementRef | undefined ) {\n\n this.dndDragImageElementRef = elementRef;\n }\n\n private determineDragImage():Element {\n\n // evaluate custom drag image existence\n if( typeof this.dndDragImageElementRef !== \"undefined\" ) {\n\n return this.dndDragImageElementRef.nativeElement as Element;\n }\n else {\n\n return this.elementRef.nativeElement;\n }\n }\n}\n","import {\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2\n} from \"@angular/core\";\nimport {\n DndEvent,\n DragDropData,\n getDirectChildElement,\n getDropData,\n shouldPositionPlaceholderBeforeElement\n} from \"./dnd-utils\";\nimport { getDndType, getDropEffect, isExternalDrag, setDropEffect } from \"./dnd-state\";\nimport { DropEffect, EffectAllowed } from \"./dnd-types\";\n\nexport interface DndDropEvent {\n event:DragEvent;\n dropEffect:DropEffect;\n isExternal:boolean;\n data?:any;\n index?:number;\n type?:any;\n}\n\n@Directive( {\n selector: \"[dndPlaceholderRef]\"\n} )\nexport class DndPlaceholderRefDirective {\n\n constructor( public readonly elementRef:ElementRef ) {\n }\n}\n\n@Directive( {\n selector: \"[dndDropzone]\"\n} )\nexport class DndDropzoneDirective implements AfterViewInit, OnDestroy {\n\n @Input()\n dndDropzone?:string[] | \"\" = \"\";\n\n @Input()\n dndEffectAllowed:EffectAllowed = \"uninitialized\";\n\n @Input()\n dndAllowExternal:boolean = false;\n\n @Input()\n dndHorizontal:boolean = false;\n\n @Input()\n dndDragoverClass:string = \"dndDragover\";\n\n @Input()\n dndDropzoneDisabledClass = \"dndDropzoneDisabled\";\n\n @Output()\n readonly dndDragover:EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n\n @Output()\n readonly dndDrop:EventEmitter<DndDropEvent> = new EventEmitter<DndDropEvent>();\n\n @ContentChild( DndPlaceholderRefDirective )\n private readonly dndPlaceholderRef?:DndPlaceholderRefDirective;\n\n private placeholder:Element | null = null;\n\n private disabled:boolean = false;\n\n private readonly dragEnterEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragEnter( event );\n private readonly dragOverEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragOver( event );\n private readonly dragLeaveEventHandler:( event:DragEvent ) => void = ( event:DragEvent ) => this.onDragLeave( event );\n\n @Input()\n set dndDisableIf( value:boolean ) {\n\n this.disabled = !!value;\n\n if( this.disabled ) {\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n else {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDropzoneDisabledClass );\n }\n }\n\n @Input()\n set dndDisableDropIf( value:boolean ) {\n this.dndDisableIf = value;\n }\n\n constructor( private ngZone:NgZone,\n private elementRef:ElementRef,\n private renderer:Renderer2 ) {\n }\n\n ngAfterViewInit():void {\n\n this.placeholder = this.tryGetPlaceholder();\n\n this.removePlaceholderFromDOM();\n\n this.ngZone.runOutsideAngular( () => {\n this.elementRef.nativeElement.addEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.addEventListener( \"dragleave\", this.dragLeaveEventHandler );\n } );\n }\n\n ngOnDestroy():void {\n this.elementRef.nativeElement.removeEventListener( \"dragenter\", this.dragEnterEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragover\", this.dragOverEventHandler );\n this.elementRef.nativeElement.removeEventListener( \"dragleave\", this.dragLeaveEventHandler );\n }\n\n onDragEnter( event:DndEvent ) {\n\n // check if another dropzone is activated\n if( event._dndDropzoneActive === true ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // set as active if the target element is inside this dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n }\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n // allow the dragenter\n event.preventDefault();\n }\n\n onDragOver( event:DragEvent ) {\n // With nested dropzones, we want to ignore this event if a child dropzone\n // has already handled a dragover. Historically, event.stopPropagation() was\n // used to prevent this bubbling, but that prevents any dragovers outside the\n // ngx-drag-drop component, and stops other use cases such as scrolling on drag.\n // Instead, we can check if the event was already prevented by a child and bail early.\n if( event.defaultPrevented ) {\n\n return;\n }\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n this.checkAndUpdatePlaceholderPosition( event );\n\n const dropEffect = getDropEffect( event, this.dndEffectAllowed );\n\n if( dropEffect === \"none\" ) {\n\n this.cleanupDragoverState();\n return;\n }\n\n // allow the dragover\n event.preventDefault();\n\n // set the drop effect\n setDropEffect( event, dropEffect );\n\n this.dndDragover.emit( event );\n\n this.renderer.addClass( this.elementRef.nativeElement, this.dndDragoverClass );\n }\n\n @HostListener( \"drop\", [ \"$event\" ] )\n onDrop( event:DragEvent ) {\n\n try {\n\n // check if this drag event is allowed to drop on this dropzone\n const type = getDndType( event );\n if( this.isDropAllowed( type ) === false ) {\n\n return;\n }\n\n const data:DragDropData = getDropData( event, isExternalDrag() );\n\n if( this.isDropAllowed( data.type ) === false ) {\n\n return;\n }\n\n // signal custom drop handling\n event.preventDefault();\n\n const dropEffect = getDropEffect( event );\n\n setDropEffect( event, dropEffect );\n\n if( dropEffect === \"none\" ) {\n\n return;\n }\n\n const dropIndex = this.getPlaceholderIndex();\n\n // if for whatever reason the placeholder is not present in the DOM but it should be there\n // we don't allow/emit the drop event since it breaks the contract\n // seems to only happen if drag and drop is executed faster than the DOM updates\n if( dropIndex === -1 ) {\n\n return;\n }\n\n this.dndDrop.emit( {\n event: event,\n dropEffect: dropEffect,\n isExternal: isExternalDrag(),\n data: data.data,\n index: dropIndex,\n type: type,\n } );\n\n event.stopPropagation();\n\n }\n finally {\n\n this.cleanupDragoverState();\n }\n }\n\n onDragLeave( event:DndEvent ) {\n\n // check if still inside this dropzone and not yet handled by another dropzone\n if( typeof event._dndDropzoneActive === \"undefined\" ) {\n\n const newTarget = document.elementFromPoint( event.clientX, event.clientY );\n\n if( this.elementRef.nativeElement.contains( newTarget ) ) {\n\n event._dndDropzoneActive = true;\n return;\n }\n }\n\n this.cleanupDragoverState();\n\n // cleanup drop effect when leaving dropzone\n setDropEffect( event, \"none\" );\n }\n\n private isDropAllowed( type?:string ):boolean {\n\n // dropzone is disabled -> deny it\n if( this.disabled === true ) {\n\n return false;\n }\n\n // if drag did not start from our directive\n // and external drag sources are not allowed -> deny it\n if( isExternalDrag() === true\n && this.dndAllowExternal === false ) {\n\n return false;\n }\n\n // no filtering by types -> allow it\n if( !this.dndDropzone ) {\n\n return true;\n }\n\n // no type set -> allow it\n if( !type ) {\n\n return true;\n }\n\n if( Array.isArray( this.dndDropzone ) === false ) {\n\n throw new Error( \"dndDropzone: bound value to [dndDropzone] must be an array!\" );\n }\n\n // if dropzone contains type -> allow it\n return this.dndDropzone.indexOf( type ) !== -1;\n }\n\n private tryGetPlaceholder():Element | null {\n\n if( typeof this.dndPlaceholderRef !== \"undefined\" ) {\n\n return this.dndPlaceholderRef.elementRef.nativeElement as Element;\n }\n\n // TODO nasty workaround needed because if ng-container / template is used @ContentChild() or DI will fail because\n // of wrong context see angular bug https://github.com/angular/angular/issues/13517\n return this.elementRef.nativeElement.querySelector( \"[dndPlaceholderRef]\" );\n }\n\n private removePlaceholderFromDOM() {\n\n if( this.placeholder !== null\n && this.placeholder.parentNode !== null ) {\n this.placeholder.parentNode.removeChild( this.placeholder );\n }\n }\n\n private checkAndUpdatePlaceholderPosition( event:DragEvent ):void {\n\n if( this.placeholder === null ) {\n\n return;\n }\n\n // make sure the placeholder is in the DOM\n if( this.placeholder.parentNode !== this.elementRef.nativeElement ) {\n\n this.renderer.appendChild( this.elementRef.nativeElement, this.placeholder );\n }\n\n // update the position if the event originates from a child element of the dropzone\n const directChild = getDirectChildElement( this.elementRef.nativeElement, event.target as Element );\n\n // early exit if no direct child or direct child is placeholder\n if( directChild === null\n || directChild === this.placeholder ) {\n\n return;\n }\n\n const positionPlaceholderBeforeDirectChild = shouldPositionPlaceholderBeforeElement( event, directChild, this.dndHorizontal );\n\n if( positionPlaceholderBeforeDirectChild ) {\n\n // do insert before only if necessary\n if( directChild.previousSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild );\n }\n }\n else {\n\n // do insert after only if necessary\n if( directChild.nextSibling !== this.placeholder ) {\n\n this.renderer.insertBefore( this.elementRef.nativeElement, this.placeholder, directChild.nextSibling );\n }\n }\n }\n\n private getPlaceholderIndex():number | undefined {\n\n if( this.placeholder === null ) {\n\n return undefined;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n\n return Array.prototype.indexOf.call( element.children, this.placeholder );\n }\n\n private cleanupDragoverState() {\n\n this.renderer.removeClass( this.elementRef.nativeElement, this.dndDragoverClass );\n\n this.removePlaceholderFromDOM();\n }\n}\n","import { Directive, HostBinding, HostListener } from \"@angular/core\";\nimport { DndEvent } from \"./dnd-utils\";\nimport { DndDraggableDirective } from \"./dnd-draggable.directive\";\n\n@Directive( {\n selector: \"[dndHandle]\"\n} )\nexport class DndHandleDirective {\n\n @HostBinding( \"attr.draggable\" )\n draggable = true;\n\n constructor( parent:DndDraggableDirective ) {\n\n parent.registerDragHandle( this );\n }\n\n @HostListener( \"dragstart\", [ \"$event\" ] )\n @HostListener( \"dragend\", [ \"$event\" ] )\n onDragEvent( event:DndEvent ) {\n\n event._dndUsingHandle = true;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DndDraggableDirective, DndDragImageRefDirective } from \"./dnd-draggable.directive\";\nimport { DndDropzoneDirective, DndPlaceholderRefDirective } from \"./dnd-dropzone.directive\";\nimport { DndHandleDirective } from \"./dnd-handle.directive\";\n\n@NgModule( {\n imports: [\n CommonModule\n ],\n declarations: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ],\n exports: [\n DndDraggableDirective,\n DndDropzoneDirective,\n DndHandleDirective,\n DndPlaceholderRefDirective,\n DndDragImageRefDirective\n ]\n} )\nexport class DndModule {\n}\n","/*\n * Public API Surface of dnd\n */\n\nexport * from \"./lib/dnd-draggable.directive\";\nexport * from \"./lib/dnd-dropzone.directive\";\nexport * from \"./lib/dnd-handle.directive\";\nexport * from \"./lib/dnd-types\";\nexport { DndDragImageOffsetFunction } from \"./lib/dnd-utils\";\nexport * from \"./lib/dnd.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DndDraggableDirective"],"mappings":"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"}
File without changes
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  export declare class DndDragImageRefDirective {
7
7
  constructor(parent: DndDraggableDirective, elementRef: ElementRef);
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<DndDragImageRefDirective, never>;
9
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndDragImageRefDirective, "[dndDragImageRef]", never, {}, {}, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndDragImageRefDirective, "[dndDragImageRef]", never, {}, {}, never, never, false>;
10
10
  }
11
11
  export declare class DndDraggableDirective implements AfterViewInit, OnDestroy {
12
12
  private elementRef;
@@ -44,5 +44,5 @@ export declare class DndDraggableDirective implements AfterViewInit, OnDestroy {
44
44
  registerDragImage(elementRef: ElementRef | undefined): void;
45
45
  private determineDragImage;
46
46
  static ɵfac: i0.ɵɵFactoryDeclaration<DndDraggableDirective, never>;
47
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndDraggableDirective, "[dndDraggable]", never, { "dndDraggable": "dndDraggable"; "dndEffectAllowed": "dndEffectAllowed"; "dndType": "dndType"; "dndDraggingClass": "dndDraggingClass"; "dndDraggingSourceClass": "dndDraggingSourceClass"; "dndDraggableDisabledClass": "dndDraggableDisabledClass"; "dndDragImageOffsetFunction": "dndDragImageOffsetFunction"; "dndDisableIf": "dndDisableIf"; "dndDisableDragIf": "dndDisableDragIf"; }, { "dndStart": "dndStart"; "dndDrag": "dndDrag"; "dndEnd": "dndEnd"; "dndMoved": "dndMoved"; "dndCopied": "dndCopied"; "dndLinked": "dndLinked"; "dndCanceled": "dndCanceled"; }, never>;
47
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndDraggableDirective, "[dndDraggable]", never, { "dndDraggable": "dndDraggable"; "dndEffectAllowed": "dndEffectAllowed"; "dndType": "dndType"; "dndDraggingClass": "dndDraggingClass"; "dndDraggingSourceClass": "dndDraggingSourceClass"; "dndDraggableDisabledClass": "dndDraggableDisabledClass"; "dndDragImageOffsetFunction": "dndDragImageOffsetFunction"; "dndDisableIf": "dndDisableIf"; "dndDisableDragIf": "dndDisableDragIf"; }, { "dndStart": "dndStart"; "dndDrag": "dndDrag"; "dndEnd": "dndEnd"; "dndMoved": "dndMoved"; "dndCopied": "dndCopied"; "dndLinked": "dndLinked"; "dndCanceled": "dndCanceled"; }, never, never, false>;
48
48
  }
@@ -14,7 +14,7 @@ export declare class DndPlaceholderRefDirective {
14
14
  readonly elementRef: ElementRef;
15
15
  constructor(elementRef: ElementRef);
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DndPlaceholderRefDirective, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndPlaceholderRefDirective, "[dndPlaceholderRef]", never, {}, {}, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndPlaceholderRefDirective, "[dndPlaceholderRef]", never, {}, {}, never, never, false>;
18
18
  }
19
19
  export declare class DndDropzoneDirective implements AfterViewInit, OnDestroy {
20
20
  private ngZone;
@@ -50,5 +50,5 @@ export declare class DndDropzoneDirective implements AfterViewInit, OnDestroy {
50
50
  private getPlaceholderIndex;
51
51
  private cleanupDragoverState;
52
52
  static ɵfac: i0.ɵɵFactoryDeclaration<DndDropzoneDirective, never>;
53
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndDropzoneDirective, "[dndDropzone]", never, { "dndDropzone": "dndDropzone"; "dndEffectAllowed": "dndEffectAllowed"; "dndAllowExternal": "dndAllowExternal"; "dndHorizontal": "dndHorizontal"; "dndDragoverClass": "dndDragoverClass"; "dndDropzoneDisabledClass": "dndDropzoneDisabledClass"; "dndDisableIf": "dndDisableIf"; "dndDisableDropIf": "dndDisableDropIf"; }, { "dndDragover": "dndDragover"; "dndDrop": "dndDrop"; }, ["dndPlaceholderRef"]>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndDropzoneDirective, "[dndDropzone]", never, { "dndDropzone": "dndDropzone"; "dndEffectAllowed": "dndEffectAllowed"; "dndAllowExternal": "dndAllowExternal"; "dndHorizontal": "dndHorizontal"; "dndDragoverClass": "dndDragoverClass"; "dndDropzoneDisabledClass": "dndDropzoneDisabledClass"; "dndDisableIf": "dndDisableIf"; "dndDisableDropIf": "dndDisableDropIf"; }, { "dndDragover": "dndDragover"; "dndDrop": "dndDrop"; }, ["dndPlaceholderRef"], never, false>;
54
54
  }
@@ -6,5 +6,5 @@ export declare class DndHandleDirective {
6
6
  constructor(parent: DndDraggableDirective);
7
7
  onDragEvent(event: DndEvent): void;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<DndHandleDirective, never>;
9
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndHandleDirective, "[dndHandle]", never, {}, {}, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndHandleDirective, "[dndHandle]", never, {}, {}, never, never, false>;
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-drag-drop",
3
- "version": "13.0.1",
3
+ "version": "14.0.0",
4
4
  "description": "Angular directives using the native HTML Drag And Drop API",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "touch"
25
25
  ],
26
26
  "peerDependencies": {
27
- "@angular/common": "^13.0.0",
28
- "@angular/core": "^13.0.0"
27
+ "@angular/common": "^14.0.0",
28
+ "@angular/core": "^14.0.0"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.3.0"
@@ -35,13 +35,13 @@
35
35
  "esm2020": "esm2020/ngx-drag-drop.mjs",
36
36
  "fesm2020": "fesm2020/ngx-drag-drop.mjs",
37
37
  "fesm2015": "fesm2015/ngx-drag-drop.mjs",
38
- "typings": "ngx-drag-drop.d.ts",
38
+ "typings": "index.d.ts",
39
39
  "exports": {
40
40
  "./package.json": {
41
41
  "default": "./package.json"
42
42
  },
43
43
  ".": {
44
- "types": "./ngx-drag-drop.d.ts",
44
+ "types": "./index.d.ts",
45
45
  "esm2020": "./esm2020/ngx-drag-drop.mjs",
46
46
  "es2020": "./fesm2020/ngx-drag-drop.mjs",
47
47
  "es2015": "./fesm2015/ngx-drag-drop.mjs",