Compare commits
36 Commits
@antv/x6@2
...
@antv/x6@2
Author | SHA1 | Date | |
---|---|---|---|
96010e3b52 | |||
a98e97db11 | |||
30c2ed2655 | |||
3a020d17c3 | |||
d8e1e637d8 | |||
2d04848d52 | |||
e2bb71d954 | |||
8b145941ec | |||
2c7a04a6f4 | |||
dfa8c492da | |||
3b668feb4e | |||
07f4739979 | |||
824560ddda | |||
9e37ea9f78 | |||
610349d924 | |||
2f92e33d0e | |||
df540d9b79 | |||
3bc37971f8 | |||
50284c2d51 | |||
15284e778a | |||
1a0e8cf969 | |||
1089109b08 | |||
faf294a5ec | |||
25461fd985 | |||
35f2966219 | |||
26df790b8c | |||
bc7efe8db9 | |||
abeb009d0a | |||
ad08cf87ef | |||
16c2ef35e0 | |||
187e318aee | |||
f07abff980 | |||
4a6a634a8a | |||
627368e0dd | |||
604c0244cd | |||
80898ada1c |
2
.github/workflows/config/codeql.yml
vendored
2
.github/workflows/config/codeql.yml
vendored
@ -1,5 +1,5 @@
|
||||
paths-ignore:
|
||||
- sites/x6-sites/static
|
||||
- sites/public
|
||||
query-filters:
|
||||
- exclude:
|
||||
id: js/use-before-declaration
|
||||
|
@ -12,5 +12,5 @@ es/
|
||||
lib/
|
||||
dist/
|
||||
coverage/
|
||||
sites/x6-sites/static/demos
|
||||
sites/public
|
||||
csstype.ts
|
||||
|
@ -13,6 +13,7 @@ Indomi <indomi126@gmail.com>
|
||||
James <san>
|
||||
Jógvan <lse>
|
||||
Ken <ei>
|
||||
Kent <oo>
|
||||
Limbo <49612796+JUST-Limbo@users.noreply.github.com>
|
||||
Lixu <37231473+wflixu@users.noreply.github.com>
|
||||
Lloyd <ho>
|
||||
|
181
CONTRIBUTORS.svg
181
CONTRIBUTORS.svg
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 12 MiB After Width: | Height: | Size: 12 MiB |
@ -6,7 +6,7 @@
|
||||
<p align="center"><strong>提供简单易用的节点定制能力和开箱即用的交互组件,方便我们快速搭建流程图、DAG 图、ER 图等图应用</strong></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/antvis/X6/actions/workflows/ci.yml"><img alt="build" src="https://img.shields.io/github/workflow/status/antvis/x6/%F0%9F%91%B7%E3%80%80CI/master?logo=github&style=flat-square"></a>
|
||||
<a href="https://github.com/antvis/X6/actions/workflows/ci.yml"><img alt="build" src="https://img.shields.io/github/actions/workflow/status/antvis/x6/ci.yml?branch=master&logo=github&style=flat-square"></a>
|
||||
<!-- <a href="https://app.codecov.io/gh/antvis/X6"><img alt="coverage" src="https://img.shields.io/codecov/c/gh/antvis/x6?logo=codecov&style=flat-square&token=15CO54WYUV"></a> -->
|
||||
<a href="https://lgtm.com/projects/g/antvis/x6/context:javascript"><img alt="Language grade: JavaScript" src="https://img.shields.io/lgtm/grade/javascript/g/antvis/x6.svg?logo=lgtm&style=flat-square"></a>
|
||||
<a href="https://www.npmjs.com/package/@antv/x6"><img alt="NPM Package" src="https://img.shields.io/npm/v/@antv/x6.svg?style=flat-square"></a>
|
||||
|
@ -1,3 +1,10 @@
|
||||
## @antv/x6-example-features [2.0.1](https://github.com/antvis/X6/compare/@antv/x6-example-features@2.0.0...@antv/x6-example-features@2.0.1) (2022-12-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* make resizing options take effect ([#3014](https://github.com/antvis/X6/issues/3014)) ([604c024](https://github.com/antvis/X6/commit/604c0244cd71ec8e911754dfe524f12c04e4e9ad))
|
||||
|
||||
# @antv/x6-example-features [2.0.0](https://github.com/antvis/X6/compare/@antv/x6-example-features@1.1.2...@antv/x6-example-features@2.0.0) (2022-11-24)
|
||||
|
||||
|
||||
|
@ -1,17 +1,18 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/x6-example-features",
|
||||
"version": "2.0.0",
|
||||
"version": "2.0.1",
|
||||
"scripts": {
|
||||
"start": "umi dev",
|
||||
"build": "umi build",
|
||||
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix",
|
||||
"precommit": "lint-staged"
|
||||
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@antv/hierarchy": "^0.6.8",
|
||||
"@antv/x6": "^2.x",
|
||||
"@antv/x6-plugin-clipboard": "^2.x",
|
||||
"@antv/x6-plugin-dnd": "^2.x",
|
||||
"@antv/x6-plugin-export": "^2.x",
|
||||
"@antv/x6-plugin-history": "^2.x",
|
||||
"@antv/x6-plugin-keyboard": "^2.x",
|
||||
"@antv/x6-plugin-minimap": "^2.x",
|
||||
@ -20,42 +21,34 @@
|
||||
"@antv/x6-plugin-snapline": "^2.x",
|
||||
"@antv/x6-plugin-stencil": "^2.x",
|
||||
"@antv/x6-plugin-transform": "^2.x",
|
||||
"@antv/x6-plugin-export": "^2.x",
|
||||
"@antv/x6-react-components": "^2.x",
|
||||
"@antv/x6-react-shape": "^2.x",
|
||||
"antd": "^4.4.2",
|
||||
"classnames": "^2.2.6",
|
||||
"dagre": "^0.8.5",
|
||||
"elkjs": "^0.7.1",
|
||||
"elkjs": "^0.8.2",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-helmet": "^6.0.0",
|
||||
"@antv/hierarchy": "^0.6.8"
|
||||
"react-helmet": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "^4.2.2",
|
||||
"@types/jest": "^25.2.1",
|
||||
"@types/jest": "^29.2.4",
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"@types/react-helmet": "^6.0.0",
|
||||
"@types/react-test-renderer": "^16.0.3",
|
||||
"eslint": "^7.16.0",
|
||||
"@types/react-test-renderer": "^18.0.0",
|
||||
"babel-plugin-import": "^1.13.5",
|
||||
"eslint": "^8.29.0",
|
||||
"eslint-config-umi": "^1.4.0",
|
||||
"eslint-plugin-flowtype": "^4.7.0",
|
||||
"eslint-plugin-flowtype": "^8.0.3",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.2.3",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"lint-staged": "^10.5.3",
|
||||
"react-test-renderer": "^16.7.0",
|
||||
"umi": "^2.9.0",
|
||||
"umi-plugin-react": "^1.8.0",
|
||||
"umi-types": "^0.3.0",
|
||||
"babel-plugin-import": "^1.13.5"
|
||||
},
|
||||
"lint-staged": {
|
||||
"src/**/*.ts": [
|
||||
"eslint --fix"
|
||||
]
|
||||
"umi-types": "^0.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
|
@ -25,7 +25,6 @@ export default class Example extends React.Component {
|
||||
strict: true,
|
||||
showNodeSelectionBox: true,
|
||||
selectCellOnMoved: false,
|
||||
useCellGeometry: true,
|
||||
filter(cell) {
|
||||
return cell !== a
|
||||
},
|
||||
|
37
package.json
37
package.json
@ -15,7 +15,6 @@
|
||||
"build:dev": "turbo run build:dev --filter=./packages/*",
|
||||
"build:umd": "turbo run build:umd --filter=./packages/*",
|
||||
"build:demos": "sh ./scripts/build-demos",
|
||||
"build:sites": "sh ./scripts/build-sites",
|
||||
"clean:turbo": "pnpm -r --if-present --parallel --filter=./packages/* run clean:turbo",
|
||||
"clean:build": "pnpm -r --if-present --parallel --filter=./packages/* run clean",
|
||||
"clean:modules": "pnpm -r --parallel exec rimraf node_modules && rimraf node_modules",
|
||||
@ -37,8 +36,8 @@
|
||||
"build:umd": "pnpm run --if-present build:less && rollup -c ../../rollup.config.js --bundleConfigAsCjs",
|
||||
"build:dev": "pnpm run --if-present build:less && run-p -s build:cjs build:esm",
|
||||
"build:watch": "run-s -s build:watch:esm",
|
||||
"build:watch:esm": "run-s -s 'build:esm -w'",
|
||||
"build:watch:cjs": "run-s -s 'build:cjs -w'",
|
||||
"build:watch:esm": "run-s -s 'build:esm -- -w'",
|
||||
"build:watch:cjs": "run-s -s 'build:cjs -- -w'",
|
||||
"build": "run-p -s build:dev build:umd",
|
||||
"prebuild": "run-s -s clean:build",
|
||||
"test": {
|
||||
@ -93,35 +92,35 @@
|
||||
"@babel/plugin-syntax-flow": "^7.18.6",
|
||||
"@babel/plugin-transform-react-jsx": "^7.19.0",
|
||||
"@commitlint/config-conventional": "^17.3.0",
|
||||
"@rollup/plugin-commonjs": "^23.0.3",
|
||||
"@rollup/plugin-commonjs": "^23.0.5",
|
||||
"@rollup/plugin-node-resolve": "^15.0.1",
|
||||
"@rollup/plugin-replace": "^5.0.1",
|
||||
"@rollup/plugin-typescript": "^8.2.5",
|
||||
"@rollup/plugin-typescript": "^10.0.1",
|
||||
"@semantic-release-monorepo/cli": "^2.1.2",
|
||||
"@semantic-release/changelog": "^6.0.2",
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"@types/jasmine": "^4.3.0",
|
||||
"@types/jest": "^29.2.3",
|
||||
"@types/node": "^18.11.10",
|
||||
"@types/jest": "^29.2.4",
|
||||
"@types/node": "^18.11.15",
|
||||
"@types/sinon": "^10.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
||||
"@typescript-eslint/parser": "^5.45.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
||||
"@typescript-eslint/parser": "^5.46.1",
|
||||
"boxen": "^7.0.0",
|
||||
"colors": "^1.4.0",
|
||||
"coveralls": "^3.1.1",
|
||||
"eslint": "^8.28.0",
|
||||
"eslint": "^8.29.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-flowtype": "^8.0.3",
|
||||
"eslint-plugin-import": "^2.24.2",
|
||||
"eslint-plugin-jest": "^27.1.6",
|
||||
"eslint-plugin-jest": "^27.1.7",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-react": "^7.31.11",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-unicorn": "^45.0.1",
|
||||
"eslint-plugin-unicorn": "^45.0.2",
|
||||
"fs-extra": "^11.1.0",
|
||||
"husky": "^8.0.1",
|
||||
"is-ci": "^3.0.0",
|
||||
@ -131,26 +130,25 @@
|
||||
"karma-chrome-launcher": "^3.1.0",
|
||||
"karma-cli": "^2.0.0",
|
||||
"karma-jasmine": "^5.1.0",
|
||||
"karma-spec-reporter": "^0.0.34",
|
||||
"karma-spec-reporter": "^0.0.36",
|
||||
"karma-typescript": "5.5.3",
|
||||
"karma-typescript-es6-transform": "5.5.3",
|
||||
"less": "^4.1.1",
|
||||
"lodash": "^4.17.21",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.4.19",
|
||||
"postcss": "^8.4.20",
|
||||
"postcss-less": "^6.0.0",
|
||||
"prettier": "^2.8.0",
|
||||
"pretty-quick": "^3.1.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup": "^3.5.0",
|
||||
"rollup": "^3.7.4",
|
||||
"rollup-plugin-auto-external": "^2.0.0",
|
||||
"rollup-plugin-filesize": "^9.1.1",
|
||||
"rollup-plugin-postcss": "^4.0.1",
|
||||
"rollup-plugin-progress": "^1.1.2",
|
||||
"rollup-plugin-terser": "^7.0.2",
|
||||
"run-shared-scripts": "^1.1.4",
|
||||
"run-shared-scripts": "^1.1.5",
|
||||
"semantic-release": "^19.0.5",
|
||||
"sinon": "^15.0.0",
|
||||
"sinon": "^15.0.1",
|
||||
"stylelint": "^14.15.0",
|
||||
"stylelint-config-prettier": "^9.0.4",
|
||||
"stylelint-config-rational-order": "^0.1.2",
|
||||
@ -162,5 +160,8 @@
|
||||
"tslib": "^2.4.1",
|
||||
"turbo": "^1.6.3",
|
||||
"typescript": "^4.9.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-terser": "^0.2.0"
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,10 @@
|
||||
## @antv/x6-common [2.0.4](https://github.com/antvis/x6/compare/@antv/x6-common@2.0.3...@antv/x6-common@2.0.4) (2022-12-20)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* fix window incompatibility problem ([#3070](https://github.com/antvis/x6/issues/3070)) ([d8e1e63](https://github.com/antvis/x6/commit/d8e1e637d8027b9494cd26efc87815d74bd51366))
|
||||
|
||||
## @antv/x6-common [2.0.1](https://github.com/antvis/x6/compare/@antv/x6-common@2.0.0...@antv/x6-common@2.0.1) (2022-11-25)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-common",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"description": "Basic toolkit for X6",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -1,6 +1,10 @@
|
||||
// compatible with NodeList.prototype.forEach() before chrome 51
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
|
||||
if (window.NodeList && !NodeList.prototype.forEach) {
|
||||
if (
|
||||
typeof window === 'object' &&
|
||||
window.NodeList &&
|
||||
!NodeList.prototype.forEach
|
||||
) {
|
||||
NodeList.prototype.forEach = Array.prototype.forEach as any
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-plugin-export",
|
||||
"version": "2.1.4",
|
||||
"version": "2.1.5",
|
||||
"description": "export plugin for X6.",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -5,15 +5,15 @@ declare module '@antv/x6/lib/graph/graph' {
|
||||
interface Graph {
|
||||
toSVG: (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToSVGOptions,
|
||||
options?: Export.ToSVGOptions,
|
||||
) => void
|
||||
toPNG: (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToImageOptions,
|
||||
options?: Export.ToImageOptions,
|
||||
) => void
|
||||
toJPEG: (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToImageOptions,
|
||||
options?: Export.ToImageOptions,
|
||||
) => void
|
||||
exportPNG: (fileName?: string, options?: Export.ToImageOptions) => void
|
||||
exportJPEG: (fileName?: string, options?: Export.ToImageOptions) => void
|
||||
@ -23,7 +23,7 @@ declare module '@antv/x6/lib/graph/graph' {
|
||||
|
||||
Graph.prototype.toSVG = function (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToSVGOptions,
|
||||
options?: Export.ToSVGOptions,
|
||||
) {
|
||||
const instance = this.getPlugin('export') as Export
|
||||
if (instance) {
|
||||
@ -33,7 +33,7 @@ Graph.prototype.toSVG = function (
|
||||
|
||||
Graph.prototype.toPNG = function (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToImageOptions,
|
||||
options?: Export.ToImageOptions,
|
||||
) {
|
||||
const instance = this.getPlugin('export') as Export
|
||||
if (instance) {
|
||||
@ -43,7 +43,7 @@ Graph.prototype.toPNG = function (
|
||||
|
||||
Graph.prototype.toJPEG = function (
|
||||
callback: Export.ToSVGCallback,
|
||||
options: Export.ToImageOptions,
|
||||
options?: Export.ToImageOptions,
|
||||
) {
|
||||
const instance = this.getPlugin('export') as Export
|
||||
if (instance) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-plugin-scroller",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.7",
|
||||
"description": "scroller plugin for X6",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -1,3 +1,10 @@
|
||||
## @antv/x6-plugin-transform [2.1.4](https://github.com/antvis/x6/compare/@antv/x6-plugin-transform@2.1.3...@antv/x6-plugin-transform@2.1.4) (2022-12-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* make resizing options take effect ([#3014](https://github.com/antvis/x6/issues/3014)) ([604c024](https://github.com/antvis/x6/commit/604c0244cd71ec8e911754dfe524f12c04e4e9ad))
|
||||
|
||||
## @antv/x6-plugin-transform [2.1.2](https://github.com/antvis/x6/compare/@antv/x6-plugin-transform@2.1.1...@antv/x6-plugin-transform@2.1.2) (2022-11-25)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-plugin-transform",
|
||||
"version": "2.0.3",
|
||||
"version": "2.1.4",
|
||||
"description": "transform plugin for X6",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -90,18 +90,23 @@ export class Transform extends Basecoat<Transform.EventArgs> {
|
||||
)
|
||||
|
||||
const options: TransformImpl.Options = {
|
||||
resizable: resizing.enabled,
|
||||
resizable: !!resizing.enabled,
|
||||
minWidth: resizing.minWidth || 0,
|
||||
maxWidth: resizing.maxWidth || Number.MAX_SAFE_INTEGER,
|
||||
minHeight: resizing.minHeight || 0,
|
||||
maxHeight: resizing.maxHeight || Number.MAX_SAFE_INTEGER,
|
||||
orthogonalResizing: resizing.orthogonal || true,
|
||||
restrictedResizing: resizing.restrict || false,
|
||||
autoScrollOnResizing: resizing.autoScroll || true,
|
||||
preserveAspectRatio: resizing.preserveAspectRatio || false,
|
||||
allowReverse: resizing.allowReverse || true,
|
||||
orthogonalResizing:
|
||||
typeof resizing.orthogonal === 'boolean' ? resizing.orthogonal : true,
|
||||
restrictedResizing: !!resizing.restrict,
|
||||
autoScrollOnResizing:
|
||||
typeof resizing.autoScroll === 'boolean' ? resizing.autoScroll : true,
|
||||
preserveAspectRatio: !!resizing.preserveAspectRatio,
|
||||
allowReverse:
|
||||
typeof resizing.allowReverse === 'boolean'
|
||||
? resizing.allowReverse
|
||||
: true,
|
||||
|
||||
rotatable: rotating.enabled || false,
|
||||
rotatable: !!rotating.enabled,
|
||||
rotateGrid: rotating.grid || 15,
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-react-shape",
|
||||
"version": "2.0.7",
|
||||
"version": "2.1.0",
|
||||
"description": "X6 shape for rendering react components.",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
@ -39,8 +39,8 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@antv/x6": "^2.x",
|
||||
"react": ">=16.8.6 || >=17.0.0 || >=18.0.0",
|
||||
"react-dom": ">=16.8.6 || >=17.0.0 || >= 18.0.0"
|
||||
"react": ">=18.0.0",
|
||||
"react-dom": ">= 18.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antv/x6": "^2.x",
|
||||
|
@ -1,14 +1,11 @@
|
||||
import React, { ReactPortal, version as reactVersion } from 'react'
|
||||
import ReactDOM, { createPortal } from 'react-dom'
|
||||
import type { Root, createRoot as CreateRoot } from 'react-dom/client'
|
||||
import React, { ReactPortal } from 'react'
|
||||
import { createPortal } from 'react-dom'
|
||||
import { createRoot, Root } from 'react-dom/client'
|
||||
import { Dom, NodeView } from '@antv/x6'
|
||||
import { ReactShape } from './node'
|
||||
import { Portal } from './portal'
|
||||
import { Wrap } from './wrap'
|
||||
|
||||
const [, major] = /^(\d+)\.\d+\.\d+$/.exec(reactVersion)!
|
||||
const reactMajor = Number(major)
|
||||
const isPreEighteen = reactMajor < 18
|
||||
export class ReactShapeView extends NodeView<ReactShape> {
|
||||
root?: Root
|
||||
|
||||
@ -29,36 +26,22 @@ export class ReactShapeView extends NodeView<ReactShape> {
|
||||
const node = this.cell
|
||||
|
||||
if (container) {
|
||||
const graph = node.model ? node.model.graph : null
|
||||
// Actually in the dnd plugin, this graph is empty,
|
||||
// in order to make the external perception type of graph is a graph, rather than graph | null, so hack this.
|
||||
const elem = React.createElement(Wrap, { node, graph: graph! })
|
||||
const elem = React.createElement(Wrap, { node, graph: this.graph })
|
||||
if (Portal.isActive()) {
|
||||
const portal = createPortal(elem, container) as ReactPortal
|
||||
Portal.connect(this.cell.id, portal)
|
||||
} else {
|
||||
if (isPreEighteen) {
|
||||
ReactDOM.render(elem, container)
|
||||
} else {
|
||||
// eslint-disable-next-line
|
||||
const createRoot = require('react-dom/client')
|
||||
.createRoot as typeof CreateRoot
|
||||
this.root = createRoot(container)
|
||||
this.root.render(elem)
|
||||
}
|
||||
this.root = createRoot(container)
|
||||
this.root.render(elem)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected unmountReactComponent() {
|
||||
const container = this.getComponentContainer()
|
||||
if (container) {
|
||||
if (isPreEighteen) {
|
||||
ReactDOM.unmountComponentAtNode(container)
|
||||
} else if (this.root) {
|
||||
this.root.unmount()
|
||||
this.root = undefined
|
||||
}
|
||||
if (container && this.root) {
|
||||
this.root.unmount()
|
||||
this.root = undefined
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
## @antv/x6-vue-shape [2.0.7](https://github.com/antvis/x6/compare/@antv/x6-vue-shape@2.0.6...@antv/x6-vue-shape@2.0.7) (2022-12-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* cannot read properties of undefined when unmount vue component ([#3024](https://github.com/antvis/x6/issues/3024)) ([187e318](https://github.com/antvis/x6/commit/187e318aee8622591781d3b8fc45d72a4d54a989))
|
||||
|
||||
## @antv/x6-vue-shape [2.0.4](https://github.com/antvis/x6/compare/@antv/x6-vue-shape@2.0.3...@antv/x6-vue-shape@2.0.4) (2022-11-25)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6-vue-shape",
|
||||
"version": "2.0.4",
|
||||
"version": "2.0.7",
|
||||
"description": "X6 shape for rendering vue components.",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { defineComponent, h, reactive, isVue3, Vue } from 'vue-demi'
|
||||
import { Graph } from '@antv/x6'
|
||||
import { VueShape } from './node'
|
||||
|
||||
let active = false
|
||||
@ -9,6 +10,7 @@ export function connect(
|
||||
component: any,
|
||||
container: HTMLDivElement,
|
||||
node: VueShape,
|
||||
graph: Graph,
|
||||
) {
|
||||
if (active) {
|
||||
const { Teleport, markRaw } = Vue as any
|
||||
@ -17,6 +19,7 @@ export function connect(
|
||||
render: () => h(Teleport, { to: container } as any, [h(component)]),
|
||||
provide: () => ({
|
||||
getNode: () => node,
|
||||
getGraph: () => graph,
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
@ -8,7 +8,7 @@ export class VueShapeView extends NodeView<VueShape> {
|
||||
private vm: any
|
||||
|
||||
getComponentContainer() {
|
||||
return this.selectors.foContent as HTMLDivElement
|
||||
return this.selectors && (this.selectors.foContent as HTMLDivElement)
|
||||
}
|
||||
|
||||
confirmUpdate(flag: number) {
|
||||
@ -40,12 +40,13 @@ export class VueShapeView extends NodeView<VueShape> {
|
||||
provide() {
|
||||
return {
|
||||
getNode: () => node,
|
||||
getGraph: () => this.graph,
|
||||
}
|
||||
},
|
||||
})
|
||||
} else if (isVue3) {
|
||||
if (isActive()) {
|
||||
connect(this.targetId(), component, root, node)
|
||||
connect(this.targetId(), component, root, node, this.graph)
|
||||
} else {
|
||||
this.vm = createApp({
|
||||
render() {
|
||||
@ -54,6 +55,7 @@ export class VueShapeView extends NodeView<VueShape> {
|
||||
provide() {
|
||||
return {
|
||||
getNode: () => node,
|
||||
getGraph: () => this.graph,
|
||||
}
|
||||
},
|
||||
})
|
||||
@ -71,7 +73,9 @@ export class VueShapeView extends NodeView<VueShape> {
|
||||
isVue3 && this.vm.unmount()
|
||||
this.vm = null
|
||||
}
|
||||
root.innerHTML = ''
|
||||
if (root) {
|
||||
root.innerHTML = ''
|
||||
}
|
||||
return root
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,39 @@
|
||||
## @antv/x6 [2.1.1](https://github.com/antvis/x6/compare/@antv/x6@2.1.0...@antv/x6@2.1.1) (2022-12-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* arrowhead not get options bug ([#3065](https://github.com/antvis/x6/issues/3065)) ([3b668fe](https://github.com/antvis/x6/commit/3b668feb4eac47994f52d0cc977d22a8a2c06acd))
|
||||
* set snapToGrid to false by default ([#3066](https://github.com/antvis/x6/issues/3066)) ([e2bb71d](https://github.com/antvis/x6/commit/e2bb71d95484b29187fafca97f1a386e9b984095))
|
||||
|
||||
# @antv/x6 [2.1.0](https://github.com/antvis/x6/compare/@antv/x6@2.0.9...@antv/x6@2.1.0) (2022-12-19)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add snapToGrid options for manhattan router ([#3062](https://github.com/antvis/x6/issues/3062)) ([824560d](https://github.com/antvis/x6/commit/824560ddda7016158cce3166773e1af009bfe498))
|
||||
|
||||
## @antv/x6 [2.0.9](https://github.com/antvis/x6/compare/@antv/x6@2.0.8...@antv/x6@2.0.9) (2022-12-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* :bug: char ghosting when edit text ([#2560](https://github.com/antvis/x6/issues/2560)) ([#3043](https://github.com/antvis/x6/issues/3043)) ([15284e7](https://github.com/antvis/x6/commit/15284e778a09f4f2e5a8f777330744b0cfe88e9e))
|
||||
|
||||
## @antv/x6 [2.0.8](https://github.com/antvis/x6/compare/@antv/x6@2.0.7...@antv/x6@2.0.8) (2022-12-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* trigger preventDefault by origin event ([#3017](https://github.com/antvis/x6/issues/3017)) ([4a6a634](https://github.com/antvis/x6/commit/4a6a634a8acfad5c1a7bb93ac17fb3b97239e853))
|
||||
|
||||
## @antv/x6 [2.0.7](https://github.com/antvis/x6/compare/@antv/x6@2.0.6...@antv/x6@2.0.7) (2022-12-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* hide elems when visible is false ([#3007](https://github.com/antvis/x6/issues/3007)) ([057d520](https://github.com/antvis/x6/commit/057d5209ff827d0231ecc6562e768907f75aff2d))
|
||||
|
||||
## @antv/x6 [2.0.4](https://github.com/antvis/x6/compare/@antv/x6@2.0.3...@antv/x6@2.0.4) (2022-11-25)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6",
|
||||
"version": "2.0.6",
|
||||
"version": "2.1.1",
|
||||
"description": "JavaScript diagramming library that uses SVG and HTML for rendering",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -58,8 +58,12 @@ export class Graph extends Basecoat<EventArgs> {
|
||||
this.grid = new Grid(this)
|
||||
this.background = new Background(this)
|
||||
|
||||
this.model = this.options.model ? this.options.model : new Model()
|
||||
this.model.graph = this
|
||||
if (this.options.model) {
|
||||
this.model = this.options.model
|
||||
} else {
|
||||
this.model = new Model()
|
||||
this.model.graph = this
|
||||
}
|
||||
|
||||
this.renderer = new ViewRenderer(this)
|
||||
this.panning = new Panning(this)
|
||||
|
@ -55,6 +55,8 @@ export namespace Options {
|
||||
|
||||
onPortRendered?: (args: OnPortRenderedArgs) => void
|
||||
onEdgeLabelRendered?: (args: OnEdgeLabelRenderedArgs) => void
|
||||
|
||||
createCellView?: (this: Graph, cell: Cell) => CellView | null | undefined
|
||||
}
|
||||
|
||||
export interface ManualBooleans {
|
||||
|
@ -201,7 +201,7 @@ export class GraphView extends View {
|
||||
}
|
||||
|
||||
if (this.options.preventDefaultMouseDown) {
|
||||
e.preventDefault()
|
||||
evt.preventDefault()
|
||||
}
|
||||
|
||||
const localPoint = this.graph.snapToGrid(e.clientX, e.clientY)
|
||||
@ -213,7 +213,7 @@ export class GraphView extends View {
|
||||
this.options.preventDefaultBlankAction &&
|
||||
['touchstart'].includes(e.type)
|
||||
) {
|
||||
e.preventDefault()
|
||||
evt.preventDefault()
|
||||
}
|
||||
|
||||
this.graph.trigger('blank:mousedown', {
|
||||
|
@ -12,3 +12,5 @@ export * from './edge-anchor'
|
||||
export * from './connection-point'
|
||||
export * from './router'
|
||||
export * from './connector'
|
||||
|
||||
export * from './registry'
|
||||
|
@ -71,15 +71,17 @@ export class ObstacleMap {
|
||||
const mapGridSize = this.mapGridSize
|
||||
|
||||
model.getNodes().reduce((map, node) => {
|
||||
const shape = node.shape
|
||||
const excludeShapes = options.excludeShapes
|
||||
const excType = shape ? excludeShapes.includes(shape) : false
|
||||
const excTerminal = excludedTerminals.some((cell) => cell.id === node.id)
|
||||
const excNode = options.excludeNodes.includes(node)
|
||||
const excAncestor = excludedAncestors.includes(node.id)
|
||||
const excHidden = options.excludeHiddenNodes && !node.isVisible()
|
||||
const excluded =
|
||||
excType || excTerminal || excNode || excAncestor || excHidden
|
||||
const excludedTerminal = excludedTerminals.some(
|
||||
(cell) => cell.id === node.id,
|
||||
)
|
||||
const excludedNode = options.excludeNodes.some((item) => {
|
||||
if (typeof item === 'string') {
|
||||
return node.id === item
|
||||
}
|
||||
return item === node
|
||||
})
|
||||
const excludedAncestor = excludedAncestors.includes(node.id)
|
||||
const excluded = excludedTerminal || excludedNode || excludedAncestor
|
||||
|
||||
if (!excluded) {
|
||||
const bbox = node.getBBox().moveAndExpand(options.paddingBox)
|
||||
|
@ -41,20 +41,10 @@ export interface ResolvedOptions {
|
||||
*/
|
||||
excludeTerminals: Edge.TerminalType[]
|
||||
|
||||
/**
|
||||
* Should certain types of nodes not be considered as obstacles?
|
||||
*/
|
||||
excludeShapes: string[]
|
||||
|
||||
/**
|
||||
* Should certain hidden nodes not be considered as obstacles?
|
||||
*/
|
||||
excludeHiddenNodes: boolean
|
||||
|
||||
/**
|
||||
* Should certain nodes not be considered as obstacles?
|
||||
*/
|
||||
excludeNodes: Node[]
|
||||
excludeNodes: (Node | string)[]
|
||||
|
||||
/**
|
||||
* Possible starting directions from a node.
|
||||
@ -132,6 +122,9 @@ export interface ResolvedOptions {
|
||||
) => Point[] | null
|
||||
|
||||
previousDirectionAngle?: number | null
|
||||
|
||||
// Whether the calculation results are aligned with the grid
|
||||
snapToGrid?: boolean
|
||||
}
|
||||
|
||||
export type ManhattanRouterOptions = {
|
||||
@ -145,9 +138,7 @@ export const defaults: ManhattanRouterOptions = {
|
||||
maxDirectionChange: 90,
|
||||
perpendicular: true,
|
||||
excludeTerminals: [],
|
||||
excludeShapes: [], // ['text']
|
||||
excludeNodes: [],
|
||||
excludeHiddenNodes: false,
|
||||
startDirections: ['top', 'right', 'bottom', 'left'],
|
||||
endDirections: ['top', 'right', 'bottom', 'left'],
|
||||
directionMap: {
|
||||
@ -195,6 +186,7 @@ export const defaults: ManhattanRouterOptions = {
|
||||
|
||||
fallbackRouter: orth,
|
||||
draggingRouter: null,
|
||||
snapToGrid: true,
|
||||
}
|
||||
|
||||
export function resolve<T>(
|
||||
|
@ -265,6 +265,32 @@ function findRoute(
|
||||
return null
|
||||
}
|
||||
|
||||
function snap(vertices: Point[], gridSize = 10) {
|
||||
if (vertices.length <= 1) {
|
||||
return vertices
|
||||
}
|
||||
|
||||
for (let i = 0, len = vertices.length; i < len - 1; i += 1) {
|
||||
const first = vertices[i]
|
||||
const second = vertices[i + 1]
|
||||
if (first.x === second.x) {
|
||||
const x = gridSize * Math.round(first.x / gridSize)
|
||||
if (first.x !== x) {
|
||||
first.x = x
|
||||
second.x = x
|
||||
}
|
||||
} else if (first.y === second.y) {
|
||||
const y = gridSize * Math.round(first.y / gridSize)
|
||||
if (first.y !== y) {
|
||||
first.y = y
|
||||
second.y = y
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return vertices
|
||||
}
|
||||
|
||||
export const router: Router.Definition<ManhattanRouterOptions> = function (
|
||||
vertices,
|
||||
optionsRaw,
|
||||
@ -350,5 +376,9 @@ export const router: Router.Definition<ManhattanRouterOptions> = function (
|
||||
newVertices.push(...partialRoute)
|
||||
}
|
||||
|
||||
if (options.snapToGrid) {
|
||||
return snap(newVertices, edgeView.graph.grid.getGridSize())
|
||||
}
|
||||
|
||||
return newVertices
|
||||
}
|
||||
|
@ -74,6 +74,7 @@ class Arrowhead extends ToolsView.ToolItem<EdgeView, Arrowhead.Options> {
|
||||
x: coords.x,
|
||||
y: coords.y,
|
||||
options: {
|
||||
...this.options,
|
||||
toolId: this.cid,
|
||||
},
|
||||
})
|
||||
|
@ -94,6 +94,9 @@ export class CellEditor extends ToolsView.ToolItem<
|
||||
}
|
||||
editor.innerText = text || ''
|
||||
|
||||
// clear display value when edit status because char ghosting.
|
||||
this.setCellText('')
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
@ -102,15 +105,7 @@ export class CellEditor extends ToolsView.ToolItem<
|
||||
const cell = this.cell
|
||||
const value = this.editor.innerText.replace(/\n$/, '') || ''
|
||||
// set value
|
||||
const setText = this.options.setText
|
||||
if (typeof setText === 'function') {
|
||||
FunctionExt.call(setText, this.cellView, {
|
||||
cell: this.cell,
|
||||
value,
|
||||
index: this.labelIndex,
|
||||
distance: this.distance,
|
||||
})
|
||||
}
|
||||
this.setCellText(value)
|
||||
// remove tool
|
||||
cell.removeTool(cell.isEdge() ? 'edge-editor' : 'node-editor')
|
||||
this.undelegateDocumentEvents()
|
||||
@ -141,6 +136,18 @@ export class CellEditor extends ToolsView.ToolItem<
|
||||
selection.addRange(range)
|
||||
}
|
||||
}
|
||||
|
||||
setCellText(value: string) {
|
||||
const setText = this.options.setText
|
||||
if (typeof setText === 'function') {
|
||||
FunctionExt.call(setText, this.cellView, {
|
||||
cell: this.cell,
|
||||
value,
|
||||
index: this.labelIndex,
|
||||
distance: this.distance,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export namespace CellEditor {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { KeyValue, Dom, Disposable } from '@antv/x6-common'
|
||||
import { KeyValue, Dom, Disposable, FunctionExt } from '@antv/x6-common'
|
||||
import { Rectangle } from '@antv/x6-geometry'
|
||||
import { Model, Cell } from '../model'
|
||||
import { View, CellView, NodeView, EdgeView } from '../view'
|
||||
@ -181,13 +181,15 @@ export class Scheduler extends Disposable {
|
||||
}
|
||||
}
|
||||
|
||||
this.requestViewUpdate(
|
||||
viewItem.view,
|
||||
flag,
|
||||
options,
|
||||
cell.isNode() ? JOB_PRIORITY.RenderNode : JOB_PRIORITY.RenderEdge,
|
||||
false,
|
||||
)
|
||||
if (viewItem) {
|
||||
this.requestViewUpdate(
|
||||
viewItem.view,
|
||||
flag,
|
||||
options,
|
||||
cell.isNode() ? JOB_PRIORITY.RenderNode : JOB_PRIORITY.RenderEdge,
|
||||
false,
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
this.flush()
|
||||
@ -375,15 +377,22 @@ export class Scheduler extends Disposable {
|
||||
}
|
||||
|
||||
protected createCellView(cell: Cell) {
|
||||
const options = { graph: this.graph }
|
||||
const createViewHook = this.graph.options.createCellView
|
||||
if (createViewHook) {
|
||||
const ret = FunctionExt.call(createViewHook, this.graph, cell)
|
||||
if (ret || ret === null) {
|
||||
return ret
|
||||
}
|
||||
}
|
||||
|
||||
const view = cell.view
|
||||
const options = { graph: this.graph }
|
||||
|
||||
if (view != null && typeof view === 'string') {
|
||||
const def = CellView.registry.get(view)
|
||||
if (def) {
|
||||
return new def(cell, options) // eslint-disable-line new-cap
|
||||
}
|
||||
|
||||
return CellView.registry.onNotFound(view)
|
||||
}
|
||||
|
||||
|
@ -847,7 +847,6 @@ export class NodeView<
|
||||
) {
|
||||
this.graph.model.startBatch('add-edge')
|
||||
const edgeView = this.createEdgeFromMagnet(magnet, x, y)
|
||||
edgeView.notifyMouseDown(e, x, y) // backwards compatibility events
|
||||
edgeView.setEventData(
|
||||
e,
|
||||
edgeView.prepareArrowheadDragging('target', {
|
||||
@ -858,6 +857,7 @@ export class NodeView<
|
||||
}),
|
||||
)
|
||||
this.setEventData<Partial<EventData.Magnet>>(e, { edgeView })
|
||||
edgeView.notifyMouseDown(e, x, y)
|
||||
}
|
||||
|
||||
protected getDefaultEdge(sourceView: CellView, sourceMagnet: Element) {
|
||||
|
45068
pnpm-lock.yaml
generated
45068
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
packages:
|
||||
- packages/*
|
||||
# - examples/*
|
||||
# - 'sites/*'
|
||||
- examples/*
|
||||
- 'sites/*'
|
||||
|
@ -2,7 +2,7 @@ import fs from 'fs'
|
||||
import path from 'path'
|
||||
import _ from 'lodash'
|
||||
import colors from 'colors/safe.js'
|
||||
import { terser } from 'rollup-plugin-terser'
|
||||
import terser from '@rollup/plugin-terser'
|
||||
import replace from '@rollup/plugin-replace'
|
||||
import resolve from '@rollup/plugin-node-resolve'
|
||||
import commonjs from '@rollup/plugin-commonjs'
|
||||
@ -37,8 +37,8 @@ function makeOutput() {
|
||||
return output
|
||||
}
|
||||
|
||||
export function config(config) {
|
||||
let { plugins = [], output, external = [], ...others } = config || {}
|
||||
export function config(config = {}) {
|
||||
let { plugins = [], output, external = [], ...others } = config
|
||||
if (output == null) {
|
||||
output = makeOutput()
|
||||
}
|
||||
@ -74,10 +74,10 @@ export function config(config) {
|
||||
preventAssignment: true,
|
||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||
}),
|
||||
terser(),
|
||||
terser({ sourceMap: true }),
|
||||
filesize({
|
||||
reporter: [
|
||||
function (options, bundle, result) {
|
||||
async (options, bundle, result) => {
|
||||
return import('boxen').then((mod) => {
|
||||
const boxen = mod.default
|
||||
const primaryColor = options.theme === 'dark' ? 'green' : 'black'
|
||||
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
(cd sites/x6-sites && yarn build)
|
@ -1,728 +0,0 @@
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([31f8960](https://github.com/antvis/x6/commit/31f8960e72b0567bb13683e51db8b97207604c0b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-05)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-03)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-11-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-10-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-09-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.3](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.2...@antv/x6-sites-demos-helper@1.2.3) (2021-09-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 change home path in speedup js ([#1369](https://github.com/antvis/x6/issues/1369)) ([a234833](https://github.com/antvis/x6/commit/a234833240bad1f7d51f0fadf8b9db9392c44064))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-09-22)
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.2](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.1...@antv/x6-sites-demos-helper@1.2.2) (2021-09-13)
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-06-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-31)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-31)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-31)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-18)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-18)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-05-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix lack of deps in demo ([a6232fc](https://github.com/antvis/x6/commit/a6232fc35934cb6b31e735af040fb8115813bb12))
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-04-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-20)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
## @antv/x6-sites-demos-helper [1.2.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.2.0...@antv/x6-sites-demos-helper@1.2.1) (2021-03-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 temporarily disable stackblitz ([d454ba2](https://github.com/antvis/x6/commit/d454ba2d4ae3e45ad2fabc8074c79121abd5de6b))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-03-02)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-22)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-20)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-09)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-07)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-07)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-04)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-03)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
# @antv/x6-sites-demos-helper [1.2.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@1.1.2...@antv/x6-sites-demos-helper@1.2.0) (2021-02-03)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add favicon for demos ([424662a](https://github.com/antvis/x6/commit/424662a9ccbbb21142b217bc256b9cc8242fb101))
|
||||
|
||||
## @antv/x6-sites-demos-helper [0.11.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.11.0...@antv/x6-sites-demos-helper@0.11.1) (2021-01-13)
|
||||
|
||||
# @antv/x6-sites-demos-helper [0.11.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.80...@antv/x6-sites-demos-helper@0.11.0) (2021-01-12)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ auto update dependencies in workspace ([c255b41](https://github.com/antvis/x6/commit/c255b410099c607f535fa359d66f61b4ddaf59d9))
|
||||
|
||||
# @antv/x6-sites-demos-helper [0.11.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.80...@antv/x6-sites-demos-helper@0.11.0) (2021-01-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ auto update dependencies in workspace ([c255b41](https://github.com/antvis/x6/commit/c255b410099c607f535fa359d66f61b4ddaf59d9))
|
||||
|
||||
## @antv/x6-sites-demos-helper [0.11.1](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.11.0...@antv/x6-sites-demos-helper@0.11.1) (2021-01-11)
|
||||
|
||||
# @antv/x6-sites-demos-helper [0.11.0](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.82...@antv/x6-sites-demos-helper@0.11.0) (2020-12-25)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ auto update dependencies in workspace ([c255b41](https://github.com/antvis/x6/commit/c255b410099c607f535fa359d66f61b4ddaf59d9))
|
||||
|
||||
## @antv/x6-sites-demos-helper [0.10.82](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.81...@antv/x6-sites-demos-helper@0.10.82) (2020-12-21)
|
||||
|
||||
## @antv/x6-sites-demos-helper [0.10.81](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.80...@antv/x6-sites-demos-helper@0.10.81) (2020-12-07)
|
||||
|
||||
## @antv/x6-sites-demos-helper [0.10.80](https://github.com/antvis/x6/compare/@antv/x6-sites-demos-helper@0.10.79...@antv/x6-sites-demos-helper@0.10.80) (2020-11-20)
|
||||
|
||||
|
||||
### chore
|
||||
|
||||
* 🛠️ init changelog ([6c38b3c](https://github.com/antvis/x6/commit/6c38b3c74c0d603b4e8a50c7ad32e38292d2639b))
|
||||
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
* force release 1.0
|
@ -1,128 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const fse = require('fs-extra')
|
||||
|
||||
module.exports = () => {
|
||||
if (this.cacheable) {
|
||||
this.cacheable()
|
||||
}
|
||||
|
||||
const repo = fs.realpathSync(process.cwd())
|
||||
const parts = repo.split('/')
|
||||
const index = parts.indexOf('sites')
|
||||
const dirname = parts.slice(index).join('/')
|
||||
const host = `https://github.com/antvis/X6/tree/master/${dirname}`
|
||||
|
||||
const pkg = fse.readJsonSync(path.join(repo, 'package.json'))
|
||||
|
||||
const excluedDeps = ['codesandbox', '@antv/x6-sites-demos-helper']
|
||||
const excludeDirs = ['node_modules']
|
||||
const excludeFiles = [
|
||||
'.env',
|
||||
'.DS_Store',
|
||||
'package.json',
|
||||
'yarn-error.log',
|
||||
'src/react-app-env.d.ts',
|
||||
'src/data.ts',
|
||||
'src/toolbar.css',
|
||||
'src/toolbar.tsx',
|
||||
]
|
||||
|
||||
const result = { files: {} }
|
||||
|
||||
function updatePackageJson() {
|
||||
delete pkg.name
|
||||
delete pkg.version
|
||||
delete pkg.private
|
||||
|
||||
excluedDeps.forEach((dep) => {
|
||||
delete pkg.dependencies[dep]
|
||||
delete pkg.devDependencies[dep]
|
||||
})
|
||||
|
||||
pkg.scripts = {
|
||||
start: 'react-scripts start',
|
||||
build: 'react-scripts build',
|
||||
test: 'react-scripts test',
|
||||
eject: 'react-scripts eject',
|
||||
}
|
||||
|
||||
result.files['package.json'] = {
|
||||
isBinary: false,
|
||||
content: JSON.stringify(pkg, null, 2),
|
||||
}
|
||||
}
|
||||
|
||||
function getEntry() {
|
||||
return `import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import App from './app'
|
||||
|
||||
ReactDOM.render(<App />, document.getElementById('root'))`
|
||||
}
|
||||
|
||||
function readFiles(dir, parent) {
|
||||
const files = fs.readdirSync(dir)
|
||||
if (files) {
|
||||
files.forEach((filename) => {
|
||||
const filepath = path.join(dir, filename)
|
||||
const child = path.join(parent || '', filename)
|
||||
|
||||
const stats = fs.statSync(filepath)
|
||||
if (stats) {
|
||||
if (stats.isDirectory() && !excludeDirs.includes(child)) {
|
||||
readFiles(filepath, child)
|
||||
} else if (stats.isFile() && !excludeFiles.includes(child)) {
|
||||
const key = path.relative(repo, filepath)
|
||||
let content = fs.readFileSync(filepath, { encoding: 'utf8' })
|
||||
if (child === 'src/index.tsx') {
|
||||
content = getEntry()
|
||||
}
|
||||
|
||||
result.files[key] = { content, isBinary: false }
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// stackblitz
|
||||
// ----------
|
||||
|
||||
function getStackblitzPrefillConfig() {
|
||||
const idx = parts.indexOf('packages')
|
||||
const title = parts.slice(idx + 1).join('/')
|
||||
const config = {
|
||||
title: title || '',
|
||||
description: '',
|
||||
template: 'create-react-app',
|
||||
dependencies: pkg.dependencies,
|
||||
files: {},
|
||||
}
|
||||
|
||||
Object.keys(result.files).forEach((name) => {
|
||||
const item = result.files[name]
|
||||
config.files[name] = item.content
|
||||
})
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
// return
|
||||
// ------
|
||||
|
||||
updatePackageJson()
|
||||
readFiles(repo)
|
||||
|
||||
return `
|
||||
export const host = '${host}'
|
||||
|
||||
export function getCodeSandboxParams () {
|
||||
return ${JSON.stringify(result)}
|
||||
}
|
||||
|
||||
export function getStackblitzPrefillConfig () {
|
||||
return ${JSON.stringify(getStackblitzPrefillConfig())}
|
||||
}
|
||||
`
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/x6-sites-demos-helper",
|
||||
"version": "2.0.0",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"bin": {
|
||||
"config": "./scripts/config.js",
|
||||
"static": "./scripts/static.js",
|
||||
"prepare": "./scripts/prepare.js",
|
||||
"speedup": "./scripts/speedup.js"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "rimraf es lib",
|
||||
"lint": "run-s lint:ts lint:style",
|
||||
"lint:ts": "eslint 'src/**/*.{js,ts}?(x)' --fix",
|
||||
"lint:style": "stylelint 'src/**/*.less' --syntax less --fix",
|
||||
"build:esm": "tsc --module esnext --target es2015 --outDir ./es",
|
||||
"build:cjs": "tsc --module commonjs --target es5 --outDir ./lib",
|
||||
"build:less": "node ./scripts/style",
|
||||
"build:watch": "run-s 'build:esm --w'",
|
||||
"build:watch:esm": "run-s 'build:esm --w'",
|
||||
"build:watch:cjs": "run-s 'build:cjs --w'",
|
||||
"build:dev": "run-p build:cjs build:esm build:less",
|
||||
"build": "run-p build:cjs build:esm build:less",
|
||||
"prebuild": "run-s lint clean"
|
||||
},
|
||||
"lint-staged": {
|
||||
"src/**/*.ts": [
|
||||
"eslint --fix"
|
||||
],
|
||||
"src/**/*.less": [
|
||||
"stylelint --syntax less --fix"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/icons": "^4.2.1",
|
||||
"@stackblitz/sdk": "^1.4.0",
|
||||
"antd": "^5.0.0",
|
||||
"chalk": "^4.1.0",
|
||||
"codesandbox": "^2.2.1",
|
||||
"folder-hash": "^3.3.2",
|
||||
"ora": "^5.0.0",
|
||||
"react-helmet": "^6.0.0",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"@types/react-helmet": "^6.0.0",
|
||||
"@types/node": "^16.9.1",
|
||||
"fs-extra": "^10.0.0",
|
||||
"less": "^4.1.1",
|
||||
"lint-staged": "^11.1.2",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^2.4.0",
|
||||
"pretty-quick": "^3.1.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"ts-node": "^10.2.1",
|
||||
"typescript": "^4.4.3"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
@ -1,288 +0,0 @@
|
||||
<div
|
||||
id="loading"
|
||||
style="
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 9999;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #fff;
|
||||
border: 1px solid #f0f0f0;
|
||||
"
|
||||
>
|
||||
<style>
|
||||
.loader {
|
||||
--duration: 3s;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 0 16px;
|
||||
}
|
||||
.loader:before {
|
||||
content: ' ';
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
display: block;
|
||||
background: #ff700a;
|
||||
top: 37px;
|
||||
left: 19px;
|
||||
-webkit-transform: translate(-18px, -18px);
|
||||
transform: translate(-18px, -18px);
|
||||
-webkit-animation: dotRect var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
animation: dotRect var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86)
|
||||
infinite;
|
||||
}
|
||||
.loader svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.loader svg rect,
|
||||
.loader svg polygon,
|
||||
.loader svg circle {
|
||||
fill: none;
|
||||
stroke-width: 10px;
|
||||
stroke-linejoin: round;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
.loader svg polygon {
|
||||
stroke-dasharray: 145 76 145 76;
|
||||
stroke-dashoffset: 0;
|
||||
-webkit-animation: pathTriangle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
animation: pathTriangle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
}
|
||||
.loader svg rect {
|
||||
stroke-dasharray: 192 64 192 64;
|
||||
stroke-dashoffset: 0;
|
||||
-webkit-animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86)
|
||||
infinite;
|
||||
animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
}
|
||||
.loader svg circle {
|
||||
stroke-dasharray: 150 50 150 50;
|
||||
stroke-dashoffset: 75;
|
||||
-webkit-animation: pathCircle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
animation: pathCircle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
}
|
||||
.loader.triangle {
|
||||
width: 48px;
|
||||
}
|
||||
.loader.triangle:before {
|
||||
left: 21px;
|
||||
-webkit-transform: translate(-10px, -18px);
|
||||
transform: translate(-10px, -18px);
|
||||
-webkit-animation: dotTriangle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
animation: dotTriangle var(--duration)
|
||||
cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
}
|
||||
@-webkit-keyframes pathTriangle {
|
||||
33% {
|
||||
stroke-dashoffset: 74;
|
||||
}
|
||||
66% {
|
||||
stroke-dashoffset: 147;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 221;
|
||||
}
|
||||
}
|
||||
@keyframes pathTriangle {
|
||||
33% {
|
||||
stroke-dashoffset: 74;
|
||||
}
|
||||
66% {
|
||||
stroke-dashoffset: 147;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 221;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes dotTriangle {
|
||||
33% {
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
66% {
|
||||
-webkit-transform: translate(10px, -18px);
|
||||
transform: translate(10px, -18px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translate(-10px, -18px);
|
||||
transform: translate(-10px, -18px);
|
||||
}
|
||||
}
|
||||
@keyframes dotTriangle {
|
||||
33% {
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
66% {
|
||||
-webkit-transform: translate(10px, -18px);
|
||||
transform: translate(10px, -18px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translate(-10px, -18px);
|
||||
transform: translate(-10px, -18px);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes pathRect {
|
||||
25% {
|
||||
stroke-dashoffset: 64;
|
||||
}
|
||||
50% {
|
||||
stroke-dashoffset: 128;
|
||||
}
|
||||
75% {
|
||||
stroke-dashoffset: 192;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 256;
|
||||
}
|
||||
}
|
||||
@keyframes pathRect {
|
||||
25% {
|
||||
stroke-dashoffset: 64;
|
||||
}
|
||||
50% {
|
||||
stroke-dashoffset: 128;
|
||||
}
|
||||
75% {
|
||||
stroke-dashoffset: 192;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 256;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes dotRect {
|
||||
25% {
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: translate(18px, -18px);
|
||||
transform: translate(18px, -18px);
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translate(0, -36px);
|
||||
transform: translate(0, -36px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translate(-18px, -18px);
|
||||
transform: translate(-18px, -18px);
|
||||
}
|
||||
}
|
||||
@keyframes dotRect {
|
||||
25% {
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: translate(18px, -18px);
|
||||
transform: translate(18px, -18px);
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translate(0, -36px);
|
||||
transform: translate(0, -36px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translate(-18px, -18px);
|
||||
transform: translate(-18px, -18px);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes pathCircle {
|
||||
25% {
|
||||
stroke-dashoffset: 125;
|
||||
}
|
||||
50% {
|
||||
stroke-dashoffset: 175;
|
||||
}
|
||||
75% {
|
||||
stroke-dashoffset: 225;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 275;
|
||||
}
|
||||
}
|
||||
@keyframes pathCircle {
|
||||
25% {
|
||||
stroke-dashoffset: 125;
|
||||
}
|
||||
50% {
|
||||
stroke-dashoffset: 175;
|
||||
}
|
||||
75% {
|
||||
stroke-dashoffset: 225;
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 275;
|
||||
}
|
||||
}
|
||||
.loading-text {
|
||||
text-align: center;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.1em;
|
||||
color: #666;
|
||||
}
|
||||
</style>
|
||||
<div
|
||||
style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin: -50px 0 0 -120px;
|
||||
"
|
||||
>
|
||||
<div class="loader">
|
||||
<svg viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<linearGradient
|
||||
id="gradient"
|
||||
x1=".004%"
|
||||
x2="100.131%"
|
||||
y1="49.993%"
|
||||
y2="49.993%"
|
||||
>
|
||||
<stop offset="0%" stop-color="#6500FF"></stop>
|
||||
<stop offset="16%" stop-color="#6A09FF"></stop>
|
||||
<stop offset="43%" stop-color="#7623FF"></stop>
|
||||
<stop offset="77%" stop-color="#8A4CFF"></stop>
|
||||
<stop offset="99%" stop-color="#996BFF"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<circle
|
||||
id="test"
|
||||
cx="40"
|
||||
cy="40"
|
||||
r="32"
|
||||
stroke="url(#gradient)"
|
||||
></circle>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="loader triangle">
|
||||
<svg viewBox="0 0 86 80">
|
||||
<polygon points="43 8 79 72 7 72" stroke="url(#gradient)"></polygon>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="loader">
|
||||
<svg viewBox="0 0 80 80">
|
||||
<rect x="8" y="8" width="64" height="64" stroke="url(#gradient)"></rect>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="loading-text">
|
||||
<p>Loading...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -1,49 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const path = require('path')
|
||||
const fse = require('fs-extra')
|
||||
|
||||
const cwd = process.cwd()
|
||||
const parts = cwd.split('/')
|
||||
const index = parts.indexOf('packages')
|
||||
if (index > 0) {
|
||||
// rename
|
||||
const name = parts.slice(index + 1).join('.')
|
||||
const pkgpath = path.join(cwd, 'package.json')
|
||||
const pkg = fse.readJsonSync(pkgpath)
|
||||
if (pkg) {
|
||||
pkg.name = `@antv/x6-sites-demos-${name}`
|
||||
}
|
||||
fse.writeJsonSync(pkgpath, pkg, { spaces: 2 })
|
||||
|
||||
// add dependencies to root package.json
|
||||
const root = parts.slice(0, index).join('/')
|
||||
const wspath = path.join(root, 'package.json')
|
||||
const workspace = fse.readJsonSync(wspath)
|
||||
const dependencies = workspace.dependencies || {}
|
||||
let updated = false
|
||||
|
||||
function updateWorkspace(deps) {
|
||||
if (deps != null) {
|
||||
Object.keys(deps).forEach((name) => {
|
||||
if (!dependencies[name]) {
|
||||
dependencies[name] = deps[name]
|
||||
updated = true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
updateWorkspace(pkg.dependencies)
|
||||
updateWorkspace(pkg.devDependencies)
|
||||
updateWorkspace(pkg.peerDependencies)
|
||||
updateWorkspace(pkg.optionalDependencies)
|
||||
|
||||
if (updated) {
|
||||
workspace.dependencies = {}
|
||||
Object.keys(dependencies)
|
||||
.sort()
|
||||
.forEach((name) => (workspace.dependencies[name] = dependencies[name]))
|
||||
fse.writeJsonSync(wspath, workspace, { spaces: 2 })
|
||||
}
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const repo = fs.realpathSync(process.cwd())
|
||||
const parts = repo.split('/')
|
||||
const index = parts.indexOf('packages')
|
||||
const root = index >= 0 ? parts.slice(0, index).join('/') : repo
|
||||
const configDir = 'node_modules/react-scripts/config'
|
||||
const configFile = path.join(root, configDir, 'webpack.config.js')
|
||||
let content = fs.readFileSync(configFile, { encoding: 'utf8' })
|
||||
const esbuild = `const ESBuildPlugin = require('esbuild-webpack-plugin').default;`
|
||||
|
||||
// 修改 node_modules 下 react-scripts 的配置文件来提升 DEMO 的构建速度
|
||||
if (content.indexOf(esbuild) === -1) {
|
||||
content =
|
||||
esbuild +
|
||||
content
|
||||
// optimization
|
||||
.replace(
|
||||
/(new\s+TerserPlugin[\s\S]*)(new\s+OptimizeCSSAssetsPlugin)/gm,
|
||||
`new ESBuildPlugin(),\n $2`,
|
||||
)
|
||||
// 禁止生成 manifest
|
||||
.replace('new ManifestPlugin({', 'false && new ManifestPlugin({')
|
||||
// 禁止生成 worker
|
||||
.replace(
|
||||
'new WorkboxWebpackPlugin.GenerateSW({',
|
||||
`false && new WorkboxWebpackPlugin.GenerateSW({`,
|
||||
)
|
||||
|
||||
if (process.env.CI !== 'true') {
|
||||
// 本地构建时,将 node_modules/.cache 缓存文件保存为全局缓存。
|
||||
content = content
|
||||
.replace(
|
||||
'module.exports =',
|
||||
`
|
||||
const appName = paths.appPath.replace(/\\//g, '.');
|
||||
const webpackCacheDir = path.join(process.env['HOME'], '.webpack/cache', appName);
|
||||
module.exports =`,
|
||||
)
|
||||
.replace(
|
||||
/cacheDirectory:\s*true,/g,
|
||||
`cacheDirectory: path.join(webpackCacheDir, 'babel-loader'),`,
|
||||
)
|
||||
.replace(
|
||||
'eslintPath: ',
|
||||
`cache: path.join(webpackCacheDir, 'eslint-loader'),
|
||||
eslintPath: `,
|
||||
)
|
||||
}
|
||||
|
||||
fs.writeFileSync(configFile, content, { encoding: 'utf8' })
|
||||
}
|
@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const fse = require('fs-extra')
|
||||
const ora = require('ora')
|
||||
const cp = require('child_process')
|
||||
const chalk = require('chalk')
|
||||
const { hashElement } = require('folder-hash')
|
||||
|
||||
const repo = fs.realpathSync(process.cwd())
|
||||
const parts = repo.split('/')
|
||||
const index = parts.indexOf('packages')
|
||||
const dir = parts.slice(index + 1).join('/')
|
||||
const name = parts.slice(index + 1).join('.')
|
||||
const root = parts.slice(0, index).join('/')
|
||||
const home = path.resolve(root, '../../')
|
||||
const staticDir = path.join(root, '../../sites/x6-sites/static/demos')
|
||||
const sourceDir = path.join(repo, 'build')
|
||||
const targetDir = path.join(staticDir, dir)
|
||||
const indexFile = path.join(targetDir, 'index.html')
|
||||
const regex = /<meta\s+name="hash"\s+content="(.*?)"\s*\/>/
|
||||
const readfile = (file) => fs.readFileSync(file, { encoding: 'utf8' })
|
||||
const writefile = (file, content) =>
|
||||
fs.writeFileSync(file, content, { encoding: 'utf8' })
|
||||
const loading = readfile(path.join(__dirname, './loading.html'))
|
||||
|
||||
function getHash() {
|
||||
return Promise.all([
|
||||
hashElement(repo, {
|
||||
folders: {
|
||||
include: ['src'],
|
||||
exclude: ['.*', 'node_modules', 'build'],
|
||||
},
|
||||
}),
|
||||
hashElement(path.join(home, 'sites/x6-sites-demos-helper'), {
|
||||
folders: {
|
||||
include: ['src', 'loaders'],
|
||||
exclude: ['.*', 'node_modules', 'es', 'lib', 'scripts'],
|
||||
},
|
||||
}),
|
||||
hashElement(path.join(home, 'packages/x6/package.json')),
|
||||
])
|
||||
.then((arr) => arr.map((item) => item.hash).join(' '))
|
||||
.then((hash) => Buffer.from(hash).toString('base64'))
|
||||
}
|
||||
|
||||
function exec(hashcode) {
|
||||
let changed = true
|
||||
if (fs.existsSync(indexFile)) {
|
||||
const content = readfile(indexFile)
|
||||
const match = content.match(regex)
|
||||
const previous = match && match[1]
|
||||
changed = previous !== hashcode
|
||||
}
|
||||
|
||||
const pkg = `@antv/x6-sites-demos-${name}`
|
||||
const msg = `${chalk.green('✔')} Deployed "${pkg}"`
|
||||
|
||||
if (changed) {
|
||||
const spinner = ora(`Deploying "${pkg}"`).start()
|
||||
cp.exec('yarn build', { cwd: repo }, (err, stdout) => {
|
||||
if (err) {
|
||||
spinner.stop()
|
||||
console.error(stdout)
|
||||
} else {
|
||||
fse.emptyDirSync(targetDir)
|
||||
fse.moveSync(sourceDir, targetDir, { overwrite: true })
|
||||
|
||||
const raw = readfile(indexFile)
|
||||
const title = `<meta name="hash" content="${hashcode}"/><title>${dir}</title>`
|
||||
const wrap = '<div id="root"></div>'
|
||||
const html = raw
|
||||
.replace(/<title>(.*)<\/title>/, title)
|
||||
.replace(wrap, `${wrap}\n${loading}`)
|
||||
|
||||
writefile(indexFile, html)
|
||||
spinner.stop()
|
||||
console.log(msg)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log(msg)
|
||||
}
|
||||
}
|
||||
|
||||
getHash().then(exec)
|
@ -1,59 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const fse = require('fs-extra')
|
||||
const cp = require('child_process')
|
||||
const os = require('os')
|
||||
|
||||
function compile(source, target) {
|
||||
let cmd = './node_modules/.bin/lessc'
|
||||
if (os.type() === 'Windows_NT') {
|
||||
const cwd = process.cwd()
|
||||
cmd = path.join(cwd, './node_modules/.bin/lessc.cmd')
|
||||
}
|
||||
cp.execFileSync(cmd, [source, target])
|
||||
}
|
||||
|
||||
const cwd = process.cwd()
|
||||
const es = path.join(cwd, 'es')
|
||||
const lib = path.join(cwd, 'lib')
|
||||
const src = path.join(cwd, 'src')
|
||||
|
||||
function toCSSPath(source) {
|
||||
const dir = path.dirname(source)
|
||||
const file = path.basename(source, '.less') + '.css'
|
||||
return path.join(dir, file)
|
||||
}
|
||||
|
||||
// Copy less files
|
||||
function readdir(dir) {
|
||||
const stat = fs.statSync(dir)
|
||||
if (stat) {
|
||||
if (stat.isDirectory()) {
|
||||
fs.readdir(dir, (err, files) => {
|
||||
files.forEach((file) => {
|
||||
readdir(path.join(dir, file))
|
||||
})
|
||||
})
|
||||
} else {
|
||||
const ext = path.extname(dir)
|
||||
if (ext === '.less' || ext === '.css') {
|
||||
fse.copySync(dir, path.join(es, path.relative(src, dir)))
|
||||
fse.copySync(dir, path.join(lib, path.relative(src, dir)))
|
||||
}
|
||||
|
||||
if (ext === '.less') {
|
||||
let source = path.join(es, path.relative(src, dir))
|
||||
let target = toCSSPath(source)
|
||||
compile(dir, target)
|
||||
|
||||
source = path.join(lib, path.relative(src, dir))
|
||||
target = toCSSPath(source)
|
||||
compile(dir, target)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
readdir(src)
|
@ -1,2 +0,0 @@
|
||||
export * from './toolbar'
|
||||
export * from './wrap'
|
@ -1,47 +0,0 @@
|
||||
.demo-toolbar {
|
||||
display: block;
|
||||
padding: 12px 8px;
|
||||
border-bottom: 1px dashed #f0f0f0;
|
||||
opacity: 0.7;
|
||||
transition: opacity 0.3s;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
& > * {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
form {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
form:active,
|
||||
form:focus,
|
||||
button:active,
|
||||
button:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 0;
|
||||
background: none;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.anticon {
|
||||
margin: 0 8px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.anticon:hover {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
import React from 'react'
|
||||
import Icon, {
|
||||
ReloadOutlined,
|
||||
GithubOutlined,
|
||||
CodeSandboxOutlined,
|
||||
} from '@ant-design/icons'
|
||||
import { Tooltip } from 'antd'
|
||||
// import stackblitzSdk from '@stackblitz/sdk'
|
||||
import { getParameters } from 'codesandbox/lib/api/define'
|
||||
import './index.css'
|
||||
|
||||
// eslint-disable-next-line
|
||||
const repo = require('../../loaders/repo.js!./data.js')
|
||||
|
||||
const iconOpenInNewWindow: React.FC = () => (
|
||||
<svg
|
||||
width="15"
|
||||
height="12"
|
||||
viewBox="0 0 15 12"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M14.4545 0H10.5C10.1988 0 10 0.198754 10 0.5C10 0.801246 10.1988 1 10.5 1H13L9.5 4.5L10.5 5.5L14 2V4.5C14 4.80125 14.1988 5 14.5 5C14.8012 5 15 4.80125 15 4.5V0.545455C15 0.244208 14.7558 0 14.4545 0ZM1.73333 1H8.00001V1.86667H1.73333C1.25469 1.86667 0.866667 2.25469 0.866667 2.73333V9.32003C0.866667 9.79868 1.25469 10.1867 1.73333 10.1867H12.1333C12.612 10.1867 13 9.79868 13 9.32004V7.00003H13.8667V9.32004C13.8667 10.2773 13.0906 11.0534 12.1333 11.0534H1.73333C0.776041 11.0534 0 10.2773 0 9.32003V2.73333C0 1.77604 0.77604 1 1.73333 1Z"
|
||||
fill="currentcolor"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
|
||||
// eslint-disable-next-line react/prefer-stateless-function
|
||||
export class Toolbar extends React.Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="demo-toolbar">
|
||||
<Tooltip
|
||||
placement="bottomLeft"
|
||||
arrowPointAtCenter
|
||||
title="重新加载"
|
||||
mouseEnterDelay={0.5}
|
||||
>
|
||||
<ReloadOutlined
|
||||
onClick={() => {
|
||||
window.location.reload()
|
||||
}}
|
||||
/>
|
||||
</Tooltip>
|
||||
|
||||
{window.frameElement && (
|
||||
<Tooltip
|
||||
placement="bottomLeft"
|
||||
arrowPointAtCenter
|
||||
title="在新窗口打开"
|
||||
mouseEnterDelay={0.5}
|
||||
>
|
||||
<a
|
||||
href={`${window.location.href}`}
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
<Icon component={iconOpenInNewWindow} />
|
||||
</a>
|
||||
</Tooltip>
|
||||
)}
|
||||
|
||||
<Tooltip
|
||||
placement="bottomLeft"
|
||||
arrowPointAtCenter
|
||||
title="在 Github 中查看"
|
||||
mouseEnterDelay={0.5}
|
||||
>
|
||||
<a href={`${repo.host}`} rel="noopener noreferrer" target="_blank">
|
||||
<GithubOutlined />
|
||||
</a>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip
|
||||
arrowPointAtCenter
|
||||
placement="bottomLeft"
|
||||
title="在 CodeSandbox 中打开"
|
||||
mouseEnterDelay={0.5}
|
||||
>
|
||||
<form
|
||||
action="https://codesandbox.io/api/v1/sandboxes/define"
|
||||
method="POST"
|
||||
target="_blank"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="parameters"
|
||||
value={getParameters(repo.getCodeSandboxParams())}
|
||||
/>
|
||||
<button type="submit">
|
||||
<CodeSandboxOutlined />
|
||||
</button>
|
||||
</form>
|
||||
</Tooltip>
|
||||
|
||||
{/* <Tooltip
|
||||
placement="bottomLeft"
|
||||
arrowPointAtCenter
|
||||
title="在 StackBlitz 中打开"
|
||||
mouseEnterDelay={0.5}
|
||||
>
|
||||
<ThunderboltOutlined
|
||||
onClick={() => {
|
||||
stackblitzSdk.openProject(repo.getStackblitzPrefillConfig(), {
|
||||
openFile: 'src/app.tsx',
|
||||
})
|
||||
}}
|
||||
/>
|
||||
</Tooltip> */}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
interface Window {
|
||||
ResizeObserver: any
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
.demo-wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 1px solid #f0f0f0;
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
import React, { PropsWithChildren } from 'react'
|
||||
import { Toolbar } from '../toolbar'
|
||||
import './content.css'
|
||||
|
||||
export class Content extends React.Component<
|
||||
PropsWithChildren<Content.Props>,
|
||||
Content.State
|
||||
> {
|
||||
private container: HTMLDivElement
|
||||
|
||||
constructor(props: Content.Props) {
|
||||
super(props)
|
||||
Content.restoreIframeSize()
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.updateIframeSize()
|
||||
|
||||
if (window.ResizeObserver) {
|
||||
const ro = new window.ResizeObserver(() => {
|
||||
this.updateIframeSize()
|
||||
})
|
||||
ro.observe(this.container)
|
||||
} else {
|
||||
window.addEventListener('resize', () => this.updateIframeSize())
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
const loading = document.getElementById('loading')
|
||||
if (loading && loading.parentNode) {
|
||||
loading.parentNode.removeChild(loading)
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
updateIframeSize() {
|
||||
const iframe = window.frameElement as HTMLIFrameElement
|
||||
if (iframe) {
|
||||
const height = this.container.scrollHeight || this.container.clientHeight
|
||||
|
||||
iframe.style.width = '100%'
|
||||
iframe.style.height = `${height + 16}px`
|
||||
iframe.style.border = '0'
|
||||
iframe.style.overflow = 'hidden'
|
||||
Content.saveIframeSize()
|
||||
}
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="demo-wrap" ref={this.refContainer}>
|
||||
<Toolbar />
|
||||
{this.props.children}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Content {
|
||||
export interface Props {}
|
||||
export interface State {}
|
||||
}
|
||||
|
||||
export namespace Content {
|
||||
const STORE_KEY = window.location.pathname
|
||||
const STORE_ROOT = 'x6-iframe-size'
|
||||
|
||||
function getData() {
|
||||
const raw = localStorage.getItem(STORE_ROOT)
|
||||
let data
|
||||
if (raw) {
|
||||
try {
|
||||
data = JSON.parse(raw)
|
||||
} catch (error) {
|
||||
// pass
|
||||
}
|
||||
} else {
|
||||
data = {}
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
export function saveIframeSize() {
|
||||
const iframe = window.frameElement as HTMLIFrameElement
|
||||
if (iframe) {
|
||||
const style = iframe.style
|
||||
const size = { width: style.width, height: style.height }
|
||||
const data = getData()
|
||||
data[STORE_KEY] = size
|
||||
localStorage.setItem(STORE_ROOT, JSON.stringify(data))
|
||||
}
|
||||
}
|
||||
|
||||
export function restoreIframeSize() {
|
||||
const iframe = window.frameElement as HTMLIFrameElement
|
||||
if (iframe) {
|
||||
const data = getData()
|
||||
const size = data[STORE_KEY]
|
||||
if (size) {
|
||||
iframe.style.width = size.width || '100%'
|
||||
iframe.style.height = size.height || 'auto'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
import React, { PropsWithChildren } from 'react'
|
||||
import { Alert } from 'antd'
|
||||
import { Helmet } from 'react-helmet'
|
||||
import { Content } from './content'
|
||||
|
||||
export const Wrap: React.FC<PropsWithChildren> = ({ children }) => (
|
||||
<Alert.ErrorBoundary>
|
||||
{process.env.NODE_ENV !== 'development' && (
|
||||
<Helmet>
|
||||
<link rel="icon" href="/favicon-32x32.png" type="image/png" />
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="48x48"
|
||||
href="/icons/icon-48x48.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="72x72"
|
||||
href="/icons/icon-72x72.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="96x96"
|
||||
href="/icons/icon-96x96.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="144x144"
|
||||
href="/icons/icon-144x144.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="192x192"
|
||||
href="/icons/icon-192x192.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="256x256"
|
||||
href="/icons/icon-256x256.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="384x384"
|
||||
href="/icons/icon-384x384.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="512x512"
|
||||
href="/icons/icon-512x512.png"
|
||||
/>
|
||||
<link rel="manifest" href="/manifest.webmanifest" />
|
||||
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
|
||||
</Helmet>
|
||||
)}
|
||||
|
||||
<Content>{children}</Content>
|
||||
</Alert.ErrorBoundary>
|
||||
)
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/x6-sites-demos",
|
||||
"version": "2.0.0",
|
||||
"workspaces": [
|
||||
"packages/**/*"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "yarn workspaces run build",
|
||||
"deploy": "yarn speedup && yarn workspaces run deploy",
|
||||
"deploy1": "yarn speedup && wsrun -y=3 -c deploy",
|
||||
"deploy2": "yarn speedup && ultra -r --concurrency '3' --silent deploy",
|
||||
"clean": "rimraf **/node_modules"
|
||||
},
|
||||
"dependencies": {
|
||||
"@antv/x6": "2.0.0-beta.3",
|
||||
"@antv/x6-sites-demos-helper": "2.x",
|
||||
"@antv/x6-vue-shape": "2.0.0-beta.1",
|
||||
"@typescript-eslint/eslint-plugin": "^4.18.0",
|
||||
"@typescript-eslint/parser": "^4.18.0",
|
||||
"@vue/cli-plugin-babel": "~4.5.11",
|
||||
"@vue/cli-plugin-eslint": "~4.5.11",
|
||||
"@vue/cli-plugin-typescript": "~4.5.11",
|
||||
"@vue/cli-service": "~4.5.11",
|
||||
"@vue/compiler-sfc": "^3.0.0",
|
||||
"@vue/eslint-config-typescript": "^7.0.0",
|
||||
"core-js": "^3.6.5",
|
||||
"element-plus": "^2.2.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-vue": "^7.0.0",
|
||||
"typescript": "~4.1.5",
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
GENERATE_SOURCEMAP=false
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
PUBLIC_URL='./'
|
@ -1,24 +0,0 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
react-app-env.d.ts
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
@ -1,41 +0,0 @@
|
||||
{
|
||||
"name": "@antv/x6-sites-demos-api.graph.async",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@antv/x6": "^2.x",
|
||||
"@antv/x6-sites-demos-helper": "2.x",
|
||||
"antd": "^4.4.2",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-scripts": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"typescript": "^4.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"deploy": "yarn -s prepare && yarn -s static",
|
||||
"prestart": "yarn prepare"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript> You need to enable JavaScript to run this app. </noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,56 +0,0 @@
|
||||
.app {
|
||||
font-family: sans-serif;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
padding: 16px 8px;
|
||||
}
|
||||
|
||||
.app-left {
|
||||
width: 336px;
|
||||
bottom: 0;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.app-content {
|
||||
flex: 1;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ant-card {
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
}
|
||||
|
||||
.ant-card-head-title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ant-row {
|
||||
margin: 16px 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.slider-value {
|
||||
background: #eee;
|
||||
color: #333333;
|
||||
padding: 3px 7px;
|
||||
border-radius: 10px;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
#elapsed {
|
||||
color: #52c41a;
|
||||
background: #f6ffed;
|
||||
border-color: #b7eb8f;
|
||||
font-variant: tabular-nums;
|
||||
padding: 0 7px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
border-radius: 2px;
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph, Cell } from '@antv/x6'
|
||||
import { Settings, State, defaults } from './settings'
|
||||
import './shapes'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private container: HTMLDivElement
|
||||
private graph: Graph
|
||||
|
||||
componentDidMount() {
|
||||
this.graph = new Graph({
|
||||
container: this.container,
|
||||
height: 200,
|
||||
grid: {
|
||||
visible: true,
|
||||
},
|
||||
})
|
||||
this.onChanged(defaults)
|
||||
}
|
||||
|
||||
onChanged = (settgins: State) => {
|
||||
const node = this.graph.createNode({ shape: 'performance_node' })
|
||||
const edge = this.graph.createEdge({ shape: 'performance_edge' })
|
||||
const cells: Cell[] = []
|
||||
|
||||
Array.from({ length: settgins.count / 2 }).forEach((_, n) => {
|
||||
const a = node
|
||||
.clone()
|
||||
.position(n * 110 + 20, 20)
|
||||
.attr('label/text', n + 1)
|
||||
const b = node
|
||||
.clone()
|
||||
.position(n * 100 + 20, 150)
|
||||
.attr('label/text', n + 1 + settgins.count / 2)
|
||||
const ab = edge.clone().setSource(a).setTarget(b)
|
||||
cells.push(a, b, ab)
|
||||
})
|
||||
|
||||
const startTime = new Date().getTime()
|
||||
const showResult = () => {
|
||||
const duration = (new Date().getTime() - startTime) / 1000
|
||||
const elapsed = document.getElementById('elapsed')!
|
||||
|
||||
elapsed.innerText = `render ${settgins.count} nodes and ${
|
||||
settgins.count / 2
|
||||
} edges in ${duration}s`
|
||||
}
|
||||
|
||||
this.graph.resize((settgins.count / 2) * 110)
|
||||
this.graph.setAsync(settgins.async)
|
||||
this.graph.resetCells(cells)
|
||||
if (settgins.async) {
|
||||
this.graph.on('render:done', showResult)
|
||||
} else {
|
||||
showResult()
|
||||
}
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div className="app-left">
|
||||
<Settings onChange={this.onChanged} />
|
||||
</div>
|
||||
<div className="app-content">
|
||||
<div ref={this.refContainer} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import { Wrap } from '@antv/x6-sites-demos-helper'
|
||||
import App from './app'
|
||||
|
||||
ReactDOM.render(
|
||||
<Wrap>
|
||||
<App />
|
||||
</Wrap>,
|
||||
document.getElementById('root'),
|
||||
)
|
@ -1,72 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Switch, Slider, Card, Row, Col } from 'antd'
|
||||
|
||||
export interface Props {
|
||||
onChange: (state: State) => void
|
||||
}
|
||||
|
||||
export interface State {
|
||||
count: number
|
||||
async: boolean
|
||||
}
|
||||
|
||||
export const defaults: State = {
|
||||
count: 500,
|
||||
async: true,
|
||||
}
|
||||
|
||||
export class Settings extends React.Component<Props, State> {
|
||||
state: State = defaults
|
||||
|
||||
notifyChange() {
|
||||
this.props.onChange(this.state)
|
||||
}
|
||||
|
||||
onCountChanged = (count: number) => {
|
||||
this.setState({ count }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onAsyncChanged = (async: boolean) => {
|
||||
this.setState({ async }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Card
|
||||
title="Settings"
|
||||
size="small"
|
||||
bordered={false}
|
||||
style={{ width: 320 }}
|
||||
>
|
||||
<Row align="middle">
|
||||
<Col span={5}>count</Col>
|
||||
<Col span={14}>
|
||||
<Slider
|
||||
min={10}
|
||||
max={5000}
|
||||
step={1}
|
||||
value={this.state.count}
|
||||
onChange={this.onCountChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.count}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={5}>async</Col>
|
||||
<Col span={14}>
|
||||
<Switch checked={this.state.async} onChange={this.onAsyncChanged} />
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={24} id="elapsed"></Col>
|
||||
</Row>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
import { Graph, Color } from '@antv/x6'
|
||||
|
||||
const color1 = Color.randomHex()
|
||||
const color2 = Color.randomHex()
|
||||
|
||||
Graph.registerNode(
|
||||
'performance_node',
|
||||
{
|
||||
width: 80,
|
||||
height: 30,
|
||||
zIndex: 2,
|
||||
markup: [
|
||||
{
|
||||
tagName: 'rect',
|
||||
selector: 'body',
|
||||
// 在 Markup 中定义生命周期中不变的原生属性,不能定义特殊属性
|
||||
attrs: {
|
||||
stroke: color1,
|
||||
strokeWidth: 2,
|
||||
fill: Color.darken(color1, 40),
|
||||
},
|
||||
},
|
||||
{
|
||||
tagName: 'text',
|
||||
selector: 'label',
|
||||
attrs: {
|
||||
fill: Color.invert(color1, true),
|
||||
},
|
||||
},
|
||||
],
|
||||
attrs: {
|
||||
body: {
|
||||
// 使用 ref-xxx 属性时,只要没有同时定义 ref 属性,所有计算都是纯 JavaScript 计算,
|
||||
// 因此计算非常快;一旦定义了 ref 属性,就需要先基于浏览器的包围盒计算拿到 ref 指代
|
||||
// 元素的包围盒,计算开销相对较大。
|
||||
refWidth: '100%',
|
||||
refHeight: '100%',
|
||||
},
|
||||
label: {
|
||||
refX: '50%',
|
||||
refY: '50%',
|
||||
fontSize: 12,
|
||||
// 尽量避免使用 `xAlign` 和 `yAlign` 属性,因为这两个属性的计算首先需要计算
|
||||
// <SVGText> 元素的包围盒,通常浏览器的包围盒计算都不是那么快。
|
||||
textAnchor: 'middle',
|
||||
textVerticalAnchor: 'middle',
|
||||
},
|
||||
},
|
||||
},
|
||||
true,
|
||||
)
|
||||
Graph.registerEdge(
|
||||
'performance_edge',
|
||||
{
|
||||
zIndex: 1,
|
||||
markup: [
|
||||
{
|
||||
tagName: 'path',
|
||||
selector: 'wrap',
|
||||
attrs: {
|
||||
fill: 'none',
|
||||
cursor: 'pointer',
|
||||
stroke: 'transparent',
|
||||
strokeWidth: 10,
|
||||
strokeLinecap: 'round',
|
||||
},
|
||||
},
|
||||
{
|
||||
tagName: 'path',
|
||||
selector: 'line',
|
||||
},
|
||||
],
|
||||
attrs: {
|
||||
wrap: {
|
||||
connection: true,
|
||||
},
|
||||
line: {
|
||||
connection: true,
|
||||
stroke: color2,
|
||||
strokeWidth: 1,
|
||||
targetMarker: 'classic',
|
||||
},
|
||||
},
|
||||
},
|
||||
true,
|
||||
)
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"isolatedModules": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strictPropertyInitialization": false,
|
||||
"noEmit": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": true,
|
||||
"noEmitOnError": true,
|
||||
"noUnusedLocals": true,
|
||||
"strictNullChecks": true,
|
||||
"resolveJsonModule": true,
|
||||
"experimentalDecorators": true,
|
||||
"jsx": "react",
|
||||
"target": "es5",
|
||||
"lib": ["dom", "es2015"]
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
GENERATE_SOURCEMAP=false
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
PUBLIC_URL='./'
|
@ -1,24 +0,0 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
react-app-env.d.ts
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
@ -1,42 +0,0 @@
|
||||
{
|
||||
"name": "@antv/x6-sites-demos-api.graph.auto-resize",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@antv/x6-react-components": "^2.x",
|
||||
"@antv/x6": "^2.x",
|
||||
"@antv/x6-sites-demos-helper": "2.x",
|
||||
"antd": "^4.4.2",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-scripts": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"typescript": "^4.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"deploy": "yarn -s prepare && yarn -s static",
|
||||
"prestart": "yarn prepare"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript> You need to enable JavaScript to run this app. </noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,19 +0,0 @@
|
||||
.app {
|
||||
font-family: sans-serif;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
padding: 16px 8px;
|
||||
}
|
||||
|
||||
.app-content {
|
||||
flex: 1;
|
||||
height: 240px;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
}
|
||||
|
||||
.x6-split-box-horizontal > .x6-split-box-resizer,
|
||||
.x6-split-box-vertical > .x6-split-box-resizer {
|
||||
background: #ffe58f;
|
||||
}
|
@ -1,104 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph } from '@antv/x6'
|
||||
import { SplitBox } from '@antv/x6-react-components'
|
||||
import '@antv/x6-react-components/es/split-box/style/index.css'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private graphContainer1: HTMLDivElement
|
||||
private graphContainer2: HTMLDivElement
|
||||
|
||||
componentDidMount() {
|
||||
const graph1 = new Graph({
|
||||
container: this.graphContainer1,
|
||||
background: {
|
||||
color: '#f5f5f5',
|
||||
},
|
||||
grid: true,
|
||||
scroller: true,
|
||||
autoResize: true,
|
||||
})
|
||||
|
||||
const rect = graph1.addNode({
|
||||
x: 300,
|
||||
y: 300,
|
||||
width: 90,
|
||||
height: 60,
|
||||
})
|
||||
|
||||
const circle = graph1.addNode({
|
||||
x: 400,
|
||||
y: 400,
|
||||
width: 40,
|
||||
height: 40,
|
||||
})
|
||||
|
||||
graph1.addEdge({
|
||||
source: rect,
|
||||
target: circle,
|
||||
})
|
||||
|
||||
graph1.centerContent()
|
||||
|
||||
const graph2 = new Graph({
|
||||
container: this.graphContainer2,
|
||||
background: {
|
||||
color: '#f5f5f5',
|
||||
},
|
||||
grid: true,
|
||||
autoResize: true,
|
||||
})
|
||||
|
||||
const source = graph2.addNode({
|
||||
x: 40,
|
||||
y: 40,
|
||||
width: 80,
|
||||
height: 40,
|
||||
})
|
||||
|
||||
const target = graph2.addNode({
|
||||
x: 120,
|
||||
y: 100,
|
||||
width: 80,
|
||||
height: 40,
|
||||
})
|
||||
|
||||
graph2.addEdge({
|
||||
source,
|
||||
target,
|
||||
})
|
||||
}
|
||||
|
||||
refContainer1 = (container: HTMLDivElement) => {
|
||||
this.graphContainer1 = container
|
||||
}
|
||||
|
||||
refContainer2 = (container: HTMLDivElement) => {
|
||||
this.graphContainer2 = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div className="app-content">
|
||||
<SplitBox>
|
||||
<div style={{ width: '100%', height: '100%', display: 'flex' }}>
|
||||
<div
|
||||
ref={this.refContainer1}
|
||||
style={{ flex: 1, margin: 24 }}
|
||||
className="x6-graph"
|
||||
/>
|
||||
</div>
|
||||
<div style={{ width: '100%', height: '100%', display: 'flex' }}>
|
||||
<div
|
||||
ref={this.refContainer2}
|
||||
style={{ flex: 1, margin: 24 }}
|
||||
className="x6-graph"
|
||||
/>
|
||||
</div>
|
||||
</SplitBox>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import App from './app'
|
||||
import { Wrap } from '@antv/x6-sites-demos-helper'
|
||||
|
||||
ReactDOM.render(
|
||||
<Wrap>
|
||||
<div className="bar" />
|
||||
<App />
|
||||
</Wrap>,
|
||||
document.getElementById('root'),
|
||||
)
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"isolatedModules": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strictPropertyInitialization": false,
|
||||
"noEmit": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": true,
|
||||
"noEmitOnError": true,
|
||||
"noUnusedLocals": true,
|
||||
"strictNullChecks": true,
|
||||
"resolveJsonModule": true,
|
||||
"experimentalDecorators": true,
|
||||
"jsx": "react",
|
||||
"target": "es5",
|
||||
"lib": ["dom", "es2015"]
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
GENERATE_SOURCEMAP=false
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
PUBLIC_URL='./'
|
@ -1,24 +0,0 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
react-app-env.d.ts
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
@ -1,41 +0,0 @@
|
||||
{
|
||||
"name": "@antv/x6-sites-demos-api.graph.checkview",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@antv/x6": "^2.x",
|
||||
"@antv/x6-sites-demos-helper": "2.x",
|
||||
"antd": "^4.4.2",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-scripts": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"typescript": "^4.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"deploy": "yarn -s prepare && yarn -s static",
|
||||
"prestart": "yarn prepare"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript> You need to enable JavaScript to run this app. </noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,57 +0,0 @@
|
||||
.app {
|
||||
font-family: sans-serif;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
padding: 16px 8px;
|
||||
}
|
||||
|
||||
.app-left {
|
||||
width: 336px;
|
||||
bottom: 0;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.app-content {
|
||||
flex: 1;
|
||||
height: 444px;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ant-card {
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
}
|
||||
|
||||
.ant-card-head-title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ant-row {
|
||||
margin: 16px 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.slider-value {
|
||||
background: #eee;
|
||||
color: #333333;
|
||||
padding: 3px 7px;
|
||||
border-radius: 10px;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
#elapsed {
|
||||
color: #52c41a;
|
||||
background: #f6ffed;
|
||||
border-color: #b7eb8f;
|
||||
font-variant: tabular-nums;
|
||||
padding: 0 7px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
border-radius: 2px;
|
||||
}
|
@ -1,210 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph, Cell, Node, Edge, Color, Rectangle } from '@antv/x6'
|
||||
import { Settings, State, defaults } from './settings'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private container: HTMLDivElement
|
||||
private count: number
|
||||
private columns: number
|
||||
private graph: Graph
|
||||
private viewport: Node
|
||||
private padding: number
|
||||
private keepDragged: boolean
|
||||
private keepRendered: boolean
|
||||
private customViewport: boolean
|
||||
private windowBBox: Rectangle
|
||||
private draggedId: string[] = []
|
||||
|
||||
componentDidMount() {
|
||||
this.graph = new Graph({
|
||||
container: this.container,
|
||||
sorting: 'approx',
|
||||
async: true,
|
||||
frozen: true,
|
||||
grid: {
|
||||
size: 1,
|
||||
visible: true,
|
||||
},
|
||||
checkView: ({ view, unmounted }) => {
|
||||
const cell = view.cell
|
||||
if (cell.isNode()) {
|
||||
return this.shouldRenderNode(cell, unmounted)
|
||||
}
|
||||
|
||||
if (cell.isEdge()) {
|
||||
return this.shouldRenderEdge(cell)
|
||||
}
|
||||
return false
|
||||
},
|
||||
})
|
||||
|
||||
this.graph.on('render:done', ({ stats }) => {
|
||||
console.table(stats)
|
||||
})
|
||||
|
||||
this.graph.on('node:change:position', ({ node }) => {
|
||||
this.draggedId.push(node.id)
|
||||
})
|
||||
|
||||
window.onscroll = () => this.setWindowBBox()
|
||||
window.onresize = () => this.setWindowBBox()
|
||||
|
||||
this.setWindowBBox()
|
||||
this.onChanged(defaults)
|
||||
}
|
||||
|
||||
shouldRenderNode(node: Node, unmounted: boolean) {
|
||||
if (this.keepDragged && this.draggedId.includes(node.id)) {
|
||||
return true
|
||||
}
|
||||
|
||||
if (this.keepRendered && unmounted) {
|
||||
return true
|
||||
}
|
||||
|
||||
if (this.customViewport) {
|
||||
const viewportBBox = this.viewport.getBBox()
|
||||
return viewportBBox.isIntersectWithRect(
|
||||
node.getBBox().inflate(this.padding),
|
||||
)
|
||||
}
|
||||
|
||||
if (node === this.viewport) {
|
||||
return false
|
||||
}
|
||||
|
||||
return this.windowBBox.isIntersectWithRect(
|
||||
node.getBBox().inflate(this.padding),
|
||||
)
|
||||
}
|
||||
|
||||
shouldRenderEdge(edge: Edge) {
|
||||
const sourceNode = edge.getSourceNode()
|
||||
const targetNode = edge.getTargetNode()
|
||||
|
||||
return (
|
||||
this.shouldRenderNode(sourceNode as Node, false) ||
|
||||
this.shouldRenderNode(targetNode as Node, false)
|
||||
)
|
||||
}
|
||||
|
||||
setWindowBBox() {
|
||||
this.windowBBox = this.graph.pageToLocal(
|
||||
window.scrollX,
|
||||
window.scrollY,
|
||||
window.innerWidth,
|
||||
window.innerHeight,
|
||||
)
|
||||
}
|
||||
|
||||
onChanged = (settgins: State) => {
|
||||
console.time('perf-all')
|
||||
|
||||
this.padding = settgins.padding
|
||||
this.customViewport = settgins.customViewport
|
||||
this.keepRendered = settgins.keepRendered
|
||||
this.keepDragged = settgins.keepDragged
|
||||
this.draggedId = []
|
||||
|
||||
if (this.count === settgins.count && this.columns === settgins.columns) {
|
||||
return
|
||||
}
|
||||
|
||||
this.count = settgins.count
|
||||
this.columns = settgins.columns
|
||||
|
||||
const count = settgins.count
|
||||
const columns = settgins.columns
|
||||
const rows = Math.ceil(count / columns)
|
||||
|
||||
const baseColor = Color.randomHex()
|
||||
const nodes = Array.from({ length: count }, (_, index) => {
|
||||
const row = Math.floor(index / columns)
|
||||
const column = index % columns
|
||||
const fill = Color.lighten(baseColor, ((row + column) % 8) * 10)
|
||||
return this.graph.createNode({
|
||||
zIndex: 2,
|
||||
width: 30,
|
||||
height: 20,
|
||||
x: column * 50 + 30,
|
||||
y: row * 50 + 30,
|
||||
attrs: {
|
||||
body: { fill },
|
||||
label: { text: index, fill: Color.invert(fill, true) },
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
const edges = nodes.map((target, index) => {
|
||||
if (index === 0) {
|
||||
return null
|
||||
}
|
||||
const source = nodes[index - 1]
|
||||
return this.graph.createEdge({
|
||||
zIndex: 1,
|
||||
source: { cell: source.id },
|
||||
target: { cell: target.id },
|
||||
})
|
||||
})
|
||||
|
||||
edges.shift()
|
||||
|
||||
this.viewport = this.graph.createNode({
|
||||
zIndex: 3,
|
||||
width: 200,
|
||||
height: 200,
|
||||
x: 100,
|
||||
y: 100,
|
||||
label: 'Drag me',
|
||||
attrs: {
|
||||
body: {
|
||||
fill: 'rgba(255,0,0,0.6)',
|
||||
stroke: 'rgba(255,0,0,0.8)',
|
||||
strokeWidth: 8,
|
||||
},
|
||||
label: {
|
||||
text: 'Drag me!!',
|
||||
fill: '#fff',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
console.time('perf-reset')
|
||||
this.graph.freeze()
|
||||
this.graph.resize(columns * 50 + 30, rows * 50 + 30)
|
||||
this.graph.model.resetCells([...nodes, ...edges, this.viewport] as Cell[])
|
||||
console.timeEnd('perf-reset')
|
||||
|
||||
console.time('perf-dump')
|
||||
this.graph.unfreeze({
|
||||
batchSize: settgins.batch,
|
||||
progress: ({ done, current, total }) => {
|
||||
const progress = current / total
|
||||
console.log(`${Math.round(progress * 100)}%`)
|
||||
if (done) {
|
||||
console.timeEnd('perf-dump')
|
||||
console.timeEnd('perf-all')
|
||||
this.graph.unfreeze()
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div className="app-left">
|
||||
<Settings onChange={this.onChanged} />
|
||||
</div>
|
||||
<div className="app-content">
|
||||
<div ref={this.refContainer} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import App from './app'
|
||||
import { Wrap } from '@antv/x6-sites-demos-helper'
|
||||
|
||||
ReactDOM.render(
|
||||
<Wrap>
|
||||
<App />
|
||||
</Wrap>,
|
||||
document.getElementById('root'),
|
||||
)
|
@ -1,187 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Switch, Slider, Card, Row, Col } from 'antd'
|
||||
|
||||
export interface Props {
|
||||
onChange: (state: State) => void
|
||||
}
|
||||
|
||||
export interface State {
|
||||
count: number
|
||||
columns: number
|
||||
batch: number
|
||||
padding: number
|
||||
customViewport: boolean
|
||||
keepRendered: boolean
|
||||
keepDragged: boolean
|
||||
}
|
||||
|
||||
export const defaults: State = {
|
||||
count: 1000,
|
||||
columns: 40,
|
||||
batch: 400,
|
||||
padding: 60,
|
||||
customViewport: true,
|
||||
keepRendered: false,
|
||||
keepDragged: false,
|
||||
}
|
||||
|
||||
export class Settings extends React.Component<Props, State> {
|
||||
state: State = defaults
|
||||
|
||||
notifyChange() {
|
||||
this.props.onChange(this.state)
|
||||
}
|
||||
|
||||
onCountChanged = (count: number) => {
|
||||
this.setState({ count }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onColumnsChanged = (columns: number) => {
|
||||
this.setState({ columns }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onBatchChanged = (batch: number) => {
|
||||
this.setState({ batch }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onPaddingChanged = (padding: number) => {
|
||||
this.setState({ padding }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onCustomViewportChanged = (customViewport: boolean) => {
|
||||
this.setState({ customViewport }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onKeepRenderedChanged = (keepRendered: boolean) => {
|
||||
this.setState({ keepRendered }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onKeepDraggedChanged = (keepDragged: boolean) => {
|
||||
this.setState({ keepDragged }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Card
|
||||
title="Settings"
|
||||
size="small"
|
||||
bordered={false}
|
||||
style={{ width: 320 }}
|
||||
>
|
||||
<Row align="middle">
|
||||
<Col span={7}>node count</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={10}
|
||||
max={5000}
|
||||
step={1}
|
||||
value={this.state.count}
|
||||
onChange={this.onCountChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.count}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>batch size</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={10}
|
||||
max={1000}
|
||||
step={1}
|
||||
value={this.state.batch}
|
||||
onChange={this.onBatchChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.batch}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>columns</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={20}
|
||||
max={100}
|
||||
step={1}
|
||||
value={this.state.columns}
|
||||
onChange={this.onColumnsChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.columns}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>rows</Col>
|
||||
<Col span={12}></Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">
|
||||
{Math.ceil(this.state.count / this.state.columns)}
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>padding</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={20}
|
||||
max={120}
|
||||
step={1}
|
||||
value={this.state.padding}
|
||||
onChange={this.onPaddingChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.padding}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={10}>custom viewport</Col>
|
||||
<Col span={14}>
|
||||
<Switch
|
||||
checked={this.state.customViewport}
|
||||
onChange={this.onCustomViewportChanged}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={10}>keep rendered</Col>
|
||||
<Col span={14}>
|
||||
<Switch
|
||||
checked={this.state.keepRendered}
|
||||
onChange={this.onKeepRenderedChanged}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={10}>keep dragged</Col>
|
||||
<Col span={14}>
|
||||
<Switch
|
||||
checked={this.state.keepDragged}
|
||||
onChange={this.onKeepDraggedChanged}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={24} id="elapsed"></Col>
|
||||
</Row>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"isolatedModules": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strictPropertyInitialization": false,
|
||||
"noEmit": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": true,
|
||||
"noEmitOnError": true,
|
||||
"noUnusedLocals": true,
|
||||
"strictNullChecks": true,
|
||||
"resolveJsonModule": true,
|
||||
"experimentalDecorators": true,
|
||||
"jsx": "react",
|
||||
"target": "es5",
|
||||
"lib": ["dom", "es2015"]
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
GENERATE_SOURCEMAP=false
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
PUBLIC_URL='./'
|
@ -1,24 +0,0 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
react-app-env.d.ts
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
@ -1,41 +0,0 @@
|
||||
{
|
||||
"name": "@antv/x6-sites-demos-api.graph.coord",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@antv/x6": "^2.x",
|
||||
"@antv/x6-sites-demos-helper": "2.x",
|
||||
"antd": "^4.4.2",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-scripts": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"typescript": "^4.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"deploy": "yarn -s prepare && yarn -s static",
|
||||
"prestart": "yarn prepare"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript> You need to enable JavaScript to run this app. </noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,74 +0,0 @@
|
||||
#root {
|
||||
width: 5000px;
|
||||
height: 5000px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.bar {
|
||||
position: absolute;
|
||||
height: 2px;
|
||||
top: 48px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: linear-gradient(to right, #9198e5, #e66465);
|
||||
}
|
||||
|
||||
.app {
|
||||
font-family: sans-serif;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
padding: 16px 8px;
|
||||
}
|
||||
|
||||
.app-left {
|
||||
width: 336px;
|
||||
top: 64px;
|
||||
padding: 0 8px;
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.app-content {
|
||||
flex: 1;
|
||||
height: 318px;
|
||||
margin-left: 344px;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ant-card {
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
}
|
||||
|
||||
.ant-card-head-title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ant-row {
|
||||
margin: 16px 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.slider-value {
|
||||
background: #eee;
|
||||
color: #333333;
|
||||
padding: 3px 7px;
|
||||
border-radius: 10px;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
#elapsed {
|
||||
color: #52c41a;
|
||||
background: #f6ffed;
|
||||
border-color: #b7eb8f;
|
||||
font-variant: tabular-nums;
|
||||
padding: 0 7px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
border-radius: 2px;
|
||||
}
|
@ -1,135 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph } from '@antv/x6'
|
||||
import { Settings, State, defaults } from './settings'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private container: HTMLDivElement
|
||||
private graph: Graph
|
||||
|
||||
componentDidMount() {
|
||||
this.graph = new Graph({
|
||||
container: this.container,
|
||||
grid: true,
|
||||
})
|
||||
|
||||
const source = this.graph.addNode({
|
||||
x: 100,
|
||||
y: 100,
|
||||
width: 80,
|
||||
height: 40,
|
||||
label: 'hello',
|
||||
})
|
||||
|
||||
const target = this.graph.addNode({
|
||||
x: 240,
|
||||
y: 300,
|
||||
width: 80,
|
||||
height: 40,
|
||||
label: 'world',
|
||||
})
|
||||
|
||||
this.graph.addEdge({ source, target })
|
||||
this.onChanged(defaults)
|
||||
this.start()
|
||||
}
|
||||
|
||||
start() {
|
||||
const root = document.getElementById('root')!
|
||||
const v = document.createElement('div')
|
||||
const h = document.createElement('div')
|
||||
const c = document.createElement('div')
|
||||
|
||||
v.style.position = 'absolute'
|
||||
v.style.width = '1px'
|
||||
v.style.top = '0'
|
||||
v.style.bottom = '0'
|
||||
v.style.left = '-100px'
|
||||
v.style.zIndex = `99`
|
||||
v.style.borderLeft = '1px dashed red'
|
||||
|
||||
h.style.position = 'absolute'
|
||||
h.style.height = '1px'
|
||||
h.style.left = '0'
|
||||
h.style.right = '0'
|
||||
h.style.top = '-100px'
|
||||
h.style.zIndex = `99`
|
||||
h.style.borderTop = '1px dashed red'
|
||||
|
||||
c.style.position = 'absolute'
|
||||
c.style.display = 'inline-block'
|
||||
c.style.fontSize = '12px'
|
||||
c.style.zIndex = `99`
|
||||
c.style.padding = '4px 8px'
|
||||
c.style.borderRadius = '2px'
|
||||
c.style.lineHeight = '20px'
|
||||
c.style.background = '#f6ffed'
|
||||
c.style.border = '1px solid #b7eb8f'
|
||||
|
||||
root.appendChild(v)
|
||||
root.appendChild(h)
|
||||
root.appendChild(c)
|
||||
|
||||
document.addEventListener('mousemove', (e) => {
|
||||
const target = e.target as HTMLElement
|
||||
if (
|
||||
this.container.contains(target) ||
|
||||
this.container === target ||
|
||||
target === v ||
|
||||
target === h ||
|
||||
target === c
|
||||
) {
|
||||
const pageX = e.pageX
|
||||
const pageY = e.pageY
|
||||
const clientX = e.clientX
|
||||
const clientY = e.clientY
|
||||
v.style.left = `${pageX + 2}px`
|
||||
h.style.top = `${pageY + 2}px`
|
||||
|
||||
c.style.left = `${pageX + 10}px`
|
||||
c.style.top = `${pageY + 10}px`
|
||||
|
||||
const p1 = this.graph.pageToLocal(pageX, pageY)
|
||||
const p2 = this.graph.localToPage(p1)
|
||||
const p3 = this.graph.localToClient(p1)
|
||||
const p4 = this.graph.localToGraph(p1)
|
||||
|
||||
c.innerHTML = `
|
||||
<div>Mouse Page Position(e.pageX, e.pageY): ${pageX} x ${pageY}</div>
|
||||
<div>Mouse Client Position(e.clientX, e.clientY): ${clientX} x ${clientY}</div>
|
||||
<div>Local Position: ${p1.x} x ${p1.y}</div>
|
||||
<div>Local to Page: ${p2.x} x ${p2.y}</div>
|
||||
<div>Local to Client: ${p3.x} x ${p3.y}</div>
|
||||
<div>Local to Graph: ${p4.x} x ${p4.y}</div>
|
||||
`
|
||||
} else {
|
||||
v.style.left = `${-1000}px`
|
||||
h.style.top = `${-1000}px`
|
||||
c.style.left = `${-10000}px`
|
||||
c.style.top = `${-10000}px`
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onChanged = (settgins: State) => {
|
||||
this.graph.scale(settgins.scale)
|
||||
this.graph.translate(settgins.tx, settgins.ty)
|
||||
document.documentElement.scrollLeft = settgins.scrollLeft
|
||||
document.documentElement.scrollTop = settgins.scrollTop
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div className="app-left">
|
||||
<Settings onChange={this.onChanged} />
|
||||
</div>
|
||||
<div className="app-content" ref={this.refContainer} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import App from './app'
|
||||
import { Wrap } from '@antv/x6-sites-demos-helper'
|
||||
|
||||
ReactDOM.render(
|
||||
<Wrap>
|
||||
<div className="bar" />
|
||||
<App />
|
||||
</Wrap>,
|
||||
document.getElementById('root'),
|
||||
)
|
@ -1,156 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Slider, Card, Row, Col } from 'antd'
|
||||
|
||||
export interface Props {
|
||||
onChange: (state: State) => void
|
||||
}
|
||||
|
||||
export interface State {
|
||||
scale: number
|
||||
tx: number
|
||||
ty: number
|
||||
scrollLeft: number
|
||||
scrollTop: number
|
||||
}
|
||||
|
||||
export const defaults: State = {
|
||||
scale: 0.5,
|
||||
tx: 20,
|
||||
ty: 20,
|
||||
scrollLeft: 50,
|
||||
scrollTop: 0,
|
||||
}
|
||||
|
||||
export class Settings extends React.Component<Props, State> {
|
||||
state: State = defaults
|
||||
|
||||
componentDidMount() {
|
||||
document.addEventListener('scroll', () => {
|
||||
this.setState({
|
||||
scrollLeft: window.scrollX,
|
||||
scrollTop: window.scrollY,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
notifyChange() {
|
||||
this.props.onChange(this.state)
|
||||
}
|
||||
|
||||
onScaleChanged = (scale: number) => {
|
||||
this.setState({ scale }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onTxChanged = (tx: number) => {
|
||||
this.setState({ tx }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onTyChanged = (ty: number) => {
|
||||
this.setState({ ty }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onScrollLeftChanged = (scrollX: number) => {
|
||||
this.setState({ scrollLeft: scrollX }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onScrollTopChanged = (scrollY: number) => {
|
||||
this.setState({ scrollTop: scrollY }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Card
|
||||
title="Settings"
|
||||
size="small"
|
||||
bordered={false}
|
||||
style={{ width: 320 }}
|
||||
>
|
||||
<Row align="middle">
|
||||
<Col span={7}>scale</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={0.1}
|
||||
max={2}
|
||||
step={0.1}
|
||||
value={this.state.scale}
|
||||
onChange={this.onScaleChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.scale}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>translateX</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={-50}
|
||||
max={50}
|
||||
step={1}
|
||||
value={this.state.tx}
|
||||
onChange={this.onTxChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.tx}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>translateY</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={-50}
|
||||
max={50}
|
||||
step={1}
|
||||
value={this.state.ty}
|
||||
onChange={this.onTyChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.ty}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>scrollLeft</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={0}
|
||||
max={document.body.scrollWidth - document.body.clientWidth}
|
||||
step={1}
|
||||
value={this.state.scrollLeft}
|
||||
onChange={this.onScrollLeftChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.scrollLeft}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={7}>scrollTop</Col>
|
||||
<Col span={12}>
|
||||
<Slider
|
||||
min={0}
|
||||
max={document.body.scrollHeight - document.body.clientHeight}
|
||||
step={1}
|
||||
value={this.state.scrollTop}
|
||||
onChange={this.onScrollTopChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">{this.state.scrollTop}</div>
|
||||
</Col>
|
||||
</Row>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"isolatedModules": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strictPropertyInitialization": false,
|
||||
"noEmit": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": true,
|
||||
"noEmitOnError": true,
|
||||
"noUnusedLocals": true,
|
||||
"strictNullChecks": true,
|
||||
"resolveJsonModule": true,
|
||||
"experimentalDecorators": true,
|
||||
"jsx": "react",
|
||||
"target": "es5",
|
||||
"lib": ["dom", "es2015"]
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user