What is the main difference between using hammerjs vs hostlistener when dealing with touch events? Suppose I want to make a reusable mat tab sw