Browse Source

add icon and update config

RoyLiu 5 years ago
parent
commit
4edad0f60e
80 changed files with 1317 additions and 44 deletions
  1. 37 0
      .babelrc
  2. 1 1
      .eslintrc.js
  3. 17 4
      constants/style.js
  4. 4 0
      custom.d.ts
  5. 4 20
      global/styled.js
  6. 2 0
      next-env.d.ts
  7. 14 4
      package.json
  8. 5 2
      pages/_app.js
  9. 0 0
      public/favicon.ico
  10. 9 0
      public/static/icons/arrow00.svg
  11. 12 0
      public/static/icons/arrow01.svg
  12. 0 7
      public/static/icons/btn-kdancloud-document-arrow.svg
  13. 4 0
      public/static/icons/close.svg
  14. 17 0
      public/static/icons/navbar/Export00.svg
  15. 18 0
      public/static/icons/navbar/Export01.svg
  16. 14 0
      public/static/icons/navbar/MyAnnotation00.svg
  17. 15 0
      public/static/icons/navbar/MyAnnotation01.svg
  18. 11 0
      public/static/icons/navbar/Print00.svg
  19. 11 0
      public/static/icons/navbar/Print01.svg
  20. 11 0
      public/static/icons/navbar/Search00.svg
  21. 12 0
      public/static/icons/navbar/Search01.svg
  22. 9 0
      public/static/icons/navbar/Thumbnail00.svg
  23. 10 0
      public/static/icons/navbar/Thumbnail01.svg
  24. 12 0
      public/static/icons/navbar/rename00.svg
  25. 12 0
      public/static/icons/navbar/rename01.svg
  26. 11 0
      public/static/icons/sidebar/AddImage00.svg
  27. 11 0
      public/static/icons/sidebar/AddImage01.svg
  28. 11 0
      public/static/icons/sidebar/Aligncenter00.svg
  29. 11 0
      public/static/icons/sidebar/Aligncenter01.svg
  30. 11 0
      public/static/icons/sidebar/Alignleft00.svg
  31. 11 0
      public/static/icons/sidebar/Alignleft01.svg
  32. 11 0
      public/static/icons/sidebar/Alignright00.svg
  33. 11 0
      public/static/icons/sidebar/Alignright01.svg
  34. 11 0
      public/static/icons/sidebar/Arrow.svg
  35. 11 0
      public/static/icons/sidebar/Back.svg
  36. 9 0
      public/static/icons/sidebar/Bold00.svg
  37. 9 0
      public/static/icons/sidebar/Bold01.svg
  38. 10 0
      public/static/icons/sidebar/Border.svg
  39. 9 0
      public/static/icons/sidebar/Circle.svg
  40. 46 0
      public/static/icons/sidebar/Colorpicker.svg
  41. 14 0
      public/static/icons/sidebar/CreatForm00.svg
  42. 11 0
      public/static/icons/sidebar/Dropdown00.svg
  43. 11 0
      public/static/icons/sidebar/Dropdown01.svg
  44. 10 0
      public/static/icons/sidebar/Fill.svg
  45. 14 0
      public/static/icons/sidebar/Freehand.svg
  46. 10 0
      public/static/icons/sidebar/Highlight.svg
  47. 9 0
      public/static/icons/sidebar/Italic00.svg
  48. 9 0
      public/static/icons/sidebar/Italic01.svg
  49. 9 0
      public/static/icons/sidebar/Line.svg
  50. 27 0
      public/static/icons/sidebar/Markuptools00.svg
  51. 27 0
      public/static/icons/sidebar/Markuptools01.svg
  52. 9 0
      public/static/icons/sidebar/Rectangle.svg
  53. 10 0
      public/static/icons/sidebar/Shape.svg
  54. 10 0
      public/static/icons/sidebar/Squiggly.svg
  55. 10 0
      public/static/icons/sidebar/Strikeout.svg
  56. 17 0
      public/static/icons/sidebar/Text.svg
  57. 10 0
      public/static/icons/sidebar/Textfiled.svg
  58. 10 0
      public/static/icons/sidebar/Underline.svg
  59. 14 0
      public/static/icons/sidebar/Watermark00.svg
  60. 14 0
      public/static/icons/sidebar/Watermark01.svg
  61. 12 0
      public/static/icons/sidebar/checkBox.svg
  62. 14 0
      public/static/icons/sidebar/clear.svg
  63. 17 0
      public/static/icons/sidebar/eraser00.svg
  64. 17 0
      public/static/icons/sidebar/eraser01.svg
  65. 13 0
      public/static/icons/sidebar/markpen.svg
  66. 12 0
      public/static/icons/sidebar/radiobutton.svg
  67. 12 0
      public/static/icons/sidebar/redo.svg
  68. 10 0
      public/static/icons/sidebar/undo.svg
  69. 16 0
      public/static/icons/toolbar/RotateLeft00.svg
  70. 16 0
      public/static/icons/toolbar/RotateLeft01.svg
  71. 16 0
      public/static/icons/toolbar/RotateRight00.svg
  72. 16 0
      public/static/icons/toolbar/RotateRight01.svg
  73. 12 0
      public/static/icons/toolbar/hand00.svg
  74. 12 0
      public/static/icons/toolbar/hand01.svg
  75. 12 0
      public/static/icons/toolbar/zoom00.svg
  76. 12 0
      public/static/icons/toolbar/zoom01.svg
  77. 12 0
      public/static/icons/toolbar/zoomOut00.svg
  78. 12 0
      public/static/icons/toolbar/zoomOut01.svg
  79. 34 0
      tsconfig.json
  80. 331 6
      yarn.lock

+ 37 - 0
.babelrc

@@ -3,6 +3,43 @@
     "next/babel"
   ],
   "plugins": [
+    ["inline-react-svg", {
+      "svgo": {
+        "plugins": [
+          { "cleanupAttrs": true },
+          { "removeDoctype": true },
+          { "removeXMLProcInst": true },
+          { "removeComments": true },
+          { "removeMetadata": true },
+          { "removeDesc": true },
+          { "removeUselessDefs": true },
+          { "removeEditorsNSData": true },
+          { "removeEmptyAttrs": true },
+          { "removeHiddenElems": true },
+          { "removeEmptyText": true },
+          { "removeEmptyContainers": true },
+          { "cleanupEnableBackground": true },
+          { "minifyStyles": true },
+          { "convertStyleToAttrs": true },
+          { "convertColors": true },
+          { "convertPathData": true },
+          { "convertTransform": true },
+          { "removeUnknownsAndDefaults": true },
+          { "removeNonInheritableGroupAttrs": true },
+          { "removeUselessStrokeAndFill": true },
+          { "removeUnusedNS": true },
+          { "cleanupIDs": false },
+          { "cleanupNumericValues": true },
+          { "cleanupListOfValues": true },
+          { "moveElemsAttrsToGroup": true },
+          { "moveGroupAttrsToElems": true },
+          { "collapseGroups": true },
+          { "mergePaths": true },
+          { "convertShapeToPath": true },
+          { "removeXMLNS": true }
+        ]
+      }
+    }],
     [
       "babel-plugin-styled-components", 
       {

+ 1 - 1
.eslintrc.js

@@ -6,7 +6,7 @@ module.exports = {
   "extends": ['airbnb'],
   "rules": {
     "no-console": "off",
-    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
+    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".ts", ".tsx"] }],
     "camelcase": [0, {properties: "never"}],
   }
 };

+ 17 - 4
constants/style.js

@@ -1,4 +1,3 @@
-
 export const mediaRule = {
   mobileS: '320px',
   mobileM: '375px',
@@ -8,7 +7,21 @@ export const mediaRule = {
   desktop: '1440px',
 };
 
-export const theme = {
-  primary: '',
-  secondary: '',
+export const color = {
+  primary: '#586af2',
+  secondary: '#2d3e4e',
+  'primary-light': '#d7def9',
+  'french-blue': '#3645b4',
+  info: '#90caf9',
+  success: '#43a047',
+  error: '#d32f2f',
+  warning: '#ffa000',
+  gray: '#d8d8d8',
+  'light-gray': '#e5e5e5',
+  'soft-blue': 'rgba(94, 112, 241, 0.12)',
+  black05: 'rgba(0, 0, 0, 0.05)',
+  black23: 'rgba(0, 0, 0, 0.23)',
+  black38: 'rgba(0, 0, 0, 0.38)',
+  black56: 'rgba(0, 0, 0, 0.56)',
+  black87: 'rgba(0, 0, 0, 0.87)',
 };

+ 4 - 0
custom.d.ts

@@ -0,0 +1,4 @@
+declare module "*.svg" {
+  const content: string;
+  export default content;
+}

+ 4 - 20
global/styled.js

@@ -1,26 +1,6 @@
 /* eslint-disable consistent-return */
 import { createGlobalStyle, css } from 'styled-components';
 
-export const mediaRule = {
-  mobileS: '320px',
-  mobileM: '375px',
-  mobileL: '425px',
-  tablet: '768px',
-  laptop: '1024px',
-  desktop: '1440px',
-};
-
-export const theme = {
-  primary: '#00bfa5',
-  secondary: '#2d3e4e',
-  success: '#b8e986',
-  error: '#ff3b30',
-  warning: '#ffc107',
-  sicklyGreen: '#8ec31f',
-  normal: '#828282',
-  progress: '#acda33',
-};
-
 export const GlobalStyle = createGlobalStyle`
   html, body {
     margin: 0;
@@ -33,6 +13,10 @@ export const GlobalStyle = createGlobalStyle`
     }
   }
 
