diff --git a/packages/common/src/lib/icons/icon/icon.component.ts b/packages/common/src/lib/icons/icon/icon.component.ts index 1f015badd..1e8f5f727 100644 --- a/packages/common/src/lib/icons/icon/icon.component.ts +++ b/packages/common/src/lib/icons/icon/icon.component.ts @@ -1,8 +1,8 @@ import { Component, Input } from '@angular/core'; -import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; -import { DomSanitizer } from '@angular/platform-browser'; +import { MatIconModule } from '@angular/material/icon'; import { IconSvg } from '../shared'; +import { IconService } from '../shared/icon.service'; @Component({ selector: 'igo-icon', @@ -24,16 +24,10 @@ export class IgoIconComponent { } private _icon: string | IconSvg; - constructor( - private iconRegistry: MatIconRegistry, - private sanitizer: DomSanitizer - ) {} + constructor(private iconService: IconService) {} registerSvg(icon: IconSvg): void { - this.iconRegistry.addSvgIconLiteral( - icon.name, - this.sanitizer.bypassSecurityTrustHtml(icon.svg) - ); + this.iconService.registerSvg(icon); } isSvg(icon: string | IconSvg): icon is IconSvg { diff --git a/packages/common/src/lib/icons/shared/icon.service.spec.ts b/packages/common/src/lib/icons/shared/icon.service.spec.ts new file mode 100644 index 000000000..2f53531da --- /dev/null +++ b/packages/common/src/lib/icons/shared/icon.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { IconService } from './icon.service'; + +describe('IconService', () => { + let service: IconService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(IconService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/packages/common/src/lib/icons/shared/icon.service.ts b/packages/common/src/lib/icons/shared/icon.service.ts new file mode 100644 index 000000000..44c8e5e47 --- /dev/null +++ b/packages/common/src/lib/icons/shared/icon.service.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core'; +import { MatIconRegistry } from '@angular/material/icon'; +import { DomSanitizer } from '@angular/platform-browser'; + +import { IconSvg } from './icon.interface'; + +@Injectable({ + providedIn: 'root' +}) +export class IconService { + constructor( + private iconRegistry: MatIconRegistry, + private sanitizer: DomSanitizer + ) {} + + registerSvg(icon: IconSvg): void { + this.iconRegistry.addSvgIconLiteral( + icon.name, + this.sanitizer.bypassSecurityTrustHtml(icon.svg) + ); + } +} diff --git a/packages/common/src/lib/icons/shared/icons.ts b/packages/common/src/lib/icons/shared/icons.ts index dc67c891a..3d3287222 100644 --- a/packages/common/src/lib/icons/shared/icons.ts +++ b/packages/common/src/lib/icons/shared/icons.ts @@ -10,30 +10,41 @@ export const MAGNIFY_SCAN_ICON: IconSvg = { ` }; -export const MICROSOFT_ICON = { +export const MICROSOFT_ICON: IconSvg = { name: 'microsoft', svg: ` microsoft ` }; -export const KEYBOARD_ESC_ICON = { +export const KEYBOARD_ESC_ICON: IconSvg = { name: 'keyboard-esc', svg: ` keyboard-esc ` }; -export const ENGINE_ICON = { +export const ENGINE_ICON: IconSvg = { name: 'engine', svg: ` engine ` }; -export const SELECTION_MARKER_ICON = { +export const SELECTION_MARKER_ICON: IconSvg = { name: 'selection-marker', svg: ` selection-marker ` }; + +export const PRESENTATION_PLAY_ICON: IconSvg = { + name: 'presentation-play', + svg: `presentation-play` +}; + + +export const LAYER_PLUS_ICON: IconSvg = { + name: 'layers-plus', + svg: `layers-plus` +}; diff --git a/packages/common/src/lib/icons/shared/index.ts b/packages/common/src/lib/icons/shared/index.ts index dfedea2a0..8e10e16de 100644 --- a/packages/common/src/lib/icons/shared/index.ts +++ b/packages/common/src/lib/icons/shared/index.ts @@ -1,2 +1,3 @@ export * from './icons'; export * from './icon.interface'; +export * from './icon.service'; diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.html b/packages/common/src/lib/interactive-tour/interactive-tour.component.html index 44e0461cc..8c74647ce 100644 --- a/packages/common/src/lib/interactive-tour/interactive-tour.component.html +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.html @@ -15,7 +15,7 @@ " [disabled]="disabledTourButton" > - help_center + @@ -31,6 +31,7 @@ {{ 'igo.common.interactiveTour.buttonTitle' | translate }} {{ discoverTitleInLocale$ | async | translate }} help_center + > diff --git a/packages/common/src/lib/interactive-tour/interactive-tour.component.ts b/packages/common/src/lib/interactive-tour/interactive-tour.component.ts index a4364f96c..17e0b3147 100644 --- a/packages/common/src/lib/interactive-tour/interactive-tour.component.ts +++ b/packages/common/src/lib/interactive-tour/interactive-tour.component.ts @@ -7,6 +7,11 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; import { Observable, of } from 'rxjs'; +import { + IconService, + IgoIconComponent, + PRESENTATION_PLAY_ICON +} from '../icons'; import { ToolService } from '../tool/shared/tool.service'; import { InteractiveTourService } from './interactive-tour.service'; @@ -23,10 +28,13 @@ import { InteractiveTourService } from './interactive-tour.service'; MatTooltipModule, MatIconModule, AsyncPipe, - TranslateModule + TranslateModule, + IgoIconComponent ] }) export class InteractiveTourComponent { + presentationIcon = PRESENTATION_PLAY_ICON; + /** * Toolbox that holds main tools */ @@ -110,8 +118,11 @@ export class InteractiveTourComponent { constructor( private interactiveTourService: InteractiveTourService, - private toolService: ToolService - ) {} + private toolService: ToolService, + private iconService: IconService + ) { + this.iconService.registerSvg(this.presentationIcon); + } startInteractiveTour() { const tour = this.getTourToStart(); diff --git a/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.html b/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.html index cf2086c41..60877a850 100644 --- a/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.html +++ b/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.html @@ -21,6 +21,6 @@ (click)="addCatalogDialog()" > {{ 'igo.geo.catalog.library.addBtn' | translate }} - library_add + diff --git a/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.ts b/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.ts index 0737ddb2d..f861e6a64 100644 --- a/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.ts +++ b/packages/geo/src/lib/catalog/catalog-library/catalog-library.component.ts @@ -13,7 +13,13 @@ import { MatDialog } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatTooltipModule } from '@angular/material/tooltip'; -import { EntityStore, ListComponent, ListItemDirective } from '@igo2/common'; +import { + EntityStore, + IconService, + LAYER_PLUS_ICON, + ListComponent, + ListItemDirective +} from '@igo2/common'; import { MessageService } from '@igo2/core/message'; import { StorageService } from '@igo2/core/storage'; import { ObjectUtils } from '@igo2/utils'; @@ -82,6 +88,9 @@ export class CatalogLibaryComponent implements OnInit, OnDestroy { }>(); submitDisabled = true; + + layerPlusIcon = LAYER_PLUS_ICON; + private addingCatalog$$: Subscription; get addedCatalogs(): Catalog[] { @@ -95,8 +104,11 @@ export class CatalogLibaryComponent implements OnInit, OnDestroy { private capabilitiesService: CapabilitiesService, private messageService: MessageService, private storageService: StorageService, - private dialog: MatDialog - ) {} + private dialog: MatDialog, + private iconService: IconService + ) { + this.iconService.registerSvg(this.layerPlusIcon); + } /** * @internal diff --git a/packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts b/packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts index 3270b1847..079e8db44 100644 --- a/packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts +++ b/packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts @@ -5,7 +5,7 @@ import { OnInit } from '@angular/core'; -import { ToolComponent } from '@igo2/common'; +import { LAYER_PLUS_ICON, ToolComponent } from '@igo2/common'; import { EntityStore } from '@igo2/common'; import { StorageService } from '@igo2/core/storage'; import { Catalog, CatalogLibaryComponent, CatalogService } from '@igo2/geo'; @@ -21,7 +21,7 @@ import { CatalogState } from '../catalog.state'; @ToolComponent({ name: 'catalog', title: 'igo.integration.tools.catalog', - icon: 'library_add' + icon: LAYER_PLUS_ICON }) @Component({ selector: 'igo-catalog-library-tool', diff --git a/packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html b/packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html index 1ecec452e..a3b3fa791 100644 --- a/packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html +++ b/packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html @@ -59,7 +59,7 @@ - library_add +