@kontent-ai/smart-link
Version:
Kontent.ai Smart Link SDK allowing to automatically inject [smart links](https://docs.kontent.ai/tutorials/develop-apps/build-strong-foundation/set-up-editing-from-preview#a-using-smart-links) to Kontent.ai according to manually specified [HTML data attri
130 lines (129 loc) • 4.58 kB
TypeScript
import { ElementUpdateData } from '../models';
interface ISDKSupportedFeatures {
readonly previewIFrameCurrentUrlHandler: boolean;
readonly refreshHandler: boolean;
readonly updateHandler: boolean;
}
export interface ISDKInitializedMessageData {
readonly enabled: boolean;
readonly languageCodename: string | null;
readonly projectId: string | null;
readonly supportedFeatures: ISDKSupportedFeatures;
}
export interface IClickedMessageMetadata {
readonly elementRect: DOMRect;
}
export interface ISDKStatusMessageData {
readonly enabled: boolean;
}
interface IClickedMessageData {
readonly projectId: string;
readonly languageCodename: string;
}
export interface IContentItemClickedMessageData extends IClickedMessageData {
readonly itemId: string;
}
export interface IContentComponentClickedMessageData extends IContentItemClickedMessageData {
readonly contentComponentId: string;
}
export interface IElementClickedMessageData extends IContentItemClickedMessageData {
readonly contentComponentId?: string;
readonly elementCodename: string;
}
export interface IRefreshMessageData {
readonly projectId: string;
readonly languageCodename: string;
readonly updatedItemCodename: string;
}
export interface IRefreshMessageMetadata {
readonly manualRefresh: boolean;
}
export interface IUpdateReference<T extends string = string> {
readonly id: T;
readonly codename: T;
}
export type IUpdateMessageElement = ElementUpdateData & {
readonly element: IUpdateReference;
};
export interface IUpdateMessageData {
readonly projectId: string;
readonly variant: IUpdateReference;
readonly item: IUpdateReference;
readonly elements: ReadonlyArray<IUpdateMessageElement>;
}
export interface IPreviewIFrameCurrentUrlMessageData {
readonly previewUrl: string;
}
export declare enum InsertPositionPlacement {
After = "after",
Before = "before",
End = "end",
Start = "start"
}
interface IRelativeInsertPosition {
readonly targetId: string;
readonly placement: InsertPositionPlacement.Before | InsertPositionPlacement.After;
}
interface IFixedInsertPosition {
readonly placement: InsertPositionPlacement.Start | InsertPositionPlacement.End;
}
export type InsertPosition = IRelativeInsertPosition | IFixedInsertPosition;
export interface IAddButtonInitialMessageData {
readonly projectId: string;
readonly languageCodename: string;
readonly itemId: string;
readonly contentComponentId?: string;
readonly elementCodename: string;
readonly insertPosition: InsertPosition;
}
export declare enum AddButtonAction {
CreateComponent = "CreateComponent",
CreateLinkedItem = "CreateLinkedItem",
InsertLinkedItem = "InsertLinkedItem"
}
export interface IAddActionMessageData extends IAddButtonInitialMessageData {
readonly action: AddButtonAction;
}
export declare enum AddButtonElementType {
LinkedItems = "LinkedItems",
RichText = "RichText",
Unknown = "Unknown"
}
export declare enum AddButtonPermission {
CreateNew = "createNew",
Edit = "edit",
ViewParent = "viewParent"
}
export declare enum AddButtonPermissionCheckResult {
ItemNotTranslated = "ItemNotTranslated",
Ok = "Ok",
PermissionMissing = "PermissionMissing",
RteWithForbiddenComponents = "RteWithForbiddenComponents",
Unknown = "Unknown"
}
export interface IAddButtonPermissionsServerModel {
readonly elementType: AddButtonElementType;
readonly isParentPublished: boolean;
readonly permissions: ReadonlyMap<AddButtonPermission, AddButtonPermissionCheckResult>;
}
export declare enum IFrameMessageType {
ElementClicked = "kontent-smart-link:element:clicked",
ContentItemClicked = "kontent-smart-link:content-item:clicked",
ContentComponentClicked = "kontent-smart-link:content-component:clicked",
Initialized = "kontent-smart-link:initialized",
Status = "kontent-smart-link:status",
AddInitial = "kontent-smart-link:add:initial",
AddAction = "kontent-smart-link:add:action",
RefreshPreview = "kontent-smart-link:preview:refresh",
UpdatePreview = "kontent-smart-link:preview:update",
PreviewIFrameCurrentUrl = "kontent-smart-link:preview:current-url",
PreviewIFrameCurrentUrlResponse = "kontent-smart-link:preview:current-url:response"
}
export declare enum IFrameResponseType {
AddInitialResponse = "kontent-smart-link:add:initial:response"
}
export interface IFrameResponseMessage {
readonly type: IFrameResponseType;
readonly requestId: string;
}
export {};