Toggle the boxes to show or hide items.
Filtering is an important technique for removing clutter.
This story creates a simple JSX legend that filters the chart by removing items from the state.
You can see the story's styling in the CSS tab or modify the CSS in the playground.
See also
import React, { useState } from "react";
import { createRoot } from "react-dom/client";
import has from "lodash/has";
import pickBy from "lodash/pickBy";
import { Chart } from "regraph";
import data, { getLegend } from "./data";
const legendComponent = getLegend();
const LegendCheckBox = ({ label, id, color, checked, onChange }) => {
const handleChange = (event) => {
const { target } = event;
if (target) {
onChange(target.id, target.checked);
}
};
return (
<label htmlFor={id} className="legend-checkbox">
{label}
<input type="checkbox" id={id} defaultChecked={checked} onChange={handleChange} />
<span style={{ backgroundColor: color }} />
</label>
);
};
export const Demo = () => <Legend items={data()} legend={legendComponent} />;
function Legend(props) {
const [state, setState] = useState({
filter: {},
positions: {},
});
const { items, legend } = props;
const handleChartChange = ({ positions }) => {
if (!positions) {
return;
}
setState((current) => {
return { ...current, positions: { ...positions } };
});
};
const handleCheckBoxChange = (id, checked) => {
setState((current) => {
return { ...current, filter: { ...current.filter, [id]: !checked } };
});
};
// filter chart items based on the current filter state
const filtered = () => {
return pickBy(
items,
(value) => !has(value, "data.product") || !state.filter[value.data.product]
);
};
const { filter, positions } = state;
return (
<div style={{ width: "100%", height: "100%" }}>
<Chart
animation={{ animate: true, time: 1000 }}
items={ }
layout={{ tightness: 4 }}
options={{ navigation: false, overview: false }}
positions={positions}
onChange={handleChartChange}
/>
<div className="legend">
{legend.map((product) => (
<LegendCheckBox
key={product.id}
label={product.label}
id={product.id}
color={product.color}
checked={ filter[product.id]}
onChange={handleCheckBoxChange}
/>
))}
</div>
</div>
);
}
const root = createRoot(document.getElementById("regraph"));
root.render(<Demo />); import sortBy from "lodash/sortBy";
import { style } from "@ci/theme/rg/js/storyStyles";
const labels = {
Chrome: "Google Chrome",
Firefox: "Mozilla Firefox",
Flash: "Adobe Flash",
IE: "Internet Explorer",
Java: "Oracle Java",
PDF: "Adobe PDF",
PHP: "PHP Language",
Silverlight: "Microsoft Silverlight",
Windows: "Microsoft Windows",
};
function getLegend() {
const items = data();
const legend = {};
Object.keys(items).forEach((id) => {
const item = items[id];
if (item.data) {
const { product } = item.data;
if (product && !legend[product]) {
legend[product] = {
id: product,
color: item.color,
label: labels[product] || product,
};
}
}
});
return sortBy(legend, "label");
}
function data() {
return {
Hanjuan: {
label: { text: "Hanjuan", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Angler: {
label: { text: "Angler", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Archie: {
label: { text: "Archie", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Astrum: {
label: { text: "Astrum", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Bleeding life": {
label: { text: "Bleeding life", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Dotkachef: {
label: { text: "Dotkachef", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
CkVip: {
label: { text: "CkVip", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Fiesta: {
label: { text: "Fiesta", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Flash: {
label: { text: "Flash", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
GongDa: {
label: { text: "GongDa", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Infinity: {
label: { text: "Infinity", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
LightsOut: {
label: { text: "LightsOut", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Magnitude: {
label: { text: "Magnitude", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Neutrino: {
label: { text: "Neutrino", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Niteris: {
label: { text: "Niteris", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Nuclear: {
label: { text: "Nuclear", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Nuclear 3.x": {
label: { text: "Nuclear 3.x", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
NullHole: {
label: { text: "NullHole", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Rig: {
label: { text: "Rig", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Sednit: {
label: { text: "Sednit", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Styx: {
label: { text: "Styx", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
SweetOrange: {
label: { text: "SweetOrange", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Nuclear 2.2": {
label: { text: "Nuclear 2.2", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Nuclear 2.1": {
label: { text: "Nuclear 2.1", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Nuclear 2.0": {
label: { text: "Nuclear 2.0", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Redkit 2.x": {
label: { text: "Redkit 2.x", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Redkit Light": {
label: { text: "Redkit Light", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Neo Sploit": {
label: { text: "Neo Sploit", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"FlashPack (child of SafePack / CritXPack/ Vintage Pack)": {
label: {
text: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
...style.primaryLabel2,
},
data: {
type: "malware",
},
...style.primary2,
},
"Safe Pack": {
label: { text: "Safe Pack", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"White Lotus": {
label: { text: "White Lotus", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Popads: {
label: { text: "Popads", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Net Boom NB Exploiter": {
label: { text: "Net Boom NB Exploiter", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"Blackhole (last)*": {
label: { text: "Blackhole (last)*", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Crimeboss: {
label: { text: "Crimeboss", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Sakura: {
label: { text: "Sakura", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Glazunov: {
label: { text: "Glazunov", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
Rawin: {
label: { text: "Rawin", ...style.primaryLabel2 },
data: {
type: "malware",
},
...style.primary2,
},
"CVE-2010-0188": {
label: { text: "CVE-2010-0188", ...style.darkLabelBackground },
data: {
product: "PDF",
type: "cve",
},
...style.cat02,
},
"CVE-2010-0188-Astrum": {
id1: "CVE-2010-0188",
id2: "Astrum",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Nuclear": {
id1: "CVE-2010-0188",
id2: "Nuclear",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Nuclear 3.x": {
id1: "CVE-2010-0188",
id2: "Nuclear 3.x",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Nuclear 2.2": {
id1: "CVE-2010-0188",
id2: "Nuclear 2.2",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Nuclear 2.1": {
id1: "CVE-2010-0188",
id2: "Nuclear 2.1",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Nuclear 2.0": {
id1: "CVE-2010-0188",
id2: "Nuclear 2.0",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2010-0188-Blackhole (last)*": {
id1: "CVE-2010-0188",
id2: "Blackhole (last)*",
data: {
product: "PDF",
},
...style.link,
},
"CVE-2011-3402": {
label: { text: "CVE-2011-3402", ...style.darkLabelBackground },
data: {
product: "Windows",
type: "cve",
},
...style.cat06,
},
"CVE-2011-3402-Magnitude": {
id1: "CVE-2011-3402",
id2: "Magnitude",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2011-3402-Nuclear 2.0": {
id1: "CVE-2011-3402",
id2: "Nuclear 2.0",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2011-3402-Blackhole (last)*": {
id1: "CVE-2011-3402",
id2: "Blackhole (last)*",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2011-3544": {
label: { text: "CVE-2011-3544", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2011-3544-Bleeding life": {
id1: "CVE-2011-3544",
id2: "Bleeding life",
data: {
product: "Java",
},
...style.link,
},
"CVE-2011-3544-Nuclear 2.1": {
id1: "CVE-2011-3544",
id2: "Nuclear 2.1",
data: {
product: "Java",
},
...style.link,
},
"CVE-2011-3544-White Lotus": {
id1: "CVE-2011-3544",
id2: "White Lotus",
data: {
product: "Java",
},
...style.link,
},
"CVE-2011-3544-Crimeboss": {
id1: "CVE-2011-3544",
id2: "Crimeboss",
data: {
product: "Java",
},
...style.link,
},
"CVE-2011-3544-Sakura": {
id1: "CVE-2011-3544",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507": {
label: { text: "CVE-2012-0507", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2012-0507-Fiesta": {
id1: "CVE-2012-0507",
id2: "Fiesta",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-GongDa": {
id1: "CVE-2012-0507",
id2: "GongDa",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-Magnitude": {
id1: "CVE-2012-0507",
id2: "Magnitude",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-Nuclear": {
id1: "CVE-2012-0507",
id2: "Nuclear",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-Rig": {
id1: "CVE-2012-0507",
id2: "Rig",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-Blackhole (last)*": {
id1: "CVE-2012-0507",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-0507-Rawin": {
id1: "CVE-2012-0507",
id2: "Rawin",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1889": {
label: { text: "CVE-2012-1889", ...style.darkLabelBackground },
data: {
product: "Windows",
type: "cve",
},
...style.cat06,
},
"CVE-2012-1889-GongDa": {
id1: "CVE-2012-1889",
id2: "GongDa",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2012-5692": {
label: { text: "CVE-2012-5692", ...style.darkLabelBackground },
data: {
product: "PHP",
type: "cve",
},
...style.cat09,
},
"CVE-2012-5692-Dotkachef": {
id1: "CVE-2012-5692",
id2: "Dotkachef",
data: {
product: "PHP",
},
...style.link,
},
"CVE-2012-1723": {
label: { text: "CVE-2012-1723", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2012-1723-Bleeding life": {
id1: "CVE-2012-1723",
id2: "Bleeding life",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-LightsOut": {
id1: "CVE-2012-1723",
id2: "LightsOut",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Nuclear": {
id1: "CVE-2012-1723",
id2: "Nuclear",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Nuclear 3.x": {
id1: "CVE-2012-1723",
id2: "Nuclear 3.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-SweetOrange": {
id1: "CVE-2012-1723",
id2: "SweetOrange",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Nuclear 2.2": {
id1: "CVE-2012-1723",
id2: "Nuclear 2.2",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Nuclear 2.1": {
id1: "CVE-2012-1723",
id2: "Nuclear 2.1",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Neo Sploit": {
id1: "CVE-2012-1723",
id2: "Neo Sploit",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Safe Pack": {
id1: "CVE-2012-1723",
id2: "Safe Pack",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-1723-Blackhole (last)*": {
id1: "CVE-2012-1723",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0025": {
label: { text: "CVE-2013-0025", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2013-0025-Rig": {
id1: "CVE-2013-0025",
id2: "Rig",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-0074": {
label: { text: "CVE-2013-0074", ...style.darkLabelBackground },
data: {
product: "Silverlight",
type: "cve",
},
...style.cat05,
},
"CVE-2013-0074-Hanjuan": {
id1: "CVE-2013-0074",
id2: "Hanjuan",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Angler": {
id1: "CVE-2013-0074",
id2: "Angler",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Archie": {
id1: "CVE-2013-0074",
id2: "Archie",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Astrum": {
id1: "CVE-2013-0074",
id2: "Astrum",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Fiesta": {
id1: "CVE-2013-0074",
id2: "Fiesta",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Infinity": {
id1: "CVE-2013-0074",
id2: "Infinity",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Neutrino": {
id1: "CVE-2013-0074",
id2: "Neutrino",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Nuclear": {
id1: "CVE-2013-0074",
id2: "Nuclear",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-Rig": {
id1: "CVE-2013-0074",
id2: "Rig",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-0074-FlashPack (child of SafePack / CritXPack/ Vintage Pack)": {
id1: "CVE-2013-0074",
id2: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-3896": {
label: { text: "CVE-2013-3896", ...style.darkLabelBackground },
data: {
product: "Silverlight",
type: "cve",
},
...style.cat05,
},
"CVE-2013-3896-Angler": {
id1: "CVE-2013-3896",
id2: "Angler",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-3896-Astrum": {
id1: "CVE-2013-3896",
id2: "Astrum",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-3896-Fiesta": {
id1: "CVE-2013-3896",
id2: "Fiesta",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2013-3896-FlashPack (child of SafePack / CritXPack/ Vintage Pack)": {
id1: "CVE-2013-3896",
id2: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
data: {
product: "Silverlight",
},
...style.link,
},
"CVE-2012-3993": {
label: { text: "CVE-2012-3993", ...style.darkLabelBackground },
data: {
product: "Firefox",
type: "cve",
},
...style.cat07,
},
"CVE-2012-3993-Niteris": {
id1: "CVE-2012-3993",
id2: "Niteris",
data: {
product: "Firefox",
},
...style.link,
},
"CVE-2013-0422": {
label: { text: "CVE-2013-0422", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-0422-GongDa": {
id1: "CVE-2013-0422",
id2: "GongDa",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Niteris": {
id1: "CVE-2013-0422",
id2: "Niteris",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Nuclear 3.x": {
id1: "CVE-2013-0422",
id2: "Nuclear 3.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Nuclear 2.2": {
id1: "CVE-2013-0422",
id2: "Nuclear 2.2",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Blackhole (last)*": {
id1: "CVE-2013-0422",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Crimeboss": {
id1: "CVE-2013-0422",
id2: "Crimeboss",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0422-Sakura": {
id1: "CVE-2013-0422",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0634": {
label: { text: "CVE-2013-0634", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2013-0634-Astrum": {
id1: "CVE-2013-0634",
id2: "Astrum",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-0634-Bleeding life": {
id1: "CVE-2013-0634",
id2: "Bleeding life",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-0634-GongDa": {
id1: "CVE-2013-0634",
id2: "GongDa",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-0634-Magnitude": {
id1: "CVE-2013-0634",
id2: "Magnitude",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-0634-Niteris": {
id1: "CVE-2013-0634",
id2: "Niteris",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-0634-Rig": {
id1: "CVE-2013-0634",
id2: "Rig",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-1347": {
label: { text: "CVE-2013-1347", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2013-1347-Infinity": {
id1: "CVE-2013-1347",
id2: "Infinity",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-1347-LightsOut": {
id1: "CVE-2013-1347",
id2: "LightsOut",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-1347-Sednit": {
id1: "CVE-2013-1347",
id2: "Sednit",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-1493": {
label: { text: "CVE-2013-1493", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-1493-Dotkachef": {
id1: "CVE-2013-1493",
id2: "Dotkachef",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-1493-Redkit 2.x": {
id1: "CVE-2013-1493",
id2: "Redkit 2.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-1493-Rawin": {
id1: "CVE-2013-1493",
id2: "Rawin",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-1710": {
label: { text: "CVE-2013-1710", ...style.darkLabelBackground },
data: {
product: "Firefox",
type: "cve",
},
...style.cat07,
},
"CVE-2013-1710-Niteris": {
id1: "CVE-2013-1710",
id2: "Niteris",
data: {
product: "Firefox",
},
...style.link,
},
"CVE-2013-2423": {
label: { text: "CVE-2013-2423", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2423-Dotkachef": {
id1: "CVE-2013-2423",
id2: "Dotkachef",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Infinity": {
id1: "CVE-2013-2423",
id2: "Infinity",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Nuclear 3.x": {
id1: "CVE-2013-2423",
id2: "Nuclear 3.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Safe Pack": {
id1: "CVE-2013-2423",
id2: "Safe Pack",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Crimeboss": {
id1: "CVE-2013-2423",
id2: "Crimeboss",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Sakura": {
id1: "CVE-2013-2423",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2423-Rawin": {
id1: "CVE-2013-2423",
id2: "Rawin",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2424": {
label: { text: "CVE-2013-2424", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2424-SweetOrange": {
id1: "CVE-2013-2424",
id2: "SweetOrange",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460": {
label: { text: "CVE-2013-2460", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2460-Flash": {
id1: "CVE-2013-2460",
id2: "Flash",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Infinity": {
id1: "CVE-2013-2460",
id2: "Infinity",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Niteris": {
id1: "CVE-2013-2460",
id2: "Niteris",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Nuclear 3.x": {
id1: "CVE-2013-2460",
id2: "Nuclear 3.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Styx": {
id1: "CVE-2013-2460",
id2: "Styx",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-SweetOrange": {
id1: "CVE-2013-2460",
id2: "SweetOrange",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Redkit 2.x": {
id1: "CVE-2013-2460",
id2: "Redkit 2.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Blackhole (last)*": {
id1: "CVE-2013-2460",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2460-Sakura": {
id1: "CVE-2013-2460",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2463": {
label: { text: "CVE-2013-2463", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2463-Magnitude": {
id1: "CVE-2013-2463",
id2: "Magnitude",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2463-Glazunov": {
id1: "CVE-2013-2463",
id2: "Glazunov",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465": {
label: { text: "CVE-2013-2465", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2465-Bleeding life": {
id1: "CVE-2013-2465",
id2: "Bleeding life",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Fiesta": {
id1: "CVE-2013-2465",
id2: "Fiesta",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-GongDa": {
id1: "CVE-2013-2465",
id2: "GongDa",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Infinity": {
id1: "CVE-2013-2465",
id2: "Infinity",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-LightsOut": {
id1: "CVE-2013-2465",
id2: "LightsOut",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Niteris": {
id1: "CVE-2013-2465",
id2: "Niteris",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Nuclear": {
id1: "CVE-2013-2465",
id2: "Nuclear",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Rig": {
id1: "CVE-2013-2465",
id2: "Rig",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-Redkit Light": {
id1: "CVE-2013-2465",
id2: "Redkit Light",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2465-White Lotus": {
id1: "CVE-2013-2465",
id2: "White Lotus",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471": {
label: { text: "CVE-2013-2471", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-2471-Magnitude": {
id1: "CVE-2013-2471",
id2: "Magnitude",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-Nuclear": {
id1: "CVE-2013-2471",
id2: "Nuclear",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-SweetOrange": {
id1: "CVE-2013-2471",
id2: "SweetOrange",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-Redkit 2.x": {
id1: "CVE-2013-2471",
id2: "Redkit 2.x",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-Blackhole (last)*": {
id1: "CVE-2013-2471",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-Sakura": {
id1: "CVE-2013-2471",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2471-Glazunov": {
id1: "CVE-2013-2471",
id2: "Glazunov",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-2551": {
label: { text: "CVE-2013-2551", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2013-2551-Angler": {
id1: "CVE-2013-2551",
id2: "Angler",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Archie": {
id1: "CVE-2013-2551",
id2: "Archie",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Astrum": {
id1: "CVE-2013-2551",
id2: "Astrum",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Fiesta": {
id1: "CVE-2013-2551",
id2: "Fiesta",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Flash": {
id1: "CVE-2013-2551",
id2: "Flash",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Infinity": {
id1: "CVE-2013-2551",
id2: "Infinity",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Magnitude": {
id1: "CVE-2013-2551",
id2: "Magnitude",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Niteris": {
id1: "CVE-2013-2551",
id2: "Niteris",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Nuclear": {
id1: "CVE-2013-2551",
id2: "Nuclear",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Nuclear 3.x": {
id1: "CVE-2013-2551",
id2: "Nuclear 3.x",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-NullHole": {
id1: "CVE-2013-2551",
id2: "NullHole",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Rig": {
id1: "CVE-2013-2551",
id2: "Rig",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-SweetOrange": {
id1: "CVE-2013-2551",
id2: "SweetOrange",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-Redkit 2.x": {
id1: "CVE-2013-2551",
id2: "Redkit 2.x",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-FlashPack (child of SafePack / CritXPack/ Vintage Pack)": {
id1: "CVE-2013-2551",
id2: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2551-White Lotus": {
id1: "CVE-2013-2551",
id2: "White Lotus",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-2883": {
label: { text: "CVE-2013-2883", ...style.darkLabelBackground },
data: {
product: "Chrome",
type: "cve",
},
...style.cat03,
},
"CVE-2013-2883-Nuclear": {
id1: "CVE-2013-2883",
id2: "Nuclear",
data: {
product: "Chrome",
},
...style.link,
},
"CVE-2013-3897": {
label: { text: "CVE-2013-3897", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat02,
},
"CVE-2013-3897-Sednit": {
id1: "CVE-2013-3897",
id2: "Sednit",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-3918 ": {
label: { text: "CVE-2013-3918 ", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2013-3918 -Nuclear 3.x": {
id1: "CVE-2013-3918 ",
id2: "Nuclear 3.x",
data: {
product: "IE",
},
...style.link,
},
"CVE-2013-5329": {
label: { text: "CVE-2013-5329", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2013-5329-Angler": {
id1: "CVE-2013-5329",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2013-7331": {
label: { text: "CVE-2013-7331", ...style.darkLabelBackground },
data: {
product: "Windows",
type: "cve",
},
...style.cat06,
},
"CVE-2013-7331-Nuclear": {
id1: "CVE-2013-7331",
id2: "Nuclear",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2013-7331-Rig": {
id1: "CVE-2013-7331",
id2: "Rig",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2014-0322": {
label: { text: "CVE-2014-0322", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2014-0322-Angler": {
id1: "CVE-2014-0322",
id2: "Angler",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0322-Astrum": {
id1: "CVE-2014-0322",
id2: "Astrum",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0322-Flash": {
id1: "CVE-2014-0322",
id2: "Flash",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0322-Infinity": {
id1: "CVE-2014-0322",
id2: "Infinity",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0322-Rig": {
id1: "CVE-2014-0322",
id2: "Rig",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0322-SweetOrange": {
id1: "CVE-2014-0322",
id2: "SweetOrange",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-0497": {
label: { text: "CVE-2014-0497", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-0497-Angler": {
id1: "CVE-2014-0497",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0497-Archie": {
id1: "CVE-2014-0497",
id2: "Archie",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0497-Fiesta": {
id1: "CVE-2014-0497",
id2: "Fiesta",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0497-Flash": {
id1: "CVE-2014-0497",
id2: "Flash",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0497-Rig": {
id1: "CVE-2014-0497",
id2: "Rig",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0497-SweetOrange": {
id1: "CVE-2014-0497",
id2: "SweetOrange",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0502": {
label: { text: "CVE-2014-0502", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-0502-Infinity": {
id1: "CVE-2014-0502",
id2: "Infinity",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515": {
label: { text: "CVE-2014-0515", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-0515-Hanjuan": {
id1: "CVE-2014-0515",
id2: "Hanjuan",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Angler": {
id1: "CVE-2014-0515",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Archie": {
id1: "CVE-2014-0515",
id2: "Archie",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Astrum": {
id1: "CVE-2014-0515",
id2: "Astrum",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Bleeding life": {
id1: "CVE-2014-0515",
id2: "Bleeding life",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-CkVip": {
id1: "CVE-2014-0515",
id2: "CkVip",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Flash": {
id1: "CVE-2014-0515",
id2: "Flash",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Niteris": {
id1: "CVE-2014-0515",
id2: "Niteris",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Nuclear": {
id1: "CVE-2014-0515",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-NullHole": {
id1: "CVE-2014-0515",
id2: "NullHole",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-Rig": {
id1: "CVE-2014-0515",
id2: "Rig",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0515-SweetOrange": {
id1: "CVE-2014-0515",
id2: "SweetOrange",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0556": {
label: { text: "CVE-2014-0556", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-0556-Fiesta": {
id1: "CVE-2014-0556",
id2: "Fiesta",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0556-Nuclear": {
id1: "CVE-2014-0556",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569": {
label: { text: "CVE-2014-0569", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-0569-Archie": {
id1: "CVE-2014-0569",
id2: "Archie",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-Fiesta": {
id1: "CVE-2014-0569",
id2: "Fiesta",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-Flash": {
id1: "CVE-2014-0569",
id2: "Flash",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-Niteris": {
id1: "CVE-2014-0569",
id2: "Niteris",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-NullHole": {
id1: "CVE-2014-0569",
id2: "NullHole",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-Rig": {
id1: "CVE-2014-0569",
id2: "Rig",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-0569-SweetOrange": {
id1: "CVE-2014-0569",
id2: "SweetOrange",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-1776": {
label: { text: "CVE-2014-1776", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2014-1776-Angler": {
id1: "CVE-2014-1776",
id2: "Angler",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-1776-Infinity": {
id1: "CVE-2014-1776",
id2: "Infinity",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-1776-Sednit": {
id1: "CVE-2014-1776",
id2: "Sednit",
data: {
product: "IE",
},
...style.link,
},
"CVE-2014-6332": {
label: { text: "CVE-2014-6332", ...style.darkLabelBackground },
data: {
product: "Windows",
type: "cve",
},
...style.cat06,
},
"CVE-2014-6332-Archie": {
id1: "CVE-2014-6332",
id2: "Archie",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2014-6332-CkVip": {
id1: "CVE-2014-6332",
id2: "CkVip",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2014-6332-Neutrino": {
id1: "CVE-2014-6332",
id2: "Neutrino",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2014-6332-SweetOrange": {
id1: "CVE-2014-6332",
id2: "SweetOrange",
data: {
product: "Windows",
},
...style.link,
},
"CVE-2014-8439": {
label: { text: "CVE-2014-8439", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-8439-Angler": {
id1: "CVE-2014-8439",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-8439-Astrum": {
id1: "CVE-2014-8439",
id2: "Astrum",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-8439-Magnitude": {
id1: "CVE-2014-8439",
id2: "Magnitude",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-8439-Nuclear": {
id1: "CVE-2014-8439",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2014-8440": {
label: { text: "CVE-2014-8440", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2014-8440-Angler": {
id1: "CVE-2014-8440",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0310": {
label: { text: "CVE-2015-0310", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2015-0310-Angler": {
id1: "CVE-2015-0310",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0311": {
label: { text: "CVE-2015-0311", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2015-0311-Angler": {
id1: "CVE-2015-0311",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0311-Niteris": {
id1: "CVE-2015-0311",
id2: "Niteris",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0311-Nuclear": {
id1: "CVE-2015-0311",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0313": {
label: { text: "CVE-2015-0313", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2015-0313-Hanjuan": {
id1: "CVE-2015-0313",
id2: "Hanjuan",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0313-Angler": {
id1: "CVE-2015-0313",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0336": {
label: { text: "CVE-2015-0336", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2015-0336-Angler": {
id1: "CVE-2015-0336",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0336-Magnitude": {
id1: "CVE-2015-0336",
id2: "Magnitude",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0336-Neutrino": {
id1: "CVE-2015-0336",
id2: "Neutrino",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0336-Niteris": {
id1: "CVE-2015-0336",
id2: "Niteris",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0336-Nuclear": {
id1: "CVE-2015-0336",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0359 ": {
label: { text: "CVE-2015-0359 ", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2015-0359 -Angler": {
id1: "CVE-2015-0359 ",
id2: "Angler",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0359 -Fiesta": {
id1: "CVE-2015-0359 ",
id2: "Fiesta",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0359 -Magnitude": {
id1: "CVE-2015-0359 ",
id2: "Magnitude",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0359 -Nuclear": {
id1: "CVE-2015-0359 ",
id2: "Nuclear",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2015-0359 -Rig": {
id1: "CVE-2015-0359 ",
id2: "Rig",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2010-0806 ": {
label: { text: "CVE-2010-0806 ", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2010-0806 -Net Boom NB Exploiter": {
id1: "CVE-2010-0806 ",
id2: "Net Boom NB Exploiter",
data: {
product: "IE",
},
...style.link,
},
"CVE-2010-0806 -Sakura": {
id1: "CVE-2010-0806 ",
id2: "Sakura",
data: {
product: "IE",
},
...style.link,
},
"CVE-2010-0842": {
label: { text: "CVE-2010-0842", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2010-0842-Sakura": {
id1: "CVE-2010-0842",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2010-3962": {
label: { text: "CVE-2010-3962", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2010-3962-Net Boom NB Exploiter": {
id1: "CVE-2010-3962",
id2: "Net Boom NB Exploiter",
data: {
product: "IE",
},
...style.link,
},
"CVE-2011-0611": {
label: { text: "CVE-2011-0611", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2011-0611-Net Boom NB Exploiter": {
id1: "CVE-2011-0611",
id2: "Net Boom NB Exploiter",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2011-1255": {
label: { text: "CVE-2011-1255", ...style.darkLabelBackground },
data: {
product: "IE",
type: "cve",
},
...style.cat04,
},
"CVE-2011-1255-Net Boom NB Exploiter": {
id1: "CVE-2011-1255",
id2: "Net Boom NB Exploiter",
data: {
product: "IE",
},
...style.link,
},
"CVE-2011-2110": {
label: { text: "CVE-2011-2110", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2011-2110-Net Boom NB Exploiter": {
id1: "CVE-2011-2110",
id2: "Net Boom NB Exploiter",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2011-2140": {
label: { text: "CVE-2011-2140", ...style.darkLabelBackground },
data: {
product: "Flash",
type: "cve",
},
...style.cat01,
},
"CVE-2011-2140-Net Boom NB Exploiter": {
id1: "CVE-2011-2140",
id2: "Net Boom NB Exploiter",
data: {
product: "Flash",
},
...style.link,
},
"CVE-2012-4681": {
label: { text: "CVE-2012-4681", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2012-4681-Nuclear 2.2": {
id1: "CVE-2012-4681",
id2: "Nuclear 2.2",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-4681-Neo Sploit": {
id1: "CVE-2012-4681",
id2: "Neo Sploit",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-4681-Blackhole (last)*": {
id1: "CVE-2012-4681",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-4681-Crimeboss": {
id1: "CVE-2012-4681",
id2: "Crimeboss",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-4681-Sakura": {
id1: "CVE-2012-4681",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-5076": {
label: { text: "CVE-2012-5076", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2012-5076-Nuclear 2.2": {
id1: "CVE-2012-5076",
id2: "Nuclear 2.2",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-5076-Blackhole (last)*": {
id1: "CVE-2012-5076",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2012-5076-Sakura": {
id1: "CVE-2012-5076",
id2: "Sakura",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0431": {
label: { text: "CVE-2013-0431", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-0431-Popads": {
id1: "CVE-2013-0431",
id2: "Popads",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-0431-Blackhole (last)*": {
id1: "CVE-2013-0431",
id2: "Blackhole (last)*",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-1488": {
label: { text: "CVE-2013-1488", ...style.darkLabelBackground },
data: {
product: "Java",
type: "cve",
},
...style.cat08,
},
"CVE-2013-1488-Crimeboss": {
id1: "CVE-2013-1488",
id2: "Crimeboss",
data: {
product: "Java",
},
...style.link,
},
"CVE-2013-1690": {
label: { text: "CVE-2013-1690", ...style.darkLabelBackground },
data: {
product: "Firefox",
type: "cve",
},
...style.cat07,
},
"CVE-2013-1690-LightsOut": {
id1: "CVE-2013-1690",
id2: "LightsOut",
data: {
product: "Firefox",
},
...style.link,
},
};
}
export default data;
export { getLegend }; <!doctype html>
<html>
<head>
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<div id="regraph" style="height: 100vh"></div>
<script type="module" src="./code.jsx"></script>
</body>
</html> @import "@ci/theme/rg/css/variables.css";
.legend {
font-family: sans-serif;
position: absolute;
bottom: 16px;
right: 16px;
background-color: rgba(255, 255, 255, 0.7);
border: solid 1px lightgray;
padding: 12px 12px 6px;
}
.legend-checkbox,
.legend-radio {
display: block;
position: relative;
padding-left: 35px;
padding-right: 12px;
margin-bottom: 4px;
line-height: 25px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.legend-checkbox:hover,
.legend-radio:hover {
background-color: #eee;
}
.legend-checkbox > input,
.legend-radio > input {
position: absolute;
opacity: 0;
height: 0;
width: 0;
}
.legend-checkbox > span,
.legend-radio > span {
position: absolute;
top: 0;
left: 0;
}
.legend-checkbox > span {
height: 25px;
width: 25px;
background-color: var(--primary1);
}
.legend-radio > span {
border-color: var(--primary2);
border-width: 2px;
border-style: solid;
border-radius: 50%;
background-color: white;
height: 20px;
width: 20px;
}
.legend-checkbox > span:after,
.legend-radio > span:after {
content: "";
position: absolute;
display: none;
}
.legend-checkbox > span:after {
left: 9px;
top: 5px;
width: 5px;
height: 10px;
border-color: white;
border-style: solid;
border-width: 0 3px 3px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.legend-radio > span:after {
left: 4px;
top: 4px;
width: 12px;
height: 12px;
border-radius: 50%;
}
.legend-radio:hover > span:after {
display: block;
background-color: #eee;
}
.legend-checkbox > input:checked ~ span:after,
.legend-radio > input:checked ~ span::after {
display: block;
}
.legend-radio > input:checked ~ span::after {
background-color: var(--primary1);
}