31 lines
711 B
TypeScript
31 lines
711 B
TypeScript
import { Injectable, EventEmitter } from '@angular/core';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class DragDropService {
|
|
itemDropped = new EventEmitter<{ id: string; status: string }>();
|
|
|
|
constructor() {}
|
|
|
|
startDragging(event: DragEvent, id: string | undefined) {
|
|
if (id !== undefined) {
|
|
event.dataTransfer?.setData('text/plain', id);
|
|
}
|
|
}
|
|
|
|
allowDrop(event: DragEvent) {
|
|
event.preventDefault();
|
|
}
|
|
|
|
drop(event: DragEvent, status: string) {
|
|
event.preventDefault();
|
|
const dataTransfer = event.dataTransfer;
|
|
if (dataTransfer) {
|
|
const id = dataTransfer.getData('text/plain');
|
|
if (id) {
|
|
this.itemDropped.emit({ id, status });
|
|
}
|
|
}
|
|
}
|
|
}
|