Skip to content

Commit 19bbf02

Browse files
tonilastrecizlparmar-abhinavvanihba14AlexIchenskiy
authored
Breaking: Release 1.0.0 with docs site, WebGL renderer and modernized tooling
* Fix: Fix multiple maps issue (#33) * Chore: Update package.json version * New: Change the API to handle OrbView and OrbMapView (#34) * New: Change the API to handle OrbView and OrbMapView * New: Change the API for select/hover strategies * Chore: Release/1.0.0 * New: Add support to get selected/hovered nodes and edges (#61) * New: Added support to get selected nodes and edges * New: Added support to get hovered nodes and edges --------- Co-authored-by: Abhinav Singh Parmar <abhinavparmar147@gmail.com> * New: Add support for enabling and disabling dragging of nodes (fixes #62) (#69) * New: Add feature to enable/disable node dragging (fixes #62) * New: Added support to modify interaction from setSettings * New: Updated documentation for interaction property * New: Add feature to enable/disable zoom (fixes #62) * NEW: Updated documentation for interaction property * NEW: Updated documentation to include isDragEnabled * New: Add support for custom edge line style (#77) * New Added support for custom edges * Refactor: Streamline edge rendering code and optimize line style handling * New: Add support for handling device pixel ratio (#45) * Chore: Move container and canvas creation from the view to the renderer * New: Add devicePixelRatio render property and handler * Fix: Add default DPR for older browsers * Chore: Remove useless check for automatic DPR * New: Add new simulator (#56) (#57) * New: Add new simulator (#56) * New: Add simulator scenarios for manual testing * New: Refactor simulator (WIP) * New: Add progress overlay, Update descriptions * Fix: Introduce new simulator event, Fix main-thread behavior * Fix: Rearrange class methods based on visibility * Fix: Improve naming * Chore(release): 0.2.0 * Fix: Tweak simulator, adjust API slightly * Fix: Temporarily patch some physics behavior * Fix: Adjust re-heating parameters * Fix: tweak physics behavior -> immediately stop sim when disabling * Chore: Remove the beta from release branches --------- Co-authored-by: dlozic <davidlozic@gmail.com> * New: Add zoom and recenter functions (#74) * New: Add zoom and recenter functions * Fix: Reduce excessive recentering (#75) * Fix: Remove excessive recenterings * Fix: Remove unused code * Fix: New simulator (#92) * Chore: Refactor naming * New: Add new events * Chore: Refactor code styling * Docs: Remove unused flags * Chore: Remove unused simulation functions * Chore: Refactor view render function calls * Chore: Add missing tests * New: Add removal functions (#96) * New: Add removal functions * Fix: Add missing callback data * Chore: Refactor remove return values * Chore: Refactor remove function type usage * Fix: Default settings for node placement (#98) * New: Add properties setters and getters (#93) * New: Add node properties setters * New: Add edge properties setters * New: Add properties getters * New: Add patch for nodes and edges * Fix: Make getters return copies * Fix: Edge factory listeners copying * Fix: Jest outdated tests * Fix: Github actions node version * Chore: Refactor observer interface * Chore: Refactor node/edge constructor settings * Chore: Refactor node/edge function grouping * Chore: Refactor node/edge function grouping * Fix: Listeners behaviour * Chore: Refactor property copying * Chore: Refactor subject implementation * Fix: Set position behaviour on node drag * Chore: Upgrade node version * Chore: Refactor function type check * Fix: Remove listener behaviour * Chore: Refactor util naming * Chore: Remove unused type assertion * Chore: Refactor position setter options * Chore: Refactor property patch function * Fix: Set map node position behaviour * Chore: Refactor simulator data patching * Chore: Change observers to callbacks * New: Add state setters with options (#95) * New: Add state setters with options * Chore: Remove leftover comments * Chore: Refactor state setter logic * Chore: Refactor state types * Fix: Rename merged function usage * Fix: Merged variable naming * Chore: Fix tests --------- Co-authored-by: dlozic <davidlozic@gmail.com> Co-authored-by: Oleksandr Ichenskyi <55350107+AlexIchenskiy@users.noreply.github.com> Co-authored-by: AlexIchenskiy <aichenskiy@gmail.com> * New: Add zoom in and out functions (#100) * Fix: Skip unnecessary listener notify on set style * Fix: remove unnecessary rerender on state change * Chore: Update documentation * Fix: Node/edge getter performance issue * Chore: Add data change docs example * Fix: Docs typos * Fix: Disable source map generation (#105) * New: Add tree layout (#107) * New: Add new layouts * New: Add layout options * Chore: Make layout dynamically changeable * Chore: Update docs * Fix: Naming typo * Chore: Refactor layouts * New: Enable layout node add/remove * Chore: Improve behavior for recurrent nodes * Chore: Move some simulator settings to layout * Chore: Refactor code quality and performance * Fix: Layout behavior on change * Chore: Add recenter on layout change * Fix: Layout change behavior * Fix: Simulation behavior on data deletion * Chore: Add recenter on layout change * Fix: Change layout engine logic (#108) * Fix: Change layout engine logic * New: Add simulation cancellation logic * Chore: Remove leftover code * Fix: Hierarchical layout recenter logic * Chore: Refactor package versions and code logic * Fix: Refactor function types * New: Add multiselect (#110) * New: Add multiselect * Chore: Simplify logic * Chore: Update package.json * New: Add SVG export (#111) * New: Add SVG export * Chore: Refactor code quality * New: Add WebGL renderer (#109) * New: Add WebGL renderer * New: Add naive WebGL force layout computation * New: Add WebGL improved node/shape geometry options * New: Add labels and node images * Fix: GPU drag behavior * Chore: Remove leftover comments * Fix: WebGL renderer style invalidating * Chore: Refactor code quality * Chore: Add WebGL example and docs * New: Add docs page (#112) * New: Add docs page * New: Add more docs examples * Update .github/workflows/docs.yml --------- Co-authored-by: Toni <toni.lastre@memgraph.io> * Chore: Finish up the release process * Chore: Fix sync between package.json files * Chore: Add new package-lock.json --------- Co-authored-by: David <davidlozic@gmail.com> Co-authored-by: Abhinv Singh Parmar <abhi171b010@gmail.com> Co-authored-by: Abhinav Singh Parmar <abhinavparmar147@gmail.com> Co-authored-by: Abhinv Singh Parmar <abhinav.parmar@infosys.com> Co-authored-by: Oleksandr Ichenskyi <55350107+AlexIchenskiy@users.noreply.github.com> Co-authored-by: AlexIchenskiy <aichenskiy@gmail.com>
1 parent e502ab7 commit 19bbf02

152 files changed

Lines changed: 30309 additions & 23949 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ coverage/
22
dist/
33
node_modules/
44
examples/
5+
docs/
56
webpack.config.js

.eslintrc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
{
3434
"singleQuote": true,
3535
"trailingComma": "all",
36-
"printWidth": 120
36+
"printWidth": 120,
37+
"endOfLine": "auto"
3738
}
3839
],
3940
"brace-style": ["error", "1tbs"],
@@ -52,6 +53,7 @@
5253
],
5354
"@typescript-eslint/no-explicit-any": "off",
5455
"@typescript-eslint/explicit-function-return-type": "off",
56+
"@typescript-eslint/no-unsafe-function-type": "off",
5557
"@typescript-eslint/ban-ts-comment": "off",
5658
"@typescript-eslint/ban-types": "off",
5759
"jest/no-standalone-expect": "off",

