* allow contextual menu item directive to have a custom render, or a custom icon render
the custom icon render doesn't work due to an office-ui-fabric-react bug
* remove unnecessary casting to `any`
* allow `fab-*-button`s to render menu items in a declarative syntax, similar to how command bar items allow it
* Updated to v0.5.1, Moved geteventlisteners module to local and revised JS to use es5 syntax, Minor typing fixes
* Updated changelog
* Remove changelog change
* Update @types/react
* Better type
* revert version bumps for core + fabric
* Upgrade react and react-dom to latest versions
* Updated Angular to v7.0, Updated office-ui-fabric-react to v6.110.0
* Fixed missing imports and reference errors
* Un-generic-ed EventListener (was causing errors since default EventListener is not generic)
* Removed noops on HoverCard and Tooltip component scss since they were moved to global styles in Fabric
* Upgrade office-ui-fabric-react to 6.110.0 + Add PlainCard and ExpandingCard components
* Renamed EventListener to IEventListener, Renamed some *.d.ts files to *.ts due to build issues
* Updated component property bindings to match new Fabric version
* Rename EventListener array and map to `I`-prefied versions to avoid confusion
- Package upgrades (non-breaking)
- Align repo to Prettier 1.15.3
- [includes] Revert decorators to their previous position in components, before the change in 1.14.
Using the [`geteventlisteners`](https://www.npmjs.com/package/geteventlisteners) package to allow capturing arbitrary event handlers specified as `@Output`s on any React-wrapper component. e.g.:
```html
<fab-icon iconName="Add" (onClick)="handleIconClick($event)" (onMouseOver)="handleIconMouseOver($event)"></fab-icon>
```
```typescript
handleIconClick(ev: MouseEvent) {
console.log('icon clicked!', ev);
}
handleIconMouseOver(ev: MouseEvent) {
console.log('icon moused-over!', ev);
}
```
Although extending global prototypes (i.e. not-yours) is bad practice, this is what Angular uses to capture events, and this seemed like the only way to get any arbitrary output from the element.
The other option is to handle each specific event, which is a rather long list, and requires further maintenance, when the DOM, React or the component library adds events to listen to.
This is similar in the idea as us passing any arbitrary attribute to the underlying React component.