UNPKG

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
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; }