├── .babelrc ├── .circleci └── config.yml ├── .eslintignore ├── .eslintrc ├── .gitignore ├── .npmignore ├── .prettierrc ├── .release-it.json ├── LICENSE ├── README.md ├── cypress.config.ts ├── cypress ├── e2e │ └── archer │ │ └── main.cy.js ├── fixtures │ └── example.json ├── plugins │ └── index.js ├── snapshots │ ├── React Archer -- Eigth example page -- should draw arrows with straight lines and start markers.snap.png │ ├── React Archer -- Fifth example page -- should draw arrows with a middle anchor.snap.png │ ├── React Archer -- First example page -- should draw arrows.snap.png │ ├── React Archer -- Fourth example page -- should draw arrows with an offset.snap.png │ ├── React Archer -- Second example page -- should draw arrows.snap.png │ ├── React Archer -- Second example page -- should update labels.snap.png │ ├── React Archer -- Second example page -- should update number of elements.snap.png │ ├── React Archer -- Seventh example page -- should draw arrows with circle end shapes.snap.png │ └── React Archer -- Third example page -- should draw non curvy arrows.snap.png └── support │ ├── commands.js │ └── e2e.js ├── example.png ├── example ├── App.tsx ├── EighthExample.tsx ├── FifthExample.tsx ├── FirstExample.tsx ├── FourthExample.tsx ├── NinthExample.tsx ├── SecondExample.tsx ├── SeventhExample.tsx ├── SixthExample.tsx ├── TenthExample.tsx ├── ThirdExample.tsx ├── index.css ├── index.template.ejs └── index.tsx ├── jest.config.js ├── jest.d.ts ├── jest.setup.after.js ├── jest.setup.js ├── package.json ├── src ├── ArcherContainer │ ├── ArcherContainer.constants.ts │ ├── ArcherContainer.context.ts │ ├── ArcherContainer.helpers.tsx │ ├── ArcherContainer.hooks.ts │ ├── ArcherContainer.tsx │ ├── ArcherContainer.types.ts │ ├── __tests__ │ │ ├── ArcherContainer.test.tsx │ │ └── __snapshots__ │ │ │ └── ArcherContainer.test.tsx.snap │ └── components │ │ ├── Markers.tsx │ │ └── SvgArrows.tsx ├── ArcherElement │ ├── ArcherElement.helpers.ts │ ├── ArcherElement.tsx │ └── __tests__ │ │ └── ArcherElement.test.tsx ├── SvgArrow │ ├── SvgArrow.helper.ts │ ├── SvgArrow.test.tsx │ └── SvgArrow.tsx ├── __tests__ │ ├── Archer-integration.test.tsx │ └── __snapshots__ │ │ └── Archer-integration.test.tsx.snap ├── geometry │ ├── Vector2.test.ts │ ├── Vector2.ts │ └── rectHelper.ts ├── react-archer.ts ├── types.ts └── utils │ ├── encodeId.ts │ ├── useDeepCompareEffect.ts │ └── useIsomorphicLayoutEffect.ts ├── tsconfig.build.json ├── tsconfig.json ├── webpack.config.js ├── webpack.example-app.config.js ├── webpack.prod.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.babelrc -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .eslintcache 3 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.eslintrc -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.npmignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.prettierrc -------------------------------------------------------------------------------- /.release-it.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/.release-it.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/README.md -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress.config.ts -------------------------------------------------------------------------------- /cypress/e2e/archer/main.cy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/e2e/archer/main.cy.js -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /cypress/plugins/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/plugins/index.js -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Eigth example page -- should draw arrows with straight lines and start markers.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Eigth example page -- should draw arrows with straight lines and start markers.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Fifth example page -- should draw arrows with a middle anchor.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Fifth example page -- should draw arrows with a middle anchor.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- First example page -- should draw arrows.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- First example page -- should draw arrows.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Fourth example page -- should draw arrows with an offset.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Fourth example page -- should draw arrows with an offset.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Second example page -- should draw arrows.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Second example page -- should draw arrows.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Second example page -- should update labels.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Second example page -- should update labels.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Second example page -- should update number of elements.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Second example page -- should update number of elements.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Seventh example page -- should draw arrows with circle end shapes.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Seventh example page -- should draw arrows with circle end shapes.snap.png -------------------------------------------------------------------------------- /cypress/snapshots/React Archer -- Third example page -- should draw non curvy arrows.snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/snapshots/React Archer -- Third example page -- should draw non curvy arrows.snap.png -------------------------------------------------------------------------------- /cypress/support/commands.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/support/commands.js -------------------------------------------------------------------------------- /cypress/support/e2e.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/cypress/support/e2e.js -------------------------------------------------------------------------------- /example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example.png -------------------------------------------------------------------------------- /example/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/App.tsx -------------------------------------------------------------------------------- /example/EighthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/EighthExample.tsx -------------------------------------------------------------------------------- /example/FifthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/FifthExample.tsx -------------------------------------------------------------------------------- /example/FirstExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/FirstExample.tsx -------------------------------------------------------------------------------- /example/FourthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/FourthExample.tsx -------------------------------------------------------------------------------- /example/NinthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/NinthExample.tsx -------------------------------------------------------------------------------- /example/SecondExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/SecondExample.tsx -------------------------------------------------------------------------------- /example/SeventhExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/SeventhExample.tsx -------------------------------------------------------------------------------- /example/SixthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/SixthExample.tsx -------------------------------------------------------------------------------- /example/TenthExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/TenthExample.tsx -------------------------------------------------------------------------------- /example/ThirdExample.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/ThirdExample.tsx -------------------------------------------------------------------------------- /example/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/index.css -------------------------------------------------------------------------------- /example/index.template.ejs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/index.template.ejs -------------------------------------------------------------------------------- /example/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/example/index.tsx -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/jest.config.js -------------------------------------------------------------------------------- /jest.d.ts: -------------------------------------------------------------------------------- 1 | import 'jest-extended' 2 | -------------------------------------------------------------------------------- /jest.setup.after.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/jest.setup.after.js -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/jest.setup.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/package.json -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.constants.ts -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.context.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.context.ts -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.helpers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.helpers.tsx -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.hooks.ts -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.tsx -------------------------------------------------------------------------------- /src/ArcherContainer/ArcherContainer.types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/ArcherContainer.types.ts -------------------------------------------------------------------------------- /src/ArcherContainer/__tests__/ArcherContainer.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/__tests__/ArcherContainer.test.tsx -------------------------------------------------------------------------------- /src/ArcherContainer/__tests__/__snapshots__/ArcherContainer.test.tsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/__tests__/__snapshots__/ArcherContainer.test.tsx.snap -------------------------------------------------------------------------------- /src/ArcherContainer/components/Markers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/components/Markers.tsx -------------------------------------------------------------------------------- /src/ArcherContainer/components/SvgArrows.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherContainer/components/SvgArrows.tsx -------------------------------------------------------------------------------- /src/ArcherElement/ArcherElement.helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherElement/ArcherElement.helpers.ts -------------------------------------------------------------------------------- /src/ArcherElement/ArcherElement.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherElement/ArcherElement.tsx -------------------------------------------------------------------------------- /src/ArcherElement/__tests__/ArcherElement.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/ArcherElement/__tests__/ArcherElement.test.tsx -------------------------------------------------------------------------------- /src/SvgArrow/SvgArrow.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/SvgArrow/SvgArrow.helper.ts -------------------------------------------------------------------------------- /src/SvgArrow/SvgArrow.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/SvgArrow/SvgArrow.test.tsx -------------------------------------------------------------------------------- /src/SvgArrow/SvgArrow.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/SvgArrow/SvgArrow.tsx -------------------------------------------------------------------------------- /src/__tests__/Archer-integration.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/__tests__/Archer-integration.test.tsx -------------------------------------------------------------------------------- /src/__tests__/__snapshots__/Archer-integration.test.tsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/__tests__/__snapshots__/Archer-integration.test.tsx.snap -------------------------------------------------------------------------------- /src/geometry/Vector2.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/geometry/Vector2.test.ts -------------------------------------------------------------------------------- /src/geometry/Vector2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/geometry/Vector2.ts -------------------------------------------------------------------------------- /src/geometry/rectHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/geometry/rectHelper.ts -------------------------------------------------------------------------------- /src/react-archer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/react-archer.ts -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/types.ts -------------------------------------------------------------------------------- /src/utils/encodeId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/utils/encodeId.ts -------------------------------------------------------------------------------- /src/utils/useDeepCompareEffect.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/utils/useDeepCompareEffect.ts -------------------------------------------------------------------------------- /src/utils/useIsomorphicLayoutEffect.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/src/utils/useIsomorphicLayoutEffect.ts -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/tsconfig.build.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/tsconfig.json -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/webpack.config.js -------------------------------------------------------------------------------- /webpack.example-app.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/webpack.example-app.config.js -------------------------------------------------------------------------------- /webpack.prod.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/webpack.prod.config.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pierpo/react-archer/HEAD/yarn.lock --------------------------------------------------------------------------------