UNPKG

@thoughtspot/visual-embed-sdk

Version:
146 lines 6.06 kB
/** * Copyright (c) 2023 * * Common utility functions for ThoughtSpot Visual Embed SDK * @summary Utils * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com> */ import { EmbedConfig, QueryParams, RuntimeFilter, CustomisationsInterface, DOMSelector, RuntimeParameter, AllEmbedViewConfig } from './types'; /** * Construct a runtime filters query string from the given filters. * Refer to the following docs for more details on runtime filter syntax: * https://cloud-docs.thoughtspot.com/admin/ts-cloud/apply-runtime-filter.html * https://cloud-docs.thoughtspot.com/admin/ts-cloud/runtime-filter-operators.html * @param runtimeFilters */ export declare const getFilterQuery: (runtimeFilters: RuntimeFilter[]) => string | null; /** * Construct a runtime parameter override query string from the given option. * @param runtimeParameters */ export declare const getRuntimeParameters: (runtimeParameters: RuntimeParameter[]) => string; /** * Return a query param string composed from the given params object * @param queryParams * @param shouldSerializeParamValues */ export declare const getQueryParamString: (queryParams: QueryParams, shouldSerializeParamValues?: boolean) => string; /** * Get a string representation of a dimension value in CSS * If numeric, it is considered in pixels. * @param value */ export declare const getCssDimension: (value: number | string) => string; export declare const getSSOMarker: (markerId: string) => string; /** * Append a string to a URL's hash fragment * @param url A URL * @param stringToAppend The string to append to the URL hash */ export declare const appendToUrlHash: (url: string, stringToAppend: string) => string; /** * * @param url * @param stringToAppend * @param path */ export declare function getRedirectUrl(url: string, stringToAppend: string, path?: string): string; export declare const getEncodedQueryParamsString: (queryString: string) => string; export declare const getOffsetTop: (element: any) => any; export declare const embedEventStatus: { START: string; END: string; }; export declare const setAttributes: (element: HTMLElement, attributes: { [key: string]: string | number | boolean; }) => void; export declare const checkReleaseVersionInBeta: (releaseVersion: string, suppressBetaWarning: boolean) => boolean; export declare const getCustomisations: (embedConfig: EmbedConfig, viewConfig: AllEmbedViewConfig) => CustomisationsInterface; export declare const getRuntimeFilters: (runtimefilters: any) => string; /** * Gets a reference to the DOM node given * a selector. * @param domSelector */ export declare function getDOMNode(domSelector: DOMSelector): HTMLElement; export declare const deepMerge: (target: any, source: any) => { [x: string]: any; }; export declare const getOperationNameFromQuery: (query: string) => string; /** * * @param obj */ export declare function removeTypename(obj: any): any; /** * Sets the specified style properties on an HTML element. * @param {HTMLElement} element - The HTML element to which the styles should be applied. * @param {Partial<CSSStyleDeclaration>} styleProperties - An object containing style * property names and their values. * @example * // Apply styles to an element * const element = document.getElementById('myElement'); * const styles = { * backgroundColor: 'red', * fontSize: '16px', * }; * setStyleProperties(element, styles); */ export declare const setStyleProperties: (element: HTMLElement, styleProperties: Partial<CSSStyleDeclaration>) => void; /** * Removes specified style properties from an HTML element. * @param {HTMLElement} element - The HTML element from which the styles should be removed. * @param {string[]} styleProperties - An array of style property names to be removed. * @example * // Remove styles from an element * const element = document.getElementById('myElement'); * element.style.backgroundColor = 'red'; * const propertiesToRemove = ['backgroundColor']; * removeStyleProperties(element, propertiesToRemove); */ export declare const removeStyleProperties: (element: HTMLElement, styleProperties: string[]) => void; export declare const isUndefined: (value: any) => boolean; export declare const getTypeFromValue: (value: any) => [string, string]; /** * Stores a value in the global `window` object under the `_tsEmbedSDK` namespace. * @param key - The key under which the value will be stored. * @param value - The value to store. * @param options - Additional options. * @param options.ignoreIfAlreadyExists - Does not set if value for key is set. * * @returns The stored value. * * @version SDK: 1.36.2 | ThoughtSpot: * */ export declare function storeValueInWindow<T>(key: string, value: T, options?: { ignoreIfAlreadyExists?: boolean; }): T; /** * Retrieves a stored value from the global `window` object under the `_tsEmbedSDK` namespace. * @param key - The key whose value needs to be retrieved. * @returns The stored value or `undefined` if the key is not found. */ export declare const getValueFromWindow: <T = any>(key: string) => T; /** * Resets the key if it exists in the `window` object under the `_tsEmbedSDK` key. * Returns true if the key was reset, false otherwise. * @param key - Key to reset * @returns - boolean indicating if the key was reset */ export declare function resetValueFromWindow(key: string): boolean; /** * Handle Present HostEvent by entering fullscreen mode * @param iframe The iframe element to make fullscreen */ export declare const handlePresentEvent: (iframe: HTMLIFrameElement) => Promise<void>; /** * Handle ExitPresentMode EmbedEvent by exiting fullscreen mode */ export declare const handleExitPresentMode: () => Promise<void>; export declare const calculateVisibleElementData: (element: HTMLElement) => { top: number; height: number; left: number; width: number; }; //# sourceMappingURL=utils.d.ts.map