this.handleWheel(e)}
>
@@ -73,7 +72,8 @@ class SiteAxis extends Component {
SiteAxis.defaultProps = {
x_pixel: 0,
site_size: 20,
- sender: "main"
+ sender: "main",
+ start_site: 0
};
export default SiteAxis;
diff --git a/src/components/Tree.jsx b/src/components/Tree.jsx
new file mode 100644
index 0000000..25f7d54
--- /dev/null
+++ b/src/components/Tree.jsx
@@ -0,0 +1,59 @@
+import React, { Component } from "react";
+import Phylotree from "react-phylotree";
+const $ = require("jquery");
+
+class Tree extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ div_id: props.id + "-tree-div"
+ };
+ }
+ componentDidMount() {
+ const { div_id } = this.state;
+ document
+ .getElementById(div_id)
+ .addEventListener("alignmentjs_wheel_event", function(e) {
+ $(`#${div_id}`).scrollTop(e.detail.y_pixel);
+ });
+ }
+ componentDidUpdate(nextProps) {
+ $(`#${this.state.div_id}`).scrollTop(this.props.y_pixel);
+ }
+ handleWheel(e) {
+ e.preventDefault();
+ this.props.scroll_broadcaster.handleWheel(e, this.props.sender);
+ }
+ render() {
+ const { width, height, tree, site_size } = this.props;
+ if (!tree) {
+ return
;
+ }
+ const number_of_tips = tree.get_tips().length,
+ tree_height = number_of_tips * site_size,
+ overflow = "scroll hidden";
+ return (
+
+ );
+ }
+}
+
+Tree.defaultProps = {
+ id: "alignmentjs",
+ site_size: 20,
+ sender: "main"
+};
+
+export default Tree;
diff --git a/src/helpers/colors.js b/src/helpers/colors.js
index 9e0d7ea..e0629ec 100644
--- a/src/helpers/colors.js
+++ b/src/helpers/colors.js
@@ -141,8 +141,10 @@ const nucleotide_colors = {
export {
nucleotide_color,
+ nucleotide_colors,
nucleotide_text_color,
nucleotide_difference,
amino_acid_color,
+ amino_acid_colors,
amino_acid_text_color
};
diff --git a/src/helpers/fasta.js b/src/helpers/fasta.js
index 2f5e4d5..d8b9d09 100644
--- a/src/helpers/fasta.js
+++ b/src/helpers/fasta.js
@@ -1,3 +1,5 @@
+import { phylotree } from "phylotree";
+
import sortFASTAAndNewick from "./jointSort.js";
function fastaParser(fasta) {
@@ -43,26 +45,24 @@ function fnaParser(fna, sortFASTA) {
i--;
current_char = fna[i];
}
- const parsed_fasta = fastaParser(fna.slice(0, i + 1)),
- newick = fna.slice(i + 1, fna.length - 1);
+ const sequence_data = fastaParser(fna.slice(0, i + 1)),
+ newick = fna.slice(i + 1, fna.length - 1),
+ tree = new phylotree(newick);
if (sortFASTA) {
- sortFASTAAndNewick(parsed_fasta, newick, 20);
+ sortFASTAAndNewick(sequence_data, tree);
}
- return {
- fasta: parsed_fasta,
- newick: newick
- };
+ return { sequence_data, tree };
}
function fnaToText(fna) {
return (
- fna.fasta
+ fna.sequence_data
.map(record => {
return ">" + record.header + "\n" + record.seq;
})
.join("\n") +
"\n" +
- fna.newick
+ fna.tree.newick_string
);
}
diff --git a/src/helpers/jointSort.js b/src/helpers/jointSort.js
index cbd6c89..d9e6d73 100644
--- a/src/helpers/jointSort.js
+++ b/src/helpers/jointSort.js
@@ -1,28 +1,6 @@
-/*
-const d3 = require("phylotree/node_modules/d3");
-require("phylotree");
-
-import fastaParser from "./fasta";
-
-function sortFASTAAndNewick(sequence_data, newick, size) {
- const number_of_sequences = sequence_data.length,
- phylotree = d3.layout
- .phylotree()
- .options({
- "left-right-spacing": "fit-to-size",
- "top-bottom-spacing": "fit-to-size",
- "show-scale": false,
- "align-tips": true,
- "show-labels": false,
- selectable: false
- })
- .size(size)
- .node_circle_size(0),
- tree_json = d3.layout.newick_parser(newick);
- phylotree(tree_json);
-
+function sortFASTAAndNewick(sequence_data, tree) {
var i = 0;
- phylotree.traverse_and_compute(function(n) {
+ tree.traverse_and_compute(function(n) {
var d = 1;
if (!n.name) {
n.name = "Node" + i++;
@@ -35,31 +13,18 @@ function sortFASTAAndNewick(sequence_data, newick, size) {
n["count_depth"] = d;
});
- phylotree.resort_children(
- function(a, b) {
- return a["count_depth"] - b["count_depth"];
- },
- null,
- null,
- true
- );
+ tree.resort_children(function(a, b) {
+ return a["count_depth"] - b["count_depth"];
+ });
- const ordered_leaf_names = phylotree
- .get_nodes(true)
- .filter(d3.layout.phylotree.is_leafnode)
- .map(d => d.name);
+ const ordered_leaf_names = tree.get_tips().map(d => d.data.name);
sequence_data.sort((a, b) => {
const a_index = ordered_leaf_names.indexOf(a.header),
b_index = ordered_leaf_names.indexOf(b.header);
return a_index - b_index;
});
-
- return {
- phylotree,
- tree_json
- };
+ return tree;
}
-module.exports = sortFASTAAndNewick;
-*/
+export default sortFASTAAndNewick;
diff --git a/src/library.js b/src/library.js
index 1e80890..79c96cf 100644
--- a/src/library.js
+++ b/src/library.js
@@ -1,4 +1,5 @@
import Alignment from "./Alignment.jsx";
+import BAMViewer from "./app/BAM.jsx";
import BaseAlignment from "./components/BaseAlignment.jsx";
import BaseSVGAlignment from "./components/BaseSVGAlignment.jsx";
import SiteAxis from "./components/SiteAxis.jsx";
@@ -7,10 +8,16 @@ import SequenceAxis from "./components/SequenceAxis.jsx";
import fastaParser from "./helpers/fasta";
import computeLabelWidth from "./helpers/computeLabelWidth";
import ScrollBroadcaster from "./helpers/ScrollBroadcaster";
-import colors from "./helpers/colors";
+import * as colors from "./helpers/colors";
+import PreventDefaultPatch from "./prevent_default_patch";
+
+require("./app/styles.scss");
+
+PreventDefaultPatch(document);
export default Alignment;
export {
+ BAMViewer,
BaseAlignment,
BaseSVGAlignment,
SiteAxis,
diff --git a/src/prevent_default_patch.js b/src/prevent_default_patch.js
new file mode 100644
index 0000000..4f4b228
--- /dev/null
+++ b/src/prevent_default_patch.js
@@ -0,0 +1,52 @@
+/* Temporary fix for a breaking change in Chrome to React
+ * See https://github.com/facebook/react/issues/14856
+ */
+
+export default function(document) {
+ const EVENTS_TO_MODIFY = [
+ "touchstart",
+ "touchmove",
+ "touchend",
+ "touchcancel",
+ "wheel"
+ ];
+
+ const originalAddEventListener = document.addEventListener.bind();
+ document.addEventListener = (type, listener, options, wantsUntrusted) => {
+ let modOptions = options;
+ if (EVENTS_TO_MODIFY.includes(type)) {
+ if (typeof options === "boolean") {
+ modOptions = {
+ capture: options,
+ passive: false
+ };
+ } else if (typeof options === "object") {
+ modOptions = {
+ ...options,
+ passive: false
+ };
+ }
+ }
+
+ return originalAddEventListener(type, listener, modOptions, wantsUntrusted);
+ };
+
+ const originalRemoveEventListener = document.removeEventListener.bind();
+ document.removeEventListener = (type, listener, options) => {
+ let modOptions = options;
+ if (EVENTS_TO_MODIFY.includes(type)) {
+ if (typeof options === "boolean") {
+ modOptions = {
+ capture: options,
+ passive: false
+ };
+ } else if (typeof options === "object") {
+ modOptions = {
+ ...options,
+ passive: false
+ };
+ }
+ }
+ return originalRemoveEventListener(type, listener, modOptions);
+ };
+}
diff --git a/yarn.lock b/yarn.lock
index b749abc..9b51b46 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -680,6 +680,13 @@
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.4.tgz#cb7d1ad7c6d65676e66b47186577930465b5271b"
+ integrity sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==
+ dependencies:
+ regenerator-runtime "^0.13.2"
+
"@babel/runtime@^7.3.4", "@babel/runtime@^7.4.3":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.4.tgz#dc2e34982eb236803aa27a07fea6857af1b9171d"
@@ -774,6 +781,28 @@
long "^4.0.0"
pako "^1.0.10"
+"@react-bootstrap/react-popper@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@react-bootstrap/react-popper/-/react-popper-1.2.1.tgz#4edf4851d5b4dcf2eb6b264ebbed1a7b7654177b"
+ integrity sha512-4l3q7LcZEhrSkI4d3Ie3g4CdrXqqTexXX4PFT45CB0z5z2JUbaxgRwKNq7r5j2bLdVpZm+uvUGqxJw8d9vgbJQ==
+ dependencies:
+ babel-runtime "6.x.x"
+ create-react-context "^0.2.1"
+ popper.js "^1.14.4"
+ prop-types "^15.6.1"
+ typed-styles "^0.0.5"
+ warning "^3.0.0"
+
+"@restart/context@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02"
+ integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==
+
+"@restart/hooks@^0.3.0":
+ version "0.3.7"
+ resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.7.tgz#8d2768be4822260db7ce074f23ee70d19317fba1"
+ integrity sha512-6jcSoS7VIJf/KMN4AoSwWyZfvl3pFwIrZAD0krvcawnKlMQ68mFkHLjZskPnp0nP7oTMnirNIgn4flIegD+sJw==
+
"@samverschueren/stream-to-observable@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -1288,7 +1317,7 @@ arrify@^1.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-asap@^2.0.0:
+asap@^2.0.0, asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
@@ -1563,7 +1592,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+babel-runtime@6.x.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -2299,6 +2328,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+classnames@^2.2.6:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
+ integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
clean-css@4.2.x:
version "4.2.1"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
@@ -2644,6 +2678,11 @@ core-js-pure@3.1.3:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.3.tgz#4c90752d5b9471f641514f3728f51c1e0783d0b5"
integrity sha512-k3JWTrcQBKqjkjI0bkfXS0lbpWPxYuHWfMMjC1VDmzU4Q58IwSbuXSo99YO/hUHlw/EB4AlfA2PVxOGkrIq6dA==
+core-js@^1.0.0:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+ integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
+
core-js@^2.4.0, core-js@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4"
@@ -2712,6 +2751,22 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+create-react-context@<=0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca"
+ integrity sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==
+ dependencies:
+ fbjs "^0.8.0"
+ gud "^1.0.0"
+
+create-react-context@^0.2.1:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
+ integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==
+ dependencies:
+ fbjs "^0.8.0"
+ gud "^1.0.0"
+
cross-fetch@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.2.tgz#b7136491967031949c7f86b15903aef4fa3f1768"
@@ -3505,6 +3560,13 @@ dom-converter@~0.2:
dependencies:
utila "~0.4"
+dom-helpers@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8"
+ integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -4254,6 +4316,19 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
+fbjs@^0.8.0:
+ version "0.8.17"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
+ integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.18"
+
figgy-pudding@^3.1.0, figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
@@ -4793,6 +4868,11 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+gud@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
+ integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
+
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
@@ -5686,7 +5766,7 @@ is-retry-allowed@^1.0.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=
-is-stream@^1.0.0, is-stream@^1.1.0:
+is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -5752,6 +5832,14 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+isomorphic-fetch@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
+ dependencies:
+ node-fetch "^1.0.1"
+ whatwg-fetch ">=0.10.0"
+
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -6340,6 +6428,11 @@ jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1:
dependencies:
array-includes "^3.0.3"
+keycode@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04"
+ integrity sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=
+
killable@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@@ -7179,6 +7272,14 @@ node-fetch@2.3.0:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==
+node-fetch@^1.0.1:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
+ dependencies:
+ encoding "^0.1.11"
+ is-stream "^1.0.1"
+
node-forge@0.7.5:
version "0.7.5"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
@@ -8085,10 +8186,10 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-phylotree@1.0.0-alpha.14:
- version "1.0.0-alpha.14"
- resolved "https://registry.yarnpkg.com/phylotree/-/phylotree-1.0.0-alpha.14.tgz#146f79d7e04dc7fbd4b731e6716b89a5791c246b"
- integrity sha512-39IIQPhZeM569fSBXXhzdJNBPpZHdlrF75yhJ8s/4Uxi2PV+DN/C0Fy6FqTvN+h0WxkexVWhmpbYacOX/dqn1Q==
+phylotree@1.0.0-alpha.17:
+ version "1.0.0-alpha.17"
+ resolved "https://registry.yarnpkg.com/phylotree/-/phylotree-1.0.0-alpha.17.tgz#9f7eb61cf991aa01da54e67ddc21ba1f4ce37c2c"
+ integrity sha512-AK8Y+IKADZPV20wZ49Amq7brM6KGZpKMUKDza0OUYbZS0pqbSD7e/Vy1wNVcAFbuVD7H/P5Vua6A2fGWPGAz/Q==
dependencies:
bootstrap "4"
commander "^2.19.0"
@@ -8176,7 +8277,7 @@ popper.js@^1.14.3:
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.6.tgz#ab20dd4edf9288b8b3b6531c47c361107b60b4b0"
integrity sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA==
-popper.js@^1.14.6:
+popper.js@^1.14.4, popper.js@^1.14.7:
version "1.15.0"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz#5560b99bbad7647e9faa475c6b8056621f5a4ff2"
integrity sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==
@@ -8577,6 +8678,13 @@ promise-retry@^1.1.1:
err-code "^1.0.0"
retry "^0.10.0"
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+ dependencies:
+ asap "~2.0.3"
+
prompts@^0.1.9:
version "0.1.14"
resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2"
@@ -8592,7 +8700,15 @@ promzard@^0.3.0:
dependencies:
read "1"
-prop-types@^15.5.10, prop-types@^15.6.2:
+prop-types-extra@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f"
+ integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==
+ dependencies:
+ react-is "^16.3.2"
+ warning "^3.0.0"
+
+prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -8796,6 +8912,32 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
+react-bootstrap@^1.0.0-beta.9:
+ version "1.0.0-beta.9"
+ resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.0.0-beta.9.tgz#3d9e429fd3d7a81db241aa824646c73e99a8566c"
+ integrity sha512-M0BYLuuUdMITJ16+DDDb1p4vWV87csEBi/uOxZYODuDZh7hvbrJVahfvPXcqeqq4eEpNL+PKSlqb9fNaY0HZyA==
+ dependencies:
+ "@babel/runtime" "^7.4.2"
+ "@react-bootstrap/react-popper" "1.2.1"
+ "@restart/context" "^2.1.4"
+ "@restart/hooks" "^0.3.0"
+ classnames "^2.2.6"
+ dom-helpers "^3.4.0"
+ invariant "^2.2.4"
+ keycode "^2.2.0"
+ popper.js "^1.14.7"
+ prop-types "^15.7.2"
+ prop-types-extra "^1.1.0"
+ react-overlays "^1.2.0"
+ react-transition-group "^4.0.0"
+ uncontrollable "^6.1.0"
+ warning "^4.0.3"
+
+react-context-toolbox@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/react-context-toolbox/-/react-context-toolbox-2.0.2.tgz#35637287cb23f801e6ed802c2bb7a97e1f04e3fb"
+ integrity sha512-tY4j0imkYC3n5ZlYSgFkaw7fmlCp3IoQQ6DxpqeNHzcD0hf+6V+/HeJxviLUZ1Rv1Yn3N3xyO2EhkkZwHn0m1A==
+
react-dom@^16.2.0:
version "16.6.3"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.3.tgz#8fa7ba6883c85211b8da2d0efeffc9d3825cccc0"
@@ -8816,27 +8958,53 @@ react-dom@^16.6.3:
prop-types "^15.6.2"
scheduler "^0.13.6"
-react-is@^16.8.1:
+react-is@^16.3.2, react-is@^16.8.1:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
-react-phylotree@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/react-phylotree/-/react-phylotree-0.0.1.tgz#ed901740a4e6ed71bc799bad89f88d46fa021b49"
- integrity sha512-OEt4HI/4IuLMIAyskTwpNl7R1E7drAOlaSLIHYAHSnRfw3U5owgnuk6a1zVrTp4/38HG5xW04U0Dw+W2kwJMeg==
+react-overlays@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-1.2.0.tgz#205368eeb0a5fb0b7f9b717fa7a12d518500abdb"
+ integrity sha512-i/FCV8wR6aRaI+Kz/dpJhOdyx+ah2tN1RhT9InPrexyC4uzf3N4bNayFTGtUeQVacj57j1Mqh1CwV60/5153Iw==
+ dependencies:
+ classnames "^2.2.6"
+ dom-helpers "^3.4.0"
+ prop-types "^15.6.2"
+ prop-types-extra "^1.1.0"
+ react-context-toolbox "^2.0.2"
+ react-popper "^1.3.2"
+ uncontrollable "^6.0.0"
+ warning "^4.0.2"
+
+react-phylotree@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/react-phylotree/-/react-phylotree-0.1.0.tgz#c2747ed9d56a2650035a98473a4f5b16df548170"
+ integrity sha512-62VIn6ER+mu4cunAqgni/GEPspHbmwr4OEVRxMNeExeRMuHA6/2Avtzn8n9bSQVjZCx494IU/lTtjvQJrFP5/Q==
dependencies:
"@fortawesome/fontawesome-svg-core" "^1.2.10"
"@fortawesome/free-solid-svg-icons" "^5.6.1"
"@fortawesome/react-fontawesome" "^0.1.3"
bootstrap "^4.1.3"
d3 "^5.7.0"
- jquery "^3.3.1"
- phylotree "1.0.0-alpha.14"
- popper.js "^1.14.6"
+ phylotree "1.0.0-alpha.17"
react "^16.6.3"
+ react-bootstrap "^1.0.0-beta.9"
react-dom "^16.6.3"
react-router-dom "^4.3.1"
+ underscore "^1.9.1"
+
+react-popper@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.3.tgz#2c6cef7515a991256b4f0536cd4bdcb58a7b6af6"
+ integrity sha512-ynMZBPkXONPc5K4P5yFWgZx5JGAUIP3pGGLNs58cfAPgK67olx7fmLp+AdpZ0+GoQ+ieFDa/z4cdV6u7sioH6w==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+ create-react-context "<=0.2.2"
+ popper.js "^1.14.4"
+ prop-types "^15.6.1"
+ typed-styles "^0.0.7"
+ warning "^4.0.2"
react-router-dom@^4.3.1:
version "4.3.1"
@@ -8863,6 +9031,16 @@ react-router@^4.3.1:
prop-types "^15.6.1"
warning "^4.0.1"
+react-transition-group@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.2.1.tgz#61fc9e36568bff9a1fe4e60fae323c8a6dbc0680"
+ integrity sha512-IXrPr93VzCPupwm2O6n6C2kJIofJ/Rp5Ltihhm9UfE8lkuVX2ng/SUUl/oWjblybK9Fq2Io7LGa6maVqPB762Q==
+ dependencies:
+ "@babel/runtime" "^7.4.5"
+ dom-helpers "^3.4.0"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
react@^16.2.0, react@^16.6.3:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
@@ -9667,7 +9845,7 @@ set-value@^2.0.0:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setimmediate@^1.0.4:
+setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
@@ -10575,11 +10753,26 @@ type-is@~1.6.16:
media-typer "0.3.0"
mime-types "~2.1.18"
+typed-styles@^0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.5.tgz#a60df245d482a9b1adf9c06c078d0f06085ed1cf"
+ integrity sha512-ht+rEe5UsdEBAa3gr64+QjUOqjOLJfWLvl5HZR5Ev9uo/OnD3p43wPeFSB1hNFc13GXQF/JU1Bn0YHLUqBRIlw==
+
+typed-styles@^0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9"
+ integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+ua-parser-js@^0.7.18:
+ version "0.7.20"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
+ integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==
+
uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
@@ -10620,7 +10813,15 @@ umask@~1.1.0:
resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=
-underscore@1.x, underscore@^1.8.3:
+uncontrollable@^6.0.0, uncontrollable@^6.1.0:
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-6.2.3.tgz#e7dba0d746e075122ed178f27ad2354d343196c7"
+ integrity sha512-VgOAoBU2ptCL2bfTG2Mra0I8i1u6Aq84AFonD5tmCAYSfs3hWvr2Rlw0q2ntoxXTHjcQOmZOh3FKaN+UZVyREQ==
+ dependencies:
+ "@babel/runtime" "^7.4.5"
+ invariant "^2.2.4"
+
+underscore@1.x, underscore@^1.8.3, 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==
@@ -10928,6 +11129,13 @@ warning@^4.0.1:
dependencies:
loose-envify "^1.0.0"
+warning@^4.0.2, warning@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ dependencies:
+ loose-envify "^1.0.0"
+
watch@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
@@ -11097,7 +11305,7 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
dependencies:
iconv-lite "0.4.24"
-whatwg-fetch@3.0.0:
+whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==