First sketch of ui types

This commit is contained in:
uwap 2017-11-10 19:45:44 +01:00
parent 82081e7c83
commit b22e28dc44
8 changed files with 221 additions and 105 deletions

View file

@ -126,6 +126,11 @@ module.exports = {
"space-before-blocks": "error", "space-before-blocks": "error",
"quotes": ["error", "double"], "quotes": ["error", "double"],
// ES6
"arrow-spacing": "error",
"arrow-parens": "warning",
"no-confusing-arrow": ["error", {"allowParens": true}],
// react // react
"react/prop-types": "off", "react/prop-types": "off",
"react/display-name": "off", "react/display-name": "off",

View file

@ -350,7 +350,7 @@ const config : Config = {
name: "Rundumleuchte", name: "Rundumleuchte",
position: [310,275], position: [310,275],
icon: "alarm-light", icon: "alarm-light",
iconColor: ({runumleuchte}) => rundumleuchte == "on" ? "#CCCC00" : "#000000", iconColor: ({rundumleuchte}) => rundumleuchte == "on" ? "#CCCC00" : "#000000",
ui: [ ui: [
{ {
type: "toggle", type: "toggle",

View file

@ -20,10 +20,10 @@
"mdi": "^2.0.46", "mdi": "^2.0.46",
"mqtt": "^2.11.0", "mqtt": "^2.11.0",
"ramda": "^0.24.1", "ramda": "^0.24.1",
"react": "^15.6.1", "react": "^16.0.0",
"react-dom": "^15.6.1", "react-dom": "^16.0.0",
"react-leaflet": "^1.5.0", "react-leaflet": "^1.5.0",
"react-tap-event-plugin": "^2.0.1", "react-tap-event-plugin": "^3.0.0",
"redux": "^3.7.2" "redux": "^3.7.2"
}, },
"devDependencies": { "devDependencies": {

View file

@ -10,6 +10,7 @@ import * as Colors from "material-ui/colors";
import SideBar from "components/SideBar"; import SideBar from "components/SideBar";
import ControlMap from "components/ControlMap"; import ControlMap from "components/ControlMap";
import TopBar from "components/TopBar"; import TopBar from "components/TopBar";
import UiItemList from "components/UiItemList";
export type AppProps = { export type AppProps = {
config: Config config: Config
@ -27,7 +28,10 @@ class App extends React.Component<AppProps & Classes, AppState> {
this.state = { this.state = {
selectedControl: null, selectedControl: null,
drawerOpened: false, drawerOpened: false,
mqttState: _.map(props.topics, ({defaultValue}) => defaultValue) mqttState: _.map(props.topics, topic => ({
actual: topic.defaultValue,
internal: topic.values[topic.defaultValue]
}))
}; };
} }
@ -64,7 +68,11 @@ class App extends React.Component<AppProps & Classes, AppState> {
connected={false} /> connected={false} />
<SideBar open={this.state.drawerOpened} <SideBar open={this.state.drawerOpened}
control={this.state.selectedControl} control={this.state.selectedControl}
onCloseRequest={this.closeDrawer.bind(this)} /> onCloseRequest={this.closeDrawer.bind(this)}
>
{this.state.selectedControl == null
|| <UiItemList state={this.state.mqttState} controls={this.state.selectedControl.ui} />}
</SideBar>
</div> </div>
</MuiThemeProvider> </MuiThemeProvider>
<ControlMap width={1000} height={700} zoom={0} <ControlMap width={1000} height={700} zoom={0}

View file

@ -60,6 +60,7 @@ class SideBar extends React.Component<SideBarProps & Classes, SideBarState> {
</Toolbar> </Toolbar>
</AppBar> </AppBar>
<List id="drawer_uiComponents"> <List id="drawer_uiComponents">
{this.props.children}
</List> </List>
</Drawer> </Drawer>
); );

View file

@ -0,0 +1,88 @@
// @flow
import React from "react";
import _ from "lodash";
import {
ListItem,
ListItemIcon,
ListItemSecondaryAction,
ListItemText,
ListSubheader
} from "material-ui/List";
import Switch from "material-ui/Switch";
import { renderIcon } from "utils/parseIconName";
export type UiItemListProps = {
controls: Array<ControlUI>,
state: State
};
export default class UiItemList extends React.Component<UiItemListProps> {
constructor(props: UiItemListProps) {
super(props);
}
render() {
return this.props.controls.map((control, key) => (
<ListItem key={key}>
{control.icon == null || <ListItemIcon>{renderIcon(control.icon, "mdi-24px")}</ListItemIcon>}
{this.renderControl(control)}
</ListItem>
));
}
renderControl(control: ControlUI) {
switch (control.type) {
case "toggle": {
return this.renderToggle(control);
}
default: {
console.error(
`Unknown UI type "${control.type}" for "${control.text}" component`
);
return "unknown ui type";
}
}
}
isEnabled(control: ControlUI) {
const enableCondition = control.enableCondition;
if (enableCondition == null) {
return true;
} else {
const value = this.getValue(control);
return enableCondition(
value.internal || value.actual, value.actual, this.props.state);
}
}
getValue(control: ControlUI) {
const value = this.props.state[control.topic];
if (value == null) {
console.error(
`Unknown topic "${control.topic}" in ${control.type} "${control.text}"`
);
return { internal: "error", actual: "error" };
}
return value;
}
toggleSwitch(control: ControlUI, newState: boolean) {
}
renderToggle(control: ControlUI) {
const value = this.getValue(control);
const isToggled = control.isToggled || (i => i === (control.on || "on"));
const checked = isToggled(
value.internal || value.actual, value.actual, this.props.state);
return [
<ListItemText key="label" primary={control.text} />,
<ListItemSecondaryAction key="action">
<Switch label={control.text}
checked={checked}
onChange={state => this.toggleSwitch(control, state)}
disabled={!this.isEnabled(control)} />
</ListItemSecondaryAction>
];
}
}

View file

@ -0,0 +1,10 @@
// @flow
import React from "react";
export default function parseIconName(name: string): string {
return `mdi ${name.split(" ").map(icon => "mdi-".concat(icon)).join(" ")}`;
}
export const renderIcon = (name: string, extraClass?: string) => {
return <i className={`${extraClass || ""} ${parseIconName(name)}`}></i>;
};

202
yarn.lock
View file

@ -2,6 +2,59 @@
# yarn lockfile v1 # yarn lockfile v1
"@babel/code-frame@7.0.0-beta.31", "@babel/code-frame@^7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.31.tgz#473d021ecc573a2cce1c07d5b509d5215f46ba35"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"
"@babel/helper-function-name@7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.31.tgz#afe63ad799209989348b1109b44feb66aa245f57"
dependencies:
"@babel/helper-get-function-arity" "7.0.0-beta.31"
"@babel/template" "7.0.0-beta.31"
"@babel/traverse" "7.0.0-beta.31"
"@babel/types" "7.0.0-beta.31"
"@babel/helper-get-function-arity@7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.31.tgz#1176d79252741218e0aec872ada07efb2b37a493"
dependencies:
"@babel/types" "7.0.0-beta.31"
"@babel/template@7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.31.tgz#577bb29389f6c497c3e7d014617e7d6713f68bda"
dependencies:
"@babel/code-frame" "7.0.0-beta.31"
"@babel/types" "7.0.0-beta.31"
babylon "7.0.0-beta.31"
lodash "^4.2.0"
"@babel/traverse@7.0.0-beta.31", "@babel/traverse@^7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.31.tgz#db399499ad74aefda014f0c10321ab255134b1df"
dependencies:
"@babel/code-frame" "7.0.0-beta.31"
"@babel/helper-function-name" "7.0.0-beta.31"
"@babel/types" "7.0.0-beta.31"
babylon "7.0.0-beta.31"
debug "^3.0.1"
globals "^10.0.0"
invariant "^2.2.0"
lodash "^4.2.0"
"@babel/types@7.0.0-beta.31", "@babel/types@^7.0.0-beta.31":
version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.31.tgz#42c9c86784f674c173fb21882ca9643334029de4"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
to-fast-properties "^2.0.0"
abbrev@1: abbrev@1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@ -209,8 +262,8 @@ async@^1.5.2:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.1.2, async@^2.4.1: async@^2.1.2, async@^2.4.1:
version "2.5.0" version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies: dependencies:
lodash "^4.14.0" lodash "^4.14.0"
@ -262,14 +315,6 @@ babel-cli@^6.24.1:
optionalDependencies: optionalDependencies:
chokidar "^1.6.1" chokidar "^1.6.1"
babel-code-frame@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-7.0.0-beta.0.tgz#418a7b5f3f7dc9a4670e61b1158b4c5661bec98d"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"
babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@ -303,13 +348,13 @@ babel-core@^6.25.0, babel-core@^6.26.0:
source-map "^0.5.6" source-map "^0.5.6"
babel-eslint@^8.0.1: babel-eslint@^8.0.1:
version "8.0.1" version "8.0.2"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.1.tgz#5d718be7a328625d006022eb293ed3008cbd6346" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.2.tgz#e44fb9a037d749486071d52d65312f5c20aa7530"
dependencies: dependencies:
babel-code-frame "7.0.0-beta.0" "@babel/code-frame" "^7.0.0-beta.31"
babel-traverse "7.0.0-beta.0" "@babel/traverse" "^7.0.0-beta.31"
babel-types "7.0.0-beta.0" "@babel/types" "^7.0.0-beta.31"
babylon "7.0.0-beta.22" babylon "^7.0.0-beta.31"
babel-generator@^6.26.0: babel-generator@^6.26.0:
version "6.26.0" version "6.26.0"
@ -366,15 +411,6 @@ babel-helper-explode-assignable-expression@^6.24.1:
babel-traverse "^6.24.1" babel-traverse "^6.24.1"
babel-types "^6.24.1" babel-types "^6.24.1"
babel-helper-function-name@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.0.tgz#d1b6779b647e5c5c31ebeb05e13b998e4d352d56"
dependencies:
babel-helper-get-function-arity "7.0.0-beta.0"
babel-template "7.0.0-beta.0"
babel-traverse "7.0.0-beta.0"
babel-types "7.0.0-beta.0"
babel-helper-function-name@^6.24.1: babel-helper-function-name@^6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
@ -385,12 +421,6 @@ babel-helper-function-name@^6.24.1:
babel-traverse "^6.24.1" babel-traverse "^6.24.1"
babel-types "^6.24.1" babel-types "^6.24.1"
babel-helper-get-function-arity@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.0.tgz#9d1ab7213bb5efe1ef1638a8ea1489969b5a8b6e"
dependencies:
babel-types "7.0.0-beta.0"
babel-helper-get-function-arity@^6.24.1: babel-helper-get-function-arity@^6.24.1:
version "6.24.1" version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
@ -456,10 +486,6 @@ babel-loader@^7.1.1:
loader-utils "^1.0.2" loader-utils "^1.0.2"
mkdirp "^0.5.1" mkdirp "^0.5.1"
babel-messages@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-7.0.0-beta.0.tgz#6df01296e49fc8fbd0637394326a167f36da817b"
babel-messages@^6.23.0: babel-messages@^6.23.0:
version "6.23.0" version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
@ -803,15 +829,6 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runti
core-js "^2.4.0" core-js "^2.4.0"
regenerator-runtime "^0.11.0" regenerator-runtime "^0.11.0"
babel-template@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-7.0.0-beta.0.tgz#85083cf9e4395d5e48bf5154d7a8d6991cafecfb"
dependencies:
babel-traverse "7.0.0-beta.0"
babel-types "7.0.0-beta.0"
babylon "7.0.0-beta.22"
lodash "^4.2.0"
babel-template@^6.24.1, babel-template@^6.26.0: babel-template@^6.24.1, babel-template@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
@ -822,20 +839,6 @@ babel-template@^6.24.1, babel-template@^6.26.0:
babylon "^6.18.0" babylon "^6.18.0"
lodash "^4.17.4" lodash "^4.17.4"
babel-traverse@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-7.0.0-beta.0.tgz#da14be9b762f62a2f060db464eaafdd8cd072a41"
dependencies:
babel-code-frame "7.0.0-beta.0"
babel-helper-function-name "7.0.0-beta.0"
babel-messages "7.0.0-beta.0"
babel-types "7.0.0-beta.0"
babylon "7.0.0-beta.22"
debug "^3.0.1"
globals "^10.0.0"
invariant "^2.2.0"
lodash "^4.2.0"
babel-traverse@^6.24.1, babel-traverse@^6.26.0: babel-traverse@^6.24.1, babel-traverse@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
@ -850,14 +853,6 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0:
invariant "^2.2.2" invariant "^2.2.2"
lodash "^4.17.4" lodash "^4.17.4"
babel-types@7.0.0-beta.0:
version "7.0.0-beta.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-7.0.0-beta.0.tgz#eb8b6e556470e6dcc4aef982d79ad229469b5169"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
to-fast-properties "^2.0.0"
babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
@ -867,9 +862,9 @@ babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
lodash "^4.17.4" lodash "^4.17.4"
to-fast-properties "^1.0.3" to-fast-properties "^1.0.3"
babylon@7.0.0-beta.22: babylon@7.0.0-beta.31, babylon@^7.0.0-beta.31:
version "7.0.0-beta.22" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.22.tgz#74f0ad82ed7c7c3cfeab74cf684f815104161b65" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f"
babylon@^6.18.0: babylon@^6.18.0:
version "6.18.0" version "6.18.0"
@ -1071,10 +1066,10 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
electron-to-chromium "^1.2.7" electron-to-chromium "^1.2.7"
browserslist@^2.1.2: browserslist@^2.1.2:
version "2.7.0" version "2.8.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.7.0.tgz#dc375dc70048fec3d989042a35022342902eff00" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.8.0.tgz#27d64028130a2e8585ca96f7c3b7730eff4de493"
dependencies: dependencies:
caniuse-lite "^1.0.30000757" caniuse-lite "^1.0.30000758"
electron-to-chromium "^1.3.27" electron-to-chromium "^1.3.27"
buffer-indexof@^1.0.0: buffer-indexof@^1.0.0:
@ -1166,12 +1161,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0" lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000758" version "1.0.30000760"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000758.tgz#a235627b1922e878b63164942c991b84de92c810" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000760.tgz#3ea29473eb78a6ccb09f2eb73ac9e1debfec528d"
caniuse-lite@^1.0.30000757: caniuse-lite@^1.0.30000758:
version "1.0.30000758" version "1.0.30000760"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000758.tgz#e261140076651049cf6891ed4bc649b5c8c26c69" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000760.tgz#ec720395742f1c7ec8947fd6dd2604e77a8f98ff"
caseless@~0.12.0: caseless@~0.12.0:
version "0.12.0" version "0.12.0"
@ -1299,8 +1294,8 @@ cliui@^3.2.0:
wrap-ansi "^2.0.0" wrap-ansi "^2.0.0"
clone@^1.0.2: clone@^1.0.2:
version "1.0.2" version "1.0.3"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
co@^4.6.0: co@^4.6.0:
version "4.6.0" version "4.6.0"
@ -1317,8 +1312,8 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
color-convert@^1.3.0, color-convert@^1.9.0: color-convert@^1.3.0, color-convert@^1.9.0:
version "1.9.0" version "1.9.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
dependencies: dependencies:
color-name "^1.1.1" color-name "^1.1.1"
@ -1404,8 +1399,8 @@ concat-stream@^1.6.0:
typedarray "^0.0.6" typedarray "^0.0.6"
connect-history-api-fallback@^1.3.0: connect-history-api-fallback@^1.3.0:
version "1.4.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz#3db24f973f4b923b0e82f619ce0df02411ca623d" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
console-browserify@^1.1.0: console-browserify@^1.1.0:
version "1.1.0" version "1.1.0"
@ -2446,8 +2441,8 @@ fs-extra@^4.0.0:
universalify "^0.1.0" universalify "^0.1.0"
fs-readdir-recursive@^1.0.0: fs-readdir-recursive@^1.0.0:
version "1.0.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
fs.realpath@^1.0.0: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
@ -4747,14 +4742,14 @@ rc@^1.1.7:
minimist "^1.2.0" minimist "^1.2.0"
strip-json-comments "~2.0.1" strip-json-comments "~2.0.1"
react-dom@^15.6.1: react-dom@^16.0.0:
version "15.6.2" version "16.1.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.0.tgz#ab6fd2a285096f388aeba51919a573d06c9bdde4"
dependencies: dependencies:
fbjs "^0.8.9" fbjs "^0.8.16"
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.0" object-assign "^4.1.1"
prop-types "^15.5.10" prop-types "^15.6.0"
react-event-listener@^0.5.0, react-event-listener@^0.5.1: react-event-listener@^0.5.0, react-event-listener@^0.5.1:
version "0.5.1" version "0.5.1"
@ -4802,9 +4797,9 @@ react-scrollbar-size@^2.0.2:
prop-types "^15.5.10" prop-types "^15.5.10"
react-event-listener "^0.5.0" react-event-listener "^0.5.0"
react-tap-event-plugin@^2.0.1: react-tap-event-plugin@^3.0.0:
version "2.0.1" version "3.0.2"
resolved "https://registry.yarnpkg.com/react-tap-event-plugin/-/react-tap-event-plugin-2.0.1.tgz#316beb3bc6556e29ec869a7293e89c826a9074d2" resolved "https://registry.yarnpkg.com/react-tap-event-plugin/-/react-tap-event-plugin-3.0.2.tgz#280371677b881c31376e0027a0b86d2c6de039ee"
dependencies: dependencies:
fbjs "^0.8.6" fbjs "^0.8.6"
@ -4829,7 +4824,7 @@ react-transition-group@^2.2.1:
prop-types "^15.5.8" prop-types "^15.5.8"
warning "^3.0.0" warning "^3.0.0"
react@^15.5.4, react@^15.6.1: react@^15.5.4:
version "15.6.2" version "15.6.2"
resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
dependencies: dependencies:
@ -4839,6 +4834,15 @@ react@^15.5.4, react@^15.6.1:
object-assign "^4.1.0" object-assign "^4.1.0"
prop-types "^15.5.10" prop-types "^15.5.10"
react@^16.0.0:
version "16.1.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.1.0.tgz#1c2bdac3c17fe7ee9282fa35aca6cc36387903e1"
dependencies:
fbjs "^0.8.16"
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.0"
read-pkg-up@^1.0.1: read-pkg-up@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@ -5719,8 +5723,8 @@ ua-parser-js@^0.7.9:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
uglify-js@3.1.x: uglify-js@3.1.x:
version "3.1.7" version "3.1.8"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.7.tgz#13379168b7fcf132ed977254a7802e0a294b1ffb" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.8.tgz#780d08b4f6782fe36ea5484d952362eddaf1d7b8"
dependencies: dependencies:
commander "~2.11.0" commander "~2.11.0"
source-map "~0.6.1" source-map "~0.6.1"
@ -6092,8 +6096,8 @@ write@^0.2.1:
mkdirp "^0.5.1" mkdirp "^0.5.1"
ws@^3.2.0: ws@^3.2.0:
version "3.3.0" version "3.3.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.0.tgz#f8b948a1378af7efa702f5513da08dd516897c31" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.1.tgz#d97e34dee06a1190c61ac1e95f43cb60b78cf939"
dependencies: dependencies:
async-limiter "~1.0.0" async-limiter "~1.0.0"
safe-buffer "~5.1.0" safe-buffer "~5.1.0"