From 281febb3de804c3e866761ceda4046d1798502a4 Mon Sep 17 00:00:00 2001
From: Michael Behrisch <m.behrisch@uu.nl>
Date: Wed, 9 Feb 2022 21:18:25 +0100
Subject: [PATCH] fix(storybook): :bug: fixed reduxer in rawjsonvis storybook
 and added theme to semanticsubstr

---
 .vscode/settings.json                         |   3 +-
 apps/web-graphpolaris/.storybook/main.js      |   8 +-
 .../src/components/schema/schema.stories.tsx  |  18 ++-
 .../src/components/schema/schema.tsx          |   2 +-
 .../rawjsonvis/rawjsonvis.stories.tsx         | 130 +++++++++---------
 .../semanticsubstrates.stories.tsx            |  51 ++++++-
 .../semanticsubstrates/semanticsubstrates.tsx |  24 ++--
 package.json                                  |   1 +
 yarn.lock                                     | 123 +++++++++++++++++
 9 files changed, 267 insertions(+), 93 deletions(-)

diff --git a/.vscode/settings.json b/.vscode/settings.json
index 656108b48..033495ac5 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -19,6 +19,7 @@
     "vis-semsub",
     "vis-nl",
     "vis-paoh",
-    "vis-schema"
+    "vis-schema",
+    "storybook"
   ]
 }
diff --git a/apps/web-graphpolaris/.storybook/main.js b/apps/web-graphpolaris/.storybook/main.js
index 32c9e4638..530fe3a06 100644
--- a/apps/web-graphpolaris/.storybook/main.js
+++ b/apps/web-graphpolaris/.storybook/main.js
@@ -11,7 +11,13 @@ module.exports = {
     '../src/app/**/*.stories.@(js|jsx|ts|tsx)',
     '../src/components/**/*.stories.@(js|jsx|ts|tsx)',
   ],
