@excalidraw/excalidraw 0.16.0-f8b3692 → 0.16.1-26ff399

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/excalidraw.development.js +149 -39
  3. package/dist/excalidraw.production.min.js +1 -1
  4. package/package.json +1 -1
  5. package/types/actions/actionAddToLibrary.d.ts +24 -24
  6. package/types/actions/actionAlign.d.ts +8 -8
  7. package/types/actions/actionBoundText.d.ts +16 -16
  8. package/types/actions/actionCanvas.d.ts +112 -112
  9. package/types/actions/actionClipboard.d.ts +44 -44
  10. package/types/actions/actionDeleteSelected.d.ts +26 -26
  11. package/types/actions/actionDistribute.d.ts +4 -4
  12. package/types/actions/actionDuplicateSelection.d.ts +2 -2
  13. package/types/actions/actionElementLock.d.ts +18 -18
  14. package/types/actions/actionExport.d.ts +87 -87
  15. package/types/actions/actionFinalize.d.ts +18 -18
  16. package/types/actions/actionFlip.d.ts +4 -4
  17. package/types/actions/actionFrame.d.ts +26 -26
  18. package/types/actions/actionGroup.d.ts +20 -20
  19. package/types/actions/actionLinearEditor.d.ts +8 -8
  20. package/types/actions/actionMenu.d.ts +26 -26
  21. package/types/actions/actionProperties.d.ts +108 -108
  22. package/types/actions/actionSelectAll.d.ts +10 -10
  23. package/types/actions/actionStyles.d.ts +12 -12
  24. package/types/actions/actionToggleGridMode.d.ts +10 -10
  25. package/types/actions/actionToggleObjectsSnapMode.d.ts +137 -0
  26. package/types/actions/actionToggleStats.d.ts +10 -10
  27. package/types/actions/actionToggleViewMode.d.ts +10 -10
  28. package/types/actions/actionToggleZenMode.d.ts +10 -10
  29. package/types/actions/actionZindex.d.ts +8 -8
  30. package/types/actions/index.d.ts +1 -0
  31. package/types/actions/shortcuts.d.ts +1 -1
  32. package/types/actions/types.d.ts +1 -1
  33. package/types/appState.d.ts +6 -11
  34. package/types/components/Actions.d.ts +3 -4
  35. package/types/components/App.d.ts +14 -5
  36. package/types/components/LaserTool/LaserPathManager.d.ts +28 -0
  37. package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
  38. package/types/components/LaserTool/LaserTool.d.ts +7 -0
  39. package/types/components/LayerUI.d.ts +2 -1
  40. package/types/components/Sidebar/Sidebar.d.ts +1 -1
  41. package/types/components/Stack.d.ts +2 -2
  42. package/types/components/dropdownMenu/DropdownMenu.d.ts +6 -3
  43. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +2 -1
  44. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -1
  45. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +2 -1
  46. package/types/components/dropdownMenu/common.d.ts +1 -1
  47. package/types/components/icons.d.ts +2 -0
  48. package/types/components/main-menu/MainMenu.d.ts +6 -3
  49. package/types/cursor.d.ts +5 -0
  50. package/types/element/Hyperlink.d.ts +10 -10
  51. package/types/element/bounds.d.ts +4 -5
  52. package/types/element/dragElements.d.ts +11 -2
  53. package/types/element/embeddable.d.ts +8 -8
  54. package/types/element/linearElementEditor.d.ts +8 -8
  55. package/types/element/resizeElements.d.ts +2 -2
  56. package/types/keys.d.ts +1 -0
  57. package/types/math.d.ts +2 -0
  58. package/types/renderer/renderSnaps.d.ts +2 -0
  59. package/types/scene/selection.d.ts +1 -0
  60. package/types/snapping.d.ts +108 -0
  61. package/types/types.d.ts +31 -16
  62. package/types/utils.d.ts +3 -8
@@ -65,15 +65,9 @@ export declare const actionCut: {
65
65
  elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
66
66
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
67
67
  activeTool: {
68
- lastActiveTool: import("../types").LastActiveTool;
68
+ lastActiveTool: import("../types").ActiveTool | null;
69
69
  locked: boolean;
70
- } & ({
71
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
72
- customType: null;
73
- } | {
74
- type: "custom";
75
- customType: string;
76
- });
70
+ } & import("../types").ActiveTool;
77
71
  penMode: boolean;
