merging master into study-list-filter
This commit is contained in:
commit
993b50e3bc
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ohif-cornerstone-extension",
|
"name": "ohif-cornerstone-extension",
|
||||||
"version": "0.0.5",
|
"version": "0.0.16",
|
||||||
"description": "OHIF extension for Cornerstone",
|
"description": "OHIF extension for Cornerstone",
|
||||||
"author": "OHIF",
|
"author": "OHIF",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -14,19 +14,25 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
"prepublishOnly": "npm run build",
|
||||||
"start": "rollup -c -w",
|
"start": "rollup -c -w",
|
||||||
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"cornerstone-core": "^2.2.8",
|
"cornerstone-core": "^2.2.8",
|
||||||
|
"cornerstone-math": "^0.1.8",
|
||||||
|
"cornerstone-tools": "^3.1.0",
|
||||||
"cornerstone-wado-image-loader": "^2.2.3",
|
"cornerstone-wado-image-loader": "^2.2.3",
|
||||||
"dcmjs": "^0.3.2",
|
"dcmjs": "^0.3.3",
|
||||||
"dicom-parser": "^1.8.3",
|
"dicom-parser": "^1.8.3",
|
||||||
|
"hammerjs": "^2.0.8",
|
||||||
|
"ohif-core": "^0.3.0",
|
||||||
|
"prop-types": "^15.6.2",
|
||||||
"react": "^15.0.0 || ^16.0.0",
|
"react": "^15.0.0 || ^16.0.0",
|
||||||
"react-dom": "^15.0.0 || ^16.0.0",
|
"react-dom": "^15.0.0 || ^16.0.0",
|
||||||
"react-redux": "^6.0.0",
|
"react-redux": "^6.0.0",
|
||||||
"redux": "^4.0.1",
|
"react-resize-detector": "^3.4.0",
|
||||||
"ohif-core": "^0.2.7"
|
"redux": "^4.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.2.2",
|
"@babel/core": "^7.2.2",
|
||||||
@ -83,10 +89,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.2.0",
|
"@babel/runtime": "^7.2.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"cornerstone-tools": "3.0.1",
|
"lodash.throttle": "^4.1.1",
|
||||||
"cornerstone-math": "^0.1.8",
|
"react-cornerstone-viewport": "^0.1.14"
|
||||||
"dcmjs": "^0.3.2",
|
|
||||||
"hammerjs": "^2.0.8",
|
|
||||||
"react-cornerstone-viewport": "^0.1.9"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,11 +12,16 @@ const globals = {
|
|||||||
'react': 'React',
|
'react': 'React',
|
||||||
'react-dom': 'ReactDOM',
|
'react-dom': 'ReactDOM',
|
||||||
'react-redux': 'ReactRedux',
|
'react-redux': 'ReactRedux',
|
||||||
|
'react-resize-detector': 'ReactResizeDetector',
|
||||||
|
'prop-types': 'PropTypes',
|
||||||
'cornerstone-core': 'cornerstone',
|
'cornerstone-core': 'cornerstone',
|
||||||
'cornerstone-wado-image-loader': 'cornerstoneWADOImageLoader',
|
'cornerstone-wado-image-loader': 'cornerstoneWADOImageLoader',
|
||||||
|
'cornerstone-math': 'cornerstoneMath',
|
||||||
|
'cornerstone-tools': 'cornerstoneTools',
|
||||||
'dcmjs': 'dcmjs',
|
'dcmjs': 'dcmjs',
|
||||||
'dicom-parser': 'dicomParser',
|
'dicom-parser': 'dicomParser',
|
||||||
'ohif-core': 'OHIF'
|
'ohif-core': 'OHIF',
|
||||||
|
'hammerjs': 'Hammer'
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -1,23 +1,35 @@
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import CornerstoneViewport from 'react-cornerstone-viewport';
|
import CornerstoneViewport from 'react-cornerstone-viewport';
|
||||||
import OHIF from 'ohif-core'
|
import OHIF from 'ohif-core';
|
||||||
import cornerstone from "cornerstone-core";
|
import cornerstone from 'cornerstone-core';
|
||||||
import cornerstoneTools from "cornerstone-tools";
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
|
import throttle from 'lodash.throttle';
|
||||||
|
|
||||||
const { setViewportActive, setViewportSpecificData, clearViewportSpecificData } = OHIF.redux.actions;
|
const {
|
||||||
|
setViewportActive,
|
||||||
|
setViewportSpecificData,
|
||||||
|
clearViewportSpecificData
|
||||||
|
} = OHIF.redux.actions;
|
||||||
|
|
||||||
const mapStateToProps = (state, ownProps) => {
|
const mapStateToProps = (state, ownProps) => {
|
||||||
const activeButton = state.tools.buttons.find(tool => tool.active === true);
|
const activeButton = state.tools.buttons.find(tool => tool.active === true);
|
||||||
|
let dataFromStore;
|
||||||
|
|
||||||
|
if (state.extensions && state.extensions.cornerstone) {
|
||||||
|
dataFromStore = state.extensions.cornerstone;
|
||||||
|
}
|
||||||
|
|
||||||
// If this is the active viewport, enable prefetching.
|
// If this is the active viewport, enable prefetching.
|
||||||
const { viewportIndex } = ownProps; //.viewportData;
|
const { viewportIndex } = ownProps; //.viewportData;
|
||||||
const isActive = viewportIndex === state.viewports.activeViewportIndex;
|
const isActive = viewportIndex === state.viewports.activeViewportIndex;
|
||||||
const viewportSpecificData = state.viewports.viewportSpecificData[viewportIndex] || {};
|
const viewportSpecificData =
|
||||||
|
state.viewports.viewportSpecificData[viewportIndex] || {};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
layout: state.viewports.layout,
|
layout: state.viewports.layout,
|
||||||
isActive,
|
isActive,
|
||||||
activeTool: activeButton && activeButton.command,
|
activeTool: activeButton && activeButton.command,
|
||||||
|
...dataFromStore,
|
||||||
enableStackPrefetch: isActive,
|
enableStackPrefetch: isActive,
|
||||||
//stack: viewportSpecificData.stack,
|
//stack: viewportSpecificData.stack,
|
||||||
cineToolData: viewportSpecificData.cine,
|
cineToolData: viewportSpecificData.cine,
|
||||||
@ -31,15 +43,32 @@ const mapDispatchToProps = (dispatch, ownProps) => {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
setViewportActive: () => {
|
setViewportActive: () => {
|
||||||
dispatch(setViewportActive(viewportIndex))
|
dispatch(setViewportActive(viewportIndex));
|
||||||
},
|
},
|
||||||
|
|
||||||
setViewportSpecificData: (data) => {
|
setViewportSpecificData: data => {
|
||||||
dispatch(setViewportSpecificData(viewportIndex, data))
|
dispatch(setViewportSpecificData(viewportIndex, data));
|
||||||
},
|
},
|
||||||
|
|
||||||
clearViewportSpecificData: () => {
|
clearViewportSpecificData: () => {
|
||||||
dispatch(clearViewportSpecificData(viewportIndex));
|
dispatch(clearViewportSpecificData(viewportIndex));
|
||||||
|
},
|
||||||
|
|
||||||
|
onMeasurementsChanged: (event, action) => {
|
||||||
|
const {
|
||||||
|
onAdded,
|
||||||
|
onRemoved,
|
||||||
|
onModified
|
||||||
|
} = OHIF.measurements.MeasurementHandlers;
|
||||||
|
const actions = {
|
||||||
|
added: onAdded,
|
||||||
|
removed: onRemoved,
|
||||||
|
modified: throttle(event => {
|
||||||
|
return onModified(event);
|
||||||
|
}, 300)
|
||||||
|
};
|
||||||
|
|
||||||
|
return actions[action](event);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -9,12 +9,6 @@ import handleSegmentationStorage from './handleSegmentationStorage.js';
|
|||||||
|
|
||||||
const { StackManager } = OHIF.utils;
|
const { StackManager } = OHIF.utils;
|
||||||
|
|
||||||
// Create the synchronizer used to update reference lines
|
|
||||||
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer(
|
|
||||||
'cornerstonenewimage',
|
|
||||||
cornerstoneTools.updateImageSynchronizer
|
|
||||||
);
|
|
||||||
|
|
||||||
// Metadata configuration
|
// Metadata configuration
|
||||||
const metadataProvider = new OHIF.cornerstone.MetadataProvider();
|
const metadataProvider = new OHIF.cornerstone.MetadataProvider();
|
||||||
|
|
||||||
@ -125,7 +119,7 @@ class OHIFCornerstoneViewport extends Component {
|
|||||||
return viewportData;
|
return viewportData;
|
||||||
};
|
};
|
||||||
|
|
||||||
componentDidMount() {
|
setStateFromProps() {
|
||||||
const { studies, displaySet } = this.props.viewportData;
|
const { studies, displaySet } = this.props.viewportData;
|
||||||
const {
|
const {
|
||||||
studyInstanceUid,
|
studyInstanceUid,
|
||||||
@ -153,15 +147,44 @@ class OHIFCornerstoneViewport extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.setStateFromProps();
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
const { studies, displaySet } = this.props.viewportData;
|
||||||
|
const { displaySetInstanceUid } = displaySet;
|
||||||
|
const prevDisplaySet = prevProps.viewportData.displaySet;
|
||||||
|
|
||||||
|
if (
|
||||||
|
displaySet.displaySetInstanceUid !== prevDisplaySet.displaySetInstanceUid
|
||||||
|
) {
|
||||||
|
this.setStateFromProps();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (<>
|
let childrenWithProps = null;
|
||||||
|
|
||||||
|
// TODO: Does it make more sense to use Context?
|
||||||
|
if (this.props.children && this.props.children.length) {
|
||||||
|
childrenWithProps = this.props.children.map((child, index) => {
|
||||||
|
return React.cloneElement(child, {
|
||||||
|
viewportIndex: this.props.viewportIndex,
|
||||||
|
key: index
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
{this.state.viewportData && (
|
{this.state.viewportData && (
|
||||||
<ConnectedCornerstoneViewport
|
<ConnectedCornerstoneViewport
|
||||||
viewportData={this.state.viewportData}
|
viewportData={this.state.viewportData}
|
||||||
viewportIndex={this.props.viewportIndex}
|
viewportIndex={this.props.viewportIndex}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{this.props.children}
|
{childrenWithProps}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import cornerstone from 'cornerstone-core';
|
|||||||
import cornerstoneMath from 'cornerstone-math';
|
import cornerstoneMath from 'cornerstone-math';
|
||||||
import cornerstoneTools from 'cornerstone-tools';
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
import Hammer from 'hammerjs';
|
import Hammer from 'hammerjs';
|
||||||
import OHIF from 'ohif-core';
|
|
||||||
|
|
||||||
// For debugging
|
// For debugging
|
||||||
window.cornerstoneTools = cornerstoneTools;
|
window.cornerstoneTools = cornerstoneTools;
|
||||||
@ -12,8 +11,6 @@ cornerstoneTools.external.Hammer = Hammer;
|
|||||||
cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
|
cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
|
||||||
cornerstoneTools.init();
|
cornerstoneTools.init();
|
||||||
|
|
||||||
OHIF.external.cornerstoneTools = cornerstoneTools;
|
|
||||||
|
|
||||||
// Set the tool font and font size
|
// Set the tool font and font size
|
||||||
// context.font = "[style] [variant] [weight] [size]/[line height] [font family]";
|
// context.font = "[style] [variant] [weight] [size]/[line height] [font family]";
|
||||||
const fontFamily =
|
const fontFamily =
|
||||||
|
|||||||
@ -118,7 +118,6 @@ async function handleSegmentationStorage(
|
|||||||
|
|
||||||
const referenceDisplaySet = displaySets[0];
|
const referenceDisplaySet = displaySets[0];
|
||||||
const imageIds = referenceDisplaySet.images.map(image => image.getImageId());
|
const imageIds = referenceDisplaySet.images.map(image => image.getImageId());
|
||||||
//debugger;
|
|
||||||
|
|
||||||
//const firstImagePlane = cornerstone.metadata.get('imagePlane', imageIds[0]);
|
//const firstImagePlane = cornerstone.metadata.get('imagePlane', imageIds[0]);
|
||||||
|
|
||||||
|
|||||||
@ -511,7 +511,6 @@
|
|||||||
"@babel/plugin-transform-runtime@^7.2.0":
|
"@babel/plugin-transform-runtime@^7.2.0":
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea"
|
||||||
integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-module-imports" "^7.0.0"
|
"@babel/helper-module-imports" "^7.0.0"
|
||||||
"@babel/helper-plugin-utils" "^7.0.0"
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
@ -558,14 +557,6 @@
|
|||||||
"@babel/helper-regex" "^7.0.0"
|
"@babel/helper-regex" "^7.0.0"
|
||||||
regexpu-core "^4.1.3"
|
regexpu-core "^4.1.3"
|
||||||
|
|
||||||
"@babel/polyfill@^7.2.5":
|
|
||||||
version "7.2.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.2.5.tgz#6c54b964f71ad27edddc567d065e57e87ed7fa7d"
|
|
||||||
integrity sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug==
|
|
||||||
dependencies:
|
|
||||||
core-js "^2.5.7"
|
|
||||||
regenerator-runtime "^0.12.0"
|
|
||||||
|
|
||||||
"@babel/preset-env@^7.2.3":
|
"@babel/preset-env@^7.2.3":
|
||||||
version "7.2.3"
|
version "7.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933"
|
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933"
|
||||||
@ -622,26 +613,12 @@
|
|||||||
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
|
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
|
||||||
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
|
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
|
||||||
|
|
||||||
"@babel/runtime@7.1.2":
|
|
||||||
version "7.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3"
|
|
||||||
integrity sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==
|
|
||||||
dependencies:
|
|
||||||
regenerator-runtime "^0.12.0"
|
|
||||||
|
|
||||||
"@babel/runtime@^7.2.0":
|
"@babel/runtime@^7.2.0":
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.12.0"
|
regenerator-runtime "^0.12.0"
|
||||||
|
|
||||||
"@babel/runtime@^7.3.1":
|
|
||||||
version "7.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a"
|
|
||||||
integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==
|
|
||||||
dependencies:
|
|
||||||
regenerator-runtime "^0.12.0"
|
|
||||||
|
|
||||||
"@babel/template@^7.1.0", "@babel/template@^7.1.2":
|
"@babel/template@^7.1.0", "@babel/template@^7.1.2":
|
||||||
version "7.1.2"
|
version "7.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
|
||||||
@ -743,7 +720,6 @@
|
|||||||
"@types/q@^1.5.1":
|
"@types/q@^1.5.1":
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
|
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
|
||||||
integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==
|
|
||||||
|
|
||||||
abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1:
|
abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1:
|
||||||
version "0.12.4"
|
version "0.12.4"
|
||||||
@ -762,7 +738,6 @@ acorn@^6.0.2:
|
|||||||
acorn@^6.0.5:
|
acorn@^6.0.5:
|
||||||
version "6.0.7"
|
version "6.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.7.tgz#490180ce18337270232d9488a44be83d9afb7fd3"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.7.tgz#490180ce18337270232d9488a44be83d9afb7fd3"
|
||||||
integrity sha512-HNJNgE60C9eOTgn974Tlp3dpLZdUr+SoxxDwPaY9J/kDNOLQTkaDgwBUXAF4SSsrAwD9RpdxuHK/EbuF+W9Ahw==
|
|
||||||
|
|
||||||
ajv@^6.5.3, ajv@^6.6.1:
|
ajv@^6.5.3, ajv@^6.6.1:
|
||||||
version "6.6.1"
|
version "6.6.1"
|
||||||
@ -776,7 +751,6 @@ ajv@^6.5.3, ajv@^6.6.1:
|
|||||||
alphanum-sort@^1.0.0:
|
alphanum-sort@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
||||||
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
|
|
||||||
|
|
||||||
amdefine@>=0.0.4:
|
amdefine@>=0.0.4:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
@ -909,7 +883,6 @@ autoprefixer@^9.0.0:
|
|||||||
babel-eslint@^10.0.1:
|
babel-eslint@^10.0.1:
|
||||||
version "10.0.1"
|
version "10.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
|
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
|
||||||
integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.0.0"
|
"@babel/code-frame" "^7.0.0"
|
||||||
"@babel/parser" "^7.0.0"
|
"@babel/parser" "^7.0.0"
|
||||||
@ -955,7 +928,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
|
|||||||
boolbase@^1.0.0, boolbase@~1.0.0:
|
boolbase@^1.0.0, boolbase@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||||
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.11"
|
version "1.1.11"
|
||||||
@ -1049,7 +1021,6 @@ browserify-sign@^4.0.0:
|
|||||||
browserslist@^4.0.0:
|
browserslist@^4.0.0:
|
||||||
version "4.4.1"
|
version "4.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062"
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062"
|
||||||
integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
caniuse-lite "^1.0.30000929"
|
caniuse-lite "^1.0.30000929"
|
||||||
electron-to-chromium "^1.3.103"
|
electron-to-chromium "^1.3.103"
|
||||||
@ -1120,7 +1091,6 @@ callsites@^2.0.0:
|
|||||||
callsites@^3.0.0:
|
callsites@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
|
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
|
||||||
integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
|
|
||||||
|
|
||||||
camelcase-keys@^4.0.0:
|
camelcase-keys@^4.0.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
@ -1137,7 +1107,6 @@ camelcase@^4.1.0:
|
|||||||
caniuse-api@^3.0.0:
|
caniuse-api@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
|
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
|
||||||
integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
caniuse-lite "^1.0.0"
|
caniuse-lite "^1.0.0"
|
||||||
@ -1147,7 +1116,6 @@ caniuse-api@^3.0.0:
|
|||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929:
|
||||||
version "1.0.30000935"
|
version "1.0.30000935"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz#d1b59df00b46f4921bb84a8a34c1d172b346df59"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz#d1b59df00b46f4921bb84a8a34c1d172b346df59"
|
||||||
integrity sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ==
|
|
||||||
|
|
||||||
caniuse-lite@^1.0.30000912, caniuse-lite@^1.0.30000914:
|
caniuse-lite@^1.0.30000912, caniuse-lite@^1.0.30000914:
|
||||||
version "1.0.30000918"
|
version "1.0.30000918"
|
||||||
@ -1178,7 +1146,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1:
|
|||||||
chalk@^2.4.2:
|
chalk@^2.4.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles "^3.2.1"
|
ansi-styles "^3.2.1"
|
||||||
escape-string-regexp "^1.0.5"
|
escape-string-regexp "^1.0.5"
|
||||||
@ -1263,7 +1230,6 @@ clone@~0.1.9:
|
|||||||
coa@~2.0.1:
|
coa@~2.0.1:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
|
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
|
||||||
integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/q" "^1.5.1"
|
"@types/q" "^1.5.1"
|
||||||
chalk "^2.4.1"
|
chalk "^2.4.1"
|
||||||
@ -1301,7 +1267,6 @@ color-name@^1.0.0:
|
|||||||
color-string@^1.5.2:
|
color-string@^1.5.2:
|
||||||
version "1.5.3"
|
version "1.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
|
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
|
||||||
integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
color-name "^1.0.0"
|
color-name "^1.0.0"
|
||||||
simple-swizzle "^0.2.2"
|
simple-swizzle "^0.2.2"
|
||||||
@ -1309,7 +1274,6 @@ color-string@^1.5.2:
|
|||||||
color@^3.0.0:
|
color@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc"
|
resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc"
|
||||||
integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
color-convert "^1.9.1"
|
color-convert "^1.9.1"
|
||||||
color-string "^1.5.2"
|
color-string "^1.5.2"
|
||||||
@ -1359,28 +1323,10 @@ copy-descriptor@^0.1.0:
|
|||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
|
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
|
||||||
|
|
||||||
core-js@^2.5.7:
|
|
||||||
version "2.6.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
|
|
||||||
integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==
|
|
||||||
|
|
||||||
core-util-is@~1.0.0:
|
core-util-is@~1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||||
|
|
||||||
cornerstone-math@^0.1.7, cornerstone-math@^0.1.8:
|
|
||||||
version "0.1.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.8.tgz#68ab1f9e4fdcd7c5cb23a0d2eb4263f9f894f1c5"
|
|
||||||
integrity sha512-x7NEQHBtVG7j1yeyj/aRoKTpXv1Vh2/H9zNLMyqYJDtJkNng8C4Q8M3CgZ1qer0Yr7eVq2x+Ynmj6kfOm5jXKw==
|
|
||||||
|
|
||||||
cornerstone-tools@3.0.1:
|
|
||||||
version "3.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-3.0.1.tgz#b7e3ac36963ee2a6e49238d9889f05b7b6356ea2"
|
|
||||||
integrity sha512-IcolnxbvNr/Pl8TSFaWkwuT59/CGlWmcD9k1E/eM9sE1x2qiLkCKxYfx/hrSP2aH7cayCWiYlaEcrpAlaQBsWA==
|
|
||||||
dependencies:
|
|
||||||
"@babel/runtime" "7.1.2"
|
|
||||||
cornerstone-math "^0.1.7"
|
|
||||||
|
|
||||||
cosmiconfig@5.0.6:
|
cosmiconfig@5.0.6:
|
||||||
version "5.0.6"
|
version "5.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
|
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
|
||||||
@ -1392,7 +1338,6 @@ cosmiconfig@5.0.6:
|
|||||||
cosmiconfig@^4.0.0:
|
cosmiconfig@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
|
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
|
||||||
integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
is-directory "^0.3.1"
|
is-directory "^0.3.1"
|
||||||
js-yaml "^3.9.0"
|
js-yaml "^3.9.0"
|
||||||
@ -1476,7 +1421,6 @@ css-color-names@0.0.4, css-color-names@^0.0.4:
|
|||||||
css-declaration-sorter@^4.0.1:
|
css-declaration-sorter@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
|
resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
|
||||||
integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.1"
|
postcss "^7.0.1"
|
||||||
timsort "^0.3.0"
|
timsort "^0.3.0"
|
||||||
@ -1499,12 +1443,10 @@ css-parse@1.7.x:
|
|||||||
css-select-base-adapter@~0.1.0:
|
css-select-base-adapter@~0.1.0:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
|
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
|
||||||
integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
|
|
||||||
|
|
||||||
css-select@^2.0.0:
|
css-select@^2.0.0:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
|
resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
|
||||||
integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
boolbase "^1.0.0"
|
boolbase "^1.0.0"
|
||||||
css-what "^2.1.2"
|
css-what "^2.1.2"
|
||||||
@ -1522,7 +1464,6 @@ css-selector-tokenizer@^0.7.0:
|
|||||||
css-tree@1.0.0-alpha.28:
|
css-tree@1.0.0-alpha.28:
|
||||||
version "1.0.0-alpha.28"
|
version "1.0.0-alpha.28"
|
||||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
|
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
|
||||||
integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
mdn-data "~1.1.0"
|
mdn-data "~1.1.0"
|
||||||
source-map "^0.5.3"
|
source-map "^0.5.3"
|
||||||
@ -1530,7 +1471,6 @@ css-tree@1.0.0-alpha.28:
|
|||||||
css-tree@1.0.0-alpha.29:
|
css-tree@1.0.0-alpha.29:
|
||||||
version "1.0.0-alpha.29"
|
version "1.0.0-alpha.29"
|
||||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
|
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
|
||||||
integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
mdn-data "~1.1.0"
|
mdn-data "~1.1.0"
|
||||||
source-map "^0.5.3"
|
source-map "^0.5.3"
|
||||||
@ -1538,17 +1478,14 @@ css-tree@1.0.0-alpha.29:
|
|||||||
css-unit-converter@^1.1.1:
|
css-unit-converter@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
|
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
|
||||||
integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
|
|
||||||
|
|
||||||
css-url-regex@^1.1.0:
|
css-url-regex@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
|
resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
|
||||||
integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=
|
|
||||||
|
|
||||||
css-what@^2.1.2:
|
css-what@^2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d"
|
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d"
|
||||||
integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==
|
|
||||||
|
|
||||||
cssesc@^0.1.0:
|
cssesc@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
@ -1557,12 +1494,10 @@ cssesc@^0.1.0:
|
|||||||
cssesc@^2.0.0:
|
cssesc@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
|
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
|
||||||
integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
|
|
||||||
|
|
||||||
cssnano-preset-default@^4.0.6:
|
cssnano-preset-default@^4.0.6:
|
||||||
version "4.0.6"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.6.tgz#92379e2a6db4a91c0ea727f5f556eeac693eab6a"
|
resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.6.tgz#92379e2a6db4a91c0ea727f5f556eeac693eab6a"
|
||||||
integrity sha512-UPboYbFaJFtDUhJ4fqctThWbbyF4q01/7UhsZbLzp35l+nUxtzh1SifoVlEfyLM3n3Z0htd8B1YlCxy9i+bQvg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-declaration-sorter "^4.0.1"
|
css-declaration-sorter "^4.0.1"
|
||||||
cssnano-util-raw-cache "^4.0.1"
|
cssnano-util-raw-cache "^4.0.1"
|
||||||
@ -1598,29 +1533,24 @@ cssnano-preset-default@^4.0.6:
|
|||||||
cssnano-util-get-arguments@^4.0.0:
|
cssnano-util-get-arguments@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
|
resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
|
||||||
integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
|
|
||||||
|
|
||||||
cssnano-util-get-match@^4.0.0:
|
cssnano-util-get-match@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
|
resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
|
||||||
integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
|
|
||||||
|
|
||||||
cssnano-util-raw-cache@^4.0.1:
|
cssnano-util-raw-cache@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
|
resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
|
||||||
integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
cssnano-util-same-parent@^4.0.0:
|
cssnano-util-same-parent@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
|
resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
|
||||||
integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
|
|
||||||
|
|
||||||
cssnano@^4.1.8:
|
cssnano@^4.1.8:
|
||||||
version "4.1.8"
|
version "4.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.8.tgz#8014989679d5fd42491e4499a521dbfb85c95fd1"
|
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.8.tgz#8014989679d5fd42491e4499a521dbfb85c95fd1"
|
||||||
integrity sha512-5GIY0VzAHORpbKiL3rMXp4w4M1Ki+XlXgEXyuWXVd3h6hlASb+9Vo76dNP56/elLMVBBsUfusCo1q56uW0UWig==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cosmiconfig "^5.0.0"
|
cosmiconfig "^5.0.0"
|
||||||
cssnano-preset-default "^4.0.6"
|
cssnano-preset-default "^4.0.6"
|
||||||
@ -1630,7 +1560,6 @@ cssnano@^4.1.8:
|
|||||||
csso@^3.5.0:
|
csso@^3.5.0:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
|
resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
|
||||||
integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-tree "1.0.0-alpha.29"
|
css-tree "1.0.0-alpha.29"
|
||||||
|
|
||||||
@ -1644,15 +1573,6 @@ date-fns@^1.27.2:
|
|||||||
version "1.29.0"
|
version "1.29.0"
|
||||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
|
||||||
|
|
||||||
dcmjs@^0.3.2:
|
|
||||||
version "0.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.3.2.tgz#18bdcccd0083e01269c588fbbb019e44897b952e"
|
|
||||||
integrity sha512-6tA4A+22c6AK+5wqtU3cS1lNtEPEvndgeRdZfbuMJNC+OiPQFhPmK8+TrNF13ca9QWHUCyRT9mAfAMuio6GnEg==
|
|
||||||
dependencies:
|
|
||||||
"@babel/polyfill" "^7.2.5"
|
|
||||||
"@babel/runtime" "^7.3.1"
|
|
||||||
loglevel "^1.6.1"
|
|
||||||
|
|
||||||
debug@*, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0:
|
debug@*, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
|
||||||
@ -1743,6 +1663,11 @@ des.js@^1.0.0:
|
|||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
|
|
||||||
|
dicomweb-client@^0.4.2:
|
||||||
|
version "0.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.4.2.tgz#f1f5167d935810423ad2599e5160306bde2458ed"
|
||||||
|
integrity sha512-Raf2SVjWDrNaVIVt4CmfXWdKVacyEX5ux+pY2Qop0mhluG+OiCkbnESljz4PjglFRnprETEk6C0ELGDru0haew==
|
||||||
|
|
||||||
diffie-hellman@^5.0.0:
|
diffie-hellman@^5.0.0:
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
||||||
@ -1795,7 +1720,6 @@ domhandler@^2.3.0:
|
|||||||
domutils@^1.5.1, domutils@^1.7.0:
|
domutils@^1.5.1, domutils@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
|
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
|
||||||
integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
dom-serializer "0"
|
dom-serializer "0"
|
||||||
domelementtype "1"
|
domelementtype "1"
|
||||||
@ -1809,7 +1733,6 @@ dot-prop@^4.1.1:
|
|||||||
electron-to-chromium@^1.3.103:
|
electron-to-chromium@^1.3.103:
|
||||||
version "1.3.113"
|
version "1.3.113"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9"
|
||||||
integrity sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==
|
|
||||||
|
|
||||||
electron-to-chromium@^1.3.86:
|
electron-to-chromium@^1.3.86:
|
||||||
version "1.3.88"
|
version "1.3.88"
|
||||||
@ -1864,7 +1787,6 @@ error-ex@^1.2.0, error-ex@^1.3.1:
|
|||||||
es-abstract@^1.12.0, es-abstract@^1.5.1:
|
es-abstract@^1.12.0, es-abstract@^1.5.1:
|
||||||
version "1.13.0"
|
version "1.13.0"
|
||||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
|
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
|
||||||
integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
es-to-primitive "^1.2.0"
|
es-to-primitive "^1.2.0"
|
||||||
function-bind "^1.1.1"
|
function-bind "^1.1.1"
|
||||||
@ -1981,7 +1903,6 @@ eslint-visitor-keys@^1.0.0:
|
|||||||
eslint@5.13.0:
|
eslint@5.13.0:
|
||||||
version "5.13.0"
|
version "5.13.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.13.0.tgz#ce71cc529c450eed9504530939aa97527861ede9"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.13.0.tgz#ce71cc529c450eed9504530939aa97527861ede9"
|
||||||
integrity sha512-nqD5WQMisciZC5EHZowejLKQjWGuFS5c70fxqSKlnDME+oz9zmE8KTlX+lHSg+/5wsC/kf9Q9eMkC8qS3oM2fg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.0.0"
|
"@babel/code-frame" "^7.0.0"
|
||||||
ajv "^6.5.3"
|
ajv "^6.5.3"
|
||||||
@ -2023,7 +1944,6 @@ eslint@5.13.0:
|
|||||||
espree@^5.0.0:
|
espree@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
|
||||||
integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn "^6.0.2"
|
acorn "^6.0.2"
|
||||||
acorn-jsx "^5.0.0"
|
acorn-jsx "^5.0.0"
|
||||||
@ -2472,11 +2392,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
|
|||||||
version "4.1.15"
|
version "4.1.15"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
||||||
|
|
||||||
hammerjs@^2.0.8:
|
|
||||||
version "2.0.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1"
|
|
||||||
integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=
|
|
||||||
|
|
||||||
has-ansi@^2.0.0:
|
has-ansi@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
||||||
@ -2545,7 +2460,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
|
|||||||
hex-color-regex@^1.1.0:
|
hex-color-regex@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
||||||
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
|
|
||||||
|
|
||||||
hmac-drbg@^1.0.0:
|
hmac-drbg@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
@ -2568,12 +2482,10 @@ hosted-git-info@^2.1.4:
|
|||||||
hsl-regex@^1.0.0:
|
hsl-regex@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
|
resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
|
||||||
integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
|
|
||||||
|
|
||||||
hsla-regex@^1.0.0:
|
hsla-regex@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
|
resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
|
||||||
integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
|
|
||||||
|
|
||||||
html-comment-regex@^1.1.0:
|
html-comment-regex@^1.1.0:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
@ -2658,7 +2570,6 @@ import-fresh@^2.0.0:
|
|||||||
import-fresh@^3.0.0:
|
import-fresh@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
|
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
|
||||||
integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
parent-module "^1.0.0"
|
parent-module "^1.0.0"
|
||||||
resolve-from "^4.0.0"
|
resolve-from "^4.0.0"
|
||||||
@ -2766,7 +2677,6 @@ is-arrayish@^0.2.1:
|
|||||||
is-arrayish@^0.3.1:
|
is-arrayish@^0.3.1:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
|
||||||
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
|
|
||||||
|
|
||||||
is-buffer@^1.1.4, is-buffer@^1.1.5:
|
is-buffer@^1.1.4, is-buffer@^1.1.5:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
@ -2791,7 +2701,6 @@ is-ci@^2.0.0:
|
|||||||
is-color-stop@^1.0.0:
|
is-color-stop@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
|
resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
|
||||||
integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-color-names "^0.0.4"
|
css-color-names "^0.0.4"
|
||||||
hex-color-regex "^1.1.0"
|
hex-color-regex "^1.1.0"
|
||||||
@ -2985,7 +2894,6 @@ is-regexp@^1.0.0:
|
|||||||
is-resolvable@^1.0.0:
|
is-resolvable@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
||||||
integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
|
|
||||||
|
|
||||||
is-stream@^1.1.0:
|
is-stream@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
@ -2998,7 +2906,6 @@ is-supported-regexp-flag@^1.0.0:
|
|||||||
is-svg@^3.0.0:
|
is-svg@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
|
resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
|
||||||
integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
html-comment-regex "^1.1.0"
|
html-comment-regex "^1.1.0"
|
||||||
|
|
||||||
@ -3050,6 +2957,11 @@ isobject@^3.0.0, isobject@^3.0.1:
|
|||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
||||||
|
|
||||||
|
isomorphic-base64@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz#f426aae82569ba8a4ec5ca73ad21a44ab1ee7803"
|
||||||
|
integrity sha1-9Caq6CVpuopOxcpzrSGkSrHueAM=
|
||||||
|
|
||||||
jest-get-type@^22.1.0:
|
jest-get-type@^22.1.0:
|
||||||
version "22.4.3"
|
version "22.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
|
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
|
||||||
@ -3063,6 +2975,16 @@ jest-validate@^23.5.0:
|
|||||||
leven "^2.1.0"
|
leven "^2.1.0"
|
||||||
pretty-format "^23.6.0"
|
pretty-format "^23.6.0"
|
||||||
|
|
||||||
|
jquery.hotkeys@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/jquery.hotkeys/-/jquery.hotkeys-0.1.0.tgz#a88f636494fe75de41e4b753a059e5a523b83273"
|
||||||
|
integrity sha1-qI9jZJT+dd5B5LdToFnlpSO4MnM=
|
||||||
|
|
||||||
|
jquery@^3.3.1:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
|
||||||
|
integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
|
||||||
|
|
||||||
js-levenshtein@^1.1.3:
|
js-levenshtein@^1.1.3:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e"
|
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e"
|
||||||
@ -3346,15 +3268,28 @@ lodash.camelcase@^4.3.0:
|
|||||||
version "4.3.0"
|
version "4.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
||||||
|
|
||||||
|
lodash.clonedeep@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||||
|
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
|
||||||
|
|
||||||
lodash.debounce@^4.0.8:
|
lodash.debounce@^4.0.8:
|
||||||
version "4.0.8"
|
version "4.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
||||||
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
|
||||||
|
|
||||||
lodash.memoize@^4.1.2:
|
lodash.memoize@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||||
|
|
||||||
|
lodash.merge@^4.6.1:
|
||||||
|
version "4.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
|
||||||
|
integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
|
||||||
|
|
||||||
|
lodash.throttle@^4.1.1:
|
||||||
|
version "4.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
||||||
|
|
||||||
lodash.uniq@^4.5.0:
|
lodash.uniq@^4.5.0:
|
||||||
version "4.5.0"
|
version "4.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||||
@ -3383,11 +3318,6 @@ log-update@^2.3.0:
|
|||||||
cli-cursor "^2.0.0"
|
cli-cursor "^2.0.0"
|
||||||
wrap-ansi "^3.0.1"
|
wrap-ansi "^3.0.1"
|
||||||
|
|
||||||
loglevel@^1.6.1:
|
|
||||||
version "1.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
|
||||||
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
|
||||||
|
|
||||||
longest-streak@^2.0.1:
|
longest-streak@^2.0.1:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e"
|
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e"
|
||||||
@ -3472,7 +3402,6 @@ mdast-util-compact@^1.0.0:
|
|||||||
mdn-data@~1.1.0:
|
mdn-data@~1.1.0:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
|
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
|
||||||
integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
|
|
||||||
|
|
||||||
meow@^5.0.0:
|
meow@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
@ -3596,7 +3525,6 @@ mkpath@^1.0.0:
|
|||||||
moment@^2.23.0:
|
moment@^2.23.0:
|
||||||
version "2.24.0"
|
version "2.24.0"
|
||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
|
||||||
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
|
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@ -3643,7 +3571,6 @@ node-releases@^1.0.5:
|
|||||||
node-releases@^1.1.3:
|
node-releases@^1.1.3:
|
||||||
version "1.1.7"
|
version "1.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.7.tgz#b09a10394d0ed8f7778f72bb861dde68b146303b"
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.7.tgz#b09a10394d0ed8f7778f72bb861dde68b146303b"
|
||||||
integrity sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
|
|
||||||
@ -3682,7 +3609,6 @@ normalize-url@^1.0.0:
|
|||||||
normalize-url@^3.0.0:
|
normalize-url@^3.0.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
|
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
|
||||||
integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
|
|
||||||
|
|
||||||
npm-path@^2.0.2:
|
npm-path@^2.0.2:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
@ -3707,7 +3633,6 @@ npm-which@^3.0.1:
|
|||||||
nth-check@^1.0.2:
|
nth-check@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
||||||
integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
boolbase "~1.0.0"
|
boolbase "~1.0.0"
|
||||||
|
|
||||||
@ -3756,7 +3681,6 @@ object-visit@^1.0.0:
|
|||||||
object.getownpropertydescriptors@^2.0.3:
|
object.getownpropertydescriptors@^2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
|
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
|
||||||
integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
|
|
||||||
dependencies:
|
dependencies:
|
||||||
define-properties "^1.1.2"
|
define-properties "^1.1.2"
|
||||||
es-abstract "^1.5.1"
|
es-abstract "^1.5.1"
|
||||||
@ -3777,7 +3701,6 @@ object.pick@^1.3.0:
|
|||||||
object.values@^1.0.4:
|
object.values@^1.0.4:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
|
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
|
||||||
integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
define-properties "^1.1.3"
|
define-properties "^1.1.3"
|
||||||
es-abstract "^1.12.0"
|
es-abstract "^1.12.0"
|
||||||
@ -3788,6 +3711,18 @@ octal@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b"
|
resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b"
|
||||||
|
|
||||||
|
"ohif-core@file:.yalc/ohif-core":
|
||||||
|
version "0.2.9-ee88c076"
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.2.0"
|
||||||
|
dicomweb-client "^0.4.2"
|
||||||
|
isomorphic-base64 "^1.0.2"
|
||||||
|
jquery "^3.3.1"
|
||||||
|
jquery.hotkeys "^0.1.0"
|
||||||
|
lodash.clonedeep "^4.5.0"
|
||||||
|
lodash.merge "^4.6.1"
|
||||||
|
validate.js "^0.12.0"
|
||||||
|
|
||||||
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
@ -3866,7 +3801,6 @@ p-try@^2.0.0:
|
|||||||
parent-module@^1.0.0:
|
parent-module@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
|
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
|
||||||
integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
callsites "^3.0.0"
|
callsites "^3.0.0"
|
||||||
|
|
||||||
@ -4020,7 +3954,6 @@ posix-character-classes@^0.1.0:
|
|||||||
postcss-calc@^7.0.0:
|
postcss-calc@^7.0.0:
|
||||||
version "7.0.1"
|
version "7.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
|
resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
|
||||||
integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-unit-converter "^1.1.1"
|
css-unit-converter "^1.1.1"
|
||||||
postcss "^7.0.5"
|
postcss "^7.0.5"
|
||||||
@ -4030,7 +3963,6 @@ postcss-calc@^7.0.0:
|
|||||||
postcss-colormin@^4.0.2:
|
postcss-colormin@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99"
|
resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99"
|
||||||
integrity sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
color "^3.0.0"
|
color "^3.0.0"
|
||||||
@ -4041,7 +3973,6 @@ postcss-colormin@^4.0.2:
|
|||||||
postcss-convert-values@^4.0.1:
|
postcss-convert-values@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
|
resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
|
||||||
integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
postcss-value-parser "^3.0.0"
|
postcss-value-parser "^3.0.0"
|
||||||
@ -4049,28 +3980,24 @@ postcss-convert-values@^4.0.1:
|
|||||||
postcss-discard-comments@^4.0.1:
|
postcss-discard-comments@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d"
|
resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d"
|
||||||
integrity sha512-Ay+rZu1Sz6g8IdzRjUgG2NafSNpp2MSMOQUb+9kkzzzP+kh07fP0yNbhtFejURnyVXSX3FYy2nVNW1QTnNjgBQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
postcss-discard-duplicates@^4.0.2:
|
postcss-discard-duplicates@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
|
resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
|
||||||
integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
postcss-discard-empty@^4.0.1:
|
postcss-discard-empty@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
|
resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
|
||||||
integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
postcss-discard-overridden@^4.0.1:
|
postcss-discard-overridden@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
|
resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
|
||||||
integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
@ -4097,7 +4024,6 @@ postcss-less@^3.1.0:
|
|||||||
postcss-load-config@^2.0.0:
|
postcss-load-config@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484"
|
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484"
|
||||||
integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cosmiconfig "^4.0.0"
|
cosmiconfig "^4.0.0"
|
||||||
import-cwd "^2.0.0"
|
import-cwd "^2.0.0"
|
||||||
@ -4116,7 +4042,6 @@ postcss-media-query-parser@^0.2.3:
|
|||||||
postcss-merge-longhand@^4.0.10:
|
postcss-merge-longhand@^4.0.10:
|
||||||
version "4.0.10"
|
version "4.0.10"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.10.tgz#c4d63ab57bdc054ab4067ab075d488c8c2978380"
|
resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.10.tgz#c4d63ab57bdc054ab4067ab075d488c8c2978380"
|
||||||
integrity sha512-hME10s6CSjm9nlVIcO1ukR7Jr5RisTaaC1y83jWCivpuBtPohA3pZE7cGTIVSYjXvLnXozHTiVOkG4dnnl756g==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-color-names "0.0.4"
|
css-color-names "0.0.4"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4126,7 +4051,6 @@ postcss-merge-longhand@^4.0.10:
|
|||||||
postcss-merge-rules@^4.0.2:
|
postcss-merge-rules@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74"
|
resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74"
|
||||||
integrity sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
caniuse-api "^3.0.0"
|
caniuse-api "^3.0.0"
|
||||||
@ -4138,7 +4062,6 @@ postcss-merge-rules@^4.0.2:
|
|||||||
postcss-minify-font-values@^4.0.2:
|
postcss-minify-font-values@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
|
resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
|
||||||
integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
postcss-value-parser "^3.0.0"
|
postcss-value-parser "^3.0.0"
|
||||||
@ -4146,7 +4069,6 @@ postcss-minify-font-values@^4.0.2:
|
|||||||
postcss-minify-gradients@^4.0.1:
|
postcss-minify-gradients@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd"
|
resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd"
|
||||||
integrity sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-arguments "^4.0.0"
|
cssnano-util-get-arguments "^4.0.0"
|
||||||
is-color-stop "^1.0.0"
|
is-color-stop "^1.0.0"
|
||||||
@ -4156,7 +4078,6 @@ postcss-minify-gradients@^4.0.1:
|
|||||||
postcss-minify-params@^4.0.1:
|
postcss-minify-params@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2"
|
resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2"
|
||||||
integrity sha512-h4W0FEMEzBLxpxIVelRtMheskOKKp52ND6rJv+nBS33G1twu2tCyurYj/YtgU76+UDCvWeNs0hs8HFAWE2OUFg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
alphanum-sort "^1.0.0"
|
alphanum-sort "^1.0.0"
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
@ -4168,7 +4089,6 @@ postcss-minify-params@^4.0.1:
|
|||||||
postcss-minify-selectors@^4.0.1:
|
postcss-minify-selectors@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd"
|
resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd"
|
||||||
integrity sha512-8+plQkomve3G+CodLCgbhAKrb5lekAnLYuL1d7Nz+/7RANpBEVdgBkPNwljfSKvZ9xkkZTZITd04KP+zeJTJqg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
alphanum-sort "^1.0.0"
|
alphanum-sort "^1.0.0"
|
||||||
has "^1.0.0"
|
has "^1.0.0"
|
||||||
@ -4205,7 +4125,6 @@ postcss-modules-values@1.3.0:
|
|||||||
postcss-modules@^1.4.1:
|
postcss-modules@^1.4.1:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-1.4.1.tgz#8aa35bd3461db67e27377a7ce770d77b654a84ef"
|
resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-1.4.1.tgz#8aa35bd3461db67e27377a7ce770d77b654a84ef"
|
||||||
integrity sha512-btTrbK+Xc3NBuYF8TPBjCMRSp5h6NoQ1iVZ6WiDQENIze6KIYCSf0+UFQuV3yJ7gRHA+4AAtF8i2jRvUpbBMMg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
css-modules-loader-core "^1.1.0"
|
css-modules-loader-core "^1.1.0"
|
||||||
generic-names "^1.0.3"
|
generic-names "^1.0.3"
|
||||||
@ -4216,14 +4135,12 @@ postcss-modules@^1.4.1:
|
|||||||
postcss-normalize-charset@^4.0.1:
|
postcss-normalize-charset@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
|
||||||
integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
|
|
||||||
postcss-normalize-display-values@^4.0.1:
|
postcss-normalize-display-values@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c"
|
||||||
integrity sha512-R5mC4vaDdvsrku96yXP7zak+O3Mm9Y8IslUobk7IMP+u/g+lXvcN4jngmHY5zeJnrQvE13dfAg5ViU05ZFDwdg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-match "^4.0.0"
|
cssnano-util-get-match "^4.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4232,7 +4149,6 @@ postcss-normalize-display-values@^4.0.1:
|
|||||||
postcss-normalize-positions@^4.0.1:
|
postcss-normalize-positions@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1"
|
||||||
integrity sha512-GNoOaLRBM0gvH+ZRb2vKCIujzz4aclli64MBwDuYGU2EY53LwiP7MxOZGE46UGtotrSnmarPPZ69l2S/uxdaWA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-arguments "^4.0.0"
|
cssnano-util-get-arguments "^4.0.0"
|
||||||
has "^1.0.0"
|
has "^1.0.0"
|
||||||
@ -4242,7 +4158,6 @@ postcss-normalize-positions@^4.0.1:
|
|||||||
postcss-normalize-repeat-style@^4.0.1:
|
postcss-normalize-repeat-style@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5"
|
||||||
integrity sha512-fFHPGIjBUyUiswY2rd9rsFcC0t3oRta4wxE1h3lpwfQZwFeFjXFSiDtdJ7APCmHQOnUZnqYBADNRPKPwFAONgA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-arguments "^4.0.0"
|
cssnano-util-get-arguments "^4.0.0"
|
||||||
cssnano-util-get-match "^4.0.0"
|
cssnano-util-get-match "^4.0.0"
|
||||||
@ -4252,7 +4167,6 @@ postcss-normalize-repeat-style@^4.0.1:
|
|||||||
postcss-normalize-string@^4.0.1:
|
postcss-normalize-string@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3"
|
||||||
integrity sha512-IJoexFTkAvAq5UZVxWXAGE0yLoNN/012v7TQh5nDo6imZJl2Fwgbhy3J2qnIoaDBrtUP0H7JrXlX1jjn2YcvCQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
has "^1.0.0"
|
has "^1.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4261,7 +4175,6 @@ postcss-normalize-string@^4.0.1:
|
|||||||
postcss-normalize-timing-functions@^4.0.1:
|
postcss-normalize-timing-functions@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7"
|
||||||
integrity sha512-1nOtk7ze36+63ONWD8RCaRDYsnzorrj+Q6fxkQV+mlY5+471Qx9kspqv0O/qQNMeApg8KNrRf496zHwJ3tBZ7w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-match "^4.0.0"
|
cssnano-util-get-match "^4.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4270,7 +4183,6 @@ postcss-normalize-timing-functions@^4.0.1:
|
|||||||
postcss-normalize-unicode@^4.0.1:
|
postcss-normalize-unicode@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
|
||||||
integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4279,7 +4191,6 @@ postcss-normalize-unicode@^4.0.1:
|
|||||||
postcss-normalize-url@^4.0.1:
|
postcss-normalize-url@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
|
||||||
integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
is-absolute-url "^2.0.0"
|
is-absolute-url "^2.0.0"
|
||||||
normalize-url "^3.0.0"
|
normalize-url "^3.0.0"
|
||||||
@ -4289,7 +4200,6 @@ postcss-normalize-url@^4.0.1:
|
|||||||
postcss-normalize-whitespace@^4.0.1:
|
postcss-normalize-whitespace@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e"
|
resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e"
|
||||||
integrity sha512-U8MBODMB2L+nStzOk6VvWWjZgi5kQNShCyjRhMT3s+W9Jw93yIjOnrEkKYD3Ul7ChWbEcjDWmXq0qOL9MIAnAw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
postcss-value-parser "^3.0.0"
|
postcss-value-parser "^3.0.0"
|
||||||
@ -4297,7 +4207,6 @@ postcss-normalize-whitespace@^4.0.1:
|
|||||||
postcss-ordered-values@^4.1.1:
|
postcss-ordered-values@^4.1.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2"
|
resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2"
|
||||||
integrity sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-arguments "^4.0.0"
|
cssnano-util-get-arguments "^4.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4306,7 +4215,6 @@ postcss-ordered-values@^4.1.1:
|
|||||||
postcss-reduce-initial@^4.0.2:
|
postcss-reduce-initial@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15"
|
resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15"
|
||||||
integrity sha512-epUiC39NonKUKG+P3eAOKKZtm5OtAtQJL7Ye0CBN1f+UQTHzqotudp+hki7zxXm7tT0ZAKDMBj1uihpPjP25ug==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
caniuse-api "^3.0.0"
|
caniuse-api "^3.0.0"
|
||||||
@ -4316,7 +4224,6 @@ postcss-reduce-initial@^4.0.2:
|
|||||||
postcss-reduce-transforms@^4.0.1:
|
postcss-reduce-transforms@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561"
|
resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561"
|
||||||
integrity sha512-sZVr3QlGs0pjh6JAIe6DzWvBaqYw05V1t3d9Tp+VnFRT5j+rsqoWsysh/iSD7YNsULjq9IAylCznIwVd5oU/zA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano-util-get-match "^4.0.0"
|
cssnano-util-get-match "^4.0.0"
|
||||||
has "^1.0.0"
|
has "^1.0.0"
|
||||||
@ -4358,7 +4265,6 @@ postcss-scss@^2.0.0:
|
|||||||
postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.0:
|
postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.0:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
|
||||||
integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
|
|
||||||
dependencies:
|
dependencies:
|
||||||
dot-prop "^4.1.1"
|
dot-prop "^4.1.1"
|
||||||
indexes-of "^1.0.1"
|
indexes-of "^1.0.1"
|
||||||
@ -4367,7 +4273,6 @@ postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.0:
|
|||||||
postcss-selector-parser@^5.0.0-rc.4:
|
postcss-selector-parser@^5.0.0-rc.4:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
|
||||||
integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cssesc "^2.0.0"
|
cssesc "^2.0.0"
|
||||||
indexes-of "^1.0.1"
|
indexes-of "^1.0.1"
|
||||||
@ -4380,7 +4285,6 @@ postcss-styled@>=0.34.0, postcss-styled@^0.34.0:
|
|||||||
postcss-svgo@^4.0.1:
|
postcss-svgo@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d"
|
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d"
|
||||||
integrity sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
is-svg "^3.0.0"
|
is-svg "^3.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4394,7 +4298,6 @@ postcss-syntax@^0.34.0:
|
|||||||
postcss-unique-selectors@^4.0.1:
|
postcss-unique-selectors@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
|
resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
|
||||||
integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
alphanum-sort "^1.0.0"
|
alphanum-sort "^1.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -4431,7 +4334,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.6:
|
|||||||
postcss@^7.0.14, postcss@^7.0.5:
|
postcss@^7.0.14, postcss@^7.0.5:
|
||||||
version "7.0.14"
|
version "7.0.14"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5"
|
||||||
integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^2.4.2"
|
chalk "^2.4.2"
|
||||||
source-map "^0.6.1"
|
source-map "^0.6.1"
|
||||||
@ -4553,10 +4455,10 @@ randomfill@^1.0.3:
|
|||||||
randombytes "^2.0.5"
|
randombytes "^2.0.5"
|
||||||
safe-buffer "^5.1.0"
|
safe-buffer "^5.1.0"
|
||||||
|
|
||||||
react-cornerstone-viewport@^0.1.9:
|
react-cornerstone-viewport@^0.1.14:
|
||||||
version "0.1.9"
|
version "0.1.14"
|
||||||
resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.9.tgz#28cbf2ec3b13976f271e7cc30e6386c5d97e854c"
|
resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.14.tgz#297d004c3e746c476fc785336a928096f257e860"
|
||||||
integrity sha512-demadfvFX9uOp+lV0wV6Pom6g3Dagdt/97m3mTAN7o236mCDVBn1SBHBkVIjOeKkkPmXIV2q0dlHuINsnlK4TA==
|
integrity sha512-PUnrDsQujOKEDuXVZFuxX3d8I4sEYtbNeTrGk5HPeFZXccIx+KSUf+qU06CsJnpMu4FqgaeHGtMVKm3hJJRmvg==
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash.debounce "^4.0.8"
|
lodash.debounce "^4.0.8"
|
||||||
moment "^2.23.0"
|
moment "^2.23.0"
|
||||||
@ -4565,7 +4467,6 @@ react-cornerstone-viewport@^0.1.9:
|
|||||||
react-dom@^16.6.3:
|
react-dom@^16.6.3:
|
||||||
version "16.8.1"
|
version "16.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4"
|
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4"
|
||||||
integrity sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
@ -4575,7 +4476,6 @@ react-dom@^16.6.3:
|
|||||||
react@^16.6.3:
|
react@^16.6.3:
|
||||||
version "16.8.1"
|
version "16.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a"
|
resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a"
|
||||||
integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
@ -4807,7 +4707,6 @@ replace-ext@1.0.0:
|
|||||||
require-from-string@^2.0.1:
|
require-from-string@^2.0.1:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
||||||
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
|
||||||
|
|
||||||
reserved-words@^0.1.2:
|
reserved-words@^0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
@ -4852,12 +4751,10 @@ ret@~0.1.10:
|
|||||||
rgb-regex@^1.0.1:
|
rgb-regex@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
|
resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
|
||||||
integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
|
|
||||||
|
|
||||||
rgba-regex@^1.0.0:
|
rgba-regex@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
|
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
|
||||||
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
|
|
||||||
|
|
||||||
rimraf@^2.2.8, rimraf@^2.6.2, rimraf@~2.6.2:
|
rimraf@^2.2.8, rimraf@^2.6.2, rimraf@~2.6.2:
|
||||||
version "2.6.2"
|
version "2.6.2"
|
||||||
@ -4912,7 +4809,6 @@ rollup-plugin-peer-deps-external@^2.2.0:
|
|||||||
rollup-plugin-postcss@^2.0.3:
|
rollup-plugin-postcss@^2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-2.0.3.tgz#1fd5b7e1fc7545cb0084d9c99d11b259e41a05e6"
|
resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-2.0.3.tgz#1fd5b7e1fc7545cb0084d9c99d11b259e41a05e6"
|
||||||
integrity sha512-d12oKl6za/GGXmlytzVPzzTdPCKgti/Kq2kNhtfm5vv9hkNbyrTvizMBm6zZ5rRWX/sIWl3znjIJ8xy6Hofoeg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^2.4.2"
|
chalk "^2.4.2"
|
||||||
concat-with-sourcemaps "^1.0.5"
|
concat-with-sourcemaps "^1.0.5"
|
||||||
@ -4947,7 +4843,6 @@ rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.0, rollup-pluginutils@^2.3.3:
|
|||||||
rollup@^1.1.2:
|
rollup@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.1.2.tgz#8d094b85683b810d0c05a16bd7618cf70d48eba7"
|
resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.1.2.tgz#8d094b85683b810d0c05a16bd7618cf70d48eba7"
|
||||||
integrity sha512-OkdMxqMl8pWoQc5D8y1cIinYQPPLV8ZkfLgCzL6SytXeNA2P7UHynEQXI9tYxuAjAMsSyvRaWnyJDLHMxq0XAg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/estree" "0.0.39"
|
"@types/estree" "0.0.39"
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
@ -4990,12 +4885,10 @@ sax@0.5.x:
|
|||||||
sax@~1.2.4:
|
sax@~1.2.4:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
|
||||||
|
|
||||||
scheduler@^0.13.1:
|
scheduler@^0.13.1:
|
||||||
version "0.13.1"
|
version "0.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591"
|
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591"
|
||||||
integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
@ -5060,7 +4953,6 @@ simple-git@^1.85.0:
|
|||||||
simple-swizzle@^0.2.2:
|
simple-swizzle@^0.2.2:
|
||||||
version "0.2.2"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
||||||
integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
|
|
||||||
dependencies:
|
dependencies:
|
||||||
is-arrayish "^0.3.1"
|
is-arrayish "^0.3.1"
|
||||||
|
|
||||||
@ -5087,7 +4979,6 @@ slice-ansi@2.0.0:
|
|||||||
slice-ansi@^2.0.0:
|
slice-ansi@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
|
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
|
||||||
integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles "^3.2.0"
|
ansi-styles "^3.2.0"
|
||||||
astral-regex "^1.0.0"
|
astral-regex "^1.0.0"
|
||||||
@ -5197,7 +5088,6 @@ sprintf-js@~1.0.2:
|
|||||||
stable@~0.1.6:
|
stable@~0.1.6:
|
||||||
version "0.1.8"
|
version "0.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
||||||
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
|
|
||||||
|
|
||||||
staged-git-files@1.1.2:
|
staged-git-files@1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
@ -5333,7 +5223,6 @@ style-search@^0.1.0:
|
|||||||
stylehacks@^4.0.0:
|
stylehacks@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
|
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
|
||||||
integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.0.0"
|
browserslist "^4.0.0"
|
||||||
postcss "^7.0.0"
|
postcss "^7.0.0"
|
||||||
@ -5432,7 +5321,6 @@ supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
|
|||||||
supports-color@^6.1.0:
|
supports-color@^6.1.0:
|
||||||
version "6.1.0"
|
version "6.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
|
||||||
integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^3.0.0"
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
@ -5443,7 +5331,6 @@ svg-tags@^1.0.0:
|
|||||||
svgo@^1.0.0:
|
svgo@^1.0.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
|
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
|
||||||
integrity sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
coa "~2.0.1"
|
coa "~2.0.1"
|
||||||
colors "~1.1.2"
|
colors "~1.1.2"
|
||||||
@ -5476,7 +5363,6 @@ table@^5.0.0:
|
|||||||
table@^5.0.2:
|
table@^5.0.2:
|
||||||
version "5.2.2"
|
version "5.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/table/-/table-5.2.2.tgz#61d474c9e4d8f4f7062c98c7504acb3c08aa738f"
|
resolved "https://registry.yarnpkg.com/table/-/table-5.2.2.tgz#61d474c9e4d8f4f7062c98c7504acb3c08aa738f"
|
||||||
integrity sha512-f8mJmuu9beQEDkKHLzOv4VxVYlU68NpdzjbGPl69i4Hx0sTopJuNxuzJd17iV2h24dAfa93u794OnDA5jqXvfQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^6.6.1"
|
ajv "^6.6.1"
|
||||||
lodash "^4.17.11"
|
lodash "^4.17.11"
|
||||||
@ -5494,7 +5380,6 @@ through@^2.3.6:
|
|||||||
timsort@^0.3.0:
|
timsort@^0.3.0:
|
||||||
version "0.3.0"
|
version "0.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
|
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
|
||||||
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
|
|
||||||
|
|
||||||
tmp@^0.0.33:
|
tmp@^0.0.33:
|
||||||
version "0.0.33"
|
version "0.0.33"
|
||||||
@ -5665,7 +5550,6 @@ universalify@^0.1.0:
|
|||||||
unquote@~1.1.1:
|
unquote@~1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
|
resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
|
||||||
integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
|
|
||||||
|
|
||||||
unset-value@^1.0.0:
|
unset-value@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@ -5695,7 +5579,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
|||||||
util.promisify@~1.0.0:
|
util.promisify@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
|
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
|
||||||
integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
define-properties "^1.1.2"
|
define-properties "^1.1.2"
|
||||||
object.getownpropertydescriptors "^2.0.3"
|
object.getownpropertydescriptors "^2.0.3"
|
||||||
@ -5707,6 +5590,11 @@ validate-npm-package-license@^3.0.1:
|
|||||||
spdx-correct "^3.0.0"
|
spdx-correct "^3.0.0"
|
||||||
spdx-expression-parse "^3.0.0"
|
spdx-expression-parse "^3.0.0"
|
||||||
|
|
||||||
|
validate.js@^0.12.0:
|
||||||
|
version "0.12.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/validate.js/-/validate.js-0.12.0.tgz#17f989e37c192ea2f826bbf19bf4e97e6e4be68f"
|
||||||
|
integrity sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==
|
||||||
|
|
||||||
vendors@^1.0.0:
|
vendors@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
|
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
|
||||||
|
|||||||
14
Packages-react/extensions/ohif-dicom-html-extension/.babelrc
Normal file
14
Packages-react/extensions/ohif-dicom-html-extension/.babelrc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
["@babel/preset-env", {
|
||||||
|
"targets": {
|
||||||
|
"ie": "11"
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
"@babel/preset-react"
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"@babel/plugin-proposal-class-properties",
|
||||||
|
"@babel/plugin-transform-runtime"
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"react-app",
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:react/recommended"
|
||||||
|
],
|
||||||
|
"parser": "babel-eslint",
|
||||||
|
"env": {
|
||||||
|
"jest": true
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"react": {
|
||||||
|
"version": "detect",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
23
Packages-react/extensions/ohif-dicom-html-extension/.gitignore
vendored
Normal file
23
Packages-react/extensions/ohif-dicom-html-extension/.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# builds
|
||||||
|
build
|
||||||
|
dist
|
||||||
|
.rpt2_cache
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.idea
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"singleQuote": true
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- 9
|
||||||
|
- 8
|
||||||
21
Packages-react/extensions/ohif-dicom-html-extension/LICENSE
Normal file
21
Packages-react/extensions/ohif-dicom-html-extension/LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2018 Open Health Imaging Foundation
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"name": "ohif-dicom-html-extension",
|
||||||
|
"version": "0.0.2",
|
||||||
|
"description": "OHIF extension for rendering structured reports to HTML",
|
||||||
|
"author": "OHIF",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": "OHIF/Viewers",
|
||||||
|
"main": "dist/index.umd.js",
|
||||||
|
"module": "dist/index.es.js",
|
||||||
|
"jsnext:main": "dist/index.es.js",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8",
|
||||||
|
"npm": ">=5"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "rollup -c",
|
||||||
|
"prepublishOnly": "npm run build",
|
||||||
|
"start": "rollup -c -w",
|
||||||
|
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"dcmjs": "^0.3.3",
|
||||||
|
"ohif-core": "^0.2.6",
|
||||||
|
"prop-types": "^15.6.2",
|
||||||
|
"react": "^15.0.0 || ^16.0.0",
|
||||||
|
"react-dom": "^15.0.0 || ^16.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.2.2",
|
||||||
|
"@babel/plugin-external-helpers": "^7.2.0",
|
||||||
|
"@babel/plugin-proposal-class-properties": "^7.2.3",
|
||||||
|
"@babel/plugin-transform-runtime": "^7.2.0",
|
||||||
|
"@babel/preset-env": "^7.2.3",
|
||||||
|
"@babel/preset-react": "^7.0.0",
|
||||||
|
"@svgr/rollup": "^4.1.0",
|
||||||
|
"babel-eslint": "^9.0.0",
|
||||||
|
"cross-env": "^5.2.0",
|
||||||
|
"eslint": "5.6.0",
|
||||||
|
"eslint-plugin-import": "^2.14.0",
|
||||||
|
"eslint-plugin-node": "^8.0.0",
|
||||||
|
"eslint-plugin-promise": "^4.0.1",
|
||||||
|
"eslint-plugin-react": "^7.11.1",
|
||||||
|
"gh-pages": "^2.0.1",
|
||||||
|
"husky": "^1.3.1",
|
||||||
|
"lint-staged": "^8.1.0",
|
||||||
|
"lodash.clonedeep": "^4.5.0",
|
||||||
|
"prettier": "^1.15.3",
|
||||||
|
"react": "^16.6.3",
|
||||||
|
"react-dom": "^16.6.3",
|
||||||
|
"react-scripts": "^2.1.2",
|
||||||
|
"rollup": "^0.68.2",
|
||||||
|
"rollup-plugin-babel": "^4.2.0",
|
||||||
|
"rollup-plugin-commonjs": "^9.2.0",
|
||||||
|
"rollup-plugin-node-builtins": "^2.1.2",
|
||||||
|
"rollup-plugin-node-resolve": "^4.0.0",
|
||||||
|
"rollup-plugin-peer-deps-external": "^2.2.0",
|
||||||
|
"rollup-plugin-postcss": "^1.6.3",
|
||||||
|
"rollup-plugin-url": "^2.1.0",
|
||||||
|
"stylelint": "^9.9.0",
|
||||||
|
"stylelint-config-recommended": "^2.1.0",
|
||||||
|
"stylus": "^0.54.5"
|
||||||
|
},
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "lint-staged"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"src/**/*.{js,jsx,json,css}": [
|
||||||
|
"prettier --single-quote --write",
|
||||||
|
"git add"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not ie <= 11",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
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 svgr from '@svgr/rollup'
|
||||||
|
import pkg from './package.json'
|
||||||
|
// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297
|
||||||
|
import builtins from 'rollup-plugin-node-builtins';
|
||||||
|
|
||||||
|
const globals = {
|
||||||
|
'react': 'React',
|
||||||
|
'react-dom': 'ReactDOM',
|
||||||
|
'prop-types': 'PropTypes',
|
||||||
|
'ohif-core': 'OHIF',
|
||||||
|
'dcmjs': 'dcmjs'
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
input: 'src/index.js',
|
||||||
|
output: [
|
||||||
|
{
|
||||||
|
file: pkg.main,
|
||||||
|
format: 'umd',
|
||||||
|
name: 'ohif-dicom-pdf-extension',
|
||||||
|
sourcemap: true,
|
||||||
|
globals
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: pkg.module,
|
||||||
|
format: 'es',
|
||||||
|
sourcemap: true,
|
||||||
|
globals
|
||||||
|
}
|
||||||
|
],
|
||||||
|
plugins: [
|
||||||
|
builtins(),
|
||||||
|
external(),
|
||||||
|
postcss({
|
||||||
|
modules: false
|
||||||
|
}),
|
||||||
|
url(),
|
||||||
|
svgr(),
|
||||||
|
babel({
|
||||||
|
exclude: 'node_modules/**',
|
||||||
|
plugins: [ '@babel/external-helpers' ],
|
||||||
|
externalHelpers: true,
|
||||||
|
runtimeHelpers: true
|
||||||
|
}),
|
||||||
|
resolve(),
|
||||||
|
commonjs()
|
||||||
|
],
|
||||||
|
external: Object.keys(pkg.peerDependencies || {}),
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
:root {
|
||||||
|
--text-color-primary: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.DicomHtmlViewport {
|
||||||
|
padding: 20px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
color: var(--text-color-primary);
|
||||||
|
}
|
||||||
@ -0,0 +1,242 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import * as dcmjs from 'dcmjs';
|
||||||
|
import TypedArrayProp from './TypedArrayProp';
|
||||||
|
import './DicomHtmlViewport.css';
|
||||||
|
|
||||||
|
function getRelationshipString(data) {
|
||||||
|
switch (data.RelationshipType) {
|
||||||
|
case 'HAS CONCEPT MOD':
|
||||||
|
return 'Concept modifier: ';
|
||||||
|
case 'HAS OBS CONTEXT':
|
||||||
|
return 'Observation context: ';
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const getMeaningString = data => {
|
||||||
|
if (data.ConceptNameCodeSequence) {
|
||||||
|
const { CodeMeaning } = data.ConceptNameCodeSequence;
|
||||||
|
|
||||||
|
return `${CodeMeaning} = `;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
};
|
||||||
|
|
||||||
|
function getValueString(data) {
|
||||||
|
switch (data.ValueType) {
|
||||||
|
case 'CODE':
|
||||||
|
const {
|
||||||
|
CodeMeaning,
|
||||||
|
CodeValue,
|
||||||
|
CodingSchemeDesignator
|
||||||
|
} = data.ConceptNameCodeSequence;
|
||||||
|
|
||||||
|
return `${CodeMeaning} (${CodeValue}, ${CodingSchemeDesignator})`;
|
||||||
|
|
||||||
|
case 'PNAME':
|
||||||
|
return data.PersonName;
|
||||||
|
|
||||||
|
case 'TEXT':
|
||||||
|
return data.TextValue;
|
||||||
|
|
||||||
|
case 'UIDREF':
|
||||||
|
return data.UID;
|
||||||
|
|
||||||
|
case 'NUM':
|
||||||
|
const { MeasuredValueSequence } = data;
|
||||||
|
const numValue = MeasuredValueSequence.NumericValue;
|
||||||
|
const codeValue =
|
||||||
|
MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue;
|
||||||
|
return `${numValue} ${codeValue}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function constructPlainValue(data) {
|
||||||
|
const value = getValueString(data);
|
||||||
|
|
||||||
|
if (value) {
|
||||||
|
return getRelationshipString(data) + getMeaningString(data) + value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function constructContentSequence(data, header) {
|
||||||
|
if (!data.ContentSequence) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const items = data.ContentSequence.map(item => parseContent(item)).filter(
|
||||||
|
item => item
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!items.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = {
|
||||||
|
items
|
||||||
|
};
|
||||||
|
|
||||||
|
if (header) {
|
||||||
|
result.header = header;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseContent(data) {
|
||||||
|
if (data.ValueType) {
|
||||||
|
if (data.ValueType === 'CONTAINER') {
|
||||||
|
const header = data.ConceptNameCodeSequence.CodeMeaning;
|
||||||
|
|
||||||
|
return constructContentSequence(data, header);
|
||||||
|
}
|
||||||
|
|
||||||
|
return constructPlainValue(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.ContentSequence) {
|
||||||
|
return constructContentSequence(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const { DicomMetaDictionary, DicomMessage } = dcmjs.data;
|
||||||
|
|
||||||
|
function getMainData(data) {
|
||||||
|
const root = [];
|
||||||
|
|
||||||
|
const patientValue = `${data.PatientName} (${data.PatientSex}, #${
|
||||||
|
data.PatientID
|
||||||
|
})`;
|
||||||
|
root.push(getMainDataItem('Patient', patientValue));
|
||||||
|
|
||||||
|
const studyValue = data.StudyDescription;
|
||||||
|
root.push(getMainDataItem('Study', studyValue));
|
||||||
|
|
||||||
|
const seriesValue = `${data.SeriesDescription} (#${data.SeriesNumber})`;
|
||||||
|
root.push(getMainDataItem('Series', seriesValue));
|
||||||
|
|
||||||
|
const manufacturerValue = `${data.Manufacturer} (${
|
||||||
|
data.ManufacturerModelName
|
||||||
|
}, #${data.DeviceSerialNumber})`;
|
||||||
|
|
||||||
|
root.push(getMainDataItem('Manufacturer', manufacturerValue));
|
||||||
|
|
||||||
|
const mainDataObjects = {
|
||||||
|
CompletionFlag: 'Completion flag',
|
||||||
|
VerificationFlag: 'Verification flag'
|
||||||
|
};
|
||||||
|
|
||||||
|
Object.keys(mainDataObjects).forEach(key => {
|
||||||
|
if (!data[key]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const item = getMainDataItem(mainDataObjects[key], data[key]);
|
||||||
|
|
||||||
|
root.push(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
// TODO: Format these dates
|
||||||
|
const contentDateTimeValue = `${data.ContentDate} ${data.ContentTime}`;
|
||||||
|
root.push(getMainDataItem('Content Date/Time', contentDateTimeValue));
|
||||||
|
|
||||||
|
root.push();
|
||||||
|
|
||||||
|
return <div>{root}</div>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const getContentSequence = (data, level = 1) => {
|
||||||
|
let header;
|
||||||
|
|
||||||
|
if (data.ConceptNameCodeSequence) {
|
||||||
|
const {
|
||||||
|
CodeMeaning,
|
||||||
|
CodeValue,
|
||||||
|
CodingSchemeDesignator
|
||||||
|
} = data.ConceptNameCodeSequence;
|
||||||
|
|
||||||
|
header = `${CodeMeaning} (${CodeValue} - ${CodingSchemeDesignator})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const root = [];
|
||||||
|
if (header) {
|
||||||
|
const HeaderDynamicLevel = `h${level}`;
|
||||||
|
|
||||||
|
root.push(<HeaderDynamicLevel key={header}>{header}</HeaderDynamicLevel>);
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.keys(data).forEach(key => {
|
||||||
|
const value = data[key];
|
||||||
|
|
||||||
|
let content;
|
||||||
|
if (value instanceof Object) {
|
||||||
|
content = getContentSequence(value, level + 1);
|
||||||
|
} else {
|
||||||
|
content = (
|
||||||
|
<div key={key}>
|
||||||
|
{key} - {data[key]}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
root.push(content);
|
||||||
|
});
|
||||||
|
|
||||||
|
return <div>{root}</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
function getMainDataItem(key, value) {
|
||||||
|
return (
|
||||||
|
<div key={key}>
|
||||||
|
<b>{key}</b>: {value}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DicomHtmlViewport extends Component {
|
||||||
|
state = {
|
||||||
|
content: null,
|
||||||
|
error: null
|
||||||
|
};
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
byteArray: TypedArrayProp.uint8
|
||||||
|
};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
const dataSet = this.setContentFromByteArray(this.props.byteArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
setContentFromByteArray(byteArray) {
|
||||||
|
const arrayBuffer = byteArray.buffer;
|
||||||
|
const dicomData = DicomMessage.readFile(arrayBuffer);
|
||||||
|
const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
|
||||||
|
dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
|
||||||
|
|
||||||
|
const mainData = getMainData(dataset);
|
||||||
|
const contentSequence = getContentSequence(dataset);
|
||||||
|
const content = (
|
||||||
|
<>
|
||||||
|
{mainData}
|
||||||
|
{contentSequence}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
content
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className={'DicomHtmlViewport'}>
|
||||||
|
{this.state.content}
|
||||||
|
{this.state.error && <h2>{JSON.stringify(this.state.error)}</h2>}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DicomHtmlViewport;
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import OHIFDicomHtmlViewport from './OHIFDicomHtmlViewport.js';
|
||||||
|
import OHIFDicomHtmlSopClassHandler from './OHIFDicomHtmlSopClassHandler.js';
|
||||||
|
|
||||||
|
export default class OHIFDicomHtmlExtension {
|
||||||
|
/**
|
||||||
|
* Extension ID is a unique id, might be used for namespacing extension specific redux actions/reducers (?)
|
||||||
|
*/
|
||||||
|
getExtensionId() {
|
||||||
|
return 'html';
|
||||||
|
}
|
||||||
|
|
||||||
|
getViewportModule() {
|
||||||
|
return OHIFDicomHtmlViewport;
|
||||||
|
}
|
||||||
|
|
||||||
|
getSopClassHandler() {
|
||||||
|
return OHIFDicomHtmlSopClassHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPanelModuleDefinition() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
getToolbarModuleDefinition() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
import OHIF from 'ohif-core';
|
||||||
|
|
||||||
|
const { plugins, utils } = OHIF;
|
||||||
|
const { PLUGIN_TYPES } = plugins;
|
||||||
|
|
||||||
|
// TODO: Should probably use dcmjs for this
|
||||||
|
const SOP_CLASS_UIDS = {
|
||||||
|
BASIC_TEXT_SR: '1.2.840.10008.5.1.4.1.1.88.11',
|
||||||
|
ENHANCED_SR: '1.2.840.10008.5.1.4.1.1.88.22',
|
||||||
|
COMPREHENSIVE_SR: '1.2.840.10008.5.1.4.1.1.88.33',
|
||||||
|
PROCEDURE_LOG_STORAGE: '1.2.840.10008.5.1.4.1.1.88.40',
|
||||||
|
MAMMOGRAPHY_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.50',
|
||||||
|
CHEST_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.65',
|
||||||
|
X_RAY_RADIATION_DOSE_SR: '1.2.840.10008.5.1.4.1.1.88.67'
|
||||||
|
};
|
||||||
|
|
||||||
|
const sopClassUids = Object.values(SOP_CLASS_UIDS);
|
||||||
|
|
||||||
|
// TODO: Handle the case where there is more than one SOP Class Handler for the
|
||||||
|
// same SOP Class
|
||||||
|
const OHIFDicomHtmlSopClassHandler = {
|
||||||
|
id: 'OHIFDicomHtmlSopClassHandler',
|
||||||
|
type: PLUGIN_TYPES.SOP_CLASS_HANDLER,
|
||||||
|
sopClassUids,
|
||||||
|
getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) {
|
||||||
|
const instance = series.getFirstInstance();
|
||||||
|
|
||||||
|
return {
|
||||||
|
plugin: 'html',
|
||||||
|
displaySetInstanceUid: utils.guid(),
|
||||||
|
wadoRoot: study.getData().wadoRoot,
|
||||||
|
wadoUri: instance.getData().wadouri,
|
||||||
|
sopInstanceUid: instance.getSOPInstanceUID(),
|
||||||
|
seriesInstanceUid: series.getSeriesInstanceUID(),
|
||||||
|
studyInstanceUid: study.getStudyInstanceUID(),
|
||||||
|
authorizationHeaders
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default OHIFDicomHtmlSopClassHandler;
|
||||||
@ -0,0 +1,84 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import DicomHtmlViewport from './DicomHtmlViewport';
|
||||||
|
|
||||||
|
class OHIFDicomHtmlViewport extends Component {
|
||||||
|
static propTypes = {
|
||||||
|
studies: PropTypes.object,
|
||||||
|
displaySet: PropTypes.object,
|
||||||
|
viewportIndex: PropTypes.number
|
||||||
|
};
|
||||||
|
|
||||||
|
state = {
|
||||||
|
byteArray: null,
|
||||||
|
error: null
|
||||||
|
};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
const { displaySet } = this.props.viewportData;
|
||||||
|
const {
|
||||||
|
studyInstanceUid,
|
||||||
|
seriesInstanceUid,
|
||||||
|
sopInstanceUid,
|
||||||
|
wadoRoot,
|
||||||
|
wadoUri,
|
||||||
|
authorizationHeaders
|
||||||
|
} = displaySet;
|
||||||
|
|
||||||
|
this.retrieveDicomData(
|
||||||
|
studyInstanceUid,
|
||||||
|
seriesInstanceUid,
|
||||||
|
sopInstanceUid,
|
||||||
|
wadoRoot,
|
||||||
|
wadoUri,
|
||||||
|
authorizationHeaders
|
||||||
|
).then(
|
||||||
|
byteArray => {
|
||||||
|
this.setState({
|
||||||
|
byteArray
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.setState({
|
||||||
|
error
|
||||||
|
});
|
||||||
|
|
||||||
|
throw new Error(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
retrieveDicomData(
|
||||||
|
studyInstanceUid,
|
||||||
|
seriesInstanceUid,
|
||||||
|
sopInstanceUid,
|
||||||
|
wadoRoot,
|
||||||
|
wadoUri,
|
||||||
|
authorizationHeaders
|
||||||
|
) {
|
||||||
|
// TODO: Passing in a lot of data we aren't using
|
||||||
|
|
||||||
|
// TODO: Authorization header depends on the server. If we ever have multiple servers
|
||||||
|
// we will need to figure out how / when to pass this information in.
|
||||||
|
return fetch(wadoUri, {
|
||||||
|
headers: authorizationHeaders
|
||||||
|
})
|
||||||
|
.then(response => response.arrayBuffer())
|
||||||
|
.then(arraybuffer => {
|
||||||
|
return new Uint8Array(arraybuffer);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{this.state.byteArray && (
|
||||||
|
<DicomHtmlViewport byteArray={this.state.byteArray} />
|
||||||
|
)}
|
||||||
|
{this.state.error && <h2>{JSON.stringify(this.state.error)}</h2>}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default OHIFDicomHtmlViewport;
|
||||||
@ -0,0 +1,205 @@
|
|||||||
|
// https://github.com/facebook/prop-types/issues/69
|
||||||
|
|
||||||
|
export const TypedArrayProp = {
|
||||||
|
any: (props, propName, componentName) => {
|
||||||
|
let obj = props[propName];
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
obj instanceof Float64Array ||
|
||||||
|
obj instanceof Float32Array ||
|
||||||
|
obj instanceof Int32Array ||
|
||||||
|
obj instanceof Int16Array ||
|
||||||
|
obj instanceof Int8Array ||
|
||||||
|
obj instanceof Uint32Array ||
|
||||||
|
obj instanceof Uint16Array ||
|
||||||
|
obj instanceof Uint8Array ||
|
||||||
|
obj instanceof Uint8ClampedArray
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a typed array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
float64: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Float64Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Float64Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
float32: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Float32Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Float32Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
float: (props, propName, componentName) => {
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
props[propName] instanceof Float64Array ||
|
||||||
|
props[propName] instanceof Float32Array
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Float32Array or Float64Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
int32: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Int32Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected an Int32Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
int16: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Int16Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected an In16Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
int8: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Int8Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected an Int8Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
int: (props, propName, componentName) => {
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
props[propName] instanceof Int32Array ||
|
||||||
|
props[propName] instanceof Int16Array ||
|
||||||
|
props[propName] instanceof Int8Array
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected an Int32Array, In16Array, or Int8Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
uint32: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Uint32Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Uint32Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
uint16: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Uint16Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Uint16Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
uint8: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Uint8Array)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Uint8Array.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
uint8clamped: (props, propName, componentName) => {
|
||||||
|
if (!(props[propName] instanceof Uint8ClampedArray)) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Uint8ClampedArray.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
uint: (props, propName, componentName) => {
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
props[propName] instanceof Uint32Array ||
|
||||||
|
props[propName] instanceof Uint16Array ||
|
||||||
|
props[propName] instanceof Uint8Array ||
|
||||||
|
props[propName] instanceof Uint8ClampedArray
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return new Error(
|
||||||
|
'Invalid prop `' +
|
||||||
|
propName +
|
||||||
|
'` supplied to' +
|
||||||
|
' `' +
|
||||||
|
componentName +
|
||||||
|
'`. Expected a Uint32Array, Uint16Array, Uint8Array, or Uint8ClampedArray.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TypedArrayProp as default };
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
import OHIFDicomHtmlExtension from './OHIFDicomHtmlExtension.js';
|
||||||
|
|
||||||
|
export default OHIFDicomHtmlExtension;
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"version": "v1",
|
||||||
|
"packages": {}
|
||||||
|
}
|
||||||
10892
Packages-react/extensions/ohif-dicom-html-extension/yarn.lock
Normal file
10892
Packages-react/extensions/ohif-dicom-html-extension/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,6 +14,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
"prepublishOnly": "npm run build",
|
||||||
"start": "rollup -c -w",
|
"start": "rollup -c -w",
|
||||||
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
"prepublishOnly": "npm build",
|
"prepublishOnly": "npm run build",
|
||||||
"start": "rollup -c -w",
|
"start": "rollup -c -w",
|
||||||
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -15,7 +15,6 @@ const OHIFDicomPDFSopClassHandler = {
|
|||||||
SOP_CLASS_UIDS.ENCAPSULATED_PDF
|
SOP_CLASS_UIDS.ENCAPSULATED_PDF
|
||||||
],
|
],
|
||||||
getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) {
|
getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) {
|
||||||
debugger;
|
|
||||||
const instance = series.getFirstInstance();
|
const instance = series.getFirstInstance();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 847511a526739d20b9178878989ae8593800e031
|
Subproject commit 7e91734ef10616b93831cc5f166d5695cd92b0f0
|
||||||
@ -20,8 +20,7 @@
|
|||||||
|
|
||||||
<!-- WEB FONTS -->
|
<!-- WEB FONTS -->
|
||||||
<link href="https://fonts.googleapis.com/css?family=Sanchez" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Sanchez" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/"
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
|
||||||
crossorigin="anonymous">
|
|
||||||
|
|
||||||
<title>OHIF Standalone Viewer</title>
|
<title>OHIF Standalone Viewer</title>
|
||||||
<base href="http://localhost:5000/">
|
<base href="http://localhost:5000/">
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ohif-viewer",
|
"name": "ohif-viewer",
|
||||||
"version": "0.0.6",
|
"version": "0.0.15",
|
||||||
"description": "OHIF Viewer",
|
"description": "OHIF Viewer",
|
||||||
"author": "OHIF Contributors",
|
"author": "OHIF Contributors",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -16,6 +16,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
"prepublishOnly": "npm run build",
|
||||||
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}",
|
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}",
|
||||||
"prepare": "npm run build",
|
"prepare": "npm run build",
|
||||||
"predeploy": "cd example && npm install && npm run build",
|
"predeploy": "cd example && npm install && npm run build",
|
||||||
@ -45,7 +46,7 @@
|
|||||||
"@svgr/rollup": "^4.1.0",
|
"@svgr/rollup": "^4.1.0",
|
||||||
"babel-eslint": "^9.0.0",
|
"babel-eslint": "^9.0.0",
|
||||||
"cross-env": "^5.2.0",
|
"cross-env": "^5.2.0",
|
||||||
"eslint": "5.6.0",
|
"eslint": "5.12.0",
|
||||||
"eslint-plugin-import": "^2.14.0",
|
"eslint-plugin-import": "^2.14.0",
|
||||||
"eslint-plugin-node": "^8.0.0",
|
"eslint-plugin-node": "^8.0.0",
|
||||||
"eslint-plugin-promise": "^4.0.1",
|
"eslint-plugin-promise": "^4.0.1",
|
||||||
@ -57,15 +58,15 @@
|
|||||||
"prettier": "^1.15.3",
|
"prettier": "^1.15.3",
|
||||||
"react": "^16.7.0",
|
"react": "^16.7.0",
|
||||||
"react-dom": "^16.7.0",
|
"react-dom": "^16.7.0",
|
||||||
"react-scripts": "^2.1.2",
|
"react-scripts": "^2.1.5",
|
||||||
"rollup": "^0.68.2",
|
"rollup": "^1.1.2",
|
||||||
"rollup-plugin-babel": "^4.2.0",
|
"rollup-plugin-babel": "^4.2.0",
|
||||||
"rollup-plugin-commonjs": "^9.2.0",
|
"rollup-plugin-commonjs": "^9.2.0",
|
||||||
"rollup-plugin-json": "^3.1.0",
|
"rollup-plugin-json": "^3.1.0",
|
||||||
"rollup-plugin-node-builtins": "^2.1.2",
|
"rollup-plugin-node-builtins": "^2.1.2",
|
||||||
"rollup-plugin-node-resolve": "^4.0.0",
|
"rollup-plugin-node-resolve": "^4.0.0",
|
||||||
"rollup-plugin-peer-deps-external": "^2.2.0",
|
"rollup-plugin-peer-deps-external": "^2.2.0",
|
||||||
"rollup-plugin-postcss": "^1.6.3",
|
"rollup-plugin-postcss": "^2.0.3",
|
||||||
"rollup-plugin-url": "^2.1.0",
|
"rollup-plugin-url": "^2.1.0",
|
||||||
"stylelint": "^9.9.0",
|
"stylelint": "^9.9.0",
|
||||||
"stylelint-config-recommended": "^2.1.0",
|
"stylelint-config-recommended": "^2.1.0",
|
||||||
@ -97,26 +98,29 @@
|
|||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"cornerstone-core": "^2.2.8",
|
"cornerstone-core": "^2.2.8",
|
||||||
"cornerstone-math": "^0.1.8",
|
"cornerstone-math": "^0.1.8",
|
||||||
|
"cornerstone-tools": "^3.1.0",
|
||||||
"cornerstone-wado-image-loader": "^2.2.3",
|
"cornerstone-wado-image-loader": "^2.2.3",
|
||||||
"dcmjs": "^0.3.2",
|
"dcmjs": "^0.3.3",
|
||||||
"dicom-parser": "^1.8.3",
|
"dicom-parser": "^1.8.3",
|
||||||
"dicomweb-client": "^0.4.2",
|
"dicomweb-client": "^0.4.2",
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
"ohif-core": "^0.2.7",
|
"moment": "^2.24.0",
|
||||||
"ohif-cornerstone-extension": "^0.0.4",
|
"ohif-core": "0.3.0",
|
||||||
|
"ohif-cornerstone-extension": "0.0.16",
|
||||||
|
"ohif-dicom-html-extension": "^0.0.2",
|
||||||
"ohif-dicom-microscopy-extension": "^0.0.5",
|
"ohif-dicom-microscopy-extension": "^0.0.5",
|
||||||
"ohif-dicom-pdf-extension": "^0.0.5",
|
"ohif-dicom-pdf-extension": "^0.0.5",
|
||||||
"oidc-client": "^1.6.1",
|
"oidc-client": "^1.6.1",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react-bootstrap-modal": "^4.2.0",
|
"react-bootstrap-modal": "^4.2.0",
|
||||||
"react-cornerstone-viewport": "^0.1.9",
|
|
||||||
"react-dnd": "^7.0.2",
|
"react-dnd": "^7.0.2",
|
||||||
"react-dnd-html5-backend": "^7.0.2",
|
"react-dnd-html5-backend": "^7.0.2",
|
||||||
"react-redux": "^6.0.0",
|
"react-redux": "^6.0.0",
|
||||||
|
"react-resize-detector": "^3.4.0",
|
||||||
"react-router": "^4.3.1",
|
"react-router": "^4.3.1",
|
||||||
"react-router-dom": "^4.3.1",
|
"react-router-dom": "^4.3.1",
|
||||||
"react-viewerbase": "^0.2.4",
|
"react-viewerbase": "^0.2.7",
|
||||||
"redux": "^4.0.1",
|
"redux": "^4.0.1",
|
||||||
"redux-oidc": "^3.1.0"
|
"redux-oidc": "^3.1.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +0,0 @@
|
|||||||
html,
|
|
||||||
body,
|
|
||||||
#root {
|
|
||||||
background-color: black;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
font-family: Roboto, OpenSans, HelveticaNeue-Light, Helvetica Neue Light,
|
|
||||||
Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;
|
|
||||||
}
|
|
||||||
@ -10,6 +10,7 @@ import OHIFStandaloneViewer from './OHIFStandaloneViewer';
|
|||||||
import WhiteLabellingContext from './WhiteLabellingContext';
|
import WhiteLabellingContext from './WhiteLabellingContext';
|
||||||
import OHIFCornerstoneExtension from 'ohif-cornerstone-extension';
|
import OHIFCornerstoneExtension from 'ohif-cornerstone-extension';
|
||||||
import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension';
|
import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension';
|
||||||
|
import OHIFDicomHtmlExtension from 'ohif-dicom-html-extension';
|
||||||
import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension';
|
import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension';
|
||||||
import {
|
import {
|
||||||
loadUser,
|
loadUser,
|
||||||
@ -17,17 +18,17 @@ import {
|
|||||||
createUserManager,
|
createUserManager,
|
||||||
reducer as oidcReducer
|
reducer as oidcReducer
|
||||||
} from 'redux-oidc';
|
} from 'redux-oidc';
|
||||||
|
import timepointManager from './redux/timepointManager';
|
||||||
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
|
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
|
||||||
|
|
||||||
const { ExtensionManager } = OHIF.extensions;
|
const { ExtensionManager } = OHIF.extensions;
|
||||||
|
|
||||||
//import Icons from "./images/icons.svg"
|
const Icons = 'icons.svg';
|
||||||
|
|
||||||
const Icons = '/icons.svg';
|
|
||||||
|
|
||||||
const { reducers, localStorage } = OHIF.redux;
|
const { reducers, localStorage } = OHIF.redux;
|
||||||
reducers.ui = ui;
|
reducers.ui = ui;
|
||||||
reducers.oidc = oidcReducer;
|
reducers.oidc = oidcReducer;
|
||||||
|
reducers.timepointManager = timepointManager;
|
||||||
|
|
||||||
const combined = combineReducers(reducers);
|
const combined = combineReducers(reducers);
|
||||||
const store = createStore(combined, localStorage.loadState());
|
const store = createStore(combined, localStorage.loadState());
|
||||||
@ -102,6 +103,13 @@ const defaultButtons = [
|
|||||||
iconClasses: 'fa fa-circle',
|
iconClasses: 'fa fa-circle',
|
||||||
active: false
|
active: false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
command: 'FreehandMouse',
|
||||||
|
type: 'tool',
|
||||||
|
text: 'Freehand',
|
||||||
|
iconClasses: 'fa fa-star',
|
||||||
|
active: false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
command: 'reset',
|
command: 'reset',
|
||||||
type: 'command',
|
type: 'command',
|
||||||
@ -115,10 +123,33 @@ const buttonsAction = OHIF.redux.actions.setAvailableButtons(defaultButtons);
|
|||||||
|
|
||||||
store.dispatch(buttonsAction);
|
store.dispatch(buttonsAction);
|
||||||
|
|
||||||
|
const availableTools = [
|
||||||
|
{ name: 'Pan', mouseButtonMasks: [1, 4] },
|
||||||
|
{ name: 'Zoom', mouseButtonMasks: [1, 2] },
|
||||||
|
{ name: 'Wwwc', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'Bidirectional', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'Length', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'Angle', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'StackScroll', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'Brush', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'FreehandMouse', mouseButtonMasks: [1] },
|
||||||
|
{ name: 'PanMultiTouch' },
|
||||||
|
{ name: 'ZoomTouchPinch' },
|
||||||
|
{ name: 'StackScrollMouseWheel' },
|
||||||
|
{ name: 'StackScrollMultiTouch' }
|
||||||
|
];
|
||||||
|
|
||||||
|
const toolAction = OHIF.redux.actions.setExtensionData('cornerstone', {
|
||||||
|
availableTools
|
||||||
|
});
|
||||||
|
|
||||||
|
store.dispatch(toolAction);
|
||||||
|
|
||||||
/** TODO: extensions should be passed in as prop as soon as we have the extensions as separate packages and then registered by ExtensionsManager */
|
/** TODO: extensions should be passed in as prop as soon as we have the extensions as separate packages and then registered by ExtensionsManager */
|
||||||
let extensions = [
|
const extensions = [
|
||||||
new OHIFCornerstoneExtension(),
|
new OHIFCornerstoneExtension(),
|
||||||
new OHIFDicomPDFExtension(),
|
new OHIFDicomPDFExtension(),
|
||||||
|
new OHIFDicomHtmlExtension(),
|
||||||
new OHIFDicomMicroscopyExtension()
|
new OHIFDicomMicroscopyExtension()
|
||||||
];
|
];
|
||||||
ExtensionManager.registerExtensions(store, extensions);
|
ExtensionManager.registerExtensions(store, extensions);
|
||||||
|
|||||||
@ -5,9 +5,6 @@ import { Dropdown } from 'react-viewerbase';
|
|||||||
import './Header.css';
|
import './Header.css';
|
||||||
import OHIFLogo from '../OHIFLogo/OHIFLogo.js';
|
import OHIFLogo from '../OHIFLogo/OHIFLogo.js';
|
||||||
import ConnectedUserPreferencesModal from '../../connectedComponents/ConnectedUserPreferencesModal.js';
|
import ConnectedUserPreferencesModal from '../../connectedComponents/ConnectedUserPreferencesModal.js';
|
||||||
//import Icons from "../../images/icons.svg";
|
|
||||||
|
|
||||||
//const Icons = '/icons.svg';
|
|
||||||
|
|
||||||
class Header extends Component {
|
class Header extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import './OHIFLogo.css';
|
import './OHIFLogo.css';
|
||||||
|
|
||||||
const Icons = '/icons.svg';
|
const Icons = 'icons.svg';
|
||||||
|
|
||||||
function OHIFLogo() {
|
function OHIFLogo() {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import dicomParser from 'dicom-parser';
|
import dicomParser from 'dicom-parser';
|
||||||
import cornerstone from 'cornerstone-core';
|
import cornerstone from 'cornerstone-core';
|
||||||
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
|
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
|
||||||
import cornerstoneMath from 'cornerstone-math';
|
|
||||||
import OHIF from 'ohif-core';
|
import OHIF from 'ohif-core';
|
||||||
import sha from './sha.js';
|
import sha from './sha.js';
|
||||||
import version from './version.js';
|
import version from './version.js';
|
||||||
@ -20,10 +19,6 @@ window.cornerstoneWADOImageLoader = cornerstoneWADOImageLoader;
|
|||||||
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
|
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
|
||||||
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
|
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
|
||||||
|
|
||||||
OHIF.external.cornerstone = cornerstone;
|
|
||||||
OHIF.external.cornerstoneMath = cornerstoneMath;
|
|
||||||
OHIF.external.cornerstoneWADOImageLoader = cornerstoneWADOImageLoader;
|
|
||||||
|
|
||||||
OHIF.user.getAccessToken = () => {
|
OHIF.user.getAccessToken = () => {
|
||||||
// TODO: Get the Redux store from somewhere else
|
// TODO: Get the Redux store from somewhere else
|
||||||
const state = window.store.getState();
|
const state = window.store.getState();
|
||||||
|
|||||||
@ -0,0 +1,61 @@
|
|||||||
|
import { connect } from 'react-redux';
|
||||||
|
import { MeasurementTable } from 'react-viewerbase';
|
||||||
|
import moment from 'moment';
|
||||||
|
|
||||||
|
function convertTimepointsToTableData(timepoints) {
|
||||||
|
if (!timepoints || !timepoints.length) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: 'Study date:',
|
||||||
|
date: moment(timepoints[0].latestDate).format('DD-MMM-YY')
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertMeasurementsToTableData(measurements) {
|
||||||
|
const tableData = [
|
||||||
|
{
|
||||||
|
groupName: 'Measurements',
|
||||||
|
measurements: [],
|
||||||
|
measurements1: measurements
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
if (measurements && measurements.allTools) {
|
||||||
|
measurements.allTools.forEach(measurement => {
|
||||||
|
const tableMeasurement = {
|
||||||
|
label: '...',
|
||||||
|
hasWarnings: false,
|
||||||
|
warningTitle: '',
|
||||||
|
isSplitLesion: false,
|
||||||
|
warningList: [],
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
displayText: '...'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
tableData[0].measurements.push(tableMeasurement);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return tableData;
|
||||||
|
}
|
||||||
|
|
||||||
|
const mapStateToProps = state => {
|
||||||
|
const { timepoints, measurements } = state.timepointManager;
|
||||||
|
return {
|
||||||
|
timepoints: convertTimepointsToTableData(timepoints),
|
||||||
|
measurementCollection: convertMeasurementsToTableData(measurements)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const ConnectedMeasurementTable = connect(
|
||||||
|
mapStateToProps,
|
||||||
|
null
|
||||||
|
)(MeasurementTable);
|
||||||
|
|
||||||
|
export default ConnectedMeasurementTable;
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
import { connect } from 'react-redux';
|
||||||
|
import Viewer from './Viewer.js';
|
||||||
|
import actions from '../redux/actions.js';
|
||||||
|
|
||||||
|
const mapDispatchToProps = dispatch => {
|
||||||
|
return {
|
||||||
|
onTimepointsUpdated: timepoints => {
|
||||||
|
dispatch(actions.setTimepoints(timepoints));
|
||||||
|
},
|
||||||
|
onMeasurementsUpdated: measurements => {
|
||||||
|
dispatch(actions.setMeasurements(measurements));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const ConnectedViewer = connect(
|
||||||
|
null,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(Viewer);
|
||||||
|
|
||||||
|
export default ConnectedViewer;
|
||||||
@ -5,6 +5,7 @@
|
|||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
height: calc(100% - var(--toolbar-height));
|
height: calc(100% - var(--toolbar-height));
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-menu {
|
.sidebar-menu {
|
||||||
@ -19,11 +20,11 @@
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
margin-left: calc(var(--left-sidebar-menu-width) * -1);
|
margin-left: calc(var(--left-sidebar-menu-width) * -1);
|
||||||
max-width: var(--left-sidebar-menu-width);
|
max-width: var(--left-sidebar-menu-width);
|
||||||
order: 1
|
order: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-left.sidebar-open {
|
.sidebar-left.sidebar-open {
|
||||||
margin-left: 0
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
|
|||||||
@ -2,13 +2,14 @@ import React, { Component } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import ConnectedStudyBrowser from './ConnectedStudyBrowser.js';
|
import ConnectedStudyBrowser from './ConnectedStudyBrowser.js';
|
||||||
import ViewerMain from './ViewerMain.js';
|
import ViewerMain from './ViewerMain.js';
|
||||||
|
import ConnectedMeasurementTable from './ConnectedMeasurementTable';
|
||||||
import './FlexboxLayout.css';
|
import './FlexboxLayout.css';
|
||||||
|
|
||||||
class FlexboxLayout extends Component {
|
class FlexboxLayout extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
studies: PropTypes.array.isRequired,
|
studies: PropTypes.array.isRequired,
|
||||||
leftSidebarOpen: PropTypes.bool.isRequired,
|
leftSidebarOpen: PropTypes.bool.isRequired,
|
||||||
rightSidebarOpen: PropTypes.bool.isRequired,
|
rightSidebarOpen: PropTypes.bool.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
@ -30,12 +31,17 @@ class FlexboxLayout extends Component {
|
|||||||
// - Add sorting of display sets
|
// - Add sorting of display sets
|
||||||
// - Add useMiddleSeriesInstanceAsThumbnail
|
// - Add useMiddleSeriesInstanceAsThumbnail
|
||||||
// - Add showStackLoadingProgressBar option
|
// - Add showStackLoadingProgressBar option
|
||||||
return studies.map((study) => {
|
return studies.map(study => {
|
||||||
const { studyInstanceUid } = study;
|
const { studyInstanceUid } = study;
|
||||||
|
|
||||||
const thumbnails = study.displaySets.map((displaySet) => {
|
const thumbnails = study.displaySets.map(displaySet => {
|
||||||
const { displaySetInstanceUid, seriesDescription, seriesNumber, instanceNumber, numImageFrames } = displaySet;
|
const {
|
||||||
|
displaySetInstanceUid,
|
||||||
|
seriesDescription,
|
||||||
|
seriesNumber,
|
||||||
|
instanceNumber,
|
||||||
|
numImageFrames
|
||||||
|
} = displaySet;
|
||||||
|
|
||||||
let imageId;
|
let imageId;
|
||||||
|
|
||||||
@ -49,7 +55,7 @@ class FlexboxLayout extends Component {
|
|||||||
seriesDescription,
|
seriesDescription,
|
||||||
seriesNumber,
|
seriesNumber,
|
||||||
instanceNumber,
|
instanceNumber,
|
||||||
numImageFrames,
|
numImageFrames
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -58,10 +64,10 @@ class FlexboxLayout extends Component {
|
|||||||
thumbnails
|
thumbnails
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let mainContentClassName = "main-content"
|
let mainContentClassName = 'main-content';
|
||||||
if (this.props.leftSidebarOpen) {
|
if (this.props.leftSidebarOpen) {
|
||||||
mainContentClassName += ' sidebar-left-open';
|
mainContentClassName += ' sidebar-left-open';
|
||||||
}
|
}
|
||||||
@ -70,18 +76,30 @@ class FlexboxLayout extends Component {
|
|||||||
mainContentClassName += ' sidebar-right-open';
|
mainContentClassName += ' sidebar-right-open';
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO[react]: Add measurementLightTable
|
// TODO[react]: Make ConnectedMeasurementTable extension with state.timepointManager
|
||||||
return (
|
return (
|
||||||
<div className="FlexboxLayout">
|
<div className="FlexboxLayout">
|
||||||
<div className={this.props.leftSidebarOpen ? "sidebar-menu sidebar-left sidebar-open" : "sidebar-menu sidebar-left"}>
|
<div
|
||||||
|
className={
|
||||||
|
this.props.leftSidebarOpen
|
||||||
|
? 'sidebar-menu sidebar-left sidebar-open'
|
||||||
|
: 'sidebar-menu sidebar-left'
|
||||||
|
}
|
||||||
|
>
|
||||||
<ConnectedStudyBrowser studies={this.state.studiesForBrowser} />
|
<ConnectedStudyBrowser studies={this.state.studiesForBrowser} />
|
||||||
</div>
|
</div>
|
||||||
<div className={mainContentClassName}>
|
<div className={mainContentClassName}>
|
||||||
<ViewerMain studies={this.props.studies} />
|
<ViewerMain studies={this.props.studies} />
|
||||||
</div>
|
</div>
|
||||||
{/* <div className={this.props.rightSidebarOpen ? "sidebar-menu sidebar-right sidebar-open" : "sidebar-menu sidebar-right"}>
|
<div
|
||||||
{{> measurementLightTable (clone this)}}
|
className={
|
||||||
</div> */}
|
this.props.rightSidebarOpen
|
||||||
|
? 'sidebar-menu sidebar-right sidebar-open'
|
||||||
|
: 'sidebar-menu sidebar-right'
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<ConnectedMeasurementTable />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import React, { Component } from "react";
|
import React, { Component } from 'react';
|
||||||
import ConnectedToolbarSection from './ConnectedToolbarSection';
|
import ConnectedToolbarSection from './ConnectedToolbarSection';
|
||||||
import ConnectedLayoutButton from './ConnectedLayoutButton';
|
import ConnectedLayoutButton from './ConnectedLayoutButton';
|
||||||
import ConnectedCineDialog from './ConnectedCineDialog.js';
|
import ConnectedCineDialog from './ConnectedCineDialog.js';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { ToolbarButton, RoundedButtonGroup } from 'react-viewerbase';
|
import { ToolbarButton, RoundedButtonGroup } from 'react-viewerbase';
|
||||||
import './ToolbarRow.css';
|
import './ToolbarRow.css';
|
||||||
//import Icons from "../images/icons.svg"
|
|
||||||
|
|
||||||
const Icons = '/icons.svg';
|
const Icons = 'icons.svg';
|
||||||
|
|
||||||
class ToolbarRow extends Component {
|
class ToolbarRow extends Component {
|
||||||
state = {
|
state = {
|
||||||
@ -26,34 +25,61 @@ class ToolbarRow extends Component {
|
|||||||
rightSidebarOpen: false
|
rightSidebarOpen: false
|
||||||
};
|
};
|
||||||
|
|
||||||
onLeftSidebarValueChanged = (value) => {
|
onLeftSidebarValueChanged = value => {
|
||||||
this.props.setLeftSidebarOpen(!!value);
|
this.props.setLeftSidebarOpen(!!value);
|
||||||
}
|
};
|
||||||
|
|
||||||
|
onRightSidebarValueChanged = value => {
|
||||||
|
this.props.setRightSidebarOpen(!!value);
|
||||||
|
};
|
||||||
|
|
||||||
onClickCineToolbarButton = () => {
|
onClickCineToolbarButton = () => {
|
||||||
this.setState({
|
this.setState({
|
||||||
cineDialogOpen: !this.state.cineDialogOpen
|
cineDialogOpen: !this.state.cineDialogOpen
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const leftSidebarToggle = [{
|
const leftSidebarToggle = [
|
||||||
|
{
|
||||||
value: 'studies',
|
value: 'studies',
|
||||||
svgLink: `${Icons}#icon-studies`,
|
svgLink: `${Icons}#icon-studies`,
|
||||||
svgWidth: 15,
|
svgWidth: 15,
|
||||||
svgHeight: 13,
|
svgHeight: 13,
|
||||||
bottomLabel: 'Series',
|
bottomLabel: 'Series'
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
const leftSidebarValue = this.props.leftSidebarOpen ? leftSidebarToggle[0].value : null;
|
const rightSidebarToggle = [
|
||||||
|
{
|
||||||
|
value: 'measurements',
|
||||||
|
svgLink: `${Icons}#icon-measurements-lesions`,
|
||||||
|
svgWidth: 15,
|
||||||
|
svgHeight: 13,
|
||||||
|
bottomLabel: 'Measurements'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const leftSidebarValue = this.props.leftSidebarOpen
|
||||||
|
? leftSidebarToggle[0].value
|
||||||
|
: null;
|
||||||
|
|
||||||
|
const rightSidebarValue = this.props.rightSidebarOpen
|
||||||
|
? rightSidebarToggle[0].value
|
||||||
|
: null;
|
||||||
|
|
||||||
const cineDialogContainerStyle = {
|
const cineDialogContainerStyle = {
|
||||||
display: this.state.cineDialogOpen ? 'inline-block' : 'none'
|
display: this.state.cineDialogOpen ? 'inline-block' : 'none'
|
||||||
}
|
};
|
||||||
|
|
||||||
return (<div className="ToolbarRow">
|
return (
|
||||||
|
<div className="ToolbarRow">
|
||||||
<div className="pull-left m-t-1 p-y-1" style={{ padding: '10px' }}>
|
<div className="pull-left m-t-1 p-y-1" style={{ padding: '10px' }}>
|
||||||
<RoundedButtonGroup options={leftSidebarToggle} value={leftSidebarValue} onValueChanged={this.onLeftSidebarValueChanged}/>
|
<RoundedButtonGroup
|
||||||
|
options={leftSidebarToggle}
|
||||||
|
value={leftSidebarValue}
|
||||||
|
onValueChanged={this.onLeftSidebarValueChanged}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<ConnectedToolbarSection />
|
<ConnectedToolbarSection />
|
||||||
<ConnectedLayoutButton />
|
<ConnectedLayoutButton />
|
||||||
@ -63,11 +89,15 @@ class ToolbarRow extends Component {
|
|||||||
text={'CINE'}
|
text={'CINE'}
|
||||||
iconClasses={'fa fa-youtube'}
|
iconClasses={'fa fa-youtube'}
|
||||||
/>
|
/>
|
||||||
<div className='CineDialogContainer' style={cineDialogContainerStyle}>
|
<div className="CineDialogContainer" style={cineDialogContainerStyle}>
|
||||||
<ConnectedCineDialog />
|
<ConnectedCineDialog />
|
||||||
</div>
|
</div>
|
||||||
<div className="pull-right m-t-1 rm-x-1">
|
<div className="pull-right m-t-1 rm-x-1" style={{ marginLeft: 'auto' }}>
|
||||||
{/* > roundedButtonGroup rightSidebarToggleButtonData */}
|
<RoundedButtonGroup
|
||||||
|
options={rightSidebarToggle}
|
||||||
|
value={rightSidebarValue}
|
||||||
|
onValueChanged={this.onRightSidebarValueChanged}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -3,12 +3,13 @@ import PropTypes from 'prop-types';
|
|||||||
//import OHIF from 'ohif-core';
|
//import OHIF from 'ohif-core';
|
||||||
//import { CineDialog } from 'react-viewerbase';
|
//import { CineDialog } from 'react-viewerbase';
|
||||||
|
|
||||||
|
import OHIF from 'ohif-core';
|
||||||
|
import moment from 'moment';
|
||||||
import WhiteLabellingContext from '../WhiteLabellingContext.js';
|
import WhiteLabellingContext from '../WhiteLabellingContext.js';
|
||||||
import ConnectedHeader from './ConnectedHeader.js';
|
import ConnectedHeader from './ConnectedHeader.js';
|
||||||
import ConnectedFlexboxLayout from './ConnectedFlexboxLayout.js';
|
import ConnectedFlexboxLayout from './ConnectedFlexboxLayout.js';
|
||||||
import ConnectedToolbarRow from './ConnectedToolbarRow.js';
|
import ConnectedToolbarRow from './ConnectedToolbarRow.js';
|
||||||
import ConnectedStudyLoadingMonitor from './ConnectedStudyLoadingMonitor.js';
|
import measurementTools from '../measurementTools';
|
||||||
import StudyPrefetcher from '../components/StudyPrefetcher.js';
|
|
||||||
import './Viewer.css';
|
import './Viewer.css';
|
||||||
/**
|
/**
|
||||||
* Inits OHIF Hanging Protocol's onReady.
|
* Inits OHIF Hanging Protocol's onReady.
|
||||||
@ -48,9 +49,132 @@ OHIF.viewer.functionList = {
|
|||||||
|
|
||||||
class Viewer extends Component {
|
class Viewer extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
studies: PropTypes.array
|
studies: PropTypes.array,
|
||||||
|
studyInstanceUids: PropTypes.array,
|
||||||
|
onTimepointsUpdated: PropTypes.func,
|
||||||
|
onMeasurementsUpdated: PropTypes.func
|
||||||
};
|
};
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
OHIF.measurements.MeasurementApi.setConfiguration({
|
||||||
|
measurementTools,
|
||||||
|
dataExchange: {
|
||||||
|
retrieve: this.retrieveMeasurements,
|
||||||
|
store: this.storeMeasurements
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
OHIF.measurements.TimepointApi.setConfiguration({
|
||||||
|
dataExchange: {
|
||||||
|
retrieve: this.retrieveTimepoints,
|
||||||
|
store: this.storeTimepoints,
|
||||||
|
remove: this.removeTimepoint,
|
||||||
|
update: this.updateTimepoint,
|
||||||
|
disassociate: this.disassociateStudy
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
retrieveMeasurements = (patientId, timepointIds) => {
|
||||||
|
OHIF.log.info('retrieveMeasurements');
|
||||||
|
// TODO: Retrieve the measurements from the latest available SR
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
storeMeasurements = (measurementData, timepointIds) => {
|
||||||
|
OHIF.log.info('storeMeasurements');
|
||||||
|
// TODO: Store the measurements into a new SR sent to the active server
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
retrieveTimepoints = filter => {
|
||||||
|
OHIF.log.info('retrieveTimepoints');
|
||||||
|
|
||||||
|
// Get the earliest and latest study date
|
||||||
|
let earliestDate = new Date().toISOString();
|
||||||
|
let latestDate = new Date().toISOString();
|
||||||
|
if (this.props.studies) {
|
||||||
|
latestDate = new Date('1000-01-01').toISOString();
|
||||||
|
this.props.studies.forEach(study => {
|
||||||
|
const studyDate = moment(study.studyDate, 'YYYYMMDD').toISOString();
|
||||||
|
if (studyDate < earliestDate) {
|
||||||
|
earliestDate = studyDate;
|
||||||
|
}
|
||||||
|
if (studyDate > latestDate) {
|
||||||
|
latestDate = studyDate;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return a generic timepoint
|
||||||
|
return Promise.resolve([
|
||||||
|
{
|
||||||
|
timepointType: 'baseline',
|
||||||
|
timepointId: 'TimepointId',
|
||||||
|
studyInstanceUids: this.props.studyInstanceUids,
|
||||||
|
patientId: filter.patientId,
|
||||||
|
earliestDate,
|
||||||
|
latestDate,
|
||||||
|
isLocked: false
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
storeTimepoints = timepointData => {
|
||||||
|
OHIF.log.info('storeTimepoints');
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
updateTimepoint = (timepointData, query) => {
|
||||||
|
OHIF.log.info('updateTimepoint');
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
removeTimepoint = timepointId => {
|
||||||
|
OHIF.log.info('removeTimepoint');
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
disassociateStudy = (timepointIds, studyInstanceUid) => {
|
||||||
|
OHIF.log.info('disassociateStudy');
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
onTimepointsUpdated = timepoints => {
|
||||||
|
if (this.props.onTimepointsUpdated) {
|
||||||
|
this.props.onTimepointsUpdated(timepoints);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
onMeasurementsUpdated = measurements => {
|
||||||
|
if (this.props.onMeasurementsUpdated) {
|
||||||
|
this.props.onMeasurementsUpdated(measurements);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
const { studies } = this.props;
|
||||||
|
const { TimepointApi, MeasurementApi } = OHIF.measurements;
|
||||||
|
const currentTimepointId = 'TimepointId';
|
||||||
|
|
||||||
|
const timepointApi = new TimepointApi(currentTimepointId, {
|
||||||
|
onTimepointsUpdated: this.onTimepointsUpdated
|
||||||
|
});
|
||||||
|
|
||||||
|
const measurementApi = new MeasurementApi(timepointApi, {
|
||||||
|
onMeasurementsUpdated: this.onMeasurementsUpdated
|
||||||
|
});
|
||||||
|
|
||||||
|
const patientId = studies[0] && studies[0].patientId;
|
||||||
|
timepointApi.retrieveTimepoints({ patientId });
|
||||||
|
|
||||||
|
// TODO: Retrieve measurements and sync them with tool data
|
||||||
|
measurementApi.retrieveMeasurements(patientId, [currentTimepointId]);
|
||||||
|
//measurementApi.syncMeasurementsAndToolData();
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import OHIF from 'ohif-core';
|
import OHIF from 'ohif-core';
|
||||||
import Viewer from './Viewer.js';
|
import ConnectedViewer from './ConnectedViewer.js';
|
||||||
|
|
||||||
const { createDisplaySets } = OHIF.utils;
|
const { createDisplaySets } = OHIF.utils;
|
||||||
|
|
||||||
@ -18,6 +18,8 @@ class ViewerRetrieveStudyData extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
// TODO: Avoid using timepoints here
|
||||||
|
//const params = { studyInstanceUids, seriesInstanceUids, timepointId, timepointsFilter={} };
|
||||||
const { studyInstanceUids, seriesInstanceUids, server } = this.props;
|
const { studyInstanceUids, seriesInstanceUids, server } = this.props;
|
||||||
const promise = OHIF.studies.retrieveStudiesMetadata(
|
const promise = OHIF.studies.retrieveStudiesMetadata(
|
||||||
server,
|
server,
|
||||||
@ -50,7 +52,12 @@ class ViewerRetrieveStudyData extends Component {
|
|||||||
return <div>Loading...</div>;
|
return <div>Loading...</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return <Viewer studies={this.state.studies} />;
|
return (
|
||||||
|
<ConnectedViewer
|
||||||
|
studies={this.state.studies}
|
||||||
|
studyInstanceUids={this.props.studyInstanceUids}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -153,7 +153,7 @@ White labelling example
|
|||||||
// Note that you can't write JSX here, so you can use the online JSX compiler:
|
// Note that you can't write JSX here, so you can use the online JSX compiler:
|
||||||
// https://babeljs.io/repl/#?babili=false&browsers=&build=&builtIns=false&spec=false&loose=false&code_lz=GYVwdgxgLglg9mABACwKYBt1wBQEpEDeAUIogE6pQhlIA8AholPWQOaUC8ARAPoBG6emADWXchm5g4cAA6owqMoikVgiimTERBAZx0A5egFtU3NPQAmigLR8yQi2OSqzUKDIBcAei_2LMCHp0GCN6VhgwVgA6CDgjLgA-ElIU1LS02hDWRB0yCA4AcmQ3Tx8_AKCQsIjo2KMvAHcZa1iwKHkoLxAZLEsdLwAmAAYARgB2LxGRrwgyWTkLFrmZBetwMGNURYGomUiCxC8k9JOU2i96BIBuIgBfIiA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=react&prettier=false&targets=&version=6.26.0&envVersion=
|
// https://babeljs.io/repl/#?babili=false&browsers=&build=&builtIns=false&spec=false&loose=false&code_lz=GYVwdgxgLglg9mABACwKYBt1wBQEpEDeAUIogE6pQhlIA8AholPWQOaUC8ARAPoBG6emADWXchm5g4cAA6owqMoikVgiimTERBAZx0A5egFtU3NPQAmigLR8yQi2OSqzUKDIBcAei_2LMCHp0GCN6VhgwVgA6CDgjLgA-ElIU1LS02hDWRB0yCA4AcmQ3Tx8_AKCQsIjo2KMvAHcZa1iwKHkoLxAZLEsdLwAmAAYARgB2LxGRrwgyWTkLFrmZBetwMGNURYGomUiCxC8k9JOU2i96BIBuIgBfIiA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=react&prettier=false&targets=&version=6.26.0&envVersion=
|
||||||
*/
|
*/
|
||||||
function RadicalImagingLogo() {
|
/*function RadicalImagingLogo() {
|
||||||
return React.createElement(
|
return React.createElement(
|
||||||
'a',
|
'a',
|
||||||
{
|
{
|
||||||
@ -166,7 +166,7 @@ function RadicalImagingLogo() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*props.whiteLabelling = {
|
props.whiteLabelling = {
|
||||||
logoComponent: RadicalImagingLogo()
|
logoComponent: RadicalImagingLogo()
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
const displayFunction = data => {
|
||||||
|
return data.text || '';
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: 'ArrowAnnotate',
|
||||||
|
name: 'ArrowAnnotate',
|
||||||
|
toolGroup: 'allTools',
|
||||||
|
cornerstoneToolType: 'ArrowAnnotate',
|
||||||
|
options: {
|
||||||
|
measurementTable: {
|
||||||
|
displayFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
const displayFunction = data => {
|
||||||
|
let meanValue = '';
|
||||||
|
if (data.meanStdDev && data.meanStdDev.mean) {
|
||||||
|
meanValue = data.meanStdDev.mean.toFixed(2) + ' HU';
|
||||||
|
}
|
||||||
|
return meanValue;
|
||||||
|
// let meanValue = data.meanStdDev && data.meanStdDev.mean || 0;
|
||||||
|
// return numberWithCommas(meanValue).toFixed(2) + ' HU';
|
||||||
|
//return data.meanStdDev.mean.toFixed(2);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: 'EllipticalRoi',
|
||||||
|
name: 'Ellipse',
|
||||||
|
toolGroup: 'allTools',
|
||||||
|
cornerstoneToolType: 'EllipticalRoi',
|
||||||
|
options: {
|
||||||
|
measurementTable: {
|
||||||
|
displayFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
19
Packages-react/ohif-viewer/src/measurementTools/Length.js
Normal file
19
Packages-react/ohif-viewer/src/measurementTools/Length.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
const displayFunction = data => {
|
||||||
|
let lengthValue = '';
|
||||||
|
if (data.length) {
|
||||||
|
lengthValue = data.length.toFixed(2) + ' mm';
|
||||||
|
}
|
||||||
|
return lengthValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: 'Length',
|
||||||
|
name: 'Length',
|
||||||
|
toolGroup: 'allTools',
|
||||||
|
cornerstoneToolType: 'Length',
|
||||||
|
options: {
|
||||||
|
measurementTable: {
|
||||||
|
displayFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
const displayFunction = data => {
|
||||||
|
let text = '';
|
||||||
|
if (data.rAngle) {
|
||||||
|
text = data.rAngle.toFixed(2) + String.fromCharCode(parseInt('00B0', 16));
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: 'SimpleAngle',
|
||||||
|
name: 'SimpleAngle',
|
||||||
|
toolGroup: 'allTools',
|
||||||
|
cornerstoneToolType: 'SimpleAngle',
|
||||||
|
options: {
|
||||||
|
measurementTable: {
|
||||||
|
displayFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
21
Packages-react/ohif-viewer/src/measurementTools/index.js
Normal file
21
Packages-react/ohif-viewer/src/measurementTools/index.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import Length from './Length';
|
||||||
|
import EllipticalRoi from './EllipticalRoi';
|
||||||
|
import RectangleRoi from './rectangleRoi';
|
||||||
|
import SimpleAngle from './SimpleAngle';
|
||||||
|
import ArrowAnnotate from './ArrowAnnotate';
|
||||||
|
|
||||||
|
const trackedTools = [
|
||||||
|
Length,
|
||||||
|
EllipticalRoi,
|
||||||
|
RectangleRoi,
|
||||||
|
SimpleAngle,
|
||||||
|
ArrowAnnotate
|
||||||
|
];
|
||||||
|
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
id: 'allTools',
|
||||||
|
name: 'Measurements',
|
||||||
|
childTools: trackedTools
|
||||||
|
}
|
||||||
|
];
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
const displayFunction = data => {
|
||||||
|
let meanValue = '';
|
||||||
|
if (data.meanStdDev && data.meanStdDev.mean) {
|
||||||
|
meanValue = data.meanStdDev.mean.toFixed(2) + ' HU';
|
||||||
|
}
|
||||||
|
return meanValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: 'RectangleRoi',
|
||||||
|
name: 'Rectangle',
|
||||||
|
toolGroup: 'allTools',
|
||||||
|
cornerstoneToolType: 'RectangleRoi',
|
||||||
|
options: {
|
||||||
|
measurementTable: {
|
||||||
|
displayFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -13,10 +13,22 @@ export const setUserPreferencesModalOpen = state => ({
|
|||||||
state
|
state
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const setTimepoints = state => ({
|
||||||
|
type: 'SET_TIMEPOINTS',
|
||||||
|
state
|
||||||
|
});
|
||||||
|
|
||||||
|
export const setMeasurements = state => ({
|
||||||
|
type: 'SET_MEASUREMENTS',
|
||||||
|
state
|
||||||
|
});
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
setLeftSidebarOpen,
|
setLeftSidebarOpen,
|
||||||
setRightSidebarOpen,
|
setRightSidebarOpen,
|
||||||
setUserPreferencesModalOpen
|
setUserPreferencesModalOpen,
|
||||||
|
setTimepoints,
|
||||||
|
setMeasurements
|
||||||
};
|
};
|
||||||
|
|
||||||
export default actions;
|
export default actions;
|
||||||
|
|||||||
17
Packages-react/ohif-viewer/src/redux/timepointManager.js
Normal file
17
Packages-react/ohif-viewer/src/redux/timepointManager.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const defaultState = {
|
||||||
|
timepoints: [],
|
||||||
|
measurements: []
|
||||||
|
};
|
||||||
|
|
||||||
|
const timepointManager = (state = defaultState, action) => {
|
||||||
|
switch (action.type) {
|
||||||
|
case 'SET_TIMEPOINTS':
|
||||||
|
return Object.assign({}, state, { timepoints: action.state });
|
||||||
|
case 'SET_MEASUREMENTS':
|
||||||
|
return Object.assign({}, state, { measurements: action.state });
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default timepointManager;
|
||||||
@ -1 +1 @@
|
|||||||
export default 'a32a5f36125c1dbdd1d6ac8b534529e436f983bb';
|
export default '6b6237cdf6e54b87ccfb69efed769bc75e6fe232';
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export default '0.0.6';
|
export default '0.0.15';
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
|||||||
Subproject commit 59d177cb0e705441f58ce57d37a8122011522868
|
Subproject commit 3f2d6cdf6409db98ff3777a0d186799b33cf608e
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 3e1c7a887fc7043c43af4d79ef0361d94c3b7e67
|
Subproject commit 68c50953e4b75f3a7c56ed36cf921078f238729d
|
||||||
@ -1 +1 @@
|
|||||||
/viewer/* /viewer/index.html 200
|
/demo/* /demo/index.html 200
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
##### Looking for your Deploy Preview? - <a onclick="function redirect() { window.location.href='/viewer/?url=https://s3.eu-central-1.amazonaws.com/ohif-viewer/sampleDICOM.json'; } redirect();">Deploy Preview for Viewer</a>
|
##### Looking for your Deploy Preview? - <a onclick="function redirect() { window.location.href='/demo/'; } redirect();">Deploy Preview for Viewer</a>
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,7 @@ cd ..
|
|||||||
# Build and copy the StandaloneViewer into the static directory
|
# Build and copy the StandaloneViewer into the static directory
|
||||||
echo $DEPLOY_PRIME_URL
|
echo $DEPLOY_PRIME_URL
|
||||||
cd Packages-react/ohif-viewer
|
cd Packages-react/ohif-viewer
|
||||||
export ROOT_URL=$DEPLOY_PRIME_URL/viewer
|
export ROOT_URL=$DEPLOY_PRIME_URL/demo
|
||||||
|
|
||||||
cat package.json
|
cat package.json
|
||||||
yarn install
|
yarn install
|
||||||
@ -22,8 +22,8 @@ cd example
|
|||||||
yarn install
|
yarn install
|
||||||
yarn run prepare
|
yarn run prepare
|
||||||
sed -i "s,http://localhost:5000,${ROOT_URL},g" index.html
|
sed -i "s,http://localhost:5000,${ROOT_URL},g" index.html
|
||||||
sed -i 's,"routerBasename": "/","routerBasename": "/viewer",g' index.html
|
sed -i 's,"routerBasename": "/","routerBasename": "/demo",g' index.html
|
||||||
rm -rf node_modules
|
rm -rf node_modules
|
||||||
mkdir ../../../docs/_book/viewer/
|
mkdir ../../../docs/_book/demo/
|
||||||
cp -R * ../../../docs/_book/viewer/
|
cp -R * ../../../docs/_book/demo/
|
||||||
cp ../../../_redirects ../../../docs/_book/_redirects
|
cp ../../../_redirects ../../../docs/_book/_redirects
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user