From ef720170cd3cb39a21682ce50f04e82738c32e98 Mon Sep 17 00:00:00 2001 From: Yura Bondarenko Date: Wed, 24 Nov 2021 09:30:43 +0100 Subject: [PATCH] 85042: Make SearchComponent themeable --- .../search-page/search-page.component.html | 2 +- src/app/search-page/search-page.module.ts | 2 + .../search-page/themed-search.component.ts | 47 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/app/search-page/themed-search.component.ts diff --git a/src/app/search-page/search-page.component.html b/src/app/search-page/search-page.component.html index 5143d22809..8424c0b531 100644 --- a/src/app/search-page/search-page.component.html +++ b/src/app/search-page/search-page.component.html @@ -1,2 +1,2 @@ - + diff --git a/src/app/search-page/search-page.module.ts b/src/app/search-page/search-page.module.ts index 0cf6164f8a..3bfffb0915 100644 --- a/src/app/search-page/search-page.module.ts +++ b/src/app/search-page/search-page.module.ts @@ -14,10 +14,12 @@ import { SearchConfigurationService } from '../core/shared/search/search-configu import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module'; import { ThemedSearchPageComponent } from './themed-search-page.component'; +import { ThemedSearchComponent } from './themed-search.component'; const components = [ SearchPageComponent, SearchComponent, + ThemedSearchComponent, SearchTrackerComponent, ThemedSearchPageComponent ]; diff --git a/src/app/search-page/themed-search.component.ts b/src/app/search-page/themed-search.component.ts new file mode 100644 index 0000000000..935ad03240 --- /dev/null +++ b/src/app/search-page/themed-search.component.ts @@ -0,0 +1,47 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../shared/theme-support/themed.component'; +import { SearchComponent } from './search.component'; +import { Observable } from 'rxjs'; +import { Context } from '../core/shared/context.model'; + +/** + * Themed wrapper for SearchComponent + */ +@Component({ + selector: 'ds-themed-search', + styleUrls: [], + templateUrl: '../shared/theme-support/themed.component.html', +}) +export class ThemedSearchComponent extends ThemedComponent { + protected inAndOutputNames: (keyof SearchComponent & keyof this)[] = [ + 'inPlaceSearch', 'searchEnabled', 'sideBarWidth', 'configuration$', 'context', 'scopeSelectable' + ]; + + @Input() inPlaceSearch = true; + + @Input() + searchEnabled = true; + + @Input() + sideBarWidth = 3; + + @Input() + configuration$: Observable; + + @Input() + context: Context; + + @Input() scopeSelectable = true; + + protected getComponentName(): string { + return 'SearchComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../themes/${themeName}/app/search-page/search.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./search.component'); + } +}