@gamesberry/karmyc-core
Version:
A flexible and powerful layout management system for React applications
151 lines (150 loc) • 5.22 kB
TypeScript
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;
};