@agility/web-studio-sdk
Version:
Standard Development Kit used to enable Web Studio features in Agility CMS
167 lines (156 loc) • 7.14 kB
TypeScript
declare module '@agility/web-studio-sdk/index' {
export {};
}
declare module '@agility/web-studio-sdk/util/applyContentItem' {
/**
* Apply a content item to a component
*/
export const applyContentItem: (contentItem: any) => void;
}
declare module '@agility/web-studio-sdk/util/commentUtils' {
export function getDeepestElementAtCoordinates(element: Element, x: number, y: number): Element | null;
/**
* This will get the index of the unique selector based on the selector and the x y
* in cases where the unique selector isn't unique, we need to find the index of occurrence
*/
export function getSelectorIndex(sel: string, x: number, y: number): number;
/**
* Generates a unique CSS selector for a given DOM element.
*
* @param {Element} element - The DOM element for which to generate the selector.
* @returns {string} - A unique CSS selector that can be used to select the element.
*
*/
export function getUniqueSelector(element: Element): string;
export function getRelativePercentage(deepestEle: Element, x: number, y: number): {
percentageX: number;
percentageY: number;
} | null;
export function getAbsolutePositionFromPercentage(deepestEle: Element, percentageX: number | undefined, percentageY: number | undefined): {
x: number;
y: number;
} | null;
}
declare module '@agility/web-studio-sdk/util/frameEvents' {
import { IUpdatedCommentDictionary } from "@agility/web-studio-sdk/util/initializePreview";
import { TDecoratorMap } from "@agility/web-studio-sdk/util/generateDecoratorMap";
export interface IReadyEventArgs {
windowWidth?: number;
windowScrollableHeight?: number;
windowHeight?: number;
url?: string;
hasPageDecorators?: boolean;
hasComponentDecorators?: boolean;
hasFieldDecorators?: boolean;
}
export interface INavigationEventArgs {
url: string;
pageID: number | null;
contentID: number | null;
windowScrollableHeight?: number;
windowHeight?: number;
}
export interface IEditComponentEventArgs {
contentID: number | null;
pageID: number | null;
}
export interface IEditFieldEventArgs {
fieldName: string;
contentID: number | null;
pageID: number | null;
}
export interface IScrollEventArgs {
scrollX: number;
scrollY: number;
windowScrollableHeight: number;
windowWidth: number;
windowHeight: number;
}
export interface ICommentDictionaryUpdatedEventArgs {
updatedCommentDictionary: IUpdatedCommentDictionary;
}
export interface IWindowResizeEventArgs {
windowWidth: number;
windowHeight: number;
}
export interface IRefreshEventArgs {
url: string;
}
export interface ISetCommentCoordsEventArgs {
percentageOffsetX?: number;
percentageOffsetY?: number;
uniqueSelector: string;
elementIndex: number;
isDragEndEvent?: boolean;
threadId?: string;
calcFallbackX?: number;
calcFallbackY?: number;
originX?: number;
originY?: number;
}
export interface IDecoratorMapUpdatedEventArgs {
decoratorMap: TDecoratorMap;
}
export type TFrameEventArgs = IReadyEventArgs | INavigationEventArgs | IEditComponentEventArgs | IEditFieldEventArgs | IScrollEventArgs | IWindowResizeEventArgs | IRefreshEventArgs | ISetCommentCoordsEventArgs | ICommentDictionaryUpdatedEventArgs | IDecoratorMapUpdatedEventArgs | null;
export const dispatchReadyEvent: ({ windowWidth, windowHeight, url, windowScrollableHeight, hasComponentDecorators, hasFieldDecorators, hasPageDecorators, }: IReadyEventArgs) => void;
export const dispatchNavigationEvent: (args: INavigationEventArgs) => void;
export const dispatchEditComponentEvent: ({ contentID, pageID, }: IEditComponentEventArgs) => void;
export const dispatchEditFieldEvent: ({ fieldName, contentID, pageID, }: IEditFieldEventArgs) => void;
export const dispatchScrollEvent: ({ scrollY, scrollX, windowWidth, windowHeight, }: IScrollEventArgs) => void;
export const dispatchWindowResizeEvent: ({ windowWidth, windowHeight, }: IWindowResizeEventArgs) => void;
export const dispatchSetCommentCoordsEvent: ({ percentageOffsetX, percentageOffsetY, uniqueSelector, elementIndex, isDragEndEvent, threadId, calcFallbackX, calcFallbackY, originX, originY }: ISetCommentCoordsEventArgs) => void;
export const dispatchCommentDictionaryUpdatedEvent: ({ updatedCommentDictionary, }: ICommentDictionaryUpdatedEventArgs) => void;
export const dispatchRefreshEvent: ({ url }: IRefreshEventArgs) => void;
export const dispatchDecoratorMapUpdatedEvent: ({ decoratorMap, }: IDecoratorMapUpdatedEventArgs) => void;
}
declare module '@agility/web-studio-sdk/util/generateDecoratorMap' {
export type TDecoratorMap = Map<number, string[]>;
export const generateDecoratorMap: () => TDecoratorMap | undefined;
}
declare module '@agility/web-studio-sdk/util/getGuid' {
export const getGuid: (file: string) => string | null;
}
declare module '@agility/web-studio-sdk/util/index' {
import { initCSSAndPreviewPanel } from "@agility/web-studio-sdk/util/initCSSAndPreviewPanel";
import { initComponents } from "@agility/web-studio-sdk/util/initComponents";
import { applyContentItem } from "@agility/web-studio-sdk/util/applyContentItem";
import { initializePreview } from "@agility/web-studio-sdk/util/initializePreview";
import { invokeFrameEvent } from "@agility/web-studio-sdk/util/invokeFrameEvent";
import { getGuid } from "@agility/web-studio-sdk/util/getGuid";
export { initCSSAndPreviewPanel, initComponents, applyContentItem, initializePreview, invokeFrameEvent, getGuid, };
}
declare module '@agility/web-studio-sdk/util/initCSSAndPreviewPanel' {
export const initCSSAndPreviewPanel: () => void;
}
declare module '@agility/web-studio-sdk/util/initComponents' {
/**
* Initialize the components on the site
*/
export const initComponents: () => void;
}
declare module '@agility/web-studio-sdk/util/initializePreview' {
interface initializePreviewArgs {
setIsInitialized: (state: boolean) => void;
}
export interface IUpdatedCommentDictionary {
[threadID: string]: {
uniqueSelector?: string;
percentageOffsetX?: number;
percentageOffsetY?: number;
x?: number;
y?: number;
elementIndex?: number;
};
}
export const initializePreview: ({ setIsInitialized, }: initializePreviewArgs) => void;
export {};
}
declare module '@agility/web-studio-sdk/util/invokeFrameEvent' {
import { TFrameEventArgs } from "@agility/web-studio-sdk/util/frameEvents";
export type TFrameEvents = "ready" | "navigation" | "edit-component" | "edit-field" | "sdk-scroll" | "sdk-window-resize" | "sdk-refresh" | "set-comment-coords" | "comment-dictionary-updated" | "decorator-map-updated" | "set-comment-coords-on-drag-end";
export const invokeFrameEvent: (messageType: TFrameEvents, arg: TFrameEventArgs) => void;
}
declare module '@agility/web-studio-sdk' {
import main = require('@agility/web-studio-sdk/src/index');
export = main;
}