Compare commits
293 Commits
v2.0.6-bet
...
@antv/x6@1
Author | SHA1 | Date | |
---|---|---|---|
80c8fc57b2 | |||
ee1653aecd | |||
3c4d5b837c | |||
c54f9c36c7 | |||
5138562515 | |||
fe09bdd869 | |||
4e8fb533fb | |||
c456b3fc6a | |||
d242751115 | |||
d37d24f08a | |||
94af7fa7ec | |||
ecffe1a2a8 | |||
ada97b98a2 | |||
e05aa85948 | |||
267d986764 | |||
5550fae095 | |||
9535b5abdb | |||
40300a2b00 | |||
880026af6e | |||
f52182038b | |||
506d8c82f1 | |||
c80b178a08 | |||
105657d7c8 | |||
1ffafcea22 | |||
90e41ea109 | |||
93e281e96b | |||
9377ddc0fc | |||
ccfc843405 | |||
225322c8fa | |||
e5a1df27c5 | |||
d3e178fa9c | |||
9f0f7824c9 | |||
5d5b7f872c | |||
95d3b5d5a8 | |||
8638d4310b | |||
3d8f005696 | |||
7c012f7360 | |||
b27dbc0597 | |||
f8ade0388a | |||
abfc46e9a1 | |||
081be08d38 | |||
9a916545a6 | |||
27d6e629d8 | |||
f679f61f0a | |||
59ae500b7a | |||
deaebb5865 | |||
e83f276c50 | |||
ff04337c74 | |||
c3aa0a0d09 | |||
0e09c7902e | |||
09a4ac8b12 | |||
c7150828e2 | |||
ae7ad05d9c | |||
809f12248a | |||
6f317b29ac | |||
3bf8ecb0d9 | |||
7f2af29994 | |||
f12dd86c1d | |||
660bc38c8a | |||
27ceef23c8 | |||
59ae960f5f | |||
f6475d1500 | |||
35760aa08c | |||
431795c953 | |||
94f90f0441 | |||
cbd069a546 | |||
9662b6ea6a | |||
59f685d130 | |||
0741f1545d | |||
a9edde0791 | |||
264b1f3be2 | |||
0e258d0704 | |||
7a7f9b7657 | |||
afe6793ebb | |||
b138432b1f | |||
a35d771ba6 | |||
0b67719e98 | |||
051baa64da | |||
4715334c75 | |||
6bf76575df | |||
8dc4b38520 | |||
f772026b30 | |||
73fc920fa2 | |||
07379c7c18 | |||
32a6db25e8 | |||
70cbc9f4da | |||
3979a2bd13 | |||
8efe4f4347 | |||
5b5f5aa7ea | |||
c9e192f6ed | |||
a58facbeab | |||
f865ca0fea | |||
2d50028394 | |||
882f5dfb89 | |||
f4cd70e75a | |||
4d4d99efd6 | |||
b4c8d917be | |||
c8d7035c25 | |||
c092688eca | |||
8b5f334fee | |||
500d80f505 | |||
3a717260ad | |||
e4d8fe8b9c | |||
17800acd02 | |||
6b96f12f20 | |||
8852666236 | |||
0cab334e4b | |||
530d0961a8 | |||
36a3706145 | |||
69b371268f | |||
273c392ecf | |||
a6712373fc | |||
70b4f292b2 | |||
4485759a31 | |||
e95acaec0d | |||
6b864128fb | |||
b3f484756c | |||
cc080bede2 | |||
a3c2c77202 | |||
c6aee77d01 | |||
61ec648afe | |||
d2d1af4441 | |||
915d6e1af3 | |||
95b529dbb4 | |||
359df181cf | |||
dca56222a4 | |||
f160a692a4 | |||
e1521224ec | |||
5b13832d0d | |||
3244778000 | |||
41ba28ede7 | |||
f4123517e2 | |||
a58cb3d2a4 | |||
c4920f6d4b | |||
a0045ca739 | |||
13c44ebb1f | |||
ffb79054b0 | |||
609a234501 | |||
3287738bc8 | |||
c9559f2f30 | |||
543b5840db | |||
6bae04fb68 | |||
80728ac28f | |||
036a5ff42c | |||
69c4b185c6 | |||
d38f906411 | |||
55a2de96ca | |||
1ed217476f | |||
5bb1d25745 | |||
fe4f7bc4ed | |||
e84c5f76d4 | |||
fbd3241db0 | |||
793363510b | |||
00de968951 | |||
017335a09d | |||
7e98813096 | |||
0de1828a70 | |||
3b06106a16 | |||
56bec163aa | |||
a1bdb18b1d | |||
e6905f29f4 | |||
4f4d437006 | |||
53bcd2b018 | |||
af8c5887b3 | |||
4cee52ee4c | |||
76c86be5aa | |||
cb0b25b8bc | |||
4887763215 | |||
b5d9f5cbc5 | |||
874404088b | |||
e76f9f232c | |||
0e80212d39 | |||
696954cd6a | |||
c8b22bff71 | |||
c5268623d3 | |||
068ead793f | |||
71cffe34c9 | |||
10bb62e414 | |||
dd22dfee1f | |||
1dc3460a6e | |||
a2c5f9e943 | |||
9c1989ad6f | |||
abc29b5e03 | |||
f021b7780e | |||
e502ca2515 | |||
2fa7b6dd10 | |||
ffbaec396c | |||
d087457f9c | |||
6987d9ce64 | |||
fc117fed4c | |||
e5444aeb79 | |||
747374aedc | |||
9b13cb5592 | |||
e18db6403e | |||
ddb695c32e | |||
d7bd568f83 | |||
2710f29204 | |||
82161cee4f | |||
1da55bfda7 | |||
da18f126ea | |||
7824925555 | |||
564d528612 | |||
8cd46c71ae | |||
92ff8df774 | |||
d35dce7550 | |||
814e0dd137 | |||
0187a3ef99 | |||
b5f3cfa204 | |||
9555852298 | |||
5aab87437e | |||
6a3e441829 | |||
2aff4b4cd0 | |||
daa608d283 | |||
6346949636 | |||
5247a13d9b | |||
42eac09b82 | |||
949ebe165f | |||
58c387643e | |||
dbce0166b8 | |||
ee354b5dcd | |||
b1ae57399a | |||
51f86184b0 | |||
0b2048b12c | |||
9cf5d5ef27 | |||
efce3909f0 | |||
bd6b99453d | |||
ffb7ab0a58 | |||
a9ae861096 | |||
45b19dffdb | |||
33ff359afc | |||
1981f02f2e | |||
cbfed9be92 | |||
4a45fa7d38 | |||
db36ec72ad | |||
6e75619d63 | |||
49853bb50f | |||
a02b2fb73b | |||
e223210d49 | |||
ebe723ff0a | |||
7abfe3f30b | |||
f6a3808c9a | |||
5256e41c6f | |||
65764bed3b | |||
e91609877f | |||
f42158cdb5 | |||
f5cc06d69c | |||
4b2f52aa9a | |||
f35dd5d156 | |||
63e600c05b | |||
848c3dc298 | |||
27cc9d8711 | |||
b00cba9b4d | |||
427165a9c8 | |||
df282000cc | |||
fd8d384a29 | |||
660e2d7689 | |||
4e1fb7bef8 | |||
1f8c80265f | |||
6cdecbbba9 | |||
b041423f06 | |||
39279072c3 | |||
8d7550413f | |||
0e39d9447b | |||
223a634b83 | |||
269fae9e5e | |||
8107f6df5d | |||
8a226bbf5d | |||
5ae78077e2 | |||
c9494e7f79 | |||
1e7f132bed | |||
9a1834e808 | |||
6e1bd9b530 | |||
12e4ac55d7 | |||
294672b306 | |||
68c2346e0c | |||
24de1254a1 | |||
88918f7611 | |||
5e102a39c5 | |||
2f310fcceb | |||
40d53355ce | |||
1dcb3d92fd | |||
9fe7cd51a3 | |||
34481de1db | |||
9d597a92da | |||
40f278f064 | |||
f3edbbc95d | |||
50a5dc7cd8 | |||
5aeae976cd | |||
9200e03f52 | |||
6f089f57a8 | |||
48def793ed | |||
bc67848207 | |||
12173bf500 |
.codecov.yml.eslintrc.gitignorekarma.conf.jslerna.jsonpackage.jsonpnpm-lock.yamlpnpm-workspace.yamlrollup.config.js
.github/workflows
backup
ci.ymlcreate-issue-branch.ymldelete-stale-releases.ymldeploy-sites.ymlpr-label-patch-size.ymlpreview.ymlrelease.ymlsync-labels.ymlupdate-authors.ymlupdate-cache.yamlupdate-contributors.ymlupdate-license.yml.husky
.prettierrc.releaserc.stylelintrc.travis.ymlCONTRIBUTING.mdCONTRIBUTING.zh-CN.mdCONTRIBUTORSCONTRIBUTORS.svgREADME.en-us.mdREADME.mdconfigs
eslint-config
husky-config
package-json
CHANGELOG.mdangular.jsonantd.json
rollup-config.jsbin
cli.jsoneslint.jsonjest.jsonkarma.jsonkarma.mdless.jsonpackage.jsonreact.jsonrollup.jsonsrc
vue.jsonstylelint-config
examples
x6-app-dag
.editorconfig.eslintrc.gitignore.prettierignore.prettierrc.umirc.tsCHANGELOG.mdREADME.mdtsconfig.jsontypings.d.ts
mock
package.jsonsrc
common
component
constants
layout/header
mock
models
pages
common
canvas-handler
graph-common
hooks
style
utils
component-config-panel
component-tree-panel
component-source-tree
index.lessindex.tsxdag-canvas
bottom-toolbar.lessbottom-toolbar.tsxcanvas-content.lesscanvas-content.tsxcanvas-toolbar.lesscanvas-toolbar.tsxfloating-context-menu.lessfloating-context-menu.tsxgraph-running-status.tsxnode-element.lessnode-element.tsxnode-group.lessnode-group.tsxindex.lessindex.tsx
index.lessindex.tsxelements
context-menu
edge-context-menu
graph-context-menu
node-context-menu
rx-models
x6-app-draw
.editorconfig.env.eslintrc.gitignore.umirc.tsCHANGELOG.mdpackage.json
src
tsconfig.jsontypings.d.tsx6-app-er
.editorconfig.eslintrc.gitignore.prettierignore.prettierrc.umirc.tsCHANGELOG.mdREADME.md
mock
package.jsonsrc/pages
tsconfig.jsontypings.d.tsx6-example-features
CHANGELOG.mdpackage.json
src/pages
animation
auto-resize
basic
bus
case
clipboard
connector
dnd
edge
custom-connector.tsxcustom-edge.tsxcustom-marker.tsx
data-mapping
edge-connected.tsxindex.tsxjump-over.tsxloop.tsxloop2.tsxtool
tools.tsxvalidate-connection-count.tsxvalidate-connection.tsxembed
expand
fta
graph
group
halo
html
hull
index.lessindex.tsxissues
keyboard
measurement
org
path
performance
ports
position
react
scroller
selection
shape
snapline
stencil
table
token
tools
transform
transitions
undo
v2
packages
x6-angular-shape
x6-common
CHANGELOG.mdREADME.mdindex.tskarma.conf.jspackage.jsonrollup.config.js
__tests__
color
common
datauri
event
function
json
number
unit
vector
src
__tests__
color
common
datauri
dom
af.test.tsattr.test.tsclass.test.tscss.test.tsdata.test.tselem.test.tsevent.test.tsmatrix.test.tspath.test.tsprefix.test.tsselection.test.tsstyle.test.tstext.test.tstransform.test.ts
event
function
json
number
object
string
text
unit
vector
common
dom
event
index.tsregistry
x6-core
__tests__/util
index.tskarma.conf.jspackage.jsonrollup.config.jssrc
animation
common
index.tsmodel
registry
attr
align.tsconnection.tsfill.tsfilter.tshtml.tsindex.tsmain.tsmarker.tsport.tsraw.tsref.tsstroke.tsstyle.tstext.tstitle.ts
connection-point
connection-strategy
connector
edge-anchor
filter
blur.tsbrightness.tscontrast.tsdrop-shadow.tsgray-scale.tshighlight.tshue-rotate.tsindex.tsinvert.tsmain.tsoutline.tssaturate.tssepia.tsutil.ts
highlighter
index.tsmarker
node-anchor
port-label-layout
port-layout
router
tool
renderer
util
view
x6-geometry
x6-next
README.mdindex.tskarma.conf.jspackage.jsonrollup.config.js
scripts
src
config.ts
graph
background.tsbase.tscoord.tscss.tsdefs.tsevents.tsgraph.tsgrid.tshighlight.tsindex.tsmousewheel.tsoptions.tspanning.tstransform.tsview.ts
index.lessindex.tsmodel
registry
attr
align.tsconnection.tsfill.tsfilter.tshtml.tsindex.tsmain.tsmarker.tsport.tsraw.tsref.tsstroke.tsstyle.tstext.tstitle.ts
background
connection-point
connection-strategy
connector
edge-anchor
filter
blur.tsbrightness.tscontrast.tsdrop-shadow.tsgray-scale.tshighlight.tshue-rotate.tsindex.tsinvert.tsmain.tsoutline.tssaturate.tssepia.tsutil.ts
grid
highlighter
index.tsmarker
node-anchor
port-label-layout
port-layout
router
tool
renderer
shape
style
util
view
x6-plugin-clipboard
x6-plugin-dnd
x6-plugin-export
x6-plugin-history
x6-plugin-keyboard
x6-plugin-minimap
x6-plugin-scroller
x6-plugin-selection
x6-plugin-snapline
x6-plugin-stencil
x6-plugin-transform
x6-react-components
CHANGELOG.mdpackage.jsonrollup.config.js
scripts
src
auto-scroll-box
context-menu
dropdown
menu
menubar
scroll-box
split-box
toolbar
x6-react-shape
x6-vector
CHANGELOG.mdREADME.mdkarma.conf.jspackage.jsonrollup.config.js
scripts
src
dom
attributes
common
dom.test.tsdom.tsevents
alias.tscore.tsemitter.test.tsemitter.tshook.tsindex.tslistener.tsobject.tsspecial.tsstore.tstypes.tsutil.ts
index.tsprimer
affix.test.tsaffix.tsclassname.test.tsclassname.tsdata.test.tsdata.tsindex.tsmemory.test.tsmemory.tsprimer.test.tsprimer.ts
style
transform
types
global
index.tsstruct
box.test.tsbox.tscolor-util.tscolor.test.tscolor.tsmatrix-util.tsmatrix.test.tsmatrix.tsnumber-array.test.tsnumber-array.tspath-array.test.tspath-array.tspoint-array.test.tspoint-array.tspoint.test.tspoint.tstype-array.tsunit-number.test.tsunit-number.tsutil.ts
types
util
vector
a
animate-motion
animate-transform
animate
circle
clippath
common
container
container-mixins.tscontainer.test.tscontainer.tsgeometry.test.tsgeometry.tsreferent.tsvessel-mixins.tsvessel.tsviewbox.test.tsviewbox.tswrapper.ts
defs
desc
ellipse
fe-base
fe-blend
fe-color-matrix
fe-component-transfer
fe-composite
fe-convolve-matrix
fe-diffuse-lighting
fe-displacement-map
fe-distant-light
fe-flood
fe-func-a
fe-func-b
fe-func-g
fe-func-r
fe-gaussian-blur
fe-image
fe-merge-node
fe-merge
fe-morphology
fe-offset
fe-point-light
fe-specular-lighting
fe-spot-light
fe-tile
fe-turbulence
filter
foreignobject
fragment
g
gradient
exts.tsgradient.tslinear-exts.tslinear.test.tslinear.tsoverride.tsradial-exts.tsradial.test.tsradial.tsstop.tstypes.ts
image
index.tsline
marker
mask
metadata
path
pattern
poly
polygon
polyline
rect
script
style
svg
switch
symbol
text
textpath
title
tspan
types
use
vector
bbox.test.tsbbox.tsfillstroke.test.tsfillstroke.tsfont.test.tsfont.tsmixins.tsoverrides.tstransform.test.tstransform.tsvector.test.tsvector.ts
view
x6-vue-shape
x6
CHANGELOG.mdLICENSEREADME.mdkarma.conf.jspackage.jsonrollup.config.js
scripts
src
__tests__/util
addon
common
algorithm
animation
basecoat.tscolor.tsdictionary.tsdisablable.tsdisposable.test.tsdisposable.tsevents.tsindex.tslocalstorage.tsconfig
geometry
angle.tscurve.tsellipse.test.tsellipse.tsgeometry.tsindex.tsline.ts
path
point.test.tspoint.tspolyline.tsrectangle.test.tsrectangle.tsutil.tsglobal
graph
background.tsbase.tsclipboard.tscoord.tscss.tsdecorator.tsdefs.tsevents.tsgraph.tsgrid.tshighlight.tshook.tsindex.tskeyboard.tsknob.tsminimap.tsmousewheel.tsoptions.tspanning.tsprint.lessprint.tsrenderer.tsscroller.tsselection.tssize.tssnapline.tstransform.tsview.tsvirtual-render.ts
index.lessindex.tslayout
model
registry
attr
background
connection-point
connection-strategy
connector
edge-anchor
filter
grid
highlighter
index.tsmarker
node-anchor
port-label-layout
port-layout
registry.tsrouter
tool
renderer
shape
base.ts
basic
circle.tscylinder.tsellipse.tsimage.tsindex.tspath.tspolygon.tspolyline.tsrect.tsrhombus.tstext-block.tstext.tsutil.ts
circle.tsedge.tsellipse.tshtml.tsimage.tsindex.tspath.tspoly.tspolygon.tspolyline.tsrect.tsstandard
circle.tscylinder.tsedge-doubled.tsedge-shadow.tsedge.tsellipse.tsempty.tshtml.tsimage-bordered.tsimage-embedded.tsimage-inscribed.tsimage.tsindex.tspath.tspoly.tspolygon.tspolyline.tsrect-headered.tsrect.tstext-block.tsutil.ts
text-block.tsutil.tsstyle
types
util
array
datauri
dom
af.test.tsaf.tsattr.test.tsattr.tsclass.test.tsclass.tscore.tselem.test.tselem.tsgeom.test.tsgeom.tsindex.tsmain.tsmatrix.test.tsmatrix.tsmousewheel.tspath.test.tspath.tsprefix.test.tsprefix.tsselection.test.tsselection.tsstyle.test.tsstyle.tstext.test.tstext.tstransform.tsvector.ts
function
index.tsjson
lang
number
object
platform
polyfill
scheduler
size-sensor
string
eval.test.tseval.tsformat.test.tsformat.tshashcode.test.tshashcode.tshtml.test.tshtml.tsindex.tsstring.tssuggestion.test.tssuggestion.tsuuid.test.tsuuid.ts
text
unit
vector
view
scripts
build-appsbuild-demosbuild-devfinalize-release.js
monorepo-semantic-release
package.json
preinstall.jsreleaseversion.jssrc
blork.tscommits.tsconfig.tsindex.tslogger.tsmanifest.tsplugin.tsrelease.tsrunner.tsstream.tssynchronizer.tstypes.tstyping.d.tsutil.tsworkspace.ts
tsconfig.jsonyarn.lockx6-build-tools
sites
turbo.jsonyarn.lock@ -11,11 +11,10 @@ coverage:
|
||||
threshold: 1%
|
||||
flags:
|
||||
- x6
|
||||
x6-vector:
|
||||
x6-common:
|
||||
threshold: 1%
|
||||
target: 80% # will fail a Pull Request if coverage is less than 80%
|
||||
flags:
|
||||
- x6-vector
|
||||
- x6-common
|
||||
x6-geometry:
|
||||
threshold: 1%
|
||||
flags:
|
||||
@ -26,9 +25,9 @@ flags:
|
||||
paths:
|
||||
# filter the folder(s) you wish to measure by that flag
|
||||
- packages/x6
|
||||
x6-vector:
|
||||
x6-common:
|
||||
paths:
|
||||
- packages/x6-vector
|
||||
- packages/x6-common
|
||||
x6-geometry:
|
||||
paths:
|
||||
- packages/x6-geometry
|
||||
|
155
.eslintrc
155
.eslintrc
@ -1,3 +1,156 @@
|
||||
{
|
||||
"extends": "@antv/eslint-config"
|
||||
"root": true,
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"plugins": [
|
||||
"@typescript-eslint",
|
||||
"eslint-comments",
|
||||
"import",
|
||||
"flowtype",
|
||||
"jest",
|
||||
"jsx-a11y",
|
||||
"prettier",
|
||||
"promise",
|
||||
"react",
|
||||
"react-hooks",
|
||||
"unicorn"
|
||||
],
|
||||
"extends": [
|
||||
"airbnb-base",
|
||||
"eslint:recommended",
|
||||
"prettier",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:jsx-a11y/recommended",
|
||||
"plugin:import/errors",
|
||||
"plugin:import/warnings",
|
||||
"plugin:promise/recommended",
|
||||
"plugin:prettier/recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:react-hooks/recommended"
|
||||
],
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true,
|
||||
"es6": true,
|
||||
"jest": true,
|
||||
"node": true,
|
||||
"mocha": true,
|
||||
"jasmine": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2020,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
},
|
||||
"requireConfigFile": false
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"no-bitwise": 0,
|
||||
"no-continue": 0,
|
||||
"no-lonely-if": 0,
|
||||
"no-multi-assign": 0,
|
||||
"no-nested-ternary": 0,
|
||||
"no-inner-declarations": 0,
|
||||
"no-unused-expressions": 0,
|
||||
"max-classes-per-file": 0,
|
||||
"prefer-destructuring": 0,
|
||||
"class-methods-use-this": 0,
|
||||
"implicit-arrow-linebreak": 0,
|
||||
"lines-between-class-members": 0,
|
||||
"@typescript-eslint/lines-between-class-members": 0,
|
||||
"consistent-return": 0,
|
||||
"no-return-assign": [2, "except-parens"],
|
||||
"no-param-reassign": [
|
||||
2,
|
||||
{
|
||||
"props": false
|
||||
}
|
||||
],
|
||||
"no-cond-assign": [2, "except-parens"],
|
||||
"no-console": [
|
||||
2,
|
||||
{
|
||||
"allow": ["warn", "error"]
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-unused-expressions": [
|
||||
2,
|
||||
{
|
||||
"allowShortCircuit": true,
|
||||
"allowTernary": true
|
||||
}
|
||||
],
|
||||
"eqeqeq": [
|
||||
2,
|
||||
"always",
|
||||
{
|
||||
"null": "ignore"
|
||||
}
|
||||
],
|
||||
"func-names": [
|
||||
1,
|
||||
"never",
|
||||
{
|
||||
"generators": "as-needed"
|
||||
}
|
||||
],
|
||||
"import/export": 0,
|
||||
"import/no-cycle": 0,
|
||||
"import/extensions": 0,
|
||||
"import/no-unresolved": 0,
|
||||
"import/prefer-default-export": 0,
|
||||
"import/no-extraneous-dependencies": 0,
|
||||
"promise/always-return": 0,
|
||||
"promise/catch-or-return": 0,
|
||||
"@typescript-eslint/no-namespace": 0,
|
||||
"@typescript-eslint/no-var-requires": 0,
|
||||
"@typescript-eslint/no-explicit-any": 0,
|
||||
"@typescript-eslint/no-non-null-assertion": 0,
|
||||
"@typescript-eslint/no-empty-function": 0,
|
||||
"@typescript-eslint/no-empty-interface": 0,
|
||||
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||
"no-shadow": 0,
|
||||
"@typescript-eslint/no-shadow": 0,
|
||||
"camelcase": 0,
|
||||
"@typescript-eslint/camelcase": 0,
|
||||
"no-use-before-define": 0,
|
||||
"@typescript-eslint/no-use-before-define": 0,
|
||||
"no-useless-constructor": 0,
|
||||
"@typescript-eslint/no-useless-constructor": 0,
|
||||
"no-unused-vars": 0,
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
2,
|
||||
{
|
||||
"vars": "all",
|
||||
"args": "after-used",
|
||||
"ignoreRestSiblings": true
|
||||
}
|
||||
],
|
||||
"no-redeclare": 0,
|
||||
"@typescript-eslint/no-redeclare": [
|
||||
2,
|
||||
{
|
||||
"ignoreDeclarationMerge": true
|
||||
}
|
||||
],
|
||||
"react/sort-comp": 0,
|
||||
"react/prop-types": 0,
|
||||
"react/jsx-props-no-spreading": 0,
|
||||
"react/destructuring-assignment": 0,
|
||||
"react/no-access-state-in-setstate": 0
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["**/*.js"],
|
||||
"rules": {
|
||||
"no-console": 0,
|
||||
"global-require": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
27
.github/workflows/backup/create-release-branch.yml
vendored
Normal file
27
.github/workflows/backup/create-release-branch.yml
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
name: 🚀 Create Release Branch
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
crb:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: |
|
||||
echo "${{ github.sha }}" > .releasing
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
private_key: ${{ secrets.PRIVATE_KEY }}
|
||||
env_name: bot_token
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ env.bot_token }}
|
||||
branch: semantic-release
|
||||
commit-message: "trigger semantic release..."
|
||||
delete-branch: true
|
||||
labels: semantic-release
|
||||
title: "chore: semantic release [skip ci]"
|
||||
body: |
|
||||
Your **[semantic-release-monorepo](https://github.com/bubkoo/semantic-release-monorepo)** bot base on **[semantic-release](https://github.com/semantic-release/semantic-release)** :package::rocket:`
|
@ -1,6 +1,6 @@
|
||||
name: 🥤 GitLeaks
|
||||
on:
|
||||
pull_request_target:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
@ -10,7 +10,7 @@ jobs:
|
||||
gitleaks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: '1'
|
||||
- name: wget
|
97
.github/workflows/ci.yml
vendored
97
.github/workflows/ci.yml
vendored
@ -10,59 +10,82 @@ on:
|
||||
- beta
|
||||
jobs:
|
||||
ci:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
codecov: [x6, x6-common, x6-geometry]
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
steps:
|
||||
- name: ⤵️ Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: 🎉 Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: 🎉 Setup nodejs
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: 🌱 Get Cache Directory
|
||||
id: yarn-cache-dir-path
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: 🚸 Setup Cache
|
||||
uses: actions/cache@v2
|
||||
node-version: 16.x
|
||||
|
||||
- name: 🎉 Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
version: 7
|
||||
run_install: false
|
||||
|
||||
- name: 🌱 Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: 🚸 Setup pnpm cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
- name: 🚧 Prepare
|
||||
run: yarn global add lerna
|
||||
- name: 🚀 Bootstrap
|
||||
run: yarn bootstrap
|
||||
${{ runner.os }}-pnpm-store-
|
||||
|
||||
- name: 🚧 Install
|
||||
run: pnpm install --no-frozen-lockfile --ignore-scripts
|
||||
|
||||
- name: 🚀 Build
|
||||
run: pnpm run build
|
||||
|
||||
- name: ✅ Test
|
||||
run: yarn test
|
||||
run: pnpm run test
|
||||
|
||||
- name: 🔑 Generate Token
|
||||
uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
private_key: ${{ secrets.PRIVATE_KEY }}
|
||||
env_name: bot_token
|
||||
- name: 💡 Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ env.bot_token }}
|
||||
path-to-lcov: ./packages/x6/test/coverage/lcov.info
|
||||
- name: 💡 Codecov(x6)
|
||||
|
||||
- name: 💡 Codecov
|
||||
uses: codecov/codecov-action@v1
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/x6/test/coverage/lcov.info
|
||||
flags: x6
|
||||
- name: 💡 Codecov(x6-vector)
|
||||
uses: codecov/codecov-action@v1
|
||||
files: ./packages/${{ matrix.codecov }}/test/coverage/lcov.info
|
||||
flags: ${{ matrix.codecov }}
|
||||
|
||||
- name: 🔀 Dispatch(ci_passed)
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/x6-vector/test/coverage/lcov.info
|
||||
flags: x6-vector
|
||||
- name: 💡 Codecov(x6-geometry)
|
||||
uses: codecov/codecov-action@v1
|
||||
token: ${{ env.bot_token }}
|
||||
event-type: ci_passed
|
||||
|
||||
- name: 🔀 Dispatch(ci_pr_passed)
|
||||
if: github.event_name == 'pull_request_target'
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/x6-geometry/test/coverage/lcov.info
|
||||
flags: x6-geometry
|
||||
token: ${{ env.bot_token }}
|
||||
event-type: ci_pr_passed
|
||||
|
||||
- name: 🔀 Dispatch(ci_master_passed)
|
||||
if: github.event_name == 'push'
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ env.bot_token }}
|
||||
event-type: ci_master_passed
|
||||
|
||||
|
1
.github/workflows/create-issue-branch.yml
vendored
1
.github/workflows/create-issue-branch.yml
vendored
@ -6,7 +6,6 @@ jobs:
|
||||
cib:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
|
44
.github/workflows/delete-stale-releases.yml
vendored
44
.github/workflows/delete-stale-releases.yml
vendored
@ -1,12 +1,41 @@
|
||||
name: 🚫 Delete Stale Releases
|
||||
# on:
|
||||
# repository_dispatch:
|
||||
# types: [released]
|
||||
# jobs:
|
||||
# clean:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - uses: wow-actions/use-app-token@v1
|
||||
# with:
|
||||
# app_id: ${{ secrets.APP_ID }}
|
||||
# private_key: ${{ secrets.PRIVATE_KEY }}
|
||||
# env_name: bot_token
|
||||
# - uses: wow-actions/delete-stale-releases@v1
|
||||
# with:
|
||||
# GITHUB_TOKEN: ${{ env.bot_token }}
|
||||
# delete_tags: true
|
||||
# keep_latest_count: 3
|
||||
# group: '(?!^)@.*$'
|
||||
# exclude: |
|
||||
# @antv/x6@**
|
||||
# @antv/x6-common@**
|
||||
# @antv/x6-geometry@**
|
||||
# @antv/x6-plugin-**@**
|
||||
# @antv/x6-vue-shape@**
|
||||
# @antv/x6-react-shape@**
|
||||
# @antv/x6-angular-shape@**
|
||||
# @antv/x6-react-components@**
|
||||
|
||||
# delete all releases and tag
|
||||
on:
|
||||
repository_dispatch:
|
||||
types: [released]
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
clean:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
@ -16,11 +45,4 @@ jobs:
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ env.bot_token }}
|
||||
delete_tags: true
|
||||
keep_latest_count: 3
|
||||
group: '(?!^)@.*$'
|
||||
exclude: |
|
||||
@antv/x6@**
|
||||
@antv/x6-vue-shape@**
|
||||
@antv/x6-react-shape@**
|
||||
@antv/x6-angular-shape@**
|
||||
@antv/x6-react-components@**
|
||||
keep_latest_count: -1
|
2
.github/workflows/deploy-sites.yml
vendored
2
.github/workflows/deploy-sites.yml
vendored
@ -10,7 +10,7 @@ jobs:
|
||||
node-version: [16.x]
|
||||
steps:
|
||||
- name: ⤵️ Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: 🎉 Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
|
3
.github/workflows/pr-label-patch-size.yml
vendored
3
.github/workflows/pr-label-patch-size.yml
vendored
@ -4,7 +4,6 @@ jobs:
|
||||
label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
@ -13,4 +12,4 @@ jobs:
|
||||
- uses: pascalgn/size-label-action@v0.4.3
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ env.bot_token }}
|
||||
IGNORED: "!.gitignore\nyarn.lock"
|
||||
IGNORED: "!.gitignore\nyarn.lock\npnpm-lock.yaml"
|
||||
|
2
.github/workflows/preview.yml
vendored
2
.github/workflows/preview.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: 🌱 Get yarn cache directory path
|
||||
id: yarn-cache-dir-path
|
||||
|
67
.github/workflows/release.yml
vendored
67
.github/workflows/release.yml
vendored
@ -12,32 +12,43 @@ on:
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
steps:
|
||||
- name: ⤵️ Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: 🎉 Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: 🎉 Setup nodejs
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: 🌱 Get Cache Directory
|
||||
id: yarn-cache-dir-path
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: 🚸 Setup Cache
|
||||
uses: actions/cache@v2
|
||||
node-version: 16.x
|
||||
|
||||
- name: 🎉 Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
version: 7
|
||||
run_install: false
|
||||
|
||||
- name: 🌱 Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: 🚸 Setup pnpm cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
- name: 🚧 Prepare
|
||||
run: yarn global add lerna
|
||||
- name: 🚀 Bootstrap
|
||||
run: yarn bootstrap
|
||||
- name: ✅ Test
|
||||
run: yarn test
|
||||
${{ runner.os }}-pnpm-store-
|
||||
|
||||
- name: 🚧 Install dependencies
|
||||
run: pnpm install --no-frozen-lockfile --ignore-scripts
|
||||
|
||||
# - name: 📦 build
|
||||
# run: pnpm run build
|
||||
|
||||
# - name: ✅ Test
|
||||
# run: pnpm run test
|
||||
|
||||
- name: 🔑 Generate Token
|
||||
uses: wow-actions/use-app-token@v1
|
||||
@ -47,20 +58,26 @@ jobs:
|
||||
env_name: bot_token
|
||||
|
||||
- name: 📦 Semantic Release
|
||||
run: |
|
||||
sh ./scripts/release
|
||||
run: pnpm srm --debug --comment-footer 'Thanks for being a part of the [AntV](https://github.com/antvis) community! 💪💯'
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ env.bot_token }}
|
||||
ACTION_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GIT_AUTHOR_NAME: x6-bot
|
||||
GIT_AUTHOR_EMAIL: x6-bot@users.noreply.github.com
|
||||
GIT_COMMITTER_NAME: x6-bot
|
||||
GIT_COMMITTER_EMAIL: x6-bot@users.noreply.github.com
|
||||
|
||||
# - uses: actions/github-script@v6
|
||||
# with:
|
||||
# github-token: ${{ env.bot_token }}
|
||||
# script: |
|
||||
# const action = require('./scripts/finalize-release.js')
|
||||
# return await action({github, context, core})
|
||||
|
||||
- name: 🔀 Repository Dispatch
|
||||
if: github.ref == 'refs/heads/master'
|
||||
uses: peter-evans/repository-dispatch@v1
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ env.bot_token }}
|
||||
event-type: released
|
||||
|
1
.github/workflows/sync-labels.yml
vendored
1
.github/workflows/sync-labels.yml
vendored
@ -9,7 +9,6 @@ jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
|
5
.github/workflows/update-authors.yml
vendored
5
.github/workflows/update-authors.yml
vendored
@ -3,13 +3,15 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- next
|
||||
- next-major
|
||||
- alpha
|
||||
- beta
|
||||
jobs:
|
||||
authors:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
@ -20,4 +22,5 @@ jobs:
|
||||
- uses: wow-actions/update-authors@v1
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ env.bot_token }}
|
||||
path: CONTRIBUTORS
|
||||
bots: false
|
||||
|
39
.github/workflows/update-cache.yaml
vendored
39
.github/workflows/update-cache.yaml
vendored
@ -1,39 +0,0 @@
|
||||
# Auto update cahe
|
||||
|
||||
name: 🌈 Update Cache
|
||||
on:
|
||||
pull_request_target:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- next
|
||||
- next-major
|
||||
- alpha
|
||||
- beta
|
||||
jobs:
|
||||
cache:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
steps:
|
||||
- name: ⤵️ Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: 🎉 Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: 🌱 Get Cache Directory
|
||||
id: yarn-cache-dir-path
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: 🚸 Setup Cache
|
||||
id: cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
- name: 🚧 Update Cache
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
yarn global add lerna
|
||||
lerna bootstrap
|
2
.github/workflows/update-contributors.yml
vendored
2
.github/workflows/update-contributors.yml
vendored
@ -5,6 +5,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- next
|
||||
- next-major
|
||||
- alpha
|
||||
- beta
|
||||
jobs:
|
||||
|
2
.github/workflows/update-license.yml
vendored
2
.github/workflows/update-license.yml
vendored
@ -6,7 +6,7 @@ jobs:
|
||||
update:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: wow-actions/use-app-token@v1
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,6 +1,7 @@
|
||||
.DS_Store
|
||||
.vscode
|
||||
.idea
|
||||
.turbo
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
lerna-debug.log
|
||||
@ -12,4 +13,5 @@ dist
|
||||
*.pem
|
||||
!mock-cert.pem
|
||||
tmp
|
||||
test
|
||||
test/coverage
|
||||
packages/**/src/style/raw.ts
|
||||
|
4
.husky/commit-msg
Executable file
4
.husky/commit-msg
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npx @commitlint/cli --edit "$1"
|
4
.husky/pre-commit
Executable file
4
.husky/pre-commit
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npx lint-staged
|
@ -1,5 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/common.sh"
|
||||
|
||||
./scripts/pre-push-check
|
@ -9,6 +9,7 @@
|
||||
"overrides": [
|
||||
{ "files": ".eslintrc", "options": { "parser": "json" } },
|
||||
{ "files": ".prettierrc", "options": { "parser": "json" } },
|
||||
{ "files": ".releaserc", "options": { "parser": "json" } },
|
||||
{ "files": ".stylelintrc", "options": { "parser": "json" } }
|
||||
]
|
||||
}
|
||||
|
47
.releaserc
Normal file
47
.releaserc
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"branches": [
|
||||
"+([0-9])?(.{+([0-9]),x}).x",
|
||||
"master",
|
||||
"next",
|
||||
"next-major",
|
||||
{ "name": "beta", "prerelease": true },
|
||||
{ "name": "alpha", "prerelease": true }
|
||||
],
|
||||
"plugins": [
|
||||
[
|
||||
"@semantic-release/commit-analyzer",
|
||||
{
|
||||
"releaseRules": [
|
||||
{ "type": "build", "release": "patch" },
|
||||
{ "type": "ci", "release": "patch" },
|
||||
{ "type": "chore", "release": "patch" },
|
||||
{ "type": "docs", "release": "patch" },
|
||||
{ "type": "refactor", "release": "patch" },
|
||||
{ "type": "style", "release": "patch" },
|
||||
{ "type": "test", "release": "patch" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"@semantic-release/release-notes-generator",
|
||||
"@semantic-release/changelog",
|
||||
[
|
||||
"@semantic-release/npm",
|
||||
{
|
||||
"npmPublish": false
|
||||
}
|
||||
],
|
||||
[
|
||||
"@semantic-release/github",
|
||||
{
|
||||
"addReleases": "bottom"
|
||||
}
|
||||
],
|
||||
[
|
||||
"@semantic-release/git",
|
||||
{
|
||||
"assets": ["package.json", "CHANGELOG.md"],
|
||||
"message": "chore(release): ${nextRelease.gitTag} [skip ci]"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
19
.stylelintrc
19
.stylelintrc
@ -1,3 +1,20 @@
|
||||
{
|
||||
"extends": ["@antv/stylelint-config"]
|
||||
"extends": [
|
||||
"stylelint-config-standard",
|
||||
"stylelint-config-rational-order",
|
||||
"stylelint-config-prettier"
|
||||
],
|
||||
"plugins": [
|
||||
"stylelint-order",
|
||||
"stylelint-declaration-block-no-ignored-properties"
|
||||
],
|
||||
"rules": {
|
||||
"block-no-empty": null,
|
||||
"function-name-case": "lower",
|
||||
"comment-empty-line-before": null,
|
||||
"no-invalid-double-slash-comments": null,
|
||||
"no-descending-specificity": null,
|
||||
"declaration-empty-line-before": null,
|
||||
"no-duplicate-selectors": null
|
||||
}
|
||||
}
|
||||
|
19
.travis.yml
19
.travis.yml
@ -1,19 +0,0 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 12
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
cache:
|
||||
yarn: true
|
||||
directories:
|
||||
- node_modules
|
||||
install:
|
||||
- npm install -g yarn
|
||||
- npm install -g lerna
|
||||
- yarn bootstrap
|
||||
script:
|
||||
- yarn build:dev
|
||||
# - yarn test
|
||||
# after_script:
|
||||
# - yarn coveralls
|
@ -41,7 +41,7 @@ No one can guarantee how much will be remembered about certain PR after some tim
|
||||
|
||||
### Style Guide
|
||||
|
||||
eslint can help to identify styling issues that may exist in your code. Your code is required to pass the test from eslint. Run the test locally by `$ yarn lint`.
|
||||
eslint can help to identify styling issues that may exist in your code. Your code is required to pass the test from eslint. Run the test locally by `$ npm run lint`.
|
||||
|
||||
### Commit Message Format
|
||||
|
||||
|
@ -41,7 +41,7 @@ $ git push origin branch-name
|
||||
|
||||
### 代码风格
|
||||
|
||||
你的代码风格必须通过 eslint,你可以运行 `$ yarn lint` 本地测试。
|
||||
你的代码风格必须通过 eslint,你可以运行 `$ npm run lint` 本地测试。
|
||||
|
||||
### Commit 提交规范
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
BARM <284942955@qq.com>
|
||||
Candy <563378816@qq.com>
|
||||
Chaoqi <HAN>
|
||||
Clifford <ajard>
|
||||
DaiGang <42136433+daigang666@users.noreply.github.com>
|
||||
@ -6,11 +7,19 @@ Dong <48054715+halodong@users.noreply.github.com>
|
||||
Draco <Draco.coder@gmail.com>
|
||||
Eve-Sama <17764594863@163.com>
|
||||
Eve-Sama <948832626@qq.com>
|
||||
Gossypol <31892817+gossypol@users.noreply.github.com>
|
||||
ImgBotApp <ImgBotHelp@gmail.com>
|
||||
Indomi <indomi126@gmail.com>
|
||||
James <san>
|
||||
Jógvan <lse>
|
||||
Ken <ei>
|
||||
Limbo <49612796+JUST-Limbo@users.noreply.github.com>
|
||||
Lixu <37231473+wflixu@users.noreply.github.com>
|
||||
Lloyd <ho>
|
||||
Lyn <47809781+lyn-boyu@users.noreply.github.com>
|
||||
Mingfei <az8641683@163.com>
|
||||
MrMengJ <2646973632@qq.com>
|
||||
Naveen <172697+naveensrinivasan@users.noreply.github.com>
|
||||
NewByVector <NewByVector@users.noreply.github.com>
|
||||
Olive.Wang <olivewind.wang@gmail.com>
|
||||
Opportunity <opportunity@live.in>
|
||||
@ -18,18 +27,25 @@ Questions <chip@twostewards.com>
|
||||
RuiLin <on>
|
||||
SSC <273702440@qq.com>
|
||||
Sindori <441933726@qq.com>
|
||||
Susan <527971893@qq.com>
|
||||
Thomas <eugne>
|
||||
Tony <>
|
||||
Utopia <greatauk11@gmail.com>
|
||||
XLZY <1017866168@qq.com>
|
||||
Xingjian <han>
|
||||
Zhenyu <o>
|
||||
arthur657834 <kingkom7834@126.com>
|
||||
boyu.zlj <boyu.zlj@antgroup.com>
|
||||
breezefaith <nyzhangzc@qq.com>
|
||||
bubkoo <bubkoo.wy@gmail.com>
|
||||
bubkoo <bubkoo@users.noreply.github.com>
|
||||
budlion <dongqi.ldq@alibaba-inc.com>
|
||||
cuidong626 <cuidong1234@outlook.com>
|
||||
daigang <1210242662@qq.com>
|
||||
doublewu <592581554@qq.com>
|
||||
iceytea <liyunheasap@yeah.net>
|
||||
jiqili <43718732+jiqili@users.noreply.github.com>
|
||||
kelin.zrh <34393362+AricZhu@users.noreply.github.com>
|
||||
kingshuaishuai <ken.wang@mrs.ai>
|
||||
kio <1421104933@qq.com>
|
||||
lijing666 <lijing241@yeah.net>
|
||||
@ -37,27 +53,36 @@ lopn <lopnxrp@126.com>
|
||||
luchunwei <luchunwei@gmail.com>
|
||||
luzhuang <364439895@qq.com>
|
||||
lvhuiyang <ilvhuiyang@gmail.com>
|
||||
myzxlin <myzxlin@163.com>
|
||||
newbyvector <vectorse@126.com>
|
||||
niexq <1879633916@qq.com>
|
||||
niexq <niexq@firstgrid.cn>
|
||||
pengxingjian.pxj <pengxingjian.pxj@alibaba-inc.com>
|
||||
pfdgithub <pfdgithub@users.noreply.github.com>
|
||||
qingchi <qinky94@163.com>
|
||||
qu <33251372+Qujh97@users.noreply.github.com>
|
||||
sallen450 <qinghua10199@gmail.com>
|
||||
semantic-release-bot <semantic-release-bot@martynus.net>
|
||||
vector <vectorse@126.com>
|
||||
wenbei <38773084+wb-wenbei@users.noreply.github.com>
|
||||
wgf <34190465+evelope@users.noreply.github.com>
|
||||
wind <>
|
||||
wjqsummer <52412389+wjqsummer@users.noreply.github.com>
|
||||
wtzeng1 <wtzeng1@gmail.com>
|
||||
x6-bot <x6-bot@users.noreply.github.com>
|
||||
xrkffgg <xrkffgg@gmail.com>
|
||||
yaojin2070 <48686959+yaojin2070@users.noreply.github.com>
|
||||
zdc1111 <39116292+zdc1111@users.noreply.github.com>
|
||||
九思⚡⚡⚡ <2228429150@qq.com>
|
||||
何腾飞 <avrin.live.cn@outlook.com>
|
||||
偏右 <afc163@gmail.com>
|
||||
小耀 <jinyue.gjy@antfin.com>
|
||||
崖 <bubkoo.wy@gmail.com>
|
||||
崖崖崖 <bubkoo.wy@gmail.com>
|
||||
文瑀 <wenyu.jqq@antfin.com>
|
||||
杨凌 <89915256@qq.com>
|
||||
柏愚 <boyu.zlj@antfin.com>
|
||||
粑粑超 <842486229@qq.com>
|
||||
金强强 <wenyu.jqq@antfin.com>
|
||||
问崖 <bubkoo.wy@gmail.com>
|
||||
问崖 <pengxingjian.pxj@antfin.com>
|
File diff suppressed because one or more lines are too long
Before (image error) Size: 8.7 MiB After (image error) Size: 9.7 MiB |
@ -33,8 +33,8 @@
|
||||
- Server-side Rendering
|
||||
|
||||
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Safari |
|
||||
| --- | --- | --- | --- |
|
||||
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
## Installation
|
||||
|
||||
@ -94,20 +94,16 @@ graph.addEdge({
|
||||
## Development
|
||||
|
||||
```shell
|
||||
# install yarn and lerna
|
||||
$ npm install yarn -g
|
||||
$ npm install lerna -g
|
||||
|
||||
# install deps and build
|
||||
$ yarn bootstrap
|
||||
$ pnpm install
|
||||
|
||||
# enter the specified project development and debugging
|
||||
cd packages/x6
|
||||
yarn build:watch
|
||||
pnpm run build:watch
|
||||
|
||||
# start example to see the effect
|
||||
cd examples/x6-example-features
|
||||
yarn start
|
||||
pnpm run start
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
14
README.md
14
README.md
@ -33,8 +33,8 @@
|
||||
- 支持服务端渲染。
|
||||
|
||||
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Safari |
|
||||
| --- | --- | --- | --- |
|
||||
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
## 安装
|
||||
|
||||
@ -94,20 +94,16 @@ graph.addEdge({
|
||||
## 本地开发
|
||||
|
||||
```shell
|
||||
# 全局安装 yarn 和 lerna 工具
|
||||
$ npm install yarn -g
|
||||
$ npm install lerna -g
|
||||
|
||||
# 安装项目依赖和初始化构建
|
||||
$ yarn bootstrap
|
||||
$ pnpm install
|
||||
|
||||
# 进入到指定项目开发和调试
|
||||
cd packages/x6
|
||||
yarn build:watch
|
||||
pnpm run build:watch
|
||||
|
||||
# 启动 example 查看效果
|
||||
cd examples/x6-example-features
|
||||
yarn start
|
||||
pnpm run start
|
||||
```
|
||||
|
||||
## 参与共建
|
||||
|
@ -1,113 +0,0 @@
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-14)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-07)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-05)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-03)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-11-01)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-22)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-19)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-08)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-09-30)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-09-22)
|
||||
|
||||
## @antv/eslint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/eslint-config@1.0.0...@antv/eslint-config@1.0.1) (2021-09-13)
|
||||
|
||||
# @antv/eslint-config 1.0.0 (2021-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix eslint errors ([06ba121](https://github.com/antvis/x6/commit/06ba121e3b937c5aeebbbe2b24e6db67fc141cb9))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add lint rules for *.js files ([21f5436](https://github.com/antvis/x6/commit/21f54366776a304e8abb9df087c645653fb22ed5))
|
||||
* ✨ add unicorn plugin ([3e8515b](https://github.com/antvis/x6/commit/3e8515bedf0da8ca10119c8a00ffd972f3a1e3aa))
|
||||
* ✨ support bitwise ([d9bc9d9](https://github.com/antvis/x6/commit/d9bc9d92e8bec74e780a44364f9e21da5f34096b))
|
||||
|
||||
# @antv/eslint-config 1.0.0 (2021-06-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix eslint errors ([06ba121](https://github.com/antvis/x6/commit/06ba121e3b937c5aeebbbe2b24e6db67fc141cb9))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add lint rules for *.js files ([21f5436](https://github.com/antvis/x6/commit/21f54366776a304e8abb9df087c645653fb22ed5))
|
||||
* ✨ add unicorn plugin ([3e8515b](https://github.com/antvis/x6/commit/3e8515bedf0da8ca10119c8a00ffd972f3a1e3aa))
|
||||
* ✨ support bitwise ([d9bc9d9](https://github.com/antvis/x6/commit/d9bc9d92e8bec74e780a44364f9e21da5f34096b))
|
||||
|
||||
# @antv/eslint-config 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix eslint errors ([06ba121](https://github.com/antvis/x6/commit/06ba121e3b937c5aeebbbe2b24e6db67fc141cb9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add lint rules for *.js files ([21f5436](https://github.com/antvis/x6/commit/21f54366776a304e8abb9df087c645653fb22ed5))
|
||||
* ✨ add unicorn plugin ([3e8515b](https://github.com/antvis/x6/commit/3e8515bedf0da8ca10119c8a00ffd972f3a1e3aa))
|
||||
* ✨ support bitwise ([d9bc9d9](https://github.com/antvis/x6/commit/d9bc9d92e8bec74e780a44364f9e21da5f34096b))
|
||||
|
||||
# @antv/eslint-config 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix eslint errors ([06ba121](https://github.com/antvis/x6/commit/06ba121e3b937c5aeebbbe2b24e6db67fc141cb9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add lint rules for *.js files ([21f5436](https://github.com/antvis/x6/commit/21f54366776a304e8abb9df087c645653fb22ed5))
|
||||
* ✨ add unicorn plugin ([3e8515b](https://github.com/antvis/x6/commit/3e8515bedf0da8ca10119c8a00ffd972f3a1e3aa))
|
||||
* ✨ support bitwise ([d9bc9d9](https://github.com/antvis/x6/commit/d9bc9d92e8bec74e780a44364f9e21da5f34096b))
|
||||
|
||||
# @antv/eslint-config 1.0.0 (2021-06-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix eslint errors ([06ba121](https://github.com/antvis/x6/commit/06ba121e3b937c5aeebbbe2b24e6db67fc141cb9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add lint rules for *.js files ([21f5436](https://github.com/antvis/x6/commit/21f54366776a304e8abb9df087c645653fb22ed5))
|
||||
* ✨ add unicorn plugin ([3e8515b](https://github.com/antvis/x6/commit/3e8515bedf0da8ca10119c8a00ffd972f3a1e3aa))
|
||||
* ✨ support bitwise ([d9bc9d9](https://github.com/antvis/x6/commit/d9bc9d92e8bec74e780a44364f9e21da5f34096b))
|
@ -1,55 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/eslint-config",
|
||||
"version": "1.0.1",
|
||||
"main": "./lib/index.js",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"scripts": {
|
||||
"clean": "rimraf lib",
|
||||
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix",
|
||||
"build": "tsc --outDir ./lib",
|
||||
"build:watch": "yarn build --w",
|
||||
"prebuild": "run-s clean",
|
||||
"postinstall": "run-s build",
|
||||
"prepare": "run-s build",
|
||||
"precommit": "lint-staged"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.ts": [
|
||||
"eslint --fix"
|
||||
]
|
||||
},
|
||||
"inherits": [
|
||||
"@antv/x6-package-json/cli.json",
|
||||
"@antv/x6-package-json/eslint.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.9.1",
|
||||
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
||||
"@typescript-eslint/parser": "^4.31.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-airbnb-base": "^14.2.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-import": "^2.24.2",
|
||||
"eslint-plugin-jest": "^24.4.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-promise": "^5.1.0",
|
||||
"eslint-plugin-react": "^7.25.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-unicorn": "^36.0.0",
|
||||
"fs-extra": "^10.0.0",
|
||||
"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",
|
||||
"watch": "^1.0.2"
|
||||
}
|
||||
}
|
@ -1,133 +0,0 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: [
|
||||
'@typescript-eslint',
|
||||
'eslint-comments',
|
||||
'import',
|
||||
'flowtype',
|
||||
'jest',
|
||||
'jsx-a11y',
|
||||
'prettier',
|
||||
'promise',
|
||||
'react',
|
||||
'react-hooks',
|
||||
'unicorn',
|
||||
],
|
||||
extends: [
|
||||
'airbnb-base',
|
||||
'eslint:recommended',
|
||||
'prettier',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:jsx-a11y/recommended',
|
||||
'plugin:import/errors',
|
||||
'plugin:import/warnings',
|
||||
'plugin:promise/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:react/recommended',
|
||||
'plugin:react-hooks/recommended',
|
||||
],
|
||||
env: {
|
||||
browser: true,
|
||||
commonjs: true,
|
||||
es6: true,
|
||||
jest: true,
|
||||
node: true,
|
||||
mocha: true,
|
||||
jasmine: true,
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
// project: './tsconfig.json',
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
requireConfigFile: false,
|
||||
},
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'no-bitwise': 0,
|
||||
'no-continue': 0,
|
||||
'no-lonely-if': 0,
|
||||
'no-multi-assign': 0,
|
||||
'no-nested-ternary': 0,
|
||||
'no-inner-declarations': 0,
|
||||
'no-unused-expressions': 0,
|
||||
'max-classes-per-file': 0,
|
||||
'prefer-destructuring': 0,
|
||||
'class-methods-use-this': 0,
|
||||
'implicit-arrow-linebreak': 0,
|
||||
'lines-between-class-members': 0,
|
||||
'@typescript-eslint/lines-between-class-members': 0,
|
||||
'consistent-return': 0,
|
||||
'no-return-assign': [2, 'except-parens'],
|
||||
'no-param-reassign': [2, { props: false }],
|
||||
'no-cond-assign': [2, 'except-parens'],
|
||||
'no-console': [2, { allow: ['warn', 'error'] }],
|
||||
'@typescript-eslint/no-unused-expressions': [
|
||||
2,
|
||||
{ allowShortCircuit: true, allowTernary: true },
|
||||
],
|
||||
eqeqeq: [2, 'always', { null: 'ignore' }],
|
||||
'func-names': [1, 'never', { generators: 'as-needed' }],
|
||||
|
||||
'import/export': 0,
|
||||
'import/no-cycle': 0,
|
||||
'import/extensions': 0,
|
||||
'import/no-unresolved': 0,
|
||||
'import/prefer-default-export': 0,
|
||||
'import/no-extraneous-dependencies': 0,
|
||||
|
||||
'promise/always-return': 0,
|
||||
'promise/catch-or-return': 0,
|
||||
|
||||
'@typescript-eslint/no-namespace': 0,
|
||||
'@typescript-eslint/no-var-requires': 0,
|
||||
'@typescript-eslint/no-explicit-any': 0,
|
||||
'@typescript-eslint/no-non-null-assertion': 0,
|
||||
'@typescript-eslint/no-empty-function': 0,
|
||||
'@typescript-eslint/no-empty-interface': 0,
|
||||
'@typescript-eslint/explicit-module-boundary-types': 0,
|
||||
|
||||
'no-shadow': 0,
|
||||
'@typescript-eslint/no-shadow': 0,
|
||||
|
||||
camelcase: 0,
|
||||
'@typescript-eslint/camelcase': 0,
|
||||
|
||||
'no-use-before-define': 0,
|
||||
'@typescript-eslint/no-use-before-define': 0,
|
||||
|
||||
'no-useless-constructor': 0,
|
||||
'@typescript-eslint/no-useless-constructor': 0,
|
||||
|
||||
'no-unused-vars': 0,
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
2,
|
||||
{ vars: 'all', args: 'after-used', ignoreRestSiblings: true },
|
||||
],
|
||||
|
||||
'no-redeclare': 0,
|
||||
'@typescript-eslint/no-redeclare': [2, { ignoreDeclarationMerge: true }],
|
||||
|
||||
'react/sort-comp': 0,
|
||||
'react/prop-types': 0,
|
||||
'react/jsx-props-no-spreading': 0,
|
||||
'react/destructuring-assignment': 0,
|
||||
'react/no-access-state-in-setstate': 0,
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['**/*.js'],
|
||||
rules: {
|
||||
'no-console': 0,
|
||||
'global-require': 0,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/common.sh"
|
||||
|
||||
yarn commitlint --edit "$1"
|
@ -1 +0,0 @@
|
||||
echo
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/common.sh"
|
||||
|
||||
yarn precommit
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/common.sh"
|
||||
|
||||
npx devmoji -e --lint
|
@ -1,151 +0,0 @@
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-14)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-07)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-05)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-03)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-11-01)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-22)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-19)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-08)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-09-30)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-09-22)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-09-13)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-31)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-24)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-18)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-17)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-16)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-06)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-06)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-08-03)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-27)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-22)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-21)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-21)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-10)
|
||||
|
||||
## @antv/x6-package-json [1.0.1](https://github.com/antvis/x6/compare/@antv/x6-package-json@1.0.0...@antv/x6-package-json@1.0.1) (2021-07-09)
|
||||
|
||||
# @antv/x6-package-json 1.0.0 (2021-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix karma can not process lodash-es ([f7ae6b1](https://github.com/antvis/x6/commit/f7ae6b1f6b961a01c58d8827a9aaa2d5a984a6e0))
|
||||
* 🐛 should only read json files ([af9d87f](https://github.com/antvis/x6/commit/af9d87fedccf4ba791db5570ca73228520107e2a))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add deps for jest ([4c831b8](https://github.com/antvis/x6/commit/4c831b84d032cc92f1c914143f4182772202620d))
|
||||
* ✨ add package inherit, compare commands ([d494b9f](https://github.com/antvis/x6/commit/d494b9f92e4e98816fb00acc02296bf5aa63f1b4))
|
||||
* ✨ sharing partial(devDependencies, peerDependencies, dependencies, scripts) package.json ([95c1112](https://github.com/antvis/x6/commit/95c1112c4e226c060dd94019f6ce5530a922a92f))
|
||||
* ✨ update vue deps ([37eae0b](https://github.com/antvis/x6/commit/37eae0b12502fba373d30153e0d1ac2085e843e8))
|
||||
|
||||
# @antv/x6-package-json 1.0.0 (2021-06-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix karma can not process lodash-es ([f7ae6b1](https://github.com/antvis/x6/commit/f7ae6b1f6b961a01c58d8827a9aaa2d5a984a6e0))
|
||||
* 🐛 should only read json files ([af9d87f](https://github.com/antvis/x6/commit/af9d87fedccf4ba791db5570ca73228520107e2a))
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add deps for jest ([4c831b8](https://github.com/antvis/x6/commit/4c831b84d032cc92f1c914143f4182772202620d))
|
||||
* ✨ add package inherit, compare commands ([d494b9f](https://github.com/antvis/x6/commit/d494b9f92e4e98816fb00acc02296bf5aa63f1b4))
|
||||
* ✨ sharing partial(devDependencies, peerDependencies, dependencies, scripts) package.json ([95c1112](https://github.com/antvis/x6/commit/95c1112c4e226c060dd94019f6ce5530a922a92f))
|
||||
* ✨ update vue deps ([37eae0b](https://github.com/antvis/x6/commit/37eae0b12502fba373d30153e0d1ac2085e843e8))
|
||||
|
||||
# @antv/x6-package-json 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix karma can not process lodash-es ([f7ae6b1](https://github.com/antvis/x6/commit/f7ae6b1f6b961a01c58d8827a9aaa2d5a984a6e0))
|
||||
* 🐛 should only read json files ([af9d87f](https://github.com/antvis/x6/commit/af9d87fedccf4ba791db5570ca73228520107e2a))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add deps for jest ([4c831b8](https://github.com/antvis/x6/commit/4c831b84d032cc92f1c914143f4182772202620d))
|
||||
* ✨ add package inherit, compare commands ([d494b9f](https://github.com/antvis/x6/commit/d494b9f92e4e98816fb00acc02296bf5aa63f1b4))
|
||||
* ✨ sharing partial(devDependencies, peerDependencies, dependencies, scripts) package.json ([95c1112](https://github.com/antvis/x6/commit/95c1112c4e226c060dd94019f6ce5530a922a92f))
|
||||
* ✨ update vue deps ([37eae0b](https://github.com/antvis/x6/commit/37eae0b12502fba373d30153e0d1ac2085e843e8))
|
||||
|
||||
# @antv/x6-package-json 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix karma can not process lodash-es ([f7ae6b1](https://github.com/antvis/x6/commit/f7ae6b1f6b961a01c58d8827a9aaa2d5a984a6e0))
|
||||
* 🐛 should only read json files ([af9d87f](https://github.com/antvis/x6/commit/af9d87fedccf4ba791db5570ca73228520107e2a))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add deps for jest ([4c831b8](https://github.com/antvis/x6/commit/4c831b84d032cc92f1c914143f4182772202620d))
|
||||
* ✨ add package inherit, compare commands ([d494b9f](https://github.com/antvis/x6/commit/d494b9f92e4e98816fb00acc02296bf5aa63f1b4))
|
||||
* ✨ sharing partial(devDependencies, peerDependencies, dependencies, scripts) package.json ([95c1112](https://github.com/antvis/x6/commit/95c1112c4e226c060dd94019f6ce5530a922a92f))
|
||||
* ✨ update vue deps ([37eae0b](https://github.com/antvis/x6/commit/37eae0b12502fba373d30153e0d1ac2085e843e8))
|
||||
|
||||
# @antv/x6-package-json 1.0.0 (2021-06-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 🐛 fix karma can not process lodash-es ([f7ae6b1](https://github.com/antvis/x6/commit/f7ae6b1f6b961a01c58d8827a9aaa2d5a984a6e0))
|
||||
* 🐛 should only read json files ([af9d87f](https://github.com/antvis/x6/commit/af9d87fedccf4ba791db5570ca73228520107e2a))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ add deps for jest ([4c831b8](https://github.com/antvis/x6/commit/4c831b84d032cc92f1c914143f4182772202620d))
|
||||
* ✨ add package inherit, compare commands ([d494b9f](https://github.com/antvis/x6/commit/d494b9f92e4e98816fb00acc02296bf5aa63f1b4))
|
||||
* ✨ sharing partial(devDependencies, peerDependencies, dependencies, scripts) package.json ([95c1112](https://github.com/antvis/x6/commit/95c1112c4e226c060dd94019f6ce5530a922a92f))
|
||||
* ✨ update vue deps ([37eae0b](https://github.com/antvis/x6/commit/37eae0b12502fba373d30153e0d1ac2085e843e8))
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"peerDependencies": {
|
||||
"@angular/core": ">=10.2.3",
|
||||
"@angular/cdk": ">=10.2.3",
|
||||
"@angular/common": "^10.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular/core": "^10.2.3",
|
||||
"@angular/cdk": "^10.2.3",
|
||||
"@angular/common": "^10.2.3"
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"peerDependencies": {
|
||||
"antd": ">=4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"antd": "^4.4.2"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
require('../lib/compare/cli')
|
@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// @see https://github.com/microsoft/package-inherit
|
||||
|
||||
require('../lib/inherit/cli')
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.9.1",
|
||||
"fs-extra": "^10.0.0",
|
||||
"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"
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
||||
"@typescript-eslint/parser": "^4.31.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-airbnb-base": "^14.2.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-import": "^2.24.2",
|
||||
"eslint-plugin-jest": "^24.4.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-promise": "^5.1.0",
|
||||
"eslint-plugin-react": "^7.25.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-unicorn": "^36.0.0"
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.1",
|
||||
"coveralls": "^3.1.1",
|
||||
"jest": "^27.1.1",
|
||||
"ts-jest": "^27.0.5"
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@types/jasmine": "^3.9.0",
|
||||
"@types/sinon": "^10.0.2",
|
||||
"coveralls": "^3.1.1",
|
||||
"jasmine-core": "^3.9.0",
|
||||
"karma": "^6.3.4",
|
||||
"karma-chrome-launcher": "^3.1.0",
|
||||
"karma-cli": "^2.0.0",
|
||||
"karma-jasmine": "^4.0.1",
|
||||
"karma-spec-reporter": "^0.0.32",
|
||||
"karma-typescript": "5.3.0",
|
||||
"karma-typescript-es6-transform": "5.3.0",
|
||||
"sinon": "^11.1.2"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
保持下面两个模块的版本,不然 x6 主包的测试跑步起来
|
||||
- "karma-typescript": "^5.3.0"
|
||||
- "karma-typescript-es6-transform": "^5.3.0"
|
@ -1,11 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"less": "^4.1.1",
|
||||
"stylelint": "^13.13.1",
|
||||
"stylelint-config-prettier": "^8.0.2",
|
||||
"stylelint-config-rational-order": "^0.1.2",
|
||||
"stylelint-config-standard": "^22.0.0",
|
||||
"stylelint-declaration-block-no-ignored-properties": "^2.4.0",
|
||||
"stylelint-order": "^4.1.0"
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/x6-package-json",
|
||||
"version": "1.0.1",
|
||||
"bin": {
|
||||
"package-compare": "./bin/package-compare.js",
|
||||
"package-inherit": "./bin/package-inherit.js"
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
"bin"
|
||||
],
|
||||
"scripts": {
|
||||
"clean": "rimraf lib",
|
||||
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix",
|
||||
"build": "tsc --outDir ./lib",
|
||||
"build:watch": "yarn build --w",
|
||||
"prebuild": "run-s clean",
|
||||
"postinstall": "run-s build",
|
||||
"prepare": "run-s build",
|
||||
"precommit": "lint-staged"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.ts": [
|
||||
"eslint --fix"
|
||||
]
|
||||
},
|
||||
"inherits": [
|
||||
"@antv/x6-package-json/cli.json",
|
||||
"@antv/x6-package-json/eslint.json",
|
||||
"@antv/x6-package-json/rollup.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^20.0.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.4",
|
||||
"@rollup/plugin-replace": "^3.0.0",
|
||||
"@rollup/plugin-typescript": "^8.2.5",
|
||||
"@types/node": "^16.9.1",
|
||||
"@types/parse-package-name": "^0.1.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
||||
"@typescript-eslint/parser": "^4.31.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-airbnb-base": "^14.2.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-import": "^2.24.2",
|
||||
"eslint-plugin-jest": "^24.4.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-promise": "^5.1.0",
|
||||
"eslint-plugin-react": "^7.25.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-unicorn": "^36.0.0",
|
||||
"fs-extra": "^10.0.0",
|
||||
"lint-staged": "^11.1.2",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.3.6",
|
||||
"prettier": "^2.4.0",
|
||||
"pretty-quick": "^3.1.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup": "^2.56.3",
|
||||
"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",
|
||||
"ts-node": "^10.2.1",
|
||||
"tslib": "^2.3.1",
|
||||
"typescript": "^4.4.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"latest-version": "^5.1.0",
|
||||
"chalk": "^4.1.0",
|
||||
"detect-newline": "^3.1.0",
|
||||
"parse-package-name": "^0.1.0",
|
||||
"workspace-tools": "^0.12.3",
|
||||
"yargs-parser": "^20.2.7"
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8.6 || >=17.0.0",
|
||||
"react-dom": ">=16.8.6 || >=17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^16.9.13",
|
||||
"react": "^16.12.0",
|
||||
"react-dom": "^16.12.0"
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^20.0.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.4",
|
||||
"@rollup/plugin-replace": "^3.0.0",
|
||||
"@rollup/plugin-typescript": "^8.2.5",
|
||||
"postcss": "^8.3.6",
|
||||
"rollup": "^2.56.3",
|
||||
"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",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"extends": "../../../.eslintrc",
|
||||
"rules": {
|
||||
"no-console": 0
|
||||
}
|
||||
}
|
@ -1,102 +0,0 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import chalk from 'chalk'
|
||||
import latestVersion from 'latest-version'
|
||||
|
||||
const root = path.resolve(__dirname, '../../')
|
||||
const reserved = 'package.json'
|
||||
const sections = ['dependencies', 'devDependencies']
|
||||
const pad = (str: string, max: number) => {
|
||||
return str.length < max
|
||||
? `${str}${Array(max - str.length).join(' ')}`
|
||||
: `${str.substr(0, max - 4)}...`
|
||||
}
|
||||
|
||||
const pkgs = []
|
||||
const files = fs.readdirSync(root)
|
||||
files.forEach((name: string) => {
|
||||
const file = path.join(root, name)
|
||||
const stat = fs.statSync(file)
|
||||
if (stat.isFile() && path.extname(file) === '.json' && name !== reserved) {
|
||||
pkgs.push(file)
|
||||
}
|
||||
})
|
||||
|
||||
pkgs.unshift(path.resolve(__dirname, '../../../../', reserved))
|
||||
|
||||
const moduleNames: string[] = []
|
||||
pkgs.forEach((file) => {
|
||||
const content = fs.readFileSync(file, { encoding: 'utf-8' })
|
||||
const pkgJSON = JSON.parse(content)
|
||||
sections.forEach((section) => {
|
||||
const deps = pkgJSON[section]
|
||||
if (deps) {
|
||||
moduleNames.push(...Object.keys(deps))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const paths = pkgs.map((file) => path.relative(process.cwd(), file))
|
||||
const maxFileLength = Math.max(...paths.map((item) => item.length)) + 2
|
||||
const maxNameLength = Math.min(
|
||||
Math.max(...moduleNames.map((item) => item.length)) + 2,
|
||||
40,
|
||||
)
|
||||
const maxSectionLength = Math.max(...sections.map((item) => item.length)) + 2
|
||||
const log = (
|
||||
pkg: string,
|
||||
section: string,
|
||||
name: string,
|
||||
local: string,
|
||||
remote: string,
|
||||
highlight?: boolean,
|
||||
) => {
|
||||
const line = `${pad(pkg, maxFileLength)} ${pad(
|
||||
section,
|
||||
maxSectionLength,
|
||||
)} ${pad(name, maxNameLength)} ${pad(local, 10)} ${remote}`
|
||||
console.log(highlight ? chalk.gray(line) : line)
|
||||
}
|
||||
|
||||
console.log()
|
||||
console.log(
|
||||
'Comapre packages local version with latest version on npm registry.',
|
||||
)
|
||||
console.log()
|
||||
|
||||
log('file', 'section', 'name', 'local', 'remote')
|
||||
console.log(
|
||||
Array(maxFileLength + maxSectionLength + maxNameLength + 21).join('-'),
|
||||
)
|
||||
|
||||
pkgs.forEach((file) => {
|
||||
const content = fs.readFileSync(file, { encoding: 'utf-8' })
|
||||
const pkgJSON = JSON.parse(content)
|
||||
const defers: Promise<any>[] = []
|
||||
sections.forEach((section) => {
|
||||
const deps = pkgJSON[section]
|
||||
if (deps) {
|
||||
Object.keys(deps).forEach(async (name) => {
|
||||
const pkg = path.relative(process.cwd(), file)
|
||||
const local = deps[name]
|
||||
const defer = latestVersion(name).then((remote) => {
|
||||
return {
|
||||
pkg,
|
||||
section,
|
||||
name,
|
||||
local,
|
||||
remote,
|
||||
}
|
||||
})
|
||||
defers.push(defer)
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
Promise.all(defers).then((arr) => {
|
||||
arr.forEach(({ pkg, section, name, local, remote }) => {
|
||||
const localv = local.replace(/^[\^~]|>=/, '')
|
||||
log(pkg, section, name, local, remote, localv !== remote)
|
||||
})
|
||||
})
|
||||
})
|
@ -1,21 +0,0 @@
|
||||
import { collect } from './collect'
|
||||
|
||||
export function check(cwd: string, args: any) {
|
||||
const updatedInfo = collect(cwd)
|
||||
if (updatedInfo.modifiedPackages.length > 0) {
|
||||
const recoveryCommand = args.recovery || 'package-inherit update'
|
||||
console.error(
|
||||
`
|
||||
The inheritance of package.json is in an inconsistent state.
|
||||
These packages are inconsistent:
|
||||
|
||||
${updatedInfo.modifiedPackages.sort().join('\n')}
|
||||
|
||||
Please run the following command:
|
||||
> ${recoveryCommand}
|
||||
`,
|
||||
)
|
||||
} else {
|
||||
console.log('Nothing needs to be updated.')
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
import yargsParser from 'yargs-parser'
|
||||
import { update } from './update'
|
||||
import { check } from './check'
|
||||
|
||||
const args = yargsParser(process.argv.slice(2))
|
||||
|
||||
const command = args._[0]
|
||||
|
||||
switch (command) {
|
||||
case 'update':
|
||||
update(process.cwd())
|
||||
break
|
||||
|
||||
case 'check':
|
||||
check(process.cwd(), args)
|
||||
break
|
||||
|
||||
default:
|
||||
console.log(`
|
||||
Usage: package-inherit [command] [--recovery]
|
||||
|
||||
This utility will update package.json in a monorepo to inherit from another
|
||||
package.json template. Currently, support the following sections to merge
|
||||
into the package.json
|
||||
|
||||
- scripts
|
||||
- dependencies
|
||||
- devDependencies
|
||||
- peerDependencies
|
||||
|
||||
Commands:
|
||||
|
||||
update updates the package.json for all packages in a monorepo to
|
||||
match inheritance.
|
||||
check checks all the package.json inheritance are consistent.
|
||||
|
||||
Options:
|
||||
|
||||
--recovery custom recovery command to show developers when the check has failed
|
||||
`)
|
||||
break
|
||||
}
|
@ -1,102 +0,0 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import parsePackageName from 'parse-package-name'
|
||||
import { PackageInfos } from 'workspace-tools/lib/types/PackageInfo'
|
||||
import { getPackageInfos } from 'workspace-tools/lib/getPackageInfos'
|
||||
|
||||
type KeyValue = { [key: string]: string }
|
||||
|
||||
export function collect(cwd: string) {
|
||||
const allPackages = getPackageInfos(cwd)
|
||||
const modifiedPackages: string[] = []
|
||||
const sections = [
|
||||
'devDependencies',
|
||||
'peerDependencies',
|
||||
'dependencies',
|
||||
'scripts',
|
||||
]
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const [pkg, pkgInfo] of Object.entries(allPackages)) {
|
||||
// workspace-tools typings are not comprehensive about what is possible,
|
||||
// so we force cast it
|
||||
const inherits = pkgInfo.inherits as string[]
|
||||
if (inherits) {
|
||||
const merged: { [section: string]: KeyValue } = {}
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const inherit of inherits) {
|
||||
const file = resolveInRepo(pkg, inherit, allPackages)
|
||||
if (!file) {
|
||||
throw new Error(`${file} does not exist`)
|
||||
}
|
||||
const inheritInfo = JSON.parse(fs.readFileSync(file, 'utf-8'))
|
||||
|
||||
// Merge inherit infos for given package together before checking
|
||||
// shouldUpdate. This will allows inherit check behavior to be
|
||||
// symmetric with update behavior, which updates packages defined
|
||||
// in multiple inherit files to their last occurrence.
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const section of sections) {
|
||||
merged[section] = {
|
||||
...merged[section],
|
||||
...inheritInfo[section],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const section of sections) {
|
||||
const prev = pkgInfo[section] as KeyValue
|
||||
const next = merged[section]
|
||||
|
||||
if (shouldUpdate(prev, next)) {
|
||||
const combined = { ...prev, ...next }
|
||||
const sorted: KeyValue = {}
|
||||
Object.keys(combined)
|
||||
.sort()
|
||||
.forEach(function (name) {
|
||||
sorted[name] = combined[name]
|
||||
})
|
||||
|
||||
pkgInfo[section] = sorted
|
||||
modifiedPackages.push(pkg)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { allPackages, modifiedPackages }
|
||||
}
|
||||
|
||||
function resolveInRepo(
|
||||
pkg: string,
|
||||
inherit: string,
|
||||
allPackages: PackageInfos,
|
||||
) {
|
||||
const parsedInfo = parsePackageName(inherit)
|
||||
|
||||
if (parsedInfo.name === '.') {
|
||||
parsedInfo.name = pkg
|
||||
}
|
||||
|
||||
const info = allPackages[parsedInfo.name]
|
||||
if (info) {
|
||||
return path.join(path.dirname(info.packageJsonPath), parsedInfo.path)
|
||||
}
|
||||
}
|
||||
|
||||
function shouldUpdate(mine: KeyValue, theirs?: KeyValue) {
|
||||
if (!theirs) {
|
||||
return false
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const [key, value] of Object.entries(theirs)) {
|
||||
if (mine[key] !== value) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
// Please see: https://github.com/microsoft/package-inherit
|
||||
|
||||
import { update } from './update'
|
||||
import { check } from './check'
|
||||
|
||||
export { update, check }
|
@ -1,27 +0,0 @@
|
||||
import fs from 'fs'
|
||||
import os from 'os'
|
||||
import detectNewline from 'detect-newline'
|
||||
import { collect } from './collect'
|
||||
|
||||
export function update(cwd: string) {
|
||||
const updatedInfo = collect(cwd)
|
||||
if (updatedInfo.modifiedPackages.length > 0) {
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const pkg of updatedInfo.modifiedPackages) {
|
||||
const info = updatedInfo.allPackages[pkg]
|
||||
const { packageJsonPath, ...output } = info
|
||||
|
||||
const newLine =
|
||||
detectNewline(fs.readFileSync(info.packageJsonPath, 'utf-8')) || os.EOL
|
||||
|
||||
fs.writeFileSync(
|
||||
info.packageJsonPath,
|
||||
JSON.stringify(output, null, 2).replace(/\n/g, newLine) + newLine,
|
||||
)
|
||||
}
|
||||
console.log(`Updated these packages: `)
|
||||
console.log(updatedInfo.modifiedPackages.sort().join('\n'))
|
||||
} else {
|
||||
console.log('Nothing needs to be updated.')
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"vue-demi": "^0.7.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.6",
|
||||
"vue": "^2.6.12 || ^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.6",
|
||||
"vue": "^2.6.12"
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
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'
|
||||
import filesize from 'rollup-plugin-filesize'
|
||||
import typescript from '@rollup/plugin-typescript'
|
||||
|
||||
export default (config) => {
|
||||
const { plugins = [], ...others } = config
|
||||
return {
|
||||
input: './src/index.ts',
|
||||
plugins: [
|
||||
typescript({ declaration: false }),
|
||||
resolve(),
|
||||
commonjs(),
|
||||
replace({
|
||||
preventAssignment: true,
|
||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||
}),
|
||||
terser(),
|
||||
filesize(),
|
||||
...plugins,
|
||||
],
|
||||
...others,
|
||||
}
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-14)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-08)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-07)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-05)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-03)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-11-01)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-22)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-19)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-12)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-08)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-02)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-10-01)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-09-30)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-09-22)
|
||||
|
||||
## @antv/stylelint-config [1.0.1](https://github.com/antvis/x6/compare/@antv/stylelint-config@1.0.0...@antv/stylelint-config@1.0.1) (2021-09-13)
|
||||
|
||||
# @antv/stylelint-config 1.0.0 (2021-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ sharing stylelint configurations ([5061c5d](https://github.com/antvis/x6/commit/5061c5ddf875f43578e8f0f81801151f80c51ee9))
|
||||
|
||||
# @antv/stylelint-config 1.0.0 (2021-06-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* update dependencies and fix type errors ([#1103](https://github.com/antvis/x6/issues/1103)) ([056b862](https://github.com/antvis/x6/commit/056b862b4efe7dbdc559cac7194c2453996acc07))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ sharing stylelint configurations ([5061c5d](https://github.com/antvis/x6/commit/5061c5ddf875f43578e8f0f81801151f80c51ee9))
|
||||
|
||||
# @antv/stylelint-config 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ sharing stylelint configurations ([5061c5d](https://github.com/antvis/x6/commit/5061c5ddf875f43578e8f0f81801151f80c51ee9))
|
||||
|
||||
# @antv/stylelint-config 1.0.0 (2021-06-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ sharing stylelint configurations ([5061c5d](https://github.com/antvis/x6/commit/5061c5ddf875f43578e8f0f81801151f80c51ee9))
|
||||
|
||||
# @antv/stylelint-config 1.0.0 (2021-06-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* ✨ sharing stylelint configurations ([5061c5d](https://github.com/antvis/x6/commit/5061c5ddf875f43578e8f0f81801151f80c51ee9))
|
@ -1,63 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/stylelint-config",
|
||||
"version": "1.0.1",
|
||||
"main": "./lib/index.js",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"scripts": {
|
||||
"clean": "rimraf lib",
|
||||
"lint": "eslint 'src/**/*.{js,ts}?(x)' --fix",
|
||||
"build": "tsc --outDir ./lib",
|
||||
"build:watch": "yarn build --w",
|
||||
"prebuild": "run-s clean",
|
||||
"postinstall": "run-s build",
|
||||
"prepare": "run-s build",
|
||||
"precommit": "lint-staged"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.ts": [
|
||||
"eslint --fix"
|
||||
]
|
||||
},
|
||||
"inherits": [
|
||||
"@antv/x6-package-json/cli.json",
|
||||
"@antv/x6-package-json/less.json",
|
||||
"@antv/x6-package-json/eslint.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.9.1",
|
||||
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
||||
"@typescript-eslint/parser": "^4.31.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-airbnb-base": "^14.2.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-import": "^2.24.2",
|
||||
"eslint-plugin-jest": "^24.4.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-promise": "^5.1.0",
|
||||
"eslint-plugin-react": "^7.25.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-unicorn": "^36.0.0",
|
||||
"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",
|
||||
"stylelint": "^13.13.1",
|
||||
"stylelint-config-prettier": "^8.0.2",
|
||||
"stylelint-config-rational-order": "^0.1.2",
|
||||
"stylelint-config-standard": "^22.0.0",
|
||||
"stylelint-declaration-block-no-ignored-properties": "^2.4.0",
|
||||
"stylelint-order": "^4.1.0",
|
||||
"ts-node": "^10.2.1",
|
||||
"typescript": "^4.4.3",
|
||||
"watch": "^1.0.2"
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
module.exports = {
|
||||
extends: [
|
||||
'stylelint-config-standard',
|
||||
'stylelint-config-rational-order',
|
||||
'stylelint-config-prettier',
|
||||
],
|
||||
plugins: [
|
||||
'stylelint-order',
|
||||
'stylelint-declaration-block-no-ignored-properties',
|
||||
],
|
||||
rules: {
|
||||
'block-no-empty': null,
|
||||
'function-name-case': 'lower',
|
||||
'comment-empty-line-before': null,
|
||||
'no-invalid-double-slash-comments': null,
|
||||
'no-descending-specificity': null,
|
||||
'declaration-empty-line-before': null,
|
||||
'no-duplicate-selectors': null,
|
||||
},
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
# http://editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"extends": "eslint-config-umi"
|
||||
}
|
20
examples/x6-app-dag/.gitignore
vendored
20
examples/x6-app-dag/.gitignore
vendored
@ -1,20 +0,0 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/npm-debug.log*
|
||||
/yarn-error.log
|
||||
/yarn.lock
|
||||
/package-lock.json
|
||||
|
||||
# production
|
||||
/dist
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
|
||||
# umi
|
||||
/src/.umi
|
||||
/src/.umi-production
|
||||
/src/.umi-test
|
||||
/.env.local
|
@ -1,8 +0,0 @@
|
||||
**/*.md
|
||||
**/*.svg
|
||||
**/*.ejs
|
||||
**/*.html
|
||||
package.json
|
||||
.umi
|
||||
.umi-production
|
||||
.umi-test
|
@ -1,14 +0,0 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"semi": false,
|
||||
"printWidth": 80,
|
||||
"overrides": [
|
||||
{
|
||||
"files": ".prettierrc",
|
||||
"options": {
|
||||
"parser": "json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { defineConfig } from 'umi'
|
||||
|
||||
export default defineConfig({
|
||||
publicPath: './',
|
||||
routes: [
|
||||
{ path: '/', component: '@/pages/index' },
|
||||
{ path: '/apps/dag', component: '@/pages/index' },
|
||||
],
|
||||
theme: {
|
||||
'@ant-prefix': 'ant',
|
||||
'@menu-item-active-bg': '#f0f5ff',
|
||||
},
|
||||
extraBabelPlugins: [
|
||||
[
|
||||
'import',
|
||||
{
|
||||
libraryName: '@antv/x6-react-components',
|
||||
libraryDirectory: 'es',
|
||||
transformToDefaultImport: false,
|
||||
style: true,
|
||||
},
|
||||
],
|
||||
],
|
||||
})
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
# X6 DAG React demo project
|
||||
|
||||
## Getting Started
|
||||
|
||||
Install dependencies,
|
||||
|
||||
```bash
|
||||
$ yarn
|
||||
```
|
||||
|
||||
Start the dev server,
|
||||
|
||||
```bash
|
||||
$ yarn start
|
||||
```
|
@ -1,49 +0,0 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@antv/x6-app-dag",
|
||||
"version": "1.1.7",
|
||||
"scripts": {
|
||||
"start": "umi dev",
|
||||
"build": "umi build",
|
||||
"postinstall": "umi generate tmp",
|
||||
"prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
|
||||
"lint": "umi-lint --eslint src/ -p.no-semi --prettier --fix",
|
||||
"test:coverage": "umi-test --coverage"
|
||||
},
|
||||
"gitHooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,jsx,less,md,json}": [
|
||||
"prettier --write"
|
||||
],
|
||||
"*.ts?(x)": [
|
||||
"prettier --parser=typescript --write"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/icons": "^4.2.1",
|
||||
"@antv/x6": "^1.30.2",
|
||||
"@antv/x6-react-components": "^1.1.16",
|
||||
"@antv/x6-react-shape": "^1.6.0",
|
||||
"@types/dompurify": "^2.0.4",
|
||||
"ahooks": "^2.7.0",
|
||||
"antd": "^4.4.2",
|
||||
"classnames": "^2.2.6",
|
||||
"dompurify": "^2.1.1",
|
||||
"react": "^16.13.1",
|
||||
"react-dnd": "^11.1.3",
|
||||
"react-dnd-html5-backend": "^11.1.3",
|
||||
"react-dom": "^16.13.1",
|
||||
"umi-lint": "^2.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ant-design/pro-layout": "^5.0.12",
|
||||
"@umijs/preset-react": "1.x",
|
||||
"@umijs/test": "^3.2.19",
|
||||
"lint-staged": "^10.5.3",
|
||||
"prettier": "^2.2.1",
|
||||
"umi": "^3.2.19",
|
||||
"yorkie": "^2.0.0"
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
import React, { useEffect, useMemo, useState } from 'react'
|
||||
import { BehaviorSubject, Observable } from 'rxjs'
|
||||
|
||||
export const useObservableState = <T extends any>(
|
||||
source$: Observable<T> | { (): Observable<T> },
|
||||
initialState?: T,
|
||||
): [T, React.Dispatch<React.SetStateAction<T>>] => {
|
||||
const source = useMemo<Observable<T>>(() => {
|
||||
if (typeof source$ === 'function') {
|
||||
return source$()
|
||||
}
|
||||
return source$
|
||||
}, [source$])
|
||||
const [state, setState] = useState<T>(() => {
|
||||
if (source instanceof BehaviorSubject) {
|
||||
return source.getValue()
|
||||
}
|
||||
return initialState
|
||||
})
|
||||
useEffect(() => {
|
||||
const sub = source.subscribe((v) => {
|
||||
setState(v)
|
||||
})
|
||||
return () => {
|
||||
sub.unsubscribe()
|
||||
}
|
||||
}, [source])
|
||||
return [state, setState]
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
export { unescape } from 'lodash-es'
|
||||
|
||||
export class Deferred<T> {
|
||||
resolve!: (value?: T) => void
|
||||
|
||||
reject!: (err?: any) => void
|
||||
|
||||
promise: Promise<T>
|
||||
|
||||
constructor() {
|
||||
this.promise = new Promise<T>((resolve, reject) => {
|
||||
this.resolve = resolve
|
||||
this.reject = reject
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 解析 JSON 字符串不引起报错
|
||||
export const safeJson = (jsonStr = '{}', defaultVal = {}) => {
|
||||
try {
|
||||
return JSON.parse(jsonStr)
|
||||
} catch (error) {
|
||||
console.warn(`${jsonStr} is not valid json`)
|
||||
return defaultVal
|
||||
}
|
||||
}
|
||||
|
||||
export class CodeName {
|
||||
static parse(codeName = '') {
|
||||
return codeName.replace(/_\d+$/, '').toLocaleLowerCase()
|
||||
}
|
||||
|
||||
static equal(c1: string, c2: string) {
|
||||
return CodeName.parse(c1) === CodeName.parse(c2)
|
||||
}
|
||||
|
||||
static some(list: string[], c2: string) {
|
||||
return list.some((c1) => CodeName.equal(c1, c2))
|
||||
}
|
||||
|
||||
static getFromNode(node: any = {}) {
|
||||
const { codeName = '' } = node
|
||||
return CodeName.parse(codeName)
|
||||
}
|
||||
}
|
||||
|
||||
export const isPromise = (obj: any) =>
|
||||
!!obj &&
|
||||
(typeof obj === 'object' || typeof obj === 'function') &&
|
||||
typeof obj.then === 'function'
|
@ -1,6 +0,0 @@
|
||||
.no-wrap {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
import React, { useCallback } from 'react'
|
||||
import styles from './cut.less'
|
||||
|
||||
interface Props {
|
||||
left: number
|
||||
right: number
|
||||
max: number
|
||||
children: string
|
||||
}
|
||||
|
||||
export const Cut: React.FC<Props> = (props) => {
|
||||
const { left, right = 0, max, children } = props
|
||||
const getText = useCallback(() => {
|
||||
const len = children.length
|
||||
const ellipsis = '...'
|
||||
let leftStr = ''
|
||||
let rightStr = ''
|
||||
|
||||
if (len > max) {
|
||||
if (left && len) {
|
||||
leftStr = children.substr(0, left)
|
||||
} else {
|
||||
leftStr = children.substr(0, max)
|
||||
}
|
||||
|
||||
if (right) {
|
||||
rightStr = children.substr(-right, right)
|
||||
}
|
||||
|
||||
return `${leftStr}${ellipsis}${rightStr}`
|
||||
}
|
||||
|
||||
return children
|
||||
}, [left, right, max, children])
|
||||
return <span className={styles['no-wrap']}>{getText()}</span>
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
import React from 'react'
|
||||
import { unescape } from 'lodash-es'
|
||||
import { Cut } from '@/component/cut'
|
||||
import { Keyword } from '@/component/keyword'
|
||||
|
||||
interface Props {
|
||||
data: any
|
||||
}
|
||||
|
||||
export const ItemName: React.FC<Props> = (props) => {
|
||||
const { data } = props
|
||||
const { keyword, cutParas = {} } = data
|
||||
const name = unescape(data.name)
|
||||
const { max, side } = cutParas
|
||||
if (keyword) {
|
||||
return <Keyword raw={name} keyword={keyword} />
|
||||
}
|
||||
if (max) {
|
||||
return (
|
||||
<Cut max={max} left={side} right={side}>
|
||||
{name}
|
||||
</Cut>
|
||||
)
|
||||
}
|
||||
return <span>{name}</span>
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
.keywordWrapper {
|
||||
strong {
|
||||
color: #dd4b39;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
max-width: 200px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
import React from 'react'
|
||||
import classnames from 'classnames'
|
||||
import styles from './keyword.less'
|
||||
|
||||
interface Props {
|
||||
raw: string
|
||||
keyword: string
|
||||
className?: string
|
||||
}
|
||||
|
||||
export const Keyword: React.FC<Props> = (props) => {
|
||||
const { raw, keyword, className } = props
|
||||
if (keyword) {
|
||||
const regex = new RegExp(keyword, 'ig')
|
||||
const arr = raw.split(regex)
|
||||
return (
|
||||
<span
|
||||
className={classnames({
|
||||
[styles.keywordWrapper]: true,
|
||||
[className!]: !!className,
|
||||
})}
|
||||
>
|
||||
{arr.map((section, index) =>
|
||||
index !== arr.length - 1 ? (
|
||||
<span key={section + index}>
|
||||
{section}
|
||||
<strong>{keyword}</strong>
|
||||
</span>
|
||||
) : (
|
||||
section
|
||||
),
|
||||
)}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
return null
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom'
|
||||
import { Modal, ConfigProvider } from 'antd'
|
||||
import { ModalFuncProps, ModalProps } from 'antd/es/modal'
|
||||
import { isPromise } from '@/common/utils'
|
||||
import { ANT_PREFIX } from '@/constants/global'
|
||||
|
||||
type ShowProps = ModalProps & {
|
||||
afterClose?: (...args: any[]) => void
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
export const showModal = (props: ShowProps) => {
|
||||
const div = document.createElement('div')
|
||||
document.body.appendChild(div)
|
||||
|
||||
let config: ShowProps = {
|
||||
...props,
|
||||
visible: true,
|
||||
onCancel: close,
|
||||
onOk: (e) => {
|
||||
if (typeof props.onOk === 'function') {
|
||||
const ret = props.onOk(e)
|
||||
if (isPromise(ret as any)) {
|
||||
;(ret as any).then(() => {
|
||||
close()
|
||||
})
|
||||
}
|
||||
} else {
|
||||
close()
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
function destroy(...args: any[]) {
|
||||
const unmountResult = ReactDOM.unmountComponentAtNode(div)
|
||||
if (unmountResult && div.parentNode) {
|
||||
div.parentNode.removeChild(div)
|
||||
}
|
||||
if (typeof props.afterClose === 'function') {
|
||||
props.afterClose(...args)
|
||||
}
|
||||
}
|
||||
|
||||
function update(newConfig: ModalFuncProps) {
|
||||
config = {
|
||||
...config,
|
||||
...newConfig,
|
||||
}
|
||||
render(config)
|
||||
}
|
||||
|
||||
function close(...args: any[]) {
|
||||
const nextConfig = {
|
||||
...config,
|
||||
visible: false,
|
||||
afterClose: destroy.bind(undefined, ...args),
|
||||
}
|
||||
update(nextConfig)
|
||||
}
|
||||
|
||||
function render(usedConfig: ModalProps & { children: React.ReactNode }) {
|
||||
const { children, ...others } = usedConfig
|
||||
setTimeout(() => {
|
||||
ReactDOM.render(
|
||||
<ConfigProvider prefixCls={ANT_PREFIX}>
|
||||
<Modal {...others}>{children}</Modal>
|
||||
</ConfigProvider>,
|
||||
div,
|
||||
)
|
||||
}, 0)
|
||||
}
|
||||
|
||||
render(config)
|
||||
|
||||
return {
|
||||
close,
|
||||
update,
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Observable } from 'rxjs'
|
||||
import { Input, ConfigProvider } from 'antd'
|
||||
import { InputProps } from 'antd/es/input'
|
||||
import { useObservableState } from '@/common/hooks/useObservableState'
|
||||
import { ANT_PREFIX } from '@/constants/global'
|
||||
|
||||
interface RxInputProps extends Omit<InputProps, 'value'> {
|
||||
value: Observable<string>
|
||||
}
|
||||
|
||||
export const RxInput: React.FC<RxInputProps> = (props) => {
|
||||
const { value, ...otherProps } = props
|
||||
const [realValue] = useObservableState(() => value)
|
||||
return (
|
||||
<ConfigProvider prefixCls={ANT_PREFIX}>
|
||||
<Input value={realValue} {...otherProps} />
|
||||
</ConfigProvider>
|
||||
)
|
||||
}
|
@ -1 +0,0 @@
|
||||
export const ANT_PREFIX = 'ant'
|
@ -1,14 +0,0 @@
|
||||
export const GROUP_HORIZONTAL__PADDING = 24 // 分组横向 padding
|
||||
export const GROUP_VERTICAL__PADDING = 40 // 分组纵向 padding
|
||||
export const NODE_WIDTH = 180
|
||||
export const NODE_HEIGHT = 32
|
||||
|
||||
// 触发画布重新渲染事件
|
||||
export const RERENDER_EVENT = 'RERENDER_EVENT'
|
||||
|
||||
/*
|
||||
* 以下是拖拽相关
|
||||
*/
|
||||
|
||||
export const DRAGGABLE_ALGO_COMPONENT = 'ALGO_COMPONENT'
|
||||
export const DRAGGABLE_MODEL = 'MODEL'
|
@ -1,42 +0,0 @@
|
||||
.menuWrap {
|
||||
max-height: 316px;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
top: -10px;
|
||||
left: -1px;
|
||||
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);
|
||||
:global {
|
||||
.@{ant-prefix}-menu-item {
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
padding: 0px 8px;
|
||||
margin: 0 !important;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
font-size: 13px;
|
||||
&:hover {
|
||||
color: #1890ff;
|
||||
background-color: @menu-item-active-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
padding-right: 2px;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.wrap {
|
||||
height: 48px;
|
||||
margin-left: 24px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.divider {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
font-size: 12px;
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import React from 'react'
|
||||
import css from './index.less'
|
||||
|
||||
export interface IProps {
|
||||
experimentName?: string
|
||||
}
|
||||
|
||||
export const ExperimentTitle: React.FC<IProps> = ({ experimentName }) => {
|
||||
return (
|
||||
<div className={css.wrap}>
|
||||
<span className={css.name}> {experimentName} </span>
|
||||
</div>
|
||||
)
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
.header {
|
||||
z-index: 99;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 48px;
|
||||
min-height: 48px;
|
||||
overflow: hidden;
|
||||
line-height: 48px;
|
||||
background: #fff;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
|
||||
padding: 0;
|
||||
.headerLeft,
|
||||
.headerRight {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.doc {
|
||||
margin-right: 32px;
|
||||
font-size: 12px;
|
||||
a {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.text {
|
||||
padding: 0 4px;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
:global {
|
||||
.anticon {
|
||||
position: relative;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Layout } from 'antd'
|
||||
import { useObservableState } from '@/common/hooks/useObservableState'
|
||||
import { useExperimentGraph } from '@/pages/rx-models/experiment-graph'
|
||||
import { GithubOutlined } from '@ant-design/icons'
|
||||
import { SimpleLogo } from './logo'
|
||||
import { ExperimentTitle } from './experiment-title'
|
||||
|
||||
import css from './index.less'
|
||||
|
||||
const { Header } = Layout
|
||||
|
||||
interface IProps {
|
||||
experimentId: string
|
||||
}
|
||||
|
||||
export const GuideHeader: React.FC<IProps> = (props) => {
|
||||
const expGraph = useExperimentGraph(props.experimentId)
|
||||
const [activeExperiment] = useObservableState(expGraph.experiment$)
|
||||
|
||||
const openGithub = () => {
|
||||
window.open(
|
||||
'https://github.com/antvis/X6/tree/master/examples/x6-app-dag',
|
||||
'_blank',
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header className={css.header}>
|
||||
<div className={css.headerLeft}>
|
||||
<SimpleLogo />
|
||||
<ExperimentTitle experimentName={activeExperiment.name} />
|
||||
</div>
|
||||
<div className={css.headerRight}>
|
||||
<div className={css.doc}>
|
||||
<GithubOutlined onClick={openGithub} />
|
||||
</div>
|
||||
</div>
|
||||
</Header>
|
||||
</>
|
||||
)
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
.root {
|
||||
height: 48px;
|
||||
width: 64px;
|
||||
line-height: 48px;
|
||||
position: relative;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.08);
|
||||
color: #fba831;
|
||||
}
|
||||
|
||||
.logo {
|
||||
top: 8px;
|
||||
left: 18px;
|
||||
position: absolute;
|
||||
font-size: 28px;
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import React from 'react'
|
||||
import { ApartmentOutlined } from '@ant-design/icons'
|
||||
import css from './index.less'
|
||||
|
||||
interface Props {
|
||||
border?: boolean
|
||||
}
|
||||
|
||||
export const SimpleLogo: React.FC<Props> = ({ border }) => {
|
||||
return (
|
||||
<div className={`${css.root} `}>
|
||||
<ApartmentOutlined className={css.logo} />
|
||||
</div>
|
||||
)
|
||||
}
|
@ -1,268 +0,0 @@
|
||||
export const algoData = [
|
||||
{
|
||||
id: 'recentlyUsed',
|
||||
name: '最近使用',
|
||||
isDir: true,
|
||||
children: [
|
||||
{
|
||||
id: 10,
|
||||
defSource: 2,
|
||||
docUrl: '',
|
||||
ioType: 0,
|
||||
up: 148,
|
||||
down: 11,
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_1',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
engineType: 0,
|
||||
isComposite: false,
|
||||
sequence: 0,
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件1',
|
||||
parentId: 'recentlyUsed',
|
||||
isBranch: false,
|
||||
social: {
|
||||
defSource: 2,
|
||||
isEnabled: true,
|
||||
docUrl: '#',
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_1',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件1',
|
||||
id: 10,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
defSource: 2,
|
||||
docUrl: '',
|
||||
ioType: 0,
|
||||
up: 148,
|
||||
down: 11,
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_2',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
engineType: 0,
|
||||
isComposite: false,
|
||||
sequence: 0,
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件2',
|
||||
parentId: 'recentlyUsed',
|
||||
isBranch: false,
|
||||
social: {
|
||||
defSource: 2,
|
||||
isEnabled: true,
|
||||
docUrl: '#',
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_2',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件2',
|
||||
id: 11,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
defSource: 2,
|
||||
docUrl: '',
|
||||
ioType: 0,
|
||||
up: 148,
|
||||
down: 11,
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_3',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
engineType: 0,
|
||||
isComposite: false,
|
||||
sequence: 0,
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件3',
|
||||
parentId: 'recentlyUsed',
|
||||
isBranch: false,
|
||||
social: {
|
||||
defSource: 2,
|
||||
isEnabled: true,
|
||||
docUrl: '#',
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'algo_3',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '算法组件3',
|
||||
id: 12,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: '数据读写',
|
||||
id: 21,
|
||||
category: 'source',
|
||||
isDir: true,
|
||||
children: [
|
||||
{
|
||||
defSource: 2,
|
||||
docUrl: '',
|
||||
ioType: 0,
|
||||
up: 148,
|
||||
down: 11,
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'odps_source',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
engineType: 0,
|
||||
isComposite: false,
|
||||
sequence: 0,
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '读数据表',
|
||||
id: 100,
|
||||
parentId: 'recentlyUsed',
|
||||
isBranch: false,
|
||||
social: {
|
||||
defSource: 2,
|
||||
isEnabled: true,
|
||||
docUrl: '#',
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: 'odps_source',
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: '读数据表',
|
||||
id: 100,
|
||||
},
|
||||
},
|
||||
],
|
||||
isBranch: true,
|
||||
isExpanded: false,
|
||||
codeName: 'source',
|
||||
parentId: 'platformAlgo',
|
||||
},
|
||||
{
|
||||
name: '统计分析',
|
||||
id: 22,
|
||||
category: 'analytics',
|
||||
isDir: true,
|
||||
children: [],
|
||||
isBranch: true,
|
||||
isExpanded: false,
|
||||
codeName: 'analytics',
|
||||
parentId: 'platformAlgo',
|
||||
},
|
||||
{
|
||||
name: '算法',
|
||||
id: 23,
|
||||
category: 'ai_algo',
|
||||
isDir: true,
|
||||
children: [],
|
||||
isBranch: true,
|
||||
isExpanded: false,
|
||||
codeName: 'algorithm',
|
||||
parentId: 'platformAlgo',
|
||||
},
|
||||
{
|
||||
name: '预测',
|
||||
id: 24,
|
||||
category: 'predict',
|
||||
isDir: true,
|
||||
children: [],
|
||||
isBranch: true,
|
||||
isExpanded: false,
|
||||
codeName: 'predict',
|
||||
parentId: 'platformAlgo',
|
||||
},
|
||||
{
|
||||
name: '评估',
|
||||
id: 25,
|
||||
category: 'evaluation',
|
||||
isDir: true,
|
||||
children: [],
|
||||
isBranch: true,
|
||||
isExpanded: false,
|
||||
codeName: 'evaluation',
|
||||
parentId: 'platformAlgo',
|
||||
},
|
||||
]
|
||||
|
||||
export const searchByKeyword = async (keyword: string) => {
|
||||
return Array(10)
|
||||
.fill(null)
|
||||
.map((i, idx) => {
|
||||
return {
|
||||
defSource: 2,
|
||||
docUrl: '',
|
||||
ioType: 0,
|
||||
up: 148,
|
||||
down: 11,
|
||||
iconType: 1,
|
||||
isDir: false,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
codeName: `${keyword}${idx}`,
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
engineType: 0,
|
||||
isComposite: false,
|
||||
sequence: 0,
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
name: `${keyword}__${idx}`,
|
||||
id: idx,
|
||||
parentId: 'recentlyUsed',
|
||||
isBranch: false,
|
||||
social: {
|
||||
defSource: 2,
|
||||
isEnabled: true,
|
||||
docUrl: '#',
|
||||
iconType: 1,
|
||||
isDisabled: false,
|
||||
author: 'demo author',
|
||||
name: `${keyword}-${idx}`,
|
||||
codeName: `${keyword}${idx}`,
|
||||
catId: 1,
|
||||
lastModifyTime: '2020-08-25 15:43:39',
|
||||
createdTime: '2015-04-16 13:38:11',
|
||||
owner: 'system',
|
||||
description: '组件描述信息',
|
||||
id: idx,
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
@ -1,720 +0,0 @@
|
||||
import random from 'lodash/random'
|
||||
|
||||
interface NodeParams {
|
||||
name: string
|
||||
x: number
|
||||
y: number
|
||||
}
|
||||
|
||||
export const copyNode = ({ name, x, y }: NodeParams) => {
|
||||
const id = `${Date.now()}`
|
||||
return {
|
||||
id,
|
||||
name,
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: id + 100000,
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: id + 200000,
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: id + 300000,
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: id + 400000,
|
||||
},
|
||||
],
|
||||
positionX: x + 200 + random(20, false),
|
||||
positionY: y + random(10, false),
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
}
|
||||
}
|
||||
export const addNode = ({ name, x, y }: NodeParams) => {
|
||||
const id = `${Date.now()}`
|
||||
return {
|
||||
id,
|
||||
name,
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: id + '_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: id + '_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: id + '_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: id + '_out_2',
|
||||
},
|
||||
],
|
||||
positionX: x,
|
||||
positionY: y,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
}
|
||||
}
|
||||
|
||||
export const queryGraph = (id: string) => {
|
||||
return {
|
||||
lang: 'zh_CN',
|
||||
success: true,
|
||||
data: initData,
|
||||
Lang: 'zh_CN',
|
||||
}
|
||||
}
|
||||
|
||||
export const addNodeGroup = async (groupName: string) => {
|
||||
return {
|
||||
success: true,
|
||||
data: {
|
||||
group: {
|
||||
name: groupName,
|
||||
id: Date.now(),
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const initData = {
|
||||
nodes: [
|
||||
{
|
||||
id: '1603716783816',
|
||||
name: '算法组件1',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716783816_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716783816_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716783816_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716783816_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -200,
|
||||
positionY: -300,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716786205',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716786205_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716786205_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716786205_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716786205_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -369,
|
||||
positionY: -161,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716788394',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716788394_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716788394_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716788394_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716788394_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -154,
|
||||
positionY: -161,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716792826',
|
||||
name: '算法组件3',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716792826_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716792826_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716792826_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716792826_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -520,
|
||||
positionY: -30,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716795011',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716795011_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716795011_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716795011_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716795011_out_2',
|
||||
},
|
||||
],
|
||||
positionX: 74,
|
||||
positionY: -160,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716814719',
|
||||
name: '算法组件3',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716814719_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716814719_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716814719_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716814719_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -310,
|
||||
positionY: -30,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716822805',
|
||||
name: '算法组件3',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716822805_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716822805_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716822805_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716822805_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -50,
|
||||
positionY: -30,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716828657',
|
||||
name: '算法组件3',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716828657_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716828657_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716828657_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716828657_out_2',
|
||||
},
|
||||
],
|
||||
positionX: 160,
|
||||
positionY: -30,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716834901',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716834901_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716834901_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716834901_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716834901_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -390,
|
||||
positionY: 90,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716844054',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716844054_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716844054_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716844054_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716844054_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -170,
|
||||
positionY: 90,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716854368',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716854368_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716854368_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716854368_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716854368_out_2',
|
||||
},
|
||||
],
|
||||
positionX: 40,
|
||||
positionY: 90,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716858435',
|
||||
name: '算法组件3',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716858435_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716858435_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716858435_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716858435_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -310,
|
||||
positionY: 230,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
{
|
||||
id: '1603716868041',
|
||||
name: '算法组件2',
|
||||
inPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输入1',
|
||||
id: '1603716868041_in_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输入2',
|
||||
id: '1603716868041_in_2',
|
||||
},
|
||||
],
|
||||
outPorts: [
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 1,
|
||||
description: '输出表1',
|
||||
id: '1603716868041_out_1',
|
||||
},
|
||||
{
|
||||
tableName: 'germany_credit_data',
|
||||
sequence: 2,
|
||||
description: '输出表2',
|
||||
id: '1603716868041_out_2',
|
||||
},
|
||||
],
|
||||
positionX: -100,
|
||||
positionY: 230,
|
||||
codeName: 'source_11111',
|
||||
catId: 1,
|
||||
nodeDefId: 111111,
|
||||
category: 'source',
|
||||
status: 3,
|
||||
groupId: 0,
|
||||
},
|
||||
],
|
||||
links: [
|
||||
{
|
||||
source: '1603716783816',
|
||||
target: '1603716786205',
|
||||
outputPortId: '1603716783816_out_1',
|
||||
inputPortId: '1603716786205_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716783816',
|
||||
target: '1603716788394',
|
||||
outputPortId: '1603716783816_out_2',
|
||||
inputPortId: '1603716788394_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716783816',
|
||||
target: '1603716795011',
|
||||
outputPortId: '1603716783816_out_2',
|
||||
inputPortId: '1603716795011_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716786205',
|
||||
target: '1603716792826',
|
||||
outputPortId: '1603716786205_out_1',
|
||||
inputPortId: '1603716792826_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716788394',
|
||||
target: '1603716814719',
|
||||
outputPortId: '1603716788394_out_1',
|
||||
inputPortId: '1603716814719_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716795011',
|
||||
target: '1603716822805',
|
||||
outputPortId: '1603716795011_out_1',
|
||||
inputPortId: '1603716822805_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716795011',
|
||||
target: '1603716828657',
|
||||
outputPortId: '1603716795011_out_2',
|
||||
inputPortId: '1603716828657_in_2',
|
||||
},
|
||||
{
|
||||
source: '1603716792826',
|
||||
target: '1603716834901',
|
||||
outputPortId: '1603716792826_out_1',
|
||||
inputPortId: '1603716834901_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716814719',
|
||||
target: '1603716844054',
|
||||
outputPortId: '1603716814719_out_1',
|
||||
inputPortId: '1603716844054_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716822805',
|
||||
target: '1603716854368',
|
||||
outputPortId: '1603716822805_out_1',
|
||||
inputPortId: '1603716854368_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716834901',
|
||||
target: '1603716858435',
|
||||
outputPortId: '1603716834901_out_1',
|
||||
inputPortId: '1603716858435_in_1',
|
||||
},
|
||||
{
|
||||
source: '1603716844054',
|
||||
target: '1603716858435',
|
||||
outputPortId: '1603716844054_out_1',
|
||||
inputPortId: '1603716858435_in_2',
|
||||
},
|
||||
{
|
||||
source: '1603716854368',
|
||||
target: '1603716868041',
|
||||
outputPortId: '1603716854368_out_1',
|
||||
inputPortId: '1603716868041_in_1',
|
||||
},
|
||||
],
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
import get from 'lodash/get'
|
||||
import set from 'lodash/set'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
|
||||
let state = {
|
||||
idx: 0,
|
||||
running: false,
|
||||
statusRes: {
|
||||
lang: 'zh_CN',
|
||||
success: true,
|
||||
data: {
|
||||
instStatus: {
|
||||
'10571193': 'success',
|
||||
'10571194': 'success',
|
||||
'10571195': 'success',
|
||||
'10571196': 'success',
|
||||
'10571197': 'success',
|
||||
},
|
||||
execInfo: {
|
||||
'10571193': {
|
||||
jobStatus: 'success',
|
||||
defName: '读数据表',
|
||||
name: 'germany_credit_data',
|
||||
id: 10571193,
|
||||
},
|
||||
'10571194': {
|
||||
jobStatus: 'success',
|
||||
defName: '离散值特征分析',
|
||||
name: '离散值特征分析',
|
||||
id: 10571194,
|
||||
},
|
||||
'10571195': {
|
||||
jobStatus: 'success',
|
||||
defName: '分箱',
|
||||
startTime: '2020-10-19 13:28:55',
|
||||
endTime: '2020-10-19 13:30:20',
|
||||
name: '分箱',
|
||||
id: 10571195,
|
||||
},
|
||||
'10571196': {
|
||||
jobStatus: 'success',
|
||||
defName: '评分卡训练',
|
||||
startTime: '2020-10-19 13:28:55',
|
||||
endTime: '2020-10-19 13:32:02',
|
||||
name: '评分卡训练-1',
|
||||
id: 10571196,
|
||||
},
|
||||
},
|
||||
status: 'default',
|
||||
},
|
||||
Lang: 'zh_CN',
|
||||
} as any,
|
||||
}
|
||||
|
||||
export const runGraph = async (nodes: any[]) => {
|
||||
const newState = getStatus()
|
||||
newState.data.instStatus = {}
|
||||
newState.data.execInfo = {}
|
||||
nodes.forEach((node) => {
|
||||
newState.data.instStatus[node.id] = 'default'
|
||||
newState.data.execInfo[node.id] = {
|
||||
jobStatus: 'default',
|
||||
defName: node.name,
|
||||
startTime: '2020-10-19 13:28:55',
|
||||
endTime: '2020-10-19 13:32:02',
|
||||
name: node.name,
|
||||
id: 10571196,
|
||||
}
|
||||
})
|
||||
state.running = true
|
||||
state.idx = 0
|
||||
state.statusRes = newState
|
||||
return { success: true }
|
||||
}
|
||||
|
||||
export const stopGraphRun = () => {
|
||||
state.running = false
|
||||
state.idx = 0
|
||||
return { success: true }
|
||||
}
|
||||
|
||||
const getStatus = () => cloneDeep(state.statusRes)
|
||||
|
||||
export const queryGraphStatus = async () => {
|
||||
const newState = getStatus()
|
||||
// console.log('Call Api QueryGraphStatus', state)
|
||||
if (state.running) {
|
||||
const { instStatus, execInfo } = newState.data
|
||||
const idList = Object.keys(instStatus)
|
||||
if (state.idx === idList.length) {
|
||||
state.idx = 0
|
||||
state.running = false
|
||||
idList.forEach((id) => {
|
||||
set(instStatus, id, 'success')
|
||||
set(execInfo, `${id}.jobStatus`, 'success')
|
||||
set(newState, 'data.status', 'success')
|
||||
})
|
||||
return newState
|
||||
}
|
||||
const key = get(idList, state.idx)
|
||||
set(instStatus, key, 'running')
|
||||
set(execInfo, `${key}.jobStatus`, 'running')
|
||||
set(newState, 'data.status', 'running')
|
||||
state.idx += 1
|
||||
return newState
|
||||
}
|
||||
return newState
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
/* eslint-disable no-param-reassign */
|
||||
import { useCallback, useState } from 'react'
|
||||
import { algoData, searchByKeyword } from '../mock/algo'
|
||||
|
||||
export namespace Res {
|
||||
export interface Data {
|
||||
defs: NodeDef[]
|
||||
cats: Cat[]
|
||||
}
|
||||
|
||||
export interface NodeDef {
|
||||
up: number
|
||||
down: number
|
||||
defSource: number
|
||||
catName: string
|
||||
isDeprecated: boolean
|
||||
isSubscribed: boolean
|
||||
isEnabled: boolean
|
||||
iconType: number
|
||||
docUrl: string
|
||||
sequence: number
|
||||
author?: string
|
||||
ioType: number
|
||||
lastModifyTime: string
|
||||
createdTime: string
|
||||
catId: number
|
||||
isComposite: boolean
|
||||
codeName: string
|
||||
engineType?: number
|
||||
description?: string
|
||||
name: string
|
||||
id: number
|
||||
type: number
|
||||
owner: string
|
||||
algoSourceType?: number
|
||||
}
|
||||
|
||||
export interface Cat {
|
||||
defSource: number
|
||||
isEnabled: boolean
|
||||
iconType: number
|
||||
codeName: string
|
||||
description: string
|
||||
sequence: number
|
||||
name: string
|
||||
id: number
|
||||
category?: string
|
||||
}
|
||||
}
|
||||
|
||||
function dfs(
|
||||
path = '',
|
||||
nodes: any[],
|
||||
isTarget: (node: any) => boolean,
|
||||
result: string[] = [],
|
||||
) {
|
||||
nodes.forEach((node, idx) => {
|
||||
if (node.children) {
|
||||
const currentIdx = path ? `${path}.${idx}.children` : `${idx}.children`
|
||||
dfs(currentIdx, node.children, isTarget, result)
|
||||
}
|
||||
|
||||
if (isTarget(node)) {
|
||||
const currentIdx = path ? `${path}.${idx}` : idx
|
||||
result.push(currentIdx.toString())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default () => {
|
||||
const [keyword, setKeyword] = useState<string>('') // 搜索关键字
|
||||
const [loading, setLoading] = useState<boolean>(false) // 加载状态
|
||||
const [componentTreeNodes, setComponentTreeNodes] = useState<any[]>([])
|
||||
const [searchList, setSearchList] = useState<any[]>([]) // 搜索结果列表
|
||||
|
||||
// 加载组件
|
||||
const loadComponentNodes = useCallback(() => {
|
||||
setLoading(true)
|
||||
const load = async () => {
|
||||
try {
|
||||
if (algoData) {
|
||||
setComponentTreeNodes(algoData)
|
||||
}
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
|
||||
return load()
|
||||
}, [])
|
||||
|
||||
// 搜索组件
|
||||
const search = useCallback((params: { keyword: string }) => {
|
||||
setKeyword(params.keyword ? params.keyword : '')
|
||||
if (!params.keyword) {
|
||||
return
|
||||
}
|
||||
setLoading(true)
|
||||
|
||||
const load = async () => {
|
||||
try {
|
||||
const nodes = ([] = await searchByKeyword(params.keyword))
|
||||
setSearchList(nodes)
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
load()
|
||||
}, [])
|
||||
|
||||
return {
|
||||
// 状态
|
||||
keyword,
|
||||
loading,
|
||||
componentTreeNodes,
|
||||
searchList,
|
||||
|
||||
// 方法
|
||||
setKeyword,
|
||||
loadComponentNodes,
|
||||
search,
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
@import (reference) '~antd/es/style/themes/default.less';
|
||||
|
||||
.handler {
|
||||
position: absolute;
|
||||
top: 61px;
|
||||
right: 14px;
|
||||
z-index: 99;
|
||||
width: 32px;
|
||||
margin: 0;
|
||||
padding: 3px 0;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
font-size: 16px;
|
||||
list-style-type: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.01);
|
||||
|
||||
.item {
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #000;
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.popover {
|
||||
:global {
|
||||
.@{ant-prefix}-popover-inner-content {
|
||||
padding: 3px 8px;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Popover } from 'antd'
|
||||
import {
|
||||
CompressOutlined,
|
||||
OneToOneOutlined,
|
||||
ZoomInOutlined,
|
||||
ZoomOutOutlined,
|
||||
} from '@ant-design/icons'
|
||||
import classNames from 'classnames'
|
||||
import styles from './index.less'
|
||||
|
||||
interface Props {
|
||||
className?: string
|
||||
onZoomIn: () => void
|
||||
onZoomOut: () => void
|
||||
onFitContent: () => void
|
||||
onRealContent: () => void
|
||||
}
|
||||
|
||||
export const CanvasHandler: React.FC<Props> = (props) => {
|
||||
const { className, onZoomIn, onZoomOut, onFitContent, onRealContent } = props
|
||||
|
||||
return (
|
||||
<ul className={classNames(styles.handler, className)}>
|
||||
<Popover
|
||||
overlayClassName={styles.popover}
|
||||
content="放大"
|
||||
placement="left"
|
||||
>
|
||||
<li onClick={onZoomIn} className={styles.item}>
|
||||
<ZoomInOutlined />
|
||||
</li>
|
||||
</Popover>
|
||||
<Popover
|
||||
overlayClassName={styles.popover}
|
||||
content="缩小"
|
||||
placement="left"
|
||||
>
|
||||
<li onClick={onZoomOut} className={styles.item}>
|
||||
<ZoomOutOutlined />
|
||||
</li>
|
||||
</Popover>
|
||||
<Popover
|
||||
overlayClassName={styles.popover}
|
||||
content="实际尺寸"
|
||||
placement="left"
|
||||
>
|
||||
<li onClick={onRealContent} className={styles.item}>
|
||||
<OneToOneOutlined />
|
||||
</li>
|
||||
</Popover>
|
||||
<Popover
|
||||
overlayClassName={styles.popover}
|
||||
content="适应画布"
|
||||
placement="left"
|
||||
>
|
||||
<li onClick={onFitContent} className={styles.item}>
|
||||
<CompressOutlined />
|
||||
</li>
|
||||
</Popover>
|
||||
</ul>
|
||||
)
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
import { Graph } from '@antv/x6'
|
||||
|
||||
Graph.registerConnector(
|
||||
'pai',
|
||||
(s, t) => {
|
||||
const offset = 4
|
||||
const control = 80
|
||||
const v1 = { x: s.x, y: s.y + offset + control }
|
||||
const v2 = { x: t.x, y: t.y - offset - control }
|
||||
|
||||
return `M ${s.x} ${s.y}
|
||||
L ${s.x} ${s.y + offset}
|
||||
C ${v1.x} ${v1.y} ${v2.x} ${v2.y} ${t.x} ${t.y - offset}
|
||||
L ${t.x} ${t.y}
|
||||
`
|
||||
},
|
||||
true,
|
||||
)
|
@ -1,39 +0,0 @@
|
||||
.list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 220px;
|
||||
.item {
|
||||
font-size: 12px;
|
||||
padding: 0 0 0;
|
||||
line-height: 16px;
|
||||
word-break: break-all;
|
||||
margin: 0;
|
||||
width: 220px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.label {
|
||||
flex: 1 0 45px;
|
||||
text-align: right;
|
||||
padding-right: 4px;
|
||||
position: relative;
|
||||
word-break: break-all;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
&after {
|
||||
content: ':';
|
||||
}
|
||||
}
|
||||
.text {
|
||||
padding-left: 4px;
|
||||
flex: 3 0 100px;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
:global(.aicontent-popover-inner-content) {
|
||||
padding: 12px 8px 8px 8px;
|
||||
}
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
import React from 'react'
|
||||
import { Popover } from 'antd'
|
||||
import { LoadingOutlined } from '@ant-design/icons'
|
||||
import { isEmpty } from 'lodash-es'
|
||||
import css from './index.less'
|
||||
|
||||
interface TooltipProps {
|
||||
children: React.ReactElement
|
||||
status: StatusObj
|
||||
}
|
||||
|
||||
interface StatusObj {
|
||||
name: string
|
||||
defName: string
|
||||
jobStatus: string
|
||||
startTime: string
|
||||
endTime: string
|
||||
}
|
||||
|
||||
export const NodePopover = ({ children, status }: TooltipProps) => {
|
||||
const componentNode = (
|
||||
<div style={{ width: '100%', height: '100%' }}>{children}</div>
|
||||
)
|
||||
if (isEmpty(status)) {
|
||||
return componentNode
|
||||
}
|
||||
return (
|
||||
<Popover
|
||||
placement="bottomLeft"
|
||||
content={<PopoverContent status={status} />}
|
||||
overlayClassName={css.content}
|
||||
>
|
||||
{componentNode}
|
||||
</Popover>
|
||||
)
|
||||
}
|
||||
|
||||
const nodeAtts: StatusObj = {
|
||||
name: '节点名称',
|
||||
defName: '算法名称',
|
||||
jobStatus: '运行状态',
|
||||
startTime: '开始时间',
|
||||
endTime: '结束时间',
|
||||
}
|
||||
|
||||
const PopoverContent = ({ status }: { status: StatusObj }) => (
|
||||
<ul className={css.list}>
|
||||
{!status.name && <LoadingOutlined />}
|
||||
{Object.entries(nodeAtts).map(([key, text]) => {
|
||||
const value = status[key as keyof StatusObj]
|
||||
if (value) {
|
||||
return (
|
||||
<li key={key} className={css.item}>
|
||||
<span className={css.label}>{text}</span>
|
||||
<span className={css.text}>{value}</span>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
return null
|
||||
})}
|
||||
</ul>
|
||||
)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user