Angular: Dragging, Dropping, and Swapping Elements Using a Reusable Directive

Implement Drag, Drop, and Swap only using Directives to promote code reusability.