{"_id":"cytoscape-euler","_rev":"16-73f72534438ef31e110ff23ad8a419cf","name":"cytoscape-euler","dist-tags":{"latest":"1.2.4"},"versions":{"1.0.0":{"name":"cytoscape-euler","version":"1.0.0","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.0.0","maintainers":[{"name":"maxkfranz","email":"maxkfranz@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"4b4e24ea0df260c8204fe1f179cf57c65d966f13","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.0.0.tgz","integrity":"sha512-dIRzcbuvhW+pVvtpC8zm6a7WNz9ClkxPwo51nW1oThAJWhJ/eF4irjseiXjiz9bWJLGv8br5sLM6FFnmIPHSKA==","signatures":[{"sig":"MEUCIQCeIWWbNU7ZdQlKUFLwzFfjJZJjUyhKqXn1/3+xXvNlDQIgaKnROricn19Io0i+WIotWbakEaMALdSn1wqVvX7tAsk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"cytoscape-euler.js","_from":".","_shasum":"4b4e24ea0df260c8204fe1f179cf57c65d966f13","gitHead":"0e260e6e48cd9bbd2a65a40576930e98b5f4d573","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack"},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"3.10.10","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"6.11.0","dependencies":{},"devDependencies":{"webpack":"^2.6.1","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","babel-loader":"^7.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler-1.0.0.tgz_1500390585701_0.9023622979875654","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"cytoscape-euler","version":"1.1.0","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.1.0","maintainers":[{"name":"maxkfranz","email":"maxkfranz@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"},{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"a281749ce7496a93cd2fdea9f1890eb57cc0ff01","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.1.0.tgz","integrity":"sha512-8C7vHRVkcRabwZRIubII29G1yxZIYltl1fmK+hhECQzKxWKmF7id82nzMGkw27U6OOEtNoOZ0oySo21mwMQFVA==","signatures":[{"sig":"MEYCIQD5AiqIxfo+s/3Y7bnqrCrmyh4R2KKZ9YqOsL0F0sSSpwIhANroMrd96Q2xJmuNnBc7L1jksH+68BKDloiBRJO29TNR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"cytoscape-euler.js","_from":".","_shasum":"a281749ce7496a93cd2fdea9f1890eb57cc0ff01","gitHead":"9d82443a13ae975ba3afab35ba942ad222e1b714","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack"},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"3.10.10","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"6.11.0","dependencies":{},"devDependencies":{"webpack":"^2.6.1","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","babel-loader":"^7.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler-1.1.0.tgz_1507317715060_0.17903905804269016","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"cytoscape-euler","version":"1.2.0","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.2.0","maintainers":[{"name":"maxkfranz","email":"maxkfranz@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"},{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"10fb9846163c91a07d7eec40503771efd0fcdc62","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.2.0.tgz","integrity":"sha512-fkrgebVPMAIyZP40d2YQ6b9fktOeBfdy4DABG6/YseYZo8cRyFKeV2m/sTTS8wPJeeyNmKrvIommpmVl5ynldw==","signatures":[{"sig":"MEYCIQDSxxqOFDqnBUVqPKTpiRWpG4yGPbXtMpQirz6uq+ipuQIhAOhOsZH8kp4xJZrZU9oTftMCkoXUZ1ZM8gT1/TroUswx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"cytoscape-euler.js","gitHead":"b5a6e24c99db04909208a4fcc5532cc2448bc29f","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack","copyright":"update license","postpublish":"run-s gh-pages:demo gh-pages:deploy gh-pages:clean","build:release":"run-s build copyright","gh-pages:demo":"cpy demo.html . --rename=index.html","gh-pages:clean":"rimraf index.html","gh-pages:deploy":"gh-pages -d ."},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"5.6.0","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"devDependencies":{"eslint":"^4.15.0","rimraf":"^2.6.2","update":"^0.7.4","cpy-cli":"^1.0.1","webpack":"^2.6.1","gh-pages":"^1.0.0","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","npm-run-all":"^4.1.2","babel-loader":"^7.0.0","updater-license":"^1.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler-1.2.0.tgz_1516215686473_0.2454471685923636","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"cytoscape-euler","version":"1.2.1","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.2.1","maintainers":[{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"},{"name":"maxkfranz","email":"maxkfranz@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"e5c76e0c2d3e10b14023af00903eeee79e5457b2","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.2.1.tgz","fileCount":35,"integrity":"sha512-co7D/k2rELJtjRXE2oiS0TD6IaIa3peylCRuNiSSjSg68YXITFl8aCWeJ+ufv7DjXqtiQ1LxeESPPXy+7UP3mA==","signatures":[{"sig":"MEUCIQDiHQyS1c+K/IPUsT6cc+KyIZTmD95OkZVWHnVw6dvCLwIgRE0TGPuPl+t/l+iptSOkT9+wLl1R1g5DbSy9AywxtKI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":713901},"main":"cytoscape-euler.js","gitHead":"205cafdb6e9c5fd5dc0fddf470075ef7fdf3fc99","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack","copyright":"update license","postpublish":"run-s gh-pages:demo gh-pages:deploy gh-pages:clean","build:release":"run-s build copyright","gh-pages:demo":"cpy demo.html . --rename=index.html","gh-pages:clean":"rimraf index.html","gh-pages:deploy":"gh-pages -d ."},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"5.6.0","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"8.9.4","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^4.15.0","rimraf":"^2.6.2","update":"^0.7.4","cpy-cli":"^1.0.1","webpack":"^2.6.1","gh-pages":"^1.0.0","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","npm-run-all":"^4.1.2","babel-loader":"^7.0.0","updater-license":"^1.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler_1.2.1_1522785161477_0.8139981537471899","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"cytoscape-euler","version":"1.2.2","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.2.2","maintainers":[{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"},{"name":"maxkfranz","email":"maxkfranz@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"d599aa0656c022216f93a5c3ac8fce1ad69ef9b4","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.2.2.tgz","fileCount":36,"integrity":"sha512-A24ZGrFpqCOutTIlGoXA5kmjFj68iy7HvqXuhcZUL1a7Z8bL59Bl2bB7hkSvFcCZBVCNcArxKr+YlB8bJo9Ftw==","signatures":[{"sig":"MEUCIQCmiGb8x801Bzwb7ds++w5USv7Zj8bgQrxx8uPUXg88LAIgJpJV8ZnSNYPnBZhZTFc7cigpeeU50FjDRJFHKEd6zP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":714663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMFgrCRA9TVsSAnZWagAAYBcP/RaHiFhpx2WqpsSQt26s\nSp13LC8F5SKuFUvLIwEnEQvzaTkAu3bXpeqmNxtNxJQXeY4Y5salvbWb7FEU\nxuh7e9iLnwjGeH5HFlcoVUkectSmZERx2v9gtluhtTTTiYSNFfut2dT7h6Wc\nimXojDZ1ZfpoI2bTHL33LP39WbtiDi2DK87jfs/+uba4ZJRZfn0U3zTigj7E\n1rfcu7V+arvWTN97Sd7eE3tmMoPgD7bN9W+1/AYx1ary3Q3NC0bFmXMqaqF7\nKa7kt7FULzhALHZWRx1VO83aY8AfQ2KA8L/RqywsEukGCBeHeKj5hpJ6+OS8\ntd9M+PlJjoE6Xy3cSw+ZiRLEWW/HE7JtTBwKVQa2BHSneknRTuckzfpuFcWU\neWyWJKsS9ByW/a/x/RRgzuCu8W5T5hNZD676AAZsRe2pm9b30K/MZBQFtmH1\nO/KoPh5SEMMjc3MQRrT77E+vLfU//4Wpvq+m75u/BYHOydyVZIuSb15d6wvt\nOcvVJxq1PVZ7Oti0dSZKgcoa48BOeoOBtPuROFBZrOwrQ/GSMZ3Yo8Ya4vX6\nXsl4CXPlUK6lhiLKvq3hyE3Dr8wQjIx6NEbdrUUz0doFy5FYH2yy3v7NFTqS\nLWeMik7VinAqsXbYD9qXVuQ9u8600luvxSocfIShqc6S1vb3zIIvj4sYO6UA\n/9PV\r\n=dDIG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"cytoscape-euler.js","gitHead":"176686f435b61fc93b2c49f4054faa19923cc7dc","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack","copyright":"update license","postpublish":"run-s gh-pages:demo gh-pages:deploy gh-pages:clean","build:release":"run-s build copyright","gh-pages:demo":"cpy demo.html . --rename=index.html","gh-pages:clean":"rimraf index.html","gh-pages:deploy":"gh-pages -d . -v node_modules/**"},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"6.13.4","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"12.14.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^4.15.0","rimraf":"^2.6.2","update":"^0.7.4","cpy-cli":"^1.0.1","webpack":"^2.6.1","gh-pages":"^1.0.0","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","npm-run-all":"^4.1.2","babel-loader":"^7.0.0","updater-license":"^1.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler_1.2.2_1580226602497_0.6042574725318726","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"cytoscape-euler","version":"1.2.3","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.2.3","maintainers":[{"name":"chrtannus","email":"chrtannus@gmail.com"},{"name":"mikekucera","email":"mikekucera@gmail.com"},{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"},{"name":"maxkfranz","email":"maxkfranz@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"934b4ac4434460500ed6ea1e08d668d447f6774b","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.2.3.tgz","fileCount":36,"integrity":"sha512-HLdmjmO9br5SMQK+SPt5Hfn2JC6MLpvBkLNBxQHsl30bLPnWEHdaTlMapWP2HZR9G56+DuELf9FbxjEGYFWIMA==","signatures":[{"sig":"MEQCIHLPrstAfcQW/ZMJujFu8h/g3QC3EDTh1JJss/NHWWhuAiB4GnOXAqBtzF0nU2RF92RMMpkJIRWaUbOSPCbbMip3mw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":717453},"main":"cytoscape-euler.js","gitHead":"9dd34c030fa761d279ef42f1d51d2241d701083a","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack","copyright":"update license","postpublish":"run-s gh-pages:demo gh-pages:deploy gh-pages:clean","build:release":"run-s build copyright","gh-pages:demo":"cpy demo.html . --rename=index.html","gh-pages:clean":"rimraf index.html","gh-pages:deploy":"gh-pages -d . -v node_modules/**"},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"9.5.1","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"18.16.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^4.15.0","rimraf":"^2.6.2","update":"^0.7.4","cpy-cli":"^1.0.1","webpack":"^2.6.1","gh-pages":"^1.0.0","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","npm-run-all":"^4.1.2","babel-loader":"^7.0.0","updater-license":"^1.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler_1.2.3_1723645536934_0.7702807416773914","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"cytoscape-euler","version":"1.2.4","keywords":["cytoscape","cytoscape-extension"],"license":"MIT","_id":"cytoscape-euler@1.2.4","maintainers":[{"name":"cytoscapenpm","email":"cytoscapenpm@gmail.com"},{"name":"maxkfranz","email":"maxkfranz@gmail.com"},{"name":"dylanfong","email":"dylanfong.ut@gmail.com"},{"name":"mikekucera","email":"mikekucera@gmail.com"},{"name":"chrtannus","email":"chrtannus@gmail.com"}],"homepage":"https://github.com/cytoscape/cytoscape.js-euler","bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"dist":{"shasum":"bbd8ecb053c2ad53a6dc98f5b69fea2033374e18","tarball":"https://registry.npmjs.org/cytoscape-euler/-/cytoscape-euler-1.2.4.tgz","fileCount":39,"integrity":"sha512-RRYQydZ3E+UDao0MwFy7zXk08MHhdO9X/+HVoeurDCsg7P51tJ7fKIS4VSAe/TztM/V97MnbtJky9QihZ7nKDw==","signatures":[{"sig":"MEUCIQCMIpUwpUsZyw1VyFA16fmoN3IoDQMX7cQPNTRk6uCUzgIgSXMRCuhan9FVGnFz0msxU0MmOylZIw3zkVlPmS3HaQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722036},"main":"cytoscape-euler.js","gitHead":"1068ca145f84745d4dae806faf392cdf21442e14","scripts":{"dev":"webpack-dev-server --open","lint":"eslint src","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production webpack","watch":"webpack --progress --watch","build:min":"cross-env NODE_ENV=production MIN=true webpack","copyright":"update license","postpublish":"run-s gh-pages:demo gh-pages:deploy gh-pages:clean","build:release":"run-s build copyright","gh-pages:demo":"cpy demo.html . --rename=index.html","gh-pages:clean":"rimraf index.html","gh-pages:deploy":"gh-pages -d . -v node_modules/**"},"_npmUser":{"name":"maxkfranz","email":"maxkfranz@gmail.com"},"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"_npmVersion":"11.5.1","description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","directories":{},"_nodeVersion":"24.7.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^4.15.0","rimraf":"^2.6.2","update":"^0.7.4","cpy-cli":"^1.0.1","webpack":"^2.6.1","gh-pages":"^1.0.0","camelcase":"^4.1.0","cross-env":"^5.0.0","babel-core":"^6.24.1","npm-run-all":"^4.1.2","babel-loader":"^7.0.0","updater-license":"^1.0.0","babel-preset-env":"^1.5.1","webpack-dev-server":"^2.4.5"},"peerDependencies":{"cytoscape":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cytoscape-euler_1.2.4_1777993715410_0.10626268232283365","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2017-07-18T15:09:45.869Z","modified":"2026-08-06T18:21:49.510Z","1.0.0":"2017-07-18T15:09:45.869Z","1.1.0":"2017-10-06T19:21:55.199Z","1.2.0":"2018-01-17T19:01:26.586Z","1.2.1":"2018-04-03T19:52:41.599Z","1.2.2":"2020-01-28T15:50:02.724Z","1.2.3":"2024-08-14T14:25:37.129Z","1.2.4":"2026-05-05T15:08:35.631Z"},"bugs":{"url":"https://github.com/cytoscape/cytoscape.js-euler/issues"},"license":"MIT","homepage":"https://github.com/cytoscape/cytoscape.js-euler","keywords":["cytoscape","cytoscape-extension"],"repository":{"url":"git+https://github.com/cytoscape/cytoscape.js-euler.git","type":"git"},"description":"A fast, high-quality force-directed (physics simulation) layout for Cytoscape.js","maintainers":[{"email":"maxkfranz@gmail.com","name":"maxkfranz"},{"email":"dylanfong.ut@gmail.com","name":"dylanfong"},{"email":"mikekucera@gmail.com","name":"mikekucera"},{"email":"chrtannus@gmail.com","name":"chrtannus"},{"email":"shawn.reuland@gmail.com","name":"sreuland"},{"email":"jingjingbic@gmail.com","name":"ndexbio-org"}],"readme":"# cytoscape-euler\n\n[![Join the chat at https://gitter.im/cytoscape-js-euler/Lobby](https://badges.gitter.im/cytoscape-js-euler/Lobby.svg)](https://gitter.im/cytoscape-js-euler/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![DOI](https://zenodo.org/badge/91359702.svg)](https://zenodo.org/badge/latestdoi/91359702)\n\n\n\n## Description\n\nEuler is a fast, high-quality force-directed (physics simulation) layout for Cytoscape.js ([demo](https://cytoscape.github.io/cytoscape.js-euler))\n\nIt is based on cytoscape-ngraph.forcelayout, with several parts reworked and several general improvements.\n\n\n## Dependencies\n\n * cytoscape@^3.0.0\n\n\n## Usage instructions\n\nDownload the library:\n * via npm: `npm install cytoscape-euler`,\n * via bower: `bower install cytoscape-euler`, or\n * via direct download in the repository (probably from a tag).\n\nImport the library as appropriate for your project:\n\nES import:\n\n```js\nimport cytoscape from 'cytoscape';\nimport euler from 'cytoscape-euler';\n\ncytoscape.use( euler );\n```\n\nCommonJS:\n\n```js\nlet cytoscape = require('cytoscape');\nlet euler = require('cytoscape-euler');\n\ncytoscape.use( euler );\n```\n\nAMD:\n\n```js\nrequire(['cytoscape', 'cytoscape-euler'], function( cytoscape, euler ){\n  euler( cytoscape ); // register extension\n});\n```\n\nPlain HTML/JS has the extension registered for you automatically, because no `require()` is needed.\n\n\n## API\n\nSpecify an options object with `name: 'euler'` to run the layout.  All other fields are optional.  An example with the default options follows:\n\n```js\nlet defaults = {\n  name: 'euler',\n\n  // The ideal length of a spring\n  // - This acts as a hint for the edge length\n  // - The edge length can be longer or shorter if the forces are set to extreme values\n  springLength: edge => 80,\n\n  // Hooke's law coefficient\n  // - The value ranges on [0, 1]\n  // - Lower values give looser springs\n  // - Higher values give tighter springs\n  springCoeff: edge => 0.0008,\n\n  // The mass of the node in the physics simulation\n  // - The mass affects the gravity node repulsion/attraction\n  mass: node => 4,\n\n  // Coulomb's law coefficient\n  // - Makes the nodes repel each other for negative values\n  // - Makes the nodes attract each other for positive values\n  gravity: -1.2,\n\n  // A force that pulls nodes towards the origin (0, 0)\n  // Higher values keep the components less spread out\n  pull: 0.001,\n\n  // Theta coefficient from Barnes-Hut simulation\n  // - Value ranges on [0, 1]\n  // - Performance is better with smaller values\n  // - Very small values may not create enough force to give a good result\n  theta: 0.666,\n\n  // Friction / drag coefficient to make the system stabilise over time\n  dragCoeff: 0.02,\n\n  // When the total of the squared position deltas is less than this value, the simulation ends\n  movementThreshold: 1,\n\n  // The amount of time passed per tick\n  // - Larger values result in faster runtimes but might spread things out too far\n  // - Smaller values produce more accurate results\n  timeStep: 20,\n\n  // The number of ticks per frame for animate:true\n  // - A larger value reduces rendering cost but can be jerky\n  // - A smaller value increases rendering cost but is smoother\n  refresh: 10,\n\n  // Whether to animate the layout\n  // - true : Animate while the layout is running\n  // - false : Just show the end result\n  // - 'end' : Animate directly to the end result\n  animate: true,\n\n  // Animation duration used for animate:'end'\n  animationDuration: undefined,\n\n  // Easing for animate:'end'\n  animationEasing: undefined,\n\n  // Maximum iterations and time (in ms) before the layout will bail out\n  // - A large value may allow for a better result\n  // - A small value may make the layout end prematurely\n  // - The layout may stop before this if it has settled\n  maxIterations: 1000,\n  maxSimulationTime: 4000,\n\n  // Prevent the user grabbing nodes during the layout (usually with animate:true)\n  ungrabifyWhileSimulating: false,\n\n  // Whether to fit the viewport to the repositioned graph\n  // true : Fits at end of layout for animate:false or animate:'end'; fits on each frame for animate:true\n  fit: true,\n\n  // Padding in rendered co-ordinates around the layout\n  padding: 30,\n\n  // Constrain layout bounds with one of\n  // - { x1, y1, x2, y2 }\n  // - { x1, y1, w, h }\n  // - undefined / null : Unconstrained\n  boundingBox: undefined,\n\n  // Layout event callbacks; equivalent to `layout.one('layoutready', callback)` for example\n  ready: function(){}, // on layoutready\n  stop: function(){}, // on layoutstop\n\n  // Whether to randomize the initial positions of the nodes\n  // true : Use random positions within the bounding box\n  // false : Use the current node positions as the initial positions\n  randomize: false\n};\n\ncy.layout( defaults ).run();\n```\n\n\n## Build instructions\n\n* `npm run build` : Build `./src/**` into `cytoscape-euler.js`\n* `npm run watch` : Automatically build on changes with live reloading (N.b. you must already have an HTTP server running)\n* `npm run dev` : Automatically build on changes with live reloading with webpack dev server\n* `npm run lint` : Run eslint on the source\n\nN.b. all builds use babel, so modern ES features can be used in the `src`.\n\n\n## Publishing instructions\n\nThis project is set up to automatically be published to npm and bower.  To publish:\n\n1. Build the extension : `npm run build:release`\n1. Commit the build : `git commit -am \"Build for release\"`\n1. Bump the version number and tag: `npm version major|minor|patch`\n1. Push to origin: `git push && git push --tags`\n1. Publish to npm: `npm publish .`\n1. If publishing to bower for the first time, you'll need to run `bower register cytoscape-euler https://github.com/cytoscape/cytoscape.js-euler.git`\n1. [Make a release on GitHub](https://github.com/cytoscape/cytoscape.js-euler/releases/new) to automatically register a new Zenodo DOI\n","readmeFilename":"README.md"}