Skip to content

Commit

Permalink
Merge pull request #70 from nicolaserny/features/gojs_2
Browse files Browse the repository at this point in the history
Support gojs 2.0
  • Loading branch information
Julien-Molina committed Jan 25, 2019
2 parents 1e85ea4 + 33e77e5 commit ad43967
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 44 deletions.
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-gojs",
"version": "2.1.0",
"version": "3.0.0",
"description": "GoJS React integration",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down Expand Up @@ -28,29 +28,29 @@
"homepage": "https://github.com/xcomponent/react-gojs#readme",
"devDependencies": {
"@types/enzyme": "^3.1.15",
"@types/jest": "^23.3.11",
"@types/jest": "^23.3.13",
"@types/node": "^10.12.18",
"@types/react": "^16.7.18",
"@types/react": "^16.7.20",
"@types/react-dom": "^16.0.11",
"coveralls": "^3.0.2",
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.7.1",
"enzyme-adapter-react-16": "^1.8.0",
"husky": "^1.3.1",
"jest": "^23.6.0",
"jest-canvas-mock": "^1.1.0",
"prettier": "1.16.1",
"pretty-quick": "^1.8.0",
"pretty-quick": "^1.10.0",
"react": "16.x",
"react-dom": "16.x",
"ts-jest": "23.10.5",
"tslint": "^5.12.0",
"tslint": "^5.12.1",
"tslint-config-prettier": "^1.17.0",
"tslint-plugin-prettier": "^2.0.1",
"tslint-react": "^3.6.0",
"typescript": "^3.2.2"
"typescript": "^3.2.4"
},
"dependencies": {
"gojs": "^1.8.35"
"gojs": "^2.0.0"
},
"peerDependencies": {
"react": "16.x",
Expand Down
12 changes: 6 additions & 6 deletions src/GojsDiagram.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ describe('<GojsDiagram />', () => {
const nodeToRemoveName = 'Delta';
const nodeToRemove = diagram.nodes.filter(node => node.key === nodeToRemoveName).first();
diagram.startTransaction();
diagram.remove(nodeToRemove);
diagram.remove(nodeToRemove!);
diagram.commitTransaction();

// 2 times: 1 removed node and 1 removed link (because the removed node was linked to another node)
Expand All @@ -271,10 +271,10 @@ describe('<GojsDiagram />', () => {
const linkFrom = 'Gamma';
const linkTo = 'Omega';
const linkToRemove = diagram.links
.filter(link => link.fromNode.key === linkFrom && link.toNode.key === linkTo)
.filter(link => link.fromNode!.key === linkFrom && link.toNode!.key === linkTo)
.first();
diagram.startTransaction();
diagram.remove(linkToRemove);
diagram.remove(linkToRemove!);
diagram.commitTransaction();

expect(modelChangeCallback.mock.calls.length).toBe(1);
Expand All @@ -289,7 +289,7 @@ describe('<GojsDiagram />', () => {
checkIfDiagramRendersModel(model, diagram);
diagram.startTransaction();
const nodeToUpdate = diagram.model.findNodeDataForKey(singleNode);
diagram.model.setDataProperty(nodeToUpdate, 'group', groupName);
diagram.model.setDataProperty(nodeToUpdate!, 'group', groupName);
diagram.commitTransaction();

expect(modelChangeCallback.mock.calls.length).toBe(1);
Expand Down Expand Up @@ -332,11 +332,11 @@ const checkIfDiagramRendersModel = (model, diagram: Diagram) => {
expect(model.nodeDataArray.findIndex(e => e.key === node.key && e.color === node.data.color) >= 0).toBeTruthy();
});
model.linkDataArray.forEach(link => {
expect(diagram.links.any(e => e.fromNode.key === link.from && e.toNode.key === link.to)).toBeTruthy();
expect(diagram.links.any(e => e.fromNode!.key === link.from && e.toNode!.key === link.to)).toBeTruthy();
});
diagram.links.each(link => {
expect(
model.linkDataArray.findIndex(e => e.from === link.fromNode.key && e.to === link.toNode.key) >= 0
model.linkDataArray.findIndex(e => e.from === link.fromNode!.key && e.to === link.toNode!.key) >= 0
).toBeTruthy();
});
};
5 changes: 3 additions & 2 deletions src/modelChangedhandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,10 @@ export class GroupNodeModelChangedHandler<N extends BaseNodeModel, L extends Lin
model: DiagramModel<N, L>,
diagramNotificationDelegate: DiagramNotificationDelegate<N, L>
) {
const data = evt.object as N;
diagramNotificationDelegate.enqueueEvent({
eventType: ModelChangeEventType.Group,
nodeData: { ...evt.object },
nodeData: { ...data },
model: getNewModel(evt)
});
}
Expand Down Expand Up @@ -156,7 +157,7 @@ export class CommitTransactionHandler<N extends BaseNodeModel, L extends LinkMod

const getNewModel = <N extends BaseNodeModel, L extends LinkModel>(changedEvent: ChangedEvent) => {
return {
nodeDataArray: [...changedEvent.model.nodeDataArray],
nodeDataArray: [...changedEvent.model!.nodeDataArray],
linkDataArray: [...(changedEvent.model as GojsModel).linkDataArray]
} as DiagramModel<N, L>;
};
110 changes: 82 additions & 28 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
"@types/cheerio" "*"
"@types/react" "*"

"@types/jest@^23.3.11":
version "23.3.11"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.11.tgz#d3a936ae753d9e484965f5cbd19027c2b8af2551"
"@types/jest@^23.3.13":
version "23.3.13"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.13.tgz#c81484b6f4ca007bb09887ed15ecb3286d58f928"
integrity sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==

"@types/node@*", "@types/node@^10.12.18":
version "10.12.18"
Expand All @@ -45,13 +46,21 @@
dependencies:
"@types/react" "*"

"@types/react@*", "@types/react@^16.7.18":
"@types/react@*":
version "16.7.18"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.7.18.tgz#f4ce0d539a893dd61e36cd11ae3a5e54f5a48337"
dependencies:
"@types/prop-types" "*"
csstype "^2.2.0"

"@types/react@^16.7.20":
version "16.7.20"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.7.20.tgz#13ae752c012710d0fa800985ca809814b51d3b58"
integrity sha512-Qd5RWkwl6SL7R2XzLk/cicjVQm1Mhc6HqXY5Ei4pWd1Vi8Fkbd5O0sA398x8fRSTPAuHdDYD9nrWmJMYTJI0vQ==
dependencies:
"@types/prop-types" "*"
csstype "^2.2.0"

abab@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
Expand Down Expand Up @@ -158,10 +167,27 @@ arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"

array-differ@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.0.3.tgz#0195bb00ccccf271106efee4a4786488b7180712"
integrity sha1-AZW7AMzM8nEQbv7kpHhkiLcYBxI=

array-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"

array-union@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"

array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=

array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
Expand Down Expand Up @@ -854,24 +880,27 @@ entities@^1.1.1, entities@~1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"

enzyme-adapter-react-16@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.7.1.tgz#c37c4cb0fd75e88a063154a7a88096474914496a"
enzyme-adapter-react-16@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.8.0.tgz#7055d8e908d8d27b807cf4292244db3c815ca11d"
integrity sha512-7cVHIKutqnesGeM3CjNFHSvktpypSWBokrBO8wIW+BVx+HGxWCF87W9TpkIIYJqgCtdw9FQGFrAbLg8kSwPRuQ==
dependencies:
enzyme-adapter-utils "^1.9.0"
enzyme-adapter-utils "^1.10.0"
function.prototype.name "^1.1.0"
object.assign "^4.1.0"
object.values "^1.0.4"
object.values "^1.1.0"
prop-types "^15.6.2"
react-is "^16.6.1"
react-is "^16.7.0"
react-test-renderer "^16.0.0-0"

enzyme-adapter-utils@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.9.0.tgz#3997c20f3387fdcd932b155b3740829ea10aa86c"
enzyme-adapter-utils@^1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.10.0.tgz#5836169f68b9e8733cb5b69cad5da2a49e34f550"
integrity sha512-VnIXJDYVTzKGbdW+lgK8MQmYHJquTQZiGzu/AseCZ7eHtOMAj4Rtvk8ZRopodkfPves0EXaHkXBDkVhPa3t0jA==
dependencies:
function.prototype.name "^1.1.0"
object.assign "^4.1.0"
object.fromentries "^2.0.0"
prop-types "^15.6.2"
semver "^5.6.0"

Expand Down Expand Up @@ -905,7 +934,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"

es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.5.0, es-abstract@^1.5.1:
es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.0, es-abstract@^1.5.1:
version "1.13.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
dependencies:
Expand Down Expand Up @@ -1284,9 +1313,10 @@ globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"

gojs@^1.8.35:
version "1.8.35"
resolved "https://registry.yarnpkg.com/gojs/-/gojs-1.8.35.tgz#38362d20eaebf429a6468ae7f3eb5d875522d8d0"
gojs@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/gojs/-/gojs-2.0.0.tgz#4aa64fd876de5829af9edbf3417e7c83593523ca"
integrity sha512-62Ro/lWvxP0fn7r3Nw4e3oXXpuylMZ0AML6qveak3vPGBCsvZBdmVD2N+vk0wOF1r2DlP6uA5QUcwy1T4X5Fag==

graceful-fs@^4.1.11, graceful-fs@^4.1.2:
version "4.1.15"
Expand Down Expand Up @@ -2424,6 +2454,16 @@ ms@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"

multimatch@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==
dependencies:
array-differ "^2.0.3"
array-union "^1.0.2"
arrify "^1.0.1"
minimatch "^3.0.4"

nan@^2.9.2:
version "2.12.1"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552"
Expand Down Expand Up @@ -2612,6 +2652,16 @@ object.entries@^1.0.4:
function-bind "^1.1.1"
has "^1.0.3"

object.fromentries@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
dependencies:
define-properties "^1.1.2"
es-abstract "^1.11.0"
function-bind "^1.1.1"
has "^1.0.1"

object.getownpropertydescriptors@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
Expand All @@ -2632,7 +2682,7 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"

object.values@^1.0.4:
object.values@^1.0.4, object.values@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
dependencies:
Expand Down Expand Up @@ -2857,15 +2907,17 @@ pretty-format@^23.6.0:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"

pretty-quick@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.8.0.tgz#067ebe744ddb4e1ed4e1ee1af9648815121f78fc"
pretty-quick@^1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.10.0.tgz#d86cc46fe92ed8cfcfba6a082ec5949c53858198"
integrity sha512-uNvm2N3UWmnZRZrClyQI45hIbV20f5BpSyZY51Spbvn4APp9+XLyX4bCjWRGT3fGyVyQ/2/iw7dbQq1UUaq7SQ==
dependencies:
chalk "^2.3.0"
execa "^0.8.0"
find-up "^2.1.0"
ignore "^3.3.7"
mri "^1.1.0"
multimatch "^3.0.0"

private@^0.1.8:
version "0.1.8"
Expand Down Expand Up @@ -2959,7 +3011,7 @@ react-dom@16.x:
prop-types "^15.6.2"
scheduler "^0.12.0"

react-is@^16.6.1, react-is@^16.7.0:
react-is@^16.7.0:
version "16.7.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.7.0.tgz#c1bd21c64f1f1364c6f70695ec02d69392f41bfa"

Expand Down Expand Up @@ -3592,9 +3644,10 @@ tslint-react@^3.6.0:
dependencies:
tsutils "^2.13.1"

tslint@^5.12.0:
version "5.12.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.0.tgz#47f2dba291ed3d580752d109866fb640768fca36"
tslint@^5.12.1:
version "5.12.1"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.1.tgz#8cec9d454cf8a1de9b0a26d7bdbad6de362e52c1"
integrity sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==
dependencies:
babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"
Expand Down Expand Up @@ -3631,9 +3684,10 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"

typescript@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5"
typescript@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d"
integrity sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==

uglify-js@^3.1.4:
version "3.4.9"
Expand Down

0 comments on commit ad43967

Please sign in to comment.