Skip to content

IText

Defined in: src/shapes/IText/IText.ts:123

changed

selection:changed

editing:entered

editing:exited

dragstart

drag drag event firing on the drag source

dragend

copy

cut

paste

Move cursor: left, right, up, down
Select character: shift + left, shift + right
Select text vertically: shift + up, shift + down
Move cursor by word: alt + left, alt + right
Select words: shift + alt + left, shift + alt + right
Move cursor to line start/end: cmd + left, cmd + right or home, end
Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
Jump to start/end of text: cmd + up, cmd + down
Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
Delete character: backspace
Delete word: alt + backspace
Delete line: cmd + backspace
Forward delete: delete
Copy text: ctrl/cmd + c
Paste text: ctrl/cmd + v
Cut text: ctrl/cmd + x
Select entire text: ctrl/cmd + a
Quit editing tab or esc
Position cursor: click/touch
Create selection: click/touch & drag
Create selection: click & shift + click
Select word: double click
Select line: triple click
  • ITextClickBehavior<Props, SProps, EventSpec>

Props extends TOptions<ITextProps> = Partial<ITextProps>

SProps extends SerializedITextProps = SerializedITextProps

EventSpec extends ITextEvents = ITextEvents

  • UniqueITextProps

new IText<Props, SProps, EventSpec>(text, options?): IText<Props, SProps, EventSpec>

Defined in: src/shapes/IText/IText.ts:236

Constructor

string

Text string

Props

Options object

IText<Props, SProps, EventSpec>

ITextClickBehavior<Props, SProps, EventSpec>.constructor

optional __corner: string

Defined in: src/shapes/Object/InteractiveObject.ts:105

keeps the value of the last hovered corner during mouse move. 0 is no corner, or ‘mt’, ‘ml’, ‘mtr’ etc.. It should be private, but there is no harm in using it as a read-only property. this isn’t cleaned automatically. Non selected objects may have wrong values

ITextClickBehavior.__corner


__lineHeights: number[]

Defined in: src/shapes/Text/Text.ts:411

ITextClickBehavior.__lineHeights


__lineWidths: number[]

Defined in: src/shapes/Text/Text.ts:412

ITextClickBehavior.__lineWidths


_controlsVisibility: Record<string, boolean>

Defined in: src/shapes/Object/InteractiveObject.ts:112

a map of control visibility for this object. this was left when controls were introduced to not break the api too much this takes priority over the generic control visibility

ITextClickBehavior._controlsVisibility


_fontSizeMult: number

Defined in: src/shapes/Text/Text.ts:339

Text Line proportion to font Size (in pixels)

ITextClickBehavior._fontSizeMult


optional _scaling: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:134

A boolean used from the gesture module to keep tracking of a scaling action when there is no scaling transform in place. This is an edge case and is used twice in all codebase. Probably added to keep track of some performance issues

use git blame to investigate why it was added DON’T USE IT. WE WILL TRY TO REMOVE IT

ITextClickBehavior._scaling


_text: string[]

Defined in: src/shapes/Text/Text.ts:409

ITextClickBehavior._text


_textLines: string[][]

Defined in: src/shapes/Text/Text.ts:406

same as textlines, but each line is an array of graphemes as split by splitByGrapheme

ITextClickBehavior._textLines


_unwrappedTextLines: string[][]

Defined in: src/shapes/Text/Text.ts:408

ITextClickBehavior._unwrappedTextLines


absolutePositioned: boolean

Defined in: src/shapes/Object/Object.ts:215

Meaningful ONLY when the object is used as clipPath. if true, the clipPath will have its top and left relative to canvas, and will not be influenced by the object transform. This will make the clipPath relative to the canvas, but clipping just a particular object. WARNING this is beta, this feature may change or be renamed. since 2.4.0

false

ITextClickBehavior.absolutePositioned


aCoords: TCornerPoint

Defined in: src/shapes/Object/ObjectGeometry.ts:63

Describe object’s corner position in scene coordinates. The coordinates are derived from the following: left, top, width, height, scaleX, scaleY, skewX, skewY, angle, strokeWidth. The coordinates do not depend on viewport changes. The coordinates get updated with setCoords. You can calculate them without updating with ()

ITextClickBehavior.aCoords


angle: TDegree

Defined in: src/shapes/Object/ObjectGeometry.ts:583

Angle of rotation of an object (in degrees)

0

ITextClickBehavior.angle


backgroundColor: string

Defined in: src/shapes/Object/Object.ts:202

Background color of an object. takes css colors https://www.w3.org/TR/css-color-3/

ITextClickBehavior.backgroundColor


borderColor: string

Defined in: src/shapes/Object/InteractiveObject.ts:74

Color of controlling borders of an object (when it’s active)

rgb(178,204,255)

ITextClickBehavior.borderColor


borderDashArray: null | number[]

Defined in: src/shapes/Object/InteractiveObject.ts:75

Array specifying dash pattern of an object’s borders (hasBorder must be true)

1.6.2

ITextClickBehavior.borderDashArray


borderOpacityWhenMoving: number

Defined in: src/shapes/Object/InteractiveObject.ts:76

Opacity of object’s controlling borders when object is active and moving

0.4

ITextClickBehavior.borderOpacityWhenMoving


borderScaleFactor: number

Defined in: src/shapes/Object/InteractiveObject.ts:77

Scale factor for the border of the objects ( selection box and controls stroke ). Bigger number will make a thicker border border default value is 1, so this scale value is equal to a border and control strokeWidth. If you need to divide border from control strokeWidth you will need to write your own render function for controls

1

ITextClickBehavior.borderScaleFactor


caching: boolean

Defined in: src/shapes/IText/IText.ts:215

Indicates whether internal text char widths can be cached


centeredRotation: boolean

Defined in: src/shapes/Object/Object.ts:216

When true the object will rotate on its center. When false will rotate around the origin point defined by originX and originY. The value of this property is IGNORED during a transform if the canvas has already centeredRotation set to true The object method rotate will always consider this property and never the canvas’s one.

1.3.4

ITextClickBehavior.centeredRotation


centeredScaling: boolean

Defined in: src/shapes/Object/Object.ts:217

When true, this object will use center point as the origin of transformation when being scaled via the controls.

1.3.4

ITextClickBehavior.centeredScaling


charSpacing: number

Defined in: src/shapes/Text/Text.ts:347

additional space between characters expressed in thousands of em unit

ITextClickBehavior.charSpacing


optional clipPath: BaseFabricObject<Partial<ObjectProps>, SerializedObjectProps, ObjectEvents>

Defined in: src/shapes/Object/Object.ts:213

ITextClickBehavior.clipPath


optional clipPathId: string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:15

When an object is being exported as SVG as a clippath, a reference inside the SVG is needed. This reference is a UID in the fabric namespace and is temporary stored here.

ITextClickBehavior.clipPathId


compositionColor: string

Defined in: src/shapes/IText/IText.ts:208


compositionEnd: number

Defined in: src/shapes/IText/IText.ts:147

ITextClickBehavior.compositionEnd


compositionStart: number

Defined in: src/shapes/IText/IText.ts:145

ITextClickBehavior.compositionStart


controls: TControlSet

Defined in: src/shapes/Object/InteractiveObject.ts:118

holds the controls for the object. controls are added by default_controls.js

ITextClickBehavior.controls


cornerColor: string

Defined in: src/shapes/Object/InteractiveObject.ts:68

Color of controlling corners of an object (when it’s active)

rgb(178,204,255)

ITextClickBehavior.cornerColor


cornerDashArray: null | number[]

Defined in: src/shapes/Object/InteractiveObject.ts:71

Array specifying dash pattern of an object’s control (hasBorder must be true)

1.6.2

null

ITextClickBehavior.cornerDashArray


cornerSize: number

Defined in: src/shapes/Object/InteractiveObject.ts:65

Size of object’s controlling corners (in pixels)

13

ITextClickBehavior.cornerSize


cornerStrokeColor: string

Defined in: src/shapes/Object/InteractiveObject.ts:69

Color of controlling corners of an object (when it’s active and transparentCorners false)

1.6.2

''

ITextClickBehavior.cornerStrokeColor


cornerStyle: "circle" | "rect"

Defined in: src/shapes/Object/InteractiveObject.ts:70

Specify style of control, ‘rect’ or ‘circle’ This is deprecated. In the future there will be a standard control render And you can swap it with one of the alternative proposed with the control api

1.6.2

'rect'

ITextClickBehavior.cornerStyle


ctrlKeysMapDown: TKeyMapIText

Defined in: src/shapes/IText/ITextKeyBehavior.ts:42

For functionalities on keyDown + ctrl || cmd

ITextClickBehavior.ctrlKeysMapDown


ctrlKeysMapUp: TKeyMapIText

Defined in: src/shapes/IText/ITextKeyBehavior.ts:37

For functionalities on keyUp + ctrl || cmd

ITextClickBehavior.ctrlKeysMapUp


cursorColor: string

Defined in: src/shapes/IText/IText.ts:192

Color of text cursor color in editing mode. if not set (default) will take color from the text. if set to a color value that fabric can understand, it will be used instead of the color of the text at the current position.


cursorDelay: number

Defined in: src/shapes/IText/IText.ts:199

Delay between cursor blink (in ms)

ITextClickBehavior.cursorDelay


cursorDuration: number

Defined in: src/shapes/IText/IText.ts:206

Duration of cursor fade in (in ms)

ITextClickBehavior.cursorDuration


cursorWidth: number

Defined in: src/shapes/IText/IText.ts:182

Width of cursor (in px)

ITextClickBehavior.cursorWidth


deltaY: number

Defined in: src/shapes/Text/Text.ts:354

Baseline shift, styles only, keep at 0 for the main text object

ITextClickBehavior.deltaY


direction: CanvasDirection

Defined in: src/shapes/Text/Text.ts:367

WARNING: EXPERIMENTAL. NOT SUPPORTED YET determine the direction of the text. This has to be set manually together with textAlign and originX for proper experience. some interesting link for the future https://www.w3.org/International/questions/qa-bidi-unicode-controls

4.5.0

ITextClickBehavior.direction


dirty: boolean

Defined in: src/shapes/Object/Object.ts:242

When set to true, object’s cache will be rerendered next render call. since 1.7.0

true

ITextClickBehavior.dirty


editable: boolean

Defined in: src/shapes/IText/IText.ts:168

Indicates whether a text can be edited

ITextClickBehavior.editable


editingBorderColor: string

Defined in: src/shapes/IText/IText.ts:175

Border color of text object while it’s in editing mode

ITextClickBehavior.editingBorderColor


evented: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:82

When set to false, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4

ITextClickBehavior.evented


excludeFromExport: boolean

Defined in: src/shapes/Object/Object.ts:209

When true, object is not exported in OBJECT/JSON

1.6.3

ITextClickBehavior.excludeFromExport


fill: null | string | TFiller

Defined in: src/shapes/Object/Object.ts:192

ITextClickBehavior.fill


