I'm creating an Angular 2 application that uses REST API to retrieve a list of products and a lot of other features.

I want to implement a sort of loader in two ways:

* a loader for each component when the page is loaded, for example, when you load the product category page, you will see a spinner over an overlay that load until the http request and the render is finished.
* the same thing when you click for example "add to cart" i want to create an overlay over the product column that disable for a few second clicking again on the add to cart button until the product is added to cart.

How can I do this?

Thanks in advance!