File

src/converter/teaser/fs-teaser-search-link-overlay.ts

Implements

FsTeaserOverlayFactoryInterface

Index

Methods

Constructor

constructor(area: SearchLinkLinkTemplate, positionAndDimension, semanticPathService: SemanticPathService)
Parameters :
Name Type Optional
area SearchLinkLinkTemplate No
positionAndDimension No
semanticPathService SemanticPathService No

Methods

Public create
create()
Returns : OverlayLink
Private createSearchLinkOverlay
createSearchLinkOverlay(ltSearchTerm: CmsInputTextFormData, ltTooltipText: CmsInputTextFormData)
Parameters :
Name Type Optional
ltSearchTerm CmsInputTextFormData No
ltTooltipText CmsInputTextFormData No
Returns : OverlayLink
Private getLinkUrl
getLinkUrl(searchTerm: string | undefined)
Parameters :
Name Type Optional
searchTerm string | undefined No
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);
      }
    }
  }
}

results matching ""

    No results matching ""