diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9d511cb..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,21 +0,0 @@ - - -* **Link**: -* **Platform**: -* **Mini Showcase(like screenshots)**: - - diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index fd86cfc..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ - - -##### Checklist - - -- [ ] `npm test` passes -- [ ] tests and/or benchmarks are included -- [ ] commit message follows commit guidelines - -##### Description of change - diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f9ae5dd --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,32 @@ +name: build + +on: [ push, pull_request ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2.3.4 + + - name: Setup Node.js environment + uses: actions/setup-node@v2.1.5 + with: + node-version: '12' + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + path: ./node_modules + key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package.json') }} + restore-keys: | + cache-node-modules- + + - name: Run ci + run: | + npm install + npm run ci \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f00d409..0000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: node_js - -node_js: - - "8" - -env: - matrix: - - TEST_TYPE=ci - -addons: - apt: - packages: - - xvfb - - libgconf-2-4 - -install: - - export DISPLAY=':99.0' - - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & - - npm install - -script: - - | - if [ "$TEST_TYPE" = ci ]; then - npm run ci - fi diff --git a/README.md b/README.md index 97b66d0..72cf428 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ -# hierarchy +

+@antv/hierarchy +

+ +> Layout algorithms for visualizing hierarchical data. + +[![Build Status](https://github.com/antvis/hierarchy/actions/workflows/build.yml/badge.svg)](https://github.com/antvis/hierarchy/actions) +[![npm Version](https://img.shields.io/npm/v/@antv/hierarchy.svg)](https://www.npmjs.com/package/@antv/hierarchy) +[![npm Download](https://img.shields.io/npm/dm/@antv/hierarchy.svg)](https://www.npmjs.com/package/@antv/hierarchy) +[![npm License](https://img.shields.io/npm/l/@antv/hierarchy.svg)](https://www.npmjs.com/package/@antv/hierarchy) -layout algorithms for visualizing hierarchical data. ## API diff --git a/package.json b/package.json index 3085738..6297a44 100644 --- a/package.json +++ b/package.json @@ -5,20 +5,37 @@ "main": "build/hierarchy.js", "browser": "build/hierarchy.js", "module": "lib/index.js", - "homepage": "https://github.com/antvis/hierarchy", - "repository": { - "type": "git", - "url": "git@github.com:antvis/hierarchy.git" - }, - "bugs": { - "url": "https://github.com/antvis/hierarchy/issues" - }, "keywords": [ "antv", "hierarchy" ], - "author": "https://github.com/orgs/antvis/people", - "license": "MIT", + "scripts": { + "build": "webpack", + "build-lib": "babel src --out-dir lib", + "ci": "npm run lint && npm run dist", + "compress": "uglifyjs -c -m -o dist/hierarchy.min.js -- build/hierarchy.js", + "demos-web": "node ./demos/app.js --web --port 2045", + "dev": "npm run watch & npm run demos-web", + "dist": "npm run mkdir-dist && npm run build && npm run compress", + "lint": "eslint --ext .html,.js ./", + "lint-fix": "eslint --ext .html,.js --fix ./", + "mkdir-dist": "node ./bin/mkdir-dist.js", + "prepublishOnly": "npm run build-lib && npm run dist", + "screenshot": "node ./bin/screenshot.js", + "start": "npm run dev", + "watch": "webpack --config webpack-dev.config.js", + "win-dev": "node ./bin/win-dev.js" + }, + "pre-commit": { + "run": [ + "lint", + "test" + ], + "silent": false + }, + "dependencies": { + "@antv/util": "^2.0.7" + }, "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -32,7 +49,6 @@ "connect": "~3.6.5", "d3-queue": "~3.0.7", "debug": "~3.1.0", - "electron": "~2.0.6", "eslint": "~3.19.0", "eslint-config-airbnb": "~15.0.1", "eslint-config-egg": "~4.2.0", @@ -45,41 +61,17 @@ "pre-commit": "~1.2.2", "serve-static": "~1.13.1", "shelljs": "~0.7.8", - "torchjs": "~2.0.4", "uglify-js": "~3.1.10", "webpack": "~3.10.0" }, - "scripts": { - "build": "webpack", - "build-lib": "babel src --out-dir lib", - "ci": "npm run lint && npm run test", - "compress": "uglifyjs -c -m -o dist/hierarchy.min.js -- build/hierarchy.js", - "coverage": "npm run coverage-generator && npm run coverage-viewer", - "coverage-generator": "torch --compile --coverage --renderer --recursive test/unit", - "coverage-viewer": "torch-coverage", - "demos": "electron ./demos/app.js", - "demos-web": "node ./demos/app.js --web --port 2045", - "dev": "npm run watch & npm run demos-web", - "dist": "npm run mkdir-dist && npm run build && npm run compress", - "lint": "eslint --ext .html,.js ./", - "lint-fix": "eslint --ext .html,.js --fix ./", - "mkdir-dist": "node ./bin/mkdir-dist.js", - "prepublishOnly": "npm run build-lib && npm run dist", - "screenshot": "node ./bin/screenshot.js", - "start": "npm run dev", - "test": "torch --renderer --recursive ./test/unit", - "test-live": "torch --interactive --watch --recursive ./test/unit", - "watch": "webpack --config webpack-dev.config.js", - "win-dev": "node ./bin/win-dev.js" + "homepage": "https://github.com/antvis/hierarchy", + "repository": { + "type": "git", + "url": "git@github.com:antvis/hierarchy.git" }, - "pre-commit": { - "run": [ - "lint", - "test" - ], - "silent": false + "bugs": { + "url": "https://github.com/antvis/hierarchy/issues" }, - "dependencies": { - "@antv/util": "^2.0.7" - } + "author": "https://github.com/orgs/antvis/people", + "license": "MIT" } diff --git a/test/fixtures/flare.json b/test/fixtures/flare.json deleted file mode 100644 index 2e87a24..0000000 --- a/test/fixtures/flare.json +++ /dev/null @@ -1,1040 +0,0 @@ -{ - "name": "flare", - "children": [ - { - "name": "analytics", - "children": [ - { - "name": "cluster", - "children": [ - { - "name": "AgglomerativeCluster", - "value": 3938 - }, - { - "name": "CommunityStructure", - "value": 3812 - }, - { - "name": "HierarchicalCluster", - "value": 6714 - }, - { - "name": "MergeEdge", - "value": 743 - } - ] - }, - { - "name": "graph", - "children": [ - { - "name": "BetweennessCentrality", - "value": 3534 - }, - { - "name": "LinkDistance", - "value": 5731 - }, - { - "name": "MaxFlowMinCut", - "value": 7840 - }, - { - "name": "ShortestPaths", - "value": 5914 - }, - { - "name": "SpanningTree", - "value": 3416 - } - ] - }, - { - "name": "optimization", - "children": [ - { - "name": "AspectRatioBanker", - "value": 7074 - } - ] - } - ] - }, - { - "name": "animate", - "children": [ - { - "name": "Easing", - "value": 17010 - }, - { - "name": "FunctionSequence", - "value": 5842 - }, - { - "name": "interpolate", - "children": [ - { - "name": "ArrayInterpolator", - "value": 1983 - }, - { - "name": "ColorInterpolator", - "value": 2047 - }, - { - "name": "DateInterpolator", - "value": 1375 - }, - { - "name": "Interpolator", - "value": 8746 - }, - { - "name": "MatrixInterpolator", - "value": 2202 - }, - { - "name": "NumberInterpolator", - "value": 1382 - }, - { - "name": "ObjectInterpolator", - "value": 1629 - }, - { - "name": "PointInterpolator", - "value": 1675 - }, - { - "name": "RectangleInterpolator", - "value": 2042 - } - ] - }, - { - "name": "ISchedulable", - "value": 1041 - }, - { - "name": "Parallel", - "value": 5176 - }, - { - "name": "Pause", - "value": 449 - }, - { - "name": "Scheduler", - "value": 5593 - }, - { - "name": "Sequence", - "value": 5534 - }, - { - "name": "Transition", - "value": 9201 - }, - { - "name": "Transitioner", - "value": 19975 - }, - { - "name": "TransitionEvent", - "value": 1116 - }, - { - "name": "Tween", - "value": 6006 - } - ] - }, - { - "name": "data", - "children": [ - { - "name": "converters", - "children": [ - { - "name": "Converters", - "value": 721 - }, - { - "name": "DelimitedTextConverter", - "value": 4294 - }, - { - "name": "GraphMLConverter", - "value": 9800 - }, - { - "name": "IDataConverter", - "value": 1314 - }, - { - "name": "JSONConverter", - "value": 2220 - } - ] - }, - { - "name": "DataField", - "value": 1759 - }, - { - "name": "DataSchema", - "value": 2165 - }, - { - "name": "DataSet", - "value": 586 - }, - { - "name": "DataSource", - "value": 3331 - }, - { - "name": "DataTable", - "value": 772 - }, - { - "name": "DataUtil", - "value": 3322 - } - ] - }, - { - "name": "display", - "children": [ - { - "name": "DirtySprite", - "value": 8833 - }, - { - "name": "LineSprite", - "value": 1732 - }, - { - "name": "RectSprite", - "value": 3623 - }, - { - "name": "TextSprite", - "value": 10066 - } - ] - }, - { - "name": "flex", - "children": [ - { - "name": "FlareVis", - "value": 4116 - } - ] - }, - { - "name": "physics", - "children": [ - { - "name": "DragForce", - "value": 1082 - }, - { - "name": "GravityForce", - "value": 1336 - }, - { - "name": "IForce", - "value": 319 - }, - { - "name": "NBodyForce", - "value": 10498 - }, - { - "name": "Particle", - "value": 2822 - }, - { - "name": "Simulation", - "value": 9983 - }, - { - "name": "Spring", - "value": 2213 - }, - { - "name": "SpringForce", - "value": 1681 - } - ] - }, - { - "name": "query", - "children": [ - { - "name": "AggregateExpression", - "value": 1616 - }, - { - "name": "And", - "value": 1027 - }, - { - "name": "Arithmetic", - "value": 3891 - }, - { - "name": "Average", - "value": 891 - }, - { - "name": "BinaryExpression", - "value": 2893 - }, - { - "name": "Comparison", - "value": 5103 - }, - { - "name": "CompositeExpression", - "value": 3677 - }, - { - "name": "Count", - "value": 781 - }, - { - "name": "DateUtil", - "value": 4141 - }, - { - "name": "Distinct", - "value": 933 - }, - { - "name": "Expression", - "value": 5130 - }, - { - "name": "ExpressionIterator", - "value": 3617 - }, - { - "name": "Fn", - "value": 3240 - }, - { - "name": "If", - "value": 2732 - }, - { - "name": "IsA", - "value": 2039 - }, - { - "name": "Literal", - "value": 1214 - }, - { - "name": "Match", - "value": 3748 - }, - { - "name": "Maximum", - "value": 843 - }, - { - "name": "methods", - "children": [ - { - "name": "add", - "value": 593 - }, - { - "name": "and", - "value": 330 - }, - { - "name": "average", - "value": 287 - }, - { - "name": "count", - "value": 277 - }, - { - "name": "distinct", - "value": 292 - }, - { - "name": "div", - "value": 595 - }, - { - "name": "eq", - "value": 594 - }, - { - "name": "fn", - "value": 460 - }, - { - "name": "gt", - "value": 603 - }, - { - "name": "gte", - "value": 625 - }, - { - "name": "iff", - "value": 748 - }, - { - "name": "isa", - "value": 461 - }, - { - "name": "lt", - "value": 597 - }, - { - "name": "lte", - "value": 619 - }, - { - "name": "max", - "value": 283 - }, - { - "name": "min", - "value": 283 - }, - { - "name": "mod", - "value": 591 - }, - { - "name": "mul", - "value": 603 - }, - { - "name": "neq", - "value": 599 - }, - { - "name": "not", - "value": 386 - }, - { - "name": "or", - "value": 323 - }, - { - "name": "orderby", - "value": 307 - }, - { - "name": "range", - "value": 772 - }, - { - "name": "select", - "value": 296 - }, - { - "name": "stddev", - "value": 363 - }, - { - "name": "sub", - "value": 600 - }, - { - "name": "sum", - "value": 280 - }, - { - "name": "update", - "value": 307 - }, - { - "name": "variance", - "value": 335 - }, - { - "name": "where", - "value": 299 - }, - { - "name": "xor", - "value": 354 - }, - { - "name": "_", - "value": 264 - } - ] - }, - { - "name": "Minimum", - "value": 843 - }, - { - "name": "Not", - "value": 1554 - }, - { - "name": "Or", - "value": 970 - }, - { - "name": "Query", - "value": 13896 - }, - { - "name": "Range", - "value": 1594 - }, - { - "name": "StringUtil", - "value": 4130 - }, - { - "name": "Sum", - "value": 791 - }, - { - "name": "Variable", - "value": 1124 - }, - { - "name": "Variance", - "value": 1876 - }, - { - "name": "Xor", - "value": 1101 - } - ] - }, - { - "name": "scale", - "children": [ - { - "name": "IScaleMap", - "value": 2105 - }, - { - "name": "LinearScale", - "value": 1316 - }, - { - "name": "LogScale", - "value": 3151 - }, - { - "name": "OrdinalScale", - "value": 3770 - }, - { - "name": "QuantileScale", - "value": 2435 - }, - { - "name": "QuantitativeScale", - "value": 4839 - }, - { - "name": "RootScale", - "value": 1756 - }, - { - "name": "Scale", - "value": 4268 - }, - { - "name": "ScaleType", - "value": 1821 - }, - { - "name": "TimeScale", - "value": 5833 - } - ] - }, - { - "name": "util", - "children": [ - { - "name": "Arrays", - "value": 8258 - }, - { - "name": "Colors", - "value": 10001 - }, - { - "name": "Dates", - "value": 8217 - }, - { - "name": "Displays", - "value": 12555 - }, - { - "name": "Filter", - "value": 2324 - }, - { - "name": "Geometry", - "value": 10993 - }, - { - "name": "heap", - "children": [ - { - "name": "FibonacciHeap", - "value": 9354 - }, - { - "name": "HeapNode", - "value": 1233 - } - ] - }, - { - "name": "IEvaluable", - "value": 335 - }, - { - "name": "IPredicate", - "value": 383 - }, - { - "name": "IValueProxy", - "value": 874 - }, - { - "name": "math", - "children": [ - { - "name": "DenseMatrix", - "value": 3165 - }, - { - "name": "IMatrix", - "value": 2815 - }, - { - "name": "SparseMatrix", - "value": 3366 - } - ] - }, - { - "name": "Maths", - "value": 17705 - }, - { - "name": "Orientation", - "value": 1486 - }, - { - "name": "palette", - "children": [ - { - "name": "ColorPalette", - "value": 6367 - }, - { - "name": "Palette", - "value": 1229 - }, - { - "name": "ShapePalette", - "value": 2059 - }, - { - "name": "SizePalette", - "value": 2291 - } - ] - }, - { - "name": "Property", - "value": 5559 - }, - { - "name": "Shapes", - "value": 19118 - }, - { - "name": "Sort", - "value": 6887 - }, - { - "name": "Stats", - "value": 6557 - }, - { - "name": "Strings", - "value": 22026 - } - ] - }, - { - "name": "vis", - "children": [ - { - "name": "axis", - "children": [ - { - "name": "Axes", - "value": 1302 - }, - { - "name": "Axis", - "value": 24593 - }, - { - "name": "AxisGridLine", - "value": 652 - }, - { - "name": "AxisLabel", - "value": 636 - }, - { - "name": "CartesianAxes", - "value": 6703 - } - ] - }, - { - "name": "controls", - "children": [ - { - "name": "AnchorControl", - "value": 2138 - }, - { - "name": "ClickControl", - "value": 3824 - }, - { - "name": "Control", - "value": 1353 - }, - { - "name": "ControlList", - "value": 4665 - }, - { - "name": "DragControl", - "value": 2649 - }, - { - "name": "ExpandControl", - "value": 2832 - }, - { - "name": "HoverControl", - "value": 4896 - }, - { - "name": "IControl", - "value": 763 - }, - { - "name": "PanZoomControl", - "value": 5222 - }, - { - "name": "SelectionControl", - "value": 7862 - }, - { - "name": "TooltipControl", - "value": 8435 - } - ] - }, - { - "name": "data", - "children": [ - { - "name": "Data", - "value": 20544 - }, - { - "name": "DataList", - "value": 19788 - }, - { - "name": "DataSprite", - "value": 10349 - }, - { - "name": "EdgeSprite", - "value": 3301 - }, - { - "name": "NodeSprite", - "value": 19382 - }, - { - "name": "render", - "children": [ - { - "name": "ArrowType", - "value": 698 - }, - { - "name": "EdgeRenderer", - "value": 5569 - }, - { - "name": "IRenderer", - "value": 353 - }, - { - "name": "ShapeRenderer", - "value": 2247 - } - ] - }, - { - "name": "ScaleBinding", - "value": 11275 - }, - { - "name": "Tree", - "value": 7147 - }, - { - "name": "TreeBuilder", - "value": 9930 - } - ] - }, - { - "name": "events", - "children": [ - { - "name": "DataEvent", - "value": 2313 - }, - { - "name": "SelectionEvent", - "value": 1880 - }, - { - "name": "TooltipEvent", - "value": 1701 - }, - { - "name": "VisualizationEvent", - "value": 1117 - } - ] - }, - { - "name": "legend", - "children": [ - { - "name": "Legend", - "value": 20859 - }, - { - "name": "LegendItem", - "value": 4614 - }, - { - "name": "LegendRange", - "value": 10530 - } - ] - }, - { - "name": "operator", - "children": [ - { - "name": "distortion", - "children": [ - { - "name": "BifocalDistortion", - "value": 4461 - }, - { - "name": "Distortion", - "value": 6314 - }, - { - "name": "FisheyeDistortion", - "value": 3444 - } - ] - }, - { - "name": "encoder", - "children": [ - { - "name": "ColorEncoder", - "value": 3179 - }, - { - "name": "Encoder", - "value": 4060 - }, - { - "name": "PropertyEncoder", - "value": 4138 - }, - { - "name": "ShapeEncoder", - "value": 1690 - }, - { - "name": "SizeEncoder", - "value": 1830 - } - ] - }, - { - "name": "filter", - "children": [ - { - "name": "FisheyeTreeFilter", - "value": 5219 - }, - { - "name": "GraphDistanceFilter", - "value": 3165 - }, - { - "name": "VisibilityFilter", - "value": 3509 - } - ] - }, - { - "name": "IOperator", - "value": 1286 - }, - { - "name": "label", - "children": [ - { - "name": "Labeler", - "value": 9956 - }, - { - "name": "RadialLabeler", - "value": 3899 - }, - { - "name": "StackedAreaLabeler", - "value": 3202 - } - ] - }, - { - "name": "layout", - "children": [ - { - "name": "AxisLayout", - "value": 6725 - }, - { - "name": "BundledEdgeRouter", - "value": 3727 - }, - { - "name": "CircleLayout", - "value": 9317 - }, - { - "name": "CirclePackingLayout", - "value": 12003 - }, - { - "name": "DendrogramLayout", - "value": 4853 - }, - { - "name": "ForceDirectedLayout", - "value": 8411 - }, - { - "name": "IcicleTreeLayout", - "value": 4864 - }, - { - "name": "IndentedTreeLayout", - "value": 3174 - }, - { - "name": "Layout", - "value": 7881 - }, - { - "name": "NodeLinkTreeLayout", - "value": 12870 - }, - { - "name": "PieLayout", - "value": 2728 - }, - { - "name": "RadialTreeLayout", - "value": 12348 - }, - { - "name": "RandomLayout", - "value": 870 - }, - { - "name": "StackedAreaLayout", - "value": 9121 - }, - { - "name": "TreeMapLayout", - "value": 9191 - } - ] - }, - { - "name": "Operator", - "value": 2490 - }, - { - "name": "OperatorList", - "value": 5248 - }, - { - "name": "OperatorSequence", - "value": 4190 - }, - { - "name": "OperatorSwitch", - "value": 2581 - }, - { - "name": "SortOperator", - "value": 2023 - } - ] - }, - { - "name": "Visualization", - "value": 16540 - } - ] - } - ] -} diff --git a/test/support/util.js b/test/support/util.js deleted file mode 100644 index c89aa57..0000000 --- a/test/support/util.js +++ /dev/null @@ -1,12 +0,0 @@ -const { - readFileSync -} = require('fs'); -const { - resolve -} = require('path'); - -module.exports = { - readFileSync(pathname) { - return readFileSync(resolve(process.cwd(), pathname), 'utf8'); - } -}; diff --git a/test/unit/index-spec.js b/test/unit/index-spec.js deleted file mode 100644 index ae2ee99..0000000 --- a/test/unit/index-spec.js +++ /dev/null @@ -1,10 +0,0 @@ -const { - expect -} = require('chai'); -const hierarchy = require('../../src/index'); - -describe('index', () => { - it('hierarchy', () => { - expect(hierarchy).to.be.an('object'); - }); -});