+  div {
+    box-sizing: border-box;
+  }
+
   ${({ lang }) => {
     if (lang === 'zh-tw') return css`@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC:300,400,700&display=swap');`;
     if (lang === 'zh-cn') return css`@import url('https://fonts.googleapis.com/css?family=Noto+Sans+SC:300,400,700&display=swap');`;

+ 2 - 0
next-env.d.ts

@@ -0,0 +1,2 @@
+/// <reference types="next" />
+/// <reference types="next/types/global" />

+ 14 - 4
package.json

@@ -8,7 +8,7 @@
     "build:server": "webpack --config ./server/webpack.config.js",
     "start": "node .next/server.bundle.js",
     "export": "npm run build && next export",
-    "lint": "eslint '**/*.js'",
+    "lint": "eslint . --ext .js,.jsx,.ts,.tsx",
     "test": "jest --config=./config/jest.config.js"
   },
   "pre-commit": [
@@ -16,7 +16,8 @@
   ],
   "dependencies": {
     "@loadable/component": "^5.10.3",
-    "babel-plugin-inline-react-svg": "^1.0.1",
+    "@material-ui/core": "^4.6.1",
+    "babel-plugin-inline-react-svg": "^1.1.0",
     "body-parser": "^1.18.3",
     "compression": "^1.7.4",
     "cookie-parser": "^1.4.3",
@@ -31,6 +32,8 @@
     "next-i18next": "^2.0.0",
     "next-redux-saga": "^3.0.0",
     "next-redux-wrapper": "^2.0.0",
+    "notistack": "^0.9.6",
+    "pdfjs-dist": "^2.2.228",
     "prop-types": "^15.6.2",
     "react": "16.10.0",
     "react-dom": "16.10.0",
@@ -38,13 +41,20 @@
     "redux": "^4.0.0",
     "redux-devtools-extension": "^2.13.5",
     "redux-saga": "^1.1.1",
-    "styled-components": "4.4.0"
+    "styled-components": "4.4.0",
+    "webpack": "^4.41.2"
   },
   "license": "MIT",
   "devDependencies": {
     "@babel/node": "^7.2.2",
     "@testing-library/jest-dom": "^4.2.3",
     "@testing-library/react": "^9.3.2",
+    "@types/jest": "^24.0.23",
+    "@types/node": "^12.12.7",
+    "@types/react": "^16.9.11",
+    "@types/react-dom": "^16.9.4",
+    "@types/react-redux": "^7.1.5",
+    "@types/styled-components": "^4.4.0",
     "babel-eslint": "^10.0.1",
     "babel-jest": "^25.0.0",
     "babel-plugin-styled-components": "^1.7.1",
@@ -59,7 +69,7 @@
     "pre-commit": "^1.2.2",
     "react-test-renderer": "^16.5.2",
     "secure-env": "^1.2.0",
-    "webpack": "^4.29.6",
+    "typescript": "^3.7.2",
     "webpack-cli": "^3.2.3",
     "webpack-node-externals": "^1.7.2"
   },

+ 5 - 2
pages/_app.js

@@ -3,6 +3,7 @@ import React from 'react';
 import { Provider } from 'react-redux';
 import withRedux from 'next-redux-wrapper';
 import withReduxSaga from 'next-redux-saga';
+import { SnackbarProvider } from 'notistack';
 import loadable from '@loadable/component';
 import { i18n, appWithTranslation } from '../i18n';
 
@@ -28,8 +29,10 @@ class MainApp extends App {
 
     return (
       <Provider store={store}>
-        <GlobalStyle lang={i18n.language} />
-        <Component {...pageProps} />
+        <SnackbarProvider maxSnack={3}>
+          <GlobalStyle lang={i18n.language} />
+          <Component {...pageProps} />
+        </SnackbarProvider>
       </Provider>
     );
   }

public/static/favicon.ico → public/favicon.ico


+ 9 - 0
public/static/icons/arrow00.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="web/ic/arrow00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="baseline-arrow_drop_down-24px">
+            <polygon id="Path" points="0 0 24 0 24 24 0 24"></polygon>
+            <polygon id="Path" fill="#000000" fill-rule="nonzero" points="7 10 12 15 17 10"></polygon>
+        </g>
+    </g>
+</svg>

+ 12 - 0
public/static/icons/arrow01.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>web/ic/arrow01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="web/ic/arrow01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="baseline-arrow_drop_down-24px">
+            <polygon id="Path" fill-opacity="0.38" fill="#000000" fill-rule="nonzero" points="7 10 12 15 17 10"></polygon>
+            <polygon id="Path" points="0 0 24 0 24 24 0 24"></polygon>
+        </g>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 0 - 7
public/static/icons/btn-kdancloud-document-arrow.svg


+ 4 - 0
public/static/icons/close.svg

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="presentation">
+  <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path>
+</svg>

+ 17 - 0
public/static/icons/navbar/Export00.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Navbar/ic/Export00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Navbar/ic/Export00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <g id="Group-2" transform="translate(19.000000, 17.000000)" stroke="#707070" stroke-width="2.5">
+            <g id="Bars/ic-search00" transform="translate(0.000000, 8.650126)" stroke-linejoin="round">
+                <g id="Group">
+                    <polyline id="Path" points="4.125 0.933504679 0 0.933504679 0 17 22 17 22 0.933504679 17.875 0.933504679"></polyline>
+                </g>
+            </g>
+            <path d="M11,1.15012627 L11,18.1501263" id="Line"></path>
+            <polyline id="Path-9" stroke-linejoin="round" points="5.51624279 5.58363094 11.0998737 0 16.6835047 5.58363094"></polyline>
+        </g>
+    </g>
+</svg>

+ 18 - 0
public/static/icons/navbar/Export01.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Navbar/ic/Export01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Navbar/ic/Export01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" fill-opacity="0.6" fill="#586AF2" x="12" y="12" width="36" height="36" rx="4"></rect>
+        <g id="Group-2" transform="translate(19.000000, 17.000000)" stroke="#FFFFFF" stroke-linecap="round" stroke-width="2.5">
+            <g id="Bars/ic-search00" transform="translate(0.000000, 8.650126)" stroke-linejoin="round">
+                <g id="Group">
+                    <polyline id="Path" points="4.125 0.933504679 0 0.933504679 0 17 22 17 22 0.933504679 17.875 0.933504679"></polyline>
+                </g>
+            </g>
+            <path d="M11,1.15012627 L11,18.1501263" id="Line"></path>
+            <polyline id="Path-9" stroke-linejoin="round" points="5.51624279 5.58363094 11.0998737 0 16.6835047 5.58363094"></polyline>
+        </g>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 14 - 0
public/static/icons/navbar/MyAnnotation00.svg


File diff suppressed because it is too large
+ 15 - 0
public/static/icons/navbar/MyAnnotation01.svg


File diff suppressed because it is too large
+ 11 - 0
public/static/icons/navbar/Print00.svg


File diff suppressed because it is too large
+ 11 - 0
public/static/icons/navbar/Print01.svg


File diff suppressed because it is too large
+ 11 - 0
public/static/icons/navbar/Search00.svg


File diff suppressed because it is too large
+ 12 - 0
public/static/icons/navbar/Search01.svg


File diff suppressed because it is too large
+ 9 - 0
public/static/icons/navbar/Thumbnail00.svg


File diff suppressed because it is too large
+ 10 - 0
public/static/icons/navbar/Thumbnail01.svg


+ 12 - 0
public/static/icons/navbar/rename00.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Navbar/ic/rename00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Navbar/ic/rename00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="round-edit-24px-(1)">
+            <polygon id="Path" points="0 0 24 0 24 24 0 24"></polygon>
+            <path d="M3,17.46 L3,20.5 C3,20.78 3.22,21 3.5,21 L6.54,21 C6.67,21 6.8,20.95 6.89,20.85 L17.81,9.94 L14.06,6.19 L3.15,17.1 C3.05,17.2 3,17.32 3,17.46 Z M20.71,7.04 C21.1,6.65 21.1,6.02 20.71,5.63 L18.37,3.29 C17.98,2.9 17.35,2.9 16.96,3.29 L15.13,5.12 L18.88,8.87 L20.71,7.04 Z" id="Shape" fill-opacity="0.38" fill="#000000" fill-rule="nonzero"></path>
+        </g>
+    </g>
+</svg>

+ 12 - 0
public/static/icons/navbar/rename01.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Navbar/ic/rename01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Navbar/ic/rename01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="round-edit-24px-(1)">
+            <polygon id="Path" points="0 0 24 0 24 24 0 24"></polygon>
+            <path d="M3,17.46 L3,20.5 C3,20.78 3.22,21 3.5,21 L6.54,21 C6.67,21 6.8,20.95 6.89,20.85 L17.81,9.94 L14.06,6.19 L3.15,17.1 C3.05,17.2 3,17.32 3,17.46 Z M20.71,7.04 C21.1,6.65 21.1,6.02 20.71,5.63 L18.37,3.29 C17.98,2.9 17.35,2.9 16.96,3.29 L15.13,5.12 L18.88,8.87 L20.71,7.04 Z" id="Shape" fill="#586AF2" fill-rule="nonzero"></path>
+        </g>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/AddImage00.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/AddImage00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/AddImage00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" stroke="#707070" stroke-width="1.5" x="3" y="5" width="18" height="14" rx="2"></rect>
+        <polyline id="Path" stroke="#707070" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" points="5.06524792 19 10.2219266 13.1818182 12.5546205 15.8130909 16.7849722 11 21.0652479 15.8695978"></polyline>
+        <circle id="Oval" fill="#707070" cx="7.5" cy="9.5" r="1.5"></circle>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/AddImage01.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/AddImage01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/AddImage01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" stroke="#586AF2" stroke-width="1.5" x="3" y="5" width="18" height="14" rx="2"></rect>
+        <polyline id="Path" stroke="#586AF2" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" points="5.06524792 19 10.2219266 13.1818182 12.5546205 15.8130909 16.7849722 11 21.0652479 15.8695978"></polyline>
+        <circle id="Oval" fill="#586AF2" cx="7.5" cy="9.5" r="1.5"></circle>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Aligncenter00.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Aligncenter00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Aligncenter00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M10,12 L14,12" id="Path-4" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M8,17 L16,17" id="Path-4-Copy" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Aligncenter01.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Aligncenter01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Aligncenter01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M10,12 L14,12" id="Path-4" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M8,17 L16,17" id="Path-4-Copy" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#FFFFFF" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Alignleft00.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Alignleft00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Alignleft00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M6,12 L10,12" id="Path-4" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M6,17 L14,17" id="Path-4-Copy" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Alignleft01.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Alignleft01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Alignleft01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M6,12 L10,12" id="Path-4" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M6,17 L14,17" id="Path-4-Copy" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#FFFFFF" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Alignright00.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Alignright00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Alignright00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M14,12 L18,12" id="Path-4" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M10,17 L18,17" id="Path-4-Copy" stroke="#586AF2" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Alignright01.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Alignright01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Alignright01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M14,12 L18,12" id="Path-4" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M10,17 L18,17" id="Path-4-Copy" stroke="#FFFFFF" stroke-width="1.5"></path>
+        <path d="M6,7 L18,7" id="Path-4-Copy-2" stroke="#FFFFFF" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Arrow.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Arrow</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Arrow" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group" transform="translate(18.000000, 5.500000) scale(-1, -1) rotate(-135.000000) translate(-18.000000, -5.500000) translate(16.000000, 4.000000)"></g>
+        <path d="M5.5,18.5 L18.5,5.5" id="Line-10" stroke="#586AF2" stroke-width="1.5" stroke-linecap="round"></path>
+        <polyline id="Path-9" stroke="#586AF2" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="translate(18.000000, 6.000000) rotate(-315.000000) translate(-18.000000, -6.000000) " points="16 7 18 5 20 7"></polyline>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 11 - 0
public/static/icons/sidebar/Back.svg


File diff suppressed because it is too large
+ 9 - 0
public/static/icons/sidebar/Bold00.svg


File diff suppressed because it is too large
+ 9 - 0
public/static/icons/sidebar/Bold01.svg


+ 10 - 0
public/static/icons/sidebar/Border.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Border</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Border" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" stroke="#586AF2" stroke-width="1.5" x="9.75" y="9.75" width="10.5" height="10.5" rx="1"></rect>
+        <rect id="Rectangle-Copy" stroke="#586AF2" stroke-width="1.5" x="3.75" y="3.75" width="10.5" height="10.5" rx="1"></rect>
+    </g>
+</svg>

+ 9 - 0
public/static/icons/sidebar/Circle.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Circle</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Circle" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <circle id="Oval" stroke="#586AF2" stroke-width="1.5" cx="12" cy="12" r="6.25"></circle>
+    </g>
+</svg>

+ 46 - 0
public/static/icons/sidebar/Colorpicker.svg

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Menu/ic/Colorpicker</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Menu/ic/Colorpicker" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="BYR_color_wheel" fill-rule="nonzero">
+            <g id="a-link" transform="translate(17.916667, 9.385417)" fill="#FF844C">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(19.121038, 16.519609) rotate(30.000000) translate(-19.121038, -16.519609) translate(16.621038, 13.519609)" fill="#FF614F">
+                <path d="M0.0382688291,4.27174626 C0.327557307,3.21009346 0.327557307,2.09037824 0.0382688291,1.02872543 L3.68716466,0.0418920965 C4.15122099,1.74982744 4.15122099,3.55064425 3.68716466,5.2585796" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(15.913799, 19.470802) rotate(60.000000) translate(-15.913799, -19.470802) translate(13.413799, 16.470802)" fill="#E7387E">
+                <path d="M0.0382688291,4.27174626 C0.327557307,3.21009346 0.327557307,2.09037824 0.0382688291,1.02872543 L3.68716466,0.0418920965 C4.15122099,1.74982744 4.15122099,3.55064425 3.68716466,5.2585796" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(11.635417, 20.416667) rotate(90.000000) translate(-11.635417, -20.416667) translate(9.135417, 17.416667)" fill="#C038F3">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(7.501225, 19.121038) rotate(120.000000) translate(-7.501225, -19.121038) translate(5.001225, 16.121038)" fill="#864FFE">
+                <path d="M0.0382688291,4.27174626 C0.327557307,3.21009346 0.327557307,2.09037824 0.0382688291,1.02872543 L3.68716466,0.0418920965 C4.15122099,1.74982744 4.15122099,3.55064425 3.68716466,5.2585796" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(4.542891, 15.888782) rotate(150.000000) translate(-4.542891, -15.888782) translate(2.042891, 12.888782)" fill="#3B84FF">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(3.604167, 11.635417) rotate(180.000000) translate(-3.604167, -11.635417) translate(1.104167, 8.635417)" fill="#03C5FD">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(4.917891, 7.482532) rotate(-150.000000) translate(-4.917891, -7.482532) translate(2.417891, 4.482532)" fill="#99D363">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(8.132051, 4.542891) rotate(-120.000000) translate(-8.132051, -4.542891) translate(5.632051, 1.542891)" fill="#E6ED69">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(12.385417, 3.604167) rotate(-90.000000) translate(-12.385417, -3.604167) translate(9.885417, 0.604167)" fill="#FFF56C">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(16.128091, 4.678791) rotate(-60.000000) translate(-16.128091, -4.678791) translate(13.628091, 1.178791)" fill="#FFC93E">
+                <path d="M0.0426319307,5.22131265 C0.331920408,4.15965984 0.331920408,3.03994462 0.0426319307,1.97829181 L3.69152776,0.99145848 C4.15558409,2.69939382 4.15558409,4.50021064 3.69152776,6.20814598" id="a"></path>
+            </g>
+            <g id="a-link" transform="translate(19.477943, 8.132051) rotate(-30.000000) translate(-19.477943, -8.132051) translate(16.977943, 5.132051)" fill="#FFB040">
+                <path d="M0.04459375,4.24651042 C0.333882228,3.18485761 0.333882228,2.06514239 0.04459375,1.00348958 L3.69348958,0.01665625 C4.15754591,1.72459159 4.15754591,3.52540841 3.69348958,5.23334375" id="a"></path>
+            </g>
+        </g>
+    </g>
+</svg>

+ 14 - 0
public/static/icons/sidebar/CreatForm00.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/CreatForm00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/CreatForm00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <g id="Group" transform="translate(16.000000, 4.000000)" stroke="#707070" stroke-linejoin="round" stroke-width="1.5">
+            <path d="M2.5,1.46666667 L2.5,15" id="Line-3"></path>
+            <path d="M0,1 L5,1" id="Line-4"></path>
+            <path d="M0,16 L5,16" id="Line-4-Copy"></path>
+        </g>
+        <path d="M15,18 L12.6,18 L4.92,18 C3.85961328,18 3,17.242328 3,16.3076923 L3,8.69230769 C3,7.75767196 3.85961328,7 4.92,7 L4.92,7 L12.6,7 L12.6,7 L15,7" id="Shape" stroke="#707070" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Dropdown00.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Dropdown00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Dropdown00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="round-keyboard_arrow_down-24px-(2)" transform="translate(6.000000, 8.000000)" fill="#000000" fill-rule="nonzero">
+            <path d="M2.12,1.29 L6,5.17 L9.88,1.29 C10.27,0.9 10.9,0.9 11.29,1.29 C11.68,1.68 11.68,2.31 11.29,2.7 L6.7,7.29 C6.31,7.68 5.68,7.68 5.29,7.29 L0.7,2.7 C0.31,2.31 0.31,1.68 0.7,1.29 C1.09,0.91 1.73,0.9 2.12,1.29 Z" id="Path"></path>
+        </g>
+    </g>
+</svg>

+ 11 - 0
public/static/icons/sidebar/Dropdown01.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Dropdown01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Dropdown01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="round-keyboard_arrow_down-24px-(2)" transform="translate(6.000000, 8.000000)" fill="#586AF2" fill-rule="nonzero">
+            <path d="M2.12,1.29 L6,5.17 L9.88,1.29 C10.27,0.9 10.9,0.9 11.29,1.29 C11.68,1.68 11.68,2.31 11.29,2.7 L6.7,7.29 C6.31,7.68 5.68,7.68 5.29,7.29 L0.7,2.7 C0.31,2.31 0.31,1.68 0.7,1.29 C1.09,0.91 1.73,0.9 2.12,1.29 Z" id="Path"></path>
+        </g>
+    </g>
+</svg>

+ 10 - 0
public/static/icons/sidebar/Fill.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Fill</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Fill" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" fill="#586AF2" x="9" y="9" width="12" height="12" rx="1"></rect>
+        <rect id="Rectangle-Copy" fill="#586AF2" x="3" y="3" width="12" height="12" rx="1"></rect>
+    </g>
+</svg>

+ 14 - 0
public/static/icons/sidebar/Freehand.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Freehand</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Freehand" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-3" transform="translate(10.000000, 14.500000) rotate(-315.000000) translate(-10.000000, -14.500000) translate(3.000000, 5.000000)">
+            <path d="M0.5,3.5 C2.66666667,4.09349714 4.83333333,4.39024571 7,4.39024571 C9.16666667,4.39024571 11.3333333,4.09349714 13.5,3.5" id="Line-4" stroke="#27BEFD" stroke-width="2" stroke-linecap="round"></path>
+            <path d="M9,12 L9,13 L9,13 L9,14 C9,15.1045695 8.40304633,16 7.66666667,16 L6.33333333,16 C5.59695367,16 5,15.1045695 5,14 L5,13 L5,13 L5,12" id="Path" stroke="#000000" stroke-width="1.5"></path>
+            <path d="M0,0 C0,7.17970175 3.13400675,13 7,13 L7,13 C10.8659932,13 14,7.17970175 14,0" id="Path" stroke="#000000" stroke-width="1.5" stroke-linecap="round"></path>
+            <rect id="Rectangle-Copy-7" stroke="#000000" fill="#586AF2" x="6.5" y="16.5" width="1" height="2" rx="0.5"></rect>
+        </g>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 10 - 0
public/static/icons/sidebar/Highlight.svg


+ 9 - 0
public/static/icons/sidebar/Italic00.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Italic00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Italic00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <polygon id="I" fill="#586AF2" fill-rule="nonzero" points="13.3769531 18.515625 7 18.515625 7.43945312 16.3964844 9.27539062 16.3964844 11.2578125 7.11914062 9.421875 7.11914062 9.86132812 5 16.2382812 5 15.7988281 7.11914062 13.953125 7.11914062 11.9804688 16.3964844 13.8164062 16.3964844"></polygon>
+    </g>
+</svg>

+ 9 - 0
public/static/icons/sidebar/Italic01.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Italic01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Italic01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <polygon id="I" fill="#FFFFFF" fill-rule="nonzero" points="13.3769531 18.515625 7 18.515625 7.43945312 16.3964844 9.27539062 16.3964844 11.2578125 7.11914062 9.421875 7.11914062 9.86132812 5 16.2382812 5 15.7988281 7.11914062 13.953125 7.11914062 11.9804688 16.3964844 13.8164062 16.3964844"></polygon>
+    </g>
+</svg>

+ 9 - 0
public/static/icons/sidebar/Line.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Line</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Line" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <path d="M5.5,18.5 L18.5,5.5" id="Line-10" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 27 - 0
public/static/icons/sidebar/Markuptools00.svg


File diff suppressed because it is too large
+ 27 - 0
public/static/icons/sidebar/Markuptools01.svg


+ 9 - 0
public/static/icons/sidebar/Rectangle.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Rectangle</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Rectangle" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="Rectangle" stroke="#586AF2" stroke-width="1.5" x="5.75" y="6.75" width="12.5" height="10.5" rx="1"></rect>
+    </g>
+</svg>

+ 10 - 0
public/static/icons/sidebar/Shape.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Shape</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Shape" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <circle id="Oval" stroke="#000000" stroke-width="1.5" cx="9" cy="10" r="6.25"></circle>
+        <rect id="Rectangle" stroke="#000000" stroke-width="1.5" x="8.75" y="9.75" width="12.5" height="10.5" rx="1"></rect>
+    </g>
+</svg>

+ 10 - 0
public/static/icons/sidebar/Squiggly.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Squiggly</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Squiggly" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M7.75,7.5 C7.33578644,7.5 7,7.16421356 7,6.75 C7,6.33578644 7.33578644,6 7.75,6 L16.25,6 C16.6642136,6 17,6.33578644 17,6.75 C17,7.16421356 16.6642136,7.5 16.25,7.5 L12.75,7.5 L12.75,7.5 L12.75,16 C12.75,16.4142136 12.4142136,16.75 12,16.75 C11.5857864,16.75 11.25,16.4142136 11.25,16 L11.25,7.5 L7.75,7.5 Z" id="Combined-Shape" fill="#C1C0C6"></path>
+        <path d="M3.375,19 C4.8125,19 4.8125,20 6.25,20 C7.6875,20 7.6875,19 9.125,19 C10.5625,19 10.5625,20 12,20 C13.4375,20 13.4375,19 14.875,19 C16.3125,19 16.3125,20 17.75,20 C19.1875,20 19.1875,19 20.625,19" id="Line" stroke="#02FF36" stroke-width="1.5" stroke-linecap="round" transform="translate(12.000000, 19.500000) rotate(-180.000000) translate(-12.000000, -19.500000) "></path>
+    </g>
+</svg>

+ 10 - 0
public/static/icons/sidebar/Strikeout.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Strikeout</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Strikeout" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M6.75,7.5 C6.33578644,7.5 6,7.16421356 6,6.75 C6,6.33578644 6.33578644,6 6.75,6 L17.25,6 C17.6642136,6 18,6.33578644 18,6.75 C18,7.16421356 17.6642136,7.5 17.25,7.5 L12.75,7.5 L12.75,7.5 L12.75,18 C12.75,18.4142136 12.4142136,18.75 12,18.75 C11.5857864,18.75 11.25,18.4142136 11.25,18 L11.25,7.5 L6.75,7.5 Z" id="Combined-Shape" fill="#C1C0C6"></path>
+        <path d="M3.5,12 L20.5,12" id="Line-2" stroke="#FF1B89" stroke-width="1.8" stroke-linecap="round"></path>
+    </g>
+</svg>

+ 17 - 0
public/static/icons/sidebar/Text.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Text</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Text" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M7.75,8.5 C7.33578644,8.5 7,8.16421356 7,7.75 C7,7.33578644 7.33578644,7 7.75,7 L16.25,7 C16.6642136,7 17,7.33578644 17,7.75 C17,8.16421356 16.6642136,8.5 16.25,8.5 L12.75,8.5 L12.75,8.5 L12.75,17 C12.75,17.4142136 12.4142136,17.75 12,17.75 C11.5857864,17.75 11.25,17.4142136 11.25,17 L11.25,8.5 L7.75,8.5 Z" id="Combined-Shape" fill="#F25858"></path>
+        <path d="M3.5,4 L3.5,20" id="Line-16" stroke="#C1C0C6" stroke-width="1.5" stroke-linecap="round"></path>
+        <path d="M20.5,4 L20.5,20" id="Line-17" stroke="#C1C0C6" stroke-width="1.5" stroke-linecap="round"></path>
+        <path d="M4,3.5 L20,3.5" id="Line-18" stroke="#C1C0C6" stroke-width="1.5" stroke-linecap="round"></path>
+        <path d="M4,20.5 L20,20.5" id="Line" stroke="#C1C0C6" stroke-width="1.5" stroke-linecap="round"></path>
+        <rect id="Rectangle" fill="#586AF2" x="2" y="2" width="3" height="3" rx="1.5"></rect>
+        <rect id="Rectangle-Copy-3" fill="#586AF2" x="2" y="19" width="3" height="3" rx="1.5"></rect>
+        <rect id="Rectangle-Copy-2" fill="#586AF2" x="19" y="2" width="3" height="3" rx="1.5"></rect>
+        <rect id="Rectangle-Copy-4" fill="#586AF2" x="19" y="19" width="3" height="3" rx="1.5"></rect>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 10 - 0
public/static/icons/sidebar/Textfiled.svg


+ 10 - 0
public/static/icons/sidebar/Underline.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Underline</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Underline" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M7.75,7.5 C7.33578644,7.5 7,7.16421356 7,6.75 C7,6.33578644 7.33578644,6 7.75,6 L16.25,6 C16.6642136,6 17,6.33578644 17,6.75 C17,7.16421356 16.6642136,7.5 16.25,7.5 L12.75,7.5 L12.75,7.5 L12.75,16 C12.75,16.4142136 12.4142136,16.75 12,16.75 C11.5857864,16.75 11.25,16.4142136 11.25,16 L11.25,7.5 L7.75,7.5 Z" id="Combined-Shape" fill="#C1C0C6"></path>
+        <path d="M3.5,19.5 L20.5,19.5" id="Line-2" stroke="#27BEFD" stroke-width="1.8" stroke-linecap="round"></path>
+    </g>
+</svg>

+ 14 - 0
public/static/icons/sidebar/Watermark00.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Watermark00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Watermark00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group" transform="translate(12.000000, 12.500000) scale(1, -1) translate(-12.000000, -12.500000) translate(3.000000, 7.000000)" stroke="#C1C0C6" stroke-linecap="round" stroke-width="1.5">
+            <path d="M0,5.5 L18,5.5" id="Path-4-Copy-3"></path>
+            <path d="M0,1 L18,1" id="Path-4-Copy-5"></path>
+            <path d="M0,10 L18,10" id="Path-4-Copy-4"></path>
+        </g>
+        <path d="M10.628866,4 L13.371134,4 L19,20 L16.4226804,20 L15.0824742,15.9887955 L8.91752577,15.9887955 L7.57731959,20 L5,20 L10.628866,4 Z M9.63917526,13.837535 L14.3608247,13.837535 L12.0515464,6.82352941 L11.9690722,6.82352941 L9.63917526,13.837535 Z" id="Combined-Shape" fill="#707070" fill-rule="nonzero"></path>
+    </g>
+</svg>

+ 14 - 0
public/static/icons/sidebar/Watermark01.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/Watermark01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/Watermark01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <g id="Group" transform="translate(16.000000, 4.000000)" stroke="#586AF2" stroke-linejoin="round" stroke-width="1.5">
+            <path d="M2.5,1.46666667 L2.5,15" id="Line-3"></path>
+            <path d="M0,1 L5,1" id="Line-4"></path>
+            <path d="M0,16 L5,16" id="Line-4-Copy"></path>
+        </g>
+        <path d="M15,18 L12.6,18 L4.92,18 C3.85961328,18 3,17.242328 3,16.3076923 L3,8.69230769 C3,7.75767196 3.85961328,7 4.92,7 L4.92,7 L12.6,7 L12.6,7 L15,7" id="Shape" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 12 - 0
public/static/icons/sidebar/checkBox.svg


+ 14 - 0
public/static/icons/sidebar/clear.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/clear</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/clear" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-15" transform="translate(12.500000, 12.000000) rotate(-315.000000) translate(-12.500000, -12.000000) translate(6.000000, 3.000000)" stroke="#FE2712">
+            <path d="M2.62593227,7.75 L0.95224524,16.9552786 C0.949562334,16.9700346 0.948212717,16.9850021 0.948212717,17 C0.948212717,17.1380712 1.06014153,17.25 1.19821272,17.25 L11.8017873,17.25 C11.8167852,17.25 11.8317527,17.2486504 11.8465086,17.2459675 C11.9823527,17.2212686 12.0724537,17.0911227 12.0477548,16.9552786 L10.3740677,7.75 L2.62593227,7.75 Z" id="Rectangle" stroke-width="1.5"></path>
+            <path d="M8,11 L8,17" id="Line-15" stroke-linecap="round"></path>
+            <path d="M5,14 L5,17" id="Line-15-Copy" stroke-linecap="round"></path>
+            <path d="M8.54545455,0 L8.54545455,4 L10.1818182,4 C10.6336875,4 11,4.3581722 11,4.8 L11,7.2 C11,7.6418278 10.6336875,8 10.1818182,8 L2.81818182,8 C2.36631248,8 2,7.6418278 2,7.2 L2,4.8 C2,4.3581722 2.36631248,4 2.81818182,4 L4.45454545,4 L4.45454545,0" id="Shape" stroke-width="1.5" stroke-linecap="round"></path>
+        </g>
+    </g>
+</svg>

+ 17 - 0
public/static/icons/sidebar/eraser00.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/eraser00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/eraser00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-13" transform="translate(2.000000, 3.000000)" stroke="#586AF2" stroke-width="1.5">
+            <g id="Group-9" transform="translate(9.781134, 9.718866) rotate(-315.000000) translate(-9.781134, -9.718866) translate(5.281134, 1.718866)">
+                <path d="M1,0 L8,0 C8.55228475,-3.23497668e-16 9,0.44771525 9,1 L9,7.69047619 L9,11.5357143 L9,12.3060831 C9,12.5391284 8.91860641,12.7648558 8.76987935,12.9442725 L7.04992189,15.0191418 C6.85994088,15.2483253 6.57773003,15.3809524 6.28004255,15.3809524 L4.5,15.3809524 L1,15.3809524 C0.44771525,15.3809524 6.76353751e-17,14.9332371 0,14.3809524 L0,1 C-6.76353751e-17,0.44771525 0.44771525,-8.97747659e-16 1,0 Z" id="Rectangle"></path>
+                <path d="M0.45,10.4047619 L8.55,10.4047619" id="Line-13" stroke-linecap="square"></path>
+            </g>
+            <path d="M10.5,16.5 L11.5,16.5" id="Line-14" stroke-linecap="round"></path>
+            <path d="M13.5,16.5 L14.5,16.5" id="Line-14-Copy" stroke-linecap="round"></path>
+            <path d="M16.5,16.5 L17.5,16.5" id="Line-14-Copy-2" stroke-linecap="round"></path>
+        </g>
+    </g>
+</svg>

+ 17 - 0
public/static/icons/sidebar/eraser01.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/eraser01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/eraser01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-13" transform="translate(2.000000, 3.000000)" stroke="#FFFFFF" stroke-width="1.5">
+            <g id="Group-9" transform="translate(9.781134, 9.718866) rotate(-315.000000) translate(-9.781134, -9.718866) translate(5.281134, 1.718866)">
+                <path d="M1,0 L8,0 C8.55228475,-3.23497668e-16 9,0.44771525 9,1 L9,7.69047619 L9,11.5357143 L9,12.3060831 C9,12.5391284 8.91860641,12.7648558 8.76987935,12.9442725 L7.04992189,15.0191418 C6.85994088,15.2483253 6.57773003,15.3809524 6.28004255,15.3809524 L4.5,15.3809524 L1,15.3809524 C0.44771525,15.3809524 6.76353751e-17,14.9332371 0,14.3809524 L0,1 C-6.76353751e-17,0.44771525 0.44771525,-8.97747659e-16 1,0 Z" id="Rectangle"></path>
+                <path d="M0.45,10.4047619 L8.55,10.4047619" id="Line-13" stroke-linecap="square"></path>
+            </g>
+            <path d="M10.5,16.5 L11.5,16.5" id="Line-14" stroke-linecap="round"></path>
+            <path d="M13.5,16.5 L14.5,16.5" id="Line-14-Copy" stroke-linecap="round"></path>
+            <path d="M16.5,16.5 L17.5,16.5" id="Line-14-Copy-2" stroke-linecap="round"></path>
+        </g>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 13 - 0
public/static/icons/sidebar/markpen.svg


+ 12 - 0
public/static/icons/sidebar/radiobutton.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/radiobutton</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/radiobutton" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group" transform="translate(2.000000, 2.000000)">
+            <circle id="Oval" stroke="#000000" stroke-width="1.5" cx="10" cy="10" r="10"></circle>
+            <circle id="Oval" fill="#27BEFD" cx="10" cy="10" r="7"></circle>
+        </g>
+    </g>
+</svg>

+ 12 - 0
public/static/icons/sidebar/redo.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/redo</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/redo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <g id="Group" transform="translate(12.500000, 12.000000) scale(-1, 1) translate(-12.500000, -12.000000) translate(3.500000, 4.500000)" stroke="#586AF2" stroke-width="1.5">
+            <polyline id="Path-9" stroke-linejoin="round" transform="translate(6.500000, 3.500000) rotate(-90.000000) translate(-6.500000, -3.500000) " points="3.5 5 6.5 2 9.5 5"></polyline>
+            <path d="M5,3.5 L12,3.5 C15.0375661,3.5 17.5,5.96243388 17.5,9 C17.5,12.0375661 15.0375661,14.5 12,14.5 L0,14.5" id="Path"></path>
+        </g>
+    </g>
+</svg>

+ 10 - 0
public/static/icons/sidebar/undo.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>MainMenu/ic/undo</title>
+    <desc>Created with Sketch.</desc>
+    <g id="MainMenu/ic/undo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <polyline id="Path-9" stroke="#586AF2" stroke-width="1.5" stroke-linejoin="round" transform="translate(10.000000, 8.000000) rotate(-90.000000) translate(-10.000000, -8.000000) " points="7 9.5 10 6.5 13 9.5"></polyline>
+        <path d="M8.5,8 L15.5,8 C18.5375661,8 21,10.4624339 21,13.5 C21,16.5375661 18.5375661,19 15.5,19 L3.5,19" id="Path" stroke="#586AF2" stroke-width="1.5"></path>
+    </g>
+</svg>

+ 16 - 0
public/static/icons/toolbar/RotateLeft00.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>ToolBar/Default/ic/RotateLeft00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="ToolBar/Default/ic/RotateLeft00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-4" transform="translate(16.000000, 10.000000) rotate(-360.000000) translate(-16.000000, -10.000000) translate(12.000000, 4.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.8906796 8.08159716,12.6362338 7.1598159,12.7420274 L7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#C1C0C6" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#C1C0C6" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+        <g id="Group-4" transform="translate(10.000000, 16.000000) rotate(-90.000000) translate(-10.000000, -16.000000) translate(6.000000, 10.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.9664983 7.96649831,12.75 7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#707070" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#707070" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+    </g>
+</svg>

+ 16 - 0
public/static/icons/toolbar/RotateLeft01.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>ToolBar/Default/ic/RotateLeft01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="ToolBar/Default/ic/RotateLeft01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-4" transform="translate(16.000000, 10.000000) rotate(-360.000000) translate(-16.000000, -10.000000) translate(12.000000, 4.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.8906796 8.08159716,12.6362338 7.1598159,12.7420274 L7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#C1C0C6" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#C1C0C6" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+        <g id="Group-4" transform="translate(10.000000, 16.000000) rotate(-90.000000) translate(-10.000000, -16.000000) translate(6.000000, 10.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.9664983 7.96649831,12.75 7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#586AF2" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#586AF2" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+    </g>
+</svg>

+ 16 - 0
public/static/icons/toolbar/RotateRight00.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>ToolBar/Default/ic/RotateRight00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="ToolBar/Default/ic/RotateRight00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-4" transform="translate(8.000000, 10.000000) rotate(-360.000000) translate(-8.000000, -10.000000) translate(4.000000, 4.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.8906796 8.08159716,12.6362338 7.1598159,12.7420274 L7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#C1C0C6" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#C1C0C6" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+        <g id="Group-4" transform="translate(14.000000, 16.000000) rotate(-270.000000) translate(-14.000000, -16.000000) translate(10.000000, 10.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.9664983 7.96649831,12.75 7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#707070" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#707070" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+    </g>
+</svg>

+ 16 - 0
public/static/icons/toolbar/RotateRight01.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>ToolBar/Default/ic/RotateRight01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="ToolBar/Default/ic/RotateRight01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group-4" transform="translate(8.000000, 10.000000) rotate(-360.000000) translate(-8.000000, -10.000000) translate(4.000000, 4.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.8906796 8.08159716,12.6362338 7.1598159,12.7420274 L7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#C1C0C6" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#C1C0C6" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+        <g id="Group-4" transform="translate(14.000000, 16.000000) rotate(-270.000000) translate(-14.000000, -16.000000) translate(10.000000, 10.000000)">
+            <path d="M5.31066017,-0.75 L8.75,2.68933983 L8.75,11 C8.75,11.9664983 7.96649831,12.75 7,12.75 L1,12.75 C0.0335016878,12.75 -0.75,11.9664983 -0.75,11 L-0.75,1 C-0.75,0.0335016878 0.0335016878,-0.75 1,-0.75 L5.31066017,-0.75 Z" id="Combined-Shape" stroke="#586AF2" stroke-width="1.5"></path>
+            <path d="M5,0 L8,3 L6,3 C5.44771525,3 5,2.55228475 5,2 L5,0 L5,0 Z" id="Rectangle" fill="#586AF2" transform="translate(6.500000, 1.500000) rotate(-360.000000) translate(-6.500000, -1.500000) "></path>
+        </g>
+    </g>
+</svg>

File diff suppressed because it is too large
+ 12 - 0
public/static/icons/toolbar/hand00.svg


File diff suppressed because it is too large
+ 12 - 0
public/static/icons/toolbar/hand01.svg


File diff suppressed because it is too large
+ 12 - 0
public/static/icons/toolbar/zoom00.svg


File diff suppressed because it is too large
+ 12 - 0
public/static/icons/toolbar/zoom01.svg


+ 12 - 0
public/static/icons/toolbar/zoomOut00.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Default/ic/zoomOut00</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Default/ic/zoomOut00" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group" transform="translate(3.000000, 3.000000)" stroke="#707070" stroke-width="1.5">
+            <circle id="Oval" cx="9" cy="9" r="9"></circle>
+            <path d="M5,9.5 L13,9.5" id="Path-5" stroke-linecap="round"></path>
+        </g>
+    </g>
+</svg>

+ 12 - 0
public/static/icons/toolbar/zoomOut01.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 58 (84663) - https://sketch.com -->
+    <title>Default/ic/zoomOut01</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Default/ic/zoomOut01" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Group" transform="translate(3.000000, 3.000000)" stroke="#586AF2" stroke-width="1.5">
+            <circle id="Oval" cx="9" cy="9" r="9"></circle>
+            <path d="M5,9.5 L13,9.5" id="Path-5" stroke-linecap="round"></path>
+        </g>
+    </g>
+</svg>

+ 34 - 0
tsconfig.json

@@ -0,0 +1,34 @@
+{
+  "compilerOptions": {
+    "target": "es5",
+    "allowJs": true,
+    "alwaysStrict": true,
+    "esModuleInterop": true,
+    "forceConsistentCasingInFileNames": true,
+    "isolatedModules": true,
+    "jsx": "preserve",
+    "lib": [
+      "dom",
+      "es2017"
+    ],
+    "module": "esnext",
+    "moduleResolution": "node",
+    "noEmit": true,
+    "noFallthroughCasesInSwitch": true,
+    "noUnusedLocals": true,
+    "noUnusedParameters": true,
+    "resolveJsonModule": true,
+    "skipLibCheck": true,
+    "strict": true
+  },
+  "files": [ "custom.d.ts" ],
+  "include": [
+    "**/*.ts",
+    "**/*.tsx",
+  ],
+  "exclude": [
+    "node_modules",
+    "**/*.spec.ts",
+    "**/*.test.ts"
+  ]
+}

+ 331 - 6
yarn.lock

@@ -828,6 +828,13 @@
   dependencies:
     regenerator-runtime "^0.13.2"
 
+"@babel/runtime@^7.4.4":
+  version "7.7.2"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a"
+  integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==
+  dependencies:
+    regenerator-runtime "^0.13.2"
+
 "@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.7.0":
   version "7.7.0"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0"
@@ -874,6 +881,11 @@
   resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
   integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
 
+"@emotion/hash@^0.7.1":
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.3.tgz#a166882c81c0c6040975dd30df24fae8549bd96f"
+  integrity sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==
+
 "@emotion/is-prop-valid@^0.8.1":
   version "0.8.5"
   resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz#2dda0791f0eafa12b7a0a5b39858405cc7bde983"
@@ -1056,6 +1068,72 @@
     "@babel/runtime" "^7.6.0"
     hoist-non-react-statics "^3.3.0"
 
+"@material-ui/core@^4.6.1":
+  version "4.6.1"
+  resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.6.1.tgz#039f97443547a88c41d290deabfb4a044c6031ec"
+  integrity sha512-TljDMCJmi1zh7JhAFTp8qjIlbkVACiNftrcitzJJ+hAqpuP9PTO4euEkkAuYjISfUFZl3Z4kaOrBwN1HDrhIOQ==
+  dependencies:
+    "@babel/runtime" "^7.4.4"
+    "@material-ui/styles" "^4.6.0"
+    "@material-ui/system" "^4.5.2"
+    "@material-ui/types" "^4.1.1"
+    "@material-ui/utils" "^4.5.2"
+    "@types/react-transition-group" "^4.2.0"
+    clsx "^1.0.2"
+    convert-css-length "^2.0.1"
+    hoist-non-react-statics "^3.2.1"
+    normalize-scroll-left "^0.2.0"
+    popper.js "^1.14.1"
+    prop-types "^15.7.2"
+    react-transition-group "^4.3.0"
+
+"@material-ui/styles@^4.6.0":
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.6.0.tgz#15679fab6dcbe0cc2416f01a22966f3ea26607c5"
+  integrity sha512-lqqh4UEMdIYcU1Yth4pQyMTah02uAkg3NOT3MirN9FUexdL8pNA6zCHigEgDSfwmvnXyxHhxTkphfy0DRfnt9w==
+  dependencies:
+    "@babel/runtime" "^7.4.4"
+    "@emotion/hash" "^0.7.1"
+    "@material-ui/types" "^4.1.1"
+    "@material-ui/utils" "^4.5.2"
+    clsx "^1.0.2"
+    csstype "^2.5.2"
+    hoist-non-react-statics "^3.2.1"
+    jss "^10.0.0"
+    jss-plugin-camel-case "^10.0.0"
+    jss-plugin-default-unit "^10.0.0"
+    jss-plugin-global "^10.0.0"
+    jss-plugin-nested "^10.0.0"
+    jss-plugin-props-sort "^10.0.0"
+    jss-plugin-rule-value-function "^10.0.0"
+    jss-plugin-vendor-prefixer "^10.0.0"
+    prop-types "^15.7.2"
+
+"@material-ui/system@^4.5.2":
+  version "4.5.2"
+  resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.5.2.tgz#7143bd8422a3f33f435c23f378136254004bbd60"
+  integrity sha512-h9RWvdM9XKlHHqwiuhyvWdobptQkHli+m2jJFs7i1AI/hmGsIc4reDmS7fInhETgt/Txx7uiAIznfRNIIVHmQw==
+  dependencies:
+    "@babel/runtime" "^7.4.4"
+    "@material-ui/utils" "^4.5.2"
+    prop-types "^15.7.2"
+
+"@material-ui/types@^4.1.1":
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-4.1.1.tgz#b65e002d926089970a3271213a3ad7a21b17f02b"
+  integrity sha512-AN+GZNXytX9yxGi0JOfxHrRTbhFybjUJ05rnsBVjcB+16e466Z0Xe5IxawuOayVZgTBNDxmPKo5j4V6OnMtaSQ==
+  dependencies:
+    "@types/react" "*"
+
+"@material-ui/utils@^4.5.2":
+  version "4.5.2"
+  resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.5.2.tgz#4c2fb531d357cf0da8cece53b588dff9b0bde934"
+  integrity sha512-zhbNfHd1gLa8At6RPDG7uMZubHxbY+LtM6IkSfeWi6Lo4Ax80l62YaN1QmUpO1IvGCkn/j62tQX3yObiQZrJsQ==
+  dependencies:
+    "@babel/runtime" "^7.4.4"
+    prop-types "^15.7.2"
+    react-is "^16.8.6"
+
 "@redux-saga/core@^1.1.3":
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4"
@@ -1174,6 +1252,14 @@
   dependencies:
     "@babel/types" "^7.3.0"
 
+"@types/hoist-non-react-statics@^3.3.0":
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
+  integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
+  dependencies:
+    "@types/react" "*"
+    hoist-non-react-statics "^3.3.0"
+
 "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
@@ -1194,6 +1280,18 @@
     "@types/istanbul-lib-coverage" "*"
     "@types/istanbul-lib-report" "*"
 
+"@types/jest@^24.0.23":
+  version "24.0.23"
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.23.tgz#046f8e2ade026fe831623e361a36b6fb9a4463e4"
+  integrity sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==
+  dependencies:
+    jest-diff "^24.3.0"
+
+"@types/node@^12.12.7":
+  version "12.12.7"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.7.tgz#01e4ea724d9e3bd50d90c11fd5980ba317d8fa11"
+  integrity sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==
+
 "@types/prop-types@*":
   version "15.7.3"
   resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
@@ -1206,7 +1304,39 @@
   dependencies:
     "@types/react" "*"
 
-"@types/react@*":
+"@types/react-dom@^16.9.4":
+  version "16.9.4"
+  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.4.tgz#0b58df09a60961dcb77f62d4f1832427513420df"
+  integrity sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react-native@*":
+  version "0.60.22"
+  resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.60.22.tgz#ba199a441cb0612514244ffb1d0fe6f04c878575"
+  integrity sha512-LTXMKEyGA+x4kadmjujX6yAgpcaZutJ01lC7zLJWCULaZg7Qw5/3iOQpwIJRUcOc+a8A2RR7rSxplehVf9IuhA==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/react" "*"
+
+"@types/react-redux@^7.1.5":
+  version "7.1.5"
+  resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.5.tgz#c7a528d538969250347aa53c52241051cf886bd3"
+  integrity sha512-ZoNGQMDxh5ENY7PzU7MVonxDzS1l/EWiy8nUhDqxFqUZn4ovboCyvk4Djf68x6COb7vhGTKjyjxHxtFdAA5sUA==
+  dependencies:
+    "@types/hoist-non-react-statics" "^3.3.0"
+    "@types/react" "*"
+    hoist-non-react-statics "^3.3.0"
+    redux "^4.0.0"
+
+"@types/react-transition-group@^4.2.0":
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.3.tgz#4924133f7268694058e415bf7aea2d4c21131470"
+  integrity sha512-Hk8jiuT7iLOHrcjKP/ZVSyCNXK73wJAUz60xm0mVhiRujrdiI++j4duLiL282VGxwAgxetHQFfqA29LgEeSkFA==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react@*", "@types/react@^16.9.11":
   version "16.9.11"
   resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.11.tgz#70e0b7ad79058a7842f25ccf2999807076ada120"
   integrity sha512-UBT4GZ3PokTXSWmdgC/GeCGEJXE5ofWyibCcecRLUVN2ZBpXQGVgQGtG2foS7CrTKFKlQVVswLvf7Js6XA/CVQ==
@@ -1219,6 +1349,15 @@
   resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
   integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
 
+"@types/styled-components@^4.4.0":
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-4.4.0.tgz#15a3d59533fd3a5bd013db4a7c4422ec542c59d2"
+  integrity sha512-QFl+w3hQJNHE64Or3PXMFpC3HAQDiuQLi5o9m1XPEwYWfgCZtAribO5ksjxnO8U0LG8Parh0ESCgVxo4VfxlHg==
+  dependencies:
+    "@types/react" "*"
+    "@types/react-native" "*"
+    csstype "^2.2.0"
+
 "@types/testing-library__dom@*", "@types/testing-library__dom@^6.0.0":
   version "6.10.0"
   resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-6.10.0.tgz#590d76e3875a7c536dc744eb530cbf51b6483404"
@@ -1810,7 +1949,7 @@ babel-plugin-dynamic-import-node@^2.3.0:
   dependencies:
     object.assign "^4.1.0"
 
-babel-plugin-inline-react-svg@^1.0.1:
+babel-plugin-inline-react-svg@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/babel-plugin-inline-react-svg/-/babel-plugin-inline-react-svg-1.1.0.tgz#b39519c78249b3fcf895b541c38b485a2b11b0be"
   integrity sha512-Y/tBMi7Jh7Jh+DGcSNsY9/RW33nvcR067HFK0Dp+03jpidil1sJAffBdajK72xn3tbwMsgFLJubxW5xpQLJytA==
@@ -2302,6 +2441,11 @@ class-utils@^0.3.5:
     isobject "^3.0.0"
     static-extend "^0.1.1"
 
+classnames@^2.2.6:
+  version "2.2.6"
+  resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
+  integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
 cli-cursor@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
@@ -2333,6 +2477,11 @@ clone@^1.0.2:
   resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
   integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
+clsx@^1.0.2:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.0.4.tgz#0c0171f6d5cb2fe83848463c15fcc26b4df8c2ec"
+  integrity sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg==
+
 co@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -2501,6 +2650,11 @@ content-type@1.0.4, content-type@~1.0.4:
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
+convert-css-length@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/convert-css-length/-/convert-css-length-2.0.1.tgz#90a76bde5bfd24d72881a5b45d02249b2c1d257c"
+  integrity sha512-iGpbcvhLPRKUbBc0Quxx7w/bV14AC3ItuBEGMahA5WTYqB8lq9jH0kTXFheCBASsYnqeMFZhiTruNxr1N59Axg==
+
 convert-source-map@1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
@@ -2727,6 +2881,14 @@ css-to-react-native@^2.2.2:
     css-color-keywords "^1.0.0"
     postcss-value-parser "^3.3.0"
 
+css-vendor@^2.0.6:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.7.tgz#4e6d53d953c187981576d6a542acc9fb57174bda"
+  integrity sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==
+  dependencies:
+    "@babel/runtime" "^7.6.2"
+    is-in-browser "^1.0.2"
+
 css.escape@^1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
@@ -2797,7 +2959,7 @@ cssstyle@^2.0.0:
   dependencies:
     cssom "~0.3.6"
 
-csstype@^2.2.0:
+csstype@^2.2.0, csstype@^2.5.2, csstype@^2.6.5, csstype@^2.6.7:
   version "2.6.7"
   resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
   integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
@@ -3016,6 +3178,14 @@ doctrine@^3.0.0:
   dependencies:
     esutils "^2.0.2"
 
+dom-helpers@^5.0.1:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821"
+  integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==
+  dependencies:
+    "@babel/runtime" "^7.6.3"
+    csstype "^2.6.7"
+
 domain-browser@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -4105,6 +4275,13 @@ hoist-non-react-statics@^3.2.0, hoist-non-react-statics@^3.3.0:
   dependencies:
     react-is "^16.7.0"
 
+hoist-non-react-statics@^3.2.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#101685d3aff3b23ea213163f6e8e12f4f111e19f"
+  integrity sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==
+  dependencies:
+    react-is "^16.7.0"
+
 homedir-polyfill@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
@@ -4180,6 +4357,11 @@ https-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
+hyphenate-style-name@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48"
+  integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==
+
 i18next-browser-languagedetector@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-4.0.1.tgz#6a0b44a93835146287130da36ce3d04a1836879f"
@@ -4540,6 +4722,11 @@ is-glob@^4.0.0:
   dependencies:
     is-extglob "^2.1.1"
 
+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-number@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -4778,7 +4965,7 @@ jest-config@^25.0.0:
     pretty-format "^25.0.0"
     realpath-native "^1.1.0"
 
-jest-diff@^24.0.0, jest-diff@^24.9.0:
+jest-diff@^24.0.0, jest-diff@^24.3.0, jest-diff@^24.9.0:
   version "24.9.0"
   resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
   integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
@@ -5266,6 +5453,75 @@ jsprim@^1.2.2:
     json-schema "0.2.3"
     verror "1.10.0"
 
+jss-plugin-camel-case@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0.tgz#d601bae2e8e2041cc526add289dcd7062db0a248"
+  integrity sha512-yALDL00+pPR4FJh+k07A8FeDvfoPPuXU48HLy63enAubcVd3DnS+2rgqPXglHDGixIDVkCSXecl/l5GAMjzIbA==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    hyphenate-style-name "^1.0.3"
+    jss "10.0.0"
+
+jss-plugin-default-unit@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0.tgz#601caf5f576fc0c66986fbe8a9aa37307a3a3ea3"
+  integrity sha512-sURozIOdCtGg9ap18erQ+ijndAfEGtTaetxfU3H4qwC18Bi+fdvjlY/ahKbuu0ASs7R/+WKCP7UaRZOjUDMcdQ==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.0.0"
+
+jss-plugin-global@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.0.0.tgz#0fed1b6461e0d57d6e394f877529009bc1cb3cb6"
+  integrity sha512-80ofWKSQUo62bxLtRoTNe0kFPtHgUbAJeOeR36WEGgWIBEsXLyXOnD5KNnjPqG4heuEkz9eSLccjYST50JnI7Q==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.0.0"
+
+jss-plugin-nested@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.0.0.tgz#d37ecc013c3b0d0e4acc2b48f6b62da6ae53948b"
+  integrity sha512-waxxwl/po1hN3azTyixKnr8ReEqUv5WK7WsO+5AWB0bFndML5Yqnt8ARZ90HEg8/P6WlqE/AB2413TkCRZE8bA==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.0.0"
+    tiny-warning "^1.0.2"
+
+jss-plugin-props-sort@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0.tgz#38a13407384c2a4a7c026659488350669b953b18"
+  integrity sha512-41mf22CImjwNdtOG3r+cdC8+RhwNm616sjHx5YlqTwtSJLyLFinbQC/a4PIFk8xqf1qpFH1kEAIw+yx9HaqZ3g==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.0.0"
+
+jss-plugin-rule-value-function@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0.tgz#3ec1b781b7c86080136dbef6c36e91f20244b72e"
+  integrity sha512-Jw+BZ8JIw1f12V0SERqGlBT1JEPWax3vuZpMym54NAXpPb7R1LYHiCTIlaJUyqvIfEy3kiHMtgI+r2whGgRIxQ==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    jss "10.0.0"
+
+jss-plugin-vendor-prefixer@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0.tgz#400280535b0f483a9c78105afe4eee61b70018eb"
+  integrity sha512-qslqvL0MUbWuzXJWdUxpj6mdNUX8jr4FFTo3aZnAT65nmzWL7g8oTr9ZxmTXXgdp7ANhS1QWE7036/Q2isFBpw==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    css-vendor "^2.0.6"
+    jss "10.0.0"
+
+jss@10.0.0, jss@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/jss/-/jss-10.0.0.tgz#998d5026c02accae15708de83bd6ba57bac977d2"
+  integrity sha512-TPpDFsiBjuERiL+dFDq8QCdiF9oDasPcNqCKLGCo/qED3fNYOQ8PX2lZhknyTiAt3tZrfOFbb0lbQ9lTjPZxsQ==
+  dependencies:
+    "@babel/runtime" "^7.3.1"
+    csstype "^2.6.5"
+    is-in-browser "^1.1.3"
+    tiny-warning "^1.0.2"
+
 jsx-ast-utils@^2.2.1:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f"
@@ -5361,7 +5617,7 @@ loader-runner@^2.4.0:
   resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
   integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
 
-loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+loader-utils@1.2.3, loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
   integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
@@ -5955,6 +6211,11 @@ node-addon-api@^1.1.0:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.1.tgz#cf813cd69bb8d9100f6bdca6755fc268f54ac492"
   integrity sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==
 
+node-ensure@^0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7"
+  integrity sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=
+
 node-environment-flags@^1.0.5:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
@@ -6076,6 +6337,11 @@ normalize-range@^0.1.2:
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
   integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
 
+normalize-scroll-left@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz#9445d74275f303cc661e113329aefa492f58114c"
+  integrity sha512-t5oCENZJl8TGusJKoCJm7+asaSsPuNmK6+iEjrZ5TyBj2f02brCRsd4c83hwtu+e5d4LCSBZ0uoDlMjBo+A8yA==
+
 normalize-url@1.9.1:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
@@ -6086,6 +6352,16 @@ normalize-url@1.9.1:
     query-string "^4.1.0"
     sort-keys "^1.0.0"
 
+notistack@^0.9.6:
+  version "0.9.6"
+  resolved "https://registry.yarnpkg.com/notistack/-/notistack-0.9.6.tgz#a9b2589e2379096eac292139306f486d4ed5697a"
+  integrity sha512-vo1zOwhQBxwWiMxwVjeSDXNzJuaM/nfkayv4uRo+9ON9CAtaPSNt15QHeELKkbOSLH29fb7zmoZl4AlkCqhGsA==
+  dependencies:
+    classnames "^2.2.6"
+    hoist-non-react-statics "^3.3.0"
+    prop-types "^15.7.2"
+    react-is "^16.8.6"
+
 npm-bundled@^1.0.1:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
@@ -6581,6 +6857,14 @@ pbkdf2@^3.0.3:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
+pdfjs-dist@^2.2.228:
+  version "2.2.228"
+  resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.2.228.tgz#777b068a0a16c96418433303807c183058b47aaa"
+  integrity sha512-W5LhYPMS2UKX0ELIa4u+CFCMoox5qQNQElt0bAK2mwz1V8jZL0rvLao+0tBujce84PK6PvWG36Nwr7agCCWFGQ==
+  dependencies:
+    node-ensure "^0.0.0"
+    worker-loader "^2.0.0"
+
 performance-now@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -6665,6 +6949,11 @@ pnp-webpack-plugin@1.5.0:
   dependencies:
     ts-pnp "^1.1.2"
 
+popper.js@^1.14.1:
+  version "1.16.0"
+  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3"
+  integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==
+
 posix-character-classes@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -7346,6 +7635,16 @@ react-test-renderer@^16.5.2:
     react-is "^16.8.6"
     scheduler "^0.17.0"
 
+react-transition-group@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683"
+  integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    dom-helpers "^5.0.1"
+    loose-envify "^1.4.0"
+    prop-types "^15.6.2"
+
 react@16.10.0:
   version "16.10.0"
   resolved "https://registry.yarnpkg.com/react/-/react-16.10.0.tgz#95c41e8fc1c706e174deef54b663b5ab94c8ee32"
@@ -7776,6 +8075,14 @@ scheduler@^0.17.0:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
 
+schema-utils@^0.4.0:
+  version "0.4.7"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+  integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
+  dependencies:
+    ajv "^6.1.0"
+    ajv-keywords "^3.1.0"
+
 schema-utils@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@@ -8475,6 +8782,11 @@ timers-browserify@^2.0.4:
   dependencies:
     setimmediate "^1.0.4"
 
+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"
@@ -8654,6 +8966,11 @@ typescript-tuple@^2.2.1:
   dependencies:
     typescript-compare "^0.0.2"
 
+typescript@^3.7.2:
+  version "3.7.2"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb"
+  integrity sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==
+
 uglify-js@^3.1.4:
   version "3.6.8"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.8.tgz#5edcbcf9d49cbb0403dc49f856fe81530d65145e"
@@ -9016,7 +9333,7 @@ webpack@4.39.0:
     watchpack "^1.6.0"
     webpack-sources "^1.4.1"
 
-webpack@^4.29.6:
+webpack@^4.41.2:
   version "4.41.2"
   resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e"
   integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==
@@ -9121,6 +9438,14 @@ worker-farm@^1.7.0:
   dependencies:
     errno "~0.1.7"
 
+worker-loader@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac"
+  integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==
+  dependencies:
+    loader-utils "^1.0.0"
+    schema-utils "^0.4.0"
+
 worker-rpc@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"