diff --git a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts index 9a99d947ec..b2dc9ef489 100644 --- a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts @@ -1,13 +1,17 @@ import { Component, OnInit } from '@angular/core'; -import { FilterType } from '../../../models/filter-type.model'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; -import { renderFacetFor } from '../search-filter-type-decorator'; import { TranslateModule } from '@ngx-translate/core'; import { FormsModule } from '@angular/forms'; -import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; -import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; -import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; -import { NgFor, NgIf, AsyncPipe } from '@angular/common'; +import { + FilterInputSuggestionsComponent +} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; +import { + SearchFacetOptionComponent +} from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; +import { + SearchFacetSelectedOptionComponent +} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; +import { AsyncPipe, NgFor, NgIf } from '@angular/common'; @Component({ selector: 'ds-search-authority-filter', @@ -21,6 +25,5 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common'; /** * Component that represents an authority facet for a specific filter configuration */ -@renderFacetFor(FilterType.authority) export class SearchAuthorityFilterComponent extends SearchFacetFilterComponent implements OnInit { } diff --git a/src/app/shared/search/search-filters/search-filter/search-boolean-filter/search-boolean-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-boolean-filter/search-boolean-filter.component.ts index 5152158c18..6af2c4afde 100644 --- a/src/app/shared/search/search-filters/search-filter/search-boolean-filter/search-boolean-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-boolean-filter/search-boolean-filter.component.ts @@ -1,11 +1,13 @@ import { Component, OnInit } from '@angular/core'; -import { FilterType } from '../../../models/filter-type.model'; -import { renderFacetFor } from '../search-filter-type-decorator'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; import { TranslateModule } from '@ngx-translate/core'; -import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; -import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; -import { NgFor, NgIf, AsyncPipe } from '@angular/common'; +import { + SearchFacetOptionComponent +} from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; +import { + SearchFacetSelectedOptionComponent +} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; +import { AsyncPipe, NgFor, NgIf } from '@angular/common'; @Component({ selector: 'ds-search-boolean-filter', @@ -19,6 +21,5 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common'; /** * Component that represents a boolean facet for a specific filter configuration */ -@renderFacetFor(FilterType.boolean) export class SearchBooleanFilterComponent extends SearchFacetFilterComponent implements OnInit { } diff --git a/src/app/shared/search/search-filters/search-filter/search-filter-type-decorator.ts b/src/app/shared/search/search-filters/search-filter/search-filter-type-decorator.ts index 7c7d721f2e..b224ad9164 100644 --- a/src/app/shared/search/search-filters/search-filter/search-filter-type-decorator.ts +++ b/src/app/shared/search/search-filters/search-filter/search-filter-type-decorator.ts @@ -1,10 +1,21 @@ import { FilterType } from '../../models/filter-type.model'; +import { SearchTextFilterComponent } from './search-text-filter/search-text-filter.component'; +import { SearchAuthorityFilterComponent } from './search-authority-filter/search-authority-filter.component'; +import { SearchBooleanFilterComponent } from './search-boolean-filter/search-boolean-filter.component'; +import { SearchHierarchyFilterComponent } from './search-hierarchy-filter/search-hierarchy-filter.component'; +import { SearchRangeFilterComponent } from './search-range-filter/search-range-filter.component'; /** * Contains the mapping between a facet component and a FilterType */ const filterTypeMap = new Map(); +filterTypeMap.set(FilterType.text, SearchTextFilterComponent); +filterTypeMap.set(FilterType.authority, SearchAuthorityFilterComponent); +filterTypeMap.set(FilterType.boolean, SearchBooleanFilterComponent); +filterTypeMap.set(FilterType.hierarchy, SearchHierarchyFilterComponent); +filterTypeMap.set(FilterType.range, SearchRangeFilterComponent); + /** * Sets the mapping for a facet component in relation to a filter type * @param {FilterType} type The type for which the matching component is mapped diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts index c95deef4be..f77c838e3f 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts @@ -1,6 +1,4 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { renderFacetFor } from '../search-filter-type-decorator'; -import { FilterType } from '../../../models/filter-type.model'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; import { @@ -10,7 +8,8 @@ import { SearchService } from '../../../../../core/shared/search/search.service' import { FILTER_CONFIG, IN_PLACE_SEARCH, - SearchFilterService, REFRESH_FILTER + REFRESH_FILTER, + SearchFilterService } from '../../../../../core/shared/search/search-filter.service'; import { Router } from '@angular/router'; import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service'; @@ -18,20 +17,27 @@ import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-p import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service'; import { SearchFilterConfig } from '../../../models/search-filter-config.model'; import { FacetValue } from '../../../models/facet-value.model'; -import { getFacetValueForType } from '../../../search.utils'; +import { addOperatorToFilterValue, getFacetValueForType } from '../../../search.utils'; import { filter, map, take } from 'rxjs/operators'; import { VocabularyService } from '../../../../../core/submission/vocabularies/vocabulary.service'; -import { Observable, BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, Observable } from 'rxjs'; import { PageInfo } from '../../../../../core/shared/page-info.model'; import { environment } from '../../../../../../environments/environment'; -import { addOperatorToFilterValue } from '../../../search.utils'; -import { VocabularyTreeviewModalComponent } from '../../../../form/vocabulary-treeview-modal/vocabulary-treeview-modal.component'; +import { + VocabularyTreeviewModalComponent +} from '../../../../form/vocabulary-treeview-modal/vocabulary-treeview-modal.component'; import { TranslateModule } from '@ngx-translate/core'; import { FormsModule } from '@angular/forms'; -import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; -import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; -import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; -import { NgFor, NgIf, AsyncPipe, LowerCasePipe } from '@angular/common'; +import { + FilterInputSuggestionsComponent +} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; +import { + SearchFacetOptionComponent +} from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; +import { + SearchFacetSelectedOptionComponent +} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; +import { AsyncPipe, LowerCasePipe, NgFor, NgIf } from '@angular/common'; @Component({ selector: 'ds-search-hierarchy-filter', @@ -45,7 +51,6 @@ import { NgFor, NgIf, AsyncPipe, LowerCasePipe } from '@angular/common'; /** * Component that represents a hierarchy facet for a specific filter configuration */ -@renderFacetFor(FilterType.hierarchy) export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent implements OnInit { constructor(protected searchService: SearchService, diff --git a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts index b9683585dd..c586bf8aa0 100644 --- a/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-range-filter/search-range-filter.component.ts @@ -1,11 +1,9 @@ import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; -import { isPlatformBrowser, NgIf, NgFor, AsyncPipe } from '@angular/common'; +import { AsyncPipe, isPlatformBrowser, NgFor, NgIf } from '@angular/common'; import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core'; -import { TranslateService, TranslateModule } from '@ngx-translate/core'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service'; -import { FilterType } from '../../../models/filter-type.model'; -import { renderFacetFor } from '../search-filter-type-decorator'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; import { SearchFilterConfig } from '../../../models/search-filter-config.model'; import { @@ -21,7 +19,9 @@ import { SearchConfigurationService } from '../../../../../core/shared/search/se import { RouteService } from '../../../../../core/services/route.service'; import { hasValue } from '../../../../empty.util'; import { yearFromString } from 'src/app/shared/date.util'; -import { SearchFacetRangeOptionComponent } from '../search-facet-filter-options/search-facet-range-option/search-facet-range-option.component'; +import { + SearchFacetRangeOptionComponent +} from '../search-facet-filter-options/search-facet-range-option/search-facet-range-option.component'; import { DebounceDirective } from '../../../../utils/debounce.directive'; import { NouisliderComponent } from 'ng2-nouislider'; import { FormsModule } from '@angular/forms'; @@ -53,7 +53,6 @@ export const RANGE_FILTER_MAX_SUFFIX = '.max'; /** * Component that represents a range facet for a specific filter configuration */ -@renderFacetFor(FilterType.range) export class SearchRangeFilterComponent extends SearchFacetFilterComponent implements OnInit, OnDestroy { /** * Fallback minimum for the range diff --git a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts index eefdd52920..5e7ec89d85 100644 --- a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts @@ -1,14 +1,18 @@ import { Component, OnInit } from '@angular/core'; -import { FilterType } from '../../../models/filter-type.model'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; -import { renderFacetFor } from '../search-filter-type-decorator'; import { addOperatorToFilterValue, } from '../../../search.utils'; import { TranslateModule } from '@ngx-translate/core'; import { FormsModule } from '@angular/forms'; -import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; -import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; -import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; -import { NgFor, NgIf, AsyncPipe } from '@angular/common'; +import { + FilterInputSuggestionsComponent +} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; +import { + SearchFacetOptionComponent +} from '../search-facet-filter-options/search-facet-option/search-facet-option.component'; +import { + SearchFacetSelectedOptionComponent +} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component'; +import { AsyncPipe, NgFor, NgIf } from '@angular/common'; /** * This component renders a simple item page. @@ -28,7 +32,6 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common'; /** * Component that represents a text facet for a specific filter configuration */ -@renderFacetFor(FilterType.text) export class SearchTextFilterComponent extends SearchFacetFilterComponent implements OnInit { /** * Submits a new active custom value to the filter from the input field