UNPKG

@gamesberry/karmyc-core

Version:

A flexible and powerful layout management system for React applications

151 lines (150 loc) 5.22 kB
import { AreaTypeValue } from '../core/types/actions'; import { IArea } from '../types/areaTypes'; /** * Représente une position d'area. */ export interface AreaPosition { x: number; y: number; } /** * Hook pour obtenir une zone spécifique par ID */ export declare const useAreaById: (areaId: string) => IArea<string>; /** * Hook pour obtenir le layout d'une zone */ export declare const useAreaLayoutById: (areaId: string) => import("../types/areaTypes").AreaLayout | import("../types/areaTypes").AreaRowLayout; /** * Hook pour obtenir la zone active */ export declare const useActiveArea: () => IArea<string> | null; /** * Hook pour obtenir toutes les zones */ export declare const useAllAreas: () => { [key: string]: IArea<string>; }; /** * Hook pour obtenir tous les layouts */ export declare const useAllLayouts: () => { [key: string]: import("../types/areaTypes").AreaLayout | import("../types/areaTypes").AreaRowLayout; }; /** * Hook pour obtenir les erreurs de zones */ export declare const useAreaErrors: () => string[]; /** * Hook pour obtenir la zone racine */ export declare const useRootArea: () => IArea<string> | null; /** * Hook pour obtenir le layout de la zone racine */ export declare const useRootAreaLayout: () => import("../types/areaTypes").AreaLayout | import("../types/areaTypes").AreaRowLayout | null; /** * Hook pour obtenir les viewports */ export declare const useAreaViewports: () => { [key: string]: import("..").Rect; }; /** * Hook pour obtenir la zone à ouvrir */ export declare const useAreaToOpen: () => { position: import("..").Point; area: { type: string; state: any & { sourceId?: string; }; }; } | null; /** * Hook pour obtenir le preview de jointure */ export declare const useJoinPreview: () => import("../core/slices/actions/areas-join-preview").JoinPreviewState | null; /** * Hook pour obtenir l'ID de l'écran actif */ export declare const useActiveScreenId: () => string; /** * Hook pour obtenir les actions de zones */ export declare const useAreaActions: () => { addArea: (area: IArea<AreaTypeValue>) => string; removeArea: (id: string) => void; setActiveArea: (id: string | null) => void; updateArea: (areaData: Partial<IArea<AreaTypeValue>> & { id: string; }) => void; updateLayout: (layoutData: Partial<import("../types/areaTypes").AreaRowLayout> & { id: string; }) => void; setAreaToOpen: (payload: import("../core/slices/areas-slice").AreasState["areaToOpen"]) => void; updateAreaToOpenPosition: (position: import("..").Point) => void; finalizeAreaPlacement: (payload?: { targetId?: string; placement?: import("..").PlaceArea; }) => void; cleanupTemporaryStates: () => void; setJoinPreview: (payload: import("../core/slices/actions/areas-join-preview").JoinPreviewState | null) => void; joinOrMoveArea: (payload: { sourceAreaId: string; targetAreaId: string; direction: import("..").CardinalDirection; }) => void; splitArea: (payload: { areaIdToSplit: string; parentRowId: string | null; horizontal: boolean; corner: import("..").IntercardinalDirection; }) => import("../core/slices/actions/area-split").SplitResult | null; setRowSizes: (payload: { rowId: string; sizes: number[]; }) => void; setViewports: (viewports: Record<string, import("..").Rect>) => void; }; /** * Hook principal optimisé pour la gestion des zones */ export declare function useAreaOptimized(): { createArea: (type: AreaTypeValue, state: any, position?: AreaPosition, id?: string) => string; removeArea: (id: string) => void; setActive: (id: string | null) => void; update: (id: string, changes: Partial<IArea<AreaTypeValue>>) => void; addArea: (area: IArea<AreaTypeValue>) => string; setActiveArea: (id: string | null) => void; updateArea: (areaData: Partial<IArea<AreaTypeValue>> & { id: string; }) => void; updateLayout: (layoutData: Partial<import("../types/areaTypes").AreaRowLayout> & { id: string; }) => void; setAreaToOpen: (payload: import("../core/slices/areas-slice").AreasState["areaToOpen"]) => void; updateAreaToOpenPosition: (position: import("..").Point) => void; finalizeAreaPlacement: (payload?: { targetId?: string; placement?: import("..").PlaceArea; }) => void; cleanupTemporaryStates: () => void; setJoinPreview: (payload: import("../core/slices/actions/areas-join-preview").JoinPreviewState | null) => void; joinOrMoveArea: (payload: { sourceAreaId: string; targetAreaId: string; direction: import("..").CardinalDirection; }) => void; splitArea: (payload: { areaIdToSplit: string; parentRowId: string | null; horizontal: boolean; corner: import("..").IntercardinalDirection; }) => import("../core/slices/actions/area-split").SplitResult | null; setRowSizes: (payload: { rowId: string; sizes: number[]; }) => void; setViewports: (viewports: Record<string, import("..").Rect>) => void; };