.github/workflows/build.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ jobs:
66
build_and_test:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v4
10-
- uses: actions/setup-node@v4
9+
- uses: actions/checkout@v5
10+
- uses: actions/setup-node@v5
1111
with:
12-
node-version: "16.x"
12+
node-version: 22
13+
cache: npm
1314

1415
- name: 'Install'
1516
run: npm ci

.github/workflows/docs.yml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Deploy docs to GitHub Pages
2+
3+
on:
4+
push:
5+
# NOTE: `new/add-docs-page` is a TEMPORARY entry so the team can review a live
6+
# deploy from the docs branch. Remove it before/at merge so main deploys only
7+
# from main.
8+
branches: [main]
9+
# Validate the bundle + docs build on any PR that touches them, so reviewers
10+
# get a green check without needing Pages enabled or a merge to main. The
11+
# deploy job below is skipped for PRs.
12+
pull_request:
13+
paths:
14+
- "docs/site/**"
15+
- "src/**"
16+
- ".github/workflows/docs.yml"
17+
workflow_dispatch:
18+
19+
permissions:
20+
contents: read
21+
pages: write
22+
id-token: write
23+
24+
# One deploy at a time, but keep PR builds from cancelling a main deploy (and
25+
# vice versa) by scoping the group per ref.
26+
concurrency:
27+
group: pages-${{ github.ref }}
28+
cancel-in-progress: true
29+
30+
jobs:
31+
build:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@v5
35+
36+
- uses: actions/setup-node@v5
37+
with:
38+
node-version: 22
39+
cache: npm
40+
41+
# 1. Build the Orb browser bundle from source so the live demos stay in sync.
42+
- name: Build Orb bundle
43+
run: |
44+
npm ci
45+
npm run build:release
46+
47+
# 2. Refresh the copies the docs site embeds.
48+
- name: Sync bundle into docs site
49+
run: |
50+
cp dist/browser/orb.min.js docs/site/public/orb.min.js
51+
cp dist/browser/orb.worker.min.js docs/site/public/orb.worker.min.js
52+
# The module worker loads this shared vendor chunk as a sibling; without
53+
# it the worker fails silently and layout simulation never runs.
54+
cp dist/browser/orb.worker.vendor.min.js docs/site/public/orb.worker.vendor.min.js
55+
56+
# 3. Build the VitePress site.
57+
- name: Build docs
58+
working-directory: docs/site
59+
run: |
60+
npm install
61+
npm run build
62+
63+
# 4. Package for Pages. Only needed for an actual deploy, so skip on PRs
64+
# (where these steps would also fail until Pages is enabled).
65+
- uses: actions/configure-pages@v5
66+
if: github.event_name != 'pull_request'
67+
68+
- uses: actions/upload-pages-artifact@v3
69+
if: github.event_name != 'pull_request'
70+
with:
71+
path: docs/site/.vitepress/dist
72+
73+
deploy:
74+
needs: build
75+
# Deploy only from main; PRs run the build job above for validation only.
76+
if: github.event_name != 'pull_request'
77+
runs-on: ubuntu-latest
78+
environment:
79+
name: github-pages
80+
url: ${{ steps.deployment.outputs.page_url }}
81+
steps:
82+
- id: deployment
83+
uses: actions/deploy-pages@v4

