An implementation of stateful buttons for angular2+ including loading, progress,success and failure state.