Hold and drag an actor at mouse position or on a grid?

I want to make something like (arrow gizmo) that I can attach it to an actor to move it in x,y,z
I did it like when I click on an arrow it moves in its direction. but how can I hold and drag the arrow to move it and attach it to the mouse position while dragging?

Use Line Plane Intersection + Convert Mouse Location To World Space and position the actor at the resulting vector.