Angular directive to display loading spinner on button and disable the button while performing async calls. It supports Angular 4+.