diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index 7534de5f6..3a738a735 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -46,4 +46,5 @@ - [Contributing](contributing.md) - [FAQ](frequently-asked-questions.md) +- [Roadmap](roadmap.md) - [Help](help.md) diff --git a/docs/latest/roadmap.md b/docs/latest/roadmap.md new file mode 100644 index 000000000..d5e516a87 --- /dev/null +++ b/docs/latest/roadmap.md @@ -0,0 +1,25 @@ +# Roadmap + +If you want to know what's planned for the very near future, +[check out our roadmap](https://ohif.canny.io/). The best way to influence when +and what is worked on is to contribute to the conversation by creating GitHub +issues, and contributing code through pull requests. OHIF's high level +priorities for the near future are: + +- Feature parity with version 1 +- Extension and configuration improvements with key integration partners +- Continued Developer Experience Improvements +- Segmentation Tools, and improved VTK.js support + +More granular information will make it's way to the backlog as these items +become scoped for development by core maintainers. + +> Don't hesitate to ask questions, propose features, or create pull requests. +> We're here, we're listening, and we're ready to build the best open source +> medical imaging viewer on the web. + +### Roadmap Generously Powered by Canny.io + + + + diff --git a/extensions/ohif-cornerstone-extension/README.md b/extensions/ohif-cornerstone-extension/README.md new file mode 100644 index 000000000..82af692dd --- /dev/null +++ b/extensions/ohif-cornerstone-extension/README.md @@ -0,0 +1 @@ +# @ohif/extension-cornerstone diff --git a/extensions/ohif-cornerstone-extension/package.json b/extensions/ohif-cornerstone-extension/package.json index d7899dc2a..45febdbc9 100644 --- a/extensions/ohif-cornerstone-extension/package.json +++ b/extensions/ohif-cornerstone-extension/package.json @@ -1,6 +1,6 @@ { - "name": "ohif-cornerstone-extension", - "version": "0.0.32", + "name": "@ohif/extension-cornerstone", + "version": "0.0.34", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", @@ -32,7 +32,7 @@ "react-dom": "^15.0.0 || ^16.0.0", "react-redux": "^6.0.0", "react-resize-detector": "^3.4.0", - "react-viewerbase": "^0.2.10", + "react-viewerbase": "^0.6.0", "redux": "^4.0.1" }, "dependencies": { @@ -92,6 +92,10 @@ "not op_mini all" ], "files": [ - "dist" - ] + "dist", + "README.md" + ], + "publishConfig": { + "access": "public" + } } diff --git a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js index df3fb99ee..ddb5ea30a 100644 --- a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js +++ b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js @@ -1,7 +1,8 @@ import React, { Component } from 'react'; + +import ConnectedCineDialog from './ConnectedCineDialog'; import ConnectedToolbarSection from './ConnectedToolbarSection'; import { ToolbarButton } from 'react-viewerbase'; -import ConnectedCineDialog from './ConnectedCineDialog'; class ToolbarModule extends Component { state = { @@ -28,8 +29,8 @@ class ToolbarModule extends Component {
diff --git a/extensions/ohif-vtk-extension/README.md b/extensions/ohif-vtk-extension/README.md new file mode 100644 index 000000000..1b4c09ef6 --- /dev/null +++ b/extensions/ohif-vtk-extension/README.md @@ -0,0 +1 @@ +# @ohif/extension-vtk diff --git a/extensions/ohif-vtk-extension/package.json b/extensions/ohif-vtk-extension/package.json index c4123e36e..2b9a4ef07 100644 --- a/extensions/ohif-vtk-extension/package.json +++ b/extensions/ohif-vtk-extension/package.json @@ -1,6 +1,6 @@ { - "name": "ohif-vtk-extension", - "version": "0.0.1", + "name": "@ohif/extension-vtk", + "version": "0.0.2", "description": "OHIF extension for VTK.js", "author": "OHIF", "license": "MIT", @@ -30,6 +30,7 @@ "react-dom": "^15.0.0 || ^16.0.0", "react-redux": "^6.0.0", "react-resize-detector": "^3.4.0", + "react-viewerbase": "^0.6.0", "redux": "^4.0.1" }, "devDependencies": { @@ -52,7 +53,6 @@ "prettier": "^1.15.3", "react": "^16.6.3", "react-dom": "^16.6.3", - "react-viewerbase": "^0.2.11", "rollup": "^1.1.2", "rollup-plugin-babel": "^4.2.0", "rollup-plugin-commonjs": "^9.2.0", @@ -83,8 +83,12 @@ "not op_mini all" ], "files": [ - "dist" + "dist", + "README.md" ], + "publishConfig": { + "access": "public" + }, "dependencies": { "@babel/runtime": "^7.2.0", "classnames": "^2.2.6", diff --git a/extensions/ohif-vtk-extension/rollup.config.js b/extensions/ohif-vtk-extension/rollup.config.js index 41f477179..dcbddc988 100644 --- a/extensions/ohif-vtk-extension/rollup.config.js +++ b/extensions/ohif-vtk-extension/rollup.config.js @@ -1,27 +1,30 @@ -import babel from 'rollup-plugin-babel' -import commonjs from 'rollup-plugin-commonjs' -import external from 'rollup-plugin-peer-deps-external' -import postcss from 'rollup-plugin-postcss' -import resolve from 'rollup-plugin-node-resolve' -import url from 'rollup-plugin-url' -import pkg from './package.json' -// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297 +import babel from 'rollup-plugin-babel'; import builtins from 'rollup-plugin-node-builtins'; +import commonjs from 'rollup-plugin-commonjs'; +import external from 'rollup-plugin-peer-deps-external'; +import pkg from './package.json'; +import postcss from 'rollup-plugin-postcss'; +import resolve from 'rollup-plugin-node-resolve'; +import url from 'rollup-plugin-url'; -const globals = { - 'react': 'React', +// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297 + + +const globals = { + react: 'React', 'react-dom': 'ReactDOM', 'react-redux': 'ReactRedux', 'react-resize-detector': 'ReactResizeDetector', + 'react-viewerbase': 'reactViewerbase', 'prop-types': 'PropTypes', 'cornerstone-core': 'cornerstone', 'cornerstone-wado-image-loader': 'cornerstoneWADOImageLoader', 'cornerstone-math': 'cornerstoneMath', 'cornerstone-tools': 'cornerstoneTools', - 'dcmjs': 'dcmjs', + dcmjs: 'dcmjs', 'dicom-parser': 'dicomParser', 'ohif-core': 'OHIF', - 'hammerjs': 'Hammer' + hammerjs: 'Hammer' }; export default { @@ -57,20 +60,20 @@ export default { commonjs({ include: ['node_modules/**', '.yalc/**'], namedExports: { - 'node_modules/react-vtkjs-viewport/dist/index.js': [ - 'getImageData', - 'loadImageData', - 'VTKViewport', - 'VTKMPRViewport', - ], - '.yalc/react-vtkjs-viewport/dist/index.js': [ - 'getImageData', - 'loadImageData', - 'VTKViewport', - 'VTKMPRViewport', - ] + 'node_modules/react-vtkjs-viewport/dist/index.js': [ + 'getImageData', + 'loadImageData', + 'VTKViewport', + 'VTKMPRViewport' + ], + '.yalc/react-vtkjs-viewport/dist/index.js': [ + 'getImageData', + 'loadImageData', + 'VTKViewport', + 'VTKMPRViewport' + ] } }) ], - external: Object.keys(pkg.peerDependencies || {}), -} + external: Object.keys(pkg.peerDependencies || {}) +}; diff --git a/extensions/ohif-vtk-extension/src/ConnectedToolbarSection.js b/extensions/ohif-vtk-extension/src/ConnectedToolbarSection.js index 19f2e18f0..963e01ce2 100644 --- a/extensions/ohif-vtk-extension/src/ConnectedToolbarSection.js +++ b/extensions/ohif-vtk-extension/src/ConnectedToolbarSection.js @@ -3,7 +3,6 @@ import { ToolbarSection } from 'react-viewerbase'; import OHIF from 'ohif-core'; const { setToolActive } = OHIF.redux.actions; -const Icons = `${window.config.routerBasename}/icons.svg`.replace('//', '/'); const mapStateToProps = state => { const activeButton = state.tools.buttons.find(tool => tool.active === true); @@ -14,7 +13,7 @@ const mapStateToProps = state => { command: 'Rotate', type: 'tool', text: 'Rotate', - svgUrl: `${Icons}#3d-rotate`, + icon: '3d-rotate', active: true } ], diff --git a/extensions/ohif-vtk-extension/yarn.lock b/extensions/ohif-vtk-extension/yarn.lock index 7bbe5bc73..74b43e077 100644 --- a/extensions/ohif-vtk-extension/yarn.lock +++ b/extensions/ohif-vtk-extension/yarn.lock @@ -660,7 +660,7 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0": +"@babel/runtime@^7.2.0": version "7.3.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== @@ -815,22 +815,6 @@ agentkeepalive@^3.3.0, agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -airbnb-prop-types@^2.10.0, airbnb-prop-types@^2.8.1: - version "2.12.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.12.0.tgz#67b30a5ba4dda9b9e70a480f85150a2ccd7fa132" - integrity sha512-EJLaLf0Rjg+AouOgIBlO1rerwgwu3Y0dwxp7BWzUemY9J1UPO9XOlMmOXzpaHW9O0RzpofiThVl0sIToHtLPAQ== - dependencies: - array.prototype.find "^2.0.4" - function.prototype.name "^1.1.0" - has "^1.0.3" - is-regex "^1.0.4" - object-is "^1.0.1" - object.assign "^4.1.0" - object.entries "^1.1.0" - prop-types "^15.6.2" - prop-types-exact "^1.2.0" - react-is "^16.8.1" - ajv@^6.5.3, ajv@^6.5.5, ajv@^6.9.1: version "6.9.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz#a4d3683d74abc5670e75f0b16520f70a20ea8dc1" @@ -980,29 +964,12 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.find@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" - integrity sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== - dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" - arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asap@^2.0.0, asap@^2.0.6, asap@~2.0.3: +asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -1211,11 +1178,6 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -brcast@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brcast/-/brcast-2.0.2.tgz#2db16de44140e418dc37fab10beec0369e78dcef" - integrity sha512-Tfn5JSE7hrUlFcOoaLzVvkbgIemIorMIyoMr3TgvszWW7jFt2C9PdeMLtysYD9RU0MmU17b69+XJG1eRY2OBRg== - brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1492,11 +1454,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -change-emitter@^0.1.2: - version "0.1.6" - resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" - integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= - character-entities-html4@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" @@ -1570,7 +1527,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.5, classnames@^2.2.6: +classnames@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== @@ -1810,11 +1767,6 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -"consolidated-events@^1.1.1 || ^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" - integrity sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ== - contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" @@ -1844,11 +1796,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= - core-js@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" @@ -2238,11 +2185,6 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^1.5.1, deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -2350,21 +2292,6 @@ dir-glob@^2.2.1: dependencies: path-type "^3.0.0" -direction@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.2.tgz#ac49c4699edf1283fd82f34e701ca668ea4883b9" - integrity sha512-hSKoz5FBn+zhP9vWKkVQaaxnRDg3/MoPdcg2au54HIUDR8MrP8Ah1jXSJwCXel6SV3Afh5DSzc8Uqv2r1UoQwQ== - -dnd-core@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/dnd-core/-/dnd-core-7.0.2.tgz#6c080eb57243fa0372fd083b3db242d9eb525010" - integrity sha512-InwRBi6zTndtE3+3nTYpLJkYMEr7utSR7OziAoSFhtQsbUfJE1KeqxM+ZFRIMKn6ehxUTAC+QU6QC7IG9u86Mg== - dependencies: - asap "^2.0.6" - invariant "^2.2.4" - lodash "^4.17.11" - redux "^4.0.1" - doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2380,13 +2307,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -dom-helpers@^3.2.1, dom-helpers@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - dom-serializer@0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -2531,7 +2451,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.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -2899,19 +2819,6 @@ fastparse@^1.1.1: resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== -fbjs@^0.8.1, fbjs@^0.8.4: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - figgy-pudding@^3.0.0, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -3142,15 +3049,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" - integrity sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - is-callable "^1.1.3" - functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -3314,14 +3212,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -global-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/global-cache/-/global-cache-1.2.1.tgz#39ca020d3dd7b3f0934c52b75363f8d53312c16d" - integrity sha512-EOeUaup5DgWKlCMhA9YFqNRIlZwoxt731jCh47WBV9fQqHgXhr3Fa55hfgIUqilIcPsfdNKN7LHjrNY+Km40KA== - dependencies: - define-properties "^1.1.2" - is-symbol "^1.0.1" - global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -3516,18 +3406,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: - version "2.5.5" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" - integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== - -hoist-non-react-statics@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" - integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== - dependencies: - react-is "^16.7.0" - hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -3786,7 +3664,7 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -invariant@^2.1.0, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -3867,7 +3745,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3, is-callable@^1.1.4: +is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -4105,7 +3983,7 @@ is-retry-allowed@^1.0.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -4122,18 +4000,13 @@ is-svg@^3.0.0: dependencies: html-comment-regex "^1.1.0" -is-symbol@^1.0.1, is-symbol@^1.0.2: +is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: has-symbols "^1.0.0" -is-touch-device@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" - integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -4191,14 +4064,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -4669,11 +4534,6 @@ lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4699,7 +4559,7 @@ lodash@^3.10.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.1.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -5106,11 +4966,6 @@ mkpath@^1.0.0: resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" integrity sha1-67Opd+evHGg65v2hK1Raa6bFhT0= -moment@>=1.6.0, moment@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -5179,14 +5034,6 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-gyp@^3.6.2, node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -5582,12 +5429,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= - -object-keys@^1.0.11, object-keys@^1.0.12: +object-keys@^1.0.12: version "1.1.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== @@ -5613,26 +5455,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - 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" @@ -6525,13 +6347,6 @@ promise.series@^0.2.0: resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" @@ -6539,24 +6354,7 @@ promzard@^0.3.0: dependencies: read "1" -prop-types-exact@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" - integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== - dependencies: - has "^1.0.3" - object.assign "^4.1.0" - reflect.ownkeys "^0.2.0" - -prop-types-extra@^1.0.1, prop-types-extra@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f" - integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg== - dependencies: - react-is "^16.3.2" - warning "^3.0.0" - -prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.6.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -6723,66 +6521,6 @@ rc@^1.0.1, rc@^1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-addons-shallow-compare@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f" - integrity sha1-GYoAuR/DdiPbZKKP0XtZa6NicC8= - dependencies: - fbjs "^0.8.4" - object-assign "^4.1.0" - -react-bootstrap-modal@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/react-bootstrap-modal/-/react-bootstrap-modal-4.2.0.tgz#010b3ca9230a3c147fa5fc6aa39b6971e34151bd" - integrity sha512-2Xx9yvPEnMNhJIAKCg+t3CECF6w3qt2mmICv1Y1vwDBHeuyyf3OvSFcnRM8E0Tn7pywgopL2qyU4yx0vnGKmdA== - dependencies: - classnames "^2.2.6" - dom-helpers "^3.3.1" - prop-types "^15.6.1" - prop-types-extra "^1.1.0" - react-overlays "^0.8.0" - react-transition-group "^2.0.0" - -react-dates@^18.4.1: - version "18.5.0" - resolved "https://registry.yarnpkg.com/react-dates/-/react-dates-18.5.0.tgz#31cc8ab01b2cc546b938e198fd8d4316878f5717" - integrity sha512-5zWR3+ekkRzf740omDkO+N0JifsGGOeyvWwQ/7dFxSb2CqHUsOfKgvpXOiwd3hBm4yr+lelESI3b458BEOU5og== - dependencies: - airbnb-prop-types "^2.10.0" - consolidated-events "^1.1.1 || ^2.0.0" - is-touch-device "^1.0.1" - lodash "^4.1.1" - object.assign "^4.1.0" - object.values "^1.0.4" - prop-types "^15.6.1" - react-addons-shallow-compare "^15.6.2" - react-moment-proptypes "^1.6.0" - react-outside-click-handler "^1.2.0" - react-portal "^4.1.5" - react-with-direction "^1.3.0" - react-with-styles "^3.2.0" - react-with-styles-interface-css "^4.0.2" - -react-dnd-html5-backend@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-7.0.2.tgz#f74181ca0ff05be13eb6094629c5ad560f558a7e" - integrity sha512-BPhmHeQjvhPXRykHvFLbM+TJFrrarcuf/mIArNEmXzZuNhLfbOnHtMSzR8lPwodABcDAYj7hEF7vTABXX298vA== - dependencies: - dnd-core "^7.0.2" - lodash "^4.17.11" - -react-dnd@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/react-dnd/-/react-dnd-7.0.2.tgz#8f5611a6e877592932c082d6280c64d1c817f420" - integrity sha512-nJnHJo/tNQjyod234+hPNopWHPvgH0gujf3pcdJWRe3l0GL+jSXXwXJ2SFwIHkVmxPYrx8+gbKU3+Pq26p6fkg== - dependencies: - dnd-core "^7.0.2" - hoist-non-react-statics "^3.1.0" - invariant "^2.1.0" - lodash "^4.17.11" - recompose "^0.30.0" - shallowequal "^1.1.0" - react-dom@^16.6.3: version "16.8.3" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.3.tgz#ae236029e66210783ac81999d3015dfc475b9c32" @@ -6793,78 +6531,11 @@ react-dom@^16.6.3: prop-types "^15.6.2" scheduler "^0.13.3" -react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.8.1: version "16.8.3" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.3.tgz#4ad8b029c2a718fc0cfc746c8d4e1b7221e5387d" integrity sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA== -react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-moment-proptypes@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.6.0.tgz#8ec266ee392a08ba3412d2df2eebf833ab1046df" - integrity sha512-4h7EuhDMTzQqZ+02KUUO+AVA7PqhbD88yXB740nFpNDyDS/bj9jiPyn2rwr9sa8oDyaE1ByFN9+t5XPyPTmN6g== - dependencies: - moment ">=1.6.0" - -react-outside-click-handler@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-outside-click-handler/-/react-outside-click-handler-1.2.2.tgz#2c4609fbaacbfc192e269786d555419b115bf93f" - integrity sha512-MgCxmFARGN1VrZdwoLkER/y3So6mC/fSniXI4XcXcB+Jt05nw/k8a/R1hSoa7p414uZUZ8NfClN3eVmZm9bM5Q== - dependencies: - airbnb-prop-types "^2.10.0" - consolidated-events "^1.1.1 || ^2.0.0" - object.values "^1.0.4" - prop-types "^15.6.1" - -react-overlays@^0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz#fad65eea5b24301cca192a169f5dddb0b20d3ac5" - integrity sha512-h6GT3jgy90PgctleP39Yu3eK1v9vaJAW73GOA/UbN9dJ7aAN4BTZD6793eI1D5U+ukMk17qiqN/wl3diK1Z5LA== - dependencies: - classnames "^2.2.5" - dom-helpers "^3.2.1" - prop-types "^15.5.10" - prop-types-extra "^1.0.1" - react-transition-group "^2.2.0" - warning "^3.0.0" - -react-portal@^4.1.5: - version "4.2.0" - resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-4.2.0.tgz#5400831cdb0ae64dccb8128121cf076089ab1afd" - integrity sha512-Zf+vGQ/VEAb5XAy+muKEn48yhdCNYPZaB1BWg1xc8sAZWD8pXTgPtQT4ihBdmWzsfCq8p8/kqf0GWydSBqc+Eg== - dependencies: - prop-types "^15.5.8" - -react-transition-group@^2.0.0, react-transition-group@^2.2.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.3.tgz#26de363cab19e5c88ae5dbae105c706cf953bb92" - integrity sha512-2DGFck6h99kLNr8pOFk+z4Soq3iISydwOFeeEVPjTN6+Y01CmvbWmnN02VuTWyFdnRtIDPe+wy2q6Ui8snBPZg== - dependencies: - dom-helpers "^3.3.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react-viewerbase@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.2.11.tgz#1015bb6c2876b2ce1a40dece8d614f7266d9fcb1" - integrity sha512-s2Nr3VSjANIvalhTPKn2CUoHzDpKiHl81BYYEFdcAt20chTmpBRlH6J6uQ7rrxpO8Iz3OblpWinNJf9+6E0pDg== - dependencies: - "@babel/runtime" "^7.2.0" - classnames "^2.2.6" - lodash.isequal "^4.5.0" - moment "^2.24.0" - prop-types "^15.6.2" - react-bootstrap-modal "^4.2.0" - react-dates "^18.4.1" - react-dnd "^7.0.2" - react-dnd-html5-backend "^7.0.2" - react-with-direction "^1.3.0" - react-vtkjs-viewport@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.0.7.tgz#8fcb3adfc6609d6e3fc6d5af94d59cb1ec4426c0" @@ -6874,38 +6545,6 @@ react-vtkjs-viewport@^0.0.7: cornerstone-math "^0.1.8" vtk.js "^8.3.11" -react-with-direction@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-with-direction/-/react-with-direction-1.3.0.tgz#9885f5941aa986be753db95a41e8f3d8f8de97ff" - integrity sha512-2TflEebNckTNUybw3Rzqjg4BwM/H380ZL5lsbZ5f4UTY2JyE5uQdQZK5T2w+BDJSAMcqoA2RDJYa4e7Cl6C2Kg== - dependencies: - airbnb-prop-types "^2.8.1" - brcast "^2.0.2" - deepmerge "^1.5.1" - direction "^1.0.1" - hoist-non-react-statics "^2.3.1" - object.assign "^4.1.0" - object.values "^1.0.4" - prop-types "^15.6.0" - -react-with-styles-interface-css@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/react-with-styles-interface-css/-/react-with-styles-interface-css-4.0.3.tgz#c4a61277b2b8e4126b2cd25eca3ac4097bd2af09" - integrity sha512-wE43PIyjal2dexxyyx4Lhbcb+E42amoYPnkunRZkb9WTA+Z+9LagbyxwsI352NqMdFmghR0opg29dzDO4/YXbw== - dependencies: - array.prototype.flat "^1.2.1" - global-cache "^1.2.1" - -react-with-styles@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/react-with-styles/-/react-with-styles-3.2.1.tgz#57a313ae3dcd0b347193a5538d5061d3bb96bab4" - integrity sha512-L+x/EDgrKkqV6pTfDtLMShf7Xs+bVQ+HAT5rByX88QYX+ft9t5Gn4PWMmg36Ur21IVEBMGjjQQIJGJpBrzbsyg== - dependencies: - deepmerge "^1.5.2" - hoist-non-react-statics "^2.5.0" - prop-types "^15.6.1" - react-with-direction "^1.3.0" - react@^16.6.3: version "16.8.3" resolved "https://registry.yarnpkg.com/react/-/react-16.8.3.tgz#c6f988a2ce895375de216edcfaedd6b9a76451d9" @@ -7081,18 +6720,6 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -recompose@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" - integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== - dependencies: - "@babel/runtime" "^7.0.0" - change-emitter "^0.1.2" - fbjs "^0.8.1" - hoist-non-react-statics "^2.3.1" - react-lifecycles-compat "^3.0.2" - symbol-observable "^1.0.4" - redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" @@ -7101,19 +6728,6 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -redux@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" - integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -reflect.ownkeys@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" - integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= - regenerate-unicode-properties@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" @@ -7603,11 +7217,6 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -7624,11 +7233,6 @@ sha@~2.0.1: graceful-fs "^4.1.2" readable-stream "^2.0.2" -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -8233,7 +7837,7 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -8431,11 +8035,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -ua-parser-js@^0.7.18: - version "0.7.19" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" - integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== - uid-number@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -8728,13 +8327,6 @@ vtk.js@^8.3.11: webvr-polyfill "0.10.8" webworker-promise "0.4.2" -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -8759,11 +8351,6 @@ webworker-promise@0.4.2: resolved "https://registry.yarnpkg.com/webworker-promise/-/webworker-promise-0.4.2.tgz#aeb92684a3a5a05e95ddaeccf8482254c6cf5dc0" integrity sha512-/se9zS6MpRhyodk+C7YcBZq5mY1apJvKys6Tb6t2NDDeRMGgRuuyYjox38PssylFyPodjPEab/S0WuA20CFu7g== -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" diff --git a/package.json b/package.json index 29e775d09..d35ecf1fd 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,8 @@ "dependencies": { "@babel/polyfill": "^7.2.5", "@babel/runtime": "^7.2.0", + "@ohif/extension-cornerstone": "0.0.34", + "@ohif/extension-vtk": "0.0.2", "classnames": "^2.2.6", "cornerstone-core": "^2.2.8", "cornerstone-math": "^0.1.8", @@ -78,11 +80,9 @@ "lodash.isequal": "4.5.0", "moment": "^2.24.0", "ohif-core": "0.5.5", - "ohif-cornerstone-extension": "0.0.32", "ohif-dicom-html-extension": "^0.0.2", "ohif-dicom-microscopy-extension": "^0.0.5", "ohif-dicom-pdf-extension": "^0.0.6", - "ohif-vtk-extension": "^0.0.1", "oidc-client": "1.7.x", "prop-types": "^15.6.2", "react-bootstrap-modal": "^4.2.0", @@ -92,7 +92,7 @@ "react-resize-detector": "^3.4.0", "react-router": "^4.3.1", "react-router-dom": "^4.3.1", - "react-viewerbase": "0.4.2", + "react-viewerbase": "0.6.1", "react-vtkjs-viewport": "^0.0.7", "redux": "^4.0.1", "redux-oidc": "3.1.x" diff --git a/public/icons.svg b/public/icons.svg deleted file mode 100644 index 3b0690b4f..000000000 --- a/public/icons.svg +++ /dev/null @@ -1,246 +0,0 @@ - - - HUD - - - - - - - - - Additional Measurements - - - - - - Lesions - - - - - - Settings - - - - Complete - - - - - - Locked - - - - Studies - - - - - - Window / Level - - - - - - - Link - - - - - - - Non-Target Measurement - - - - - - - - Target Measurement - - - - - - - Target CR Measurement - - CR - - - - - Target UN Measurement - - UN - - - - - Temporary Measurement - - - - - - - - More - - - - - - Pan - - - - - - - - - - - Zoom - - - - - - - Invert - - - - Stack Scroll - - - - Elliptical ROI - - - - Magnify - - - - Reset - - - - Rotate - - - - Rotate Right - - - - Cineplay Toggle - - - - Vertical - - - - Horizontal - - - - Trial Information - - - - - - Expand - - - - Add - - - - Close - - - - - - Comment - - - - - Capture Screen - - - - - - - - Warning - - - - - - - Viewport Link - - - - - - - Theme - - - - Log - - - - Server - - - - Study List - - - - Logout - - - - Password - - - - - - - - - - - - diff --git a/src/App.js b/src/App.js index 7d3718fd3..2d73bb449 100644 --- a/src/App.js +++ b/src/App.js @@ -1,26 +1,28 @@ -import React, { Component } from 'react'; -import { BrowserRouter as Router } from 'react-router-dom'; -import { Provider } from 'react-redux'; -import { createStore, combineReducers } from 'redux'; -import PropTypes from 'prop-types'; -import OHIF from 'ohif-core'; import './config'; -import ui from './redux/ui.js'; -import OHIFStandaloneViewer from './OHIFStandaloneViewer'; -import WhiteLabellingContext from './WhiteLabellingContext'; -import OHIFCornerstoneExtension from 'ohif-cornerstone-extension'; -import OHIFVTKExtension from 'ohif-vtk-extension'; -import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension'; -import OHIFDicomHtmlExtension from 'ohif-dicom-html-extension'; -import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension'; + import { OidcProvider, reducer as oidcReducer } from 'redux-oidc'; +import React, { Component } from 'react'; +import { combineReducers, createStore } from 'redux'; import { getDefaultToolbarButtons, getUserManagerForOpenIdConnectClient, initWebWorkers, } from './utils/index.js'; -import setupTools from './setupTools'; + import ConnectedToolContextMenu from './connectedComponents/ConnectedToolContextMenu'; +import OHIF from 'ohif-core'; +import OHIFCornerstoneExtension from '@ohif/extension-cornerstone'; +import OHIFDicomHtmlExtension from 'ohif-dicom-html-extension'; +import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension'; +import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension'; +import OHIFStandaloneViewer from './OHIFStandaloneViewer'; +import OHIFVTKExtension from '@ohif/extension-vtk'; +import PropTypes from 'prop-types'; +import { Provider } from 'react-redux'; +import { BrowserRouter as Router } from 'react-router-dom'; +import WhiteLabellingContext from './WhiteLabellingContext'; +import setupTools from './setupTools'; +import ui from './redux/ui.js'; const { ExtensionManager } = OHIF.extensions; const { reducers, localStorage } = OHIF.redux; diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js index 010baa830..51c3ad744 100644 --- a/src/components/Header/Header.js +++ b/src/components/Header/Header.js @@ -29,12 +29,16 @@ class Header extends Component { this.options = [ { title: 'Preferences ', - icon: 'fa fa-user', + icon: { + name: 'user', + }, onClick: this.props.openUserPreferencesModal, }, { title: 'About', - icon: 'fa fa-info', + icon: { + name: 'info', + }, link: 'http://ohif.org', }, ]; diff --git a/src/components/Labelling/LabellingFlow.js b/src/components/Labelling/LabellingFlow.js index 6056df906..5fdebd145 100644 --- a/src/components/Labelling/LabellingFlow.js +++ b/src/components/Labelling/LabellingFlow.js @@ -1,14 +1,12 @@ +import { Icon, SelectTree } from 'react-viewerbase'; import React, { Component } from 'react'; -import PropTypes from 'prop-types'; - -import cloneDeep from 'lodash.clonedeep'; -import bounding from '../../lib/utils/bounding.js'; import LabellingTransition from './LabellingTransition.js'; -import { SelectTree } from 'react-viewerbase'; -import { getAddLabelButtonStyle } from './labellingPositionUtils.js'; - import OHIFLabellingData from './OHIFLabellingData.js'; +import PropTypes from 'prop-types'; +import bounding from '../../lib/utils/bounding.js'; +import cloneDeep from 'lodash.clonedeep'; +import { getAddLabelButtonStyle } from './labellingPositionUtils.js'; export default class LabellingFlow extends Component { static propTypes = { @@ -93,11 +91,6 @@ export default class LabellingFlow extends Component { locationLabel, } = this.state; - const Icons = `${window.config.routerBasename}/icons.svg`.replace( - '//', - '/' - ); - if (!skipAddLabelButton) { return ( <> @@ -128,9 +121,7 @@ export default class LabellingFlow extends Component { className="checkIconWrapper" onClick={this.fadeOutAndLeaveFast} > - - - +
{locationLabel}
diff --git a/src/components/OHIFLogo/OHIFLogo.css b/src/components/OHIFLogo/OHIFLogo.css index 34cd6510b..4fc3886a8 100644 --- a/src/components/OHIFLogo/OHIFLogo.css +++ b/src/components/OHIFLogo/OHIFLogo.css @@ -1,23 +1,29 @@ .header-brand { height: 30px; text-decoration: none; - float: left; - clear: both; + text-decoration-color: none; + + display: flex; + color: var(--text-primary-color); + font-size: 14px; + font-weight: var(--logo-font-weight); + font-family: var(--logo-font-family); +} + +.header-brand:hover, +.header-brand:active, +.header-band:visited { + color: var(--text-primary-color); + text-decoration: none; } .header-logo-text { - display: inline-block; - font-family: var(--logo-font-family); - font-size: 14px; - font-weight: var(--logo-font-weight); - color: var(--text-primary-color); line-height: 30px; + margin-left: 8px; } .header-logo-image { - fill: transparent; - height: 100%; - margin: 0 8px 0 0; + height: 30px; width: 30px; - float: left; + font-size: 30px; } diff --git a/src/components/OHIFLogo/OHIFLogo.js b/src/components/OHIFLogo/OHIFLogo.js index 4126f6de0..1f5d69471 100644 --- a/src/components/OHIFLogo/OHIFLogo.js +++ b/src/components/OHIFLogo/OHIFLogo.js @@ -1,7 +1,7 @@ -import React from 'react'; import './OHIFLogo.css'; -const Icons = `${window.config.routerBasename}/icons.svg`.replace('//', '/'); +import { Icon } from 'react-viewerbase'; +import React from 'react'; function OHIFLogo() { return ( @@ -11,9 +11,7 @@ function OHIFLogo() { className="header-brand" href="http://ohif.org" > - - - +
Open Health Imaging Foundation
); diff --git a/src/connectedComponents/ConnectedPluginSwitch.js b/src/connectedComponents/ConnectedPluginSwitch.js index 9d99e4e62..4281064c1 100644 --- a/src/connectedComponents/ConnectedPluginSwitch.js +++ b/src/connectedComponents/ConnectedPluginSwitch.js @@ -36,14 +36,13 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { // TODO: Do not display certain options if the current display set // cannot be displayed using these view types - const Icons = `${window.config.routerBasename}/icons.svg`.replace('//', '/'); const buttons = [ { text: 'Acquired', type: 'command', - iconClasses: 'fa fa-bars', + icon: 'bars', active: false, - onClick: click => { + onClick: () => { console.warn('Original Acquisition'); const layoutData = setSingleLayoutData( @@ -57,10 +56,9 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }, { text: 'Axial', - svgUrl: `${Icons}#cube`, - svgClasses: 'icon-rotate-120', + icon: 'cube', active: false, - onClick: click => { + onClick: () => { console.warn('Axial'); const data = { plugin: 'vtk', @@ -81,9 +79,9 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }, { text: 'Sagittal', - svgUrl: `${Icons}#cube`, + icon: 'cube', active: false, - onClick: click => { + onClick: () => { console.warn('Sagittal'); const data = { plugin: 'vtk', @@ -104,10 +102,9 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }, { text: 'Coronal', - svgUrl: `${Icons}#cube`, - svgClasses: 'fa-rotate-90 fa-flip-horizontal', + icon: 'cube', active: false, - onClick: click => { + onClick: () => { console.warn('Coronal'); const data = { plugin: 'vtk', @@ -128,7 +125,7 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }, /*{ text: '3D', - svgUrl: `${Icons}#cube`, + icon: `#cube`, onClick: (click) => { console.warn('3D Perspective'); const data = { diff --git a/src/connectedComponents/FlexboxLayout.js b/src/connectedComponents/FlexboxLayout.js index e4dc47617..3467fc403 100644 --- a/src/connectedComponents/FlexboxLayout.js +++ b/src/connectedComponents/FlexboxLayout.js @@ -1,9 +1,11 @@ +import './FlexboxLayout.css'; + import React, { Component } from 'react'; -import PropTypes from 'prop-types'; + +import ConnectedMeasurementTable from './ConnectedMeasurementTable'; import ConnectedStudyBrowser from './ConnectedStudyBrowser.js'; import ConnectedViewerMain from './ConnectedViewerMain.js'; -import ConnectedMeasurementTable from './ConnectedMeasurementTable'; -import './FlexboxLayout.css'; +import PropTypes from 'prop-types'; class FlexboxLayout extends Component { static propTypes = { @@ -41,16 +43,22 @@ class FlexboxLayout extends Component { seriesNumber, instanceNumber, numImageFrames, + // TODO: This is undefined + // modality, } = displaySet; let imageId; + let altImageText = ' '; // modality if (displaySet.images && displaySet.images.length) { imageId = displaySet.images[0].getImageId(); + } else { + altImageText = 'SR'; } return { imageId, + altImageText, displaySetInstanceUid, seriesDescription, seriesNumber, diff --git a/src/connectedComponents/ToolbarRow.js b/src/connectedComponents/ToolbarRow.js index 26b1425ba..deda8d4c4 100644 --- a/src/connectedComponents/ToolbarRow.js +++ b/src/connectedComponents/ToolbarRow.js @@ -1,12 +1,12 @@ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; -import OHIF from 'ohif-core'; -import { RoundedButtonGroup } from 'react-viewerbase'; -import ConnectedLayoutButton from './ConnectedLayoutButton'; -import ConnectedPluginSwitch from './ConnectedPluginSwitch.js'; import './ToolbarRow.css'; -const Icons = `${window.config.routerBasename}/icons.svg`.replace('//', '/'); +import React, { Component } from 'react'; + +import ConnectedLayoutButton from './ConnectedLayoutButton'; +import ConnectedPluginSwitch from './ConnectedPluginSwitch.js'; +import OHIF from 'ohif-core'; +import PropTypes from 'prop-types'; +import { RoundedButtonGroup } from 'react-viewerbase'; class ToolbarRow extends Component { static propTypes = { @@ -34,9 +34,7 @@ class ToolbarRow extends Component { const leftSidebarToggle = [ { value: 'studies', - svgLink: `${Icons}#icon-studies`, - svgWidth: 15, - svgHeight: 13, + icon: 'th-large', bottomLabel: 'Series', }, ]; @@ -44,9 +42,7 @@ class ToolbarRow extends Component { const rightSidebarToggle = [ { value: 'measurements', - svgLink: `${Icons}#icon-measurements-lesions`, - svgWidth: 15, - svgHeight: 13, + icon: 'list', bottomLabel: 'Measurements', }, ]; diff --git a/src/images/icons.svg b/src/images/icons.svg deleted file mode 100644 index aa3817af6..000000000 --- a/src/images/icons.svg +++ /dev/null @@ -1,237 +0,0 @@ - - - HUD - - - - - - - - - Additional Measurements - - - - - - Lesions - - - - - - Settings - - - - Complete - - - - - - Locked - - - - Studies - - - - - - Window / Level - - - - - - - Link - - - - - - - Non-Target Measurement - - - - - - - - Target Measurement - - - - - - - Target CR Measurement - - CR - - - - - Target UN Measurement - - UN - - - - - Temporary Measurement - - - - - - - - More - - - - - - Pan - - - - - - - - - - - Zoom - - - - - - - Invert - - - - Stack Scroll - - - - Elliptical ROI - - - - Magnify - - - - Reset - - - - Rotate - - - - Rotate Right - - - - Cineplay Toggle - - - - Vertical - - - - Horizontal - - - - Trial Information - - - - - - Expand - - - - Add - - - - Close - - - - - - Comment - - - - - Capture Screen - - - - - - - - Warning - - - - - - - Viewport Link - - - - - - - Theme - - - - Log - - - - Server - - - - Study List - - - - Logout - - - - Password - - - diff --git a/src/utils/getDefaultToolbarButtons.js b/src/utils/getDefaultToolbarButtons.js index 2ec95275e..a4393eb3c 100644 --- a/src/utils/getDefaultToolbarButtons.js +++ b/src/utils/getDefaultToolbarButtons.js @@ -1,115 +1,101 @@ -/** - * - * @param {String} [baseDirectory='/'] - */ -export default function(baseDirectory = '/') { - const iconsFileName = 'icons.svg'; - const sanitizedBaseDirectory = - baseDirectory[baseDirectory.length - 1] === '/' - ? baseDirectory - : `${baseDirectory}/`; - const relativePathToIcons = `${sanitizedBaseDirectory}${iconsFileName}`.replace( - '//', - '/' - ); - +export default function() { return [ { command: 'StackScroll', type: 'tool', text: 'Stack Scroll', - svgUrl: `${relativePathToIcons}#icon-tools-stack-scroll`, + icon: 'bars', active: false, }, { command: 'Zoom', type: 'tool', text: 'Zoom', - svgUrl: `${relativePathToIcons}#icon-tools-zoom`, + icon: 'search-plus', active: false, }, { command: 'Wwwc', type: 'tool', text: 'Levels', - svgUrl: `${relativePathToIcons}#icon-tools-levels`, + icon: 'level', active: true, }, { command: 'Pan', type: 'tool', text: 'Pan', - svgUrl: `${relativePathToIcons}#icon-tools-pan`, + icon: 'arrows', active: false, }, { command: 'Length', type: 'tool', text: 'Length', - svgUrl: `${relativePathToIcons}#icon-tools-measure-temp`, + icon: 'measure-temp', active: false, }, /*{ command: 'Annotate', type: 'tool', text: 'Annotate', - svgUrl: `${Icons}#icon-tools-measure-non-target`, + icon: `icon-tools-measure-non-target`, active: false },*/ { command: 'Angle', type: 'tool', text: 'Angle', - iconClasses: 'fa fa-angle-left', + icon: 'angle-left', active: false, }, { command: 'Bidirectional', type: 'tool', text: 'Bidirectional', - svgUrl: `${relativePathToIcons}#icon-tools-measure-target`, + icon: 'measure-target', active: false, }, { command: 'Brush', type: 'tool', text: 'Brush', - iconClasses: 'fa fa-circle', + icon: 'circle', active: false, }, { command: 'FreehandMouse', type: 'tool', text: 'Freehand', - iconClasses: 'fa fa-star', + icon: 'star', active: false, }, { command: 'EllipticalRoi', type: 'tool', text: 'EllipticalRoi', - iconClasses: 'far fa-circle', + icon: 'oval', active: false, }, { command: 'CircleRoi', type: 'tool', text: 'CircleRoi', - iconClasses: 'far fa-dot-circle', + icon: 'dot-circle', active: false, }, { command: 'RectangleRoi', type: 'tool', text: 'RectangleRoi', - iconClasses: 'far fa-square', + icon: 'square-o', active: false, }, { command: 'reset', type: 'command', text: 'Reset', - svgUrl: `${relativePathToIcons}#icon-tools-reset`, + icon: 'reset', active: false, }, ]; diff --git a/src/utils/getDefaultToolbarButtons.test.js b/src/utils/getDefaultToolbarButtons.test.js index c98c2471f..8f59f53fa 100644 --- a/src/utils/getDefaultToolbarButtons.test.js +++ b/src/utils/getDefaultToolbarButtons.test.js @@ -2,25 +2,8 @@ import getDefaultToolbarButtons from './getDefaultToolbarButtons.js'; describe('getDefaultToolbarButtons.js', () => { it('returns a non-empty array', () => { - const basePath = '/'; - - const buttons = getDefaultToolbarButtons(basePath); + const buttons = getDefaultToolbarButtons(); expect(buttons.length).toBeGreaterThan(0); }); - - it('uses the provided basePath in buttons with an svgUrl property', () => { - const basePath = '/demo/'; - - const buttons = getDefaultToolbarButtons(basePath); - const hasOneOrMoreButtonsWithSvgUrlProperty = buttons.some(btn => - btn.hasOwnProperty('svgUrl') - ); - const usesBasePathInButtonSvgUrls = buttons.every( - btn => !btn.hasOwnProperty('svgUrl') || btn.svgUrl.includes(basePath) - ); - - expect(hasOneOrMoreButtonsWithSvgUrlProperty).toBeTruthy(); - expect(usesBasePathInButtonSvgUrls).toBeTruthy(); - }); }); diff --git a/yarn.lock b/yarn.lock index 7b88a30c5..ee5069c3b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1014,6 +1014,25 @@ universal-user-agent "^2.0.0" url-template "^2.0.8" +"@ohif/extension-cornerstone@0.0.34": + version "0.0.34" + resolved "https://registry.yarnpkg.com/@ohif/extension-cornerstone/-/extension-cornerstone-0.0.34.tgz#b3e0ddd21e21f15b67ee1288dd83b833763cfa73" + integrity sha512-Q20FRXvyaeR8pgNJWPJ6oPrYgVtbO+CvAsn0TWqWvuMyuT1kGGlcmrGHjOt++dflx2Do7fVf/qCPFagHbrU9rA== + dependencies: + "@babel/runtime" "^7.2.0" + classnames "^2.2.6" + lodash.throttle "^4.1.1" + react-cornerstone-viewport "0.1.29" + +"@ohif/extension-vtk@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@ohif/extension-vtk/-/extension-vtk-0.0.2.tgz#99f0ea796ddae14d7e64cff958c0656b5d964f4e" + integrity sha512-WDuQVwK4RlHgXwbmKIECZrP90x8cVOwESQz8bJOeNG2eVPDBVlNWx/zOXShAhn6J62QG6Sn1RnHQWLedgGnhyA== + dependencies: + "@babel/runtime" "^7.2.0" + classnames "^2.2.6" + react-vtkjs-viewport "^0.0.7" + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" @@ -9688,16 +9707,6 @@ ohif-core@0.5.5: lodash.merge "^4.6.1" validate.js "^0.12.0" -ohif-cornerstone-extension@0.0.32: - version "0.0.32" - resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.32.tgz#607852e2e300b320e29a37f0f8c9ced3cf4b07e5" - integrity sha512-qHpYno6pYT3UqqAVd+SsMvwIei2sPRxkasqt8uxDSA+tbsM/TaY8daICMknC5aRGvr5XrY9+gSztE6GPJbX0Og== - dependencies: - "@babel/runtime" "^7.2.0" - classnames "^2.2.6" - lodash.throttle "^4.1.1" - react-cornerstone-viewport "0.1.29" - ohif-dicom-html-extension@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/ohif-dicom-html-extension/-/ohif-dicom-html-extension-0.0.2.tgz#5dd80836ee8f12f6ddf6de2b88c72af96d8c347b" @@ -9723,15 +9732,6 @@ ohif-dicom-pdf-extension@^0.0.6: classnames "^2.2.6" lodash.isequal "^4.5.0" -ohif-vtk-extension@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ohif-vtk-extension/-/ohif-vtk-extension-0.0.1.tgz#aec448c1d0a905d162154c65982227b3503f5f15" - integrity sha512-JfLh0AyEc2hOstpiXj9wMwvuYIQathOmsbb49SZFTw9Y9jMjgdxzdTJaiGtERsVT/92I9u42YrMYk6w5TQCT6A== - dependencies: - "@babel/runtime" "^7.2.0" - classnames "^2.2.6" - react-vtkjs-viewport "^0.0.7" - oidc-client@1.7.x: version "1.7.1" resolved "https://registry.yarnpkg.com/oidc-client/-/oidc-client-1.7.1.tgz#8b9d8d50fd7f878968b1cda17712c1747eef9a54" @@ -11760,10 +11760,10 @@ react-transition-group@^2.0.0, react-transition-group@^2.2.0: prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" -react-viewerbase@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.4.2.tgz#a890db450c0f6d1ec495dc2ceb85dbe38fcb7fda" - integrity sha512-1rqdXZ3gQIuRtuxOTKwg9D4EJ1NJ8ug9mQWOAFxx+7PSFhfbjXn55O4Fko92qXrlKqd+Rba1jqBvzTXPr0h0fQ== +react-viewerbase@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.6.1.tgz#60cb6d1b9e90f627b3756f1e426505b9551d0485" + integrity sha512-1wGW4a8lHaG/j5WeC9/R9TZrJLthL6cm5IPDEmthTKF8PNiImMY1VgLR80aXDhfKYi8AVEyCEhOkvvXbPgBl1A== dependencies: "@babel/runtime" "7.2.0" classnames "2.2.6"