src/converter/teaser/fs-teaser-content-link-overlay.ts
This class is a factory to create content links from a ContentLinkTemplate.
FsTeaserOverlayFactoryInterface
Methods |
|
constructor(area: ContentLinkTemplate, positionAndDimension, semanticPathService: SemanticPathService)
|
||||||||||||
Parameters :
|
Public create |
create()
|
Returns :
OverlayLink
|
Private createContentLinkOverlay | |||||||||
createContentLinkOverlay(contentPageIdentifier: string, ltTooltipText: CmsInputTextFormData)
|
|||||||||
Parameters :
Returns :
OverlayLink
|
Private getLinkUrl | ||||||
getLinkUrl(contentPageIdentifier: string | undefined)
|
||||||
Parameters :
Returns :
[] | undefined
|
import {
ContentLinkTemplate,
CmsInputTextFormData,
FsTeaserOverlayFactoryInterface,
OverlayDimension,
OverlayLink,
OverlayPosition,
} from './fs-teaser.model';
import { nullSafe } from 'fs-spartacus-common';
import { SemanticPathService } from '@spartacus/core';
/**
* This class is a factory to create content links from a {@link ContentLinkTemplate}.
*
* @export
* @class FsTeaserContentLinkOverlay
*/
export class FsTeaserContentLinkOverlay implements FsTeaserOverlayFactoryInterface<OverlayLink> {
constructor(
private area: ContentLinkTemplate,
private positionAndDimension: OverlayPosition & OverlayDimension,
private semanticPathService: SemanticPathService
) {}
public create(): OverlayLink {
if (this.area.link != null && this.area.link.formData != null) {
const { lt_page, lt_tooltip_text } = this.area.link.formData;
if (lt_page != null && lt_page.value != null && lt_page.value.uid != null) {
return this.createContentLinkOverlay(lt_page.value.uid, lt_tooltip_text);
}
}
return undefined;
}
private createContentLinkOverlay(contentPageIdentifier: string, ltTooltipText: CmsInputTextFormData): OverlayLink {
return {
href: this.getLinkUrl(contentPageIdentifier),
tooltip: nullSafe(ltTooltipText?.value, ''),
...this.positionAndDimension,
};
}
private getLinkUrl(contentPageIdentifier: string | undefined): any[] | undefined {
if (contentPageIdentifier != null && contentPageIdentifier.length > 0) {
return this.semanticPathService.transform(contentPageIdentifier);
}
}
}