UNPKG

@gamesberry/karmyc-core

Version:

A flexible and powerful layout management system for React applications

223 lines (222 loc) 10 kB
import { EnhancedHistoryAction, Diff, HistoryResult, HistoryStats } from '../types/historyTypes'; /** * Hook to use the enhanced history system * Inspired by a robust animation editor system */ export declare const useEnhancedHistory: (spaceId: string) => { isActionInProgress: boolean; currentActionId: string | null; lastAction: EnhancedHistoryAction | null; stats: HistoryStats; startAction: (actionId: string) => HistoryResult; submitAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; cancelAction: () => HistoryResult; undo: () => HistoryResult; redo: () => HistoryResult; createSimpleAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; createSelectionAction: (name: string, selectionData: any, diffs?: Diff[]) => HistoryResult; createTransformAction: (name: string, transformData: any, diffs?: Diff[]) => HistoryResult; canUndo: () => boolean; canRedo: () => boolean; getCurrentAction: () => EnhancedHistoryAction | null; getHistoryLength: () => number; getHistoryStats: () => HistoryStats; clearHistory: () => void; updateSelectionState: (selectionState: any) => void; ACTION_TYPES: { readonly CREATE: "CREATE"; readonly UPDATE: "UPDATE"; readonly DELETE: "DELETE"; readonly MOVE: "MOVE"; readonly COPY: "COPY"; readonly PASTE: "PASTE"; readonly SELECT: "SELECT"; readonly DESELECT: "DESELECT"; readonly SELECT_ALL: "SELECT_ALL"; readonly DESELECT_ALL: "DESELECT_ALL"; readonly GROUP: "GROUP"; readonly UNGROUP: "UNGROUP"; readonly TRANSFORM: "TRANSFORM"; readonly ROTATE: "ROTATE"; readonly SCALE: "SCALE"; readonly TRANSLATE: "TRANSLATE"; readonly TIMELINE_UPDATE: "TIMELINE_UPDATE"; readonly KEYFRAME_ADD: "KEYFRAME_ADD"; readonly KEYFRAME_REMOVE: "KEYFRAME_REMOVE"; readonly KEYFRAME_UPDATE: "KEYFRAME_UPDATE"; readonly CUSTOM: "CUSTOM"; }; EVENTS: { readonly ACTION_STARTED: "action-started"; readonly ACTION_SUBMITTED: "action-submitted"; readonly ACTION_CANCELLED: "action-cancelled"; readonly UNDO_PERFORMED: "undo-performed"; readonly REDO_PERFORMED: "redo-performed"; readonly HISTORY_CLEARED: "history-cleared"; readonly STATE_RESTORED: "state-restored"; }; }; /** * Public alias: useHistory (Enhanced is now the only system) */ export declare const useHistory: (spaceId: string) => { isActionInProgress: boolean; currentActionId: string | null; lastAction: EnhancedHistoryAction | null; stats: HistoryStats; startAction: (actionId: string) => HistoryResult; submitAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; cancelAction: () => HistoryResult; undo: () => HistoryResult; redo: () => HistoryResult; createSimpleAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; createSelectionAction: (name: string, selectionData: any, diffs?: Diff[]) => HistoryResult; createTransformAction: (name: string, transformData: any, diffs?: Diff[]) => HistoryResult; canUndo: () => boolean; canRedo: () => boolean; getCurrentAction: () => EnhancedHistoryAction | null; getHistoryLength: () => number; getHistoryStats: () => HistoryStats; clearHistory: () => void; updateSelectionState: (selectionState: any) => void; ACTION_TYPES: { readonly CREATE: "CREATE"; readonly UPDATE: "UPDATE"; readonly DELETE: "DELETE"; readonly MOVE: "MOVE"; readonly COPY: "COPY"; readonly PASTE: "PASTE"; readonly SELECT: "SELECT"; readonly DESELECT: "DESELECT"; readonly SELECT_ALL: "SELECT_ALL"; readonly DESELECT_ALL: "DESELECT_ALL"; readonly GROUP: "GROUP"; readonly UNGROUP: "UNGROUP"; readonly TRANSFORM: "TRANSFORM"; readonly ROTATE: "ROTATE"; readonly SCALE: "SCALE"; readonly TRANSLATE: "TRANSLATE"; readonly TIMELINE_UPDATE: "TIMELINE_UPDATE"; readonly KEYFRAME_ADD: "KEYFRAME_ADD"; readonly KEYFRAME_REMOVE: "KEYFRAME_REMOVE"; readonly KEYFRAME_UPDATE: "KEYFRAME_UPDATE"; readonly CUSTOM: "CUSTOM"; }; EVENTS: { readonly ACTION_STARTED: "action-started"; readonly ACTION_SUBMITTED: "action-submitted"; readonly ACTION_CANCELLED: "action-cancelled"; readonly UNDO_PERFORMED: "undo-performed"; readonly REDO_PERFORMED: "redo-performed"; readonly HISTORY_CLEARED: "history-cleared"; readonly STATE_RESTORED: "state-restored"; }; }; /** * Hook pour utiliser l'historique avec un espace actif automatique */ export declare const useActiveSpaceHistory: () => { isActionInProgress: boolean; currentActionId: string | null; lastAction: EnhancedHistoryAction | null; stats: HistoryStats; startAction: (actionId: string) => HistoryResult; submitAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; cancelAction: () => HistoryResult; undo: () => HistoryResult; redo: () => HistoryResult; createSimpleAction: (name: string, diffs?: Diff[], allowIndexShift?: boolean, modifiedKeys?: string[]) => HistoryResult; createSelectionAction: (name: string, selectionData: any, diffs?: Diff[]) => HistoryResult; createTransformAction: (name: string, transformData: any, diffs?: Diff[]) => HistoryResult; canUndo: () => boolean; canRedo: () => boolean; getCurrentAction: () => EnhancedHistoryAction | null; getHistoryLength: () => number; getHistoryStats: () => HistoryStats; clearHistory: () => void; updateSelectionState: (selectionState: any) => void; ACTION_TYPES: { readonly CREATE: "CREATE"; readonly UPDATE: "UPDATE"; readonly DELETE: "DELETE"; readonly MOVE: "MOVE"; readonly COPY: "COPY"; readonly PASTE: "PASTE"; readonly SELECT: "SELECT"; readonly DESELECT: "DESELECT"; readonly SELECT_ALL: "SELECT_ALL"; readonly DESELECT_ALL: "DESELECT_ALL"; readonly GROUP: "GROUP"; readonly UNGROUP: "UNGROUP"; readonly TRANSFORM: "TRANSFORM"; readonly ROTATE: "ROTATE"; readonly SCALE: "SCALE"; readonly TRANSLATE: "TRANSLATE"; readonly TIMELINE_UPDATE: "TIMELINE_UPDATE"; readonly KEYFRAME_ADD: "KEYFRAME_ADD"; readonly KEYFRAME_REMOVE: "KEYFRAME_REMOVE"; readonly KEYFRAME_UPDATE: "KEYFRAME_UPDATE"; readonly CUSTOM: "CUSTOM"; }; EVENTS: { readonly ACTION_STARTED: "action-started"; readonly ACTION_SUBMITTED: "action-submitted"; readonly ACTION_CANCELLED: "action-cancelled"; readonly UNDO_PERFORMED: "undo-performed"; readonly REDO_PERFORMED: "redo-performed"; readonly HISTORY_CLEARED: "history-cleared"; readonly STATE_RESTORED: "state-restored"; }; }; /** * Hook pour créer des actions d'historique typées */ export declare const useTypedHistoryActions: (spaceId: string) => { create: (data: any) => HistoryResult; update: (data: any, diffs?: Diff[]) => HistoryResult; delete: (data: any) => HistoryResult; move: (data: any, diffs?: Diff[]) => HistoryResult; copy: (data: any) => HistoryResult; paste: (data: any) => HistoryResult; select: (selectionData: any) => HistoryResult; deselect: (selectionData: any) => HistoryResult; selectAll: (selectionData: any) => HistoryResult; deselectAll: (selectionData: any) => HistoryResult; group: (groupData: any, diffs?: Diff[]) => HistoryResult; ungroup: (groupData: any, diffs?: Diff[]) => HistoryResult; transform: (transformData: any, diffs?: Diff[]) => HistoryResult; rotate: (rotateData: any, diffs?: Diff[]) => HistoryResult; scale: (scaleData: any, diffs?: Diff[]) => HistoryResult; translate: (translateData: any, diffs?: Diff[]) => HistoryResult; timelineUpdate: (timelineData: any, diffs?: Diff[]) => HistoryResult; keyframeAdd: (keyframeData: any, diffs?: Diff[]) => HistoryResult; keyframeRemove: (keyframeData: any, diffs?: Diff[]) => HistoryResult; keyframeUpdate: (keyframeData: any, diffs?: Diff[]) => HistoryResult; custom: (name: string, data: any, diffs?: Diff[]) => HistoryResult; }; /** * Hook pour utiliser des actions typées avec l'espace actif */ export declare const useActiveSpaceTypedActions: () => { create: (data: any) => HistoryResult; update: (data: any, diffs?: Diff[]) => HistoryResult; delete: (data: any) => HistoryResult; move: (data: any, diffs?: Diff[]) => HistoryResult; copy: (data: any) => HistoryResult; paste: (data: any) => HistoryResult; select: (selectionData: any) => HistoryResult; deselect: (selectionData: any) => HistoryResult; selectAll: (selectionData: any) => HistoryResult; deselectAll: (selectionData: any) => HistoryResult; group: (groupData: any, diffs?: Diff[]) => HistoryResult; ungroup: (groupData: any, diffs?: Diff[]) => HistoryResult; transform: (transformData: any, diffs?: Diff[]) => HistoryResult; rotate: (rotateData: any, diffs?: Diff[]) => HistoryResult; scale: (scaleData: any, diffs?: Diff[]) => HistoryResult; translate: (translateData: any, diffs?: Diff[]) => HistoryResult; timelineUpdate: (timelineData: any, diffs?: Diff[]) => HistoryResult; keyframeAdd: (keyframeData: any, diffs?: Diff[]) => HistoryResult; keyframeRemove: (keyframeData: any, diffs?: Diff[]) => HistoryResult; keyframeUpdate: (keyframeData: any, diffs?: Diff[]) => HistoryResult; custom: (name: string, data: any, diffs?: Diff[]) => HistoryResult; };