From 7ee67e5047f4418fd7888e30074fe42964395646 Mon Sep 17 00:00:00 2001 From: Dominic Carretto Date: Sun, 9 Jul 2017 20:37:18 -0400 Subject: [PATCH] feat(material-icon): Add [material-icon] directive Apply the "material-icons" style to an icon. *Note: must be using the material icons library --- src/lib/index.ts | 5 ++++- src/lib/material-icon/index.ts | 9 +++++++++ src/lib/material-icon/material-icon.directive.ts | 11 +++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/lib/material-icon/index.ts create mode 100644 src/lib/material-icon/material-icon.directive.ts diff --git a/src/lib/index.ts b/src/lib/index.ts index fb0c90186..cf5dd7f12 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -7,6 +7,7 @@ import { ElevationModule } from './elevation/index'; import { FabModule } from './fab/index'; import { FormFieldModule } from './form-field/index'; import { LinearProgressModule } from './linear-progress/index'; +import { MaterialIconModule } from './material-icon/index'; import { MenuModule } from './menu/index'; import { RadioModule } from './radio/index'; import { RippleModule } from './ripple/index'; @@ -24,6 +25,7 @@ export * from './elevation/index'; export * from './fab/index'; export * from './form-field/index'; export * from './linear-progress/index'; +export * from './material-icon/index'; export * from './menu/index'; export * from './radio/index'; export * from './ripple/index'; @@ -42,6 +44,7 @@ const MATERIAL_MODULES = [ FabModule, FormFieldModule, LinearProgressModule, + MaterialIconModule, MenuModule, RadioModule, RippleModule, @@ -61,4 +64,4 @@ const MATERIAL_MODULES = [ MATERIAL_MODULES ] }) -export class MaterialModule { } \ No newline at end of file +export class MaterialModule { } diff --git a/src/lib/material-icon/index.ts b/src/lib/material-icon/index.ts new file mode 100644 index 000000000..408ddb089 --- /dev/null +++ b/src/lib/material-icon/index.ts @@ -0,0 +1,9 @@ +import { NgModule } from '@angular/core'; + +import { MaterialIcon } from './material-icon.directive'; + +@NgModule({ + exports: [MaterialIcon], + declarations: [MaterialIcon], +}) +export class MaterialIconModule { } diff --git a/src/lib/material-icon/material-icon.directive.ts b/src/lib/material-icon/material-icon.directive.ts new file mode 100644 index 000000000..5387df60d --- /dev/null +++ b/src/lib/material-icon/material-icon.directive.ts @@ -0,0 +1,11 @@ +import { + Directive, + HostBinding, +} from '@angular/core'; + +@Directive({ + selector: '[material-icon]' +}) +export class MaterialIcon { + @HostBinding('class.material-icons') isHostClass = true; +}