UNPKG

advanced-cropper

Version:

The core of the advanced cropper libraries family

112 lines (111 loc) 7.36 kB
import { Boundary, CoordinatesTransform, CoreSettings, CropperImage, CropperInteractions, CropperState, CropperTransitionsSettings, ImageTransform, InitializeSettings, ModifierSettings, MoveDirections, Nullable, PostprocessAction, PostprocessFunction, ResizeAnchor, Rotate, Scale, VisibleArea } from "../types/index"; import { CreateStateAlgorithm, MoveAlgorithm, ReconcileStateAlgorithm, ResizeAlgorithm, SetBoundaryAlgorithm, SetCoordinatesAlgorithm, SetVisibleAreaAlgorithm, TransformImageAlgorithm } from "../state/index"; interface TransitionOptions { transitions?: boolean; } interface InteractionOptions { interaction?: boolean; } interface ImmediatelyOptions { immediately?: boolean; } interface PostprocessOptions { postprocess?: boolean; } interface NormalizeOptions { normalize?: boolean; } type AbstractCropperInstancePostprocess = 'interactionEnd' | 'createState' | 'reconcileState' | 'transformImage' | 'transformImageEnd' | 'setCoordinates' | 'setVisibleArea' | 'setBoundary' | 'moveCoordinates' | 'moveCoordinatesEnd' | 'resizeCoordinates' | 'resizeCoordinatesEnd'; interface AbstractCropperInstanceData { state: CropperState | null; transitions: boolean; interactions: CropperInteractions; } type StateModifier = (state: CropperState | null, settings: CoreSettings) => CropperState | null; type AbstractCropperInstanceSettings = CoreSettings & ModifierSettings & InitializeSettings; type AbstractCropperInstanceProps<Settings extends AbstractCropperInstanceSettings, Instance> = AbstractCropperInstanceParameters<Settings> & AbstractCropperInstanceCallbacks<Instance> & { settings: Settings; }; type AbstractCropperInstanceCallback<Instance> = (instance: NonNullable<Instance>) => void; interface AbstractCropperInstanceCallbacks<Instance = unknown> { getInstance?: () => Nullable<Instance>; onTransitionsStart?: AbstractCropperInstanceCallback<Instance>; onTransitionsEnd?: AbstractCropperInstanceCallback<Instance>; onChange?: AbstractCropperInstanceCallback<Instance>; onResizeEnd?: AbstractCropperInstanceCallback<Instance>; onMoveEnd?: AbstractCropperInstanceCallback<Instance>; onMove?: AbstractCropperInstanceCallback<Instance>; onResize?: AbstractCropperInstanceCallback<Instance>; onTransformImage?: AbstractCropperInstanceCallback<Instance>; onTransformImageEnd?: AbstractCropperInstanceCallback<Instance>; onInteractionStart?: AbstractCropperInstanceCallback<Instance>; onInteractionEnd?: AbstractCropperInstanceCallback<Instance>; onUpdate?: AbstractCropperInstanceCallback<Instance>; } interface AbstractCropperInstanceParameters<Settings extends CoreSettings & InitializeSettings> { transitions?: CropperTransitionsSettings | boolean; postProcess?: PostprocessFunction<Settings> | PostprocessFunction<Settings>[]; setCoordinatesAlgorithm?: SetCoordinatesAlgorithm<Settings>; setVisibleAreaAlgorithm?: SetVisibleAreaAlgorithm<Settings>; setBoundaryAlgorithm?: SetBoundaryAlgorithm<Settings>; transformImageAlgorithm?: TransformImageAlgorithm<Settings>; moveCoordinatesAlgorithm?: MoveAlgorithm<Settings>; resizeCoordinatesAlgorithm?: ResizeAlgorithm<Settings>; createStateAlgorithm?: CreateStateAlgorithm<Settings>; reconcileStateAlgorithm?: ReconcileStateAlgorithm<Settings>; } declare abstract class AbstractCropperInstance<Settings extends AbstractCropperInstanceSettings, Instance = unknown> { protected abstract setData(data: AbstractCropperInstanceData): void; protected abstract getData(): AbstractCropperInstanceData; protected abstract getProps(): AbstractCropperInstanceProps<Settings, Instance>; getTransitions: () => any; getInteractions: () => CropperInteractions; hasInteractions: () => boolean; startTransitions: () => void; protected endTransitions: { (): void; clear(): void; }; protected applyPostProcess: (action: PostprocessAction, state: CropperState) => CropperState; protected updateState: (modifier: StateModifier | CropperState | null, options?: TransitionOptions, callbacks?: (AbstractCropperInstanceCallback<Instance> | undefined)[]) => void; protected setInteractions: (interactions: Partial<CropperInteractions>) => void; resetState: (boundary: Boundary, image: CropperImage) => void; clear: () => void; reconcileState: (options?: TransitionOptions) => void; transformImage: (transform: ImageTransform, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; transformImageEnd: (options?: ImmediatelyOptions & TransitionOptions) => void; zoomImage: (scale: Scale | number, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; moveImage: (left: number, top?: number | undefined, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; flipImage: (horizontal?: boolean | undefined, vertical?: boolean | undefined, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; rotateImage: (rotate: number | Rotate, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; reset: (boundary: Boundary, image: CropperImage) => void; setState: (modifier: CropperState | StateModifier | null, options?: TransitionOptions & ImmediatelyOptions & InteractionOptions & PostprocessOptions) => void; setCoordinates: (transforms: CoordinatesTransform | CoordinatesTransform[], options?: ImmediatelyOptions & TransitionOptions) => void; setVisibleArea: (visibleArea: VisibleArea, options?: ImmediatelyOptions & TransitionOptions) => void; setBoundary: (boundary: Boundary, options?: ImmediatelyOptions & TransitionOptions) => void; moveCoordinates: (directions: Partial<MoveDirections>, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; moveCoordinatesEnd: (options?: ImmediatelyOptions & TransitionOptions) => void; resizeCoordinates: (anchor: ResizeAnchor, directions: Partial<MoveDirections>, parameters?: unknown, options?: InteractionOptions & ImmediatelyOptions & NormalizeOptions & TransitionOptions) => void; resizeCoordinatesEnd: (options?: ImmediatelyOptions & TransitionOptions) => void; getStencilCoordinates: () => { left: number; top: number; width: number; height: number; }; getCoordinates: (options?: { round?: boolean; }) => import("../types/index").Coordinates | null; getVisibleArea: () => { width: number; height: number; top: number; left: number; } | null; getSettings: () => Settings; getState: () => CropperState | null; getTransforms: () => import("../types/index").Transforms; createDefaultState: (boundary: Boundary, image: CropperImage) => CropperState; isConsistent: () => boolean; } export { TransitionOptions, InteractionOptions, ImmediatelyOptions, PostprocessOptions, NormalizeOptions, AbstractCropperInstancePostprocess, AbstractCropperInstanceData, AbstractCropperInstanceSettings, AbstractCropperInstanceProps, AbstractCropperInstanceCallback, AbstractCropperInstanceCallbacks, AbstractCropperInstanceParameters, AbstractCropperInstance };