kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
205 lines (204 loc) • 7.32 kB
TypeScript
import { Link, RichTextImage } from '..';
import { ElementContracts } from '../data-contracts';
import { IContentItem } from '../models';
import { ElementModels } from './element-models';
import { ElementType } from './element-type';
export declare namespace Elements {
abstract class BaseElement<TValue> implements ElementModels.IElement<TValue> {
/**
* Element name
*/
name: string;
/**
* Element type
*/
type: ElementType;
/**
* Raw element value (from JSON response)
*/
rawData: ElementContracts.IElementContract;
/**
* Mapped value of element.
* For example, value for number elements are converted to number javascript type
*/
abstract value: TValue;
constructor(data: {
elementWrapper: ElementModels.IElementWrapper;
elementType: ElementType;
});
}
class TextElement extends BaseElement<string> {
/**
* Text value
*/
value: string;
/**
* Represents text element of Kentico Cloud item
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class LinkedItemsElement<TItem = IContentItem> extends BaseElement<TItem[]> {
/**
* Mapped linked items - contains only those items which are present in 'modular_content' section
* of the response which depends on the 'depth' of the query request.
* Codenames of all linked items are stored in 'itemCodenames' property.
*/
value: TItem[];
itemCodenames: string[];
/**
* Represents text element of Kentico Cloud item
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
* @param {IContentItem} mappedLinkedItems - Array of mapped linked items
*/
constructor(elementWrapper: ElementModels.IElementWrapper, mappedLinkedItems: TItem[]);
}
class MultipleChoiceElement extends BaseElement<ElementModels.MultipleChoiceOption[]> {
/**
* Multiple choice options
*/
value: ElementModels.MultipleChoiceOption[];
/**
* Represents multiple choice element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class DateTimeElement extends BaseElement<Date | null> {
/**
* Date time value
*/
value: Date | null;
/**
* Type of the element
*/
type: ElementType;
/**
* Represents date time element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class RichTextElement extends BaseElement<string> {
/**
* Function that is responsible for getting resolved HTML of the element
*/
private resolveRichTextFunc;
/**
* Resolved rich text element result
*/
private resolvedData?;
/**
* Unresolved html value of rich text element
*/
value: string;
/**
* Type of the element
*/
type: ElementType;
/**
* Links
*/
links: Link[];
/**
* Images included within rich text element
*/
images: RichTextImage[];
/**
* Array of linked item codenames
*/
linkedItemCodenames: string[];
/**
* Represents rich text element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
* @param {string[]} linkedItemCodenames - Array of linked codenames
*/
constructor(elementWrapper: ElementModels.IElementWrapper, linkedItemCodenames: string[], data: {
resolveRichTextFunc: () => ElementModels.IRichTextResolverData;
links: Link[];
images: RichTextImage[];
});
resolveData(): ElementModels.IRichTextResolverData;
resolveHtml(): string;
}
class NumberElement extends BaseElement<number | null> {
/**
* Number value of this element
*/
value: number | null;
/**
* Represents number element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class AssetsElement extends BaseElement<ElementModels.AssetModel[]> {
/**
* List of assets used in this element
*/
value: ElementModels.AssetModel[];
/**
* Represents asset element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class UrlSlugElement extends BaseElement<string> {
private resolvedUrl?;
private resolveLinkFunc;
value: string;
/**
* Represents URL slug element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper, data: {
/**
* Callback for resolving link
*/
resolveLinkFunc: () => string;
});
resolveUrl(): string;
}
class TaxonomyElement extends BaseElement<ElementModels.TaxonomyTerm[]> {
/**
* List of assigned taxonomy terms
*/
value: ElementModels.TaxonomyTerm[];
/**
* Taxonomy group
*/
taxonomyGroup: string;
/**
* Represents number element of Kentico Cloud item
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class UnknownElement extends BaseElement<any> {
value: any;
constructor(elementWrapper: ElementModels.IElementWrapper);
}
abstract class CustomElement extends BaseElement<string | null> {
value: string | null;
constructor(elementWrapper: ElementModels.IElementWrapper);
}
class DefaultCustomElement extends BaseElement<string | null> {
/**
* Resolved value of custom element
*/
value: string | null;
/**
* Represents base custom element
* @constructor
* @param {ElementModels.IElementWrapper} elementWrapper - Element data
*/
constructor(elementWrapper: ElementModels.IElementWrapper);
}
}