Compare commits

..

40 Commits

Author SHA1 Message Date
824560ddda feat: add snapToGrid options for manhattan router (#3062)
* docs: update github url

* fix: debounce update to improve performance

* feat: add snapToGrid options for manhattan router
2022-12-19 09:36:17 +08:00
9e37ea9f78 fix: debounce update to improve performance (#3061)
* docs: update github url

* fix: debounce update to improve performance
2022-12-18 21:44:03 +08:00
610349d924 chore(release): release 3 packages [skip ci]
[@antv/x6@2.0.9](https://www.npmjs.com/package/@antv/x6/v/2.0.9)
[@antv/x6@2.0.9](https://github.com/antvis/X6/releases/tag/%40antv/x6%402.0.9)

[@antv/x6-example-features@2.0.1](https://github.com/antvis/X6/releases/tag/%40antv/x6-example-features%402.0.1)

[@antv/x6-sites@1.2.0](https://github.com/antvis/X6/releases/tag/%40antv/x6-sites%401.2.0)
2022-12-16 10:44:52 +00:00
2f92e33d0e fix: remove useless repo url 2022-12-16 18:33:03 +08:00
df540d9b79 chore: rename dir 2022-12-16 18:19:58 +08:00
3bc37971f8 chore: update deprecated terser plugin
Co-authored-by: NewByVector <vectorse@126.com>
2022-12-16 18:07:58 +08:00
50284c2d51 chore: update contributors [skip ci] 2022-12-16 08:44:49 +00:00
15284e778a fix: 🐛 char ghosting when edit text (#2560) (#3043)
* fix: 🐛 char ghosting when edit text (#2560)

* fix: 🐛 grammar style improvement
2022-12-16 16:44:28 +08:00
1a0e8cf969 docs: fix broken CI status badge 2022-12-16 15:44:05 +08:00
1089109b08 chore: update build:watch script (#3035) 2022-12-12 21:26:40 +08:00
faf294a5ec chore: only support react18 in 2.1.x (#3034) 2022-12-12 21:21:41 +08:00
25461fd985 docs: update vue demo (#3033)
* chore: refactor x6-site

* docs: update vue demo
2022-12-12 16:38:16 +08:00
35f2966219 chore: refactor x6-site (#3032)
* chore: refactor x6-site

* chore: fix ts lint and style lint error
2022-12-12 16:21:09 +08:00
26df790b8c chore: remove sites files (#3029) 2022-12-12 10:25:03 +08:00
bc7efe8db9 chore: update package version (#3028) 2022-12-11 20:15:16 +08:00
abeb009d0a fix: cancel debounce update for scroller plugin (#3027) 2022-12-11 17:44:13 +08:00
ad08cf87ef chore: update contributors [skip ci] 2022-12-10 01:29:38 +00:00
16c2ef35e0 chore(release): release 1 package [skip ci]
[@antv/x6-vue-shape@2.0.7](https://www.npmjs.com/package/@antv/x6-vue-shape/v/2.0.7)
[@antv/x6-vue-shape@2.0.7](https://github.com/antvis/X6/releases/tag/%40antv/x6-vue-shape%402.0.7)
2022-12-09 07:37:48 +00:00
187e318aee fix: cannot read properties of undefined when unmount vue component (#3024)
* fix: cannot read properties of undefined when unmount vue component

* fix: cannot read properties of undefined when unmount vue component
2022-12-09 15:26:57 +08:00
f07abff980 chore(release): release 1 package [skip ci]
[@antv/x6@2.0.8](https://www.npmjs.com/package/@antv/x6/v/2.0.8)
[@antv/x6@2.0.8](https://github.com/antvis/X6/releases/tag/%40antv/x6%402.0.8)
2022-12-08 01:44:43 +00:00
4a6a634a8a fix: trigger preventDefault by origin event (#3017) 2022-12-08 09:35:17 +08:00
627368e0dd chore(release): release 1 package [skip ci]
[@antv/x6-plugin-transform@2.1.4](https://www.npmjs.com/package/@antv/x6-plugin-transform/v/2.1.4)
[@antv/x6-plugin-transform@2.1.4](https://github.com/antvis/X6/releases/tag/%40antv/x6-plugin-transform%402.1.4)
2022-12-07 09:03:49 +00:00
604c0244cd fix: make resizing options take effect (#3014) 2022-12-07 16:53:46 +08:00
80898ada1c chore(release): release 1 package [skip ci]
[@antv/x6@2.0.7](https://www.npmjs.com/package/@antv/x6/v/2.0.7)
[@antv/x6@2.0.7](https://github.com/antvis/X6/releases/tag/%40antv/x6%402.0.7)
2022-12-06 09:38:57 +00:00
057d5209ff fix: hide elems when visible is false (#3007) 2022-12-06 17:26:38 +08:00
2070828425 chore: remove ts and style lint error (#2995) 2022-12-05 17:20:38 +08:00
502422fe24 Delete .lgtm.yml 2022-12-05 17:06:19 +08:00
8daf0fd62c chore: config codeql 2022-12-05 16:55:39 +08:00
a108b50a66 chore: update contributors [skip ci] 2022-12-03 03:49:59 +00:00
525bac1907 chore: release @antv/x6-plugin-selection@2.1.5 (#2994) 2022-12-03 11:49:38 +08:00
34ec3d29ab chore: update CONTRIBUTORS [skip ci] 2022-12-03 03:34:26 +00:00
74fb7b86d7 chore: add eslintcache (#2993)
* chore: add eslintcache

* chore: add eslintcache
2022-12-03 11:27:56 +08:00
1fb2d8308a fix: use geometry in selection box (#2992) 2022-12-02 17:49:13 +08:00
b2b8ac578c chore: update CONTRIBUTORS [skip ci] 2022-12-02 08:51:57 +00:00
1b03004ee5 chore: update contributors [skip ci] 2022-12-02 08:44:34 +00:00
53c9eaf626 chore: update wrong comment word (#2991)
Co-authored-by: hehongsheng <hehongsheng@dolinkhub.com>
2022-12-02 16:44:14 +08:00
05d1fe35d6 fix: remove lint error (#2979)
* chore: release 4 packages

x6@2.0.6
x6-plugin-export@2.1.4
x6-plugin-snapline@2.1.6
x6-react-shape@2.0.6

* fix: remove lint error
2022-12-01 11:51:31 +08:00
b05d1596dd chore: update deps 2022-12-01 11:38:15 +08:00
8843212f53 chore: move '--debug' to env variable 'SRM_DEBUG' 2022-12-01 11:38:15 +08:00
f920d5a4ee fix: export toJpeg methods in export plugin (#2974) 2022-11-30 10:50:30 +08:00
1546 changed files with 43621 additions and 89266 deletions

View File

@ -1,4 +1,4 @@
name: "CodeQL"
name: ⛵️ CodeQL
on:
push:
@ -30,7 +30,7 @@ jobs:
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql.yml
config-file: ./.github/workflows/config/codeql.yml
queries: +security-and-quality
- name: Autobuild

View File

@ -1,5 +1,5 @@
paths-ignore:
- sites/x6-sites/static
- sites/public
query-filters:
- exclude:
id: js/use-before-declaration

View File

@ -57,8 +57,9 @@ jobs:
private_key: ${{ secrets.PRIVATE_KEY }}
- name: 📦 Semantic Release
run: pnpm srm --debug --combine-commits --comment-footer 'Thanks for being a part of the [AntV](https://github.com/antvis) community! 💪💯'
run: pnpm srm --combine-commits --comment-footer 'Thanks for being a part of the [AntV](https://github.com/antvis) community! 💪💯'
env:
SRM_DEBUG: ${{ secrets.SRM_DEBUG }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ env.BOT_TOKEN }}

2
.gitignore vendored
View File

@ -15,3 +15,5 @@ dist
tmp
test/coverage
packages/**/src/style/raw.ts
.eslintcache
.stylelintcache

View File

@ -1,12 +0,0 @@
# @see https://help.semmle.com/lgtm-enterprise/user/help/lgtm.yml-configuration-file.html
# @template https://lgtm.com/static/downloads/lgtm.template.yml
queries:
- exclude: js/use-before-declaration
- exclude: js/polynomial-redos
extraction:
javascript:
index:
filters:
- exclude: "sites/x6-sites/static"

View File

@ -12,5 +12,5 @@ es/
lib/
dist/
coverage/
sites/x6-sites/static/demos
sites/public
csstype.ts

View File

@ -15,6 +15,11 @@
"no-invalid-double-slash-comments": null,
"no-descending-specificity": null,
"declaration-empty-line-before": null,
"no-duplicate-selectors": null
"no-duplicate-selectors": null,
"value-no-vendor-prefix": null,
"selector-pseudo-class-no-unknown": null,
"selector-class-pattern": null,
"keyframes-name-pattern": null,
"number-max-precision": null
}
}

View File

@ -27,6 +27,7 @@ Opportunity <opportunity@live.in>
Questions <chip@twostewards.com>
RuiLin <on>
SSC <273702440@qq.com>
Simon <>
Sindori <441933726@qq.com>
Susan <527971893@qq.com>
Thomas <eugne>
@ -58,6 +59,7 @@ myzxlin <myzxlin@163.com>
newbyvector <vectorse@126.com>
niexq <1879633916@qq.com>
niexq <niexq@firstgrid.cn>
njshuisheng <34205271+njshuisheng@users.noreply.github.com>
pengxingjian.pxj <pengxingjian.pxj@alibaba-inc.com>
pfdgithub <pfdgithub@users.noreply.github.com>
qingchi <qinky94@163.com>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 MiB

After

Width:  |  Height:  |  Size: 12 MiB

View File

@ -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>

View File

@ -1,3 +1,10 @@
## @antv/x6-example-features [2.0.1](https://github.com/antvis/X6/compare/@antv/x6-example-features@2.0.0...@antv/x6-example-features@2.0.1) (2022-12-16)
### Bug Fixes
* make resizing options take effect ([#3014](https://github.com/antvis/X6/issues/3014)) ([604c024](https://github.com/antvis/X6/commit/604c0244cd71ec8e911754dfe524f12c04e4e9ad))
# @antv/x6-example-features [2.0.0](https://github.com/antvis/X6/compare/@antv/x6-example-features@1.1.2...@antv/x6-example-features@2.0.0) (2022-11-24)

View File

@ -1,17 +1,18 @@
{
"private": true,
"name": "@antv/x6-example-features",
"version": "2.0.0",
"version": "2.0.1",
"scripts": {
"start": "umi dev",
"build": "umi build",
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix",
"precommit": "lint-staged"
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix"
},
"dependencies": {
"@antv/hierarchy": "^0.6.8",
"@antv/x6": "^2.x",
"@antv/x6-plugin-clipboard": "^2.x",
"@antv/x6-plugin-dnd": "^2.x",
"@antv/x6-plugin-export": "^2.x",
"@antv/x6-plugin-history": "^2.x",
"@antv/x6-plugin-keyboard": "^2.x",
"@antv/x6-plugin-minimap": "^2.x",
@ -20,42 +21,34 @@
"@antv/x6-plugin-snapline": "^2.x",
"@antv/x6-plugin-stencil": "^2.x",
"@antv/x6-plugin-transform": "^2.x",
"@antv/x6-plugin-export": "^2.x",
"@antv/x6-react-components": "^2.x",
"@antv/x6-react-shape": "^2.x",
"antd": "^4.4.2",
"classnames": "^2.2.6",
"dagre": "^0.8.5",
"elkjs": "^0.7.1",
"elkjs": "^0.8.2",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-helmet": "^6.0.0",
"@antv/hierarchy": "^0.6.8"
"react-helmet": "^6.0.0"
},
"devDependencies": {
"@ant-design/icons": "^4.2.2",
"@types/jest": "^25.2.1",
"@types/jest": "^29.2.4",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"@types/react-helmet": "^6.0.0",
"@types/react-test-renderer": "^16.0.3",
"eslint": "^7.16.0",
"@types/react-test-renderer": "^18.0.0",
"babel-plugin-import": "^1.13.5",
"eslint": "^8.29.0",
"eslint-config-umi": "^1.4.0",
"eslint-plugin-flowtype": "^4.7.0",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.11.1",
"lint-staged": "^10.5.3",
"react-test-renderer": "^16.7.0",
"umi": "^2.9.0",
"umi-plugin-react": "^1.8.0",
"umi-types": "^0.3.0",
"babel-plugin-import": "^1.13.5"
},
"lint-staged": {
"src/**/*.ts": [
"eslint --fix"
]
"umi-types": "^0.3.0"
},
"engines": {
"node": ">=8.0.0"

View File

@ -7,17 +7,17 @@
.nav {
position: absolute;
z-index: 101;
top: 0;
bottom: 0;
left: 0;
font-size: 13px;
overflow-x: hidden;
overflow-y: auto;
z-index: 101;
box-sizing: border-box;
width: 220px;
padding: 0 16px;
overflow-x: hidden;
overflow-y: auto;
font-size: 13px;
border-right: 1px solid #e9e9e9;
box-sizing: border-box;
ul {
padding-left: 16px;
@ -29,11 +29,11 @@
}
.content {
flex-grow: 1;
box-sizing: border-box;
margin-left: 220px;
padding: 34px;
overflow-x: hidden;
overflow-y: auto;
flex-grow: 1;
margin-left: 220px;
background: #ffffff;
padding: 34px;
background: #fff;
}

View File

@ -8,13 +8,15 @@
border: 1px solid #c2c8d5;
border-left: 4px solid #1890ff;
border-radius: 4px;
box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.06);
box-shadow: 0 2px 5px 1px rgb(0 0 0 / 6%);
img {
flex-shrink: 0;
width: 20px;
height: 20px;
flex-shrink: 0;
margin-left: 8px;
}
.label {
display: inline-block;
flex-shrink: 0;
@ -23,15 +25,19 @@
color: #666;
font-size: 12px;
}
.status {
flex-shrink: 0;
}
&.success {
border-left: 4px solid #52c41a;
}
&.failed {
border-left: 4px solid #ff4d4f;
}
&.running .status img {
animation: spin 1s linear infinite;
}
@ -43,11 +49,13 @@
border-radius: 2px;
box-shadow: 0 0 0 4px #d4e8fe;
}
.node.success {
border-color: #52c41a;
border-radius: 2px;
box-shadow: 0 0 0 4px #ccecc0;
}
.node.failed {
border-color: #ff4d4f;
border-radius: 2px;
@ -80,6 +88,7 @@
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}

View File

@ -4,6 +4,7 @@
visibility: hidden;
cursor: pointer;
}
&:hover image {
visibility: visible;
}

View File

@ -2,24 +2,25 @@
position: relative;
}
.validating:after {
.validating::after {
position: absolute;
top: 4px;
left: 4px;
content: ' ';
display: block;
width: 50px;
height: 50px;
border-radius: 50%;
border: 6px solid #873bf4;
border-color: #873bf4 transparent #873bf4 transparent;
border-color: #873bf4 transparent;
border-radius: 50%;
animation: lds-dual-ring 1.2s linear infinite;
content: ' ';
}
@keyframes lds-dual-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}

View File

@ -2,14 +2,14 @@
.x6-example-wrap {
width: 100%;
height: 100%;
background-color: #ffffff;
background-color: #fff;
.left-side {
position: fixed;
width: 336px;
left: 24px;
top: 0px;
top: 0;
bottom: 0;
left: 24px;
width: 336px;
padding: 0 8px;
overflow-x: visible;
overflow-y: auto;
@ -17,18 +17,18 @@
.right-side {
position: fixed;
top: 0;
right: 24px;
bottom: 0;
width: 336px;
padding: 0 8px;
top: 0px;
bottom: 0;
overflow-x: visible;
overflow-y: auto;
}
.ant-card {
box-shadow: 0 0 10px 1px #e9e9e9;
margin-top: 24px;
box-shadow: 0 0 10px 1px #e9e9e9;
}
.ant-row-flex {
@ -36,14 +36,14 @@
}
.slider-value {
background: #eee;
color: #333333;
padding: 3px 7px;
border-radius: 10px;
display: inline-block;
font-size: 12px;
margin-left: 8px;
padding: 3px 7px;
color: #333;
font-size: 12px;
line-height: 1.25;
background: #eee;
border-radius: 10px;
}
.x6-graph {
@ -52,15 +52,15 @@
.x6-node {
path {
fill: #6a6c8a;
stroke-width: 0px;
transition: fill 0.1s;
fill: #6a6c8a;
stroke-width: 0;
}
text {
fill: #fff;
font-size: 12px;
font-weight: lighter;
font-size: 12px;
fill: #fff;
}
&:hover path {
@ -80,37 +80,37 @@
}
.bbox {
transition-duration: 0.5s;
transition-property: stroke-opacity;
pointer-events: none;
fill: none;
stroke: #16a085;
stroke-width: 2;
stroke-opacity: 0;
fill: none;
transition-property: stroke-opacity;
transition-duration: 0.5s;
pointer-events: none;
}
.axis {
pointer-events: none;
stroke: #95a5a6;
stroke-dasharray: 2, 4;
stroke-width: 1;
pointer-events: none;
}
.padding {
transition-duration: 1s;
transition-property: stroke-opacity;
pointer-events: none;
stroke: #1abc9c;
stroke-opacity: 0;
transition-property: stroke-opacity;
transition-duration: 1s;
pointer-events: none;
}
.grid {
transition-duration: 1s;
transition-property: stroke-opacity;
pointer-events: none;
stroke: #16a085;
stroke-width: 0.5;
stroke-opacity: 0;
transition-property: stroke-opacity;
transition-duration: 1s;
pointer-events: none;
}
.active {

View File

@ -1,9 +1,9 @@
.custom-html {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
color: #000;
font-size: 16px;
border: 1px solid #000;

View File

@ -1,27 +1,27 @@
.x6-graph-wrap {
width: 100%;
height: 100%;
background-color: #ffffff;
overflow: auto;
padding: 32px 0;
overflow: auto;
background-color: #fff;
> h1 {
display: block;
width: 800px;
margin: 0 auto 32px auto;
margin: 0 auto 32px;
}
}
.x6-graph-tools {
width: 800px;
margin: 0 auto 32px auto;
margin: 0 auto 32px;
}
.x6-graph {
width: 100%;
height: 100%;
box-shadow: 0 0 10px 1px #e9e9e9;
margin: 0 auto;
box-shadow: 0 0 10px 1px #e9e9e9;
}
.x6-node-selected {

View File

@ -1,10 +1,10 @@
.react-algo-node {
display: flex;
align-items: center;
width: 100%;
height: 100%;
border: 1px solid #5f95ff;
border-radius: 14px;
display: flex;
align-items: center;
img {
width: 24px;
@ -13,8 +13,8 @@
span {
margin-left: 4px;
font-size: 12px;
color: #000000a6;
font-size: 12px;
}
&.dark {

View File

@ -2,20 +2,20 @@
.my-port {
width: 100%;
height: 100%;
background: #eee;
border: 1px solid #808080;
border-radius: 100%;
background: #eee;
&.connected {
width: 0;
height: 0;
margin-top: 5px;
margin-left: 1px;
border-width: 5px 4px 0;
border-style: solid;
border-color: #808080 transparent transparent;
border-radius: 0;
background-color: transparent;
border-color: #808080 transparent transparent;
border-style: solid;
border-width: 5px 4px 0;
border-radius: 0;
}
}
@ -30,30 +30,30 @@
}
body > div::before {
content: ' ';
float: left;
box-sizing: border-box;
width: 20px;
height: 20px;
margin-top: -5px;
margin-left: -5px;
background-color: rgb(57 202 116 / 60%);
border-radius: 50%;
background-color: rgba(57, 202, 116, 0.6);
box-sizing: border-box;
content: ' ';
}
body > div::after {
content: ' ';
position: relative;
z-index: 10;
float: left;
clear: both;
box-sizing: border-box;
width: 10px;
height: 10px;
margin-top: -15px;
border-radius: 50%;
background-color: #fff;
border: 1px solid #39ca74;
position: relative;
z-index: 10;
box-sizing: border-box;
border-radius: 50%;
content: ' ';
}
}
@ -65,30 +65,30 @@
}
body > div::before {
content: ' ';
float: left;
box-sizing: border-box;
width: 28px;
height: 28px;
margin-top: -9px;
margin-left: -9px;
background-color: rgb(57 202 116 / 60%);
border-radius: 50%;
background-color: rgba(57, 202, 116, 0.6);
box-sizing: border-box;
content: ' ';
}
body > div::after {
content: ' ';
position: relative;
z-index: 10;
float: left;
clear: both;
box-sizing: border-box;
width: 10px;
height: 10px;
margin-top: -19px;
border-radius: 50%;
background-color: #fff;
border: 1px solid #39ca74;
position: relative;
z-index: 10;
box-sizing: border-box;
border-radius: 50%;
content: ' ';
}
}
}

View File

@ -1,4 +1,4 @@
.x6-graph-scroller {
box-shadow: 0 0 10px 1px #e9e9e9;
margin: 0 auto;
box-shadow: 0 0 10px 1px #e9e9e9;
}

View File

@ -25,7 +25,6 @@ export default class Example extends React.Component {
strict: true,
showNodeSelectionBox: true,
selectCellOnMoved: false,
useCellGeometry: true,
filter(cell) {
return cell !== a
},

View File

@ -1,20 +1,20 @@
.react-table {
width: 100%;
height: 100%;
border: 1px solid #edf2f5;
background-color: #fff;
border-radius: 5px;
overflow: hidden;
background-color: #fff;
border: 1px solid #edf2f5;
border-radius: 5px;
.inner {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
padding: 12px;
border: 1px solid #fff;
background: #edf2f5;
border: 1px solid #fff;
border-radius: 5px;
display: flex;
flex-direction: column;
}
.header {
@ -36,21 +36,21 @@
}
ul {
padding: 0;
margin: 0;
padding: 0;
}
li {
list-style: none;
height: 40px;
line-height: 40px;
padding-left: 16px;
line-height: 40px;
list-style: none;
border: 1px solid transparent;
&:hover {
border: 1px solid #1890ff;
// background: rgba(230,247,255,.92);
z-index: 0;
border: 1px solid #1890ff;
}
}
}
@ -58,8 +58,8 @@
.react-table-port {
width: 100%;
height: 100%;
overflow: hidden;
background: #eee;
border: 1px solid #808080;
border-radius: 100%;
background: #eee;
overflow: hidden;
}

View File

@ -1,41 +1,44 @@
.tools {
width: 800px;
margin: 32px auto;
.ant-input {
margin-bottom: 16px;
}
}
.react-node {
display: flex;
align-items: center;
width: 100%;
height: 100%;
border: 1px solid #5f95ff;
border-radius: 14px;
display: flex;
align-items: center;
img {
width: 24px;
height: 24px;
}
span {
margin-left: 4px;
font-size: 12px;
color: #000000a6;
font-size: 12px;
}
}
.stutterer {
transform: scale(1.5);
height: 310px;
width: 310px;
position: absolute;
left: 0;
right: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 310px;
height: 310px;
margin: auto;
box-shadow: 0 0 10px 10px rgba(0, 0, 0, 0.2);
border-radius: 200px;
box-shadow: 0 0 10px 10px rgb(0 0 0 / 20%);
transform: scale(1.5);
}
.clockHand {
@ -50,12 +53,12 @@
}
.innerLine {
border-radius: 6px;
position: absolute;
height: 149px;
left: 47.5%;
top: 0%;
left: 47.5%;
width: 5%;
height: 149px;
background-color: red;
border-radius: 6px;
transform-origin: bottom center;
}

View File

@ -3,8 +3,8 @@
"private": true,
"scripts": {
"preinstall": "node ./scripts/preinstall",
"lint:ts": "eslint '**/src/**/*.{js,ts}?(x)' --fix",
"lint:style": "stylelint '**/src/**/*.less' --syntax less --fix",
"lint:ts": "eslint '**/src/**/*.{js,ts}?(x)' --cache --fix",
"lint:style": "stylelint '**/src/**/*.less' --customSyntax postcss-less --cache --fix",
"lint": "run-s lint:ts lint:style",
"prettier": "prettier --write '**/*.{js,mjs,jsx,tsx,ts,less,md,json}'",
"pretty-quick": "pretty-quick",
@ -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": {
@ -89,40 +88,40 @@
}
},
"dependencies": {
"@babel/core": "^7.20.2",
"@babel/core": "^7.20.5",
"@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.2",
"@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",
"@semantic-release-monorepo/cli": "^2.1.0",
"@semantic-release/changelog": "^6.0.1",
"@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.9",
"@types/jest": "^29.2.4",
"@types/node": "^18.11.15",
"@types/sinon": "^10.0.2",
"@typescript-eslint/eslint-plugin": "^5.44.0",
"@typescript-eslint/parser": "^5.44.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.0",
"fs-extra": "^10.0.0",
"eslint-plugin-unicorn": "^45.0.2",
"fs-extra": "^11.1.0",
"husky": "^8.0.1",
"is-ci": "^3.0.0",
"jasmine-core": "^4.5.0",
@ -131,25 +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.4.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": "^14.0.1",
"sinon": "^15.0.1",
"stylelint": "^14.15.0",
"stylelint-config-prettier": "^9.0.4",
"stylelint-config-rational-order": "^0.1.2",
@ -161,5 +160,8 @@
"tslib": "^2.4.1",
"turbo": "^1.6.3",
"typescript": "^4.9.3"
},
"devDependencies": {
"@rollup/plugin-terser": "^0.2.0"
}
}

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-common",
"version": "2.0.2",
"version": "2.0.3",
"description": "Basic toolkit for X6",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -6,5 +6,5 @@ export {
sortBy,
groupBy,
difference,
max
max,
} from 'lodash-es'

View File

@ -1,3 +1,5 @@
/* eslint-disable no-constructor-return */
import { NumberExt } from '../number'
export class Color {

View File

@ -117,6 +117,7 @@ export function unsetByPath(
return obj
}
// eslint-disable-next-line default-param-last
export function flatten(obj: any, delim = '/', stop?: (val: any) => boolean) {
const ret: { [key: string]: any } = {}

View File

@ -1,6 +1,8 @@
/* eslint-disable default-param-last */
import { Point } from '../point'
const regexSupportedData = new RegExp(`^[\\s\\dLMCZz,.]*$`)
const regexSupportedData = new RegExp(`^[\\s\\dLMCZz,.]*$`) // eslint-disable-line prefer-regex-literals
export function isValid(data: any) {
if (typeof data !== 'string') {

View File

@ -1,3 +1,5 @@
/* eslint-disable no-constructor-return */
import { Line } from './line'
import { Point } from './point'
import { Rectangle } from './rectangle'

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-plugin-export",
"version": "2.1.2",
"version": "2.1.5",
"description": "export plugin for X6.",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -3,12 +3,54 @@ import { Export } from './index'
declare module '@antv/x6/lib/graph/graph' {
interface Graph {
toSVG: (
callback: Export.ToSVGCallback,
options?: Export.ToSVGOptions,
) => void
toPNG: (
callback: Export.ToSVGCallback,
options?: Export.ToImageOptions,
) => void
toJPEG: (
callback: Export.ToSVGCallback,
options?: Export.ToImageOptions,
) => void
exportPNG: (fileName?: string, options?: Export.ToImageOptions) => void
exportJPEG: (fileName?: string, options?: Export.ToImageOptions) => void
exportSVG: (fileName?: string, options?: Export.ToSVGOptions) => void
}
}
Graph.prototype.toSVG = function (
callback: Export.ToSVGCallback,
options?: Export.ToSVGOptions,
) {
const instance = this.getPlugin('export') as Export
if (instance) {
instance.toSVG(callback, options)
}
}
Graph.prototype.toPNG = function (
callback: Export.ToSVGCallback,
options?: Export.ToImageOptions,
) {
const instance = this.getPlugin('export') as Export
if (instance) {
instance.toPNG(callback, options)
}
}
Graph.prototype.toJPEG = function (
callback: Export.ToSVGCallback,
options?: Export.ToImageOptions,
) {
const instance = this.getPlugin('export') as Export
if (instance) {
instance.toJPEG(callback, options)
}
}
Graph.prototype.exportPNG = function (
fileName?: string,
options?: Export.ToImageOptions,

View File

@ -17,7 +17,7 @@
> svg {
pointer-events: none;
shape-rendering: optimizeSpeed;
shape-rendering: optimizespeed;
}
.x6-node * {

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-plugin-scroller",
"version": "2.0.3",
"version": "2.0.7",
"description": "scroller plugin for X6",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -37,14 +37,10 @@
&&-pannable[data-panning='false'] {
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
&&-pannable[data-panning='true'] {
cursor: grabbing;
cursor: -moz-grabbing;
cursor: -webkit-grabbing;
user-select: none;
}
}

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-plugin-selection",
"version": "2.1.4",
"version": "2.1.5",
"description": "selection plugin for X6",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -464,7 +464,6 @@ export namespace Selection {
multipleSelectionModifiers: ['ctrl', 'meta'],
movable: true,
strict: false,
useCellGeometry: false,
selectCellOnMoved: false,
selectNodeOnMoved: false,
selectEdgeOnMoved: false,

View File

@ -607,29 +607,21 @@ export class SelectionImpl extends View<SelectionImpl.EventArgs> {
let views: CellView[] = []
if (this.options.rubberNode) {
if (this.options.useCellGeometry) {
views = views.concat(
graph.model
.getNodesInArea(rect, options)
.map((node) => graph.renderer.findViewByCell(node))
.filter((view) => view != null) as CellView[],
)
} else {
views = views.concat(graph.renderer.findViewsInArea(rect, options))
}
views = views.concat(
graph.model
.getNodesInArea(rect, options)
.map((node) => graph.renderer.findViewByCell(node))
.filter((view) => view != null) as CellView[],
)
}
if (this.options.rubberEdge) {
if (this.options.useCellGeometry) {
views = views.concat(
graph.model
.getEdgesInArea(rect, options)
.map((edge) => graph.renderer.findViewByCell(edge))
.filter((view) => view != null) as CellView[],
)
} else {
views = views.concat(graph.renderer.findEdgeViewsInArea(rect, options))
}
views = views.concat(
graph.model
.getEdgesInArea(rect, options)
.map((edge) => graph.renderer.findViewByCell(edge))
.filter((view) => view != null) as CellView[],
)
}
return views
@ -761,7 +753,7 @@ export class SelectionImpl extends View<SelectionImpl.EventArgs> {
const view = this.graph.renderer.findViewByCell(cell)
if (view) {
const bbox = view.getBBox({
useCellGeometry: this.options.useCellGeometry,
useCellGeometry: true,
})
origin.x = Math.min(origin.x, bbox.x)
origin.y = Math.min(origin.y, bbox.y)
@ -822,7 +814,7 @@ export class SelectionImpl extends View<SelectionImpl.EventArgs> {
const view = this.graph.renderer.findViewByCell(cell)
if (view) {
const bbox = view.getBBox({
useCellGeometry: this.options.useCellGeometry,
useCellGeometry: true,
})
const className = this.boxClassName
@ -899,7 +891,7 @@ export class SelectionImpl extends View<SelectionImpl.EventArgs> {
protected onCellAdded({ cell }: Collection.EventArgs['added']) {
// The collection do not known the cell was removed when cell was
// removed by interaction(such as, by "delete" shortcut), so we should
// manually listen to cell's remove evnet.
// manually listen to cell's remove event.
this.listenCellRemoveEvent(cell)
this.createSelectionBox(cell)
this.updateContainer()
@ -971,7 +963,6 @@ export namespace SelectionImpl {
showNodeSelectionBox?: boolean
movable?: boolean
following?: boolean
useCellGeometry?: boolean
content?: Content
// Can select node or edge when rubberband

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-plugin-snapline",
"version": "2.1.4",
"version": "2.1.6",
"description": "snapline plugin for X6",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -247,12 +247,12 @@
}
input[type='search'] {
-webkit-appearance: textfield;
appearance: textfield;
}
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
appearance: none;
}
&-search-text {

View File

@ -1,3 +1,10 @@
## @antv/x6-plugin-transform [2.1.4](https://github.com/antvis/x6/compare/@antv/x6-plugin-transform@2.1.3...@antv/x6-plugin-transform@2.1.4) (2022-12-07)
### Bug Fixes
* make resizing options take effect ([#3014](https://github.com/antvis/x6/issues/3014)) ([604c024](https://github.com/antvis/x6/commit/604c0244cd71ec8e911754dfe524f12c04e4e9ad))
## @antv/x6-plugin-transform [2.1.2](https://github.com/antvis/x6/compare/@antv/x6-plugin-transform@2.1.1...@antv/x6-plugin-transform@2.1.2) (2022-11-25)

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-plugin-transform",
"version": "2.0.3",
"version": "2.1.4",
"description": "transform plugin for X6",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -90,18 +90,23 @@ export class Transform extends Basecoat<Transform.EventArgs> {
)
const options: TransformImpl.Options = {
resizable: resizing.enabled,
resizable: !!resizing.enabled,
minWidth: resizing.minWidth || 0,
maxWidth: resizing.maxWidth || Number.MAX_SAFE_INTEGER,
minHeight: resizing.minHeight || 0,
maxHeight: resizing.maxHeight || Number.MAX_SAFE_INTEGER,
orthogonalResizing: resizing.orthogonal || true,
restrictedResizing: resizing.restrict || false,
autoScrollOnResizing: resizing.autoScroll || true,
preserveAspectRatio: resizing.preserveAspectRatio || false,
allowReverse: resizing.allowReverse || true,
orthogonalResizing:
typeof resizing.orthogonal === 'boolean' ? resizing.orthogonal : true,
restrictedResizing: !!resizing.restrict,
autoScrollOnResizing:
typeof resizing.autoScroll === 'boolean' ? resizing.autoScroll : true,
preserveAspectRatio: !!resizing.preserveAspectRatio,
allowReverse:
typeof resizing.allowReverse === 'boolean'
? resizing.allowReverse
: true,
rotatable: rotating.enabled || false,
rotatable: !!rotating.enabled,
rotateGrid: rotating.grid || 15,
}

View File

@ -57,17 +57,17 @@
"classnames": "^2.2.6",
"rc-dropdown": "^3.0.0-alpha.0",
"rc-util": "^4.15.7",
"react-color": "2.17.1",
"react-color": "2.19.3",
"react-resize-detector": "^7.0.0",
"ua-parser-js": "^0.7.20"
},
"devDependencies": {
"@types/react": "^18.0.0",
"@types/react-color": "^3.0.1",
"@types/react-resize-detector": "^6.1.0",
"@types/react-dom": "^18.0.9",
"@types/react-resize-detector": "^6.1.0",
"@types/ua-parser-js": "^0.7.33",
"antd": "^5.0.0",
"antd": "^5.0.3",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},

View File

@ -1 +1 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');

View File

@ -1,4 +1,4 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');
@color-picker-prefix-cls: ~'@{x6-prefix}-color-picker';
@ -27,7 +27,7 @@
background: transparent;
.sketch-picker {
box-shadow: #e9e9e9 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 8px 16px !important;
box-shadow: #e9e9e9 0 0 0 1px, rgb(0 0 0 / 10%) 0 8px 16px !important;
}
}
}

View File

@ -1,2 +1,2 @@
@import '../../style/themes/index';
@import '../../menu/style/index';
@import url('../../style/themes/index');
@import url('../../menu/style/index');

View File

@ -1,4 +1,4 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');
@dropdown-prefix-cls: ~'@{x6-prefix}-dropdown';
@ -11,7 +11,7 @@
max-height: 320px;
overflow-y: scroll;
border-radius: 3px;
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 6px rgb(0 0 0 / 20%);
// &::before {
// position: absolute;

View File

@ -1,4 +1,4 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');
@menu-prefix-cls: ~'@{x6-prefix}-menu';
@ -103,8 +103,8 @@
right: 12px;
width: 0;
height: 0;
border-top: 4px solid rgba(0, 0, 0, 0);
border-bottom: 4px solid rgba(0, 0, 0, 0);
border-top: 4px solid rgb(0 0 0 / 0%);
border-bottom: 4px solid rgb(0 0 0 / 0%);
border-left: 5px solid @menu-submenu-arrow-color;
opacity: 0.4;
pointer-events: none;

View File

@ -1,5 +1,5 @@
@import '../../style/themes/index';
@import '../../menu/style/index';
@import url('../../style/themes/index');
@import url('../../menu/style/index');
@menubar-prefix-cls: ~'@{x6-prefix}-menubar';
@ -96,7 +96,7 @@
}
& > .@{menu-prefix-cls} {
border-radius: 0 4px 4px 4px;
border-radius: 0 4px 4px;
}
.@{menu-prefix-cls}-submenu-menu {

View File

@ -1,5 +1,5 @@
@import '../../style/themes/index';
@import '../../scrollbar/style/index';
@import url('../../style/themes/index');
@import url('../../scrollbar/style/index');
@scrollBox-prefix-cls: ~'@{x6-prefix}-scroll-box';

View File

@ -1,4 +1,4 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');
@scrollbar-prefix-cls: ~'@{x6-prefix}-scrollbar';

View File

@ -1,4 +1,4 @@
@import '../../style/themes/index';
@import url('../../style/themes/index');
@splitBox-prefix-cls: ~'@{x6-prefix}-split-box';

View File

@ -1 +1 @@
@import './themes/index';
@import url('./themes/index');

View File

@ -1 +1 @@
@import './default.less';
@import url('./default.less');

View File

@ -1,5 +1,5 @@
@import '../../style/themes/index';
@import '../../dropdown/style/index';
@import url('../../style/themes/index');
@import url('../../dropdown/style/index');
@toolbar-prefix-cls: ~'@{x6-prefix}-toolbar';
@ -42,7 +42,7 @@
width: 1px;
height: 40%;
margin: 0 6px;
background-color: rgba(0, 0, 0, 0.15);
background-color: rgb(0 0 0 / 15%);
content: ' ';
pointer-events: none;
}
@ -111,9 +111,9 @@
width: 0;
height: 0;
margin-left: 6px;
border-color: #262626 transparent transparent transparent;
border-color: #262626 transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
border-width: 5px 4px 0;
opacity: 0.4;
}

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6-react-shape",
"version": "2.0.5",
"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",

View File

@ -1,19 +1,16 @@
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
getComponentContainer() {
return this.selectors.foContent as HTMLDivElement
return this.selectors && (this.selectors.foContent as HTMLDivElement)
}
confirmUpdate(flag: number) {
@ -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
}
}

View File

@ -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)

View File

@ -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",

View File

@ -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) {
@ -18,7 +18,7 @@ export class VueShapeView extends NodeView<VueShape> {
})
}
protected targetId(){
protected targetId() {
return `${this.graph.view.cid}:${this.cell.id}`
}
@ -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
}

View File

@ -1,3 +1,24 @@
## @antv/x6 [2.0.9](https://github.com/antvis/x6/compare/@antv/x6@2.0.8...@antv/x6@2.0.9) (2022-12-16)
### Bug Fixes
* :bug: char ghosting when edit text ([#2560](https://github.com/antvis/x6/issues/2560)) ([#3043](https://github.com/antvis/x6/issues/3043)) ([15284e7](https://github.com/antvis/x6/commit/15284e778a09f4f2e5a8f777330744b0cfe88e9e))
## @antv/x6 [2.0.8](https://github.com/antvis/x6/compare/@antv/x6@2.0.7...@antv/x6@2.0.8) (2022-12-08)
### Bug Fixes
* trigger preventDefault by origin event ([#3017](https://github.com/antvis/x6/issues/3017)) ([4a6a634](https://github.com/antvis/x6/commit/4a6a634a8acfad5c1a7bb93ac17fb3b97239e853))
## @antv/x6 [2.0.7](https://github.com/antvis/x6/compare/@antv/x6@2.0.6...@antv/x6@2.0.7) (2022-12-06)
### Bug Fixes
* hide elems when visible is false ([#3007](https://github.com/antvis/x6/issues/3007)) ([057d520](https://github.com/antvis/x6/commit/057d5209ff827d0231ecc6562e768907f75aff2d))
## @antv/x6 [2.0.4](https://github.com/antvis/x6/compare/@antv/x6@2.0.3...@antv/x6@2.0.4) (2022-11-25)

View File

@ -1,6 +1,6 @@
{
"name": "@antv/x6",
"version": "2.0.3",
"version": "2.0.9",
"description": "JavaScript diagramming library that uses SVG and HTML for rendering",
"main": "lib/index.js",
"module": "es/index.js",

View File

@ -58,8 +58,12 @@ export class Graph extends Basecoat<EventArgs> {
this.grid = new Grid(this)
this.background = new Background(this)
this.model = this.options.model ? this.options.model : new Model()
this.model.graph = this
if (this.options.model) {
this.model = this.options.model
} else {
this.model = new Model()
this.model.graph = this
}
this.renderer = new ViewRenderer(this)
this.panning = new Panning(this)

View File

@ -149,7 +149,7 @@ export class GraphView extends View {
protected onContextMenu(evt: Dom.ContextMenuEvent) {
const e = this.normalizeEvent(evt)
const view = this.findView(e.target)
if (this.isPreventDefaultContextMenu(view)) {
evt.preventDefault()
}
@ -201,7 +201,7 @@ export class GraphView extends View {
}
if (this.options.preventDefaultMouseDown) {
e.preventDefault()
evt.preventDefault()
}
const localPoint = this.graph.snapToGrid(e.clientX, e.clientY)
@ -213,7 +213,7 @@ export class GraphView extends View {
this.options.preventDefaultBlankAction &&
['touchstart'].includes(e.type)
) {
e.preventDefault()
evt.preventDefault()
}
this.graph.trigger('blank:mousedown', {

View File

@ -1,4 +1,4 @@
@import './style/index';
@import url('./style/index');
// tools
@import './registry/tool/editor';
@import url('./registry/tool/editor');

View File

@ -358,14 +358,14 @@ export class Model extends Basecoat<Model.EventArgs> {
disconnectConnectedEdges(cell: Cell | string, options: Edge.SetOptions = {}) {
const cellId = typeof cell === 'string' ? cell : cell.id
this.getConnectedEdges(cell).forEach((edge) => {
const sourceCell = edge.getSourceCell()
const targetCell = edge.getTargetCell()
const sourceCellId = edge.getSourceCellId()
const targetCellId = edge.getTargetCellId()
if (sourceCell && sourceCell.id === cellId) {
if (sourceCellId === cellId) {
edge.setSource({ x: 0, y: 0 }, options)
}
if (targetCell && targetCell.id === cellId) {
if (targetCellId === cellId) {
edge.setTarget({ x: 0, y: 0 }, options)
}
})

View File

@ -12,3 +12,5 @@ export * from './edge-anchor'
export * from './connection-point'
export * from './router'
export * from './connector'
export * from './registry'

View File

@ -71,15 +71,17 @@ export class ObstacleMap {
const mapGridSize = this.mapGridSize
model.getNodes().reduce((map, node) => {
const shape = node.shape
const excludeShapes = options.excludeShapes
const excType = shape ? excludeShapes.includes(shape) : false
const excTerminal = excludedTerminals.some((cell) => cell.id === node.id)
const excNode = options.excludeNodes.includes(node)
const excAncestor = excludedAncestors.includes(node.id)
const excHidden = options.excludeHiddenNodes && !node.isVisible()
const excluded =
excType || excTerminal || excNode || excAncestor || excHidden
const excludedTerminal = excludedTerminals.some(
(cell) => cell.id === node.id,
)
const excludedNode = options.excludeNodes.some((item) => {
if (typeof item === 'string') {
return node.id === item
}
return item === node
})
const excludedAncestor = excludedAncestors.includes(node.id)
const excluded = excludedTerminal || excludedNode || excludedAncestor
if (!excluded) {
const bbox = node.getBBox().moveAndExpand(options.paddingBox)

View File

@ -41,20 +41,10 @@ export interface ResolvedOptions {
*/
excludeTerminals: Edge.TerminalType[]
/**
* Should certain types of nodes not be considered as obstacles?
*/
excludeShapes: string[]
/**
* Should certain hidden nodes not be considered as obstacles?
*/
excludeHiddenNodes: boolean
/**
* Should certain nodes not be considered as obstacles?
*/
excludeNodes: Node[]
excludeNodes: (Node | string)[]
/**
* Possible starting directions from a node.
@ -132,6 +122,9 @@ export interface ResolvedOptions {
) => Point[] | null
previousDirectionAngle?: number | null
// Whether the calculation results are aligned with the grid
snapToGrid?: boolean
}
export type ManhattanRouterOptions = {
@ -145,9 +138,7 @@ export const defaults: ManhattanRouterOptions = {
maxDirectionChange: 90,
perpendicular: true,
excludeTerminals: [],
excludeShapes: [], // ['text']
excludeNodes: [],
excludeHiddenNodes: false,
startDirections: ['top', 'right', 'bottom', 'left'],
endDirections: ['top', 'right', 'bottom', 'left'],
directionMap: {
@ -195,6 +186,7 @@ export const defaults: ManhattanRouterOptions = {
fallbackRouter: orth,
draggingRouter: null,
snapToGrid: true,
}
export function resolve<T>(

View File

@ -282,7 +282,7 @@ export const router: Router.Definition<ManhattanRouterOptions> = function (
)
const oldVertices = vertices.map((p) => Point.create(p))
const newVertices: Point[] = []
let newVertices: Point[] = []
// The origin of first route's grid, does not need snapping
let tailPoint = sourceEndpoint
@ -328,7 +328,7 @@ export const router: Router.Definition<ManhattanRouterOptions> = function (
if (partialRoute === null) {
// eslint-next-line
console.warn(`Unable to execute manhattan algorithm, use orth instead`)
return FunctionExt.call(
options.fallbackRouter,
this,
@ -350,5 +350,12 @@ export const router: Router.Definition<ManhattanRouterOptions> = function (
newVertices.push(...partialRoute)
}
if (options.snapToGrid) {
newVertices = newVertices.map((vertice) => {
const gridSize = edgeView.graph.grid.getGridSize()
return vertice.snapToGrid(gridSize)
})
}
return newVertices
}

View File

@ -1,4 +1,4 @@
@import '../../style/index';
@import url('../../style/index');
.@{x6-prefix}-cell-tool-editor {
position: relative;

View File

@ -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 {

View File

@ -272,6 +272,11 @@ export class Scheduler extends Disposable {
const zIndex = view.cell.getZIndex()
const pivot = this.addZPivot(zIndex)
this.container.insertBefore(view.container, pivot)
if (!view.cell.isVisible()) {
this.toggleVisible(view.cell, false)
}
viewItem.state = Scheduler.ViewState.MOUNTED
}
}

View File

@ -1,4 +1,4 @@
@import './themes/index';
@import url('./themes/index');
.noScalingStroke() {
vector-effect: non-scaling-stroke;

View File

@ -1 +1 @@
@import './default.less';
@import url('./default.less');

View File

@ -827,7 +827,10 @@ export class NodeView<
})
this.stopPropagation(e)
} else {
if (Dom.hasClass(magnet, 'x6-port-body') || !!magnet.closest('.x6-port-body')) {
if (
Dom.hasClass(magnet, 'x6-port-body') ||
!!magnet.closest('.x6-port-body')
) {
this.stopPropagation(e)
}
this.onMouseDown(e, x, y)

38250
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
packages:
- packages/*
# - examples/*
# - 'sites/*'
- examples/*
- 'sites/*'

View File

@ -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'

View File

@ -1,3 +0,0 @@
#!/bin/sh
(cd sites/x6-sites && yarn build)

View File

@ -0,0 +1,88 @@
---
title: Quickstart
order: 1
redirect_from:
- /en/docs
- /en/docs/tutorial
---
## Installation
X6 is published on npm as @antv/x6.
```shell
# npm
$ npm install @antv/x6 --save
# yarn
$ yarn add @antv/x6
```
If using the umd package, you can use any of the following CDN.
- https://unpkg.com/@antv/x6/dist/index.js
- https://cdn.jsdelivr.net/npm/@antv/x6/dist/index.js
- https://cdnjs.cloudflare.com/ajax/libs/antv-x6/2.0.0/index.js
## Basic Usage
It's recommended to learn [SVG Basics](https://codepen.io/HunorMarton/full/PoGbgqj) before you begin, and with some basic SVG knowledge in mind, let's start with a simple example to play with X6.
### 1. Init Graph
Creating a graph container on the page and then initializing the graph object, then you can set the graph style through configuration, such as the background color.
```html
<div id="container"></div>
```
```ts
import { Graph } from "@antv/x6";
const graph = new Graph({
container: document.getElementById("container"),
width: 800,
height: 600,
background: {
color: "#F2F7FA",
},
});
```
### 2. Render nodes and edges
X6 supports json data, you can also use the `attrs` attribute to customize the styles of nodes and edges (like `CSS`).
<code id="helloworld" src="@/src/tutorial/getting-started/helloworld/index.tsx"></code>
### 3. Using the React Node
X6 supports using `SVG` and `HTML` to render node content. On this basis, we can also use `React` and `Vue` components to render nodes, which will be very convenient in the development process.
For example, we have a new requirement: add a right-click menu to the node. It would be more complicated to implement using `SVG`, We can easily implement it with react node. We can use the React render package `@antv/x6-react-shape` that comes with X6.
<code id="react-shape" src="@/src/tutorial/getting-started/react-shape/index.tsx"></code>
### 4. Using the Plugins
In addition to the basic element rendering capabilities, X6 also comes with a large number of built-in plugins for graph editing. Using these mature plugins, we can improve the development efficiency. For example, we add a snapline plugin to the graph, when a moving node is aligned with other nodes, the snapline will automatically appear.
```ts
import { Snapline } from "@antv/x6-plugin-snapline";
graph.use(
new Snapline({
enabled: true,
})
);
```
<code id="use-plugin" src="@/src/tutorial/getting-started/use-plugin/index.tsx"></code>
### 5. Export the Data
In addition to using `fromJSON` to render JSON data to the graph, of course, there is also support for exporting the data from the graph width `toJSON`, so that we can serialize the graph data and store it to the server.
```ts
graph.toJSON();
```

View File

@ -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

View File

@ -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())}
}
`
}

View File

@ -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"
}

View File

@ -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>

View File

@ -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 })
}
}

View File

@ -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' })
}

View File

@ -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)

View File

@ -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)

View File

@ -1,2 +0,0 @@
export * from './toolbar'
export * from './wrap'

View File

@ -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);
}
}

View File

@ -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>
)
}
}

View File

@ -1,3 +0,0 @@
interface Window {
ResizeObserver: any
}

View File

@ -1,5 +0,0 @@
.demo-wrap {
display: flex;
flex-direction: column;
border: 1px solid #f0f0f0;
}

View File

@ -1,106 +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'
}
}
}
}

View File

@ -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>
)

Some files were not shown because too many files have changed in this diff Show More