diff --git a/package.json b/package.json index 5c0dd485ff284c9c3d40d2d7bf8e573c1ed5575d..5c61f8c5ae66a50a443d20690736f47b23c8f5d1 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "dangerously-set-html-content": "^1.1.0", "dompurify": "^3.1.5", "framer-motion": "^11.2.13", + "markmap": "^0.6.1", "markmap-common": "^0.17.0", "markmap-lib": "^0.17.0", "markmap-toolbar": "^0.17.0", diff --git a/src/App/App.css b/src/App/App.css index dc96d72bf0038810e72ab86ab5c3286d5ffd8ddd..9ac10bbe271b9f35d84f950802fd5cf42ec1c8a3 100644 --- a/src/App/App.css +++ b/src/App/App.css @@ -42,6 +42,8 @@ --warning-code-bg-color: var(--lightorange); --markmap-a-color: var(--text-primary) !important; + + --node-size: 60px; } @@ -2810,3 +2812,236 @@ span{ width: 100%; } +.markmap-link { + fill: none; +} + +.markmap-node > circle { + fill: var(--background); +} + + +.mindmap { + position:relative; + top: 1vw; + left: 0; + right: 0; + width: auto; + height: auto; + margin: 0 auto; + padding: calc(var(--node-size) / 2); + text-align: center; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + + .mindmap:before { + content: ''; + display: inline-block; + vertical-align: middle; + height: 100%; + width: 0; +} + + .node { + position: relative; + display: inline-block; + vertical-align: middle; + height: var(--node-size); + width: calc(var(--node-size) * 2); + margin: 0.25vw 0; + text-align: center; + line-height: var(--node-size); + border: 0.1vw solid var(--text-primary); + border-radius: 5%; + background: var(--background); + cursor: pointer; + font-size: small; + -webkit-transition: all .2s ease; + transition: all .2s ease; + z-index: 5; +} + + +.node_root { + height: calc(var(--node-size) * 2); + width: calc(var(--node-size) * 2); + border: 0; + border: 0.1vw solid var(--text-primary); + border-radius: 50%; + text-align: center; + line-height: calc(var(--node-size) * 2); + font-size: 1.1em; +} + + + +.node_root img{ + width: calc(var(--node-size) * 1.5); + height: calc(var(--node-size) * 1.5); + -o-object-fit: cover; + object-fit: cover; + border-radius: 50%; +} + + + + +.children { + position: relative; + list-style: none; + text-align: left; + padding: 0 0 0 6px; + display: inline-block; + vertical-align: middle; +} + + +.children:before { + content: ''; + position: absolute; + top: 50%; + left: -2px; + width: 8px; + border-top: 1px solid var(--text-primary); +} + +.children_item { + position: relative; + padding: 0 0 0 10px; + border-left: 1px solid var(--text-primary); +} + +.children_item:first-child, +.children_item:last-child { + border-left: 1px solid transparent; +} + +.children_item:before { + content: ''; + width: 10px; + border-top: 1px solid var(--text-primary); + position: absolute; + top: 50%; + left: 0; +} +.node_text { + overflow: hidden; + z-index: 7; + max-width: inherit; +} +.children_item:first-child:before { + left: -1px; + bottom: 0; + width: 11px; + border-radius: 4px 0 0 0; + border-left: 1px solid var(--text-primary); +} + +.children_item:last-child:before { + left: -1px; + top: 0; + width: 11px; + bottom: 50%; + border-radius: 0 0 0 4px; + border: 0; + border-left: 1px solid var(--text-primary); + border-bottom: 1px solid var(--text-primary); +} + +.children_item:first-child:last-child:before { + top: 50%; + bottom: auto; + border: 0; + border-radius: 0; + border-top: 1px solid var(--text-primary); +} + +.children_leftbranch, +.children_leftbranch .children { + direction: rtl; + text-align: right; + padding: 0 6px 0 0; +} + +.children_leftbranch:before, +.children_leftbranch .children:before { + left: auto; + right: -2px; +} + +.children_leftbranch .children_item { + padding: 0 10px 0 0; + border: 0; + border-right: 1px solid var(--text-primary); +} + +.children_leftbranch .children_item:first-child, +.children_leftbranch .children_item:last-child { + border-right: 1px solid transparent; +} + +.children_leftbranch .children_item:before { + top: 50%; + left: auto; + right: 0; +} + + +.children_leftbranch .children_item:first-child:before { + right: -1px; + border: 0; + border-radius: 0 4px 0 0; + border-top: 1px solid var(--text-primary); + border-right: 1px solid var(--text-primary); +} + +.children_leftbranch .children_item:last-child:before { + right: -1px; + top: 0; + bottom: 50%; + border-radius: 0 0 4px 0; + border: 0; + border-right: 1px solid var(--text-primary); + border-bottom: 1px solid var(--text-primary); +} + +.children_leftbranch .children_item:first-child:last-child:before { + top: 50%; + bottom: auto; + border: 0; + border-radius: 0; + border-top: 1px solid var(--text-primary); +} + + +/* .children .node{ + background: --webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.15)), to(rgba(0, 0, 0, 0.15))) var(--background); + background: linear-gradient(to top, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)) var(--accent-primary); +} + +.children .children .node{ + background: --webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.30)), to(rgba(0, 0, 0, 0.30))) var(--background); + background: linear-gradient(to top, rgba(0, 0, 0, 0.30), rgba(0, 0, 0, 0.30)) var(--accent-primary); +} + +.children .children .children .node{ + background: --webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.45)), to(rgba(0, 0, 0, 0.45))) var(--background); + background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)) var(--accent-primary); +} + +.children .children .children .children .node{ + background: --webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.60)), to(rgba(0, 0, 0, 0.60))) var(--background); + background: linear-gradient(to top, rgba(0, 0, 0, 0.60), rgba(0, 0, 0, 0.60)) var(--accent-primary); +} + */ + +#L1, #R1{ + line-height: calc(var(--node-size) / 4); + text-align: center; + vertical-align: middle; + padding-top: 15px; +} \ No newline at end of file diff --git a/src/App/App.tsx b/src/App/App.tsx index 119fa60ae94d8fb3f3705a9d4a26e58c0408800d..1d351f966bd47e91d0488e601e2b83b54ea780a6 100644 --- a/src/App/App.tsx +++ b/src/App/App.tsx @@ -36,7 +36,7 @@ const App = () => { const timer = setTimeout(() => { console.log("Hiding loading screen"); setIsLoading(false); - }, 4000); // Adjust the delay as needed, Update the loading state after 3 seconds + }, 0); // Adjust the delay as needed, Update the loading state after 3 seconds return () => { console.log("Cleaning up timer"); diff --git a/src/components/Buttons.tsx b/src/components/Buttons.tsx index 48d76f321c3dee01d18d57e2ba5e074154d5c3b6..720ccec6a1a956f0cc6714281138a68ebc8df751 100644 --- a/src/components/Buttons.tsx +++ b/src/components/Buttons.tsx @@ -1,5 +1,4 @@ import { Link } from "react-router-dom"; -import { openCity } from "./HorizontalTimeline"; interface UrlButtonProps{ href: string, @@ -113,8 +112,9 @@ export function TabButton({classy, name, closing, opentype, type}:TabButtonProps } export function HPMoreButton({name}: {name: string}){ + let c = "timelinepersontabs" return( - <button className="tablinks hp-more-button" onClick={openCity({cityName: name})}> More</button> + <button className="tablinks hp-more-button" onClick={openTab({cityName: name, cla: c})}> More</button> ) } diff --git a/src/components/HorizontalTimeline.tsx b/src/components/HorizontalTimeline.tsx index b9d6efe4a634149c5882d69427f44b30b5065659..4d5f7064a129bffa13b968adfd14db8f2ac028f6 100644 --- a/src/components/HorizontalTimeline.tsx +++ b/src/components/HorizontalTimeline.tsx @@ -164,27 +164,61 @@ function TimeItem({tag, title, children, pic, author, tabid}: ItemProps){ let data = [ { - title: "Deutlich längerer Titel zum Test", + title: "First Impression", pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", tag: "Patient", - author: "author", - tabid: "Max", - text: "Text", - }, - { - title: "Deutlich längerer Titel zum Test", - pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", - tag: "Academia", - author: "author", - tabid: "Weber", - text: "Text", - }, + author: "Max Beckmann", + tabid: "InvMax", + text: " "}, { - title: "Deutlich längerer Titel zum Test" , + title: "Physiotherapie" , pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", tag: "Medical Professional", - author: "a", - tabid: "Physio", + author: "Katrin Westhoff", + tabid: "InvWesthoff", text: "Text", - } - ] \ No newline at end of file + }, + { + title: "Deutlich längerer Titel zum Test" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Medical Professional", + author: "Dr. Christian Olariu", + tabid: "InvOlariu", + text: "Text", + },{ + title: "Approach??" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Academia", + author: "Prof. Dr. Stefan Hammer", + tabid: "InvHammer", + text: "Text", + },{ + title: "Approach??" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Academia", + author: "Prof. Dr. Christoph Weber", + tabid: "InvWeber", + text: "Text", + }, + { + title: "First Steps in LNP" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Academia", + author: "Dr. Katharina Kolonko", + tabid: "InvKolonko", + text: "Text", + },{ + title: "Deutlich längerer Titel zum Test" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Industry", + author: "RNale", + tabid: "InvRNale", + text: "Text", + },{ + title: "Deutlich längerer Titel zum Test" , + pic: "https://static.igem.wiki/teams/5247/placeholders/placehilderperson.jpeg", + tag: "Academia", + author: "Mattijs Bulcaen", + tabid: "InvBulcaen", + text: "Text", + }] \ No newline at end of file diff --git a/src/components/mindmap/mindmap-hooks.tsx b/src/components/mindmap/mindmap-hooks.tsx index ac556051dc002ea05fc2b07c794d5872cf4a8d08..30fa198b84c085c275907a3906720add48f6c2cf 100644 --- a/src/components/mindmap/mindmap-hooks.tsx +++ b/src/components/mindmap/mindmap-hooks.tsx @@ -1,9 +1,8 @@ - import React, { useState, useRef, useEffect } from 'react'; import { Markmap } from 'markmap-view'; import { transformer } from './mindmap'; - +// Define your initial value for the Markmap const initValue = ` # Stakeholders - Patients @@ -15,14 +14,15 @@ const initValue = ` export default function MarkmapHooks() { const [value] = useState(initValue); - // Ref for SVG element - const refSvg = useRef<SVGSVGElement>(null); // Initialize with null - // Ref for markmap object - const refMm = useRef<Markmap | null>(null); // Initialize with null + const refSvg = useRef<SVGSVGElement>(null); // Ref for SVG element + const refMm = useRef<Markmap | null>(null); // Ref for Markmap object useEffect(() => { - // Create markmap and save to refMm - if (refMm.current || !refSvg.current) return; // Add null check + // Ensure this code runs only on the client side + if (typeof document === 'undefined') return; + + // Create Markmap and save it to refMm + if (refMm.current || !refSvg.current) return; const mm = Markmap.create(refSvg.current); refMm.current = mm; @@ -42,12 +42,12 @@ export default function MarkmapHooks() { }, [refSvg.current]); useEffect(() => { - // Update data for markmap once value is changed + // Update data for Markmap once value changes const mm = refMm.current; if (!mm) return; const { root } = transformer.transform(value); mm.setData(root); - mm.fit(); + mm.fit(); }, [refMm.current, value]); return ( diff --git a/src/contents/human-practices.tsx b/src/contents/human-practices.tsx index 35313372cdffd4cebc49aa1b03eeaf8b4128ad1f..7660c4f32cfaf75271c780ef2fb5b54d75265484 100644 --- a/src/contents/human-practices.tsx +++ b/src/contents/human-practices.tsx @@ -16,6 +16,7 @@ import { BlockQuoteB } from "../components/Quotes"; + let timelinebuttonrowdata = [ { buttonname: "All", @@ -50,7 +51,7 @@ let timelinepersontabs =[ <h3>Max</h3> <p></p> </>, - cssname: "Max" + cssname: "InvMax" }, { node: <> @@ -72,15 +73,17 @@ let timelinepersontabs =[ }, { node: <> - + <h3>Rnhale</h3> + <p></p> </>, - cssname: "Rnhale" + cssname: "InvRNale" }, { node: <> - + <h3>Mattijs</h3> + <p></p> </>, - cssname: "Mattjis" + cssname: "InvBulcaen" }, { node: <> @@ -90,27 +93,31 @@ let timelinepersontabs =[ }, { node: <> - + <h3>Katrin</h3> + <p></p> </>, - cssname: "Physio" + cssname: "InvWesthoff" }, { node: <> - + <h3>Olariu</h3> + <p></p> </>, - cssname: "Olariu" + cssname: "InvOlariu" }, { node: <> - + <h3>Kolonko</h3> + <p></p> </>, - cssname: "Eltern" + cssname: "InvKolonko" }, { node: <> - + <h3>Weber</h3> + <p></p> </>, - cssname: "Weber" + cssname: "InvWeber" }, ] // die height für className="timeline row align-items-center" muss angepasst werden, damit die Boxen höher sein können @@ -127,7 +134,9 @@ export function HumanPractices() { <div className="center"> <h3 className="col personalstyleone">Overview</h3> </div> - + <div className="col" style={{position: "relative", height: "fit-content"}}> + <MindMapTwo></MindMapTwo> + </div> <div className="center"> <h3 className="col personalstyleone">Timeline</h3> </div> @@ -153,5 +162,222 @@ export function HumanPractices() { } +function MindMap(){ + return( + <svg className="flex-1 markmap mm-tsu1wj-1"> + <g transform="translate(7.5,75) scale(1.0288808664259927)"> + {/* Sec A */} + <path className="markmap-link" data-depth="2" data-path="1.2" d="M94,10C134,10,134,-27.5,174,-27.5" stroke="var(--accen-secondary)" stroke-width="1.5"></path> + {/* Sec B */} + <path className="markmap-link" data-depth="2" data-path="1.3" d="M94,10C134,10,134,-2.5,174,-2.5" stroke="rgb(44, 160, 44)" stroke-width="1.5"></path> + <path className="markmap-link" data-depth="2" data-path="1.4" d="M94,10C134,10,134,22.5,174,22.5" stroke="rgb(214, 39, 40)" stroke-width="1.5"></path> + <path className="markmap-link" data-depth="2" data-path="1.5" d="M94,10C134,10,134,47.5,174,47.5" stroke="rgb(148, 103, 189)" stroke-width="1.5"></path> + <g data-depth="2" data-path="1.5" transform="translate(174, 27.5)" className="markmap-node"> + <line x1="-1" x2="105" y1="20" y2="20" stroke="rgb(148, 103, 189)" stroke-width="1.5"></line> + <foreignObject className="markmap-foreign" x="8" y="0" style={{opacity: "1"}} width="87" height="20"> + <div>interactive</div> + </foreignObject> + </g> + <g data-depth="2" data-path="1.4" transform="translate(174, 2.5)" className="markmap-node"> + <line x1="-1" x2="57" y1="20" y2="20" stroke="rgb(214, 39, 40)" stroke-width="1.5"></line> + <foreignObject className="markmap-foreign" x="8" y="0" style={{opacity: "1"}} width="39" height="20"> + <div>easy</div> + </foreignObject> + </g> + {/* Sec B */} + <g data-depth="2" data-path="1.3" transform="translate(174, -22.5)" className="markmap-node"> + <line x1="-1" x2="190" y1="20" y2="20" stroke="rgb(44, 160, 44)" stroke-width="1.5"></line> + <foreignObject className="markmap-foreign" x="8" y="0" style={{opacity: "1"}} width="172" height="20"> + <div>Medical Professionals</div> + </foreignObject> + </g> + {/* Sec. A */} + <g data-depth="2" data-path="1.2" transform="translate(174, -47.5)" className="markmap-node"> + <line x1="-1" x2="90" y1="20" y2="20" stroke="var(--accen-secondary)" stroke-width="1.5"></line> + <foreignObject className="markmap-foreign" x="8" y="0" style={{opacity: "1"}} width="72" height="20"> + <div>Patients</div> + </foreignObject> + </g> + {/* First */} + <g data-depth="1" data-path="1" transform="translate(0,-10)" className="markmap-node"> + <line x1="-1" x2="96" y1="20" y2="20" stroke="black" stroke-width="2"></line> + <circle stroke-width="1.5" cx="94" cy="20" r="6" stroke="black" fill="var(--background)"></circle> + <foreignObject className="markmap-foreign" x="8" y="0" style={{opacity: "1"}} width="78" height="20"> + <div>markmap</div> + </foreignObject> + </g> + </g> + </svg> + ) +} + +function MindMapTwo(){ + return( + <div className="mindmap"> + + {/* <!--LEFT--> */} + <ol className="children children_leftbranch"> + <li className="children_item"> + <div className="node" > + <div id="L1" className="node_text"> Medical <br/> Professionals</div> + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div id="L1.1" className="node_text">Katrin</div> + </div> + </li> + <li className="children_item"> + <div className="node"> + <div id="L1.2" className="node_text">Cristian</div> + </div> + </li> + </ol> + </li> + <li className="children_item"> + <div className="node"> + <div id="L2" className="node_text">Industry</div> + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.1</div> + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.2</div> + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.3</div> + </div> + </li> + </ol> + </li> + <li className="children_item"> + <div className="node"> + <div id="L3" className="node_text">iGem</div> + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.1</div> + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.2</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">L2.3</div> + + </div> + </li> + </ol> + </li> + </ol> + + {/* <!--CENTER--> */} + <div className="node node_root"> + <div className="node_text">Stakeholders</div> + </div> + + {/* <!--RIGHT--> */} + <ol className="children children_rightbranch"> + <li className="children_item"> + <div className="node"> + <div id="R1" className="node_text">Patients & <br/> next of kin </div> + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div id="R1.1" className="node_text">Max</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div id="R1.2" className="node_text">Julia</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div id="R1.3" className="node_text">Joshua</div> + + </div> + </li> + </ol> + </li> + <li className="children_item"> + <div className="node"> + <div id="R2" className="node_text">Academia</div> + + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div id="R2.1" className="node_text">Mattijs</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">R2.2</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">R2.3</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">R2.4</div> + + </div> + </li> + </ol> + </li> + <li className="children_item"> + <div className="node"> + <div id="R3" className="node_text">Society</div> + + </div> + <ol className="children"> + <li className="children_item"> + <div className="node"> + <div id="R3.1" className="node_text">Krankk.</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div id="R3.2" className="node_text">Ethik</div> + + </div> + </li> + <li className="children_item"> + <div className="node"> + <div className="node_text">R3.3</div> + + </div> + </li> + </ol> + </li> + </ol> + </div> + + + + ) +} diff --git a/yarn.lock b/yarn.lock index 354976210fe43def6d085e0b99d03ff70b0fa452..5e82349b4b95354e9695dd2abbf8988770401943 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1596,6 +1596,13 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" +argparse@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" @@ -1606,6 +1613,13 @@ array-union@^2.1.0: resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +autolinker@~0.28.0: + version "0.28.1" + resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" + integrity sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ== + dependencies: + gulp-header "^1.7.1" + babel-plugin-macros@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" @@ -1838,6 +1852,13 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concat-with-sourcemaps@*: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" @@ -1853,6 +1874,11 @@ convert-source-map@^2.0.0: resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" @@ -2119,6 +2145,11 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" +d3@3.5.6: + version "3.5.6" + resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.6.tgz#9451c651ca733fb9672c81fb7f2655164a73a42d" + integrity sha512-i1x8Q3lGerBazuvWsImnUKrjfCdBnRnk8aq7hqOK/5+CAWJTt/zr9CaR1mlJf17oH8l/v4mOaDLU+F/l2dq1Vg== + d3@^7.8.5: version "7.9.0" resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" @@ -2665,6 +2696,15 @@ graphemer@^1.4.0: resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +gulp-header@^1.7.1: + version "1.8.12" + resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" + integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== + dependencies: + concat-with-sourcemaps "*" + lodash.template "^4.4.0" + through2 "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" @@ -2772,7 +2812,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2835,6 +2875,11 @@ is-path-inside@^3.0.3: resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -2947,6 +2992,11 @@ lodash-es@^4.17.21: resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" @@ -2967,6 +3017,21 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.template@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -3107,6 +3172,14 @@ markmap-view@0.17.0: d3 "^7.8.5" d3-flextree "^2.1.2" +markmap@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/markmap/-/markmap-0.6.1.tgz#c43c248a8a403d93012698c152efd1ba9abd670f" + integrity sha512-pjlp/nAisQ8/YxPhW7i+eDjtMlUQF6Rr27qzt+EiSYUYzYFkq9HEKHso1KgJRocexLahqr2+QO0umXDiGkfIPg== + dependencies: + d3 "3.5.6" + remarkable "1.7.4" + mdurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" @@ -3402,6 +3475,11 @@ prismjs@^1.29.0: resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + prop-types-extra@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz" @@ -3592,6 +3670,19 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -3604,6 +3695,14 @@ regenerator-runtime@^0.14.0: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== +remarkable@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" + integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== + dependencies: + argparse "^1.0.10" + autolinker "~0.28.0" + resize-observer-polyfill@^1.5.0: version "1.5.1" resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" @@ -3677,6 +3776,11 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" @@ -3788,6 +3892,16 @@ source-map@^0.5.7: resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + stackframe@^1.3.4: version "1.3.4" resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" @@ -3814,6 +3928,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -3867,6 +3988,14 @@ text-table@^0.2.0: resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + tiny-invariant@^1.0.0: version "1.3.3" resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" @@ -3971,7 +4100,7 @@ use-sync-external-store@^1.2.0: resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz" integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== -util-deprecate@^1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -4336,6 +4465,11 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"