fillRule: CanvasFillRule

Defined in: src/shapes/Object/Object.ts:193

Fill rule used to fill an object accepted values are nonzero, evenodd Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use globalCompositeOperation instead)

nonzero

ITextClickBehavior.fillRule


flipX: boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:569

When true, an object is rendered as flipped horizontally

false

ITextClickBehavior.flipX


flipY: boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:570

When true, an object is rendered as flipped vertically

false

ITextClickBehavior.flipY


fontFamily: string

Defined in: src/shapes/Text/Text.ts:188

Font family

ITextClickBehavior.fontFamily


fontSize: number

Defined in: src/shapes/Text/Text.ts:174

Font size (in pixels)

ITextClickBehavior.fontSize


fontStyle: string

Defined in: src/shapes/Text/Text.ts:224

Font style . Possible values: "", “normal”, “italic” or “oblique”.

ITextClickBehavior.fontStyle


fontWeight: string | number

Defined in: src/shapes/Text/Text.ts:181

Font weight (e.g. bold, normal, 400, 600, 800)

ITextClickBehavior.fontWeight


globalCompositeOperation: GlobalCompositeOperation

Defined in: src/shapes/Object/Object.ts:201

Composite rule used for canvas globalCompositeOperation

ITextClickBehavior.globalCompositeOperation


hasBorders: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:78

When set to false, object’s controlling borders are not rendered

ITextClickBehavior.hasBorders


hasControls: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:72

When set to false, object’s controls are not displayed and can not be used to manipulate object

true

ITextClickBehavior.hasControls


height: number

Defined in: src/shapes/Object/ObjectGeometry.ts:568

Object height

ITextClickBehavior.height


hiddenTextarea: null | HTMLTextAreaElement

Defined in: src/shapes/IText/ITextKeyBehavior.ts:44

ITextClickBehavior.hiddenTextarea


optional hiddenTextareaContainer: null | HTMLElement

Defined in: src/shapes/IText/ITextKeyBehavior.ts:54

DOM container to append the hiddenTextarea. An alternative to attaching to the document.body. Useful to reduce laggish redraw of the full document.body tree and also with modals event capturing that won’t let the textarea take focus.

ITextClickBehavior.hiddenTextareaContainer


hoverCursor: null | string

Defined in: src/shapes/Object/InteractiveObject.ts:86

Default cursor value used when hovering over this object on canvas

null

ITextClickBehavior.hoverCursor


includeDefaultValues: boolean

Defined in: src/shapes/Object/Object.ts:208

When false, default object’s values are not included in its serialization

ITextClickBehavior.includeDefaultValues


optional initialized: true

Defined in: src/shapes/Text/Text.ts:413

ITextClickBehavior.initialized


inverted: boolean

Defined in: src/shapes/Object/Object.ts:214

Meaningful ONLY when the object is used as clipPath. if true, the clipPath will make the object clip to the outside of the clipPath since 2.4.0

false

ITextClickBehavior.inverted


isEditing: boolean

Defined in: src/shapes/IText/IText.ts:161

Indicates whether text is in editing mode

ITextClickBehavior.isEditing


optional isMoving: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:124

internal boolean to signal the code that the object is part of the move action.

ITextClickBehavior.isMoving


keysMap: TKeyMapIText

Defined in: src/shapes/IText/ITextKeyBehavior.ts:30

For functionalities on keyDown Map a special key to a function of the instance/prototype If you need different behavior for ESC or TAB or arrows, you have to change this map setting the name of a function that you build on the IText or your prototype. the map change will affect all Instances unless you need for only some text Instances in that case you have to clone this object and assign your Instance. this.keysMap = Object.assign({}, this.keysMap); The function must be in IText.prototype.myFunction And will receive event as args[0]

ITextClickBehavior.keysMap


keysMapRtl: TKeyMapIText

Defined in: src/shapes/IText/ITextKeyBehavior.ts:32

ITextClickBehavior.keysMapRtl


left: number

Defined in: src/shapes/Object/ObjectGeometry.ts:566

Left position of an object. Note that by default it’s relative to object left. You can change this by setting FabricObject#originX

0

ITextClickBehavior.left


lineHeight: number

Defined in: src/shapes/Text/Text.ts:231

Line height

ITextClickBehavior.lineHeight


linethrough: boolean

Defined in: src/shapes/Text/Text.ts:209

Text decoration linethrough.

ITextClickBehavior.linethrough


lockMovementX: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:56

When true, object horizontal movement is locked

ITextClickBehavior.lockMovementX


lockMovementY: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:57

When true, object vertical movement is locked

ITextClickBehavior.lockMovementY


lockRotation: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:58

When true, object rotation is locked

ITextClickBehavior.lockRotation


lockScalingFlip: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:63

When true, object cannot be flipped by scaling into negative values

ITextClickBehavior.lockScalingFlip


lockScalingX: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:59

When true, object horizontal scaling is locked

ITextClickBehavior.lockScalingX


lockScalingY: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:60

When true, object vertical scaling is locked

ITextClickBehavior.lockScalingY


lockSkewingX: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:61

When true, object horizontal skewing is locked

ITextClickBehavior.lockSkewingX


lockSkewingY: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:62

When true, object vertical skewing is locked

ITextClickBehavior.lockSkewingY


optional matrixCache: TMatrixCache

Defined in: src/shapes/Object/ObjectGeometry.ts:73

storage cache for object full transform matrix

ITextClickBehavior.matrixCache


MIN_TEXT_WIDTH: number

Defined in: src/shapes/Text/Text.ts:391

contains the min text width to avoid getting 0

ITextClickBehavior.MIN_TEXT_WIDTH


minScaleLimit: number

Defined in: src/shapes/Object/Object.ts:187

Minimum allowed scale value of an object

0

ITextClickBehavior.minScaleLimit


moveCursor: null | string

Defined in: src/shapes/Object/InteractiveObject.ts:87

Default cursor value used when moving this object on canvas

null

ITextClickBehavior.moveCursor


noScaleCache: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:51

When true, cache does not get updated during scaling. The picture will get blocky if scaled too much and will be redrawn with correct details at the end of scaling. this setting is performance and application dependant. default to true since 1.7.0

true

ITextClickBehavior.noScaleCache


objectCaching: boolean

Defined in: src/shapes/Object/Object.ts:211

When true, object is cached on an additional canvas. When false, object is not cached unless necessary ( clipPath ) default to true

1.7.0

true

ITextClickBehavior.objectCaching


oCoords: Record<string, TOCoord>

Defined in: src/shapes/Object/InteractiveObject.ts:95

The object’s controls’ position in viewport coordinates Calculated by Control#positionHandler and Control#calcCornerCoords, depending on padding. corner/touchCorner describe the 4 points forming the interactive area of the corner. Used to draw and locate controls.

ITextClickBehavior.oCoords


opacity: number

Defined in: src/shapes/Object/Object.ts:189

Opacity of an object

1

ITextClickBehavior.opacity


originX: TOriginX

Defined in: src/shapes/Object/ObjectGeometry.ts:578

ITextClickBehavior.originX


originY: TOriginY

Defined in: src/shapes/Object/ObjectGeometry.ts:582

ITextClickBehavior.originY


overline: boolean

Defined in: src/shapes/Text/Text.ts:202

Text decoration overline.

ITextClickBehavior.overline


optional ownMatrixCache: TMatrixCache

Defined in: src/shapes/Object/ObjectGeometry.ts:68

storage cache for object transform matrix

ITextClickBehavior.ownMatrixCache


padding: number

Defined in: src/shapes/Object/ObjectGeometry.ts:53

Padding between object and its controlling borders (in pixels)

0

ITextClickBehavior.padding


paintFirst: "fill" | "stroke"

Defined in: src/shapes/Object/Object.ts:191

Determines if the fill or the stroke is drawn first (one of “fill” or “stroke”)

ITextClickBehavior.paintFirst


optional parent: Group

Defined in: src/shapes/Object/Object.ts:1606

A reference to the parent of the object Used to keep the original parent ref when the object has been added to an ActiveSelection, hence loosing the group ref

ITextClickBehavior.parent


optional path: Path<Partial<PathProps>, SerializedPathProps, ObjectEvents>

Defined in: src/shapes/Text/Text.ts:296

Path that the text should follow. since 4.6.0 the path will be drawn automatically. if you want to make the path visible, give it a stroke and strokeWidth or fill value if you want it to be hidden, assign visible = false to the path. This feature is in BETA, and SVG import/export is not yet supported.

const textPath = new Text('Text on a path', {
top: 150,
left: 150,
textAlign: 'center',
charSpacing: -50,
path: new Path('M 0 0 C 50 -100 150 -100 200 0', {
strokeWidth: 1,
visible: false
}),
pathSide: 'left',
pathStartOffset: 0
});

ITextClickBehavior.path


pathAlign: TPathAlign

Defined in: src/shapes/Text/Text.ts:322

How text is aligned to the path. This property determines the perpendicular position of each character relative to the path. (one of “baseline”, “center”, “ascender”, “descender”) This feature is in BETA, and its behavior may change

ITextClickBehavior.pathAlign


pathSide: TPathSide

Defined in: src/shapes/Text/Text.ts:312

Which side of the path the text should be drawn on. Only used when text has a path

ITextClickBehavior.pathSide


pathStartOffset: number

Defined in: src/shapes/Text/Text.ts:304

Offset amount for text path starting position Only used when text has a path

ITextClickBehavior.pathStartOffset


perPixelTargetFind: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:83

When set to true, objects are “found” on canvas on per-pixel basis rather than according to bounding box

ITextClickBehavior.perPixelTargetFind


scaleX: number

Defined in: src/shapes/Object/ObjectGeometry.ts:571

Object scale factor (horizontal)

1

ITextClickBehavior.scaleX


scaleY: number

Defined in: src/shapes/Object/ObjectGeometry.ts:572

Object scale factor (vertical)

1

ITextClickBehavior.scaleY


selectable: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:81

When set to false, an object can not be selected for modification (using either point-click-based or group-based selection). But events still fire on it.

ITextClickBehavior.selectable


selectionBackgroundColor: string

Defined in: src/shapes/Object/InteractiveObject.ts:79

Selection Background color of an object. colored layer behind the object when it is active. does not mix good with globalCompositeOperation methods.

ITextClickBehavior.selectionBackgroundColor


selectionColor: string

Defined in: src/shapes/IText/IText.ts:154

Color of text selection


selectionEnd: number

Defined in: src/shapes/IText/IText.ts:143

Index where text selection ends

UniqueITextProps.selectionEnd

ITextClickBehavior.selectionEnd


selectionStart: number

Defined in: src/shapes/IText/IText.ts:136

Index where text selection starts (or where cursor is when there is no selection)

UniqueITextProps.selectionStart

ITextClickBehavior.selectionStart


shadow: null | Shadow

Defined in: src/shapes/Object/Object.ts:204

ITextClickBehavior.shadow


skewX: number

Defined in: src/shapes/Object/ObjectGeometry.ts:573

