ttabs-svelte
Version:
A flexible layout management system with draggable, resizable tiles and tabs for Svelte applications. Like in VSCode
52 lines (51 loc) • 1.42 kB
TypeScript
import type { TTabs } from '../TTabs.svelte';
/**
* Custom error type for layout validation
*/
export declare class LayoutValidationError extends Error {
code: string;
constructor(message: string, code: string);
}
/**
* Function type for layout validators
* @param ttabs The ttabs instance to validate
* @returns true if layout is valid, throws LayoutValidationError otherwise
*/
export type LayoutValidator = (ttabs: TTabs) => boolean;
/**
* Type for validation error handlers
*/
export type ValidationErrorHandler = (error: LayoutValidationError) => void;
/**
* Interface for the validation middleware
*/
export interface ValidationMiddleware {
/**
* Array of validator functions to run
*/
validators: LayoutValidator[];
/**
* Default layout creator function
*/
defaultLayoutCreator?: (ttabs: TTabs) => void;
/**
* Error handlers
*/
errorHandlers: ValidationErrorHandler[];
/**
* Run all validators
* @param ttabs The ttabs instance to validate
* @returns true if layout is valid, false otherwise
*/
validate(ttabs: TTabs): boolean;
/**
* Reset to default layout
* @param ttabs The ttabs instance to reset
*/
resetToDefault(ttabs: TTabs): void;
/**
* Add error handler
* @param handler The error handler to add
*/
addErrorHandler(handler: ValidationErrorHandler): void;
}