-  addons: [...rootMain.addons, '@nrwl/react/plugins/storybook'],
+  addons: [
+    ...rootMain.addons,
+    '@nrwl/react/plugins/storybook',
+  ],
+  features: {
+    emotionAlias: false,
+  },
   webpackFinal: async (config, { configType }) => {
     // apply any global webpack configs that might have been specified in .storybook/main.js
     if (rootMain.webpackFinal) {
diff --git a/apps/web-graphpolaris/src/components/schema/schema.stories.tsx b/apps/web-graphpolaris/src/components/schema/schema.stories.tsx
index 415aa8d09..4eb22a1ea 100644
--- a/apps/web-graphpolaris/src/components/schema/schema.stories.tsx
+++ b/apps/web-graphpolaris/src/components/schema/schema.stories.tsx
@@ -1,16 +1,14 @@
-import React from 'react';
-import Schema from './schema';
-import { ComponentStory, ComponentMeta } from '@storybook/react';
-import { Provider } from 'react-redux';
-import {
-  readInSchemaFromBackend,
-  setSchema,
-  store,
-} from '@graphpolaris/shared/data-access/store';
 import {
   handleSchemaLayout,
-  parseSchemaFromBackend,
+  parseSchemaFromBackend
 } from '@graphpolaris/schema/schema-usecases';
+import {
+  store
+} from '@graphpolaris/shared/data-access/store';
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import React from 'react';
+import { Provider } from 'react-redux';
+import Schema from './schema';
 
 export default {
   /* 👇 The title prop is optional.
diff --git a/apps/web-graphpolaris/src/components/schema/schema.tsx b/apps/web-graphpolaris/src/components/schema/schema.tsx
index 6278d6fb4..e005a8543 100644
--- a/apps/web-graphpolaris/src/components/schema/schema.tsx
+++ b/apps/web-graphpolaris/src/components/schema/schema.tsx
@@ -27,7 +27,7 @@ const Schema = (props: Props) => {
   return (
     <Div>
       <p>hey</p>
-      <ReactFlow elements={createReactFlowElements(dbschema)} />
+        <ReactFlow elements={createReactFlowElements(dbschema)} />
       <p>hoi</p>
     </Div>
   );
diff --git a/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx b/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx
index dc47611f9..b384a6d3e 100644
--- a/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx
+++ b/apps/web-graphpolaris/src/components/visualisations/rawjsonvis/rawjsonvis.stories.tsx
@@ -1,73 +1,73 @@
-// import React from 'react';
-// import { ComponentStory, ComponentMeta } from '@storybook/react';
-// import { RawJSONVis } from './rawjsonvis';
+import React from 'react';
+import { ComponentStory, ComponentMeta } from '@storybook/react';
+import { RawJSONVis } from './rawjsonvis';
 
-// import { Provider } from 'react-redux';
-// import { configureStore, createSlice } from '@reduxjs/toolkit';
+import { Provider } from 'react-redux';
+import { configureStore, createSlice } from '@reduxjs/toolkit';
 
-// import {
-//   graphQueryResultSlice,
-//   assignNewGraphQueryResult,
-//   resetGraphQueryResults,
-// } from '@graphpolaris/shared/data-access/store';
+import {
+  graphQueryResultSlice,
+  assignNewGraphQueryResult,
+  resetGraphQueryResults,
+} from '@graphpolaris/shared/data-access/store';
 
-// export default {
-//   /* 👇 The title prop is optional.
-//    * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading
-//    * to learn how to generate automatic titles
-//    */
-//   title: 'RawJSONVIS',
-//   component: RawJSONVis,
-//   decorators: [
-//     (story) => (
-//       <div style={{ padding: '3rem' }}>
-//         <Provider store={Mockstore}>{story()}</Provider>
-//       </div>
-//     ),
-//   ],
-// } as ComponentMeta<typeof RawJSONVis>;
+export default {
+  /* 👇 The title prop is optional.
+   * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading
+   * to learn how to generate automatic titles
+   */
+  title: 'RawJSONVIS',
+  component: RawJSONVis,
+  decorators: [
+    (story) => (
+      <div style={{ padding: '3rem' }}>
+        <Provider store={Mockstore}>{story()}</Provider>
+      </div>
+    ),
+  ],
+} as ComponentMeta<typeof RawJSONVis>;
 
-// const Template: ComponentStory<typeof RawJSONVis> = (args) => (
-//   <RawJSONVis {...args} />
-// );
+const Template: ComponentStory<typeof RawJSONVis> = (args) => (
+  <RawJSONVis {...args} />
+);
 
-// // A super-simple mock of a redux store
-// const Mockstore = configureStore({
-//   reducer: {
-//     graphQueryResult: graphQueryResultSlice,
-//   },
-// });
+// A super-simple mock of a redux store
+const Mockstore = configureStore({
+  reducer: {
+    graphQueryResult: graphQueryResultSlice.reducer,
+  },
+});
 
-// export const TestWithData = Template.bind({});
-// TestWithData.args = {
-//   loading: false,
-// };
-// TestWithData.play = async () => {
-//   const dispatch = Mockstore.dispatch;
-//   dispatch(
-//     assignNewGraphQueryResult({
-//       nodes: [
-//         { id: 'agent/007', attributes: { name: 'Daniel Craig' } },
-//         { id: 'villain', attributes: { name: 'Le Chiffre' } },
-//       ],
-//       links: [],
-//     })
-//   );
-// };
+export const TestWithData = Template.bind({});
+TestWithData.args = {
+  loading: false,
+};
+TestWithData.play = async () => {
+  const dispatch = Mockstore.dispatch;
+  dispatch(
+    assignNewGraphQueryResult({
+      nodes: [
+        { id: 'agent/007', attributes: { name: 'Daniel Craig' } },
+        { id: 'villain', attributes: { name: 'Le Chiffre' } },
+      ],
+      links: [],
+    })
+  );
+};
 
-// export const Loading = Template.bind({});
-// Loading.args = {
-//   loading: true,
-// };
+export const Loading = Template.bind({});
+Loading.args = {
+  loading: true,
+};
 
-// export const Empty = Template.bind({});
-// Empty.args = {
-//   // Shaping the stories through args composition.
-//   // Inherited data coming from the Loading story.
-//   ...Loading.args,
-//   loading: false,
-// };
-// Empty.play = async () => {
-//   const dispatch = Mockstore.dispatch;
-//   dispatch(resetGraphQueryResults());
-// };
+export const Empty = Template.bind({});
+Empty.args = {
+  // Shaping the stories through args composition.
+  // Inherited data coming from the Loading story.
+  ...Loading.args,
+  loading: false,
+};
+Empty.play = async () => {
+  const dispatch = Mockstore.dispatch;
+  dispatch(resetGraphQueryResults());
+};
diff --git a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx
index 3c80f3467..5cb0c4c84 100644
--- a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx
+++ b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.stories.tsx
@@ -1,19 +1,60 @@
-import React from 'react';
+import { createTheme, ThemeProvider } from '@mui/material/styles';
+import { configureStore } from '@reduxjs/toolkit';
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import colorPaletteConfigSlice from 'libs/shared/data-access/store/src/lib/colorPaletteConfigSlice';
+import { Provider } from 'react-redux';
 import SemanticSubstrates from './semanticsubstrates';
-import { ComponentStory, ComponentMeta } from '@storybook/react';
 
 export default {
   /* 👇 The title prop is optional.
    * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading
    * to learn how to generate automatic titles
    */
-  title: 'NodeLink',
+  title: 'SemanticSubstrates', 
   component: SemanticSubstrates,
-  decorators: [(story) => <div style={{ padding: '3rem' }}>{story()}</div>],
+  decorators: [
+    (story) => <div style={{ padding: '3rem' }}>{story()}</div>,
+    (story) => (
+      <div style={{ padding: '3rem' }}>
+        <Provider store={Mockstore}>{story()}</Provider>
+      </div>
+    ),
+    (story) => <ThemeProvider theme={mockTheme}>{story()}</ThemeProvider>,
+  ],
 } as ComponentMeta<typeof SemanticSubstrates>;
 
+declare module '@mui/material/styles' {
+  interface Theme {
+    graphpolaris: {
+      danger: string;
+      dataPointColors: string[];
+    };
+  }
+  // allow configuration using `createTheme`
+  interface ThemeOptions {
+    graphpolaris: {
+      danger: string;
+      dataPointColors: string[];
+    };
+  }
+}
+
+const mockTheme = createTheme({
+  graphpolaris: {
+    danger: 'orange',
+    dataPointColors: ['blue', 'green'],
+  },
+});
+
+// A super-simple mock of a redux store
+const Mockstore = configureStore({
+  reducer: {
+    colorPaletteConfig: colorPaletteConfigSlice,
+  },
+});
+
 const Template: ComponentStory<typeof SemanticSubstrates> = (args) => (
-  <SemanticSubstrates {...args} />
+  <SemanticSubstrates />
 );
 
 export const Primary = Template.bind({});
diff --git a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx
index 04a068232..12f850c74 100644
--- a/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx
+++ b/apps/web-graphpolaris/src/components/visualisations/semanticsubstrates/semanticsubstrates.tsx
@@ -14,58 +14,62 @@ const Div = styled('div')(({ theme }) => ({
 const SemanticSubstrates = () => {
   const dispatch = useDispatch();
   const theme = useTheme();
+  console.log('theme here ', theme);
 
   return (
     <>
       <Div>
-        <h1>semantic substrates</h1>
+        <h1>semantic substrates div</h1>
       </Div>
       <Box
         sx={{
           // Using our custom palette dataPointColors property, cast theme to any because Theme doesn't know of this custom property
-          backgroundColor: (theme: Theme) => theme.palette.dataPointColors[0],
+          backgroundColor: (theme: Theme) =>
+            theme.graphpolaris.dataPointColors[0],
         }}
       >
-        <h1>semantic substrates</h1>
+        <h1>semantic substrates h1</h1>
       </Box>
       <input
         onChange={(v) =>
           dispatch(changePrimary({ main: v.currentTarget.value }))
         }
         type="color"
-        id="head"
         name="head"
         value={theme.palette.primary.main}
-      />
+      />{' '}
+      Change Primary Color
       <input
         onChange={(v) =>
           dispatch(
             changeDataPointColors([
               v.currentTarget.value,
-              ...theme.palette.dataPointColors.slice(1),
+              ...theme.graphpolaris.dataPointColors.slice(1),
             ])
           )
         }
         type="color"
         id="head"
         name="head"
-        value={theme.palette.dataPointColors[0]}
+        value={theme.graphpolaris.dataPointColors[0]}
       />
+      Change dataPointColors reflects to local
       <input
         onChange={(v) =>
           dispatch(
             changeDataPointColors([
-              theme.palette.dataPointColors[0],
+              theme.graphpolaris.dataPointColors[0],
               v.currentTarget.value,
-              ...theme.palette.dataPointColors.slice(2),
+              ...theme.graphpolaris.dataPointColors.slice(2),
             ])
           )
         }
         type="color"
         id="head"
         name="head"
-        value={theme.palette.dataPointColors[1]}
+        value={theme.graphpolaris.dataPointColors[1]}
       />
+      Change dataPointColors reflects to global
     </>
   );
 };
diff --git a/package.json b/package.json
index f642de7d3..d8191b152 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
     "@emotion/react": "^11.7.1",
     "@emotion/styled": "^11.6.0",
     "@mui/material": "^5.4.1",
+    "@mui/styles": "^5.4.1",
     "@reduxjs/toolkit": "^1.7.1",
     "@types/cytoscape": "^3.19.4",
     "@types/react-grid-layout": "^1.3.0",
diff --git a/yarn.lock b/yarn.lock
index 9fba981e2..4b4bf132a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1216,6 +1216,13 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
+"@babel/runtime@^7.8.3":
+  version "7.17.2"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
+  integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
 "@babel/template@^7.12.13", "@babel/template@^7.12.7", "@babel/template@^7.16.7", "@babel/template@^7.3.3":
   version "7.16.7"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
@@ -2125,6 +2132,29 @@
     "@emotion/cache" "^11.7.1"
     prop-types "^15.7.2"
 
+"@mui/styles@^5.4.1":
+  version "5.4.1"
+  resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.4.1.tgz#994171da902267184fffa19896ee5bbb07d4d783"
+  integrity sha512-ekw2NBC06re0H9SvCA1XgtFcghB8AQdGPXD3mjIz5ik+X+LvR+f2TeoCpJpkKp7UQdcNn6uuYi6BO6irTiQhdw==
+  dependencies:
+    "@babel/runtime" "^7.17.0"
+    "@emotion/hash" "^0.8.0"
+    "@mui/private-theming" "^5.4.1"
+    "@mui/types" "^7.1.1"
+    "@mui/utils" "^5.4.1"
+    clsx "^1.1.1"
+    csstype "^3.0.10"
+    hoist-non-react-statics "^3.3.2"
+    jss "^10.8.2"
+    jss-plugin-camel-case "^10.8.2"
+    jss-plugin-default-unit "^10.8.2"
+    jss-plugin-global "^10.8.2"
+    jss-plugin-nested "^10.8.2"
+    jss-plugin-props-sort "^10.8.2"
+    jss-plugin-rule-value-function "^10.8.2"
+    jss-plugin-vendor-prefixer "^10.8.2"
+    prop-types "^15.7.2"
+
 "@mui/system@^5.4.1":
   version "5.4.1"
   resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.4.1.tgz#cf253369fbf1d960c792f0ec068fa28af81be3d4"
@@ -7334,6 +7364,14 @@ css-tree@^1.1.2, css-tree@^1.1.3:
     mdn-data "2.0.14"
     source-map "^0.6.1"
 
+css-vendor@^2.0.8:
+  version "2.0.8"
+  resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d"
+  integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==
+  dependencies:
+    "@babel/runtime" "^7.8.3"
+    is-in-browser "^1.0.2"
+
 css-what@^3.2.1:
   version "3.4.2"
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
@@ -10077,6 +10115,11 @@ husky@^7.0.0:
   resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
   integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
 
+hyphenate-style-name@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d"
+  integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
+
 iconv-lite@0.4.24, iconv-lite@^0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -10514,6 +10557,11 @@ is-hexadecimal@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
   integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
 
+is-in-browser@^1.0.2, is-in-browser@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
+  integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
+
 is-installed-globally@~0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
@@ -11523,6 +11571,76 @@ jsprim@^2.0.2:
     json-schema "0.4.0"
     verror "1.10.0"
 
+jss-plugin-camel-case@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz#4921b568b38d893f39736ee8c4c5f1c64670aaf7"
+  integrity sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    hyphenate-style-name "^1.0.3"
+    jss "10.9.0"
+
+jss-plugin-default-unit@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz#bb23a48f075bc0ce852b4b4d3f7582bc002df991"
+  integrity sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.9.0"
+
+jss-plugin-global@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz#fc07a0086ac97aca174e37edb480b69277f3931f"
+  integrity sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.9.0"
+
+jss-plugin-nested@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz#cc1c7d63ad542c3ccc6e2c66c8328c6b6b00f4b3"
+  integrity sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.9.0"
+    tiny-warning "^1.0.2"
+
+jss-plugin-props-sort@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz#30e9567ef9479043feb6e5e59db09b4de687c47d"
+  integrity sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.9.0"
+
+jss-plugin-rule-value-function@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz#379fd2732c0746fe45168011fe25544c1a295d67"
+  integrity sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.9.0"
+    tiny-warning "^1.0.2"
+
+jss-plugin-vendor-prefixer@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz#aa9df98abfb3f75f7ed59a3ec50a5452461a206a"
+  integrity sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    css-vendor "^2.0.8"
+    jss "10.9.0"
+
+jss@10.9.0, jss@^10.8.2:
+  version "10.9.0"
+  resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.0.tgz#7583ee2cdc904a83c872ba695d1baab4b59c141b"
+  integrity sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    csstype "^3.0.2"
+    is-in-browser "^1.1.3"
+    tiny-warning "^1.0.2"
+
 "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
@@ -15944,6 +16062,11 @@ timsort@^0.3.0:
   resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
   integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
 
+tiny-warning@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
+  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+
 tmp@^0.0.33:
   version "0.0.33"
   resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
-- 
GitLab