refactor(gestures): Use one central gesture to delegate

refactor(gestures): Use one central gesture to delegate the gesture events to the directives