UNPKG

coveo-search-ui

Version:

Coveo JavaScript Search Framework

40 lines (34 loc) 1.48 kB
import { FacetUtils } from '../../Facet/FacetUtils'; import { IDynamicFacet, IValueCreator } from '../IDynamicFacet'; import { DynamicFacetValue } from './DynamicFacetValue'; import { IFacetResponseValue } from '../../../rest/Facet/FacetResponse'; import { FacetValueState } from '../../../rest/Facet/FacetValueState'; import { DynamicFacetValueRenderer } from './DynamicFacetValueRenderer'; export class DynamicFacetValueCreator implements IValueCreator { constructor(private facet: IDynamicFacet) {} private getDisplayValue(value: string) { return FacetUtils.getDisplayValueFromValueCaption(value, this.facet.options.field as string, this.facet.options.valueCaption); } public getDefaultValues() { return []; } public createFromResponse(facetValue: IFacetResponseValue, index: number) { return new DynamicFacetValue( { value: facetValue.value, displayValue: this.getDisplayValue(facetValue.value), numberOfResults: facetValue.numberOfResults, state: facetValue.state, position: index + 1 }, this.facet, DynamicFacetValueRenderer ); } public createFromValue(value: string) { const position = this.facet.values.allFacetValues.length + 1; const state = FacetValueState.idle; const displayValue = this.getDisplayValue(value); return new DynamicFacetValue({ value, displayValue, state, numberOfResults: 0, position }, this.facet, DynamicFacetValueRenderer); } }