excalidraw/src/tests
Aakansha Doshi 3ea07076ad
feat: support creating containers, linear elements, text containers, labelled arrows and arrow bindings programatically (#6546)
* feat: support creating text containers programatically

* fix

* fix

* fix

* fix

* update api to use label

* fix api and support individual shapes and text element

* update test case in package example

* support creating arrows and line

* support labelled arrows

* add in package example

* fix alignment

* better types

* fix

* keep element as is unless we support prog api

* fix tests

* fix lint

* ignore

* support arrow bindings via start and end in api

* fix lint

* fix coords

* support id as well for elements

* preserve bindings if present and fix testcases

* preserve bindings for labelled arrows

* support ids, clean up code and move the api related stuff to transform.ts

* allow multiple arrows to bind to single element

* fix singular elements

* fix single text element, unique id and tests

* fix lint

* fix

* support binding arrow to text element

* fix creation of regular text

* use same stroke color as parent for text containers and height 0 for linear element by default

* fix types

* fix

* remove more ts ignore

* remove ts ignore

* remove

* Add coverage script

* Add tests

* fix tests

* make type optional when id present

* remove type when id provided in tests

* Add more tests

* tweak

* let host call convertToExcalidrawElements when using programmatic API

* remove convertToExcalidrawElements call from restore

* lint

* update snaps

* Add new type excalidraw-api/clipboard for programmatic api

* cleanup

* rename tweak

* tweak

* make image attributes optional and better ts check

* support image via programmatic API

* fix lint

* more types

* make fileId mandatory for image and export convertToExcalidrawElements

* fix

* small tweaks

* update snaps

* fix

* use Object.assign instead of mutateElement

* lint

* preserve z-index by pushing all elements first and then add bindings

* instantiate instead of closure for storing elements

* use element API to create regular text, diamond, ellipse and rectangle

* fix snaps

* udpdate api

* ts fixes

* make `convertToExcalidrawElements` more typesafe

* update snaps

* refactor the approach so that order of elements doesn't matter

* Revert "update snaps"

This reverts commit 621dfadccf.

* review fixes

* rename ExcalidrawProgrammaticElement -> ExcalidrawELementSkeleton

* Add tests

* give preference to first element when duplicate ids found

* use console.error

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-08-09 16:41:15 +05:30
..
__snapshots__ build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
data feat: support creating containers, linear elements, text containers, labelled arrows and arrow bindings programatically (#6546) 2023-08-09 16:41:15 +05:30
fixtures fix: remove embeddable from generic elements (#6853) 2023-08-04 15:16:55 +02:00
helpers fix: remove embeddable from generic elements (#6853) 2023-08-04 15:16:55 +02:00
packages build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
queries feat: introduce frames (#6123) 2023-06-14 18:42:01 +02:00
scene build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
align.test.tsx Refactor: convert initializeApp to func component and use JSX transform in the codebase (#4056) 2021-10-14 22:56:51 +05:30
appState.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
binding.test.tsx fix: prevent binding focus NaN value (#6803) 2023-07-26 23:28:11 +02:00
charts.test.tsx improvement: Support numbers with commas in them (#2636) 2020-12-20 14:08:22 +02:00
clients.test.ts fix: garbled text displayed on avatars (#6575) 2023-05-13 19:49:09 +02:00
clipboard.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
collab.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
contextmenu.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
dragCreate.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
elementLocking.test.tsx feat: add "unlock all elements" to canvas contextMenu (#5894) 2023-05-13 22:52:03 +02:00
export.test.tsx feat: clean unused images only after 24hrs (local-only) (#5839) 2022-11-06 19:41:14 +01:00
fitToContent.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
flip.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
geometricAlgebra.test.ts Allow binding linear elements to other elements (#1899) 2020-08-08 21:04:15 -07:00
history.test.tsx feat: image support (#4011) 2021-10-21 22:05:48 +02:00
library.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
linearElementEditor.test.tsx fix: resizing arrow labels (#6789) 2023-08-02 15:34:21 +05:30
MobileMenu.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
move.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
multiPointCreate.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
reconciliation.test.ts fix: restoreElementWithProperties drops "parent" property (#5742) 2022-10-08 20:42:05 +02:00
regressionTests.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
resize.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
scroll.test.tsx feat: Scroll using PageUp and PageDown (#6038) 2022-12-31 15:54:37 -06:00
selection.test.tsx build: migrate to Vite 🚀 (#6818) 2023-07-27 23:50:11 +05:30
shortcuts.test.tsx fix: use jotai scope for editor-specific atoms (#6308) 2023-03-03 11:58:36 +00:00
test-utils.ts fix: prevent binding focus NaN value (#6803) 2023-07-26 23:28:11 +02:00
utils.test.ts hide fill icons when fill color transparent (#2414) 2020-11-26 21:43:38 +01:00
utils.ts feat: Support labels for arrow 🔥 (#5723) 2022-12-05 21:03:13 +05:30
viewMode.test.tsx Refactor: convert initializeApp to func component and use JSX transform in the codebase (#4056) 2021-10-14 22:56:51 +05:30
zindex.test.tsx feat: cache most of element selection (#6747) 2023-07-17 01:09:44 +02:00