class_body
{ "{"
public_field_definition
property_identifier "canvas"
type_annotation
: ":"
lookup_type
type_identifier "AppClassProperties"
[ "["
literal_type
string
" "\""
string_fragment "canvas"
" "\""
] "]"
; ";"
public_field_definition
property_identifier "interactiveCanvas"
type_annotation
: ":"
lookup_type
type_identifier "AppClassProperties"
[ "["
literal_type
string
" "\""
string_fragment "interactiveCanvas"
" "\""
] "]"
= "="
null "null"
; ";"
public_field_definition
property_identifier "rc"
type_annotation
: ":"
type_identifier "RoughCanvas"
; ";"
public_field_definition
property_identifier "unmounted"
type_annotation
: ":"
predefined_type
boolean "boolean"
= "="
false "false"
; ";"
public_field_definition
property_identifier "actionManager"
type_annotation
: ":"
type_identifier "ActionManager"
; ";"
public_field_definition
property_identifier "device"
type_annotation
: ":"
type_identifier "Device"
= "="
identifier "deviceContextInitialValue"
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "excalidrawContainerRef"
= "="
call_expression
member_expression
identifier "React"
. "."
property_identifier "createRef"
type_arguments
< "<"
type_identifier "HTMLDivElement"
> ">"
arguments
( "("
) ")"
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "scene"
type_annotation
: ":"
type_identifier "Scene"
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "renderer"
type_annotation
: ":"
type_identifier "Renderer"
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "fonts"
type_annotation
: ":"
type_identifier "Fonts"
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "resizeObserver"
type_annotation
: ":"
union_type
type_identifier "ResizeObserver"
| "|"
literal_type
undefined "undefined"
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "nearestScrollableContainer"
type_annotation
: ":"
union_type
union_type
type_identifier "HTMLElement"
| "|"
type_identifier "Document"
| "|"
literal_type
undefined "undefined"
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "library"
type_annotation
: ":"
lookup_type
type_identifier "AppClassProperties"
[ "["
literal_type
string
" "\""
string_fragment "library"
" "\""
] "]"
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "libraryItemsFromStorage"
type_annotation
: ":"
union_type
type_identifier "LibraryItems"
| "|"
literal_type
undefined "undefined"
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "id"
type_annotation
: ":"
predefined_type
string "string"
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "history"
type_annotation
: ":"
type_identifier "History"
; ";"
public_field_definition (+26 nodes collapsed)
; ";"
public_field_definition
accessibility_modifier
public "public"
property_identifier "files"
type_annotation
: ":"
type_identifier "BinaryFiles"
= "="
object
{ "{"
} "}"
; ";"
public_field_definition (+22 nodes collapsed)
; ";"
public_field_definition (+25 nodes collapsed)
; ";"
public_field_definition
property_identifier "hitLinkElement"
? "?"
type_annotation
: ":"
type_identifier "NonDeletedExcalidrawElement"
; ";"
public_field_definition
property_identifier "lastPointerDownEvent"
type_annotation
: ":"
union_type
generic_type
nested_type_identifier
identifier "React"
. "."
type_identifier "PointerEvent"
type_arguments
< "<"
type_identifier "HTMLElement"
> ">"
| "|"
literal_type
null "null"
= "="
null "null"
; ";"
public_field_definition (+22 nodes collapsed)
; ";"
public_field_definition
property_identifier "lastPointerMoveEvent"
type_annotation
: ":"
union_type
type_identifier "PointerEvent"
| "|"
literal_type
null "null"
= "="
null "null"
; ";"
public_field_definition
property_identifier "lastViewportPosition"
= "="
object
{ "{"
pair
property_identifier "x"
: ":"
number "0"
, ","
pair
property_identifier "y"
: ":"
number "0"
} "}"
; ";"
public_field_definition
property_identifier "laserPathManager"
type_annotation
: ":"
type_identifier "LaserPathManager"
= "="
new_expression
new "new"
identifier "LaserPathManager"
arguments
( "("
this "this"
) ")"
; ";"
public_field_definition (+38 nodes collapsed)
; ";"
public_field_definition (+49 nodes collapsed)
; ";"
public_field_definition (+41 nodes collapsed)
; ";"
public_field_definition
property_identifier "onUserFollowEmitter"
= "="
new_expression
new "new"
identifier "Emitter"
type_arguments
< "<"
tuple_type
[ "["
required_parameter
identifier "payload"
type_annotation
: ":"
type_identifier "OnUserFollowedPayload"
] "]"
> ">"
arguments
( "("
) ")"
; ";"
public_field_definition (+42 nodes collapsed)
; ";"
public_field_definition
property_identifier "missingPointerEventCleanupEmitter"
= "="
new_expression
new "new"
identifier "Emitter"
type_arguments
< "<"
tuple_type
[ "["
required_parameter
identifier "event"
type_annotation
: ":"
union_type
type_identifier "PointerEvent"
| "|"
literal_type
null "null"
] "]"
> ">"
arguments
( "("
) ")"
; ";"
public_field_definition
property_identifier "onRemoveEventListenersEmitter"
= "="
new_expression
new "new"
identifier "Emitter"
type_arguments
< "<"
tuple_type
[ "["
] "]"
> ">"
arguments
( "("
) ")"
; ";"
method_definition (+807 nodes collapsed)
method_definition (+431 nodes collapsed)
method_definition (+54 nodes collapsed)
method_definition (+41 nodes collapsed)
method_definition (+504 nodes collapsed)
method_definition (+223 nodes collapsed)
public_field_definition (+289 nodes collapsed)
; ";"
method_definition (+1317 nodes collapsed)
public_field_definition (+39 nodes collapsed)
; ";"
public_field_definition (+329 nodes collapsed)
; ";"
public_field_definition (+1122 nodes collapsed)
; ";"
method_definition (+2155 nodes collapsed)
public_field_definition (+41 nodes collapsed)
; ";"
public_field_definition (+27 nodes collapsed)
; ";"
public_field_definition (+27 nodes collapsed)
; ";"
public_field_definition (+51 nodes collapsed)
; ";"
public_field_definition (+233 nodes collapsed)
; ";"
public_field_definition (+25 nodes collapsed)
; ";"
public_field_definition (+144 nodes collapsed)
; ";"
method_definition (+106 nodes collapsed)
method_definition (+881 nodes collapsed)
method_definition (+89 nodes collapsed)
public_field_definition (+26 nodes collapsed)
; ";"
public_field_definition (+24 nodes collapsed)
; ";"
public_field_definition (+96 nodes collapsed)
; ";"
public_field_definition (+228 nodes collapsed)
; ";"
public_field_definition (+532 nodes collapsed)
; ";"
public_field_definition (+392 nodes collapsed)
; ";"
public_field_definition (+737 nodes collapsed)
; ";"
comment "// Lifecycle"
public_field_definition (+41 nodes collapsed)
; ";"
public_field_definition (+23 nodes collapsed)
; ";"
public_field_definition (+28 nodes collapsed)
; ";"
public_field_definition (+26 nodes collapsed)
; ";"
comment "/**\n * Resets scene & history.\n * ! Do not use to clear "...
public_field_definition (+118 nodes collapsed)
; ";"
public_field_definition (+711 nodes collapsed)
; ";"
public_field_definition (+51 nodes collapsed)
; ";"
public_field_definition (+155 nodes collapsed)
; ";"
public_field_definition (+192 nodes collapsed)
; ";"
method_definition (+531 nodes collapsed)
method_definition
accessibility_modifier
public "public"
property_identifier "componentWillUnmount"
formal_parameters
( "("
) ")"
statement_block
{ "{"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "renderer"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "scene"
= "="
new_expression
new "new"
identifier "Scene"
arguments
( "("
) ")"
; ";"
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "renderer"
= "="
new_expression
new "new"
identifier "Renderer"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "scene"
) ")"
; ";"
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "files"
= "="
object
{ "{"
} "}"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "imageCache"
. "."
property_identifier "clear"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "resizeObserver"
optional_chain
?. "?."
property_identifier "disconnect"
arguments
( "("
) ")"
; ";"
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "unmounted"
= "="
true "true"
; ";"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "removeEventListeners"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "scene"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "library"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "laserPathManager"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "onChangeEmitter"
. "."
property_identifier "clear"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "ShapeCache"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "SnapCache"
. "."
property_identifier "destroy"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "clearTimeout"
arguments
( "("
identifier "touchTimeout"
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "isSomeElementSelected"
. "."
property_identifier "clearCache"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "selectGroupsForSelectedElements"
. "."
property_identifier "clearCache"
arguments
( "("
) ")"
; ";"
expression_statement
assignment_expression
identifier "touchTimeout"
= "="
number "0"
; ";"
} "}"
public_field_definition (+108 nodes collapsed)
; ";"
comment "/** generally invoked only if fullscreen was invoked program"...
public_field_definition (+65 nodes collapsed)
; ";"
method_definition (+23 nodes collapsed)
method_definition
accessibility_modifier
private "private"
property_identifier "addEventListeners"
formal_parameters
( "("
) ")"
statement_block
{ "{"
comment "// remove first as we can add event listeners multiple times"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "removeEventListeners"
arguments
( "("
) ")"
; ";"
comment "// ---------------------------------------------------------"...
comment "// view+edit mode listeners"
comment "// ---------------------------------------------------------"...
if_statement (+47 nodes collapsed)
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "onRemoveEventListenersEmitter"
. "."
property_identifier "once"
arguments
( "("
call_expression (+31 nodes collapsed)
, ","
call_expression
identifier "addEventListener"
arguments
( "("
identifier "window"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "MESSAGE"
, ","
member_expression
this "this"
. "."
property_identifier "onWindowMessage"
, ","
false "false"
) ")"
, ","
call_expression
identifier "addEventListener"
arguments
( "("
identifier "document"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_UP"
, ","
member_expression
this "this"
. "."
property_identifier "removePointer"
) ")"
, ","
comment "// #3553"
call_expression
identifier "addEventListener"
arguments
( "("
identifier "document"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "COPY"
, ","
member_expression
this "this"
. "."
property_identifier "onCopy"
) ")"
, ","
call_expression (+24 nodes collapsed)
, ","
call_expression
identifier "addEventListener"
arguments
( "("
identifier "document"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "MOUSE_MOVE"
, ","
member_expression
this "this"
. "."
property_identifier "updateCurrentCursorPosition"
, ","
) ")"
, ","
comment "// rerender text elements on font load to fix #637 && #1553"
call_expression (+55 nodes collapsed)
, ","
comment "// Safari-only desktop pinch zoom"
call_expression (+23 nodes collapsed)
, ","
call_expression (+23 nodes collapsed)
, ","
call_expression (+23 nodes collapsed)
, ","
call_expression
identifier "addEventListener"
arguments
( "("
identifier "window"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "FOCUS"
, ","
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "maybeCleanupAfterMissingPointerUp"
arguments
( "("
null "null"
) ")"
; ";"
} "}"
) ")"
, ","
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
member_expression
member_expression
this "this"
. "."
property_identifier "state"
. "."
property_identifier "viewModeEnabled"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
comment "// ---------------------------------------------------------"...
comment "// edit-mode listeners only"
comment "// ---------------------------------------------------------"...
expression_statement (+174 nodes collapsed)
if_statement (+59 nodes collapsed)
} "}"
method_definition (+1378 nodes collapsed)
public_field_definition (+118 nodes collapsed)
; ";"
public_field_definition (+96 nodes collapsed)
; ";"
comment "// Copy/paste"
public_field_definition (+115 nodes collapsed)
; ";"
public_field_definition (+115 nodes collapsed)
; ";"
method_definition
accessibility_modifier
private "private"
static "static"
property_identifier "resetTapTwice"
formal_parameters
( "("
) ")"
statement_block
{ "{"
expression_statement
assignment_expression
identifier "didTapTwice"
= "="
false "false"
; ";"
} "}"
public_field_definition (+220 nodes collapsed)
; ";"
public_field_definition (+106 nodes collapsed)
; ";"
public_field_definition (+1002 nodes collapsed)
; ";"
public_field_definition (+896 nodes collapsed)
; ";"
comment "// TODO rewrite this to paste both text & images at the same"...
comment "// pasted data contains both"
method_definition (+625 nodes collapsed)
method_definition (+755 nodes collapsed)
public_field_definition (+52 nodes collapsed)
; ";"
public_field_definition (+63 nodes collapsed)
; ";"
public_field_definition (+194 nodes collapsed)
; ";"
public_field_definition (+203 nodes collapsed)
; ";"
public_field_definition (+65 nodes collapsed)
; ";"
public_field_definition (+25 nodes collapsed)
; ";"
comment "/**\n * Zooms on canvas viewport center\n */"
public_field_definition (+105 nodes collapsed)
; ";"
public_field_definition (+22 nodes collapsed)
; ";"
public_field_definition (+730 nodes collapsed)
; ";"
public_field_definition (+45 nodes collapsed)
; ";"
comment "/** use when changing scrollX/scrollY/zoom based on user int"...
public_field_definition (+70 nodes collapsed)
; ";"
public_field_definition (+60 nodes collapsed)
; ";"
public_field_definition (+204 nodes collapsed)
; ";"
comment "/** adds supplied files to existing files in the appState */"
public_field_definition (+230 nodes collapsed)
; ";"
public_field_definition (+211 nodes collapsed)
; ";"
public_field_definition (+26 nodes collapsed)
; ";"
comment "/**\n * @returns whether the menu was toggled on or off\n "...
public_field_definition (+148 nodes collapsed)
; ";"
public_field_definition (+54 nodes collapsed)
; ";"
comment "// Input handling"
public_field_definition (+2297 nodes collapsed)
; ";"
public_field_definition (+60 nodes collapsed)
; ";"
public_field_definition (+312 nodes collapsed)
; ";"
comment "// We purposely widen the `tool` type so this helper can be "...
comment "// any tool without having to type check it"
public_field_definition (+86 nodes collapsed)
; ";"
public_field_definition (+523 nodes collapsed)
; ";"
public_field_definition (+41 nodes collapsed)
; ";"
public_field_definition (+32 nodes collapsed)
; ";"
public_field_definition (+24 nodes collapsed)
; ";"
comment "/**\n * returns whether user is making a gesture with >= 2 "...
public_field_definition (+29 nodes collapsed)
; ";"
comment "// fires only on Safari"
public_field_definition (+104 nodes collapsed)
; ";"
comment "// fires only on Safari"
public_field_definition (+155 nodes collapsed)
; ";"
comment "// fires only on Safari"
public_field_definition (+101 nodes collapsed)
; ";"
method_definition (+655 nodes collapsed)
method_definition (+57 nodes collapsed)
method_definition (+95 nodes collapsed)
method_definition (+277 nodes collapsed)
method_definition (+253 nodes collapsed)
public_field_definition (+1005 nodes collapsed)
; ";"
public_field_definition (+732 nodes collapsed)
; ";"
public_field_definition (+201 nodes collapsed)
; ";"
public_field_definition (+463 nodes collapsed)
; ";"
public_field_definition (+102 nodes collapsed)
; ";"
public_field_definition
accessibility_modifier
private "private"
property_identifier "handleCanvasPointerMove"
= "="
arrow_function
formal_parameters
( "("
required_parameter
identifier "event"
type_annotation
: ":"
generic_type
nested_type_identifier
identifier "React"
. "."
type_identifier "PointerEvent"
type_arguments
< "<"
type_identifier "HTMLCanvasElement"
> ">"
, ","
) ")"
=> "=>"
statement_block
{ "{"
expression_statement (+27 nodes collapsed)
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "lastPointerMoveEvent"
= "="
member_expression
identifier "event"
. "."
property_identifier "nativeEvent"
; ";"
if_statement (+60 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "initialScale"
= "="
member_expression
identifier "gesture"
. "."
property_identifier "initialScale"
; ";"
if_statement (+341 nodes collapsed)
if_statement (+29 nodes collapsed)
lexical_declaration (+41 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "isOverScrollBar"
= "="
member_expression
identifier "isPointerOverScrollBars"
. "."
property_identifier "isOverEither"
; ";"
if_statement (+69 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "scenePointer"
= "="
call_expression
identifier "viewportCoordsToSceneCoords"
arguments
( "("
identifier "event"
, ","
member_expression
this "this"
. "."
property_identifier "state"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
pair_pattern
property_identifier "x"
: ":"
identifier "scenePointerX"
, ","
pair_pattern
property_identifier "y"
: ":"
identifier "scenePointerY"
} "}"
= "="
identifier "scenePointer"
; ";"
if_statement (+260 nodes collapsed)
if_statement (+175 nodes collapsed)
if_statement (+95 nodes collapsed)
if_statement (+541 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "hasDeselectedButton"
= "="
call_expression
identifier "Boolean"
arguments
( "("
member_expression
identifier "event"
. "."
property_identifier "buttons"
) ")"
; ";"
if_statement (+69 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "elements"
= "="
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "scene"
. "."
property_identifier "getNonDeletedElements"
arguments
( "("
) ")"
; ";"
lexical_declaration (+21 nodes collapsed)
if_statement (+195 nodes collapsed)
lexical_declaration (+24 nodes collapsed)
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "hitLinkElement"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "getElementLinkAtPosition"
arguments
( "("
identifier "scenePointer"
, ","
identifier "hitElement"
, ","
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
call_expression
identifier "isEraserActive"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "state"
) ")"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
if_statement (+539 nodes collapsed)
} "}"
; ";"
public_field_definition (+727 nodes collapsed)
; ";"
comment "// set touch moving for mobile context menu"
public_field_definition (+32 nodes collapsed)
; ";"
method_definition (+498 nodes collapsed)
public_field_definition
accessibility_modifier
private "private"
property_identifier "handleCanvasPointerDown"
= "="
arrow_function
formal_parameters
( "("
required_parameter
identifier "event"
type_annotation
: ":"
generic_type
nested_type_identifier
identifier "React"
. "."
type_identifier "PointerEvent"
type_arguments
< "<"
type_identifier "HTMLElement"
> ">"
, ","
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "maybeCleanupAfterMissingPointerUp"
arguments
( "("
member_expression
identifier "event"
. "."
property_identifier "nativeEvent"
) ")"
; ";"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "maybeUnfollowRemoteUser"
arguments
( "("
) ")"
; ";"
comment "// since contextMenu options are potentially evaluated on ea"...
comment "// and an contextMenu action may depend on selection state, "...
comment "// close the contextMenu before we update the selection on p"...
comment "// (e.g. resetting selection)"
if_statement (+32 nodes collapsed)
if_statement (+34 nodes collapsed)
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "updateGestureOnPointerDown"
arguments
( "("
identifier "event"
) ")"
; ";"
comment "// if dragging element is freedraw and another pointerdown e"...
comment "// a second finger is on the screen"
comment "// discard the freedraw element if it is very short because "...
comment "// just a spike, otherwise finalize the freedraw element whe"...
comment "// finger is lifted"
if_statement (+285 nodes collapsed)
comment "// remove any active selection when we start to interact wit"...
comment "// (mainly, we care about removing selection outside the com"...
comment "// would prevent our copy handling otherwise)"
lexical_declaration
const "const"
variable_declarator
identifier "selection"
= "="
call_expression
member_expression
identifier "document"
. "."
property_identifier "getSelection"
arguments
( "("
) ")"
; ";"
if_statement (+23 nodes collapsed)
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "maybeOpenContextMenuAfterPointerDownOnTouchDevices"
arguments
( "("
identifier "event"
) ")"
; ";"
comment "//fires only once, if pen is detected, penMode is enabled"
comment "//the user can disable this by toggling the penMode button"
if_statement (+65 nodes collapsed)
if_statement (+67 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
identifier "isPanning"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
expression_statement
assignment_expression
member_expression
this "this"
. "."
property_identifier "lastPointerDownEvent"
= "="
identifier "event"
; ";"
comment "// we must exit before we set `cursorButton` state and `save"...
comment "// else it will send pointer state & laser pointer events in"...
comment "// panning"
if_statement
if "if"
parenthesized_expression
( "("
call_expression
member_expression
this "this"
. "."
property_identifier "handleCanvasPanUsingWheelOrSpaceDrag"
arguments
( "("
identifier "event"
) ")"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
expression_statement (+29 nodes collapsed)
expression_statement (+24 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
member_expression
identifier "event"
. "."
property_identifier "button"
=== "==="
member_expression
identifier "POINTER_BUTTON"
. "."
property_identifier "ERASER"
&& "&&"
binary_expression
member_expression
member_expression
member_expression
this "this"
. "."
property_identifier "state"
. "."
property_identifier "activeTool"
. "."
property_identifier "type"
!== "!=="
member_expression
identifier "TOOL_TYPE"
. "."
property_identifier "eraser"
) ")"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "setState"
arguments
( "("
object
{ "{"
pair
property_identifier "activeTool"
: ":"
call_expression
identifier "updateActiveTool"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "state"
, ","
object
{ "{"
pair
property_identifier "type"
: ":"
member_expression
identifier "TOOL_TYPE"
. "."
property_identifier "eraser"
, ","
pair
property_identifier "lastActiveToolBeforeEraser"
: ":"
member_expression
member_expression
this "this"
. "."
property_identifier "state"
. "."
property_identifier "activeTool"
, ","
} "}"
) ")"
, ","
} "}"
, ","
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "handleCanvasPointerDown"
arguments
( "("
identifier "event"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "onPointerUp"
= "="
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
call_expression
identifier "unsubPointerUp"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "unsubCleanup"
?. "?."
arguments
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
call_expression
identifier "isEraserActive"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "state"
) ")"
) ")"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "setState"
arguments
( "("
object
{ "{"
pair
property_identifier "activeTool"
: ":"
call_expression
identifier "updateActiveTool"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "state"
, ","
object
{ "{"
spread_element
... "..."
parenthesized_expression
( "("
binary_expression
member_expression
member_expression
member_expression
this "this"
. "."
property_identifier "state"
. "."
property_identifier "activeTool"
. "."
property_identifier "lastActiveTool"
|| "||"
object
{ "{"
pair
property_identifier "type"
: ":"
member_expression
identifier "TOOL_TYPE"
. "."
property_identifier "selection"
, ","
} "}"
) ")"
, ","
pair
property_identifier "lastActiveToolBeforeEraser"
: ":"
null "null"
, ","
} "}"
) ")"
, ","
} "}"
) ")"
; ";"
} "}"
} "}"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "unsubPointerUp"
= "="
call_expression
identifier "addEventListener"
arguments
( "("
identifier "window"
, ","
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_UP"
, ","
identifier "onPointerUp"
, ","
object
{ "{"
pair
property_identifier "once"
: ":"
true "true"
, ","
} "}"
, ","
) ")"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "unsubCleanup"
type_annotation
: ":"
union_type
type_identifier "UnsubscribeCallback"
| "|"
literal_type
undefined "undefined"
; ";"
comment "// subscribe inside rAF lest it'd be triggered on the same p"...
comment "// if we start erasing while coming from blurred document si"...
comment "// we cleanup pointer events on focus"
expression_statement
call_expression
identifier "requestAnimationFrame"
arguments
( "("
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
assignment_expression
identifier "unsubCleanup"
= "="
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "missingPointerEventCleanupEmitter"
. "."
property_identifier "once"
arguments
( "("
identifier "onPointerUp"
) ")"
; ";"
} "}"
) ")"
; ";"
} "}"
, ","
) ")"
; ";"
return_statement
return "return"
; ";"
} "}"
comment "// only handle left mouse button or touch"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 2:3
binary_expression any 2:3
binary_expression any 2:3
member_expression
identifier "event"
. "."
property_identifier "button"
!== "!=="
member_expression
identifier "POINTER_BUTTON"
. "."
property_identifier "MAIN"
&& "&&"
binary_expression
member_expression
identifier "event"
. "."
property_identifier "button"
!== "!=="
member_expression
identifier "POINTER_BUTTON"
. "."
property_identifier "TOUCH"
&& "&&"
binary_expression
member_expression
identifier "event"
. "."
property_identifier "button"
!== "!=="
member_expression
identifier "POINTER_BUTTON"
. "."
property_identifier "ERASER"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
comment "// don't select while panning"
if_statement (+21 nodes collapsed)
comment "// State for the duration of a pointer interaction, which st"...
comment "// pointerDown event, ends with a pointerUp event (or anothe"...
lexical_declaration
const "const"
variable_declarator
identifier "pointerDownState"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "initialPointerDownState"
arguments
( "("
identifier "event"
) ")"
; ";"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "setState"
arguments
( "("
object
{ "{"
pair
property_identifier "selectedElementsAreBeingDragged"
: ":"
false "false"
, ","
} "}"
) ")"
; ";"
if_statement (+22 nodes collapsed)
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "clearSelectionIfNotUsingSelection"
arguments
( "("
) ")"
; ";"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "updateBindingEnabledOnPointerMove"
arguments
( "("
identifier "event"
) ")"
; ";"
if_statement (+22 nodes collapsed)
lexical_declaration (+81 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "allowOnPointerDown"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
if_statement (+586 nodes collapsed)
expression_statement (+24 nodes collapsed)
expression_statement (+25 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "onPointerMove"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "onPointerMoveFromPointerDownHandler"
arguments
( "("
identifier "pointerDownState"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "onPointerUp"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "onPointerUpFromPointerDownHandler"
arguments
( "("
identifier "pointerDownState"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "onKeyDown"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "onKeyDownFromPointerDownHandler"
arguments
( "("
identifier "pointerDownState"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "onKeyUp"
= "="
call_expression
member_expression
this "this"
. "."
property_identifier "onKeyUpFromPointerDownHandler"
arguments
( "("
identifier "pointerDownState"
) ")"
; ";"
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "missingPointerEventCleanupEmitter"
. "."
property_identifier "once"
arguments
( "("
arrow_function
formal_parameters
( "("
required_parameter
identifier "_event"
) ")"
=> "=>"
call_expression
identifier "onPointerUp"
arguments
( "("
binary_expression
identifier "_event"
|| "||"
member_expression
identifier "event"
. "."
property_identifier "nativeEvent"
) ")"
, ","
) ")"
; ";"
if_statement (+147 nodes collapsed)
} "}"
; ";"
public_field_definition (+435 nodes collapsed)
; ";"
public_field_definition (+132 nodes collapsed)
; ";"
public_field_definition (+33 nodes collapsed)
; ";"
comment "/**\n * pointerup may not fire in certian cases (user tabs "...
public_field_definition
accessibility_modifier
private "private"
property_identifier "maybeCleanupAfterMissingPointerUp"
= "="
arrow_function
formal_parameters
( "("
required_parameter
identifier "event"
type_annotation
: ":"
union_type
type_identifier "PointerEvent"
| "|"
literal_type
null "null"
) ")"
=> "=>"
statement_block
{ "{"
expression_statement any 1:2
call_expression any 1:3
identifier "lastPointerUp" all 2:1
?. "?."
arguments
( "("
) ")"
; ";" any 1:2
expression_statement any 1:2
call_expression any 1:3
member_expression
call_expression any 1:3
member_expression
member_expression
this "this"
. "."
property_identifier "missingPointerEventCleanupEmitter"
. "."
property_identifier "trigger"
arguments
( "("
identifier "event"
) ")"
. "."
property_identifier "clear"
arguments
( "("
) ")"
; ";" any 1:2
} "}"
; ";"
comment "// Returns whether the event is a panning"
public_field_definition (+807 nodes collapsed)
; ";"
method_definition (+151 nodes collapsed)
method_definition (+462 nodes collapsed)
comment "// Returns whether the event is a dragging a scrollbar"
method_definition
accessibility_modifier
private "private"
property_identifier "handleDraggingScrollBar"
formal_parameters (+23 nodes collapsed)
type_annotation
: ":"
predefined_type
boolean "boolean"
statement_block
{ "{"
if_statement (+35 nodes collapsed)
expression_statement
assignment_expression
identifier "isDraggingScrollBar"
= "="
true "true"
; ";"
expression_statement
assignment_expression
member_expression
member_expression
identifier "pointerDownState"
. "."
property_identifier "lastCoords"
. "."
property_identifier "x"
= "="
member_expression
identifier "event"
. "."
property_identifier "clientX"
; ";"
expression_statement
assignment_expression
member_expression
member_expression
identifier "pointerDownState"
. "."
property_identifier "lastCoords"
. "."
property_identifier "y"
= "="
member_expression
identifier "event"
. "."
property_identifier "clientY"
; ";"
lexical_declaration (+67 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "onPointerUp"
= "="
call_expression
identifier "withBatchedUpdates"
arguments
( "("
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
assignment_expression
identifier "lastPointerUp"
= "="
null "null"
; ";"
expression_statement
assignment_expression
identifier "isDraggingScrollBar"
= "="
false "false"
; ";"
expression_statement
call_expression
identifier "setCursorForShape"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "interactiveCanvas"
, ","
member_expression
this "this"
. "."
property_identifier "state"
) ")"
; ";"
expression_statement (+21 nodes collapsed)
expression_statement (+24 nodes collapsed)
expression_statement
call_expression
member_expression
identifier "window"
. "."
property_identifier "removeEventListener"
arguments
( "("
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_MOVE"
, ","
identifier "onPointerMove"
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "window"
. "."
property_identifier "removeEventListener"
arguments
( "("
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_UP"
, ","
identifier "onPointerUp"
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "onPointerMove"
. "."
property_identifier "flush"
arguments
( "("
) ")"
; ";"
} "}"
) ")"
; ";"
expression_statement
assignment_expression
identifier "lastPointerUp"
= "="
identifier "onPointerUp"
; ";"
expression_statement
call_expression
member_expression
identifier "window"
. "."
property_identifier "addEventListener"
arguments
( "("
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_MOVE"
, ","
identifier "onPointerMove"
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "window"
. "."
property_identifier "addEventListener"
arguments
( "("
member_expression
identifier "EVENT"
. "."
property_identifier "POINTER_UP"
, ","
identifier "onPointerUp"
) ")"
; ";"
return_statement
return "return"
true "true"
; ";"
} "}"
public_field_definition (+88 nodes collapsed)
; ";"
comment "/**\n * @returns whether the pointer event has been complet"...
public_field_definition (+1803 nodes collapsed)
; ";"
method_definition (+46 nodes collapsed)
method_definition (+163 nodes collapsed)
public_field_definition (+304 nodes collapsed)
; ";"
public_field_definition (+444 nodes collapsed)
; ";"
public_field_definition (+267 nodes collapsed)
; ";"
comment "//create rectangle element with youtube top left on nearest "...
public_field_definition (+346 nodes collapsed)
; ";"
public_field_definition (+266 nodes collapsed)
; ";"
public_field_definition (+841 nodes collapsed)
; ";"
method_definition (+101 nodes collapsed)
public_field_definition (+423 nodes collapsed)
; ";"
public_field_definition (+234 nodes collapsed)
; ";"
method_definition (+115 nodes collapsed)
method_definition (+115 nodes collapsed)
method_definition (+86 nodes collapsed)
method_definition (+109 nodes collapsed)
method_definition (+3328 nodes collapsed)
comment "// Returns whether the pointer move happened over either scr"...
method_definition (+222 nodes collapsed)
method_definition
accessibility_modifier
private "private"
property_identifier "onPointerUpFromPointerDownHandler"
formal_parameters
( "("
required_parameter
identifier "pointerDownState"
type_annotation
: ":"
type_identifier "PointerDownState"
, ","
) ")"
type_annotation
: ":"
function_type
formal_parameters
( "("
required_parameter
identifier "event"
type_annotation
: ":"
type_identifier "PointerEvent"
) ")"
=> "=>"
predefined_type
void "void"
statement_block
{ "{"
return_statement
return "return"
call_expression
identifier "withBatchedUpdates"
arguments
( "("
arrow_function
formal_parameters
( "("
required_parameter
identifier "childEvent"
type_annotation
: ":"
type_identifier "PointerEvent"
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "removePointer"
arguments
( "("
identifier "childEvent"
) ")"
; ";"
if_statement (+31 nodes collapsed)
lexical_declaration (+24 nodes collapsed)
expression_statement (+115 nodes collapsed)
expression_statement
call_expression
member_expression
identifier "SnapCache"
. "."
property_identifier "setReferenceSnapPoints"
arguments
( "("
null "null"
) ")"
; ";"
expression_statement
call_expression
member_expression
identifier "SnapCache"
. "."
property_identifier "setVisibleGaps"
arguments
( "("
null "null"
) ")"
; ";"
expression_statement (+24 nodes collapsed)
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "setState"
arguments
( "("
object
{ "{"
pair
property_identifier "selectedElementsAreBeingDragged"
: ":"
false "false"
, ","
} "}"
) ")"
; ";"
comment "// Handle end of dragging a point of a linear element, might"...
comment "// and sets binding element"
if_statement (+397 nodes collapsed)
expression_statement
call_expression
member_expression
member_expression
this "this"
. "."
property_identifier "missingPointerEventCleanupEmitter"
. "."
property_identifier "clear"
arguments
( "("
) ")"
; ";"
expression_statement (+25 nodes collapsed)
expression_statement (+25 nodes collapsed)
expression_statement (+25 nodes collapsed)
expression_statement (+25 nodes collapsed)
if_statement (+32 nodes collapsed)
expression_statement (+25 nodes collapsed)
if_statement (+214 nodes collapsed)
if_statement (+191 nodes collapsed)
if_statement (+429 nodes collapsed)
if_statement (+100 nodes collapsed)
if_statement (+808 nodes collapsed)
if_statement (+22 nodes collapsed)
if_statement (+66 nodes collapsed)
comment "// handle frame membership for resizing frames and/or select"...
if_statement (+162 nodes collapsed)
comment "// Code below handles selection when element(s) weren't"
comment "// drag or added to selection on pointer down phase."
lexical_declaration
const "const"
variable_declarator
identifier "hitElement"
= "="
member_expression
member_expression
identifier "pointerDownState"
. "."
property_identifier "hit"
. "."
property_identifier "element"
; ";"
if_statement (+102 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "pointerStart"
= "="
member_expression
this "this" all 2:1
. "." all 2:1
property_identifier "lastPointerDownEvent" all 2:1
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "pointerEnd"
= "="
binary_expression
member_expression
this "this" all 4:1
. "." all 4:1
property_identifier "lastPointerUpEvent" all 4:1
|| "||"
member_expression
this "this"
. "."
property_identifier "lastPointerMoveEvent"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
call_expression
identifier "isEraserActive"
arguments
( "("
member_expression
this "this"
. "."
property_identifier "state"
) ")"
&& "&&"
identifier "pointerStart"
&& "&&"
identifier "pointerEnd"
) ")"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
identifier "draggedDistance"
= "="
call_expression
identifier "distance2d"
arguments
( "("
member_expression any 2:1
identifier "pointerStart"
. "."
property_identifier "clientX"
, ","
member_expression any 2:1
identifier "pointerStart"
. "."
property_identifier "clientY"
, ","
member_expression any 2:1
identifier "pointerEnd"
. "."
property_identifier "clientX"
, ","
member_expression any 2:1
identifier "pointerEnd"
. "."
property_identifier "clientY"
, ","
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "draggedDistance"
=== "==="
number "0"
) ")"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
identifier "scenePointer"
= "="
call_expression
identifier "viewportCoordsToSceneCoords"
arguments
( "("
object
{ "{"
pair
property_identifier "clientX"
: ":"
member_expression any 2:1
identifier "pointerEnd"
. "."
property_identifier "clientX"
, ","
pair
property_identifier "clientY"
: ":"
member_expression any 2:1
identifier "pointerEnd"
. "."
property_identifier "clientY"
, ","
} "}"
, ","
member_expression
this "this"
. "."
property_identifier "state"
, ","
) ")"
; ";"
lexical_declaration (+24 nodes collapsed)
expression_statement (+50 nodes collapsed)
} "}"
expression_statement
call_expression
member_expression
this "this"
. "."
property_identifier "eraseElements"
arguments
( "("
identifier "pointerDownState"
) ")"
; ";"
return_statement
return "return"
; ";"
} "}"
else_clause (+36 nodes collapsed)
if_statement (+993 nodes collapsed)
if_statement (+177 nodes collapsed)
if_statement (+126 nodes collapsed)
if_statement (+54 nodes collapsed)
if_statement (+59 nodes collapsed)
if_statement (+34 nodes collapsed)
if_statement (+116 nodes collapsed)
if_statement (+106 nodes collapsed)
} "}"
) ")"
; ";"
} "}"
public_field_definition (+287 nodes collapsed)
; ";"
public_field_definition (+257 nodes collapsed)
; ";"
public_field_definition (+880 nodes collapsed)
; ";"
comment "/**\n * inserts image into elements array and rerenders\n "...
public_field_definition (+206 nodes collapsed)
; ";"
public_field_definition (+311 nodes collapsed)
; ";"
public_field_definition (+477 nodes collapsed)
; ";"
public_field_definition (+438 nodes collapsed)
; ";"
comment "/** updates image cache, refreshing updated elements and/or "...
public_field_definition (+263 nodes collapsed)
; ";"
comment "/** adds new images to imageCache and re-renders if needed *"...
public_field_definition (+159 nodes collapsed)
; ";"
comment "/** generally you should use `addNewImagesToImageCache()` di"...
public_field_definition (+30 nodes collapsed)
; ";"
public_field_definition (+74 nodes collapsed)
; ";"
public_field_definition (+87 nodes collapsed)
; ";"
public_field_definition (+205 nodes collapsed)
; ";"
method_definition (+72 nodes collapsed)
method_definition (+155 nodes collapsed)
public_field_definition (+193 nodes collapsed)
; ";"
public_field_definition (+737 nodes collapsed)
; ";"
public_field_definition (+393 nodes collapsed)
; ";"
public_field_definition (+536 nodes collapsed)
; ";"
public_field_definition (+699 nodes collapsed)
; ";"
public_field_definition (+856 nodes collapsed)
; ";"
public_field_definition (+255 nodes collapsed)
; ";"
public_field_definition (+448 nodes collapsed)
; ";"
method_definition (+222 nodes collapsed)
public_field_definition (+207 nodes collapsed)
; ";"
public_field_definition (+51 nodes collapsed)
; ";"
public_field_definition (+206 nodes collapsed)
; ";"
public_field_definition (+36 nodes collapsed)
; ";"
method_definition (+111 nodes collapsed)
method_definition (+71 nodes collapsed)
} "}"