File
Extends
overlays
|
overlays: literal type
|
Type : literal type
|
Optional
|
import { CmsComponent, Product } from '@spartacus/core';
import { Observable } from 'rxjs';
export interface MediaData {
url: string | null;
resolution: string;
resolutions: {
[k: string]: ResolutionMetaDataElement;
};
altText?: string;
mime?: string;
previewId?: string;
}
export type FontSize = 'medium' | 'big' | 'small';
export interface TextData {
value: string;
fontSize: FontSize;
color: string;
}
/**
* This interface represents information of a category, product or content link.
*
* @export
* @interface LinkData
*/
export interface LinkData {
href: any[] | string | undefined;
product?: Observable<Product>;
tooltip: string;
}
export interface OverlayDimension {
width?: number;
height?: number;
widthRatio?: string;
heightRatio?: string;
}
export interface OverlayPosition {
left?: string;
right?: string;
top?: string;
bottom?: string;
}
export type OverlayText = TextData & OverlayPosition & OverlayDimension;
export type OverlayLink = LinkData & OverlayPosition & OverlayDimension;
export type OverlayImage = MediaData & OverlayPosition & OverlayDimension;
export interface TeaserComponentData extends CmsComponent {
previewId?: string;
media?: MediaData;
href?: string;
overlays?: {
images: OverlayImage[];
texts: OverlayText[];
links: OverlayLink[];
};
}
export interface FsTeaserOverlayFactoryInterface<T> {
create(): T;
}
export interface ResolutionMetaDataElement {
fileSize: number;
extension: string;
mimeType: string;
width: number;
height: number;
url: string;
}
export interface CaasMediaDocument {
_id: string;
fsType: string;
name: string;
displayName: string;
identifier: string;
uid: string;
uidType: string;
fileName: string;
languageDependent: boolean;
mediaType: string;
description: string | null;
metaFormData: Record<string, unknown>;
resolutionsMetaData: {
[k: string]: ResolutionMetaDataElement;
};
locale: {
identifier: string;
country: string;
language: string;
};
previewId: string;
}
export interface AreaItem {
fsType: 'Area';
areaType: 'rect';
leftTop: {
x: number;
y: number;
};
rightBottom: {
x: number;
y: number;
};
}
export interface CmsInputTextFormData {
fsType: 'CMS_INPUT_TEXT';
identifier: string;
value: string;
}
export interface CmsInputComboBoxFormData {
fsType: 'CMS_INPUT_COMBOBOX';
identifier: string;
value: {
fsType: 'Option';
label: string;
identifier: string;
};
}
export interface CmsInputNumberFormData {
fsType: 'CMS_INPUT_NUMBER';
identifier: string;
value: string;
}
export interface CmsMediaFormData {
fsType: 'FS_REFERENCE';
value: {
fsType: 'Media';
url: string;
resolutions: CaasMediaDocument;
};
}
export interface FsIndexFormData {
fsType: 'FS_INDEX';
value: Array<{
fsType: 'Record';
identifier: string;
}>;
}
export interface FsReferenceFormData {
fsType: 'FS_REFERENCE';
value: {
fsType: 'PageRef';
name: string;
identifier: string;
uid: string;
uidType: 'SITESTORE_LEAF';
url: string;
};
}
export interface TextLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
lt_color_r: CmsInputNumberFormData;
lt_color_g: CmsInputNumberFormData;
lt_color_b: CmsInputNumberFormData;
lt_font_size: CmsInputComboBoxFormData;
lt_text: CmsInputTextFormData;
};
};
}
export interface SearchLinkLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
lt_search_term: CmsInputTextFormData;
lt_tooltip_text: CmsInputTextFormData;
};
};
}
export interface CategoryLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
lt_category: FsIndexFormData;
lt_tooltip_text: CmsInputTextFormData;
};
};
}
export interface ProductLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
lt_product: FsIndexFormData;
lt_tooltip_text: CmsInputTextFormData;
};
};
}
export interface ImageLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
st_alt_text: CmsInputTextFormData;
st_picture: CmsMediaFormData;
};
};
}
export interface ContentLinkTemplate extends AreaItem {
link: {
template: {
uid: string;
};
formData: {
lt_page: FsReferenceFormData;
lt_tooltip_text: CmsInputTextFormData;
};
};
}
export interface PictureMetaData {
width: number;
height: number;
mimeType: string;
}
export interface CmsImageMapMedia {
fsType: 'Media';
url: string;
resolutions: CaasMediaDocument;
pictureMetaData: PictureMetaData;
}
export interface CmsImageMapResolution {
fsType: string;
uid: string;
width: number;
height: number;
}
export interface CmsImageMap {
fsType: 'CMS_INPUT_IMAGEMAP';
value: {
areas: Array<ImageLinkTemplate | TextLinkTemplate | SearchLinkLinkTemplate | CategoryLinkTemplate | ProductLinkTemplate>;
media: CmsImageMapMedia;
resolution: CmsImageMapResolution;
};
}
export interface ExpectedTeaserStructureFromCaas extends CmsComponent {
otherProperties?: {
previewId: string;
formData: {
[k: string]: CmsImageMap | CmsInputTextFormData;
};
};
}