Note that this is only a partial replacement for Fabric's pattern,
since we still want to abstract away JSX from consumers,
and Angular doesn't have first-class support for creating templates in TypeScript.
-Add directives to support i18n for fab-dropdown
-Add demo of new directive-supported fab-dropdown to app.component
-Minor cleanup of directives for fab-combo-box
* 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.