src/converter/teaser/fs-teaser-search-link-overlay.ts
FsTeaserOverlayFactoryInterface
Methods |
|
constructor(area: SearchLinkLinkTemplate, positionAndDimension, semanticPathService: SemanticPathService)
|
||||||||||||
Parameters :
|
Public create |
create()
|
Returns :
OverlayLink
|
Private createSearchLinkOverlay | |||||||||
createSearchLinkOverlay(ltSearchTerm: CmsInputTextFormData, ltTooltipText: CmsInputTextFormData)
|
|||||||||
Parameters :
Returns :
OverlayLink
|
Private getLinkUrl | ||||||
getLinkUrl(searchTerm: string | undefined)
|
||||||
Parameters :
Returns :
[] | undefined
|
import { FsTeaserOverlayFactoryInterface } from './fs-teaser.model';
import { CmsInputTextFormData, OverlayDimension, OverlayPosition, OverlayLink, SearchLinkLinkTemplate } from './fs-teaser.model';
import { nullSafe } from 'fs-spartacus-common';
import { SemanticPathService } from '@spartacus/core';
export class FsTeaserSearchLinkOverlay implements FsTeaserOverlayFactoryInterface<OverlayLink> {
constructor(
private area: SearchLinkLinkTemplate,
private positionAndDimension: OverlayPosition & OverlayDimension,
private semanticPathService: SemanticPathService
) {}
private getLinkUrl(searchTerm: string | undefined): any[] | undefined {
if (searchTerm != null && searchTerm.length > 0) {
return this.semanticPathService.transform({
cxRoute: 'search',
params: { query: searchTerm },
});
}
}
private createSearchLinkOverlay(ltSearchTerm: CmsInputTextFormData, ltTooltipText: CmsInputTextFormData): OverlayLink {
const link: OverlayLink = {
href: this.getLinkUrl(ltSearchTerm?.value),
tooltip: nullSafe(ltTooltipText?.value, ''),
...this.positionAndDimension,
};
return link;
}
public create(): OverlayLink {
if (this.area?.link?.formData != null) {
const { lt_search_term, lt_tooltip_text } = this.area.link.formData;
if (lt_search_term != null) {
return this.createSearchLinkOverlay(lt_search_term, lt_tooltip_text);
}
}
}
}