One word !
and most likely you will not require another file upload widget.
Features:
1. customisable UI (drop-zone, file list, upload progress)
2. customisable transport / upload mechanisms
3. great hooks !! at every step of the way to override and help customise the process,
4. decent documentation (it does not cover the override etc, for that one would need to read the code)
There code is also very well written and worth a read on how to make a great directive.
https://github.com/valor-software/ng2-file-upload/
Also, the way they have used the native FormData and XMLHttpRequest objects and associated event is enlightening.
The initial plan was to evaluate all candidates that I find, but well deadline dictated that I finish work first, so never got around to testing:
# https://www.npmjs.com/package/angular4-files-upload
# Custom implementation: