@excalidraw/excalidraw 0.12.0-b818df1 → 0.12.0-b914ad4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excalidraw/excalidraw",
3
- "version": "0.12.0-b818df1",
3
+ "version": "0.12.0-b914ad4",
4
4
  "main": "main.js",
5
5
  "types": "types/packages/excalidraw/index.d.ts",
6
6
  "files": [
@@ -140,6 +140,7 @@ export declare const actionCut: {
140
140
  y: number;
141
141
  }>;
142
142
  hoverPointIndex: number;
143
+ midPointHovered: boolean;
143
144
  };
144
145
  isLoading: boolean;
145
146
  errorMessage: string | null;
@@ -131,6 +131,7 @@ export declare const actionDeleteSelected: {
131
131
  y: number;
132
132
  }>;
133
133
  hoverPointIndex: number;
134
+ midPointHovered: boolean;
134
135
  };
135
136
  isLoading: boolean;
136
137
  errorMessage: string | null;
@@ -69,6 +69,7 @@ declare class App extends React.Component<AppProps, AppState> {
69
69
  private removeEventListeners;
70
70
  private addEventListeners;
71
71
  componentDidUpdate(prevProps: AppProps, prevState: AppState): void;
72
+ private renderScene;
72
73
  private onScroll;
73
74
  private onCut;
74
75
  private onCopy;
@@ -8,7 +8,7 @@ export declare const getCurvePathOps: (shape: Drawable) => Op[];
8
8
  export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
9
9
  export declare const getElementBounds: (element: ExcalidrawElement) => [number, number, number, number];
10
10
  export declare const getCommonBounds: (elements: readonly ExcalidrawElement[]) => [number, number, number, number];
11
- export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number) => [number, number, number, number];
11
+ export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => [number, number, number, number];
12
12
  export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[], sharpness: ExcalidrawElement["strokeSharpness"]) => [number, number, number, number];
13
13
  export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
14
14
  x: number;
@@ -24,6 +24,7 @@ export declare class LinearElementEditor {
24
24
  readonly startBindingElement: ExcalidrawBindableElement | null | "keep";
25
25
  readonly endBindingElement: ExcalidrawBindableElement | null | "keep";
26
26
  readonly hoverPointIndex: number;
27
+ readonly midPointHovered: boolean;
27
28
  constructor(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene);
28
29
  static POINT_HANDLE_SIZE: number;
29
30
  /**
@@ -38,6 +39,11 @@ export declare class LinearElementEditor {
38
39
  y: number;
39
40
  }[]) => void, linearElementEditor: LinearElementEditor): boolean;
40
41
  static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState): LinearElementEditor;
42
+ static isHittingMidPoint: (linearElementEditor: LinearElementEditor, scenePointer: {
43
+ x: number;
44
+ y: number;
45
+ }, appState: AppState) => boolean;
46
+ static getMidPoint(linearElementEditor: LinearElementEditor): readonly [number, number] | null;
41
47
  static handlePointerDown(event: React.PointerEvent<HTMLCanvasElement>, appState: AppState, history: History, scenePointer: {
42
48
  x: number;
43
49
  y: number;
@@ -45,12 +51,13 @@ export declare class LinearElementEditor {
45
51
  didAddPoint: boolean;
46
52
  hitElement: NonDeleted<ExcalidrawElement> | null;
47
53
  linearElementEditor: LinearElementEditor | null;
54
+ isMidPoint: boolean;
48
55
  };
49
56
  static handlePointerMove(event: React.PointerEvent<HTMLCanvasElement>, scenePointerX: number, scenePointerY: number, linearElementEditor: LinearElementEditor, gridSize: number | null): LinearElementEditor;
50
57
  /** scene coords */
51
58
  static getPointGlobalCoordinates(element: NonDeleted<ExcalidrawLinearElement>, point: Point): readonly [number, number];
52
59
  /** scene coords */
53
- static getPointsGlobalCoordinates(element: NonDeleted<ExcalidrawLinearElement>): number[][];
60
+ static getPointsGlobalCoordinates(element: NonDeleted<ExcalidrawLinearElement>): Point[];
54
61
  static getPointAtIndexGlobalCoordinates(element: NonDeleted<ExcalidrawLinearElement>, indexMaybeFromEnd: number): Point;
55
62
  static pointFromAbsoluteCoords(element: NonDeleted<ExcalidrawLinearElement>, absoluteCoords: Point): Point;
56
63
  static getPointIndexUnderCursor(element: NonDeleted<ExcalidrawLinearElement>, zoom: AppState["zoom"], x: number, y: number): number;
@@ -87,6 +94,7 @@ export declare class LinearElementEditor {
87
94
  startBindingElement: ExcalidrawBindableElement | "keep" | null;
88
95
  endBindingElement: ExcalidrawBindableElement | "keep" | null;
89
96
  hoverPointIndex: number;
97
+ midPointHovered: boolean;
90
98
  };
91
99
  isLoading: boolean;
92
100
  errorMessage: string | null;
@@ -136,7 +144,7 @@ export declare class LinearElementEditor {
136
144
  scrolledOutside: boolean;
137
145
  name: string;
138
146
  isResizing: boolean;
139
- isRotating: boolean; /** @returns whether point was dragged */
147
+ isRotating: boolean;
140
148
  zoom: Readonly<{
141
149
  value: import("../types").NormalizedZoomValue;
142
150
  }>;
@@ -1,4 +1,4 @@
1
- import { ExcalidrawElement, PointerType } from "./types";
1
+ import { ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
2
2
  import { Bounds } from "./bounds";
3
3
  import { Zoom } from "../types";
4
4
  export declare type TransformHandleDirection = "n" | "s" | "w" | "e" | "nw" | "ne" | "sw" | "se";
@@ -17,12 +17,13 @@ export declare const OMIT_SIDES_FOR_MULTIPLE_ELEMENTS: {
17
17
  export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2]: Bounds, angle: number, zoom: Zoom, pointerType: PointerType, omitSides?: {
18
18
  e?: boolean | undefined;
19
19
  s?: boolean | undefined;
20
- n?: boolean | undefined;
21
20
  w?: boolean | undefined;
21
+ n?: boolean | undefined;
22
22
  nw?: boolean | undefined;
23
23
  ne?: boolean | undefined;
24
24
  sw?: boolean | undefined;
25
25
  se?: boolean | undefined;
26
26
  rotation?: boolean | undefined;
27
- }) => TransformHandles;
27
+ }, margin?: number) => TransformHandles;
28
28
  export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, pointerType?: PointerType) => TransformHandles;
29
+ export declare const shouldShowBoundingBox: (elements: NonDeletedExcalidrawElement[]) => boolean;
@@ -53,6 +53,7 @@ declare type _ExcalidrawElementBase = Readonly<{
53
53
  updated: number;
54
54
  link: string | null;
55
55
  locked: boolean;
56
+ customData?: Record<string, any>;
56
57
  }>;
57
58
  export declare type ExcalidrawSelectionElement = _ExcalidrawElementBase & {
58
59
  type: "selection";
package/types/points.d.ts CHANGED
@@ -3,4 +3,5 @@ export declare const getSizeFromPoints: (points: readonly Point[]) => {
3
3
  width: number;
4
4
  height: number;
5
5
  };
6
- export declare const rescalePoints: (dimension: 0 | 1, nextDimensionSize: number, prevPoints: readonly Point[]) => Point[];
6
+ /** @arg dimension, 0 for rescaling only x, 1 for y */
7
+ export declare const rescalePoints: (dimension: 0 | 1, newSize: number, points: readonly Point[], normalize: boolean) => Point[];
@@ -0,0 +1,2 @@
1
+ declare const polyfill: () => void;
2
+ export default polyfill;
@@ -3,7 +3,15 @@ import { RoughSVG } from "roughjs/bin/svg";
3
3
  import { AppState, BinaryFiles } from "../types";
4
4
  import { NonDeletedExcalidrawElement } from "../element/types";
5
5
  import { RenderConfig } from "../scene/types";
6
- export declare const _renderScene: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, selectionElement: NonDeletedExcalidrawElement | null, scale: number, rc: RoughCanvas, canvas: HTMLCanvasElement, renderConfig: RenderConfig) => {
6
+ export declare const DEFAULT_SPACING = 4;
7
+ export declare const _renderScene: ({ elements, appState, scale, rc, canvas, renderConfig, }: {
8
+ elements: readonly NonDeletedExcalidrawElement[];
9
+ appState: AppState;
10
+ scale: number;
11
+ rc: RoughCanvas;
12
+ canvas: HTMLCanvasElement;
13
+ renderConfig: RenderConfig;
14
+ }) => {
7
15
  atLeastOneVisibleElement: boolean;
8
16
  scrollBars?: undefined;
9
17
  } | {
@@ -11,7 +19,15 @@ export declare const _renderScene: (elements: readonly NonDeletedExcalidrawEleme
11
19
  scrollBars: import("../scene/types").ScrollBars | undefined;
12
20
  };
13
21
  /** renderScene throttled to animation framerate */
14
- export declare const renderScene: <T extends boolean = false>(elements: readonly NonDeletedExcalidrawElement[], appState: AppState, selectionElement: NonDeletedExcalidrawElement | null, scale: number, rc: RoughCanvas, canvas: HTMLCanvasElement, renderConfig: RenderConfig, callback?: ((data: ReturnType<typeof _renderScene>) => void) | undefined, throttle?: T | undefined) => T extends true ? void : {
22
+ export declare const renderScene: <T extends boolean = false>(config: {
23
+ elements: readonly NonDeletedExcalidrawElement[];
24
+ appState: AppState;
25
+ scale: number;
26
+ rc: RoughCanvas;
27
+ canvas: HTMLCanvasElement;
28
+ renderConfig: RenderConfig;
29
+ callback?: ((data: ReturnType<typeof _renderScene>) => void) | undefined;
30
+ }, throttle?: T | undefined) => T extends true ? void : {
15
31
  atLeastOneVisibleElement: boolean;
16
32
  scrollBars?: undefined;
17
33
  } | {