startPage.component.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { Component, Inject } from '@angular/core'
  2. import { DomSanitizer } from '@angular/platform-browser'
  3. import { ConfigService } from '../services/config.service'
  4. import { HomeBaseService } from '../services/homeBase.service'
  5. import { ToolbarButton, ToolbarButtonProvider } from '../api'
  6. /** @hidden */
  7. @Component({
  8. selector: 'start-page',
  9. template: require('./startPage.component.pug'),
  10. styles: [require('./startPage.component.scss')],
  11. })
  12. export class StartPageComponent {
  13. version: string
  14. private constructor (
  15. private config: ConfigService,
  16. private domSanitizer: DomSanitizer,
  17. public homeBase: HomeBaseService,
  18. @Inject(ToolbarButtonProvider) private toolbarButtonProviders: ToolbarButtonProvider[],
  19. ) {
  20. }
  21. getButtons (): ToolbarButton[] {
  22. return this.config.enabledServices(this.toolbarButtonProviders)
  23. .map(provider => provider.provide())
  24. .reduce((a, b) => a.concat(b))
  25. .filter(x => !!x.click)
  26. .sort((a: ToolbarButton, b: ToolbarButton) => (a.weight || 0) - (b.weight || 0))
  27. }
  28. sanitizeIcon (icon: string): any {
  29. return this.domSanitizer.bypassSecurityTrustHtml(icon || '')
  30. }
  31. }