Skip to content

Commit 60844ec

Browse files
authored
fix: allow multiple dragActiveClass
1 parent bb3e83d commit 60844ec

File tree

2 files changed

+40
-7
lines changed

2 files changed

+40
-7
lines changed

projects/angular-draggable-droppable/src/lib/draggable.directive.spec.ts

+24
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,30 @@ describe('draggable directive', () => {
887887
});
888888
expect(draggableElement.classList.contains('drag-active')).to.be.false;
889889
});
890+
it('should add and remove multiple drag active class', () => {
891+
fixture.componentInstance.dragActiveClass =
892+
'drag-active drag-active-secondary';
893+
fixture.detectChanges();
894+
const draggableElement =
895+
fixture.componentInstance.draggableElement.nativeElement;
896+
triggerDomEvent('mousedown', draggableElement, {
897+
clientX: 5,
898+
clientY: 10,
899+
button: 0
900+
});
901+
triggerDomEvent('mousemove', draggableElement, { clientX: 7, clientY: 10 });
902+
expect(draggableElement.classList.contains('drag-active')).to.be.true;
903+
expect(draggableElement.classList.contains('drag-active-secondary')).to.be
904+
.true;
905+
triggerDomEvent('mouseup', draggableElement, {
906+
clientX: 7,
907+
clientY: 8,
908+
button: 0
909+
});
910+
expect(draggableElement.classList.contains('drag-active')).to.be.false;
911+
expect(draggableElement.classList.contains('drag-active-secondary')).to.be
912+
.false;
913+
});
890914

891915
it('should append the ghost element to the given element', () => {
892916
fixture.componentInstance.ghostElementAppendTo = document.createElement(

projects/angular-draggable-droppable/src/lib/draggable.directive.ts

+16-7
Original file line numberDiff line numberDiff line change
@@ -368,11 +368,15 @@ export class DraggableDirective implements OnInit, OnChanges, OnDestroy {
368368
}
369369
}
370370
);
371-
372-
this.renderer.addClass(
373-
this.element.nativeElement,
371+
this.dragActiveClass &&
374372
this.dragActiveClass
375-
);
373+
.split(' ')
374+
.forEach(_dragActiveClass =>
375+
this.renderer.addClass(
376+
this.element.nativeElement,
377+
_dragActiveClass
378+
)
379+
);
376380

377381
if (this.ghostDragEnabled) {
378382
const rect = this.element.nativeElement.getBoundingClientRect();
@@ -469,10 +473,15 @@ export class DraggableDirective implements OnInit, OnChanges, OnDestroy {
469473
this.zone.run(() => {
470474
this.dragEnd.next({ x, y, dragCancelled });
471475
});
472-
this.renderer.removeClass(
473-
this.element.nativeElement,
476+
this.dragActiveClass &&
474477
this.dragActiveClass
475-
);
478+
.split(' ')
479+
.forEach(_dragActiveClass =>
480+
this.renderer.removeClass(
481+
this.element.nativeElement,
482+
_dragActiveClass
483+
)
484+
);
476485
currentDrag$.complete();
477486
});
478487

0 commit comments

Comments
 (0)