import { BasePlugin } from '../base'; import { LOADING_CLASS_NAME } from '../../helpers/constants'; export declare const PLUGIN_KEY = "loading"; export declare const PLUGIN_PRIORITY = 350; export { LOADING_CLASS_NAME }; /** * @plugin Loading * @class Loading * * @description * The loading plugin provides a loading overlay system for Handsontable using the Dialog plugin. * It displays a loading indicator with customizable title, icon, and description. * * In order to enable the loading mechanism, {@link Options#loading} option must be set to `true`. * * The plugin provides several configuration options to customize the loading behavior and appearance: * - `icon`: Loading icon to display HTML (as string) in svg format (default: ``). * - `title`: Loading title to display (default: 'Loading...'). * - `description`: Loading description to display (default: ''). * * @example * * ::: only-for javascript * ```js * // Enable loading plugin with default options * loading: true, * * // Enable loading plugin with custom configuration * loading: { * icon: 'A custom loading icon in SVG format', * title: 'Custom loading title', * description: 'Custom loading description', * } * * // Access to loading plugin instance: * const loadingPlugin = hot.getPlugin('loading'); * * // Show a loading programmatically: * loadingPlugin.show(); * * // Hide the loading programmatically: * loadingPlugin.hide(); * * // Check if dialog is visible: * const isVisible = loadingPlugin.isVisible(); * ``` * ::: * * ::: only-for react * ```jsx * const MyComponent = () => { * const hotRef = useRef(null); * * useEffect(() => { * const hot = hotRef.current.hotInstance; * const loadingPlugin = hot.getPlugin('loading'); * * loadingPlugin.show(); * }, []); * * return ( * * ); * } * ``` * ::: * * ::: only-for angular * ```ts * hotSettings: Handsontable.GridSettings = { * data: data, * loading: { * icon: 'A custom loading icon in SVG format', * title: 'Custom loading title', * description: 'Custom loading description', * } * } * ``` * * ```html * * * ``` * ::: */ export declare class Loading extends BasePlugin { #private; /** * Returns the plugin key used to identify this plugin in Handsontable settings. */ static get PLUGIN_KEY(): string; /** * Returns the priority order used to determine the order in which plugins are initialized. */ static get PLUGIN_PRIORITY(): number; /** * Returns the default settings applied when the plugin is enabled without explicit configuration. */ static get DEFAULT_SETTINGS(): { icon: string; title: string | undefined; description: string; }; /** * Returns an object of validator functions used to type-check each settings property at runtime. */ static get SETTINGS_VALIDATORS(): { icon: (value: unknown) => value is string; title: (value: unknown) => value is string; description: (value: unknown) => value is string; }; /** * Check if the plugin is enabled in the handsontable settings. * * @returns {boolean} */ isEnabled(): boolean; /** * Enable plugin for this Handsontable instance. */ enablePlugin(): void; /** * Update plugin state after Handsontable settings update. */ updatePlugin(): void; /** * Disable plugin for this Handsontable instance. */ disablePlugin(): void; /** * Check if loading dialog is currently visible. * * @returns {boolean} */ isVisible(): boolean; /** * Show loading dialog with optional custom options. * * @param {object} options Custom loading options. * @param {string} options.icon Custom loading icon. * @param {string} options.title Custom loading title. * @param {string} options.description Custom loading description. */ show(options?: {}): void; /** * Hide loading dialog. */ hide(): void; /** * Update loading description without hiding/showing the dialog. * * @param {object} options Custom loading options. * @param {string} options.icon Custom loading icon. * @param {string} options.title Custom loading title. * @param {string} options.description Custom loading description. */ update(options?: unknown): void; /** * Destroy plugin instance. */ destroy(): void; }