diff --git a/package-lock.json b/package-lock.json index 10b9889..1a1b9a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "eva-icons", + "name": "eva-icons-web", "version": "0.0.1", "lockfileVersion": 1, "requires": true, diff --git a/package.json b/package.json index 9b9b391..525ac4e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "eva-icons", + "name": "eva-icons-landing", "version": "0.0.1", "browserslist": [ "> 1%", diff --git a/src/app/@core/core.module.ts b/src/app/@core/core.module.ts index cfc609f..a4b360e 100644 --- a/src/app/@core/core.module.ts +++ b/src/app/@core/core.module.ts @@ -3,6 +3,11 @@ import { CommonModule } from '@angular/common'; import { throwIfAlreadyLoaded } from './module-import-guard'; import { DataModule } from './data/data.module'; +import { EvaIconsPipe } from './pipes/eva-icons.pipe'; + +const PIPES = [ + EvaIconsPipe, +]; const NB_CORE_PROVIDERS = [ ...DataModule.forRoot().providers, @@ -12,8 +17,8 @@ const NB_CORE_PROVIDERS = [ imports: [ CommonModule, ], - exports: [], - declarations: [], + exports: [...PIPES], + declarations: [...PIPES], }) export class CoreModule { constructor(@Optional() @SkipSelf() parentModule: CoreModule) { diff --git a/src/app/@core/data/api.service.ts b/src/app/@core/data/api.service.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/@core/data/icon.service.ts b/src/app/@core/data/icon.service.ts index cddceaa..cab2c93 100644 --- a/src/app/@core/data/icon.service.ts +++ b/src/app/@core/data/icon.service.ts @@ -1,41 +1,32 @@ import { of as observableOf, Observable } from 'rxjs'; import { Injectable } from '@angular/core'; +import { icons } from 'eva-icons'; + @Injectable() export class IconService { - private fakeIconsData = ['nb-alert', 'nb-angle-double-left', 'nb-angle-double-right', - 'nb-arrow-down', 'nb-arrow-dropdown', 'nb-arrow-dropleft', - 'nb-arrow-dropright', 'nb-arrow-dropup', 'nb-arrow-left', 'nb-arrow-retweet', 'nb-arrow-right', - 'nb-arrow-thin-down', 'nb-arrow-thin-left', 'nb-arrow-thin-right', 'nb-arrow-thin-up', - 'nb-arrow-up', 'nb-audio', 'nb-bar-chart', 'nb-checkmark', 'nb-chevron-down', - 'nb-chevron-down-outline', 'nb-chevron-left', 'nb-chevron-left-outline', 'nb-chevron-right', - 'nb-chevron-right-outline', 'nb-chevron-up', 'nb-chevron-up-outline', 'nb-close', - 'nb-close-circled', 'nb-cloudy', 'nb-coffee-maker', 'nb-compose', 'nb-edit', 'nb-email', - 'nb-flame-circled', 'nb-gear', 'nb-grid-a', 'nb-grid-a-outline', 'nb-grid-b', 'nb-grid-b-outline', - 'nb-heart', 'nb-home', 'nb-keypad', 'nb-layout-centre', 'nb-layout-default', 'nb-layout-one-column', - 'nb-layout-sidebar-left', 'nb-layout-sidebar-right', 'nb-layout-two-column', 'nb-lightbulb', - 'nb-list', 'nb-location', 'nb-locked', 'nb-loop', 'nb-loop-circled', 'nb-menu', 'nb-notifications', - 'nb-paper-plane', 'nb-partlysunny', 'nb-pause', 'nb-pause-outline', 'nb-person', 'nb-phone', - 'nb-play', 'nb-play-outline', 'nb-plus', 'nb-plus-circled', 'nb-power', 'nb-power-circled', - 'nb-rainy', 'nb-roller-shades', 'nb-search', 'nb-shuffle', 'nb-skip-backward', - 'nb-skip-backward-outline', 'nb-skip-forward', 'nb-skip-forward-outline', 'nb-snowy-circled', - 'nb-square', 'nb-square-outline', 'nb-star', 'nb-sunny', 'nb-sunny-circled', 'nb-tables', 'nb-title', - 'nb-trash', 'nb-volume-high', 'nb-volume-mute', 'nb-drop', 'nb-drops', 'nb-info', 'nb-expand', 'nb-collapse', - 'nb-e-commerce']; - data: string[]; constructor() { - this.data = this.fakeIconsData; + this.data = Object.keys(icons) + .reduce((result, item): any => { + if (item.indexOf('outline') === -1) { + result['fill'] = result['fill'].concat(item); + } else { + result['outline'] = result['outline'].concat(item); + } + + return result; + }, { fill: [], outline: [] }); } - getIconsData(): Observable { - return observableOf(this.data); + getIconsData(type: string): Observable { + return observableOf(this.data[type]); } - getFilteredIconsData(searchKey: string) { - const data = this.data.filter((item) => { + getFilteredIconsData(searchKey: string, type: string) { + const data = this.data[type].filter((item) => { return item.indexOf(searchKey) !== -1; }); diff --git a/src/app/@core/pipes/eva-icons.pipe.ts b/src/app/@core/pipes/eva-icons.pipe.ts new file mode 100644 index 0000000..f228c90 --- /dev/null +++ b/src/app/@core/pipes/eva-icons.pipe.ts @@ -0,0 +1,18 @@ +import {DomSanitizer} from '@angular/platform-browser'; +import {Pipe, PipeTransform} from '@angular/core'; + +import { icons } from 'eva-icons'; + +@Pipe({ name: 'eva' }) +export class EvaIconsPipe implements PipeTransform { + + constructor(private sanitizer: DomSanitizer) {} + + transform(icon: string, height: number = 24, width: number = 24, fill: string = 'inherit') { + return this.sanitizer.bypassSecurityTrustHtml(icons[icon].toSvg({ + width, + height, + fill, + })); + } +} diff --git a/src/app/@theme/components/footer/footer.component.scss b/src/app/@theme/components/footer/footer.component.scss index aed6ecb..80f735d 100644 --- a/src/app/@theme/components/footer/footer.component.scss +++ b/src/app/@theme/components/footer/footer.component.scss @@ -1,6 +1,6 @@ @import '../../../@theme/styles/themes'; @import '~bootstrap/scss/mixins/breakpoints'; -@import '~@nebular/theme/styles/global/bootstrap/breakpoints'; +@import '~@nebular/theme/styles/global/breakpoints'; @include nb-install-component() { $text-fg: nb-theme(footer-fg); diff --git a/src/app/@theme/components/header/header.component.html b/src/app/@theme/components/header/header.component.html index 0dab367..7f6720c 100644 --- a/src/app/@theme/components/header/header.component.html +++ b/src/app/@theme/components/header/header.component.html @@ -1,7 +1,7 @@