.github/workflows/release.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,35 @@ on:
88
jobs:
99
publish:
1010
runs-on: ubuntu-latest
11-
if: github.repository == 'memgraph/orb'
11+
permissions:
12+
contents: write
13+
issues: write
14+
pull-requests: write
15+
# Required for npm trusted publishing (OIDC) and provenance
16+
id-token: write
1217
steps:
13-
- uses: actions/checkout@v4
14-
- uses: actions/setup-node@v4
18+
- uses: actions/checkout@v5
1519
with:
16-
node-version: "16.x"
20+
# semantic-release needs full history + tags to compute the next version
21+
fetch-depth: 0
22+
- uses: actions/setup-node@v5
23+
with:
24+
node-version: 22
25+
cache: npm
26+
27+
# npm >= 11.5 is required for trusted publishing; Node 22 ships npm 10
28+
- name: 'Update npm'
29+
run: npm install -g npm@latest
1730

1831
- name: 'Install'
1932
run: npm ci
2033
- name: 'Lint'
2134
run: npm run lint
2235
- name: 'Build'
2336
run: npm run build:release
37+
- name: 'Test'
38+
run: npm run test
2439
- name: 'Release'
2540
run: npm run release
2641
env:
2742
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ node_modules/
66

77
# IDEs and editors
88
.idea/
9+
.vscode/
910

1011
# Optional npm cache directory
1112
.npm

.husky/commit-msg

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#!/usr/bin/env sh
21
[ -n "$CI" ] && exit 0
3-
. "$(dirname -- "$0")/_/husky.sh"
42

53
npx --no-install commitlint --edit $1

.husky/pre-commit

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#!/bin/sh
21
[ -n "$CI" ] && exit 0
3-
. "$(dirname "$0")/_/husky.sh"
42

5-
npm run lint
3+
npm run lint

.releaserc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"branches": ["main"],
23
"plugins": [
34
["@semantic-release/commit-analyzer", {
45
"preset": "eslint"
@@ -8,10 +9,10 @@
89
}],
910
"@semantic-release/changelog",
1011
"@semantic-release/npm",
11-
'@semantic-release/github',
12+
"@semantic-release/github",
1213
["@semantic-release/git", {
1314
"assets": ["package.json", "CHANGELOG.md"],
1415
"message": "Chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
15-
}],
16-
],
16+
}]
17+
]
1718
}

0 commit comments

Comments
 (0)