78
72
  penDetected: boolean;
79
73
  exportBackground: boolean;
@@ -152,6 +146,12 @@ export declare const actionCut: {
152
146
  pendingImageElementId: string | null;
153
147
  showHyperlinkPopup: false | "editor" | "info";
154
148
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
149
+ snapLines: readonly import("../snapping").SnapLine[];
150
+ originSnapOffset: {
151
+ x: number;
152
+ y: number;
153
+ } | null;
154
+ objectsSnapModeEnabled: boolean;
155
155
  };
156
156
  commitToHistory: false;
157
157
  } | {
@@ -216,15 +216,9 @@ export declare const actionCut: {
216
216
  elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
217
217
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
218
218
  activeTool: {
219
- lastActiveTool: import("../types").LastActiveTool;
219
+ lastActiveTool: import("../types").ActiveTool | null;
220
220
  locked: boolean;
221
- } & ({
222
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
223
- customType: null;
224
- } | {
225
- type: "custom";
226
- customType: string;
227
- });
221
+ } & import("../types").ActiveTool;
228
222
  penMode: boolean;
229
223
  penDetected: boolean;
230
224
  exportBackground: boolean;
@@ -303,21 +297,21 @@ export declare const actionCut: {
303
297
  pendingImageElementId: string | null;
304
298
  showHyperlinkPopup: false | "editor" | "info";
305
299
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
300
+ snapLines: readonly import("../snapping").SnapLine[];
301
+ originSnapOffset: {
302
+ x: number;
303
+ y: number;
304
+ } | null;
305
+ objectsSnapModeEnabled: boolean;
306
306
  };
307
307
  commitToHistory: true;
308
308
  } | {
309
309
  elements: import("../element/types").ExcalidrawElement[];
310
310
  appState: {
311
311
  activeTool: {
312
- lastActiveTool: import("../types").LastActiveTool;
312
+ lastActiveTool: import("../types").ActiveTool | null;
313
313
  locked: boolean;
314
- } & ({
315
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
316
- customType: null;
317
- } | {
318
- type: "custom";
319
- customType: string;
320
- });
314
+ } & import("../types").ActiveTool;
321
315
  multiElement: null;
322
316
  activeEmbeddable: null;
323
317
  selectedElementIds: {};
@@ -421,14 +415,20 @@ export declare const actionCut: {
421
415
  pendingImageElementId: string | null;
422
416
  showHyperlinkPopup: false | "editor" | "info";
423
417
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
418
+ snapLines: readonly import("../snapping").SnapLine[];
419
+ originSnapOffset: {
420
+ x: number;
421
+ y: number;
422
+ } | null;
423
+ objectsSnapModeEnabled: boolean;
424
424
  };
425
425
  commitToHistory: boolean;
426
426
  };
427
427
  predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
428
428
  contextItemLabel: string;
429
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
429
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
430
430
  } & {
431
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
431
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
432
432
  };
433
433
  export declare const actionCopyAsSvg: {
434
434
  name: "copyAsSvg";
@@ -471,15 +471,9 @@ export declare const actionCopyAsSvg: {
471
471
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
472
472
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
473
473
  activeTool: {
474
- lastActiveTool: import("../types").LastActiveTool;
474
+ lastActiveTool: import("../types").ActiveTool | null;
475
475
  locked: boolean;
476
- } & ({
477
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
478
- customType: null;
479
- } | {
480
- type: "custom";
481
- customType: string;
482
- });
476
+ } & import("../types").ActiveTool;
483
477
  penMode: boolean;
484
478
  penDetected: boolean;
485
479
  exportBackground: boolean;
@@ -558,6 +552,12 @@ export declare const actionCopyAsSvg: {
558
552
  pendingImageElementId: string | null;
559
553
  showHyperlinkPopup: false | "editor" | "info";
560
554
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
555
+ snapLines: readonly import("../snapping").SnapLine[];
556
+ originSnapOffset: {
557
+ x: number;
558
+ y: number;
559
+ } | null;
560
+ objectsSnapModeEnabled: boolean;
561
561
  };
562
562
  commitToHistory: false;
563
563
  }>;