Angle of skew on x axes of an object (in degrees)

0

ITextClickBehavior.skewX


skewY: number

Defined in: src/shapes/Object/ObjectGeometry.ts:574

Angle of skew on y axes of an object (in degrees)

0

ITextClickBehavior.skewY


optional snapAngle: TDegree

Defined in: src/shapes/Object/InteractiveObject.ts:53

The angle that an object will lock to while rotating.

ITextClickBehavior.snapAngle


optional snapThreshold: TDegree

Defined in: src/shapes/Object/InteractiveObject.ts:54

The angle difference from the current snapped angle in which snapping should occur. When undefined, the snapThreshold will default to the snapAngle.

ITextClickBehavior.snapThreshold


stroke: null | string | TFiller

Defined in: src/shapes/Object/Object.ts:194

ITextClickBehavior.stroke


strokeDashArray: null | number[]

Defined in: src/shapes/Object/Object.ts:195

Array specifying dash pattern of an object’s stroke (stroke must be defined)

null;

ITextClickBehavior.strokeDashArray


strokeDashOffset: number

Defined in: src/shapes/Object/Object.ts:196

Line offset of an object’s stroke

0

ITextClickBehavior.strokeDashOffset


strokeLineCap: CanvasLineCap

Defined in: src/shapes/Object/Object.ts:197

Line endings style of an object’s stroke (one of “butt”, “round”, “square”)

butt

ITextClickBehavior.strokeLineCap


strokeLineJoin: CanvasLineJoin

Defined in: src/shapes/Object/Object.ts:198

Corner style of an object’s stroke (one of “bevel”, “round”, “miter”)

ITextClickBehavior.strokeLineJoin


strokeMiterLimit: number

Defined in: src/shapes/Object/Object.ts:199

Maximum miter length (used for strokeLineJoin = “miter”) of an object’s stroke

4

ITextClickBehavior.strokeMiterLimit


strokeUniform: boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:585

When false, the stoke width will scale with the object. When true, the stroke will always match the exact pixel size entered for stroke width. this Property does not work on Text classes or drawing call that uses strokeText,fillText methods default to false

2.6.0

false
false

ITextClickBehavior.strokeUniform


strokeWidth: number

Defined in: src/shapes/Object/ObjectGeometry.ts:584

Width of a stroke used to render this object

1

ITextClickBehavior.strokeWidth


styles: TextStyle

Defined in: src/shapes/Text/Text.ts:272

ITextClickBehavior.styles


subscript: object

Defined in: src/shapes/Text/Text.ts:252

Subscript schema object (minimum overlap)

baseline: number

baseline-shift factor (downwards)

0.11

size: number

fontSize factor

0.6

ITextClickBehavior.subscript


superscript: object

Defined in: src/shapes/Text/Text.ts:236

Superscript schema object (minimum overlap)

baseline: number

baseline-shift factor (upwards)

-0.35

size: number

fontSize factor

0.6

ITextClickBehavior.superscript


text: string

Defined in: src/shapes/Text/Text.ts:167

ITextClickBehavior.text


textAlign: string

Defined in: src/shapes/Text/Text.ts:217

Text alignment. Possible values: “left”, “center”, “right”, “justify”, “justify-left”, “justify-center” or “justify-right”.

ITextClickBehavior.textAlign


textBackgroundColor: string

Defined in: src/shapes/Text/Text.ts:270

Background color of text lines

ITextClickBehavior.textBackgroundColor


textLines: string[]

Defined in: src/shapes/Text/Text.ts:399

contains the the text of the object, divided in lines as they are displayed on screen. Wrapping will divide the text independently of line breaks

ITextClickBehavior.textLines


top: number

Defined in: src/shapes/Object/ObjectGeometry.ts:565

Top position of an object. Note that by default it’s relative to object top. You can change this by setting FabricObject#originY

0

ITextClickBehavior.top


touchCornerSize: number

Defined in: src/shapes/Object/InteractiveObject.ts:66

Size of object’s controlling corners when touch interaction is detected

24

ITextClickBehavior.touchCornerSize


transparentCorners: boolean

Defined in: src/shapes/Object/InteractiveObject.ts:67

When true, object’s controlling corners are rendered as transparent inside (i.e. stroke instead of fill)

true

ITextClickBehavior.transparentCorners


underline: boolean

Defined in: src/shapes/Text/Text.ts:195

Text decoration underline.

ITextClickBehavior.underline


visible: boolean

Defined in: src/shapes/Object/Object.ts:206

When set to false, an object is not rendered on canvas

ITextClickBehavior.visible


width: number

Defined in: src/shapes/Object/ObjectGeometry.ts:567

Object width

ITextClickBehavior.width


static _styleProperties: readonly StylePropertiesType[] = styleProperties

Defined in: src/shapes/Text/StyledText.ts:30

ITextClickBehavior._styleProperties


static ATTRIBUTE_NAMES: string[]

Defined in: src/shapes/Text/Text.ts:1826

List of attribute names to account for when parsing SVG element (used by FabricText.fromElement)

Text @see: http://www.w3.org/TR/SVG/text.html#TextElement

ITextClickBehavior.ATTRIBUTE_NAMES


static cacheProperties: string[]

Defined in: src/shapes/Text/Text.ts:415

List of properties to consider when checking if cache needs refresh Those properties are checked by calls to Object.set(key, value). If the key is in this list, the object is marked as dirty and refreshed at the next render

ITextClickBehavior.cacheProperties


static colorProperties: string[]

Defined in: src/shapes/Object/Object.ts:1513

List of properties to consider for animating colors.

ITextClickBehavior.colorProperties


static customProperties: string[] = []

Defined in: src/shapes/Object/Object.ts:1754

Define a list of custom properties that will be serialized when instance.toObject() gets called

ITextClickBehavior.customProperties


static genericFonts: string[]

Defined in: src/shapes/Text/Text.ts:1802

List of generic font families

https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name

ITextClickBehavior.genericFonts


static ownDefaults: Partial<TClassProperties<IText<Partial<ITextProps>, SerializedITextProps, ITextEvents>>> = iTextDefaultValues

Defined in: src/shapes/IText/IText.ts:217

ITextClickBehavior.ownDefaults


static stateProperties: string[]

Defined in: src/shapes/Object/Object.ts:225

This list of properties is used to check if the state of an object is changed. This state change now is only used for children of groups to understand if a group needs its cache regenerated during a .set call

ITextClickBehavior.stateProperties


static type: string = 'IText'

Defined in: src/shapes/IText/IText.ts:223

ITextClickBehavior.type

get type(): string

Defined in: src/shapes/IText/IText.ts:225

Legacy identifier of the class. Prefer using utils like isType or instanceOf Will be removed in fabric 7 or 8. The setter exists to avoid type errors in old code and possibly current deserialization code. DO NOT build new code around this type value

add sustainable warning message

string

ITextClickBehavior.type

_drawClipPath(ctx, clipPath, context): void

Defined in: src/shapes/Object/Object.ts:884

Prepare clipPath state and cache and draw it on instance’s cache

CanvasRenderingContext2D

undefined | BaseFabricObject<Partial<ObjectProps>, SerializedObjectProps, ObjectEvents>

DrawContext

void

ITextClickBehavior._drawClipPath


_getFontDeclaration(__namedParameters?, forMeasuring?): string

Defined in: src/shapes/Text/Text.ts:1661

return font declaration string for canvas context

Partial<Pick<Partial<CompleteTextStyleDeclaration>, "fontFamily" | "fontSize" | "fontStyle" | "fontWeight">> = {}

boolean

string

font declaration formatted for canvas context.

ITextClickBehavior._getFontDeclaration


_getGraphemeBox(grapheme, lineIndex, charIndex, prevGrapheme?, skipLeft?): GraphemeBBox

Defined in: src/shapes/Text/Text.ts:983

string

to be measured

number

index of the line where the char is

number

position in the line

string

character preceding the one to be measured

boolean

GraphemeBBox

grapheme bbox

ITextClickBehavior._getGraphemeBox


_getSelectionForOffset(e, isRight): number

Defined in: src/shapes/IText/ITextKeyBehavior.ts:383

private Helps finding if the offset should be counted from Start or End

KeyboardEvent

Event object

boolean

number

ITextClickBehavior._getSelectionForOffset


_getWidthOfCharSpacing(): number

Defined in: src/shapes/Text/Text.ts:1528

number

ITextClickBehavior._getWidthOfCharSpacing


_limitCacheSize(dims): any

Defined in: src/shapes/Object/Object.ts:403

Limit the cache dimensions so that X * Y do not cross config.perfLimitSizeTotal and each side do not cross fabric.cacheSideLimit those numbers are configurable so that you can get as much detail as you want making bargain with performances.

any

any

.width width of canvas

ITextClickBehavior._limitCacheSize


_measureLine(lineIndex): object

Defined in: src/shapes/Text/Text.ts:891

measure every grapheme of a line, populating __charBounds

number

object

object.width total width of characters

numOfSpaces: number = 0

width: number

ITextClickBehavior._measureLine


_mouseDownHandler(__namedParameters): void

Defined in: src/shapes/IText/ITextClickBehavior.ts:98

Default event handler for the basic functionalities needed on _mouseDown can be overridden to do something different. Scope of this implementation is: find the click position, set selectionStart find selectionEnd, initialize the drawing of either cursor or selection area initializing a mousedDown on a text area will cancel fabricjs knowledge of current compositionMode. It will be set to false.

TPointerEventInfo<TPointerEvent> & TPointerEventInfo<TPointerEvent> & object

void

ITextClickBehavior._mouseDownHandler


