src/converter/teaser/fs-teaser-image-overlay.ts
This class is a factory to create image overlays from an ImageLinkTemplate.
FsTeaserOverlayFactoryInterface
Methods |
|
constructor(area: ImageLinkTemplate, positionAndDimension)
|
|||||||||
Parameters :
|
Public create |
create()
|
Returns :
OverlayImage
|
Private createImageOverlay | |||||||||
createImageOverlay(link: CmsMediaFormData, imageAltText?: CmsInputTextFormData)
|
|||||||||
Parameters :
Returns :
OverlayImage
|
import { nullSafe } from 'fs-spartacus-common';
import {
CmsInputTextFormData,
ImageLinkTemplate,
CmsMediaFormData,
OverlayDimension,
OverlayImage,
OverlayPosition,
FsTeaserOverlayFactoryInterface,
} from './fs-teaser.model';
const defaultResolution = 'ORIGINAL';
/**
* This class is a factory to create image overlays from an {@link ImageLinkTemplate}.
*
* @export
* @class FsTeaserImageOverlay
*/
export class FsTeaserImageOverlay implements FsTeaserOverlayFactoryInterface<OverlayImage> {
constructor(private area: ImageLinkTemplate, private positionAndDimension: OverlayPosition & OverlayDimension) {}
private createImageOverlay(link: CmsMediaFormData, imageAltText?: CmsInputTextFormData): OverlayImage {
const image: OverlayImage = {
url: nullSafe(link.value.resolutions.resolutionsMetaData[defaultResolution]?.url, null),
resolution: defaultResolution,
resolutions: nullSafe(link.value.resolutions.resolutionsMetaData, {}),
altText: nullSafe(imageAltText && imageAltText.value, ''),
...this.positionAndDimension,
};
return image;
}
public create(): OverlayImage {
if (this.area.link != null && this.area.link.formData != null) {
const { st_alt_text, st_picture } = this.area.link.formData;
if (st_picture?.value?.resolutions?.resolutionsMetaData != null) {
return this.createImageOverlay(st_picture, st_alt_text);
}
}
}
}