@@ -607,15 +607,9 @@ export declare const actionCopyAsPng: {
607
607
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
608
608
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
609
609
  activeTool: {
610
- lastActiveTool: import("../types").LastActiveTool;
610
+ lastActiveTool: import("../types").ActiveTool | null;
611
611
  locked: boolean;
612
- } & ({
613
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
614
- customType: null;
615
- } | {
616
- type: "custom";
617
- customType: string;
618
- });
612
+ } & import("../types").ActiveTool;
619
613
  penMode: boolean;
620
614
  penDetected: boolean;
621
615
  exportBackground: boolean;
@@ -694,14 +688,20 @@ export declare const actionCopyAsPng: {
694
688
  pendingImageElementId: string | null;
695
689
  showHyperlinkPopup: false | "editor" | "info";
696
690
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
691
+ snapLines: readonly import("../snapping").SnapLine[];
692
+ originSnapOffset: {
693
+ x: number;
694
+ y: number;
695
+ } | null;
696
+ objectsSnapModeEnabled: boolean;
697
697
  };
698
698
  commitToHistory: false;
699
699
  }>;
700
700
  predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
701
701
  contextItemLabel: string;
702
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
702
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
703
703
  } & {
704
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
704
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
705
705
  };
706
706
  export declare const copyText: {
707
707
  name: "copyText";
@@ -41,15 +41,9 @@ export declare const actionDeleteSelected: {
41
41
  elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
42
42
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
43
43
  activeTool: {
44
- lastActiveTool: import("../types").LastActiveTool;
44
+ lastActiveTool: import("../types").ActiveTool | null;
45
45
  locked: boolean;
46
- } & ({
47
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
48
- customType: null;
49
- } | {
50
- type: "custom";
51
- customType: string;
52
- });
46
+ } & import("../types").ActiveTool;
53
47
  penMode: boolean;
54
48
  penDetected: boolean;
55
49
  exportBackground: boolean;
@@ -128,6 +122,12 @@ export declare const actionDeleteSelected: {
128
122
  pendingImageElementId: string | null;
129
123
  showHyperlinkPopup: false | "editor" | "info";
130
124
  selectedLinearElement: LinearElementEditor | null;
125
+ snapLines: readonly import("../snapping").SnapLine[];
126
+ originSnapOffset: {
127
+ x: number;
128
+ y: number;
129
+ } | null;
130
+ objectsSnapModeEnabled: boolean;
131
131
  };
132
132
  commitToHistory: false;
133
133
  } | {
@@ -192,15 +192,9 @@ export declare const actionDeleteSelected: {
192
192
  elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
193
193
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
194
194
  activeTool: {
195
- lastActiveTool: import("../types").LastActiveTool;
195
+ lastActiveTool: import("../types").ActiveTool | null;
196
196
  locked: boolean;
197
- } & ({
198
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
199
- customType: null;
200
- } | {
201
- type: "custom";
202
- customType: string;
203
- });
197
+ } & import("../types").ActiveTool;
204
198
  penMode: boolean;
205
199
  penDetected: boolean;
206
200
  exportBackground: boolean;
@@ -279,21 +273,21 @@ export declare const actionDeleteSelected: {
279
273
  pendingImageElementId: string | null;
280
274
  showHyperlinkPopup: false | "editor" | "info";
281
275
  selectedLinearElement: LinearElementEditor | null;
276
+ snapLines: readonly import("../snapping").SnapLine[];
277
+ originSnapOffset: {
278
+ x: number;
279
+ y: number;
280
+ } | null;
281
+ objectsSnapModeEnabled: boolean;
282
282
  };
283
283
  commitToHistory: true;
284
284
  } | {
285
285
  elements: ExcalidrawElement[];
286
286
  appState: {
287
287
  activeTool: {
288
- lastActiveTool: import("../types").LastActiveTool;
288
+ lastActiveTool: import("../types").ActiveTool | null;
289
289
  locked: boolean;
290
- } & ({
291
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
292
- customType: null;
293
- } | {
294
- type: "custom";
295
- customType: string;
296
- });
290
+ } & import("../types").ActiveTool;
297
291
  multiElement: null;
298
292
  activeEmbeddable: null;
299
293
  selectedElementIds: {};
@@ -397,12 +391,18 @@ export declare const actionDeleteSelected: {
397
391
  pendingImageElementId: string | null;
398
392
  showHyperlinkPopup: false | "editor" | "info";
399
393
  selectedLinearElement: LinearElementEditor | null;
394
+ snapLines: readonly import("../snapping").SnapLine[];
395
+ originSnapOffset: {
396
+ x: number;
397
+ y: number;
398
+ } | null;
399
+ objectsSnapModeEnabled: boolean;
400
400
  };
401
401
  commitToHistory: boolean;
402
402
  };
