diff --git a/.eslintrc b/.eslintrc
index 04f820593..ee0cfc725 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -92,6 +92,7 @@
}
],
"react/forbid-prop-types": 0,
+ "react/jsx-curly-newline": 0,
"react/jsx-filename-extension": 0,
"react/jsx-fragments": [ 1, "element" ],
"react/jsx-props-no-spreading": 0,
diff --git a/package.json b/package.json
index 617c9aea2..5a2613fd9 100644
--- a/package.json
+++ b/package.json
@@ -86,6 +86,7 @@
"@redhat-cloud-services/frontend-components-notifications": "1.0.3",
"@redhat-cloud-services/frontend-components-utilities": "1.0.3",
"axios": "^0.19.2",
+ "c3": "^0.7.15",
"classnames": "^2.2.6",
"i18next": "^19.4.4",
"i18next-xhr-backend": "^3.2.2",
diff --git a/src/components/c3Chart/__tests__/__snapshots__/c3Chart.test.js.snap b/src/components/c3Chart/__tests__/__snapshots__/c3Chart.test.js.snap
new file mode 100644
index 000000000..adaa4b824
--- /dev/null
+++ b/src/components/c3Chart/__tests__/__snapshots__/c3Chart.test.js.snap
@@ -0,0 +1,54 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`C3Chart Component should pass child components: child components 1`] = `
+
+
+
+ lorem
+
+ ipsum
+
+
+
+`;
+
+exports[`C3Chart Component should render a basic component: basic 1`] = `
+
+`;
+
+exports[`C3Chart Component should return a chart and config reference: references 1`] = `
+
+
+
+
+
+ and
+ {"data":{"columns":[]}}
+
+
+
+`;
diff --git a/src/components/c3Chart/__tests__/c3Chart.test.js b/src/components/c3Chart/__tests__/c3Chart.test.js
new file mode 100644
index 000000000..de94e361b
--- /dev/null
+++ b/src/components/c3Chart/__tests__/c3Chart.test.js
@@ -0,0 +1,51 @@
+import React from 'react';
+import { mount, shallow } from 'enzyme';
+import { C3Chart } from '../c3Chart';
+
+describe('C3Chart Component', () => {
+ it('should render a basic component', () => {
+ const props = {};
+ const component = shallow();
+
+ expect(component).toMatchSnapshot('basic');
+ });
+
+ it('should run componentWillUnmount method successfully', () => {
+ const component = mount();
+ const componentWillUnmount = jest.spyOn(component.instance(), 'componentWillUnmount');
+ component.unmount();
+ expect(componentWillUnmount).toHaveBeenCalled();
+ });
+
+ it('should pass child components', () => {
+ const props = {};
+ const component = shallow(
+
+ lorem ipsum
+
+ );
+
+ expect(component).toMatchSnapshot('child components');
+ });
+
+ it('should return a chart and config reference', () => {
+ const props = {
+ config: {
+ data: {
+ columns: []
+ }
+ }
+ };
+ const component = shallow(
+
+ {({ chart, config }) => (
+
+ {chart} and {JSON.stringify(config)}
+
+ )}
+
+ );
+
+ expect(component).toMatchSnapshot('references');
+ });
+});
diff --git a/src/components/c3Chart/c3Chart.js b/src/components/c3Chart/c3Chart.js
new file mode 100644
index 000000000..d35cfd194
--- /dev/null
+++ b/src/components/c3Chart/c3Chart.js
@@ -0,0 +1,110 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import c3 from 'c3';
+import _isEqual from 'lodash/isEqual';
+import 'c3/c3.min.css';
+import { helpers } from '../../common';
+
+/**
+ * C3 wrapper.
+ * Uses aspects from https://github.com/bcbcarl/react-c3js and https://github.com/wuct/react-c3-component
+ *
+ * @augments React.Component
+ */
+class C3Chart extends React.Component {
+ state = { chart: null };
+
+ node = React.createRef();
+
+ componentDidMount() {
+ this.generateChart();
+ }
+
+ componentDidUpdate(prevProps) {
+ const { config } = this.props;
+
+ if (!_isEqual(prevProps.config.data, config.data)) {
+ this.generateChart();
+ }
+ }
+
+ componentWillUnmount() {
+ const { chart } = this.state;
+ if (chart) {
+ chart.destroy();
+ }
+ this.setState({ chart: null });
+ }
+
+ generateChart() {
+ const { chart } = this.state;
+ const { config, onComplete } = this.props;
+
+ let updatedChart = chart;
+ if (!updatedChart) {
+ updatedChart = c3.generate({ bindto: this.node.current, ...config });
+ }
+
+ updatedChart.load({
+ ...config.data,
+ unload: config.unloadBeforeLoad || false,
+ done: () => {
+ this.setState({ chart: updatedChart }, () => {
+ if (config.done) {
+ config.done({ chart: updatedChart, config });
+ } else {
+ onComplete({ chart: updatedChart, config });
+ }
+ });
+ }
+ });
+ }
+
+ render() {
+ const { chart } = this.state;
+ const { className, children, config, style } = this.props;
+
+ return (
+
+
+ {chart && (
+
+ {(typeof children === 'function' && children({ chart, config })) || children}
+
+ )}
+
+ );
+ }
+}
+
+/**
+ * Prop types.
+ *
+ * @type {{children: Node|Function, onComplete: Function, className: string, style: object, config}}
+ */
+C3Chart.propTypes = {
+ children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
+ className: PropTypes.string,
+ config: PropTypes.shape({
+ unloadBeforeLoad: PropTypes.bool,
+ data: PropTypes.object,
+ done: PropTypes.func
+ }),
+ onComplete: PropTypes.func,
+ style: PropTypes.object
+};
+
+/**
+ * Default props.
+ *
+ * @type {{children: null, onComplete: Function, className: null, style: {}, config: {}}}
+ */
+C3Chart.defaultProps = {
+ children: null,
+ className: null,
+ config: {},
+ onComplete: helpers.noop,
+ style: {}
+};
+
+export { C3Chart as default, C3Chart };
diff --git a/src/setupTests.js b/src/setupTests.js
index 1edf03022..38a07144f 100644
--- a/src/setupTests.js
+++ b/src/setupTests.js
@@ -3,6 +3,17 @@ import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
+jest.mock('c3', () => ({
+ generate: () => ({
+ destroy: jest.fn(),
+ focus: jest.fn(),
+ hide: jest.fn(),
+ load: ({ done }) => done && done(),
+ revert: jest.fn(),
+ toggle: jest.fn()
+ })
+}));
+
global.window.insights = {
chrome: {
auth: {
diff --git a/yarn.lock b/yarn.lock
index 8ee221b52..530f2c6f6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3121,6 +3121,13 @@ bytes@3.1.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+c3@^0.7.15:
+ version "0.7.15"
+ resolved "https://registry.yarnpkg.com/c3/-/c3-0.7.15.tgz#d848051800386f0123a96841e2c2dddbf1534d29"
+ integrity sha512-4hck3Y0VSzPuIghKiSzl8WIIO9OLuKaYpkOV1WtIOPPSHsVUHB1iAXjlLVDdGRbqr2iGnQHoxucKmcOxgkq6gQ==
+ dependencies:
+ d3 "^5.8.0"
+
cacache@^12.0.2:
version "12.0.3"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
@@ -3582,7 +3589,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3:
+commander@2, commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -4302,11 +4309,35 @@ cyclist@^1.0.1:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
-d3-array@^1.2.0:
+d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
version "1.2.4"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f"
integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==
+d3-axis@1:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9"
+ integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==
+
+d3-brush@1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.5.tgz#066b8e84d17b192986030446c97c0fba7e1bacdc"
+ integrity sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==
+ dependencies:
+ d3-dispatch "1"
+ d3-drag "1"
+ d3-interpolate "1"
+ d3-selection "1"
+ d3-transition "1"
+
+d3-chord@1:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f"
+ integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==
+ dependencies:
+ d3-array "1"
+ d3-path "1"
+
d3-collection@1:
version "1.0.7"
resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e"
@@ -4317,16 +4348,74 @@ d3-color@1:
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf"
integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==
-d3-ease@^1.0.0:
+d3-contour@1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3"
+ integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==
+ dependencies:
+ d3-array "^1.1.1"
+
+d3-dispatch@1:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58"
+ integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==
+
+d3-drag@1:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70"
+ integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==
+ dependencies:
+ d3-dispatch "1"
+ d3-selection "1"
+
+d3-dsv@1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c"
+ integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==
+ dependencies:
+ commander "2"
+ iconv-lite "0.4"
+ rw "1"
+
+d3-ease@1, d3-ease@^1.0.0:
version "1.0.6"
resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0"
integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==
+d3-fetch@1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz#957c8fbc6d4480599ba191b1b2518bf86b3e1be2"
+ integrity sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==
+ dependencies:
+ d3-dsv "1"
+
+d3-force@1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b"
+ integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==
+ dependencies:
+ d3-collection "1"
+ d3-dispatch "1"
+ d3-quadtree "1"
+ d3-timer "1"
+
d3-format@1:
version "1.4.3"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.3.tgz#4e8eb4dff3fdcb891a8489ec6e698601c41b96f1"
integrity sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ==
+d3-geo@1:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.0.tgz#58ddbdf4d9db5f199db69d1b7c93dca6454a6f24"
+ integrity sha512-NalZVW+6/SpbKcnl+BCO67m8gX+nGeJdo6oGL9H6BRUGUL1e+AtPcP4vE4TwCQ/gl8y5KE7QvBzrLn+HsKIl+w==
+ dependencies:
+ d3-array "1"
+
+d3-hierarchy@1:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83"
+ integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==
+
d3-interpolate@1, d3-interpolate@^1.1.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987"
@@ -4339,6 +4428,41 @@ d3-path@1:
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf"
integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
+d3-polygon@1:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e"
+ integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==
+
+d3-quadtree@1:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135"
+ integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==
+
+d3-random@1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291"
+ integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==
+
+d3-scale-chromatic@1:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98"
+ integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==
+ dependencies:
+ d3-color "1"
+ d3-interpolate "1"
+
+d3-scale@2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
+ integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==
+ dependencies:
+ d3-array "^1.2.0"
+ d3-collection "1"
+ d3-format "1"
+ d3-interpolate "1"
+ d3-time "1"
+ d3-time-format "2"
+
d3-scale@^1.0.0:
version "1.0.7"
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d"
@@ -4352,7 +4476,12 @@ d3-scale@^1.0.0:
d3-time "1"
d3-time-format "2"
-d3-shape@^1.0.0, d3-shape@^1.2.0:
+d3-selection@1, d3-selection@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98"
+ integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA==
+
+d3-shape@1, d3-shape@^1.0.0, d3-shape@^1.2.0:
version "1.3.7"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7"
integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==
@@ -4371,16 +4500,76 @@ d3-time@1:
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1"
integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==
-d3-timer@^1.0.0:
+d3-timer@1, d3-timer@^1.0.0:
version "1.0.10"
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5"
integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==
-d3-voronoi@^1.1.2:
+d3-transition@1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398"
+ integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==
+ dependencies:
+ d3-color "1"
+ d3-dispatch "1"
+ d3-ease "1"
+ d3-interpolate "1"
+ d3-selection "^1.1.0"
+ d3-timer "1"
+
+d3-voronoi@1, d3-voronoi@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297"
integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==
+d3-zoom@1:
+ version "1.8.3"
+ resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a"
+ integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==
+ dependencies:
+ d3-dispatch "1"
+ d3-drag "1"
+ d3-interpolate "1"
+ d3-selection "1"
+ d3-transition "1"
+
+d3@^5.8.0:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877"
+ integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==
+ dependencies:
+ d3-array "1"
+ d3-axis "1"
+ d3-brush "1"
+ d3-chord "1"
+ d3-collection "1"
+ d3-color "1"
+ d3-contour "1"
+ d3-dispatch "1"
+ d3-drag "1"
+ d3-dsv "1"
+ d3-ease "1"
+ d3-fetch "1"
+ d3-force "1"
+ d3-format "1"
+ d3-geo "1"
+ d3-hierarchy "1"
+ d3-interpolate "1"
+ d3-path "1"
+ d3-polygon "1"
+ d3-quadtree "1"
+ d3-random "1"
+ d3-scale "2"
+ d3-scale-chromatic "1"
+ d3-selection "1"
+ d3-shape "1"
+ d3-time "1"
+ d3-time-format "2"
+ d3-timer "1"
+ d3-transition "1"
+ d3-voronoi "1"
+ d3-zoom "1"
+
d@1, d@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
@@ -6594,7 +6783,7 @@ i18next@^19.4.4:
dependencies:
"@babel/runtime" "^7.3.1"
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
+iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -11330,6 +11519,11 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
+rw@1:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
+ integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
+
rxjs@^6.5.3:
version "6.5.4"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"