Compare commits
17 Commits
@antv/x6@2
...
@antv/x6@2
Author | SHA1 | Date | |
---|---|---|---|
2f92e33d0e | |||
df540d9b79 | |||
3bc37971f8 | |||
50284c2d51 | |||
15284e778a | |||
1a0e8cf969 | |||
1089109b08 | |||
faf294a5ec | |||
25461fd985 | |||
35f2966219 | |||
26df790b8c | |||
bc7efe8db9 | |||
abeb009d0a | |||
ad08cf87ef | |||
16c2ef35e0 | |||
187e318aee | |||
f07abff980 |
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
|
||||
|
164
CONTRIBUTORS.svg
164
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>
|
||||
|
@ -5,13 +5,14 @@
|
||||
"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"
|
||||
|
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,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.6",
|
||||
"description": "scroller plugin for X6",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -47,7 +47,6 @@ export class ScrollerImpl extends View<ScrollerImpl.EventArgs> {
|
||||
super()
|
||||
|
||||
this.options = ScrollerImpl.getOptions(options)
|
||||
this.onUpdate = FunctionExt.debounce(this.onUpdate, 200)
|
||||
|
||||
const scale = this.graph.transform.getScale()
|
||||
this.sx = scale.sx
|
||||
|
@ -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
|
||||
|
||||
@ -37,28 +34,17 @@ export class ReactShapeView extends NodeView<ReactShape> {
|
||||
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",
|
||||
|
@ -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) {
|
||||
@ -71,7 +71,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,10 @@
|
||||
## @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)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@antv/x6",
|
||||
"version": "2.0.7",
|
||||
"version": "2.0.8",
|
||||
"description": "JavaScript diagramming library that uses SVG and HTML for rendering",
|
||||
"main": "lib/index.js",
|
||||
"module": "es/index.js",
|
||||
|
@ -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 {
|
||||
|
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"]
|
||||
}
|
@ -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.registry.attr.text-anchor",
|
||||
"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,43 +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;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph, Cell } from '@antv/x6'
|
||||
import { Settings, State } from './settings'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private container: HTMLDivElement
|
||||
private node: Cell
|
||||
|
||||
componentDidMount() {
|
||||
const graph = new Graph({
|
||||
container: this.container,
|
||||
grid: {
|
||||
visible: true,
|
||||
},
|
||||
})
|
||||
|
||||
this.node = graph.addNode({
|
||||
x: 120,
|
||||
y: 80,
|
||||
width: 200,
|
||||
height: 80,
|
||||
markup: [
|
||||
{
|
||||
tagName: 'rect',
|
||||
selector: 'body',
|
||||
},
|
||||
{
|
||||
tagName: 'path',
|
||||
selector: 'hLine',
|
||||
},
|
||||
{
|
||||
tagName: 'path',
|
||||
selector: 'vLine',
|
||||
},
|
||||
{
|
||||
tagName: 'rect',
|
||||
selector: 'bg',
|
||||
},
|
||||
{
|
||||
tagName: 'text',
|
||||
selector: 'label',
|
||||
},
|
||||
{
|
||||
tagName: 'circle',
|
||||
selector: 'dot',
|
||||
},
|
||||
],
|
||||
attrs: {
|
||||
body: {
|
||||
refWidth: '100%',
|
||||
refHeight: '100%',
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
},
|
||||
dot: {
|
||||
r: 2,
|
||||
fill: 'red',
|
||||
stroke: 'none',
|
||||
refX: 0.5,
|
||||
refY: 0.5,
|
||||
},
|
||||
bg: {
|
||||
ref: 'label',
|
||||
fill: 'rgba(9, 113, 241, 0.8)',
|
||||
stroke: 'rgba(9, 113, 241, 0.8)',
|
||||
rx: 2,
|
||||
ry: 2,
|
||||
refWidth: 1,
|
||||
refHeight: 1,
|
||||
refX: 0,
|
||||
refY: 0,
|
||||
},
|
||||
label: {
|
||||
fontSize: 14,
|
||||
refX: 0.5,
|
||||
refY: 0.5,
|
||||
textAnchor: 'start',
|
||||
textVerticalAnchor: 'top',
|
||||
fill: '#fff',
|
||||
stroke: '#fff',
|
||||
fontFamily: 'Arial, helvetica, sans-serif',
|
||||
text: 'Hello World',
|
||||
},
|
||||
hLine: {
|
||||
refY: 0.5,
|
||||
d: 'M -40 0 240 0',
|
||||
stroke: 'green',
|
||||
strokeDasharray: '5 5',
|
||||
},
|
||||
vLine: {
|
||||
refX: 0.5,
|
||||
d: 'M 0 -40 0 120',
|
||||
stroke: 'green',
|
||||
strokeDasharray: '5 5',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
onGridChanged = (attrs: State) => {
|
||||
this.node.attr({
|
||||
label: attrs,
|
||||
hLine: { refY: attrs.refY },
|
||||
vLine: { refX: attrs.refX },
|
||||
} as any)
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div className="app-left">
|
||||
<Settings onChange={this.onGridChanged} />
|
||||
</div>
|
||||
<div ref={this.refContainer} className="app-content" />
|
||||
</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,131 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Radio, Slider, Card, Row, Col } from 'antd'
|
||||
|
||||
export interface Props {
|
||||
onChange: (state: State) => void
|
||||
}
|
||||
|
||||
export interface State {
|
||||
refX: number
|
||||
refY: number
|
||||
textAnchor?: string
|
||||
textVerticalAnchor?: string
|
||||
}
|
||||
|
||||
export class Settings extends React.Component<Props, State> {
|
||||
state: State = {
|
||||
refX: 0.5,
|
||||
refY: 0.5,
|
||||
textAnchor: 'start',
|
||||
textVerticalAnchor: 'top',
|
||||
}
|
||||
|
||||
notifyChange() {
|
||||
this.props.onChange(this.state)
|
||||
}
|
||||
|
||||
onRefXChanged = (refX: number) => {
|
||||
this.setState({ refX }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onRefYChanged = (refY: number) => {
|
||||
this.setState({ refY }, () => {
|
||||
this.notifyChange()
|
||||
})
|
||||
}
|
||||
|
||||
onTextAnchorAlignChange = (e: any) => {
|
||||
this.setState(
|
||||
{
|
||||
textAnchor: e.target.value,
|
||||
},
|
||||
() => {
|
||||
this.notifyChange()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
onTextVerticalAnchorAlignChange = (e: any) => {
|
||||
this.setState(
|
||||
{
|
||||
textVerticalAnchor: e.target.value,
|
||||
},
|
||||
() => {
|
||||
this.notifyChange()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Card title="Attrs" size="small" bordered={false} style={{ width: 320 }}>
|
||||
<Row align="middle">
|
||||
<Col span={5}>refX</Col>
|
||||
<Col span={14}>
|
||||
<Slider
|
||||
min={0}
|
||||
max={0.99}
|
||||
step={0.01}
|
||||
value={this.state.refX}
|
||||
onChange={this.onRefXChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">
|
||||
{(this.state.refX * 100).toFixed(0)}%
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={5}>refY</Col>
|
||||
<Col span={14}>
|
||||
<Slider
|
||||
min={0}
|
||||
max={0.99}
|
||||
step={0.01}
|
||||
value={this.state.refY}
|
||||
onChange={this.onRefYChanged}
|
||||
/>
|
||||
</Col>
|
||||
<Col span={1} offset={1}>
|
||||
<div className="slider-value">
|
||||
{(this.state.refY * 100).toFixed(0)}%
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col>textAnchor</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={19} offset={5}>
|
||||
<Radio.Group
|
||||
onChange={this.onTextAnchorAlignChange}
|
||||
value={this.state.textAnchor}
|
||||
>
|
||||
<Radio value={'start'}>Start</Radio>
|
||||
<Radio value={'middle'}>Middle</Radio>
|
||||
<Radio value={'end'}>end</Radio>
|
||||
</Radio.Group>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col>textVerticalAnchor</Col>
|
||||
</Row>
|
||||
<Row align="middle">
|
||||
<Col span={19} offset={5}>
|
||||
<Radio.Group
|
||||
onChange={this.onTextVerticalAnchorAlignChange}
|
||||
value={this.state.textVerticalAnchor}
|
||||
>
|
||||
<Radio value={'top'}>Top</Radio>
|
||||
<Radio value={'middle'}>Middle</Radio>
|
||||
<Radio value={'bottom'}>Bottom</Radio>
|
||||
</Radio.Group>
|
||||
</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.registry.attr.text-wrap",
|
||||
"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,14 +0,0 @@
|
||||
.app {
|
||||
font-family: sans-serif;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
padding: 16px 8px;
|
||||
}
|
||||
|
||||
.app-content {
|
||||
flex: 1;
|
||||
height: 216px;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px 1px #e9e9e9;
|
||||
}
|
@ -1,185 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { Graph } from '@antv/x6'
|
||||
import './app.css'
|
||||
|
||||
export default class Example extends React.Component {
|
||||
private container: HTMLDivElement
|
||||
|
||||
componentDidMount() {
|
||||
const graph = new Graph({
|
||||
container: this.container,
|
||||
grid: {
|
||||
visible: true,
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 40,
|
||||
y: 40,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'hello test foo bar lint css jsvascript typescript',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 32,
|
||||
ellipsis: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 240,
|
||||
y: 40,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'hello test foo bar 中文字符 lint css jsvascript typescript',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 32,
|
||||
ellipsis: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 440,
|
||||
y: 40,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'hello-test-foo-bar-lint-css-jsvascript-typescript',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 32,
|
||||
ellipsis: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 40,
|
||||
y: 128,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'Thisissomeveryveryverylong word. Words will break according to usual rules.',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 32,
|
||||
ellipsis: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 240,
|
||||
y: 128,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'Thisissomeveryveryverylong word. Words will break according to usual rules.',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 32,
|
||||
ellipsis: true,
|
||||
breakWord: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
graph.addNode({
|
||||
x: 440,
|
||||
y: 128,
|
||||
width: 160,
|
||||
height: 48,
|
||||
attrs: {
|
||||
body: {
|
||||
fill: '#ffffff',
|
||||
stroke: '#333333',
|
||||
strokeWidth: 1,
|
||||
rx: 5,
|
||||
ry: 5,
|
||||
},
|
||||
label: {
|
||||
textAnchor: 'left',
|
||||
refX: 8,
|
||||
text: 'hello test foo bar lint css jsvascript typescript',
|
||||
textWrap: {
|
||||
width: 144,
|
||||
height: 16,
|
||||
ellipsis: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
refContainer = (container: HTMLDivElement) => {
|
||||
this.container = container
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<div ref={this.refContainer} className="app-content" />
|
||||
</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,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