403
403
  contextItemLabel: string;
404
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
404
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
405
405
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
406
406
  } & {
407
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
407
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
408
408
  };
@@ -10,10 +10,10 @@ export declare const distributeHorizontally: {
10
10
  elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
11
11
  commitToHistory: true;
12
12
  };
13
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
13
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
14
14
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
15
15
  } & {
16
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
16
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
17
17
  };
18
18
  export declare const distributeVertically: {
19
19
  name: "distributeVertically";
@@ -25,8 +25,8 @@ export declare const distributeVertically: {
25
25
  elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
26
26
  commitToHistory: true;
27
27
  };
28
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
28
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
29
29
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
30
30
  } & {
31
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
31
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
32
32
  };
@@ -14,8 +14,8 @@ export declare const actionDuplicateSelection: {
14
14
  replaceFiles?: boolean | undefined;
15
15
  };
16
16
  contextItemLabel: string;
17
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
17
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
18
18
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
19
19
  } & {
20
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
20
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
21
21
  };
@@ -40,15 +40,9 @@ export declare const actionToggleElementLock: {
40
40
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
41
41
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
42
42
  activeTool: {
43
- lastActiveTool: import("../types").LastActiveTool;
43
+ lastActiveTool: import("../types").ActiveTool | null;
44
44
  locked: boolean;
45
- } & ({
46
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
47
- customType: null;
48
- } | {
49
- type: "custom";
50
- customType: string;
51
- });
45
+ } & import("../types").ActiveTool;
52
46
  penMode: boolean;
53
47
  penDetected: boolean;
54
48
  exportBackground: boolean;
@@ -126,13 +120,19 @@ export declare const actionToggleElementLock: {
126
120
  };
127
121
  pendingImageElementId: string | null;
128
122
  showHyperlinkPopup: false | "editor" | "info";
123
+ snapLines: readonly import("../snapping").SnapLine[];
124
+ originSnapOffset: {
125
+ x: number;
126
+ y: number;
127
+ } | null;
128
+ objectsSnapModeEnabled: boolean;
129
129
  };
130
130
  commitToHistory: true;
131
131
  };
132
132
  contextItemLabel: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, app: import("../types").AppClassProperties) => "labels.elementLock.unlock" | "labels.elementLock.lock" | "labels.elementLock.lockAll" | "labels.elementLock.unlockAll";
133
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
133
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
134
134
  } & {
135
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
135
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
136
136
  };
137
137
  export declare const actionUnlockAllElements: {
138
138
  name: "unlockAllElements";
@@ -178,15 +178,9 @@ export declare const actionUnlockAllElements: {
178
178
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
179
179
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
180
180
  activeTool: {
181
- lastActiveTool: import("../types").LastActiveTool;
181
+ lastActiveTool: import("../types").ActiveTool | null;
182
182
  locked: boolean;
183
- } & ({
184
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
185
- customType: null;
186
- } | {
187
- type: "custom";
188
- customType: string;
189
- });
183
+ } & import("../types").ActiveTool;
190
184
  penMode: boolean;
191
185
  penDetected: boolean;
192
186
  exportBackground: boolean;
@@ -262,6 +256,12 @@ export declare const actionUnlockAllElements: {
262
256
  pendingImageElementId: string | null;
263
257
  showHyperlinkPopup: false | "editor" | "info";
264
258
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
259
+ snapLines: readonly import("../snapping").SnapLine[];
260
+ originSnapOffset: {
261
+ x: number;
262
+ y: number;
263
+ } | null;
264
+ objectsSnapModeEnabled: boolean;
265
265
  };
266
266
  commitToHistory: true;
267
267
  };