import type { ModifierKey, TOptionalModifierKey } from '../EventTypeDefs'; import type { TOptions } from '../typedefs'; import type { StaticCanvasOptions } from './StaticCanvasOptions'; export interface CanvasTransformOptions { /** * When true, objects can be transformed by one side (unproportionately) * when dragged on the corners that normally would not do that. * @type Boolean * @default * @since fabric 4.0 // changed name and default value */ uniformScaling: boolean; /** * Indicates which key switches uniform scaling. * values: 'altKey', 'shiftKey', 'ctrlKey'. * If `null` or 'none' or any other string that is not a modifier key * feature is disabled. * totally wrong named. this sounds like `uniform scaling` * if Canvas.uniformScaling is true, pressing this will set it to false * and viceversa. * @since 1.6.2 * @type ModifierKey * @default */ uniScaleKey: TOptionalModifierKey; /** * When true, objects use center point as the origin of scale transformation. * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). * @since 1.3.4 * @type Boolean * @default */ centeredScaling: boolean; /** * When true, objects use center point as the origin of rotate transformation. * Backwards incompatibility note: This property replaces "centerTransform" (Boolean). * @since 1.3.4 * @type Boolean * @default */ centeredRotation: boolean; /** * Indicates which key enable centered Transform * values: 'altKey', 'shiftKey', 'ctrlKey'. * If `null` or 'none' or any other string that is not a modifier key * feature is disabled feature disabled. * @since 1.6.2 * @type ModifierKey * @default */ centeredKey: TOptionalModifierKey; /** * Indicates which key enable alternate action on corner * values: 'altKey', 'shiftKey', 'ctrlKey'. * If `null` or 'none' or any other string that is not a modifier key * feature is disabled feature disabled. * @since 1.6.2 * @type ModifierKey * @default */ altActionKey: TOptionalModifierKey; } export interface CanvasSelectionOptions { /** * Indicates whether group selection should be enabled * @type Boolean * @default */ selection: boolean; /** * Indicates which key or keys enable multiple click selection * Pass value as a string or array of strings * values: 'altKey', 'shiftKey', 'ctrlKey'. * If `null` or empty or containing any other string that is not a modifier key * feature is disabled. * @since 1.6.2 * @type ModifierKey|ModifierKey[] * @default */ selectionKey: TOptionalModifierKey | ModifierKey[]; /** * Indicates which key enable alternative selection * in case of target overlapping with active object * values: 'altKey', 'shiftKey', 'ctrlKey'. * For a series of reason that come from the general expectations on how * things should work, this feature works only for preserveObjectStacking true. * If `null` or 'none' or any other string that is not a modifier key * feature is disabled. * @since 1.6.5 * @type null|ModifierKey * @default */ altSelectionKey: TOptionalModifierKey; /** * Color of selection * @type String * @default */ selectionColor: string; /** * Default dash array pattern * If not empty the selection border is dashed * @type Array */ selectionDashArray: number[]; /** * Color of the border of selection (usually slightly darker than color of selection itself) * @type String * @default */ selectionBorderColor: string; /** * Width of a line used in object/group selection * @type Number * @default */ selectionLineWidth: number; /** * Select only shapes that are fully contained in the dragged selection rectangle. * @type Boolean * @default */ selectionFullyContained: boolean; } export interface CanvasCursorOptions { /** * Default cursor value used when hovering over an object on canvas * @type CSSStyleDeclaration['cursor'] * @default move */ hoverCursor: CSSStyleDeclaration['cursor']; /** * Default cursor value used when moving an object on canvas * @type CSSStyleDeclaration['cursor'] * @default move */ moveCursor: CSSStyleDeclaration['cursor']; /** * Default cursor value used for the entire canvas * @type String * @default default */ defaultCursor: CSSStyleDeclaration['cursor']; /** * Cursor value used during free drawing * @type String * @default crosshair */ freeDrawingCursor: CSSStyleDeclaration['cursor']; /** * Cursor value used for disabled elements ( corners with disabled action ) * @type String * @since 2.0.0 * @default not-allowed */ notAllowedCursor: CSSStyleDeclaration['cursor']; } export interface TargetFindOptions { /** * When true, object detection happens on per-pixel basis rather than on per-bounding-box * @type Boolean * @default */ perPixelTargetFind: boolean; /** * Number of pixels around target pixel to tolerate (consider active) during object detection * @type Number * @default */ targetFindTolerance: number; /** * When true, target detection is skipped. Target detection will return always undefined. * click selection won't work anymore, events will fire with no targets. * if something is selected before setting it to true, it will be deselected at the first click. * area selection will still work. check the `selection` property too. * if you deactivate both, you should look into staticCanvas. * @type Boolean * @default */ skipTargetFind: boolean; } export interface CanvasEventsOptions { /** * Indicates if the right click on canvas can output the context menu or not * @type Boolean * @since 1.6.5 * @default */ stopContextMenu: boolean; /** * Indicates if the canvas can fire right click events * @type Boolean * @since 1.6.5 * @default */ fireRightClick: boolean; /** * Indicates if the canvas can fire middle click events * @type Boolean * @since 1.7.8 * @default */ fireMiddleClick: boolean; /** * When the option is enabled, PointerEvent is used instead of TPointerEvent. * @type Boolean * @default */ enablePointerEvents: boolean; } export interface CanvasOptions extends StaticCanvasOptions, CanvasTransformOptions, CanvasSelectionOptions, CanvasCursorOptions, TargetFindOptions, CanvasEventsOptions { /** * Default element class that's given to wrapper (div) element of canvas * @type String * @default * @deprecated customize {@link CanvasDOMManager} instead or access {@link elements} directly */ containerClass: string; /** * Indicates whether objects should remain in current stack position when selected. * When false objects are brought to top and rendered as part of the selection group * @type Boolean * @default */ preserveObjectStacking: boolean; } export type TCanvasOptions = TOptions; export declare const canvasDefaults: TOptions; //# sourceMappingURL=CanvasOptions.d.ts.map