diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js index d55859d..221431e 100644 --- a/.storybook/webpack.config.js +++ b/.storybook/webpack.config.js @@ -31,6 +31,9 @@ module.exports = { ] }, resolve: { + alias: { + 'storm-react-diagrams': path.join(__dirname, "..", "src", "main") + }, extensions: [".tsx", ".ts", ".js"] } }; diff --git a/demos/demo-cloning/index.tsx b/demos/demo-cloning/index.tsx index 1e53898..d9de890 100644 --- a/demos/demo-cloning/index.tsx +++ b/demos/demo-cloning/index.tsx @@ -6,7 +6,7 @@ import { NodeModel, DiagramWidget, BaseModel -} from "../../src/main"; +} from "storm-react-diagrams"; import * as _ from "lodash"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; diff --git a/demos/demo-custom-link1/index.tsx b/demos/demo-custom-link1/index.tsx index dd67c38..520a7b1 100644 --- a/demos/demo-custom-link1/index.tsx +++ b/demos/demo-custom-link1/index.tsx @@ -7,12 +7,12 @@ import { DiagramWidget, LinkWidget, LinkProps, - DefaultLinkWidget -} from "../../src/main"; + DefaultLinkWidget, + DefaultLinkModel, + DefaultLinkFactory +} from "storm-react-diagrams"; import { action } from "@storybook/addon-actions"; import * as React from "react"; -import { DefaultLinkModel } from "../../src/defaults/models/DefaultLinkModel"; -import { DefaultLinkFactory } from "../../src/defaults/factories/DefaultLinkFactory"; export class AdvancedLinkModel extends DefaultLinkModel { constructor() { diff --git a/demos/demo-custom-node1/DiamondNodeFactory.tsx b/demos/demo-custom-node1/DiamondNodeFactory.tsx index 8048fdf..695cde7 100644 --- a/demos/demo-custom-node1/DiamondNodeFactory.tsx +++ b/demos/demo-custom-node1/DiamondNodeFactory.tsx @@ -1,4 +1,4 @@ -import * as SRD from "../../src/main"; +import * as SRD from "storm-react-diagrams"; import { DiamonNodeWidget } from "./DiamondNodeWidget"; import { DiamondNodeModel } from "./DiamondNodeModel"; import * as React from "react"; diff --git a/demos/demo-custom-node1/DiamondNodeModel.ts b/demos/demo-custom-node1/DiamondNodeModel.ts index 25e0425..bb8df5c 100644 --- a/demos/demo-custom-node1/DiamondNodeModel.ts +++ b/demos/demo-custom-node1/DiamondNodeModel.ts @@ -1,7 +1,7 @@ -import * as SRD from "../../src/main"; +import { NodeModel } from "storm-react-diagrams"; import { DiamondPortModel } from "./DiamondPortModel"; -export class DiamondNodeModel extends SRD.NodeModel { +export class DiamondNodeModel extends NodeModel { constructor() { super("diamond"); this.addPort(new DiamondPortModel("top")); diff --git a/demos/demo-custom-node1/DiamondNodeWidget.tsx b/demos/demo-custom-node1/DiamondNodeWidget.tsx index c897ef0..13c7500 100644 --- a/demos/demo-custom-node1/DiamondNodeWidget.tsx +++ b/demos/demo-custom-node1/DiamondNodeWidget.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { DiamondNodeModel } from "./DiamondNodeModel"; -import { PortWidget } from "../../src/main"; +import { PortWidget } from "storm-react-diagrams"; export interface DiamonNodeWidgetProps { node: DiamondNodeModel; diff --git a/demos/demo-custom-node1/DiamondPortModel.ts b/demos/demo-custom-node1/DiamondPortModel.ts index a5c6a8b..2b1f7d9 100644 --- a/demos/demo-custom-node1/DiamondPortModel.ts +++ b/demos/demo-custom-node1/DiamondPortModel.ts @@ -1,5 +1,5 @@ import * as _ from "lodash"; -import { LinkModel, DiagramEngine, PortModel, DefaultLinkModel } from "../../src/main"; +import { LinkModel, DiagramEngine, PortModel, DefaultLinkModel } from "storm-react-diagrams"; export class DiamondPortModel extends PortModel { position: string | "top" | "bottom" | "left" | "right"; diff --git a/demos/demo-custom-node1/SimplePortFactory.ts b/demos/demo-custom-node1/SimplePortFactory.ts index 01341b0..1a5f19a 100644 --- a/demos/demo-custom-node1/SimplePortFactory.ts +++ b/demos/demo-custom-node1/SimplePortFactory.ts @@ -1,4 +1,4 @@ -import { PortModel, AbstractPortFactory } from "../../src/main"; +import { PortModel, AbstractPortFactory } from "storm-react-diagrams"; export class SimplePortFactory extends AbstractPortFactory { cb: (initialConfig?: any) => PortModel; diff --git a/demos/demo-custom-node1/index.tsx b/demos/demo-custom-node1/index.tsx index e2ad1ab..98a2e9b 100644 --- a/demos/demo-custom-node1/index.tsx +++ b/demos/demo-custom-node1/index.tsx @@ -5,7 +5,7 @@ import { LinkModel, DefaultPortModel, DiagramWidget -} from "../../src/main"; +} from "storm-react-diagrams"; import * as React from "react"; // import the custom models diff --git a/demos/demo-dagre/index.tsx b/demos/demo-dagre/index.tsx index eab4169..a447c50 100644 --- a/demos/demo-dagre/index.tsx +++ b/demos/demo-dagre/index.tsx @@ -7,7 +7,7 @@ import { LinkModel, DefaultPortModel, DiagramWidget -} from "../../src/main"; +} from "storm-react-diagrams"; import { distributeElements } from "./dagre-utils"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; diff --git a/demos/demo-drag-and-drop/Application.ts b/demos/demo-drag-and-drop/Application.ts index 6439235..144e972 100644 --- a/demos/demo-drag-and-drop/Application.ts +++ b/demos/demo-drag-and-drop/Application.ts @@ -1,4 +1,4 @@ -import * as SRD from "../../src/main"; +import * as SRD from "storm-react-diagrams"; /** * @author Dylan Vorster diff --git a/demos/demo-drag-and-drop/components/BodyWidget.tsx b/demos/demo-drag-and-drop/components/BodyWidget.tsx index 3a61542..64da5a1 100644 --- a/demos/demo-drag-and-drop/components/BodyWidget.tsx +++ b/demos/demo-drag-and-drop/components/BodyWidget.tsx @@ -3,7 +3,7 @@ import * as _ from "lodash"; import { TrayWidget } from "./TrayWidget"; import { Application } from "../Application"; import { TrayItemWidget } from "./TrayItemWidget"; -import { DefaultNodeModel, DiagramWidget } from "../../../src/main"; +import { DefaultNodeModel, DiagramWidget } from "storm-react-diagrams"; export interface BodyWidgetProps { app: Application; diff --git a/demos/demo-grid/index.tsx b/demos/demo-grid/index.tsx index 173c586..9c20497 100644 --- a/demos/demo-grid/index.tsx +++ b/demos/demo-grid/index.tsx @@ -1,4 +1,4 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "storm-react-diagrams"; import * as React from "react"; /** diff --git a/demos/demo-labelled-links/index.tsx b/demos/demo-labelled-links/index.tsx index 4c0df09..8288df6 100644 --- a/demos/demo-labelled-links/index.tsx +++ b/demos/demo-labelled-links/index.tsx @@ -4,12 +4,12 @@ import { DefaultNodeModel, LinkModel, DefaultPortModel, - DiagramWidget -} from "../../src/main"; + DiagramWidget, + DefaultLinkModel +} from "storm-react-diagrams"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; import { action } from "@storybook/addon-actions"; -import { DefaultLinkModel } from "../../src/defaults/models/DefaultLinkModel"; export default () => { // setup the diagram engine diff --git a/demos/demo-limit-points/index.tsx b/demos/demo-limit-points/index.tsx index 78aa359..8fffa34 100644 --- a/demos/demo-limit-points/index.tsx +++ b/demos/demo-limit-points/index.tsx @@ -1,6 +1,12 @@ -import * as SRD from "../../src/main"; import * as React from "react"; -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { + DiagramEngine, + DiagramModel, + DefaultNodeModel, + LinkModel, + DiagramWidget, + DiagramProps +} from "storm-react-diagrams"; /** * Shows that a limit of points can be set for links @@ -32,7 +38,7 @@ export default () => { var props = { diagramEngine: engine, maxNumberPointsPerLink: 5 - } as SRD.DiagramProps; + } as DiagramProps; return (
diff --git a/demos/demo-listeners/index.tsx b/demos/demo-listeners/index.tsx index ab05086..b2b45d4 100644 --- a/demos/demo-listeners/index.tsx +++ b/demos/demo-listeners/index.tsx @@ -1,7 +1,13 @@ -import * as SRD from "../../src/main"; import * as React from "react"; import { action } from "@storybook/addon-actions"; -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { + DiagramEngine, + DiagramModel, + DiagramProps, + DefaultNodeModel, + LinkModel, + DiagramWidget +} from "storm-react-diagrams"; /** * Shows some of the events triggered when elements are selected @@ -45,7 +51,7 @@ export default () => { var props = { diagramEngine: engine, maxNumberPointsPerLink: 0 // no extra points so link selection is fired straight away - } as SRD.DiagramProps; + } as DiagramProps; return (
diff --git a/demos/demo-locks/index.tsx b/demos/demo-locks/index.tsx index 67025bd..1d3caa7 100644 --- a/demos/demo-locks/index.tsx +++ b/demos/demo-locks/index.tsx @@ -1,6 +1,13 @@ -import * as SRD from "../../src/main"; import * as React from "react"; -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, PointModel, DiagramWidget } from "../../src/main"; +import { + DiagramEngine, + DiagramModel, + DefaultNodeModel, + LinkModel, + PointModel, + DiagramWidget, + DiagramProps +} from "storm-react-diagrams"; /** * @@ -54,7 +61,7 @@ export default () => { allowLooseLinks: false, allowCanvasTranslation: false, allowCanvasZoom: false - } as SRD.DiagramProps; + } as DiagramProps; //!========================================= <<<<<<< diff --git a/demos/demo-mutate-graph/index.tsx b/demos/demo-mutate-graph/index.tsx index 736586d..d15909b 100644 --- a/demos/demo-mutate-graph/index.tsx +++ b/demos/demo-mutate-graph/index.tsx @@ -1,4 +1,4 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "storm-react-diagrams"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; diff --git a/demos/demo-performance/index.tsx b/demos/demo-performance/index.tsx index a684355..231bf83 100644 --- a/demos/demo-performance/index.tsx +++ b/demos/demo-performance/index.tsx @@ -1,4 +1,4 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "storm-react-diagrams"; import * as React from "react"; /** diff --git a/demos/demo-serializing/index.tsx b/demos/demo-serializing/index.tsx index d453829..b2b84de 100644 --- a/demos/demo-serializing/index.tsx +++ b/demos/demo-serializing/index.tsx @@ -1,4 +1,4 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "storm-react-diagrams"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; import { action } from "@storybook/addon-actions"; diff --git a/demos/demo-simple-flow/index.tsx b/demos/demo-simple-flow/index.tsx index d2342d5..855212e 100644 --- a/demos/demo-simple-flow/index.tsx +++ b/demos/demo-simple-flow/index.tsx @@ -1,4 +1,4 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "storm-react-diagrams"; import * as React from "react"; export default () => { diff --git a/demos/demo-simple/index.tsx b/demos/demo-simple/index.tsx index f052349..7c0d282 100644 --- a/demos/demo-simple/index.tsx +++ b/demos/demo-simple/index.tsx @@ -1,6 +1,12 @@ -import { DiagramEngine, DiagramModel, DefaultNodeModel, LinkModel, DiagramWidget } from "../../src/main"; +import { + DiagramEngine, + DiagramModel, + DefaultNodeModel, + LinkModel, + DiagramWidget, + DefaultLinkModel +} from "storm-react-diagrams"; import * as React from "react"; -import { DefaultLinkModel } from "../../src/defaults/models/DefaultLinkModel"; export default () => { //1) setup the diagram engine diff --git a/demos/demo-smart-routing/index.tsx b/demos/demo-smart-routing/index.tsx index 9fa6806..ddc68a6 100644 --- a/demos/demo-smart-routing/index.tsx +++ b/demos/demo-smart-routing/index.tsx @@ -5,7 +5,7 @@ import { LinkModel, DefaultPortModel, DiagramWidget -} from "../../src/main"; +} from "storm-react-diagrams"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; import { action } from "@storybook/addon-actions"; diff --git a/demos/demo-zoom-to-fit/index.tsx b/demos/demo-zoom-to-fit/index.tsx index 15443ca..23a14d5 100644 --- a/demos/demo-zoom-to-fit/index.tsx +++ b/demos/demo-zoom-to-fit/index.tsx @@ -5,7 +5,7 @@ import { LinkModel, DefaultPortModel, DiagramWidget -} from "../../src/main"; +} from "storm-react-diagrams"; import * as React from "react"; import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget"; diff --git a/jest.config.js b/jest.config.js index e55bf9b..40ecf47 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,3 +1,4 @@ +const path = require("path"); // jest.config.js module.exports = { verbose: true, @@ -10,11 +11,12 @@ module.exports = { "node" ], transform: { - ".*test_loader.*": __dirname+"/tests/helpers/storybook-loader.js", + ".*test_loader.*": path.join(__dirname, "tests", "helpers", "storybook-loader.js" ), "^.+\\.tsx?$": "ts-jest", }, moduleNameMapper:{ - "\\.(scss|css|png)$": __dirname+"/tests/helpers/css-mock.js" + "\\.(scss|css|png)$": path.join(__dirname,"tests","helpers","css-mock.js"), + "storm-react-diagrams": path.join(__dirname, "src", "main") }, roots:[ __dirname+'/tests' diff --git a/tests/e2e/E2EHelper.ts b/tests/e2e/E2EHelper.ts index 889734a..1349900 100644 --- a/tests/e2e/E2EHelper.ts +++ b/tests/e2e/E2EHelper.ts @@ -1,6 +1,4 @@ import { ElementHandle, Page } from "puppeteer"; -import { NodeModel } from "../../src/models/NodeModel"; -import { LinkModel } from "../../src/models/LinkModel"; import * as _ from "lodash"; export class E2EElement { diff --git a/tests/e2e/generate-e2e.js b/tests/e2e/generate-e2e.js index fb715df..aaca6fb 100644 --- a/tests/e2e/generate-e2e.js +++ b/tests/e2e/generate-e2e.js @@ -14,7 +14,7 @@ glob.glob(__dirname + "/../../demos/demo-*/index.tsx", {}, (err, files) => { copy.push({to: path.basename(path.dirname(entryFile)), from: __dirname+"/index.html"}); }); - webpack({ + config = { entry: entry, plugins: [ new CopyWebpackPlugin(copy) @@ -29,12 +29,21 @@ glob.glob(__dirname + "/../../demos/demo-*/index.tsx", {}, (err, files) => { use: ['style-loader','css-loader', 'sass-loader'] }].concat(config.module.rules) }, - resolve: config.resolve, - }, (err, stats) => { + resolve: { + ...config.resolve, + alias: { + 'storm-react-diagrams': path.join(__dirname, "..", "..", "src", "main") + } + }, + }; + + console.log(config); + + webpack(config, (err, stats) => { if (err || stats.hasErrors()) { // Handle errors here return; } }); -}); \ No newline at end of file +}); diff --git a/tsconfig.json b/tsconfig.json index 4de58d9..a9e59a5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,10 @@ "sourceMap": true, "skipLibCheck": true, "jsx": "react", + "baseUrl": ".", + "paths": { + "storm-react-diagrams": ["src/main.ts"] + }, "lib": [ "dom", "es2015" diff --git a/webpack.config.js b/webpack.config.js index 2041321..3240e9d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,6 @@ const webpack = require("webpack"); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +var path = require("path"); var plugins = []; const production = process.env.NODE_ENV === 'production';