An AngularJS Directive that implements a spinner, replacing an initial icon with a spinning icon whenever the element is clicked or is triggered by a 'startSpinner' event.