_moveCursorLeftOrRight(direction, e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:645

Moves cursor right or Left, fires event

‘Left’, ‘Right’

"Left" | "Right"

KeyboardEvent

Event object

void

ITextClickBehavior._moveCursorLeftOrRight


_moveCursorUpOrDown(direction, e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:483

Moves cursor up or down, fires the events

‘Up’ or ‘Down’

"Up" | "Down"

KeyboardEvent

Event object

void

ITextClickBehavior._moveCursorUpOrDown


_removeCacheCanvas(): void

Defined in: src/shapes/Object/Object.ts:720

Remove cacheCanvas and its dimensions from the objects

void

ITextClickBehavior._removeCacheCanvas


_renderControls(ctx, styleOverride?): void

Defined in: src/shapes/Object/InteractiveObject.ts:435

Renders controls and borders for the object the context here is not transformed

CanvasRenderingContext2D

Context to render on

TStyleOverride = {}

properties to override the object style

void

move to interactivity

ITextClickBehavior._renderControls


_renderCursor(ctx, boundaries, selectionStart): void

Defined in: src/shapes/IText/IText.ts:615

Render the cursor at the given selectionStart.

CanvasRenderingContext2D

transformed context to draw on

CursorBoundaries

number

void


_setClippingProperties(ctx): void

Defined in: src/shapes/Object/Object.ts:1029

CanvasRenderingContext2D

void

ITextClickBehavior._setClippingProperties


_setFillStyles(ctx, style): object

Defined in: src/shapes/Text/Text.ts:1341

This function prepare the canvas for a ill style, and fill need to be sent in as defined

CanvasRenderingContext2D

Pick<IText<Props, SProps, EventSpec>, "fill">

with ill defined

object

offsetX: number

offsetY: number

ITextClickBehavior._setFillStyles


_setStrokeStyles(ctx, style): object

Defined in: src/shapes/Text/Text.ts:1319

This function prepare the canvas for a stroke style, and stroke and strokeWidth need to be sent in as defined

CanvasRenderingContext2D

Pick<CompleteTextStyleDeclaration, "stroke" | "strokeWidth">

with stroke and strokeWidth defined

object

offsetX: number

offsetY: number

ITextClickBehavior._setStrokeStyles


_setupCompositeOperation(ctx): void

Defined in: src/shapes/Object/Object.ts:1488

Sets canvas globalCompositeOperation for specific object custom composition operation for the particular object can be specified using globalCompositeOperation property

CanvasRenderingContext2D

Rendering canvas context

void

ITextClickBehavior._setupCompositeOperation


_splitTextIntoLines(text): TextLinesInfo

Defined in: src/shapes/Text/Text.ts:1729

Returns the text as an array of lines.

string

text to split

TextLinesInfo

Lines in the text

ITextClickBehavior._splitTextIntoLines


_toSVG(_reviver?): string[]

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:121

Returns svg representation of an instance This function is implemented in each subclass This is just because typescript otherwise cryies all the time

TSVGReviver

string[]

an array of strings with the specific svg representation of the instance

ITextClickBehavior._toSVG


abortCursorAnimation(): void

Defined in: src/shapes/IText/ITextBehavior.ts:182

Aborts cursor animation, clears all timeouts and clear textarea context if necessary

void

ITextClickBehavior.abortCursorAnimation


addPaintOrder(this): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:250

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

string

ITextClickBehavior.addPaintOrder


animate<T>(animatable, options?): Record<string, TAnimation<T>>

Defined in: src/shapes/Object/Object.ts:1527

Animates object’s properties

T extends number | number[] | TColorArg

Record<string, T>

map of keys and end values

Partial<AnimationOptions<T>>

Record<string, TAnimation<T>>

map of animation contexts

As object — multiple properties

object.animate({ left: …, top: … }); object.animate({ left: …, top: … }, { duration: … });

http://fabricjs.com/fabric-intro-part-2#animation

ITextClickBehavior.animate


blur(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:106

Override this method to customize cursor behavior on textbox blur

void

ITextClickBehavior.blur


calcACoords(): TCornerPoint

Defined in: src/shapes/Object/ObjectGeometry.ts:429

Calculates the coordinates of the 4 corner of the bbox, in absolute coordinates. those never change with zoom or viewport changes.

TCornerPoint

ITextClickBehavior.calcACoords


calcOCoords(): Record<string, TOCoord>

Defined in: src/shapes/Object/InteractiveObject.ts:255

Calculates the coordinates of the center of each control plus the corners of the control itself This basically just delegates to each control positionHandler WARNING: changing what is passed to positionHandler is a breaking change, since position handler is a public api and should be done just if extremely necessary

Record<string, TOCoord>

ITextClickBehavior.calcOCoords


calcOwnMatrix(): TMat2D

Defined in: src/shapes/Object/ObjectGeometry.ts:515

calculate transform matrix that represents the current transformations from the object’s properties, this matrix does not include the group transformation

TMat2D

transform matrix for the object

ITextClickBehavior.calcOwnMatrix


calcTextHeight(): number

Defined in: src/shapes/Text/Text.ts:1044

Calculate text box height

number

ITextClickBehavior.calcTextHeight


calcTransformMatrix(skipGroup?): TMat2D

Defined in: src/shapes/Object/ObjectGeometry.ts:487

calculate transform matrix that represents the current transformations from the object’s properties.

boolean = false

return transform matrix for object not counting parent transformations There are some situation in which this is useful to avoid the fake rotation.

TMat2D

transform matrix for the object

ITextClickBehavior.calcTransformMatrix


canDrop(e): boolean

Defined in: src/shapes/IText/ITextClickBehavior.ts:64

override this method to control whether instance should/shouldn’t become a drop target

DragEvent

boolean

ITextClickBehavior.canDrop


cleanStyle(property): undefined | false

Defined in: src/shapes/Text/StyledText.ts:101

Check if characters in a text have a value for a property whose value matches the textbox’s value for that property. If so, the character-level property is deleted. If the character has no other properties, then it is also deleted. Finally, if the line containing that character has no other characters then it also is deleted.

StylePropertiesType

undefined | false

ITextClickBehavior.cleanStyle


clearContextTop(restoreManually?): undefined | CanvasRenderingContext2D

Defined in: src/shapes/Object/InteractiveObject.ts:627

Clears the canvas.contextTop in a specific area that corresponds to the object’s bounding box that is in the canvas.contextContainer. This function is used to clear pieces of contextTop where we render ephemeral effects on top of the object. Example: blinking cursor text selection, drag effects.

boolean

When true won’t restore the context after clear, in order to draw something else.

undefined | CanvasRenderingContext2D

canvas.contextTop that is either still transformed with the object transformMatrix, or restored to neutral transform

discuss swapping restoreManually with a renderCallback, but think of async issues

ITextClickBehavior.clearContextTop


clone(propertiesToInclude?): Promise<IText<Props, SProps, EventSpec>>

Defined in: src/shapes/Object/Object.ts:1255

Clones an instance.

string[]

Any properties that you might want to additionally include in the output

Promise<IText<Props, SProps, EventSpec>>

ITextClickBehavior.clone


cloneAsImage(options?): FabricImage

Defined in: src/shapes/Object/Object.ts:1281

Creates an instance of Image out of an object makes use of toCanvasElement. Once this method was based on toDataUrl and loadImage, so it also had a quality and format option. toCanvasElement is faster and produce no loss of quality. If you need to get a real Jpeg or Png from an object, using toDataURL is the right way to do it. toCanvasElement and then toBlob from the obtained canvas is also a good option.

ObjectToCanvasElementOptions

for clone as image, passed to toDataURL

FabricImage

Object cloned as image.

fix the export type, it could not be Image but the type that getClass return for ‘image’.

ITextClickBehavior.cloneAsImage


cmdAll(): void

Defined in: src/shapes/IText/ITextBehavior.ts:229

Selects entire text and updates the visual state

void

ITextClickBehavior.cmdAll


complexity(): number

Defined in: src/shapes/Text/Text.ts:1794

Returns complexity of an instance

number

complexity

ITextClickBehavior.complexity


containsPoint(point): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:284

Checks if point is inside the object

Point

Point to check against

boolean

true if point is inside the object

ITextClickBehavior.containsPoint


copy(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:301

Copies selected text

void

ITextClickBehavior.copy


dispose(): void

Defined in: src/shapes/IText/IText.ts:787

cancel instance’s running animations override if necessary to dispose artifacts such as clipPath

void

ITextClickBehavior.dispose


doubleClickHandler(options): void

Defined in: src/shapes/IText/ITextClickBehavior.ts:71

Default handler for double click, select a word

TPointerEventInfo

void

ITextClickBehavior.doubleClickHandler


drawBorders(ctx, options, styleOverride?): void

Defined in: src/shapes/Object/InteractiveObject.ts:478

Draws borders of an object’s bounding box. Requires public properties: width, height Requires public options: padding, borderColor

CanvasRenderingContext2D

Context to draw on

Required

object representing current object parameters

TStyleOverride

object to override the object style

void

ITextClickBehavior.drawBorders


drawCacheOnCanvas(this, ctx): void

Defined in: src/shapes/Object/Object.ts:906

Paint the cached copy of the object on the target context.

TCachedFabricObject

CanvasRenderingContext2D

Context to render on

void

ITextClickBehavior.drawCacheOnCanvas


drawClipPathOnCache(ctx, clipPath, canvasWithClipPath): void

Defined in: src/shapes/Object/Object.ts:812

Execute the drawing operation for an object clipPath

CanvasRenderingContext2D

Context to render on

BaseFabricObject

HTMLCanvasElement

void

ITextClickBehavior.drawClipPathOnCache


drawControls(ctx, styleOverride): void

Defined in: src/shapes/Object/InteractiveObject.ts:550

Draws corners of an object’s bounding box. Requires public properties: width, height Requires public options: cornerSize, padding Be aware that since fabric 6.0 this function does not call setCoords anymore. setCoords needs to be called manually if the object of which we are rendering controls is outside the standard selection and transform process.

CanvasRenderingContext2D

Context to draw on

Partial = {}

object to override the object style

void

ITextClickBehavior.drawControls


drawControlsConnectingLines(ctx, size): void

Defined in: src/shapes/Object/InteractiveObject.ts:517

Draws lines from a borders of an object’s bounding box to controls that have withConnection property set. Requires public properties: width, height Requires public options: padding, borderColor

CanvasRenderingContext2D

Context to draw on

Point

object size x = width, y = height

void

ITextClickBehavior.drawControlsConnectingLines


drawObject(ctx, forClipping, context): void

Defined in: src/shapes/Object/Object.ts:836

Execute the drawing operation for an object on a specified context

CanvasRenderingContext2D

Context to render on

apply clipping styles

undefined | boolean

DrawContext

additional context for rendering

void

ITextClickBehavior.drawObject


drawSelectionBackground(ctx): void

Defined in: src/shapes/Object/InteractiveObject.ts:375

Draws a colored layer behind the object, inside its selection borders. Requires public options: padding, selectionBackgroundColor this function is called when the context is transformed has checks to be skipped when the object is on a staticCanvas

CanvasRenderingContext2D

Context to draw on

void

evaluate if make this disappear in favor of a pre-render hook for objects this was added by Andrea Bogazzi to make possible some feature for work reasons it seemed a good option, now is an edge case

ITextClickBehavior.drawSelectionBackground


enlargeSpaces(): void

Defined in: src/shapes/Text/Text.ts:491

Enlarge space boxes and shift the others

void

ITextClickBehavior.enlargeSpaces


enterEditing(e?): void

Defined in: src/shapes/IText/ITextBehavior.ts:391

Enters editing state

TPointerEvent

void

ITextClickBehavior.enterEditing


enterEditingImpl(): void

Defined in: src/shapes/IText/ITextBehavior.ts:410

runs the actual logic that enter from editing state, see enterEditing

void

ITextClickBehavior.enterEditingImpl


exitEditing(): IText<Props, SProps, EventSpec>

Defined in: src/shapes/IText/ITextBehavior.ts:720

Exits from editing state and fires relevant events

IText<Props, SProps, EventSpec>

ITextClickBehavior.exitEditing


exitEditingImpl(): void

Defined in: src/shapes/IText/ITextBehavior.ts:707

runs the actual logic that exits from editing state, see exitEditing But it does not fire events

void

ITextClickBehavior.exitEditingImpl


findAncestorsWithClipPath(): FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[]

Defined in: src/shapes/IText/IText.ts:452

Finds and returns an array of clip paths that are applied to the parent group(s) of the current FabricObject instance. The object’s hierarchy is traversed upwards (from the current object towards the root of the canvas), checking each parent object for the presence of a clipPath that is not absolutely positioned.

FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[]


findCommonAncestors<T>(other): AncestryComparison

Defined in: src/shapes/Object/Object.ts:1645

Compare ancestors

T extends IText<Props, SProps, EventSpec>

T

AncestryComparison

an object that represent the ancestry situation.

ITextClickBehavior.findCommonAncestors


findLineBoundaryLeft(startFrom): number

Defined in: src/shapes/IText/ITextBehavior.ts:295

Find new selection index representing start of current line according to current selection index

number

Current selection index

number

New selection index

ITextClickBehavior.findLineBoundaryLeft


findLineBoundaryRight(startFrom): number

Defined in: src/shapes/IText/ITextBehavior.ts:312

Find new selection index representing end of current line according to current selection index

number

Current selection index

number

New selection index

ITextClickBehavior.findLineBoundaryRight


findWordBoundaryLeft(startFrom): number

Defined in: src/shapes/IText/ITextBehavior.ts:247

Find new selection index representing start of current word according to current selection index

number

Current selection index

number

New selection index

ITextClickBehavior.findWordBoundaryLeft


findWordBoundaryRight(startFrom): number

Defined in: src/shapes/IText/ITextBehavior.ts:271

Find new selection index representing end of current word according to current selection index

number

Current selection index

number

New selection index

ITextClickBehavior.findWordBoundaryRight


fire<K>(eventName, options?): void

Defined in: src/Observable.ts:167

Fires event with an optional options object

K extends string | number | symbol

K

Event name to fire

EventSpec[K]

Options object

void

ITextClickBehavior.fire


forEachControl(fn): void

Defined in: src/shapes/Object/InteractiveObject.ts:353

Calls a function for each control. The function gets called, with the control, the control’s key and the object that is calling the iterator

(control, key, fabricObject) => any

function to iterate over the controls over

void

ITextClickBehavior.forEachControl


fromGraphemeToStringSelection(start, end, graphemes): object

Defined in: src/shapes/IText/ITextBehavior.ts:503

convert from fabric to textarea values

number

number

string[]

object

selectionEnd: number = graphemeStart

selectionStart: number = graphemeStart

ITextClickBehavior.fromGraphemeToStringSelection


fromStringToGraphemeSelection(start, end, text): object

Defined in: src/shapes/IText/ITextBehavior.ts:486

convert from textarea to grapheme indexes

number

number

string

object

selectionEnd: number = graphemeStart

selectionStart: number = graphemeStart

ITextClickBehavior.fromStringToGraphemeSelection


get(property): any

Defined in: src/CommonMethods.ts:59

Basic getter

string

Property name

any

value of a property

ITextClickBehavior.get


get2DCursorLocation(selectionStart?, skipWrapping?): object

Defined in: src/shapes/IText/IText.ts:351

Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)

number = ...

Optional index. When not given, current selectionStart is used.

boolean

consider the location for unwrapped lines. useful to manage styles.

object

charIndex: number = selectionStart

lineIndex: number = i

ITextClickBehavior.get2DCursorLocation


getActiveControl(): undefined | { control: Control; coord: TOCoord; key: string; }

Defined in: src/shapes/Object/InteractiveObject.ts:194

undefined | { control: Control; coord: TOCoord; key: string; }

ITextClickBehavior.getActiveControl


getAncestors(): Ancestors

Defined in: src/shapes/Object/Object.ts:1628

Ancestors

ancestors (excluding ActiveSelection) from bottom to top

ITextClickBehavior.getAncestors


getBoundingRect(): TBBox

Defined in: src/shapes/Object/ObjectGeometry.ts:345

Returns coordinates of object’s bounding rectangle (left, top, width, height) the box is intended as aligned to axis of canvas.

TBBox

Object with left, top, width, height properties

ITextClickBehavior.getBoundingRect


getCanvasRetinaScaling(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:402

number

ITextClickBehavior.getCanvasRetinaScaling


getCenterPoint(): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:735

Returns the center coordinates of the object relative to canvas

Point

ITextClickBehavior.getCenterPoint


getCompleteStyleDeclaration(lineIndex, charIndex): CompleteTextStyleDeclaration

Defined in: src/shapes/Text/StyledText.ts:276

return a new object that contains all the style property for a character the object returned is newly created

number

of the line where the character is

number

position of the character on the line

CompleteTextStyleDeclaration

style object

ITextClickBehavior.getCompleteStyleDeclaration


getCoords(): Point[]

Defined in: src/shapes/Object/ObjectGeometry.ts:204

Point[]

[tl, tr, br, bl] in the scene plane

ITextClickBehavior.getCoords


getCurrentCharColor(): null | string | TFiller

Defined in: src/shapes/IText/IText.ts:771

High level function to know the color of the cursor. the currentChar is the one that precedes the cursor Returns color (fill) of char at the current cursor if the text object has a pattern or gradient for filler, it will return that. Unused by the library, is for the end user

null | string | TFiller

Character color (fill)


getCurrentCharFontSize(): number

Defined in: src/shapes/IText/IText.ts:758

High level function to know the height of the cursor. the currentChar is the one that precedes the cursor Returns fontSize of char at the current cursor Unused from the library, is for the end user

number

Character font size


getCursorRenderingData(selectionStart, boundaries): CursorRenderingData

Defined in: src/shapes/IText/IText.ts:581

Return the data needed to render the cursor for given selection start The left,top are relative to the object, while width and height are prescaled to look think with canvas zoom and object scaling, so they depend on canvas and object scaling

number = ...

CursorBoundaries = ...

CursorRenderingData


getDownCursorOffset(e, isRight): number

Defined in: src/shapes/IText/ITextKeyBehavior.ts:351

Gets start offset of a selection

KeyboardEvent

Event object

boolean

number

ITextClickBehavior.getDownCursorOffset


getHeightOfChar(line, _char): number

Defined in: src/shapes/Text/Text.ts:866

Computes height of character at given position

number

the line index number

number

the character index number

number

fontSize of the character

ITextClickBehavior.getHeightOfChar


getHeightOfLine(lineIndex): number

Defined in: src/shapes/Text/Text.ts:1025

Calculate height of line at ‘lineIndex’

number

index of line to calculate

number

ITextClickBehavior.getHeightOfLine


getObjectOpacity(): number

Defined in: src/shapes/Object/Object.ts:571

Return the object opacity counting also the group property

number

ITextClickBehavior.getObjectOpacity


getObjectScaling(): Point

Defined in: src/shapes/Object/Object.ts:540

Return the object scale factor counting also the group scaling

Point

ITextClickBehavior.getObjectScaling


getPointByOrigin(originX, originY): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:765

Returns the position of the object as if it has a different origin. Take an object that has left, top set to 100, 100 with origin ‘left’, ‘top’. Return the values of left top ( wrapped in a point ) that you would need to keep the same position if origin where different. Alternatively you can use this to also find which point in the parent plane is a specific origin ( where is the bottom right corner of my object? )

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

Point

ITextClickBehavior.getPointByOrigin


getRelativeCenterPoint(): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:746

Returns the center coordinates of the object relative to it’s parent

Point

ITextClickBehavior.getRelativeCenterPoint


getRelativeX(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:115

number

x position according to object’s FabricObject#originX property in parent’s coordinate plane
if parent is canvas then this property is identical to getX

ITextClickBehavior.getRelativeX


getRelativeXY(): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:176

Point

x,y position according to object’s FabricObject#originX FabricObject#originY properties in parent’s coordinate plane

ITextClickBehavior.getRelativeXY


getRelativeY(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:131

number

y position according to object’s FabricObject#originY property in parent’s coordinate plane
if parent is canvas then this property is identical to getY

ITextClickBehavior.getRelativeY


getScaledHeight(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:363

Returns height of an object bounding box counting transformations

number

height value

shouldn’t this account for group transform and return the actual size in canvas coordinate plane?

ITextClickBehavior.getScaledHeight


getScaledWidth(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:354

Returns width of an object’s bounding box counting transformations

number

width value

shouldn’t this account for group transform and return the actual size in canvas coordinate plane?

ITextClickBehavior.getScaledWidth


getSelectedText(): string

Defined in: src/shapes/IText/ITextBehavior.ts:238

Returns selected text

string

ITextClickBehavior.getSelectedText


getSelectionStartFromPointer(e): number

Defined in: src/shapes/IText/ITextClickBehavior.ts:193

Returns index of a character corresponding to where an object was clicked

TPointerEvent

Event object

number

Index of a character

ITextClickBehavior.getSelectionStartFromPointer


getSelectionStyles(startIndex, endIndex, complete?): Partial<CompleteTextStyleDeclaration>[]

Defined in: src/shapes/IText/IText.ts:324

Gets style of a current selection/cursor (at the start position) if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.

number = ...

Start index to get styles at

number = ...

End index to get styles at, if not specified selectionEnd or startIndex + 1

boolean

get full style or not

Partial<CompleteTextStyleDeclaration>[]

styles an array with one, zero or more Style objects

ITextClickBehavior.getSelectionStyles


getSvgCommons(this): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:85

Returns id attribute for svg output

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents> & object

string

ITextClickBehavior.getSvgCommons


getSvgFilter(this): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:77

Returns filter for svg shadow

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

string

ITextClickBehavior.getSvgFilter


getSvgStyles(this, skipShadow?): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:22

Returns styles-string for svg-export

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

boolean

a boolean to skip shadow filter output

string

ITextClickBehavior.getSvgStyles


getSvgTransform(this, full?, additionalTransform?): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:104

Returns transform-string for svg-export

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

boolean

string = ''

string

ITextClickBehavior.getSvgTransform


getTotalAngle(): TDegree

Defined in: src/shapes/Object/ObjectGeometry.ts:410

Returns the object angle relative to canvas counting also the group property

TDegree

ITextClickBehavior.getTotalAngle


getTotalObjectScaling(): Point

Defined in: src/shapes/Object/Object.ts:557

Return the object scale factor counting also the group scaling, zoom and retina

Point

object with scaleX and scaleY properties

ITextClickBehavior.getTotalObjectScaling


getUpCursorOffset(e, isRight): number

Defined in: src/shapes/IText/ITextKeyBehavior.ts:396

KeyboardEvent

Event object

boolean

number

ITextClickBehavior.getUpCursorOffset


getValueOfPropertyAt<T>(lineIndex, charIndex, property): IText<Props, SProps, EventSpec>[T]

Defined in: src/shapes/Text/Text.ts:1542

Retrieves the value of property at given character position

T extends StylePropertiesType

number

the line number

number

the character number

T

the property name

IText<Props, SProps, EventSpec>[T]

the value of ‘property’

ITextClickBehavior.getValueOfPropertyAt


getViewportTransform(): TMat2D

Defined in: src/shapes/Object/ObjectGeometry.ts:420

Retrieves viewportTransform from Object’s canvas if available

TMat2D

ITextClickBehavior.getViewportTransform


getX(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:86

number

x position according to object’s FabricObject#originX property in canvas coordinate plane

ITextClickBehavior.getX


getXY(): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:146

Point

x position according to object’s FabricObject#originX FabricObject#originY properties in canvas coordinate plane

ITextClickBehavior.getXY


getY(): number

Defined in: src/shapes/Object/ObjectGeometry.ts:100

number

y position according to object’s FabricObject#originY property in canvas coordinate plane

ITextClickBehavior.getY


graphemeSplit(value): string[]

Defined in: src/shapes/Text/Text.ts:1720

Override this method to customize grapheme splitting

string

string[]

array of graphemes

the util graphemeSplit needs to be injectable in some way. is more comfortable to inject the correct util rather than having to override text in the middle of the prototype chain

ITextClickBehavior.graphemeSplit


handleFiller<T>(ctx, property, filler): object

Defined in: src/shapes/Text/Text.ts:1279

T extends "fill" | "stroke"

CanvasRenderingContext2D

`${T}Style`

string | TFiller

object

offsetX: number

offsetY: number

ITextClickBehavior.handleFiller


hasCommonAncestors<T>(other): boolean

Defined in: src/shapes/Object/Object.ts:1710

T extends IText<Props, SProps, EventSpec>

T

boolean

ITextClickBehavior.hasCommonAncestors


hasFill(): null | boolean | ""

Defined in: src/shapes/Object/Object.ts:751

return true if the object will draw a fill Does not consider text styles. This is just a shortcut used at rendering time We want it to be an approximation and be fast. wrote to avoid extra caching, it has to return true when fill happens, can guess when it will not happen at 100% chance, does not matter if it misses some use case where the fill is invisible.

null | boolean | ""

Boolean

3.0.0

ITextClickBehavior.hasFill


hasStroke(): null | boolean | ""

Defined in: src/shapes/Object/Object.ts:735

return true if the object will draw a stroke Does not consider text styles. This is just a shortcut used at rendering time We want it to be an approximation and be fast. wrote to avoid extra caching, it has to return true when stroke happens, can guess when it will not happen at 100% chance, does not matter if it misses some use case where the stroke is invisible.

null | boolean | ""

Boolean

3.0.0

ITextClickBehavior.hasStroke


initBehavior(): void

Defined in: src/shapes/IText/ITextClickBehavior.ts:26

Initializes all the interactive behavior of IText

void

ITextClickBehavior.initBehavior


initDelayedCursor(restart?): void

Defined in: src/shapes/IText/ITextBehavior.ts:174

Initializes delayed cursor

boolean

void

ITextClickBehavior.initDelayedCursor


initHiddenTextarea(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:63

Initializes hidden textarea (needed to bring up keyboard in iOS)

void

ITextClickBehavior.initHiddenTextarea


insertChars(text, style, start, end): void

Defined in: src/shapes/IText/ITextBehavior.ts:1056

insert characters at start position, before start position. start equal 1 it means the text get inserted between actual grapheme 0 and 1 if style array is provided, it must be as the same length of text in graphemes if end is provided and is bigger than start, old text is replaced. start/end ar per grapheme position in _text array.

string

text to insert

array of style objects

undefined | Partial<CompleteTextStyleDeclaration>[]

number

number = start

default to start + 1

void

ITextClickBehavior.insertChars


insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle?): void

Defined in: src/shapes/IText/ITextBehavior.ts:906

Inserts style object for a given line/char index

number

Index of a line

number

Index of a char

number

number Style object to insert, if given

Partial<CompleteTextStyleDeclaration>[]

array of style objects

void

ITextClickBehavior.insertCharStyleObject


insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle?): void

Defined in: src/shapes/IText/ITextBehavior.ts:837

Handle insertion of more consecutive style lines for when one or more newlines gets added to the text. Since current style needs to be shifted first we shift the current style of the number lines needed, then we add new lines from the last to the first.

number

Index of a line

number

Index of a char

number

number of lines to add

Array of objects styles

void

ITextClickBehavior.insertNewlineStyleObject


insertNewStyleBlock(insertedText, start, copiedStyle?): void

Defined in: src/shapes/IText/ITextBehavior.ts:964

Inserts style object(s)

string[]

Characters at the location where style is inserted

number

cursor index for inserting style

Partial<CompleteTextStyleDeclaration>[]

array of style objects to insert.

void

ITextClickBehavior.insertNewStyleBlock


intersectsWithObject(other): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:234

Checks if object intersects with another object

ObjectGeometry

Object to test

boolean

true if object intersects with another object

ITextClickBehavior.intersectsWithObject


intersectsWithRect(tl, br): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:220

Checks if object intersects with the scene rect formed by TL and BR In this case the rect is meant aligned with the axis of the canvas. TL is the TOP LEFT point while br is the BOTTOM RIGHT point

Point

Point

boolean

ITextClickBehavior.intersectsWithRect


isCacheDirty(skipCanvas): boolean

Defined in: src/shapes/Object/Object.ts:923

Check if cache is dirty and if is dirty clear the context. This check has a big side effect, it changes the underlying cache canvas if necessary. Do not call this method on your own to check if the cache is dirty, because if it is, it is also going to wipe the cache. This is badly designed and needs to be fixed.

boolean = false

skip canvas checks because this object is painted on parent canvas.

boolean

ITextClickBehavior.isCacheDirty


isContainedWithinObject(other): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:253

Checks if object is fully contained within area of another object

ObjectGeometry

Object to test

boolean

true if object is fully contained within area of another object

ITextClickBehavior.isContainedWithinObject


isContainedWithinRect(tl, br): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:261

Checks if object is fully contained within the scene rect formed by TL and BR

Point

Point

boolean

ITextClickBehavior.isContainedWithinRect


isControlVisible(controlKey): boolean

Defined in: src/shapes/Object/InteractiveObject.ts:584

Returns true if the specified control is visible, false otherwise.

string

The key of the control. Possible values are usually ‘tl’, ‘tr’, ‘br’, ‘bl’, ‘ml’, ‘mt’, ‘mr’, ‘mb’, ‘mtr’, but since the control api allow for any control name, can be any string.

boolean

true if the specified control is visible, false otherwise

ITextClickBehavior.isControlVisible


isDescendantOf(target): boolean

Defined in: src/shapes/Object/Object.ts:1614

Checks if object is descendant of target Should be used instead of Group.contains or StaticCanvas.contains for performance reasons

TAncestor

boolean

ITextClickBehavior.isDescendantOf


isEmptyStyles(lineIndex?): boolean

Defined in: src/shapes/Text/StyledText.ts:41

Returns true if object has no styling or no styling in a line

number

, lineIndex is on wrapped lines.

boolean

ITextClickBehavior.isEmptyStyles


isEndOfWrapping(lineIndex): boolean

Defined in: src/shapes/Text/Text.ts:535

Detect if the text line is ended with an hard break text and itext do not have wrapping, return false

number

boolean

ITextClickBehavior.isEndOfWrapping


isInFrontOf<T>(other): undefined | boolean

Defined in: src/shapes/Object/Object.ts:1720

T extends IText<Props, SProps, EventSpec>

T

object to compare against

undefined | boolean

if objects do not share a common ancestor or they are strictly equal it is impossible to determine which is in front of the other; in such cases the function returns undefined

ITextClickBehavior.isInFrontOf


isNotVisible(): boolean

Defined in: src/shapes/Object/Object.ts:650

boolean

ITextClickBehavior.isNotVisible


isOnScreen(): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:293

Checks if object is contained within the canvas with current viewportTransform the check is done stopping at first point that appears on screen

boolean

true if object is fully or partially contained within canvas

ITextClickBehavior.isOnScreen


isOverlapping<T>(other): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:271

T extends ObjectGeometry<ObjectEvents>

T

boolean

ITextClickBehavior.isOverlapping


isPartiallyOnScreen(): boolean

Defined in: src/shapes/Object/ObjectGeometry.ts:323

Checks if object is partially contained within the canvas with current viewportTransform

boolean

true if object is partially contained within canvas

ITextClickBehavior.isPartiallyOnScreen


isType(…types): boolean

Defined in: src/shapes/Object/Object.ts:1419

Returns true if any of the specified types is identical to the type of an instance

string[]

boolean

ITextClickBehavior.isType


measureLine(lineIndex): object

Defined in: src/shapes/Text/Text.ts:874

measure a text line measuring all characters.

number

line number

object

numOfSpaces: number = 0

width: number

ITextClickBehavior.measureLine


missingNewlineOffset(lineIndex, skipWrapping?): 0 | 1

Defined in: src/shapes/Text/Text.ts:545

Detect if a line has a linebreak and so we need to account for it when moving and counting style. It return always 1 for text and Itext. Textbox has its own implementation

number

boolean

0 | 1

Number

ITextClickBehavior.missingNewlineOffset


moveCursorDown(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:457

Moves cursor down

KeyboardEvent

Event object

void

ITextClickBehavior.moveCursorDown


moveCursorLeft(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:542

Moves cursor left

KeyboardEvent

Event object

void

ITextClickBehavior.moveCursorLeft


moveCursorLeftWithoutShift(e): boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:594

Moves cursor left without keeping selection

KeyboardEvent

boolean

ITextClickBehavior.moveCursorLeftWithoutShift


moveCursorLeftWithShift(e): undefined | boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:614

Moves cursor left while keeping selection

KeyboardEvent

undefined | boolean

ITextClickBehavior.moveCursorLeftWithShift


moveCursorRight(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:630

Moves cursor right

KeyboardEvent

Event object

void

ITextClickBehavior.moveCursorRight


moveCursorRightWithoutShift(e): boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:680

Moves cursor right without keeping selection

KeyboardEvent

Event object

boolean

ITextClickBehavior.moveCursorRightWithoutShift


moveCursorRightWithShift(e): undefined | boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:664

Moves cursor right while keeping selection

KeyboardEvent

undefined | boolean

ITextClickBehavior.moveCursorRightWithShift


moveCursorUp(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:471

Moves cursor up

KeyboardEvent

Event object

void

ITextClickBehavior.moveCursorUp


moveCursorWithoutShift(offset): boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:527

Moves cursor up without shift

number

boolean

ITextClickBehavior.moveCursorWithoutShift


moveCursorWithShift(offset): boolean

Defined in: src/shapes/IText/ITextKeyBehavior.ts:510

Moves cursor with shift

number

boolean

ITextClickBehavior.moveCursorWithShift


needsItsOwnCache(): boolean

Defined in: src/shapes/Object/Object.ts:763

When returns true, force the object to have its own cache, even if it is inside a group it may be needed when your object behave in a particular way on the cache and always needs its own isolated canvas to render correctly. Created to be overridden since 1.7.12

boolean

Boolean

ITextClickBehavior.needsItsOwnCache


off<K>(eventName): void

Defined in: src/Observable.ts:122

Unsubscribe all event listeners for eventname. Do not use this pattern. You could kill internal fabricJS events. We know we should have protected events for internal flows, but we don’t have yet

K extends string | number | symbol

K

event name (eg. ‘after:render’)

void

ITextClickBehavior.off

off<K>(eventName, handler): void

Defined in: src/Observable.ts:128

unsubscribe an event listener

K extends string | number | symbol

K

event name (eg. ‘after:render’)

TEventCallback

event listener to unsubscribe

void

ITextClickBehavior.off

off(handlers): void

Defined in: src/Observable.ts:133

unsubscribe event listeners

EventRegistryObject<EventSpec>

handlers key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

void

ITextClickBehavior.off

off(): void

Defined in: src/Observable.ts:137

unsubscribe all event listeners

void

ITextClickBehavior.off


on<K, E>(eventName, handler): VoidFunction

Defined in: src/Observable.ts:23

Observes specified event

K extends string | number | symbol

E

K

Event name (eg. ‘after:render’)

TEventCallback<E>

Function that receives a notification when an event of the specified type occurs

VoidFunction

disposer

on

ITextClickBehavior.on

on(handlers): VoidFunction

Defined in: src/Observable.ts:27

Observes specified event

EventRegistryObject<EventSpec>

key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

VoidFunction

disposer

on

ITextClickBehavior.on


once<K, E>(eventName, handler): VoidFunction

Defined in: src/Observable.ts:62

Observes specified event once

K extends string | number | symbol

E

K

Event name (eg. ‘after:render’)

TEventCallback<E>

Function that receives a notification when an event of the specified type occurs

VoidFunction

disposer

once

ITextClickBehavior.once

once(handlers): VoidFunction

Defined in: src/Observable.ts:66

Observes specified event once

EventRegistryObject<EventSpec>

key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

VoidFunction

disposer

once

ITextClickBehavior.once


onCompositionEnd(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:287

Composition end

void

ITextClickBehavior.onCompositionEnd


onCompositionStart(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:280

Composition start

void

ITextClickBehavior.onCompositionStart


onCompositionUpdate(__namedParameters): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:291

CompositionEvent

void

ITextClickBehavior.onCompositionUpdate


onDeselect(options?): boolean

Defined in: src/shapes/IText/ITextBehavior.ts:110

This callback function is called every time _discardActiveObject or _setActiveObject try to to deselect this object. If the function returns true, the process is cancelled

TPointerEvent

event if the process is generated by an event

FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

next object we are setting as active, and reason why this is being deselected

boolean

ITextClickBehavior.onDeselect


onDragStart(e): boolean

Defined in: src/shapes/IText/ITextClickBehavior.ts:57

override this method to control whether instance should/shouldn’t become a drag source,

DragEvent

boolean

should handle event

also DraggableTextDelegate#isActive To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false

ITextClickBehavior.onDragStart


onInput(this, e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:174

Handles onInput event

IText<Props, SProps, EventSpec> & object

Event

Event object

void

ITextClickBehavior.onInput


onKeyDown(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:115

Handles keydown event only used for arrows and combination of modifier keys.

KeyboardEvent

Event object

void

ITextClickBehavior.onKeyDown


onKeyUp(e): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:151

Handles keyup event We handle KeyUp because ie11 and edge have difficulties copy/pasting if a copy/cut event fired, keyup is dismissed

KeyboardEvent

Event object

void

ITextClickBehavior.onKeyUp


onSelect(_options?): boolean

Defined in: src/shapes/Object/InteractiveObject.ts:672

This callback function is called every time _discardActiveObject or _setActiveObject try to to select this object. If the function returns true, the process is cancelled

options sent from the upper functions

TPointerEvent

event if the process is generated by an event

boolean

ITextClickBehavior.onSelect


paste(): void

Defined in: src/shapes/IText/ITextKeyBehavior.ts:323

Pastes text

void

ITextClickBehavior.paste


removeChars(start, end): void

Defined in: src/shapes/IText/ITextBehavior.ts:1034

Removes characters from start/end start/end ar per grapheme position in _text array.

number

number = ...

default to start + 1

void

ITextClickBehavior.removeChars


removeStyle(property): void

Defined in: src/shapes/Text/StyledText.ts:162

Remove a style property or properties from all individual character styles in a text object. Deletes the character style object if it contains no other style props. Deletes a line style object if it contains no other character styles.

StylePropertiesType

void

ITextClickBehavior.removeStyle


removeStyleFromTo(start, end): void

Defined in: src/shapes/IText/ITextBehavior.ts:752

remove and reflow a style block from start to end.

number

linear start position for removal (included in removal)

number

linear end position for removal ( excluded from removal )

void

ITextClickBehavior.removeStyleFromTo


renderCache(this, options?): void

Defined in: src/shapes/Object/Object.ts:696

TCachedFabricObject

any

void

ITextClickBehavior.renderCache


renderCursor(ctx, boundaries): void

Defined in: src/shapes/IText/IText.ts:571

Renders cursor

CanvasRenderingContext2D

transformed context to draw on

CursorBoundaries

void


renderCursorAt(selectionStart): void

Defined in: src/shapes/IText/IText.ts:558

Renders cursor on context Top, outside the animation cycle, on request Used for the drag/drop effect. If contextTop is not available, do nothing.

number

void


renderCursorOrSelection(): void

Defined in: src/shapes/IText/IText.ts:386

Renders cursor or selection (depending on what exists) it does on the contextTop. If contextTop is not available, do nothing.

void

ITextClickBehavior.renderCursorOrSelection


renderDragSourceEffect(): void

Defined in: src/shapes/IText/IText.ts:647

Renders drag start text selection

void

ITextClickBehavior.renderDragSourceEffect


renderDropTargetEffect(e): void

Defined in: src/shapes/IText/IText.ts:657

Override to customize drag and drop behavior render a specific effect when an object is the target of a drag event used to show that the underly object can receive a drop, or to show how the object will change when dropping. example: show the cursor where the text is about to be dropped

DragEvent

void

ITextClickBehavior.renderDropTargetEffect


renderSelection(ctx, boundaries): void

Defined in: src/shapes/IText/IText.ts:632

Renders text selection

CanvasRenderingContext2D

transformed context to draw on

CursorBoundaries

Object with left/top/leftOffset/topOffset

void


restartCursorIfNeeded(): void

Defined in: src/shapes/IText/ITextBehavior.ts:205

Restart tue cursor animation if either is in complete state ( between animations ) or if it never started before

void

ITextClickBehavior.restartCursorIfNeeded


rotate(angle): void

Defined in: src/shapes/Object/Object.ts:1447

Sets “angle” of an instance with centered rotation

TDegree

Angle value (in degrees)

void

ITextClickBehavior.rotate


scale(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:372

Scales an object (equally by x and y)

number

Scale factor

void

ITextClickBehavior.scale


scaleToHeight(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:395

Scales an object to a given height, with respect to bounding box (scaling by x/y equally)

number

New height value

void

ITextClickBehavior.scaleToHeight


scaleToWidth(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:383

Scales an object to a given width, with respect to bounding box (scaling by x/y equally)

number

New width value

void

ITextClickBehavior.scaleToWidth


searchWordBoundary(selectionStart, direction): number

Defined in: src/shapes/IText/ITextBehavior.ts:330

Finds index corresponding to beginning or end of a word

number

Index of a character

1 or -1

-1 | 1

number

Index of the beginning or end of a word

ITextClickBehavior.searchWordBoundary


selectAll(): IText<Props, SProps, EventSpec>

Defined in: src/shapes/IText/ITextBehavior.ts:218

Selects entire text

IText<Props, SProps, EventSpec>

ITextClickBehavior.selectAll


selectLine(selectionStart?): void

Defined in: src/shapes/IText/ITextBehavior.ts:377

Selects the line that contains selectionStart

number

Index of a character

void

ITextClickBehavior.selectLine


selectWord(selectionStart?): void

Defined in: src/shapes/IText/ITextBehavior.ts:355

Selects the word that contains the char at index selectionStart

number

Index of a character

void

ITextClickBehavior.selectWord


set(key, value?): IText<Props, SProps, EventSpec>

Defined in: src/shapes/Text/Text.ts:1763

Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) set does not update position of object’s borders/controls. If you need to update those, call setCoords().

any

Property name or object (if object, iterate over the object properties)

any

Property value (if function, the value is passed into it and its return value is used as a new one)

IText<Props, SProps, EventSpec>

ITextClickBehavior.set


setControlsVisibility(options?): void

Defined in: src/shapes/Object/InteractiveObject.ts:611

Sets the visibility state of object controls, this is just a bulk option for setControlVisible;

Record<string, boolean> = {}

with an optional key per control example: {Boolean} [options.bl] true to enable the bottom-left control, false to disable it

void

ITextClickBehavior.setControlsVisibility


setControlVisible(controlKey, visible): void

Defined in: src/shapes/Object/InteractiveObject.ts:599

Sets the visibility of the specified control. please do not use.

string

The key of the control. Possible values are ‘tl’, ‘tr’, ‘br’, ‘bl’, ‘ml’, ‘mt’, ‘mr’, ‘mb’, ‘mtr’. but since the control api allow for any control name, can be any string.

boolean

true to set the specified control visible, false otherwise

void

discuss this overlap of priority here with the team. Andrea Bogazzi for details

ITextClickBehavior.setControlVisible


setCoords(): void

Defined in: src/shapes/Object/InteractiveObject.ts:343

set controls’ coordinates as well See https://github.com/fabricjs/fabric.js/wiki/When-to-call-setCoords and http://fabricjs.com/fabric-gotchas

void

ITextClickBehavior.setCoords


setCursorByClick(e): void

Defined in: src/shapes/IText/ITextClickBehavior.ts:172

Changes cursor location in a text depending on passed pointer (x/y) object

TPointerEvent

Event object

void

ITextClickBehavior.setCursorByClick


setOnGroup(): void

Defined in: src/shapes/Object/Object.ts:1479

This callback function is called by the parent group of an object every time a non-delegated property changes on the group. It is passed the key and value as parameters. Not adding in this function’s signature to avoid Travis build error about unused variables.

void

ITextClickBehavior.setOnGroup


setPathInfo(): void

Defined in: src/shapes/Text/Text.ts:445

If text has a path, it will add the extra information needed for path and text calculations

void

ITextClickBehavior.setPathInfo


setPositionByOrigin(pos, originX, originY): void

Defined in: src/shapes/Object/ObjectGeometry.ts:780

Sets the position of the object taking into consideration the object’s origin

Point

The new position of the object

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

void

ITextClickBehavior.setPositionByOrigin


setRelativeX(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:123

number

x position according to object’s FabricObject#originX property in parent’s coordinate plane
if parent is canvas then this method is identical to setX

void

ITextClickBehavior.setRelativeX


setRelativeXY(point, originX?, originY?): void

Defined in: src/shapes/Object/ObjectGeometry.ts:186

As setXY, but in current parent’s coordinate plane (the current group if any or the canvas)

Point

position according to object’s FabricObject#originX FabricObject#originY properties in parent’s coordinate plane

TOriginX = ...

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY = ...

Vertical origin: ‘top’, ‘center’ or ‘bottom’

void

ITextClickBehavior.setRelativeXY


setRelativeY(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:139

number

y position according to object’s FabricObject#originY property in parent’s coordinate plane
if parent is canvas then this property is identical to setY

void

ITextClickBehavior.setRelativeY


setSelectionEnd(index): void

Defined in: src/shapes/IText/IText.ts:274

Sets selection end (right boundary of a selection)

number

Index to set selection end to

void


setSelectionStart(index): void

Defined in: src/shapes/IText/IText.ts:265

Sets selection start (left boundary of a selection)

number

Index to set selection start to

void


setSelectionStartEndWithShift(start, end, newSelection): void

Defined in: src/shapes/IText/ITextBehavior.ts:1083

Set the selectionStart and selectionEnd according to the new position of cursor mimic the key - mouse navigation when shift is pressed.

number

number

number

void

ITextClickBehavior.setSelectionStartEndWithShift


setSelectionStyles(styles?, startIndex?, endIndex?): void

Defined in: src/shapes/IText/IText.ts:338

Sets style of a current selection, if no selection exist, do not set anything.

object

Styles object

number = ...

Start index to get styles at

number = ...

End index to get styles at, if not specified selectionEnd or startIndex + 1

void

ITextClickBehavior.setSelectionStyles


setSubscript(start, end): void

Defined in: src/shapes/Text/Text.ts:1420

Turns the character into an ‘inferior figure’ (i.e. ‘subscript’)

number

selection start

number

selection end

void

ITextClickBehavior.setSubscript


setSuperscript(start, end): void

Defined in: src/shapes/Text/Text.ts:1411

Turns the character into a ‘superior figure’ (i.e. ‘superscript’)

number

selection start

number

selection end

void

ITextClickBehavior.setSuperscript


setX(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:93

number

x position according to object’s FabricObject#originX property in canvas coordinate plane

void

ITextClickBehavior.setX


setXY(point, originX?, originY?): void

Defined in: src/shapes/Object/ObjectGeometry.ts:163

Set an object position to a particular point, the point is intended in absolute ( canvas ) coordinate. You can specify FabricObject#originX and FabricObject#originY values, that otherwise are the object’s current values.

Point

position in scene coordinate plane

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

void

object.setXY(new Point(5, 5), 'left', 'bottom').

ITextClickBehavior.setXY


setY(value): void

Defined in: src/shapes/Object/ObjectGeometry.ts:107

number

y position according to object’s FabricObject#originY property in canvas coordinate plane

void

ITextClickBehavior.setY


shiftLineStyles(lineIndex, offset): void

Defined in: src/shapes/IText/ITextBehavior.ts:814

Shifts line styles up or down

number

Index of a line

number

Can any number?

void

ITextClickBehavior.shiftLineStyles


shouldCache(): boolean

Defined in: src/shapes/Object/Object.ts:788

Decide if the object should cache or not. Create its own cache level objectCaching is a global flag, wins over everything needsItsOwnCache should be used when the object drawing method requires a cache step. Generally you do not cache objects in groups because the group outside is cached. Read as: cache if is needed, or if the feature is enabled but we are not already caching.

boolean

ITextClickBehavior.shouldCache


shouldStartDragging(): boolean

Defined in: src/shapes/IText/ITextClickBehavior.ts:47

If this method returns true a mouse move operation over a text selection will not prevent the native mouse event allowing the browser to start a drag operation. shouldStartDragging can be read ‘do not prevent default for mouse move event’ To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false

boolean

ITextClickBehavior.shouldStartDragging


strokeBorders(ctx, size): void

Defined in: src/shapes/Object/InteractiveObject.ts:399

override this function in order to customize the drawing of the control box, e.g. rounded corners, different border style.

CanvasRenderingContext2D

ctx is rotated and translated so that (0,0) is at object’s center

Point

the control box size used

void

ITextClickBehavior.strokeBorders


styleHas(property, lineIndex?): boolean

Defined in: src/shapes/Text/StyledText.ts:70

Returns true if object has a style property or has it ina specified line This function is used to detect if a text will use a particular property or not.

StylePropertiesType

to check for

number

to check the style on

boolean

ITextClickBehavior.styleHas


toBlob(options): Promise<null | Blob>

Defined in: src/shapes/Object/Object.ts:1406

toDataURLOptions = {}

Promise<null | Blob>

ITextClickBehavior.toBlob


toCanvasElement(options?): HTMLCanvasElement

Defined in: src/shapes/IText/IText.ts:374

block cursor/selection logic while rendering the exported canvas

ObjectToCanvasElementOptions

HTMLCanvasElement

this workaround should be replaced with a more robust solution

ITextClickBehavior.toCanvasElement


toClipPathSVG(this, reviver?): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:144

Returns svg clipPath representation of an instance

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

TSVGReviver

Method for further parsing of svg representation.

string

svg representation of an instance

ITextClickBehavior.toClipPathSVG


toDatalessObject(propertiesToInclude?): any

Defined in: src/shapes/Object/Object.ts:1854

Returns (dataless) object representation of an instance

any[]

Any properties that you might want to additionally include in the output

any

Object representation of an instance

ITextClickBehavior.toDatalessObject


toDataURL(options): string

Defined in: src/shapes/Object/Object.ts:1399

Converts an object into a data-url-like string

toDataURLOptions = {}

Options object

string

Returns a data: URL containing a representation of the object in the format specified by options.format

ITextClickBehavior.toDataURL


toggle(property): IText<Props, SProps, EventSpec>

Defined in: src/CommonMethods.ts:46

Toggles specified property from true to false or from false to true

string

Property to toggle

IText<Props, SProps, EventSpec>

ITextClickBehavior.toggle


toJSON(): any

Defined in: src/shapes/Object/Object.ts:1438

Returns a JSON representation of an instance

any

JSON

ITextClickBehavior.toJSON


toObject<T, K>(propertiesToInclude?): Pick<T, K> & SProps

Defined in: src/shapes/Text/Text.ts:1752

Returns object representation of an instance

T extends Omit<Props & TClassProperties<IText<Props, SProps, EventSpec>>, keyof SProps>

K extends string | number | symbol = never

K[] = []

Any properties that you might want to additionally include in the output

Pick<T, K> & SProps

Object representation of an instance

ITextClickBehavior.toObject


toString(): string

Defined in: src/shapes/Text/Text.ts:581

Returns string representation of an instance

string

String representation of text object

ITextClickBehavior.toString


toSVG(this, reviver?): string

Defined in: src/shapes/Object/FabricObjectSVGExportMixin.ts:130

Returns svg representation of an instance

FabricObjectSVGExportMixin & FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>

TSVGReviver

Method for further parsing of svg representation.

string

svg representation of an instance

ITextClickBehavior.toSVG


transform(ctx): void

Defined in: src/shapes/Object/Object.ts:528

Transforms context when rendering an object

CanvasRenderingContext2D

Context

void

ITextClickBehavior.transform


transformMatrixKey(skipGroup): number[]

Defined in: src/shapes/Object/ObjectGeometry.ts:455

boolean = false

number[]

ITextClickBehavior.transformMatrixKey


translateToCenterPoint(point, originX, originY): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:685

Translates the coordinates from origin to center coordinates (based on the object’s dimensions)

Point

The point which corresponds to the originX and originY params

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

Point

ITextClickBehavior.translateToCenterPoint


translateToGivenOrigin(point, fromOriginX, fromOriginY, toOriginX, toOriginY): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:657

Translates the coordinates from a set of origin to another (based on the object’s dimensions)

Point

The point which corresponds to the originX and originY params

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

Point

ITextClickBehavior.translateToGivenOrigin


translateToOriginPoint(center, originX, originY): Point

Defined in: src/shapes/Object/ObjectGeometry.ts:713

Translates the coordinates from center to origin coordinates (based on the object’s dimensions)

Point

The point which corresponds to center of the object

TOriginX

Horizontal origin: ‘left’, ‘center’ or ‘right’

TOriginY

Vertical origin: ‘top’, ‘center’ or ‘bottom’

Point

ITextClickBehavior.translateToOriginPoint


tripleClickHandler(options): void

Defined in: src/shapes/IText/ITextClickBehavior.ts:82

Default handler for triple click, select a line

TPointerEventInfo

void

ITextClickBehavior.tripleClickHandler


updateSelectionOnMouseMove(e): void

Defined in: src/shapes/IText/ITextBehavior.ts:432

called by Canvas#textEditingManager

TPointerEvent

void

ITextClickBehavior.updateSelectionOnMouseMove


willDrawShadow(): boolean

Defined in: src/shapes/Object/Object.ts:801

Check if this object will cast a shadow with an offset. used by Group.shouldCache to know if child has a shadow recursively

boolean

ITextClickBehavior.willDrawShadow


static _fromObject<S>(__namedParameters, __namedParameters): Promise<S>

Defined in: src/shapes/Object/Object.ts:1907

S extends BaseFabricObject<Partial<ObjectProps>, SerializedObjectProps, ObjectEvents>

Record<string, unknown>

Abortable & object = {}

Promise<S>

ITextClickBehavior._fromObject


static createControls(): object

Defined in: src/shapes/Object/InteractiveObject.ts:167

Creates the default control object. If you prefer to have on instance of controls shared among all objects make this function return an empty object and add controls to the ownDefaults

object

controls: Record<string, Control>

ITextClickBehavior.createControls


static fromElement(element, options?, cssRules?): Promise<FabricText<{ fontSize: number; left: number; linethrough: boolean; overline: boolean; signal?: AbortSignal; strokeWidth: number; top: number; underline: boolean; }, SerializedTextProps, ObjectEvents>>

Defined in: src/shapes/Text/Text.ts:1847

Returns FabricText instance from an SVG element (not yet implemented)

HTMLElement

Element to parse

Abortable

Options object

CSSRules

Promise<FabricText<{ fontSize: number; left: number; linethrough: boolean; overline: boolean; signal?: AbortSignal; strokeWidth: number; top: number; underline: boolean; }, SerializedTextProps, ObjectEvents>>

Text

ITextClickBehavior.fromElement


static fromObject<T, S>(object): Promise<S>

Defined in: src/shapes/Text/Text.ts:1924

Returns FabricText instance from an object representation

T extends TOptions<SerializedTextProps>

S extends FabricText<Partial<TextProps>, SerializedTextProps, ObjectEvents>

T

plain js Object to create an instance from

Promise<S>

ITextClickBehavior.fromObject


static getDefaults(): Record<string, any>

Defined in: src/shapes/IText/IText.ts:219

Record<string, any>

ITextClickBehavior.getDefaults