Switch to react app with dependencies on ohif-core and react-viewerbase
This commit is contained in:
parent
fc5bd73c1e
commit
11d36a4e6b
@ -12,13 +12,17 @@
|
|||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"moment": "^2.22.2",
|
"moment": "^2.22.2",
|
||||||
|
"ohif-core": "^0.1.0",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react": "^16.4.1",
|
"react": "^16.4.1",
|
||||||
"react-cornerstone-viewport": "^0.1.1",
|
"react-cornerstone-viewport": "^0.1.1",
|
||||||
"react-dom": "^16.4.1",
|
"react-dom": "^16.4.1",
|
||||||
|
"react-redux": "^6.0.0",
|
||||||
|
"react-router": "^4.3.1",
|
||||||
|
"react-router-dom": "^4.3.1",
|
||||||
"react-scripts": "^2.1.1",
|
"react-scripts": "^2.1.1",
|
||||||
"react-viewerbase": "^0.1.2",
|
"react-viewerbase": "^0.1.2",
|
||||||
"ohif-core": "link:/Users/Erik/Projects/OHIF/ohif-core"
|
"redux": "^4.0.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"copy:webworkers": "cp node_modules/cornerstone-wado-image-loader/dist/*.min.js* public",
|
"copy:webworkers": "cp node_modules/cornerstone-wado-image-loader/dist/*.min.js* public",
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { withRouter } from 'react-router';
|
import { withRouter } from 'react-router';
|
||||||
import { Route, Switch } from 'react-router-dom';
|
import { Route, Switch } from 'react-router-dom';
|
||||||
import { OHIF } from 'ohif-core';
|
|
||||||
import ViewerRouting from "./ViewerRouting.js";
|
import ViewerRouting from "./ViewerRouting.js";
|
||||||
import IHEInvokeImageDisplay from './IHEInvokeImageDisplay.js';
|
import IHEInvokeImageDisplay from './IHEInvokeImageDisplay.js';
|
||||||
import './App.css';
|
import './App.css';
|
||||||
|
import { StudyList } from 'react-viewerbase';
|
||||||
|
|
||||||
const reload = () => window.location.reload();
|
const reload = () => window.location.reload();
|
||||||
const Studylist = OHIF.studylist.components.StudyList;
|
|
||||||
|
|
||||||
function setContext(context) {
|
function setContext(context) {
|
||||||
/*Rollbar.configure({
|
/*Rollbar.configure({
|
||||||
@ -24,7 +23,7 @@ class App extends Component {
|
|||||||
window.router = {
|
window.router = {
|
||||||
history: this.props.history
|
history: this.props.history
|
||||||
};
|
};
|
||||||
|
|
||||||
this.unlisten = this.props.history.listen((location, action) => {
|
this.unlisten = this.props.history.listen((location, action) => {
|
||||||
setContext(window.location.pathname);
|
setContext(window.location.pathname);
|
||||||
});
|
});
|
||||||
@ -40,14 +39,14 @@ class App extends Component {
|
|||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path="/studylist"
|
path="/studylist"
|
||||||
component={Studylist}
|
component={StudyList}
|
||||||
/*auth={this.props.auth}*/
|
/*auth={this.props.auth}*/
|
||||||
store={this.props.store}
|
store={this.props.store}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path="/"
|
path="/"
|
||||||
component={Studylist}
|
component={StudyList}
|
||||||
/*auth={this.props.auth}*/
|
/*auth={this.props.auth}*/
|
||||||
store={this.props.store}
|
store={this.props.store}
|
||||||
/>
|
/>
|
||||||
@ -70,8 +69,8 @@ class App extends Component {
|
|||||||
store={this.props.store}
|
store={this.props.store}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/*<Route path="/silent-refresh.html" onEnter={reload} />
|
<Route path="/silent-refresh.html" onEnter={reload} />
|
||||||
<Route path="/logout-redirect.html" onEnter={reload} />*/}
|
<Route path="/logout-redirect.html" onEnter={reload} />
|
||||||
<Route render={() =>
|
<Route render={() =>
|
||||||
<div> Sorry, this page does not exist. </div>}
|
<div> Sorry, this page does not exist. </div>}
|
||||||
/>
|
/>
|
||||||
|
|||||||
21
OHIFViewer-react/src/ConnectedViewerFromStudyData.js
Normal file
21
OHIFViewer-react/src/ConnectedViewerFromStudyData.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
|
import ViewerFromStudyData from './ViewerFromStudyData.js';
|
||||||
|
|
||||||
|
const isActive = (a) => a.active === true;
|
||||||
|
|
||||||
|
const mapStateToProps = (state, ownProps) => {
|
||||||
|
const activeServer = state.servers.servers.find(isActive);
|
||||||
|
|
||||||
|
return {
|
||||||
|
server: activeServer,
|
||||||
|
...ownProps
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const ConnectedViewerFromStudyData = connect(
|
||||||
|
mapStateToProps,
|
||||||
|
null
|
||||||
|
)(ViewerFromStudyData);
|
||||||
|
|
||||||
|
export default ConnectedViewerFromStudyData;
|
||||||
@ -1,12 +1,13 @@
|
|||||||
import React, { Component } from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import ViewerFromStudyData from "./ViewerFromStudyData.js";
|
import ViewerFromStudyData from "./ViewerFromStudyData.js";
|
||||||
|
|
||||||
function IHEInvokeImageDisplay({ match }) {
|
function IHEInvokeImageDisplay({ match }) {
|
||||||
const requestType = match.params.query.requestType;
|
const requestType = match.params.query.requestType;
|
||||||
|
|
||||||
let studyInstanceUids;
|
let studyInstanceUids;
|
||||||
|
let patientUids;
|
||||||
let displayStudyList = false;
|
let displayStudyList = false;
|
||||||
|
|
||||||
if (requestType === "STUDY") {
|
if (requestType === "STUDY") {
|
||||||
studyInstanceUids = match.params.query.studyUID.split(';');
|
studyInstanceUids = match.params.query.studyUID.split(';');
|
||||||
} else if (requestType === "STUDYBASE64") {
|
} else if (requestType === "STUDYBASE64") {
|
||||||
@ -14,15 +15,14 @@ function IHEInvokeImageDisplay({ match }) {
|
|||||||
const decodedData = window.atob(uids);
|
const decodedData = window.atob(uids);
|
||||||
studyInstanceUids = decodedData.split(';');
|
studyInstanceUids = decodedData.split(';');
|
||||||
} else if (requestType === "PATIENT") {
|
} else if (requestType === "PATIENT") {
|
||||||
const patientUids = this.params.query.patientID.split(';');
|
patientUids = this.params.query.patientID.split(';');
|
||||||
displayStudyList = true
|
displayStudyList = true
|
||||||
} else {
|
} else {
|
||||||
displayStudyList = true
|
displayStudyList = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayStudyList) {
|
if (displayStudyList) {
|
||||||
//return (<StudyList/>);
|
return ('')//<StudyList patientUids={patientUids}/>);
|
||||||
return ('');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -30,4 +30,16 @@ function IHEInvokeImageDisplay({ match }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IHEInvokeImageDisplay.propTypes = {
|
||||||
|
match: PropTypes.shape({
|
||||||
|
params: PropTypes.shape({
|
||||||
|
query: PropTypes.shape({
|
||||||
|
requestType: PropTypes.string.isRequired,
|
||||||
|
studyUID: PropTypes.string,
|
||||||
|
patientID: PropTypes.string
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
export default IHEInvokeImageDisplay;
|
export default IHEInvokeImageDisplay;
|
||||||
|
|||||||
@ -1,43 +1,44 @@
|
|||||||
import React, {Component} from "react";
|
import React, {Component} from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import Viewer from "./viewer/viewer.js";
|
import Viewer from "./viewer/viewer.js";
|
||||||
import { OHIF } from 'ohif-core';
|
import OHIF from 'ohif-core';
|
||||||
|
import { sortingManager } from './lib/sortingManager.js';
|
||||||
|
import { updateMetaDataManager } from './lib/updateMetaDataManager.js';
|
||||||
|
|
||||||
// TODO: Move to react-viewerbase
|
// TODO: Move to react-viewerbase
|
||||||
|
|
||||||
function createDisplaySets(studies) {
|
function createDisplaySets(studies) {
|
||||||
// Define the OHIF.viewer.data global object
|
// Define the OHIF.viewer.data global object
|
||||||
// TODO: Save all data that is currently in OHIF.viewer in redux instead
|
// TODO: Save all data that is currently in OHIF.viewer in redux instead
|
||||||
OHIF.viewer.data = OHIF.viewer.data || {};
|
//OHIF.viewer.data = OHIF.viewer.data || {};
|
||||||
|
|
||||||
// @TypeSafeStudies
|
// @TypeSafeStudies
|
||||||
// Clears OHIF.viewer.Studies collection
|
// Clears OHIF.viewer.Studies collection
|
||||||
OHIF.viewer.Studies.removeAll();
|
//OHIF.viewer.Studies.removeAll();
|
||||||
|
|
||||||
// @TypeSafeStudies
|
// @TypeSafeStudies
|
||||||
// Clears OHIF.viewer.StudyMetadataList collection
|
// Clears OHIF.viewer.StudyMetadataList collection
|
||||||
OHIF.viewer.StudyMetadataList.removeAll();
|
//OHIF.viewer.StudyMetadataList.removeAll();
|
||||||
|
|
||||||
OHIF.viewer.data.studyInstanceUids = [];
|
//OHIF.viewer.data.studyInstanceUids = [];
|
||||||
|
|
||||||
const updatedStudies = studies.map(study => {
|
const updatedStudies = studies.map(study => {
|
||||||
const studyMetadata = new OHIF.metadata.OHIFStudyMetadata(study, study.studyInstanceUid);
|
const studyMetadata = new OHIF.metadata.OHIFStudyMetadata(study, study.studyInstanceUid);
|
||||||
let displaySets = study.displaySets;
|
let displaySets = study.displaySets;
|
||||||
|
|
||||||
if (!study.displaySets) {
|
if (!study.displaySets) {
|
||||||
displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata);
|
displaySets = sortingManager.getDisplaySets(studyMetadata);
|
||||||
study.displaySets = displaySets;
|
study.displaySets = displaySets;
|
||||||
}
|
}
|
||||||
|
|
||||||
studyMetadata.setDisplaySets(displaySets);
|
studyMetadata.setDisplaySets(displaySets);
|
||||||
|
|
||||||
study.selected = true;
|
study.selected = true;
|
||||||
OHIF.viewer.Studies.insert(study);
|
//OHIF.viewer.Studies.insert(study);
|
||||||
OHIF.viewer.StudyMetadataList.insert(studyMetadata);
|
//OHIF.viewer.StudyMetadataList.insert(studyMetadata);
|
||||||
OHIF.viewer.data.studyInstanceUids.push(study.studyInstanceUid);
|
//OHIF.viewer.data.studyInstanceUids.push(study.studyInstanceUid);
|
||||||
|
|
||||||
// Updates WADO-RS metaDataManager
|
// Updates WADO-RS metaDataManager
|
||||||
OHIF.viewerbase.updateMetaDataManager(study);
|
updateMetaDataManager(study);
|
||||||
|
|
||||||
return study;
|
return study;
|
||||||
});
|
});
|
||||||
@ -58,16 +59,11 @@ class ViewerFromStudyData extends Component {
|
|||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
// TODO: Avoid using timepoints here
|
// TODO: Avoid using timepoints here
|
||||||
//const params = { studyInstanceUids, seriesInstanceUids, timepointId, timepointsFilter={} };
|
//const params = { studyInstanceUids, seriesInstanceUids, timepointId, timepointsFilter={} };
|
||||||
const params = {
|
const { studyInstanceUids, seriesInstanceUids, server } = this.props;
|
||||||
studyInstanceUids: this.props.studyInstanceUids,
|
const promise = OHIF.studies.retrieveStudiesMetadata(server, studyInstanceUids, seriesInstanceUids)
|
||||||
seriesInstanceUids: this.props.seriesInstanceUids,
|
|
||||||
}
|
|
||||||
const promise = OHIF.viewerbase.prepareViewerData(params);
|
|
||||||
|
|
||||||
// Render the viewer when the data is ready
|
// Render the viewer when the data is ready
|
||||||
promise.then(({ studies, viewerData }) => {
|
promise.then(studies => {
|
||||||
OHIF.viewer.data = viewerData;
|
|
||||||
|
|
||||||
const updatedStudies = createDisplaySets(studies);
|
const updatedStudies = createDisplaySets(studies);
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
@ -75,8 +71,10 @@ class ViewerFromStudyData extends Component {
|
|||||||
});
|
});
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
this.setState({
|
this.setState({
|
||||||
error,
|
error: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.error(error);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -96,7 +94,8 @@ class ViewerFromStudyData extends Component {
|
|||||||
|
|
||||||
ViewerFromStudyData.propTypes = {
|
ViewerFromStudyData.propTypes = {
|
||||||
studyInstanceUids: PropTypes.array.isRequired,
|
studyInstanceUids: PropTypes.array.isRequired,
|
||||||
seriesInstanceUids: PropTypes.array
|
seriesInstanceUids: PropTypes.array,
|
||||||
|
server: PropTypes.object
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ViewerFromStudyData;
|
export default ViewerFromStudyData;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React, {Component} from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import ViewerFromStudyData from "./ViewerFromStudyData.js";
|
import ConnectedViewerFromStudyData from "./ConnectedViewerFromStudyData";
|
||||||
|
|
||||||
// TODO: Move to react-viewerbase
|
// TODO: Move to react-viewerbase
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ function ViewerRouting({ match }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ViewerFromStudyData studyInstanceUids={studyUIDs} seriesInstanceUids={seriesUIDs}/>
|
<ConnectedViewerFromStudyData studyInstanceUids={studyUIDs} seriesInstanceUids={seriesUIDs}/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,25 +1,38 @@
|
|||||||
import { OHIF } from 'ohif-core';
|
import dicomParser from 'dicom-parser';
|
||||||
|
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 cornerstoneTools from 'cornerstone-tools';
|
||||||
|
import Hammer from 'hammerjs';
|
||||||
|
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';
|
||||||
|
|
||||||
OHIF.info = {
|
window.info = {
|
||||||
sha,
|
sha,
|
||||||
version
|
version
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cornerstoneTools.external.cornerstone = cornerstone;
|
||||||
|
cornerstoneTools.external.Hammer = Hammer;
|
||||||
|
cornerstoneTools.external.cornerstoneMath = cornerstoneMath;
|
||||||
|
cornerstoneTools.init();
|
||||||
|
|
||||||
const maxWebWorkers = Math.max(navigator.hardwareConcurrency - 1, 1);
|
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
|
||||||
|
cornerstoneWADOImageLoader.external.dicomParser = dicomParser;
|
||||||
|
|
||||||
|
// TODO: find a better way to get app root URL other than window.location.origin
|
||||||
const config = {
|
const config = {
|
||||||
maxWebWorkers,
|
maxWebWorkers: Math.max(navigator.hardwareConcurrency - 1, 1),
|
||||||
startWebWorkersOnDemand: true,
|
startWebWorkersOnDemand: true,
|
||||||
webWorkerPath: OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderWebWorker.es5.js'),
|
webWorkerPath: window.location.origin + '/cornerstoneWADOImageLoaderWebWorker.min.js',
|
||||||
taskConfiguration: {
|
taskConfiguration: {
|
||||||
decodeTask: {
|
decodeTask: {
|
||||||
loadCodecsOnStartup: true,
|
loadCodecsOnStartup: true,
|
||||||
initializeCodecsOnStartup: false,
|
initializeCodecsOnStartup: false,
|
||||||
codecsPath: OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderCodecs.es5.js'),
|
codecsPath: window.location.origin + '/cornerstoneWADOImageLoaderCodecs.min.js',
|
||||||
usePDFJS: false
|
usePDFJS: false,
|
||||||
|
strict: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -35,3 +48,19 @@ cornerstoneWADOImageLoader.configure({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Set the tool font and font size
|
||||||
|
// context.font = "[style] [variant] [weight] [size]/[line height] [font family]";
|
||||||
|
const fontFamily =
|
||||||
|
'Work Sans, Roboto, OpenSans, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif';
|
||||||
|
cornerstoneTools.textStyle.setFont(`16px ${fontFamily}`);
|
||||||
|
|
||||||
|
// Set the tool width
|
||||||
|
cornerstoneTools.toolStyle.setToolWidth(2);
|
||||||
|
// Set color for inactive tools
|
||||||
|
cornerstoneTools.toolColors.setToolColor('rgb(255, 255, 0)');
|
||||||
|
|
||||||
|
// Set color for active tools
|
||||||
|
cornerstoneTools.toolColors.setActiveColor('rgb(0, 255, 0)');
|
||||||
|
|
||||||
|
cornerstoneTools.store.state.touchProximity = 40;
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
import { connect } from 'react-redux';
|
||||||
|
import CornerstoneViewport from 'react-cornerstone-viewport';
|
||||||
|
import OHIF from 'ohif-core'
|
||||||
|
|
||||||
|
const { setViewportActive } = OHIF.redux.actions;
|
||||||
|
|
||||||
|
const mapStateToProps = state => {
|
||||||
|
return {
|
||||||
|
activeViewportIndex: state.viewports.activeViewportIndex,
|
||||||
|
activeTool: state.tools.buttons.find(tool => tool.active === true).command
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const mapDispatchToProps = dispatch => {
|
||||||
|
return {
|
||||||
|
setViewportActive: viewportIndex => {
|
||||||
|
console.log(`setViewportActive: ${viewportIndex}`);
|
||||||
|
dispatch(setViewportActive(viewportIndex))
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const ConnectedCornerstoneViewport = connect(
|
||||||
|
mapStateToProps,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(CornerstoneViewport);
|
||||||
|
|
||||||
|
export default ConnectedCornerstoneViewport;
|
||||||
142
OHIFViewer-react/src/flexboxLayout/ViewerMain.js
Normal file
142
OHIFViewer-react/src/flexboxLayout/ViewerMain.js
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
import { Component } from 'react';
|
||||||
|
import React from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import cornerstone from 'cornerstone-core';
|
||||||
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
|
import { LayoutManager } from 'react-viewerbase';
|
||||||
|
import { OHIF } from 'ohif-core';
|
||||||
|
import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport.js';
|
||||||
|
import StackManager from '../lib/StackManager.js';
|
||||||
|
import './ViewerMain.styl';
|
||||||
|
|
||||||
|
//const { StudyLoadingListener, StudyPrefetcher, ResizeViewportManager } = OHIF.classes;
|
||||||
|
|
||||||
|
|
||||||
|
//window.ResizeViewportManager = window.ResizeViewportManager || new ResizeViewportManager();
|
||||||
|
|
||||||
|
function getCornerstoneStack(studies, viewportData) {
|
||||||
|
const {
|
||||||
|
displaySetInstanceUid,
|
||||||
|
studyInstanceUid,
|
||||||
|
} = viewportData;
|
||||||
|
|
||||||
|
// Create shortcut to displaySet
|
||||||
|
const study = studies.find(study => study.studyInstanceUid === studyInstanceUid);
|
||||||
|
|
||||||
|
const displaySet = study.displaySets.find((set) => {
|
||||||
|
return set.displaySetInstanceUid === displaySetInstanceUid;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get stack from Stack Manager
|
||||||
|
const stack = StackManager.findOrCreateStack(study, displaySet);
|
||||||
|
stack.currentImageIdIndex = 0;
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ViewerMain extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
displaySets: []
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getCornerstoneViewport = this.getCornerstoneViewport.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
// Attach the Window resize listener
|
||||||
|
// Don't use jQuery here. "window.onresize" will always be null
|
||||||
|
// If its necessary, check all the code for window.onresize getter
|
||||||
|
// and change it to jQuery._data(window, 'events')['resize'].
|
||||||
|
// Otherwise this function will be probably overrided.
|
||||||
|
// See cineDialog instance.setResizeHandler function
|
||||||
|
//window.addEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
|
|
||||||
|
// Add beforeUnload event handler to check for unsaved changes
|
||||||
|
//window.addEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||||
|
|
||||||
|
const { studies } = this.props;
|
||||||
|
//this.studyPrefetcher = StudyPrefetcher.getInstance();
|
||||||
|
//this.studyPrefetcher.setStudies(studies);
|
||||||
|
//this.studyLoadingListener = StudyLoadingListener.getInstance();
|
||||||
|
//this.studyLoadingListener.clear();
|
||||||
|
//this.studyLoadingListener.addStudies(studies);
|
||||||
|
|
||||||
|
// Get all the display sets for the viewer studies
|
||||||
|
const displaySets = [];
|
||||||
|
studies.forEach((study) => {
|
||||||
|
study.displaySets.forEach(dSet => dSet.images.length && displaySets.push(dSet));
|
||||||
|
});
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
displaySets
|
||||||
|
});
|
||||||
|
|
||||||
|
debugger;
|
||||||
|
}
|
||||||
|
|
||||||
|
getCornerstoneViewport(data, index) {
|
||||||
|
const stack = getCornerstoneStack(this.props.studies, data)
|
||||||
|
const viewportData = {
|
||||||
|
stack,
|
||||||
|
...data
|
||||||
|
};
|
||||||
|
|
||||||
|
return (<ConnectedCornerstoneViewport
|
||||||
|
key={index}
|
||||||
|
viewportData={viewportData}
|
||||||
|
cornerstone={cornerstone}
|
||||||
|
cornerstoneTools={cornerstoneTools}
|
||||||
|
/>);
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
// TODO: re-add plugins back in
|
||||||
|
const viewportData = this.state.displaySets.map((dSet, index) => {
|
||||||
|
return this.getCornerstoneViewport(dSet, index);
|
||||||
|
})
|
||||||
|
|
||||||
|
// TODO: Connect LayoutManager to redux
|
||||||
|
return (
|
||||||
|
<div className="ViewerMain">
|
||||||
|
<LayoutManager viewportData={viewportData}/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
// Remove the Window resize listener
|
||||||
|
//window.removeEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||||
|
|
||||||
|
// Remove beforeUnload event handler...
|
||||||
|
//window.removeEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||||
|
|
||||||
|
// Destroy the synchronizer used to update reference lines
|
||||||
|
OHIF.viewer.updateImageSynchronizer.destroy();
|
||||||
|
|
||||||
|
// Stop prefetching when we close the viewer
|
||||||
|
//this.studyPrefetcher.destroy();
|
||||||
|
|
||||||
|
// Destroy stack loading listeners when we close the viewer
|
||||||
|
//this.studyLoadingListener.clear();
|
||||||
|
|
||||||
|
// Clear references to all stacks in the StackManager
|
||||||
|
//OHIF.viewerbase.stackManager.clearStacks();
|
||||||
|
|
||||||
|
// @TypeSafeStudies
|
||||||
|
// Clears OHIF.viewer.Studies collection
|
||||||
|
//OHIF.viewer.Studies.removeAll();
|
||||||
|
|
||||||
|
// @TypeSafeStudies
|
||||||
|
// Clears OHIF.viewer.StudyMetadataList collection
|
||||||
|
//OHIF.viewer.StudyMetadataList.removeAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewerMain.propTypes = {
|
||||||
|
studies: PropTypes.array.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ViewerMain;
|
||||||
34
OHIFViewer-react/src/flexboxLayout/ViewerMain.styl
Normal file
34
OHIFViewer-react/src/flexboxLayout/ViewerMain.styl
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
@import "{ohif:viewerbase}/app"
|
||||||
|
|
||||||
|
#viewer
|
||||||
|
height: "calc(100% - %s)" % $topBarHeight
|
||||||
|
|
||||||
|
&>.loadingTextDiv
|
||||||
|
//theme('color', '$textSecondaryColor')
|
||||||
|
font-size: 30px
|
||||||
|
height: 100%
|
||||||
|
line-height: "calc(100% - %s)" % $topBarHeight
|
||||||
|
|
||||||
|
.ViewerMain
|
||||||
|
width: 100%
|
||||||
|
height: 100%
|
||||||
|
//transition(all 0.3s ease)
|
||||||
|
|
||||||
|
#imageViewerViewports
|
||||||
|
.viewportContainer
|
||||||
|
//theme('border', '%s solid $uiBorderColorDark' % $viewportBorderThickness)
|
||||||
|
float: left
|
||||||
|
position: relative
|
||||||
|
|
||||||
|
outline: 0 // Prevent blue outline in Chrome
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
&.active
|
||||||
|
&:hover.active
|
||||||
|
outline: 0 // Prevent blue outline in Chrome
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
//theme('border', '%s solid $uiBorderColor' % $viewportBorderThickness)
|
||||||
|
|
||||||
|
&.active, &:hover.active
|
||||||
|
//theme('border', '%s solid $uiBorderColorActive' % $viewportBorderThickness)
|
||||||
@ -1,8 +1,10 @@
|
|||||||
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 { StudyBrowser } from 'react-viewerbase';
|
|
||||||
import cornerstone from 'cornerstone-core';
|
import cornerstone from 'cornerstone-core';
|
||||||
|
import { StudyBrowser } from 'react-viewerbase';
|
||||||
|
import ViewerMain from './ViewerMain.js';
|
||||||
|
// TODO: Where should we put ViewerMain? ohif-core or react-viewerbase?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asynchronous wrapper around Cornerstone's renderToCanvas method.
|
* Asynchronous wrapper around Cornerstone's renderToCanvas method.
|
||||||
@ -51,7 +53,8 @@ const loadError = function(error, studyInstanceUid, displaySetInstanceUid) {
|
|||||||
const study = studies.find(study => study.studyInstanceUid === studyInstanceUid);
|
const study = studies.find(study => study.studyInstanceUid === studyInstanceUid);
|
||||||
const thumbnail = study.thumbnails.find(t => t.displaySetInstanceUid === displaySetInstanceUid);
|
const thumbnail = study.thumbnails.find(t => t.displaySetInstanceUid === displaySetInstanceUid);
|
||||||
|
|
||||||
thumbnail.error = error;
|
thumbnail.error = true;
|
||||||
|
//thumbnail.details = error;
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
studiesForBrowser: studies
|
studiesForBrowser: studies
|
||||||
@ -95,11 +98,7 @@ class FlexboxLayout extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getStudiesForBrowser() {
|
getStudiesForBrowser() {
|
||||||
// @TypeSafeStudies
|
const { studies } = this.props;
|
||||||
const studies = OHIF.viewer.Studies.findAllBy({
|
|
||||||
selected: true
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// TODO[react]:
|
// TODO[react]:
|
||||||
// - Add sorting of display sets
|
// - Add sorting of display sets
|
||||||
@ -152,7 +151,7 @@ class FlexboxLayout extends Component {
|
|||||||
<StudyBrowser studies={this.state.studiesForBrowser}/>
|
<StudyBrowser studies={this.state.studiesForBrowser}/>
|
||||||
</div>
|
</div>
|
||||||
<div className={mainContentClassName}>
|
<div className={mainContentClassName}>
|
||||||
{/* TODO: Needs to be moved from Meteor package to react-viewerbase: <ViewerMain studies={this.props.studies}/>*/}
|
<ViewerMain studies={this.props.studies}/>
|
||||||
</div>
|
</div>
|
||||||
<div className={this.state.rightSidebarOpen ? "sidebarMenu sidebar-right sidebar-open" : "sidebarMenu sidebar-right"}>
|
<div className={this.state.rightSidebarOpen ? "sidebarMenu sidebar-right sidebar-open" : "sidebarMenu sidebar-right"}>
|
||||||
{/*{{> measurementLightTable (clone this)}}*/}
|
{/*{{> measurementLightTable (clone this)}}*/}
|
||||||
|
|||||||
@ -4,11 +4,34 @@ import { BrowserRouter } from 'react-router-dom';
|
|||||||
import { Provider } from 'react-redux';
|
import { Provider } from 'react-redux';
|
||||||
import { createStore } from 'redux';
|
import { createStore } from 'redux';
|
||||||
import App from './App.js';
|
import App from './App.js';
|
||||||
import { OHIF } from 'ohif-core';
|
import OHIF from 'ohif-core';
|
||||||
import './config';
|
import './config';
|
||||||
|
|
||||||
const store = createStore(OHIF.redux.combinedReducer);
|
const store = createStore(OHIF.redux.combinedReducer);
|
||||||
|
|
||||||
|
const servers = {
|
||||||
|
dicomWeb: [
|
||||||
|
{
|
||||||
|
"name": "DCM4CHEE",
|
||||||
|
"wadoUriRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/wado",
|
||||||
|
"qidoRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs",
|
||||||
|
"wadoRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs",
|
||||||
|
"qidoSupportsIncludeField": true,
|
||||||
|
"imageRendering": "wadors",
|
||||||
|
"thumbnailRendering": "wadors",
|
||||||
|
"requestOptions": {
|
||||||
|
"requestFromBrowser": true,
|
||||||
|
"logRequests": true,
|
||||||
|
"logResponses": false,
|
||||||
|
"logTiming": true,
|
||||||
|
"auth": "admin:admin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
OHIF.utils.addServers(servers, store);
|
||||||
|
|
||||||
// TODO[react] Use a provider when the whole tree is React
|
// TODO[react] Use a provider when the whole tree is React
|
||||||
window.store = store;
|
window.store = store;
|
||||||
|
|
||||||
|
|||||||
151
OHIFViewer-react/src/lib/StackManager.js
Normal file
151
OHIFViewer-react/src/lib/StackManager.js
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
import OHIF from 'ohif-core';
|
||||||
|
import { getImageId } from './getImageId';
|
||||||
|
|
||||||
|
let stackMap = {};
|
||||||
|
let configuration = {};
|
||||||
|
const stackUpdatedCallbacks = [];
|
||||||
|
|
||||||
|
const { OHIFError } = OHIF.classes;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loop through the current series and add metadata to the
|
||||||
|
* Cornerstone meta data provider. This will be used to fill information
|
||||||
|
* into the viewport overlays, and to calculate reference lines and orientation markers
|
||||||
|
* @param {Object} stackMap stackMap object
|
||||||
|
* @param {Object} study Study object
|
||||||
|
* @param {Object} displaySet The set of images to make the stack from
|
||||||
|
* @return {Array} Array with image IDs
|
||||||
|
*/
|
||||||
|
function createAndAddStack(stackMap, study, displaySet) {
|
||||||
|
const metadataProvider = OHIF.viewer.metadataProvider;
|
||||||
|
const numImages = displaySet.images.length;
|
||||||
|
const imageIds = [];
|
||||||
|
let imageId;
|
||||||
|
|
||||||
|
displaySet.images.forEach((instance, imageIndex) => {
|
||||||
|
const image = instance.getData();
|
||||||
|
const metaData = {
|
||||||
|
instance: image, // in this context, instance will be the data of the InstanceMetadata object...
|
||||||
|
series: displaySet, // TODO: Check this
|
||||||
|
study,
|
||||||
|
numImages,
|
||||||
|
imageIndex: imageIndex + 1
|
||||||
|
};
|
||||||
|
|
||||||
|
const numberOfFrames = image.numberOfFrames;
|
||||||
|
if (numberOfFrames > 1) {
|
||||||
|
OHIF.log.info('Multiframe image detected');
|
||||||
|
for (let i = 0; i < numberOfFrames; i++) {
|
||||||
|
metaData.frameNumber = i;
|
||||||
|
imageId = getImageId(image, i);
|
||||||
|
imageIds.push(imageId);
|
||||||
|
metadataProvider.addMetadata(imageId, metaData);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
metaData.frameNumber = 1;
|
||||||
|
imageId = getImageId(image);
|
||||||
|
imageIds.push(imageId);
|
||||||
|
metadataProvider.addMetadata(imageId, metaData);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const stack = {
|
||||||
|
displaySetInstanceUid: displaySet.displaySetInstanceUid,
|
||||||
|
imageIds,
|
||||||
|
frameRate: displaySet.frameRate,
|
||||||
|
isClip: displaySet.isClip
|
||||||
|
};
|
||||||
|
|
||||||
|
stackMap[displaySet.displaySetInstanceUid] = stack;
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
configuration = {
|
||||||
|
createAndAddStack
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This object contains all the functions needed for interacting with the stack manager.
|
||||||
|
* Generally, findStack is the only function used. If you want to know when new stacks
|
||||||
|
* come in, you can register a callback with addStackUpdatedCallback.
|
||||||
|
*/
|
||||||
|
const StackManager = {
|
||||||
|
/**
|
||||||
|
* Removes all current stacks
|
||||||
|
*/
|
||||||
|
clearStacks() {
|
||||||
|
stackMap = {};
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Create a stack from an image set, as well as add in the metadata on a per image bases.
|
||||||
|
* @param study The study who's metadata will be added
|
||||||
|
* @param displaySet The set of images to make the stack from
|
||||||
|
* @return {Array} Array with image IDs
|
||||||
|
*/
|
||||||
|
makeAndAddStack(study, displaySet) {
|
||||||
|
return configuration.createAndAddStack(stackMap, study, displaySet, stackUpdatedCallbacks);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Find a stack from the currently created stacks.
|
||||||
|
* @param displaySetInstanceUid The UID of the stack to find.
|
||||||
|
* @returns {*} undefined if not found, otherwise the stack object is returned.
|
||||||
|
*/
|
||||||
|
findStack(displaySetInstanceUid) {
|
||||||
|
return stackMap[displaySetInstanceUid];
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Find a stack or reate one if it has not been created yet
|
||||||
|
* @param study The study who's metadata will be added
|
||||||
|
* @param displaySet The set of images to make the stack from
|
||||||
|
* @return {Array} Array with image IDs
|
||||||
|
*/
|
||||||
|
findOrCreateStack(study, displaySet) {
|
||||||
|
let stack = this.findStack(displaySet.displaySetInstanceUid);
|
||||||
|
|
||||||
|
if (!stack || !stack.imageIds) {
|
||||||
|
stack = this.makeAndAddStack(study, displaySet);
|
||||||
|
}
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Gets the underlying map of displaySetInstanceUid to stack object.
|
||||||
|
* WARNING: Do not change this object. It directly affects the manager.
|
||||||
|
* @returns {{}} map of displaySetInstanceUid -> stack.
|
||||||
|
*/
|
||||||
|
getAllStacks() {
|
||||||
|
return stackMap;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Adds in a callback to be called on a stack being added / updated.
|
||||||
|
* @param callback must accept at minimum one argument,
|
||||||
|
* which is the stack that was added / updated.
|
||||||
|
*/
|
||||||
|
addStackUpdatedCallback(callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new OHIFError('callback must be provided as a function');
|
||||||
|
}
|
||||||
|
stackUpdatedCallbacks.push(callback);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Return configuration
|
||||||
|
*/
|
||||||
|
getConfiguration() {
|
||||||
|
return configuration;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Set configuration, in order to provide compatibility
|
||||||
|
* with other systems by overriding this functions
|
||||||
|
* @param {Object} config object with functions to be overrided
|
||||||
|
*
|
||||||
|
* For now, only makeAndAddStack can be overrided
|
||||||
|
*/
|
||||||
|
setConfiguration(config) {
|
||||||
|
configuration = config;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export { StackManager };
|
||||||
|
export default StackManager;
|
||||||
128
OHIFViewer-react/src/lib/createStacks.js
Normal file
128
OHIFViewer-react/src/lib/createStacks.js
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
import OHIF from 'ohif-core';
|
||||||
|
import { isImage } from './isImage';
|
||||||
|
|
||||||
|
const { ImageSet } = OHIF.classes;
|
||||||
|
|
||||||
|
const isMultiFrame = instance => {
|
||||||
|
// NumberOfFrames (0028,0008)
|
||||||
|
return instance.getRawValue('x00280008') > 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
const makeDisplaySet = (series, instances) => {
|
||||||
|
const instance = instances[0];
|
||||||
|
|
||||||
|
const imageSet = new ImageSet(instances);
|
||||||
|
const seriesData = series.getData();
|
||||||
|
|
||||||
|
// set appropriate attributes to image set...
|
||||||
|
imageSet.setAttributes({
|
||||||
|
displaySetInstanceUid: imageSet.uid, // create a local alias for the imageSet UID
|
||||||
|
seriesDate: seriesData.seriesDate,
|
||||||
|
seriesTime: seriesData.seriesTime,
|
||||||
|
seriesInstanceUid: series.getSeriesInstanceUID(),
|
||||||
|
seriesNumber: instance.getRawValue('x00200011'),
|
||||||
|
seriesDescription: instance.getRawValue('x0008103e'),
|
||||||
|
numImageFrames: instances.length,
|
||||||
|
frameRate: instance.getRawValue('x00181063'),
|
||||||
|
modality: instance.getRawValue('x00080060'),
|
||||||
|
isMultiFrame: isMultiFrame(instance)
|
||||||
|
});
|
||||||
|
|
||||||
|
// Sort the images in this series if needed
|
||||||
|
const shallSort = true//!OHIF.utils.ObjectPath.get(Meteor, 'settings.public.ui.sortSeriesByIncomingOrder');
|
||||||
|
if (shallSort) {
|
||||||
|
imageSet.sortBy((a, b) => {
|
||||||
|
// Sort by InstanceNumber (0020,0013)
|
||||||
|
return (parseInt(a.getRawValue('x00200013', 0)) || 0) - (parseInt(b.getRawValue('x00200013', 0)) || 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include the first image instance number (after sorted)
|
||||||
|
imageSet.setAttribute('instanceNumber', imageSet.getImage(0).getRawValue('x00200013'));
|
||||||
|
|
||||||
|
return imageSet;
|
||||||
|
};
|
||||||
|
|
||||||
|
const isSingleImageModality = modality => {
|
||||||
|
return (modality === 'CR' ||
|
||||||
|
modality === 'MG' ||
|
||||||
|
modality === 'DX');
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a set of series to be placed in the Study Metadata
|
||||||
|
* The series that appear in the Study Metadata must represent
|
||||||
|
* imaging modalities.
|
||||||
|
*
|
||||||
|
* Furthermore, for drag/drop functionality,
|
||||||
|
* it is easiest if the stack objects also contain information about
|
||||||
|
* which study they are linked to.
|
||||||
|
*
|
||||||
|
* @param study The study instance metadata to be used
|
||||||
|
* @returns {Array} An array of series to be placed in the Study Metadata
|
||||||
|
*/
|
||||||
|
const createStacks = study => {
|
||||||
|
// Define an empty array of display sets
|
||||||
|
const displaySets = [];
|
||||||
|
|
||||||
|
if (!study || !study.getSeriesCount()) {
|
||||||
|
return displaySets;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loop through the series (SeriesMetadata)
|
||||||
|
study.forEachSeries(series => {
|
||||||
|
// If the series has no instances, skip it
|
||||||
|
if (!series.getInstanceCount()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search through the instances (InstanceMedatada object) of this series
|
||||||
|
// Split Multi-frame instances and Single-image modalities
|
||||||
|
// into their own specific display sets. Place the rest of each
|
||||||
|
// series into another display set.
|
||||||
|
const stackableInstances = [];
|
||||||
|
series.forEachInstance(instance => {
|
||||||
|
// All imaging modalities must have a valid value for sopClassUid (x00080016) or rows (x00280010)
|
||||||
|
if (!isImage(instance.getRawValue('x00080016')) && !instance.getRawValue('x00280010')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let displaySet;
|
||||||
|
if (isMultiFrame(instance)) {
|
||||||
|
displaySet = makeDisplaySet(series, [ instance ]);
|
||||||
|
displaySet.setAttributes({
|
||||||
|
isClip: true,
|
||||||
|
studyInstanceUid: study.getStudyInstanceUID(), // Include the study instance Uid for drag/drop purposes
|
||||||
|
numImageFrames: instance.getRawValue('x00280008'), // Override the default value of instances.length
|
||||||
|
instanceNumber: instance.getRawValue('x00200013'), // Include the instance number
|
||||||
|
acquisitionDatetime: instance.getRawValue('x0008002a') // Include the acquisition datetime
|
||||||
|
});
|
||||||
|
displaySets.push(displaySet);
|
||||||
|
} else if (isSingleImageModality(instance.modality)) {
|
||||||
|
displaySet = makeDisplaySet(series, [ instance ]);
|
||||||
|
displaySet.setAttributes({
|
||||||
|
studyInstanceUid: study.getStudyInstanceUID(), // Include the study instance Uid
|
||||||
|
instanceNumber: instance.getRawValue('x00200013'), // Include the instance number
|
||||||
|
acquisitionDatetime: instance.getRawValue('x0008002a') // Include the acquisition datetime
|
||||||
|
});
|
||||||
|
displaySets.push(displaySet);
|
||||||
|
} else {
|
||||||
|
stackableInstances.push(instance);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (stackableInstances.length) {
|
||||||
|
const displaySet = makeDisplaySet(series, stackableInstances);
|
||||||
|
displaySet.setAttribute('studyInstanceUid', study.getStudyInstanceUID());
|
||||||
|
displaySets.push(displaySet);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return displaySets;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose "createStacks"...
|
||||||
|
*/
|
||||||
|
|
||||||
|
export { createStacks };
|
||||||
51
OHIFViewer-react/src/lib/getImageId.js
Normal file
51
OHIFViewer-react/src/lib/getImageId.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import { getWADORSImageId } from './getWADORSImageId';
|
||||||
|
|
||||||
|
// https://stackoverflow.com/a/6021027/3895126
|
||||||
|
function updateQueryStringParameter(uri, key, value) {
|
||||||
|
const regex = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
|
||||||
|
const separator = uri.indexOf('?') !== -1 ? '&' : '?';
|
||||||
|
if (uri.match(regex)) {
|
||||||
|
return uri.replace(regex, '$1' + key + '=' + value + '$2');
|
||||||
|
} else {
|
||||||
|
return uri + separator + key + '=' + value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain an imageId for Cornerstone from an image instance
|
||||||
|
*
|
||||||
|
* @param instance
|
||||||
|
* @param frame
|
||||||
|
* @param thumbnail
|
||||||
|
* @returns {string} The imageId to be used by Cornerstone
|
||||||
|
*/
|
||||||
|
export function getImageId(instance, frame, thumbnail=false) {
|
||||||
|
if (!instance) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof instance.getImageId === 'function') {
|
||||||
|
return instance.getImageId();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance.url) {
|
||||||
|
if (frame !== undefined) {
|
||||||
|
instance.url = updateQueryStringParameter(instance.url, 'frame', frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
const renderingAttr = thumbnail ? 'thumbnailRendering' : 'imageRendering';
|
||||||
|
|
||||||
|
if (!instance[renderingAttr] || instance[renderingAttr] === 'wadouri' || !instance.wadorsuri) {
|
||||||
|
let imageId = 'dicomweb:' + instance.wadouri;
|
||||||
|
if (frame !== undefined) {
|
||||||
|
imageId += '&frame=' + frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
return imageId;
|
||||||
|
} else {
|
||||||
|
return getWADORSImageId(instance, frame, thumbnail); // WADO-RS Retrieve Frame
|
||||||
|
}
|
||||||
|
}
|
||||||
31
OHIFViewer-react/src/lib/getWADORSImageId.js
Normal file
31
OHIFViewer-react/src/lib/getWADORSImageId.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
function getWADORSImageUrl(instance, frame) {
|
||||||
|
let wadorsuri = instance.wadorsuri;
|
||||||
|
|
||||||
|
if (!wadorsuri) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We need to sum 1 because WADO-RS frame number is 1-based
|
||||||
|
frame = (frame || 0) + 1;
|
||||||
|
|
||||||
|
// Replaces /frame/1 by /frame/{frame}
|
||||||
|
wadorsuri = wadorsuri.replace(/(%2Fframes%2F)(\d+)/, `$1${frame}`);
|
||||||
|
|
||||||
|
return wadorsuri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain an imageId for Cornerstone based on the WADO-RS scheme
|
||||||
|
*
|
||||||
|
* @param {object} instanceMetada metadata object (InstanceMetadata)
|
||||||
|
* @returns {string} The imageId to be used by Cornerstone
|
||||||
|
*/
|
||||||
|
export function getWADORSImageId(instance, frame) {
|
||||||
|
const uri = getWADORSImageUrl(instance, frame);
|
||||||
|
|
||||||
|
if (!uri) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `wadors:${uri}`;
|
||||||
|
};
|
||||||
61
OHIFViewer-react/src/lib/isImage.js
Normal file
61
OHIFViewer-react/src/lib/isImage.js
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
import { sopClassDictionary } from './sopClassDictionary';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether dicom files with specified SOP Class UID have image data
|
||||||
|
* @param {string} sopClassUid - SOP Class UID to be checked
|
||||||
|
* @returns {boolean} - true if it has image data
|
||||||
|
*/
|
||||||
|
export function isImage(sopClassUid) {
|
||||||
|
if (sopClassUid === sopClassDictionary.ComputedRadiographyImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalXRayImageStorageForPresentation
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalXRayImageStorageForProcessing
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalMammographyXRayImageStorageForPresentation
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalMammographyXRayImageStorageForProcessing
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalIntraOralXRayImageStorageForPresentation
|
||||||
|
|| sopClassUid === sopClassDictionary.DigitalIntraOralXRayImageStorageForProcessing
|
||||||
|
|| sopClassUid === sopClassDictionary.CTImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedCTImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.LegacyConvertedEnhancedCTImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.UltrasoundMultiframeImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.MRImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedMRImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedMRColorImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.LegacyConvertedEnhancedMRImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.UltrasoundImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.SecondaryCaptureImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.MultiframeSingleBitSecondaryCaptureImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.MultiframeGrayscaleByteSecondaryCaptureImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.MultiframeGrayscaleWordSecondaryCaptureImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.MultiframeTrueColorSecondaryCaptureImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.XRayAngiographicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedXAImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.XRayRadiofluoroscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedXRFImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.XRay3DAngiographicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.XRay3DCraniofacialImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.BreastTomosynthesisImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.BreastProjectionXRayImageStorageForPresentation
|
||||||
|
|| sopClassUid === sopClassDictionary.BreastProjectionXRayImageStorageForProcessing
|
||||||
|
|| sopClassUid === sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForPresentation
|
||||||
|
|| sopClassUid === sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForProcessing
|
||||||
|
|| sopClassUid === sopClassDictionary.NuclearMedicineImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VLEndoscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VideoEndoscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VLMicroscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VideoMicroscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VLSlideCoordinatesMicroscopicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VLPhotographicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VideoPhotographicImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.OphthalmicPhotography8BitImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.OphthalmicPhotography16BitImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.OphthalmicTomographyImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.VLWholeSlideMicroscopyImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.PositronEmissionTomographyImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.EnhancedPETImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.LegacyConvertedEnhancedPETImageStorage
|
||||||
|
|| sopClassUid === sopClassDictionary.RTImageStorage) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
116
OHIFViewer-react/src/lib/sopClassDictionary.js
Normal file
116
OHIFViewer-react/src/lib/sopClassDictionary.js
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
// TODO: Deprecate since we have the same thing in dcmjs?
|
||||||
|
export const sopClassDictionary = {
|
||||||
|
ComputedRadiographyImageStorage: "1.2.840.10008.5.1.4.1.1.1",
|
||||||
|
DigitalXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.1",
|
||||||
|
DigitalXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.1.1",
|
||||||
|
DigitalMammographyXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.2",
|
||||||
|
DigitalMammographyXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.2.1",
|
||||||
|
DigitalIntraOralXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.3",
|
||||||
|
DigitalIntraOralXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.3.1",
|
||||||
|
CTImageStorage: "1.2.840.10008.5.1.4.1.1.2",
|
||||||
|
EnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.1",
|
||||||
|
LegacyConvertedEnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.2",
|
||||||
|
UltrasoundMultiframeImageStorage: "1.2.840.10008.5.1.4.1.1.3.1",
|
||||||
|
MRImageStorage: "1.2.840.10008.5.1.4.1.1.4",
|
||||||
|
EnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.1",
|
||||||
|
MRSpectroscopyStorage: "1.2.840.10008.5.1.4.1.1.4.2",
|
||||||
|
EnhancedMRColorImageStorage: "1.2.840.10008.5.1.4.1.1.4.3",
|
||||||
|
LegacyConvertedEnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.4",
|
||||||
|
UltrasoundImageStorage: "1.2.840.10008.5.1.4.1.1.6.1",
|
||||||
|
EnhancedUSVolumeStorage: "1.2.840.10008.5.1.4.1.1.6.2",
|
||||||
|
SecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7",
|
||||||
|
MultiframeSingleBitSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.1",
|
||||||
|
MultiframeGrayscaleByteSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.2",
|
||||||
|
MultiframeGrayscaleWordSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.3",
|
||||||
|
MultiframeTrueColorSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.4",
|
||||||
|
Sop12LeadECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.1",
|
||||||
|
GeneralECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.2",
|
||||||
|
AmbulatoryECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.3",
|
||||||
|
HemodynamicWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.2.1",
|
||||||
|
CardiacElectrophysiologyWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.3.1",
|
||||||
|
BasicVoiceAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.1",
|
||||||
|
GeneralAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.2",
|
||||||
|
ArterialPulseWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.5.1",
|
||||||
|
RespiratoryWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.6.1",
|
||||||
|
GrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.1",
|
||||||
|
ColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.2",
|
||||||
|
PseudoColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.3",
|
||||||
|
BlendingSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.4",
|
||||||
|
XAXRFGrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.5",
|
||||||
|
XRayAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.12.1",
|
||||||
|
EnhancedXAImageStorage: "1.2.840.10008.5.1.4.1.1.12.1.1",
|
||||||
|
XRayRadiofluoroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.12.2",
|
||||||
|
EnhancedXRFImageStorage: "1.2.840.10008.5.1.4.1.1.12.2.1",
|
||||||
|
XRay3DAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.1",
|
||||||
|
XRay3DCraniofacialImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.2",
|
||||||
|
BreastTomosynthesisImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.3",
|
||||||
|
BreastProjectionXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.13.1.4",
|
||||||
|
BreastProjectionXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.13.1.5",
|
||||||
|
IntravascularOpticalCoherenceTomographyImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.14.1",
|
||||||
|
IntravascularOpticalCoherenceTomographyImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.14.2",
|
||||||
|
NuclearMedicineImageStorage: "1.2.840.10008.5.1.4.1.1.20",
|
||||||
|
RawDataStorage: "1.2.840.10008.5.1.4.1.1.66",
|
||||||
|
SpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.1",
|
||||||
|
SpatialFiducialsStorage: "1.2.840.10008.5.1.4.1.1.66.2",
|
||||||
|
DeformableSpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.3",
|
||||||
|
SegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.4",
|
||||||
|
SurfaceSegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.5",
|
||||||
|
RealWorldValueMappingStorage: "1.2.840.10008.5.1.4.1.1.67",
|
||||||
|
SurfaceScanMeshStorage: "1.2.840.10008.5.1.4.1.1.68.1",
|
||||||
|
SurfaceScanPointCloudStorage: "1.2.840.10008.5.1.4.1.1.68.2",
|
||||||
|
VLEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1",
|
||||||
|
VideoEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1.1",
|
||||||
|
VLMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2",
|
||||||
|
VideoMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2.1",
|
||||||
|
VLSlideCoordinatesMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.3",
|
||||||
|
VLPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4",
|
||||||
|
VideoPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4.1",
|
||||||
|
OphthalmicPhotography8BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.1",
|
||||||
|
OphthalmicPhotography16BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.2",
|
||||||
|
StereometricRelationshipStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.3",
|
||||||
|
OphthalmicTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.4",
|
||||||
|
VLWholeSlideMicroscopyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.6",
|
||||||
|
LensometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.1",
|
||||||
|
AutorefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.2",
|
||||||
|
KeratometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.3",
|
||||||
|
SubjectiveRefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.4",
|
||||||
|
VisualAcuityMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.5",
|
||||||
|
SpectaclePrescriptionReportStorage: "1.2.840.10008.5.1.4.1.1.78.6",
|
||||||
|
OphthalmicAxialMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.7",
|
||||||
|
IntraocularLensCalculationsStorage: "1.2.840.10008.5.1.4.1.1.78.8",
|
||||||
|
MacularGridThicknessandVolumeReport: "1.2.840.10008.5.1.4.1.1.79.1",
|
||||||
|
OphthalmicVisualFieldStaticPerimetryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.80.1",
|
||||||
|
OphthalmicThicknessMapStorage: "1.2.840.10008.5.1.4.1.1.81.1",
|
||||||
|
CornealTopographyMapStorage: "1.2.840.10008.5.1.4.1.1.82.1",
|
||||||
|
BasicTextSR: "1.2.840.10008.5.1.4.1.1.88.11",
|
||||||
|
EnhancedSR: "1.2.840.10008.5.1.4.1.1.88.22",
|
||||||
|
ComprehensiveSR: "1.2.840.10008.5.1.4.1.1.88.33",
|
||||||
|
Comprehensive3DSR: "1.2.840.10008.5.1.4.1.1.88.34",
|
||||||
|
ProcedureLog: "1.2.840.10008.5.1.4.1.1.88.40",
|
||||||
|
MammographyCADSR: "1.2.840.10008.5.1.4.1.1.88.50",
|
||||||
|
KeyObjectSelection: "1.2.840.10008.5.1.4.1.1.88.59",
|
||||||
|
ChestCADSR: "1.2.840.10008.5.1.4.1.1.88.65",
|
||||||
|
XRayRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.67",
|
||||||
|
RadiopharmaceuticalRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.68",
|
||||||
|
ColonCADSR: "1.2.840.10008.5.1.4.1.1.88.69",
|
||||||
|
ImplantationPlanSRDocumentStorage: "1.2.840.10008.5.1.4.1.1.88.70",
|
||||||
|
EncapsulatedPDFStorage: "1.2.840.10008.5.1.4.1.1.104.1",
|
||||||
|
EncapsulatedCDAStorage: "1.2.840.10008.5.1.4.1.1.104.2",
|
||||||
|
PositronEmissionTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.128",
|
||||||
|
EnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.130",
|
||||||
|
LegacyConvertedEnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.128.1",
|
||||||
|
BasicStructuredDisplayStorage: "1.2.840.10008.5.1.4.1.1.131",
|
||||||
|
RTImageStorage: "1.2.840.10008.5.1.4.1.1.481.1",
|
||||||
|
RTDoseStorage: "1.2.840.10008.5.1.4.1.1.481.2",
|
||||||
|
RTStructureSetStorage: "1.2.840.10008.5.1.4.1.1.481.3",
|
||||||
|
RTBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.4",
|
||||||
|
RTPlanStorage: "1.2.840.10008.5.1.4.1.1.481.5",
|
||||||
|
RTBrachyTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.6",
|
||||||
|
RTTreatmentSummaryRecordStorage: "1.2.840.10008.5.1.4.1.1.481.7",
|
||||||
|
RTIonPlanStorage: "1.2.840.10008.5.1.4.1.1.481.8",
|
||||||
|
RTIonBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.9",
|
||||||
|
RTBeamsDeliveryInstructionStorage: "1.2.840.10008.5.1.4.34.7",
|
||||||
|
GenericImplantTemplateStorage: "1.2.840.10008.5.1.4.43.1",
|
||||||
|
ImplantAssemblyTemplateStorage: "1.2.840.10008.5.1.4.44.1",
|
||||||
|
ImplantTemplateGroupStorage: "1.2.840.10008.5.1.4.45.1"
|
||||||
|
};
|
||||||
13
OHIFViewer-react/src/lib/sortingManager.js
Normal file
13
OHIFViewer-react/src/lib/sortingManager.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { createStacks } from './createStacks';
|
||||||
|
|
||||||
|
const getDisplaySets = (studyMetadata, seriesNumber, iteratorFunction) => {
|
||||||
|
const iteratorFn = typeof iteratorFunction !== 'function' ? createStacks : iteratorFunction;
|
||||||
|
|
||||||
|
return iteratorFn(studyMetadata, seriesNumber);
|
||||||
|
};
|
||||||
|
|
||||||
|
const sortingManager = {
|
||||||
|
getDisplaySets
|
||||||
|
};
|
||||||
|
|
||||||
|
export { sortingManager };
|
||||||
88
OHIFViewer-react/src/lib/updateMetaDataManager.js
Normal file
88
OHIFViewer-react/src/lib/updateMetaDataManager.js
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
|
||||||
|
import OHIF from 'ohif-core';
|
||||||
|
import { getWADORSImageId } from './getWADORSImageId';
|
||||||
|
|
||||||
|
function getRadiopharmaceuticalInfoMetaData(instance) {
|
||||||
|
const radiopharmaceuticalInfo = instance.radiopharmaceuticalInfo;
|
||||||
|
|
||||||
|
if ((instance.modality !== 'PT') || !radiopharmaceuticalInfo) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const { WadoRsMetaDataBuilder } = OHIF.metadata;
|
||||||
|
|
||||||
|
return new WadoRsMetaDataBuilder()
|
||||||
|
.addTag('00181072', radiopharmaceuticalInfo.radiopharmaceuticalStartTime)
|
||||||
|
.addTag('00181074', radiopharmaceuticalInfo.radionuclideTotalDose)
|
||||||
|
.addTag('00181075', radiopharmaceuticalInfo.radionuclideHalfLife)
|
||||||
|
.toJSON();
|
||||||
|
}
|
||||||
|
|
||||||
|
const getWadoRsInstanceMetaData = (study, series, instance) => {
|
||||||
|
const { WadoRsMetaDataBuilder } = OHIF.metadata;
|
||||||
|
return new WadoRsMetaDataBuilder()
|
||||||
|
.addTag('00080016', instance.sopClassUid)
|
||||||
|
.addTag('00080018', instance.sopInstanceUid)
|
||||||
|
.addTag('00080021', series.seriesDate)
|
||||||
|
.addTag('00080031', series.seriesTime)
|
||||||
|
.addTag('00080060', instance.modality)
|
||||||
|
.addTag('00101010', study.patientAge)
|
||||||
|
.addTag('00101020', study.patientSize)
|
||||||
|
.addTag('00101030', study.patientWeight)
|
||||||
|
.addTag('00180050', instance.sliceThickness)
|
||||||
|
.addTag('0020000e', series.seriesInstanceUid)
|
||||||
|
.addTag('00200011', series.seriesNumber)
|
||||||
|
.addTag('0020000d', study.studyInstanceUid)
|
||||||
|
.addTag('00200013', instance.instanceNumber)
|
||||||
|
.addTag('00200032', instance.imagePositionPatient, true)
|
||||||
|
.addTag('00200037', instance.imageOrientationPatient, true)
|
||||||
|
.addTag('00200052', instance.frameOfReferenceUID)
|
||||||
|
.addTag('00201041', instance.sliceLocation)
|
||||||
|
.addTag('00280002', instance.samplesPerPixel)
|
||||||
|
.addTag('00280004', instance.photometricInterpretation)
|
||||||
|
.addTag('00280006', instance.planarConfiguration)
|
||||||
|
.addTag('00280010', instance.rows)
|
||||||
|
.addTag('00280011', instance.columns)
|
||||||
|
.addTag('00280030', instance.pixelSpacing, true)
|
||||||
|
.addTag('00280034', instance.pixelAspectRatio, true)
|
||||||
|
.addTag('00280100', instance.bitsAllocated)
|
||||||
|
.addTag('00280101', instance.bitsStored)
|
||||||
|
.addTag('00280102', instance.highBit)
|
||||||
|
.addTag('00280103', instance.pixelRepresentation)
|
||||||
|
.addTag('00280106', instance.smallestPixelValue)
|
||||||
|
.addTag('00280107', instance.largestPixelValue)
|
||||||
|
.addTag('00281050', instance.windowCenter, true)
|
||||||
|
.addTag('00281051', instance.windowWidth, true)
|
||||||
|
.addTag('00281052', instance.rescaleIntercept)
|
||||||
|
.addTag('00281053', instance.rescaleSlope)
|
||||||
|
.addTag('00281054', instance.rescaleType)
|
||||||
|
.addTag('00281101', instance.redPaletteColorLookupTableDescriptor)
|
||||||
|
.addTag('00281102', instance.greenPaletteColorLookupTableDescriptor)
|
||||||
|
.addTag('00281103', instance.bluePaletteColorLookupTableDescriptor)
|
||||||
|
.addTag('00281201', instance.redPaletteColorLookupTableData)
|
||||||
|
.addTag('00281202', instance.greenPaletteColorLookupTableData)
|
||||||
|
.addTag('00281203', instance.bluePaletteColorLookupTableData)
|
||||||
|
.addTag('00540016', getRadiopharmaceuticalInfoMetaData(instance))
|
||||||
|
.toJSON();
|
||||||
|
};
|
||||||
|
|
||||||
|
export function updateMetaDataManager(study) {
|
||||||
|
study.seriesList.forEach(series => {
|
||||||
|
series.instances.forEach(instance => {
|
||||||
|
// Cache just images that are going to be loaded via WADO-RS
|
||||||
|
if ((instance.imageRendering !== 'wadors') && (instance.thumbnailRendering !== 'wadors')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const metaData = getWadoRsInstanceMetaData(study, series, instance);
|
||||||
|
const numberOfFrames = instance.numberOfFrames || 1;
|
||||||
|
|
||||||
|
// We can share the same metaData with all frames because it doesn't have
|
||||||
|
// any frame specific data, such as frameNumber, pixelData, offset, etc.
|
||||||
|
// WADO-RS frame number is 1-based
|
||||||
|
for (let frameNumber = 0; frameNumber < numberOfFrames; frameNumber++) {
|
||||||
|
const imageId = getWADORSImageId(instance, frameNumber);
|
||||||
|
cornerstoneWADOImageLoader.wadors.metaDataManager.add(imageId, metaData);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -1 +1 @@
|
|||||||
export default '7b66dec163174eae2f6aca133f740529c8b4d08c';
|
export default 'fc5bd73c1ed247b233bfc7ebed1fb00c990f98d5';
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import React, { Component } from "react";
|
|||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import cornerstone from 'cornerstone-core';
|
import cornerstone from 'cornerstone-core';
|
||||||
import cornerstoneTools from 'cornerstone-tools';
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
import { OHIF } from 'ohif-core';
|
import OHIF from 'ohif-core';
|
||||||
import { CineDialog } from 'react-viewerbase';
|
import { CineDialog } from 'react-viewerbase';
|
||||||
import FlexboxLayout from '../flexboxLayout/flexboxLayout.js';
|
import FlexboxLayout from '../flexboxLayout/flexboxLayout.js';
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ OHIF.viewer.cine = {
|
|||||||
loop: true
|
loop: true
|
||||||
};
|
};
|
||||||
|
|
||||||
const viewportUtils = OHIF.viewerbase.viewportUtils;
|
/*const viewportUtils = OHIF.viewerbase.viewportUtils;
|
||||||
|
|
||||||
OHIF.viewer.functionList = {
|
OHIF.viewer.functionList = {
|
||||||
toggleCineDialog: viewportUtils.toggleCineDialog,
|
toggleCineDialog: viewportUtils.toggleCineDialog,
|
||||||
@ -56,7 +56,7 @@ OHIF.viewer.functionList = {
|
|||||||
clearTools: viewportUtils.clearTools,
|
clearTools: viewportUtils.clearTools,
|
||||||
resetViewport: viewportUtils.resetViewport,
|
resetViewport: viewportUtils.resetViewport,
|
||||||
invert: viewportUtils.invert
|
invert: viewportUtils.invert
|
||||||
};
|
};*/
|
||||||
|
|
||||||
// Create the synchronizer used to update reference lines
|
// Create the synchronizer used to update reference lines
|
||||||
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('cornerstonenewimage', cornerstoneTools.updateImageSynchronizer);
|
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('cornerstonenewimage', cornerstoneTools.updateImageSynchronizer);
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
Arguments:
|
Arguments:
|
||||||
/usr/local/Cellar/node/11.1.0/bin/node /usr/local/Cellar/yarn/1.12.1/libexec/bin/yarn.js add ohif-core
|
/usr/local/Cellar/node/11.1.0/bin/node /usr/local/Cellar/yarn/1.12.1/libexec/bin/yarn.js install
|
||||||
|
|
||||||
PATH:
|
PATH:
|
||||||
/usr/local/bin:/usr/local/opt/openldap/sbin:/usr/local/opt/openldap/bin:/Developer/NVIDIA/CUDA-10.0/bin:/Users/Erik/anaconda/bin:/usr/local/opt/llvm/bin/:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/:/Users/Erik/SourceCode/Orthanc/OrthancBuild/Release:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Erik/npm/bin
|
/usr/local/bin:/usr/local/opt/openldap/sbin:/usr/local/opt/openldap/bin:/Developer/NVIDIA/CUDA-10.0/bin:/Users/Erik/anaconda/bin:/usr/local/opt/llvm/bin/:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/:/Users/Erik/SourceCode/Orthanc/OrthancBuild/Release:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Erik/npm/bin
|
||||||
@ -14,17 +14,7 @@ Platform:
|
|||||||
darwin x64
|
darwin x64
|
||||||
|
|
||||||
Trace:
|
Trace:
|
||||||
Error: https://registry.yarnpkg.com/ohif-core: Not found
|
Error: ENOENT: no such file or directory, open '/Users/Erik/Library/Caches/Yarn/v3/npm-ohif-core-0.1.0-90ae53cc5876abc07d2399aa9b2123ef1d2296ca/node_modules/ohif-core/.yarn-metadata.json'
|
||||||
at Request.params.callback [as _callback] (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:63139:18)
|
|
||||||
at Request.self.callback (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:124547:22)
|
|
||||||
at Request.emit (events.js:182:13)
|
|
||||||
at Request.<anonymous> (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:125519:10)
|
|
||||||
at Request.emit (events.js:182:13)
|
|
||||||
at IncomingMessage.<anonymous> (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:125441:12)
|
|
||||||
at Object.onceWrapper (events.js:273:13)
|
|
||||||
at IncomingMessage.emit (events.js:187:15)
|
|
||||||
at endReadableNT (_stream_readable.js:1094:12)
|
|
||||||
at process.internalTickCallback (internal/process/next_tick.js:72:19)
|
|
||||||
|
|
||||||
npm manifest:
|
npm manifest:
|
||||||
{
|
{
|
||||||
@ -41,12 +31,17 @@ npm manifest:
|
|||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"moment": "^2.22.2",
|
"moment": "^2.22.2",
|
||||||
|
"ohif-core": "git://github.com/OHIF/ohif-core#master",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"react": "^16.4.1",
|
"react": "^16.4.1",
|
||||||
"react-cornerstone-viewport": "^0.1.1",
|
"react-cornerstone-viewport": "^0.1.1",
|
||||||
"react-dom": "^16.4.1",
|
"react-dom": "^16.4.1",
|
||||||
|
"react-redux": "^6.0.0",
|
||||||
|
"react-router": "^4.3.1",
|
||||||
|
"react-router-dom": "^4.3.1",
|
||||||
"react-scripts": "^2.1.1",
|
"react-scripts": "^2.1.1",
|
||||||
"react-viewerbase": "^0.1.2"
|
"react-viewerbase": "git://github.com/OHIF/react-viewerbase#master",
|
||||||
|
"redux": "^4.0.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"copy:webworkers": "cp node_modules/cornerstone-wado-image-loader/dist/*.min.js* public",
|
"copy:webworkers": "cp node_modules/cornerstone-wado-image-loader/dist/*.min.js* public",
|
||||||
@ -905,6 +900,13 @@ Lockfile:
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.12.0"
|
regenerator-runtime "^0.12.0"
|
||||||
|
|
||||||
|
"@babel/runtime@^7.2.0":
|
||||||
|
version "7.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
|
||||||
|
integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
|
||||||
|
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"
|
||||||
@ -2320,6 +2322,11 @@ Lockfile:
|
|||||||
kind-of "^6.0.0"
|
kind-of "^6.0.0"
|
||||||
shallow-clone "^1.0.0"
|
shallow-clone "^1.0.0"
|
||||||
|
|
||||||
|
clone@^2.1.1:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
|
||||||
|
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||||
@ -3711,7 +3718,7 @@ Lockfile:
|
|||||||
assign-symbols "^1.0.0"
|
assign-symbols "^1.0.0"
|
||||||
is-extendable "^1.0.1"
|
is-extendable "^1.0.1"
|
||||||
|
|
||||||
extend@~3.0.2:
|
extend@^3.0.1, extend@~3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||||
@ -4450,6 +4457,17 @@ Lockfile:
|
|||||||
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==
|
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
|
||||||
|
|
||||||
|
history@^4.7.2:
|
||||||
|
version "4.7.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b"
|
||||||
|
integrity sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==
|
||||||
|
dependencies:
|
||||||
|
invariant "^2.2.1"
|
||||||
|
loose-envify "^1.2.0"
|
||||||
|
resolve-pathname "^2.2.0"
|
||||||
|
value-equal "^0.4.0"
|
||||||
|
warning "^3.0.0"
|
||||||
|
|
||||||
hmac-drbg@^1.0.0:
|
hmac-drbg@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
||||||
@ -4464,6 +4482,18 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
||||||
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
|
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
|
||||||
|
|
||||||
|
hoist-non-react-statics@^2.5.0:
|
||||||
|
version "2.5.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
|
||||||
|
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
|
||||||
|
|
||||||
|
hoist-non-react-statics@^3.2.1:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e"
|
||||||
|
integrity sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==
|
||||||
|
dependencies:
|
||||||
|
react-is "^16.3.2"
|
||||||
|
|
||||||
home-or-tmp@^2.0.0:
|
home-or-tmp@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
||||||
@ -4802,7 +4832,7 @@ Lockfile:
|
|||||||
default-gateway "^2.6.0"
|
default-gateway "^2.6.0"
|
||||||
ipaddr.js "^1.5.2"
|
ipaddr.js "^1.5.2"
|
||||||
|
|
||||||
invariant@^2.2.2, invariant@^2.2.4:
|
invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
|
||||||
version "2.2.4"
|
version "2.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
||||||
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
||||||
@ -5192,6 +5222,11 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
||||||
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
||||||
|
|
||||||
|
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=
|
||||||
|
|
||||||
isstream@~0.1.2:
|
isstream@~0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||||
@ -5598,6 +5633,16 @@ Lockfile:
|
|||||||
isemail "3.x.x"
|
isemail "3.x.x"
|
||||||
topo "2.x.x"
|
topo "2.x.x"
|
||||||
|
|
||||||
|
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"
|
||||||
@ -5933,6 +5978,67 @@ Lockfile:
|
|||||||
p-locate "^3.0.0"
|
p-locate "^3.0.0"
|
||||||
path-exists "^3.0.0"
|
path-exists "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basecallback@^3.0.0:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27"
|
||||||
|
integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseisequal "^3.0.0"
|
||||||
|
lodash._bindcallback "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.pairs "^3.0.0"
|
||||||
|
|
||||||
|
lodash._baseeach@^3.0.0:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3"
|
||||||
|
integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM=
|
||||||
|
dependencies:
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basefind@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae"
|
||||||
|
integrity sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=
|
||||||
|
|
||||||
|
lodash._basefindindex@^3.0.0:
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f"
|
||||||
|
integrity sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=
|
||||||
|
|
||||||
|
lodash._baseisequal@^3.0.0:
|
||||||
|
version "3.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1"
|
||||||
|
integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=
|
||||||
|
dependencies:
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.istypedarray "^3.0.0"
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash._baseismatch@^3.0.0:
|
||||||
|
version "3.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseismatch/-/lodash._baseismatch-3.1.3.tgz#0728fc48efa11699d3d5f2d73049f2ab13c40fd5"
|
||||||
|
integrity sha1-Byj8SO+hFpnT1fLXMEnyqxPED9U=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseisequal "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basematches@^3.0.0:
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basematches/-/lodash._basematches-3.2.0.tgz#f47e03f07ec20784ab0968d0cb6cb597e2101158"
|
||||||
|
integrity sha1-9H4D8H7CB4SrCWjQy2y1l+IQEVg=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseismatch "^3.0.0"
|
||||||
|
lodash.pairs "^3.0.0"
|
||||||
|
|
||||||
|
lodash._bindcallback@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
|
||||||
|
integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
|
||||||
|
|
||||||
|
lodash._getnative@^3.0.0:
|
||||||
|
version "3.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
||||||
|
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
|
||||||
|
|
||||||
lodash._reinterpolate@~3.0.0:
|
lodash._reinterpolate@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
||||||
@ -5948,11 +6054,107 @@ Lockfile:
|
|||||||
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=
|
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
||||||
|
|
||||||
|
lodash.every@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7"
|
||||||
|
integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=
|
||||||
|
|
||||||
|
lodash.find@^3.0.0:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad"
|
||||||
|
integrity sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=
|
||||||
|
dependencies:
|
||||||
|
lodash._basecallback "^3.0.0"
|
||||||
|
lodash._baseeach "^3.0.0"
|
||||||
|
lodash._basefind "^3.0.0"
|
||||||
|
lodash._basefindindex "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash.find@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
|
||||||
|
integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
|
||||||
|
|
||||||
|
lodash.findwhere@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.findwhere/-/lodash.findwhere-3.1.0.tgz#7937d34f3eac818dec7fa94e8ca5e26fdba1cfc1"
|
||||||
|
integrity sha1-eTfTTz6sgY3sf6lOjKXib9uhz8E=
|
||||||
|
dependencies:
|
||||||
|
lodash._basematches "^3.0.0"
|
||||||
|
lodash.find "^3.0.0"
|
||||||
|
|
||||||
|
lodash.foreach@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
|
||||||
|
integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
|
||||||
|
|
||||||
|
lodash.includes@^4.3.0:
|
||||||
|
version "4.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
|
||||||
|
integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
|
||||||
|
|
||||||
|
lodash.isarguments@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
||||||
|
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
|
||||||
|
|
||||||
|
lodash.isarray@^3.0.0:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
|
||||||
|
integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
|
||||||
|
|
||||||
|
lodash.isempty@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
|
||||||
|
integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
|
||||||
|
|
||||||
|
lodash.isobject@^3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
|
||||||
|
integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
|
||||||
|
|
||||||
|
lodash.istypedarray@^3.0.0:
|
||||||
|
version "3.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
|
||||||
|
integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=
|
||||||
|
|
||||||
|
lodash.keys@^3.0.0:
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
|
||||||
|
integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
|
||||||
|
dependencies:
|
||||||
|
lodash._getnative "^3.0.0"
|
||||||
|
lodash.isarguments "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
|
||||||
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"
|
||||||
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
||||||
|
|
||||||
|
lodash.merge@^4.6.0:
|
||||||
|
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.omit@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
|
||||||
|
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
|
||||||
|
|
||||||
|
lodash.pairs@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9"
|
||||||
|
integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=
|
||||||
|
dependencies:
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash.pick@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
|
||||||
|
integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
|
||||||
|
|
||||||
lodash.sortby@^4.7.0:
|
lodash.sortby@^4.7.0:
|
||||||
version "4.7.0"
|
version "4.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||||
@ -5978,11 +6180,21 @@ Lockfile:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lodash._reinterpolate "~3.0.0"
|
lodash._reinterpolate "~3.0.0"
|
||||||
|
|
||||||
|
lodash.union@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
|
||||||
|
integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
|
||||||
|
|
||||||
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"
|
||||||
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
||||||
|
|
||||||
|
lodash.without@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
|
||||||
|
integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=
|
||||||
|
|
||||||
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
|
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
|
||||||
version "4.17.11"
|
version "4.17.11"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
||||||
@ -5993,7 +6205,7 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
||||||
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
||||||
|
|
||||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
|
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||||
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
||||||
@ -6130,6 +6342,14 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||||
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
|
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
|
||||||
|
|
||||||
|
message-box@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/message-box/-/message-box-0.2.0.tgz#f93da217cb11f2a13cb501846fa713f21d6eabb7"
|
||||||
|
integrity sha512-SPLfVDEM2YcAgV2IB0B5vOGjvqXSSw7ZibEeXcff8HYpxyG1Uj+XjgnGUGyR1C0EQCvPI3MBx3p7opt2CIQ2hw==
|
||||||
|
dependencies:
|
||||||
|
lodash.merge "^4.6.0"
|
||||||
|
lodash.template "^4.4.0"
|
||||||
|
|
||||||
methods@~1.1.2:
|
methods@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||||
@ -6329,6 +6549,16 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
|
||||||
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
|
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
|
||||||
|
|
||||||
|
mongo-object@^0.1.3:
|
||||||
|
version "0.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/mongo-object/-/mongo-object-0.1.3.tgz#56b2a46d3ae4f0bdb1935241928fb444034b92e5"
|
||||||
|
integrity sha512-m3vs+a1JkvRXELJMe2ieMmBe03NUy6bctGjWicRhReYj8brDi0ojKHLKLmXWr/RupNaFP8Q7/x8xG8GpFtp9wg==
|
||||||
|
dependencies:
|
||||||
|
lodash.foreach "^4.5.0"
|
||||||
|
lodash.isempty "^4.4.0"
|
||||||
|
lodash.isobject "^3.0.2"
|
||||||
|
lodash.without "^4.4.0"
|
||||||
|
|
||||||
move-concurrently@^1.0.1:
|
move-concurrently@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
||||||
@ -6670,6 +6900,18 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
||||||
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
||||||
|
|
||||||
|
"ohif-core@git://github.com/OHIF/ohif-core#master":
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "git://github.com/OHIF/ohif-core#130e621cf3c13817c1c120f91f0e9378b3eba993"
|
||||||
|
dependencies:
|
||||||
|
cornerstone-math "^0.1.7"
|
||||||
|
isomorphic-base64 "^1.0.2"
|
||||||
|
jquery "^3.3.1"
|
||||||
|
jquery.hotkeys "^0.1.0"
|
||||||
|
redux "^4.0.1"
|
||||||
|
simpl-schema "^1.5.3"
|
||||||
|
underscore "^1.9.1"
|
||||||
|
|
||||||
on-finished@~2.3.0:
|
on-finished@~2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
|
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
|
||||||
@ -6966,6 +7208,13 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
||||||
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
||||||
|
|
||||||
|
path-to-regexp@^1.7.0:
|
||||||
|
version "1.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
|
||||||
|
integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
|
||||||
|
dependencies:
|
||||||
|
isarray "0.0.1"
|
||||||
|
|
||||||
path-type@^1.0.0:
|
path-type@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
||||||
@ -7766,7 +8015,7 @@ Lockfile:
|
|||||||
kleur "^2.0.1"
|
kleur "^2.0.1"
|
||||||
sisteransi "^0.1.1"
|
sisteransi "^0.1.1"
|
||||||
|
|
||||||
prop-types@^15.6.2:
|
prop-types@^15.6.1, prop-types@^15.6.2:
|
||||||
version "15.6.2"
|
version "15.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
||||||
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
||||||
@ -8001,6 +8250,48 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
|
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
|
||||||
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
|
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
|
||||||
|
|
||||||
|
react-is@^16.3.2, react-is@^16.6.3:
|
||||||
|
version "16.6.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0"
|
||||||
|
integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA==
|
||||||
|
|
||||||
|
react-redux@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef"
|
||||||
|
integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.2.0"
|
||||||
|
hoist-non-react-statics "^3.2.1"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.4.0"
|
||||||
|
prop-types "^15.6.2"
|
||||||
|
react-is "^16.6.3"
|
||||||
|
|
||||||
|
react-router-dom@^4.3.1:
|
||||||
|
version "4.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
|
||||||
|
integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==
|
||||||
|
dependencies:
|
||||||
|
history "^4.7.2"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.3.1"
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
react-router "^4.3.1"
|
||||||
|
warning "^4.0.1"
|
||||||
|
|
||||||
|
react-router@^4.3.1:
|
||||||
|
version "4.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
|
||||||
|
integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==
|
||||||
|
dependencies:
|
||||||
|
history "^4.7.2"
|
||||||
|
hoist-non-react-statics "^2.5.0"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.3.1"
|
||||||
|
path-to-regexp "^1.7.0"
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
warning "^4.0.1"
|
||||||
|
|
||||||
react-scripts@^2.1.1:
|
react-scripts@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
|
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
|
||||||
@ -8056,10 +8347,9 @@ Lockfile:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "1.2.4"
|
fsevents "1.2.4"
|
||||||
|
|
||||||
react-viewerbase@^0.1.2:
|
"react-viewerbase@git://github.com/OHIF/react-viewerbase#master":
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.1.2.tgz#3af6e31f72183b0cef4b9c36a3534234039e7b8f"
|
resolved "git://github.com/OHIF/react-viewerbase#851631857f037f8db32534a1d2a74dfa945429e4"
|
||||||
integrity sha512-ibhnYNe6eVavzZGPN9s/gzRJ7cnkYz8nGMesjH6nigVDdkYgQTCnHzC1laJRFQBgeoNlsd9uKPyvOwjD9ftVuA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
classnames "^2.2.6"
|
classnames "^2.2.6"
|
||||||
|
|
||||||
@ -8153,6 +8443,14 @@ Lockfile:
|
|||||||
dependencies:
|
dependencies:
|
||||||
minimatch "3.0.4"
|
minimatch "3.0.4"
|
||||||
|
|
||||||
|
redux@^4.0.1:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5"
|
||||||
|
integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==
|
||||||
|
dependencies:
|
||||||
|
loose-envify "^1.4.0"
|
||||||
|
symbol-observable "^1.2.0"
|
||||||
|
|
||||||
regenerate-unicode-properties@^7.0.0:
|
regenerate-unicode-properties@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c"
|
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c"
|
||||||
@ -8380,6 +8678,11 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
||||||
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
|
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
|
||||||
|
|
||||||
|
resolve-pathname@^2.2.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
|
||||||
|
integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==
|
||||||
|
|
||||||
resolve-url@^0.2.1:
|
resolve-url@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||||
@ -8706,6 +9009,26 @@ Lockfile:
|
|||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||||
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
||||||
|
|
||||||
|
simpl-schema@^1.5.3:
|
||||||
|
version "1.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/simpl-schema/-/simpl-schema-1.5.3.tgz#c1d12ebddd7ff6dd32ace5e6364824ae506d4a9a"
|
||||||
|
integrity sha512-J24gSh39gBc3TYRFgaWx81bRf9unNML9u3dTAgxL1KI3F9JOv+Z29yEbosJFqmHfuuZ3K7ET/tTQKX4r4+f8/w==
|
||||||
|
dependencies:
|
||||||
|
clone "^2.1.1"
|
||||||
|
extend "^3.0.1"
|
||||||
|
lodash.every "^4.6.0"
|
||||||
|
lodash.find "^4.6.0"
|
||||||
|
lodash.findwhere "^3.1.0"
|
||||||
|
lodash.includes "^4.3.0"
|
||||||
|
lodash.isempty "^4.4.0"
|
||||||
|
lodash.isobject "^3.0.2"
|
||||||
|
lodash.omit "^4.5.0"
|
||||||
|
lodash.pick "^4.4.0"
|
||||||
|
lodash.union "^4.6.0"
|
||||||
|
lodash.uniq "^4.5.0"
|
||||||
|
message-box "^0.2.0"
|
||||||
|
mongo-object "^0.1.3"
|
||||||
|
|
||||||
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"
|
||||||
@ -9162,6 +9485,11 @@ Lockfile:
|
|||||||
unquote "~1.1.1"
|
unquote "~1.1.1"
|
||||||
util.promisify "~1.0.0"
|
util.promisify "~1.0.0"
|
||||||
|
|
||||||
|
symbol-observable@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
|
||||||
|
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
|
||||||
|
|
||||||
symbol-tree@^3.2.2:
|
symbol-tree@^3.2.2:
|
||||||
version "3.2.2"
|
version "3.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
|
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
|
||||||
@ -9435,6 +9763,11 @@ Lockfile:
|
|||||||
webpack-sources "^1.1.0"
|
webpack-sources "^1.1.0"
|
||||||
worker-farm "^1.5.2"
|
worker-farm "^1.5.2"
|
||||||
|
|
||||||
|
underscore@^1.9.1:
|
||||||
|
version "1.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
|
||||||
|
integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
|
||||||
|
|
||||||
unicode-canonical-property-names-ecmascript@^1.0.4:
|
unicode-canonical-property-names-ecmascript@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
|
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
|
||||||
@ -9617,6 +9950,11 @@ Lockfile:
|
|||||||
spdx-correct "^3.0.0"
|
spdx-correct "^3.0.0"
|
||||||
spdx-expression-parse "^3.0.0"
|
spdx-expression-parse "^3.0.0"
|
||||||
|
|
||||||
|
value-equal@^0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
|
||||||
|
integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==
|
||||||
|
|
||||||
vary@~1.1.2:
|
vary@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||||
@ -9666,6 +10004,20 @@ Lockfile:
|
|||||||
dependencies:
|
dependencies:
|
||||||
makeerror "1.0.x"
|
makeerror "1.0.x"
|
||||||
|
|
||||||
|
warning@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
|
||||||
|
integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=
|
||||||
|
dependencies:
|
||||||
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
|
warning@^4.0.1:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607"
|
||||||
|
integrity sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==
|
||||||
|
dependencies:
|
||||||
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
watch@~0.18.0:
|
watch@~0.18.0:
|
||||||
version "0.18.0"
|
version "0.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
|
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
|
||||||
|
|||||||
@ -832,6 +832,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.12.0"
|
regenerator-runtime "^0.12.0"
|
||||||
|
|
||||||
|
"@babel/runtime@^7.2.0":
|
||||||
|
version "7.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
|
||||||
|
integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
|
||||||
|
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"
|
||||||
@ -2247,6 +2254,11 @@ clone-deep@^2.0.1:
|
|||||||
kind-of "^6.0.0"
|
kind-of "^6.0.0"
|
||||||
shallow-clone "^1.0.0"
|
shallow-clone "^1.0.0"
|
||||||
|
|
||||||
|
clone@^2.1.1:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
|
||||||
|
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||||
@ -3638,7 +3650,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
|
|||||||
assign-symbols "^1.0.0"
|
assign-symbols "^1.0.0"
|
||||||
is-extendable "^1.0.1"
|
is-extendable "^1.0.1"
|
||||||
|
|
||||||
extend@~3.0.2:
|
extend@^3.0.1, extend@~3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||||
@ -4377,6 +4389,17 @@ hex-color-regex@^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==
|
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
|
||||||
|
|
||||||
|
history@^4.7.2:
|
||||||
|
version "4.7.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b"
|
||||||
|
integrity sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==
|
||||||
|
dependencies:
|
||||||
|
invariant "^2.2.1"
|
||||||
|
loose-envify "^1.2.0"
|
||||||
|
resolve-pathname "^2.2.0"
|
||||||
|
value-equal "^0.4.0"
|
||||||
|
warning "^3.0.0"
|
||||||
|
|
||||||
hmac-drbg@^1.0.0:
|
hmac-drbg@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
||||||
@ -4391,6 +4414,18 @@ hoek@4.x.x:
|
|||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
||||||
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
|
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
|
||||||
|
|
||||||
|
hoist-non-react-statics@^2.5.0:
|
||||||
|
version "2.5.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
|
||||||
|
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
|
||||||
|
|
||||||
|
hoist-non-react-statics@^3.2.1:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e"
|
||||||
|
integrity sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==
|
||||||
|
dependencies:
|
||||||
|
react-is "^16.3.2"
|
||||||
|
|
||||||
home-or-tmp@^2.0.0:
|
home-or-tmp@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
||||||
@ -4729,7 +4764,7 @@ internal-ip@^3.0.1:
|
|||||||
default-gateway "^2.6.0"
|
default-gateway "^2.6.0"
|
||||||
ipaddr.js "^1.5.2"
|
ipaddr.js "^1.5.2"
|
||||||
|
|
||||||
invariant@^2.2.2, invariant@^2.2.4:
|
invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
|
||||||
version "2.2.4"
|
version "2.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
||||||
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
||||||
@ -5875,6 +5910,67 @@ locate-path@^3.0.0:
|
|||||||
p-locate "^3.0.0"
|
p-locate "^3.0.0"
|
||||||
path-exists "^3.0.0"
|
path-exists "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basecallback@^3.0.0:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27"
|
||||||
|
integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseisequal "^3.0.0"
|
||||||
|
lodash._bindcallback "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.pairs "^3.0.0"
|
||||||
|
|
||||||
|
lodash._baseeach@^3.0.0:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3"
|
||||||
|
integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM=
|
||||||
|
dependencies:
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basefind@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae"
|
||||||
|
integrity sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=
|
||||||
|
|
||||||
|
lodash._basefindindex@^3.0.0:
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f"
|
||||||
|
integrity sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=
|
||||||
|
|
||||||
|
lodash._baseisequal@^3.0.0:
|
||||||
|
version "3.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1"
|
||||||
|
integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=
|
||||||
|
dependencies:
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.istypedarray "^3.0.0"
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash._baseismatch@^3.0.0:
|
||||||
|
version "3.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._baseismatch/-/lodash._baseismatch-3.1.3.tgz#0728fc48efa11699d3d5f2d73049f2ab13c40fd5"
|
||||||
|
integrity sha1-Byj8SO+hFpnT1fLXMEnyqxPED9U=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseisequal "^3.0.0"
|
||||||
|
|
||||||
|
lodash._basematches@^3.0.0:
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._basematches/-/lodash._basematches-3.2.0.tgz#f47e03f07ec20784ab0968d0cb6cb597e2101158"
|
||||||
|
integrity sha1-9H4D8H7CB4SrCWjQy2y1l+IQEVg=
|
||||||
|
dependencies:
|
||||||
|
lodash._baseismatch "^3.0.0"
|
||||||
|
lodash.pairs "^3.0.0"
|
||||||
|
|
||||||
|
lodash._bindcallback@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
|
||||||
|
integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
|
||||||
|
|
||||||
|
lodash._getnative@^3.0.0:
|
||||||
|
version "3.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
||||||
|
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
|
||||||
|
|
||||||
lodash._reinterpolate@~3.0.0:
|
lodash._reinterpolate@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
||||||
@ -5890,11 +5986,107 @@ lodash.debounce@^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=
|
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
||||||
|
|
||||||
|
lodash.every@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7"
|
||||||
|
integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=
|
||||||
|
|
||||||
|
lodash.find@^3.0.0:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad"
|
||||||
|
integrity sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=
|
||||||
|
dependencies:
|
||||||
|
lodash._basecallback "^3.0.0"
|
||||||
|
lodash._baseeach "^3.0.0"
|
||||||
|
lodash._basefind "^3.0.0"
|
||||||
|
lodash._basefindindex "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash.find@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
|
||||||
|
integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
|
||||||
|
|
||||||
|
lodash.findwhere@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.findwhere/-/lodash.findwhere-3.1.0.tgz#7937d34f3eac818dec7fa94e8ca5e26fdba1cfc1"
|
||||||
|
integrity sha1-eTfTTz6sgY3sf6lOjKXib9uhz8E=
|
||||||
|
dependencies:
|
||||||
|
lodash._basematches "^3.0.0"
|
||||||
|
lodash.find "^3.0.0"
|
||||||
|
|
||||||
|
lodash.foreach@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
|
||||||
|
integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
|
||||||
|
|
||||||
|
lodash.includes@^4.3.0:
|
||||||
|
version "4.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
|
||||||
|
integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
|
||||||
|
|
||||||
|
lodash.isarguments@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
||||||
|
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
|
||||||
|
|
||||||
|
lodash.isarray@^3.0.0:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
|
||||||
|
integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
|
||||||
|
|
||||||
|
lodash.isempty@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
|
||||||
|
integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
|
||||||
|
|
||||||
|
lodash.isobject@^3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
|
||||||
|
integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
|
||||||
|
|
||||||
|
lodash.istypedarray@^3.0.0:
|
||||||
|
version "3.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
|
||||||
|
integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=
|
||||||
|
|
||||||
|
lodash.keys@^3.0.0:
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
|
||||||
|
integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
|
||||||
|
dependencies:
|
||||||
|
lodash._getnative "^3.0.0"
|
||||||
|
lodash.isarguments "^3.0.0"
|
||||||
|
lodash.isarray "^3.0.0"
|
||||||
|
|
||||||
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"
|
||||||
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
||||||
|
|
||||||
|
lodash.merge@^4.6.0:
|
||||||
|
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.omit@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
|
||||||
|
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
|
||||||
|
|
||||||
|
lodash.pairs@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9"
|
||||||
|
integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=
|
||||||
|
dependencies:
|
||||||
|
lodash.keys "^3.0.0"
|
||||||
|
|
||||||
|
lodash.pick@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
|
||||||
|
integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
|
||||||
|
|
||||||
lodash.sortby@^4.7.0:
|
lodash.sortby@^4.7.0:
|
||||||
version "4.7.0"
|
version "4.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||||
@ -5920,11 +6112,21 @@ lodash.templatesettings@^4.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lodash._reinterpolate "~3.0.0"
|
lodash._reinterpolate "~3.0.0"
|
||||||
|
|
||||||
|
lodash.union@^4.6.0:
|
||||||
|
version "4.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
|
||||||
|
integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
|
||||||
|
|
||||||
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"
|
||||||
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
||||||
|
|
||||||
|
lodash.without@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
|
||||||
|
integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=
|
||||||
|
|
||||||
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
|
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
|
||||||
version "4.17.11"
|
version "4.17.11"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
||||||
@ -5935,7 +6137,7 @@ loglevel@^1.4.1:
|
|||||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
||||||
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
||||||
|
|
||||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||||
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
||||||
@ -6072,6 +6274,14 @@ merge@^1.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||||
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
|
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
|
||||||
|
|
||||||
|
message-box@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/message-box/-/message-box-0.2.0.tgz#f93da217cb11f2a13cb501846fa713f21d6eabb7"
|
||||||
|
integrity sha512-SPLfVDEM2YcAgV2IB0B5vOGjvqXSSw7ZibEeXcff8HYpxyG1Uj+XjgnGUGyR1C0EQCvPI3MBx3p7opt2CIQ2hw==
|
||||||
|
dependencies:
|
||||||
|
lodash.merge "^4.6.0"
|
||||||
|
lodash.template "^4.4.0"
|
||||||
|
|
||||||
methods@~1.1.2:
|
methods@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||||
@ -6271,6 +6481,16 @@ moment@^2.23.0:
|
|||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
|
||||||
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
|
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
|
||||||
|
|
||||||
|
mongo-object@^0.1.3:
|
||||||
|
version "0.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/mongo-object/-/mongo-object-0.1.3.tgz#56b2a46d3ae4f0bdb1935241928fb444034b92e5"
|
||||||
|
integrity sha512-m3vs+a1JkvRXELJMe2ieMmBe03NUy6bctGjWicRhReYj8brDi0ojKHLKLmXWr/RupNaFP8Q7/x8xG8GpFtp9wg==
|
||||||
|
dependencies:
|
||||||
|
lodash.foreach "^4.5.0"
|
||||||
|
lodash.isempty "^4.4.0"
|
||||||
|
lodash.isobject "^3.0.2"
|
||||||
|
lodash.without "^4.4.0"
|
||||||
|
|
||||||
move-concurrently@^1.0.1:
|
move-concurrently@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
||||||
@ -6612,9 +6832,17 @@ obuf@^1.0.0, obuf@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
||||||
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
||||||
|
|
||||||
"ohif-core@link:../../ohif-core":
|
"ohif-core@git://github.com/OHIF/ohif-core#master":
|
||||||
version "0.0.0"
|
version "0.1.0"
|
||||||
uid ""
|
resolved "git://github.com/OHIF/ohif-core#130e621cf3c13817c1c120f91f0e9378b3eba993"
|
||||||
|
dependencies:
|
||||||
|
cornerstone-math "^0.1.7"
|
||||||
|
isomorphic-base64 "^1.0.2"
|
||||||
|
jquery "^3.3.1"
|
||||||
|
jquery.hotkeys "^0.1.0"
|
||||||
|
redux "^4.0.1"
|
||||||
|
simpl-schema "^1.5.3"
|
||||||
|
underscore "^1.9.1"
|
||||||
|
|
||||||
on-finished@~2.3.0:
|
on-finished@~2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
@ -6912,6 +7140,13 @@ path-to-regexp@0.1.7:
|
|||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
||||||
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
||||||
|
|
||||||
|
path-to-regexp@^1.7.0:
|
||||||
|
version "1.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
|
||||||
|
integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
|
||||||
|
dependencies:
|
||||||
|
isarray "0.0.1"
|
||||||
|
|
||||||
path-type@^1.0.0:
|
path-type@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
||||||
@ -7712,7 +7947,7 @@ prompts@^0.1.9:
|
|||||||
kleur "^2.0.1"
|
kleur "^2.0.1"
|
||||||
sisteransi "^0.1.1"
|
sisteransi "^0.1.1"
|
||||||
|
|
||||||
prop-types@^15.6.2:
|
prop-types@^15.6.1, prop-types@^15.6.2:
|
||||||
version "15.6.2"
|
version "15.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
||||||
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
||||||
@ -7947,6 +8182,48 @@ react-error-overlay@^5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
|
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
|
||||||
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
|
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
|
||||||
|
|
||||||
|
react-is@^16.3.2, react-is@^16.6.3:
|
||||||
|
version "16.6.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0"
|
||||||
|
integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA==
|
||||||
|
|
||||||
|
react-redux@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef"
|
||||||
|
integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.2.0"
|
||||||
|
hoist-non-react-statics "^3.2.1"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.4.0"
|
||||||
|
prop-types "^15.6.2"
|
||||||
|
react-is "^16.6.3"
|
||||||
|
|
||||||
|
react-router-dom@^4.3.1:
|
||||||
|
version "4.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
|
||||||
|
integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==
|
||||||
|
dependencies:
|
||||||
|
history "^4.7.2"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.3.1"
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
react-router "^4.3.1"
|
||||||
|
warning "^4.0.1"
|
||||||
|
|
||||||
|
react-router@^4.3.1:
|
||||||
|
version "4.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
|
||||||
|
integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==
|
||||||
|
dependencies:
|
||||||
|
history "^4.7.2"
|
||||||
|
hoist-non-react-statics "^2.5.0"
|
||||||
|
invariant "^2.2.4"
|
||||||
|
loose-envify "^1.3.1"
|
||||||
|
path-to-regexp "^1.7.0"
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
warning "^4.0.1"
|
||||||
|
|
||||||
react-scripts@^2.1.1:
|
react-scripts@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
|
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
|
||||||
@ -8002,10 +8279,9 @@ react-scripts@^2.1.1:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "1.2.4"
|
fsevents "1.2.4"
|
||||||
|
|
||||||
react-viewerbase@^0.1.2:
|
"react-viewerbase@git://github.com/OHIF/react-viewerbase#master":
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.1.2.tgz#3af6e31f72183b0cef4b9c36a3534234039e7b8f"
|
resolved "git://github.com/OHIF/react-viewerbase#851631857f037f8db32534a1d2a74dfa945429e4"
|
||||||
integrity sha512-ibhnYNe6eVavzZGPN9s/gzRJ7cnkYz8nGMesjH6nigVDdkYgQTCnHzC1laJRFQBgeoNlsd9uKPyvOwjD9ftVuA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
classnames "^2.2.6"
|
classnames "^2.2.6"
|
||||||
|
|
||||||
@ -8334,6 +8610,11 @@ resolve-from@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
||||||
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
|
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
|
||||||
|
|
||||||
|
resolve-pathname@^2.2.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
|
||||||
|
integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==
|
||||||
|
|
||||||
resolve-url@^0.2.1:
|
resolve-url@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||||
@ -8660,6 +8941,26 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||||
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
||||||
|
|
||||||
|
simpl-schema@^1.5.3:
|
||||||
|
version "1.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/simpl-schema/-/simpl-schema-1.5.3.tgz#c1d12ebddd7ff6dd32ace5e6364824ae506d4a9a"
|
||||||
|
integrity sha512-J24gSh39gBc3TYRFgaWx81bRf9unNML9u3dTAgxL1KI3F9JOv+Z29yEbosJFqmHfuuZ3K7ET/tTQKX4r4+f8/w==
|
||||||
|
dependencies:
|
||||||
|
clone "^2.1.1"
|
||||||
|
extend "^3.0.1"
|
||||||
|
lodash.every "^4.6.0"
|
||||||
|
lodash.find "^4.6.0"
|
||||||
|
lodash.findwhere "^3.1.0"
|
||||||
|
lodash.includes "^4.3.0"
|
||||||
|
lodash.isempty "^4.4.0"
|
||||||
|
lodash.isobject "^3.0.2"
|
||||||
|
lodash.omit "^4.5.0"
|
||||||
|
lodash.pick "^4.4.0"
|
||||||
|
lodash.union "^4.6.0"
|
||||||
|
lodash.uniq "^4.5.0"
|
||||||
|
message-box "^0.2.0"
|
||||||
|
mongo-object "^0.1.3"
|
||||||
|
|
||||||
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"
|
||||||
@ -9581,6 +9882,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"
|
||||||
|
|
||||||
|
value-equal@^0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
|
||||||
|
integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==
|
||||||
|
|
||||||
vary@~1.1.2:
|
vary@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||||
@ -9630,6 +9936,20 @@ walker@~1.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
makeerror "1.0.x"
|
makeerror "1.0.x"
|
||||||
|
|
||||||
|
warning@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
|
||||||
|
integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=
|
||||||
|
dependencies:
|
||||||
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
|
warning@^4.0.1:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607"
|
||||||
|
integrity sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==
|
||||||
|
dependencies:
|
||||||
|
loose-envify "^1.0.0"
|
||||||
|
|
||||||
watch@~0.18.0:
|
watch@~0.18.0:
|
||||||
version "0.18.0"
|
version "0.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
|
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user