refactor(bundle): create separate plugins bundle closes #15

This commit is contained in:
moklick
2019-10-08 20:53:00 +02:00
parent 956f4fb978
commit 161ab7fdfd
10 changed files with 245 additions and 40 deletions
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+189
View File
@@ -0,0 +1,189 @@
.react-flow {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
}
.react-flow__renderer {
width: 100%;
height: 100%;
position: absolute;
}
.react-flow__zoompane {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.react-flow__selectionpane {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
.react-flow__selection {
position: absolute;
top: 0;
left: 0;
background: rgba(0, 89, 220, 0.08);
border: 1px dotted rgba(0, 89, 220, 0.8);
}
.react-flow__edges {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
z-index: 2;
}
.react-flow__edge {
fill: none;
stroke: #bbb;
stroke-width: 2;
pointer-events: all;
}
.react-flow__edge.selected {
stroke: #555;
}
.react-flow__edge.animated {
stroke-dasharray: 5;
-webkit-animation: dashdraw 0.5s linear infinite;
animation: dashdraw 0.5s linear infinite;
}
.react-flow__edge.connection {
stroke: '#ddd';
pointer-events: none;
}
@-webkit-keyframes dashdraw {
from {stroke-dashoffset: 10}
}
@keyframes dashdraw {
from {stroke-dashoffset: 10}
}
.react-flow__nodes {
width: 100%;
height: 100%;
position: absolute;
z-index: 3;
pointer-events: none;
transform-origin: 0 0;
}
.react-flow__node {
position: absolute;
color: #222;
font-family: sans-serif;
font-size: 12px;
text-align: center;
cursor: -webkit-grab;
cursor: grab;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: all;
transform-origin: 0 0;
}
.react-flow__node:hover > * {
box-shadow: 0 1px 5px 2px rgba(0, 0, 0, 0.08);
}
.react-flow__node.selected > * {
box-shadow: 0 0 0 2px #555;
}
.react-flow__handle {
position: absolute;
width: 10px;
height: 8px;
background: rgba(255, 255, 255, 0.4);
cursor: crosshair;
}
.react-flow__handle.bottom {
top: auto;
left: 50%;
bottom: 0;
transform: translate(-50%, 0);
}
.react-flow__handle.top {
left: 50%;
top: 0;
transform: translate(-50%, 0);
}
.react-flow__handle.left {
top: 50%;
left: 0;
transform: translate(0, -50%);
}
.react-flow__handle.right {
right: 0;
top: 50%;
transform: translate(0, -50%);
}
.react-flow__nodesselection {
z-index: 3;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
transform-origin: left top;
pointer-events: none;
}
.react-flow__nodesselection-rect {
position: absolute;
background: rgba(0, 89, 220, 0.08);
border: 1px dotted rgba(0, 89, 220, 0.8);
pointer-events: all;
}
.react-flow__controls {
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08);
}
.react-flow__controls-button {
background: #fefefe;
border-bottom: 1px solid #eee;
display: flex;
justify-content: center;
align-items: center;
width: 16px;
height: 16px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
padding: 5px;
}
.react-flow__controls-button img {
width: 100%;
}
.react-flow__controls-button:hover {
background: #f4f4f4;
}
+8
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -1,6 +1,7 @@
import React, { PureComponent } from 'react'; import React, { PureComponent } from 'react';
import Graph, { isEdge, removeElements, addEdge, getOutgoers, MiniMap, Controls } from '../../../src'; import Graph, { isEdge, removeElements, addEdge, getOutgoers } from '../../../src';
import { MiniMap, Controls } from '../../../src/plugins';
import SpecialNode from './SpecialNode'; import SpecialNode from './SpecialNode';
import InputNode from './InputNode'; import InputNode from './InputNode';
-1
View File
@@ -1,7 +1,6 @@
{ {
"name": "react-flow", "name": "react-flow",
"version": "1.0.0", "version": "1.0.0",
"module": "dist/ReactFlow.esm.js",
"browser": "dist/ReactFlow.min.js", "browser": "dist/ReactFlow.min.js",
"main": "dist/ReactFlow.min.js", "main": "dist/ReactFlow.min.js",
"private": true, "private": true,
+38 -19
View File
@@ -10,27 +10,13 @@ import svg from 'rollup-plugin-svg';
import pkg from './package.json'; import pkg from './package.json';
const isProd = process.env.NODE_ENV === 'production'; const isProd = process.env.NODE_ENV === 'production';
const external = ['react', 'react-dom', 'prop-types'];
export default [{ const onwarn = (warning, rollupWarn) => {
input: 'src/index.js',
external: ['react', 'react-dom', 'prop-types'],
onwarn(warning, rollupWarn) {
if (warning.code !== 'CIRCULAR_DEPENDENCY') { if (warning.code !== 'CIRCULAR_DEPENDENCY') {
rollupWarn(warning); rollupWarn(warning);
} }
}, };
output: { const plugins = [
name: 'ReactFlow',
file: pkg.browser,
format: 'umd',
sourcemap: isProd,
globals: {
react: 'React',
'react-dom': 'ReactDOM',
'prop-types': 'PropTypes'
}
},
plugins: [
bundleSize(), bundleSize(),
postcss({ postcss({
extract: isProd extract: isProd
@@ -45,5 +31,38 @@ export default [{
svg(), svg(),
visualizer(), visualizer(),
isProd && terser() isProd && terser()
]}
]; ];
export default [{
input: 'src/index.js',
external: external,
onwarn,
output: {
name: 'ReactFlow',
file: pkg.browser,
format: 'umd',
sourcemap: isProd,
globals: {
react: 'React',
'react-dom': 'ReactDOM',
'prop-types': 'PropTypes'
}
},
plugins
}, {
input: 'src/plugins/index.js',
external: external,
onwarn,
output: {
name: 'ReactFlow Plugins',
file: 'dist/plugins/index.js',
format: 'umd',
sourcemap: isProd,
globals: {
react: 'React',
'react-dom': 'ReactDOM',
'prop-types': 'PropTypes'
}
},
plugins
}];
-1
View File
@@ -3,7 +3,6 @@ import ReactFlow from './container/ReactFlow';
export default ReactFlow; export default ReactFlow;
export { default as Handle } from './components/Handle'; export { default as Handle } from './components/Handle';
export { MiniMap, Controls } from './plugins';
export { export {
isNode, isNode,
-11
View File
@@ -182,14 +182,3 @@ export const zoomOut = () => {
const state = store.getState(); const state = store.getState();
state.d3Zoom.scaleTo(state.d3Selection, state.transform[2] - 0.2); state.d3Zoom.scaleTo(state.d3Selection, state.transform[2] - 0.2);
}; };
export default {
isEdge,
getBoundingBox,
graphPosToZoomedPos,
getConnectedEdges,
parseElement,
fitView,
zoomIn,
zoomOut
};